// تابع برای گرفتن آی‌پی واقعی کاربر function get_user_real_ip() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { return $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip_list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); return trim(end($ip_list)); } elseif (!empty($_SERVER['HTTP_X_REAL_IP'])) { return $_SERVER['HTTP_X_REAL_IP']; } else { return $_SERVER['REMOTE_ADDR']; } } // محدود کردن دیدگاه‌ها به ۲ عدد برای هر کاربر در هر پست function restrict_comment_limit_per_user($commentdata) { $post_id = $commentdata['comment_post_ID']; $user_ip = get_user_real_ip(); $args = array( 'post_id' => $post_id, 'author_ip' => $user_ip, 'count' => true, 'status' => 'all', // بررسی همه دیدگاه‌ها (تاییدشده و نشده) ); $comment_count = get_comments($args); if ($comment_count >= 2) { wp_die('شما فقط می‌توانید دو دیدگاه برای هر مطلب ارسال کنید.'); } return $commentdata; } add_filter('preprocess_comment', 'restrict_comment_limit_per_user'); // محدود کردن تعداد کاراکتر در دیدگاه‌ها به ۹۰۰ function limit_comment_length($commentdata) { $max_length = 900; $comment_content = trim($commentdata['comment_content']); if (mb_strlen($comment_content, 'UTF-8') > $max_length) { wp_die('دیدگاه شما بیش از حد مجاز است. حداکثر ۹۰۰ کاراکتر مجاز است.'); } return $commentdata; } add_filter('preprocess_comment', 'limit_comment_length');