Здравствуйте.
По инструкциям добавил себе на сайт возможность начисления рейтинга пользователям за комментирование.
Использовал этот код:
if(!is_admin()) add_action('init','rcl_register_add_comment_type',30); if(is_admin()) add_action('admin_init','rcl_register_add_comment_type',30); function rcl_register_add_comment_type(){ rcl_register_rating_type(array('rating_type'=>'add-comment','type_name'=>'Комментирование','icon'=>'fa-plus')); } add_action('wp_insert_comment','add_rating_with_add_comment',10,2); function add_rating_with_add_comment($comment_id,$comment){ global $rcl_rating_types; if(!$comment->user_id) return false; $args = array( 'user_id' => $comment->user_id, 'object_id' => $comment_id, 'object_author' => $comment->user_id, 'rating_value' => $rcl_rating_types['add-comment']['type_point'], 'rating_type' => 'add-comment' ); rcl_insert_rating($args); } add_action('delete_comment','add_rating_with_delete_comment'); function add_rating_with_delete_comment($comment_id){ global $rcl_rating_types,$wpdb; $comment = get_comment($comment_id); if(!$comment->user_id) return false; $args = array( 'user_id' => $comment->user_id, 'object_id' => $comment_id, 'object_author' => $comment->user_id, 'rating_value' => $rcl_rating_types['add-comment']['type_point'], 'rating_type' => 'add-comment' ); rcl_delete_rating($args); $wpdb->query("DELETE FROM ".RCL_PREF."rating_totals WHERE object_id='$comment_id' AND rating_type='add-comment'"); }
(Получается вот такая штука
)
Появилась потребность немного изменить его (или дополнить), чтобы в настройках рейтинга добавился еще один пункт "Рейтинг за комментирование в группах"
Цель - за "основные" комменты на сайте начислять рейтинг по настройкам которые выводятся указанной функцией + добавить такой же функционал, только за начисление уже других значений рейтинга за коментарии в группах....
Как реализовать это не совсем понимаю... Я как собака понимаю, но сказать и сделать не могу)))
если реализовали код выше, то и это должно получится.
Регистрируете новый тип рейтинга "Комментирование в группах"
При начислении рейтинга за комментарий проверяете к какому типу записи относится комментарий и если это 'post-group', то начисляете, если нет то return false
И в уже добавленный код выше тоже добавляете такую проверку, только тут уже наоборот, если комментарий относится к типу записи 'post-group' то return false
В уже готовый код ниже строки
if(!$comment->user_id) return false;
добавляем код
$post = get_post($comment->comment_post_ID);
if($post->post_type=='post-group') return false;
тогда все операции с комментариями групп будут игнорироваться существующим кодом, а уже для комментирования в группах как я и сказал ранее производим те же манипуляции с регистрацией типа рейтинга и тп.