Здравствуйте.
По инструкциям добавил себе на сайт возможность начисления рейтинга пользователям за комментирование.
Использовал этот код:
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;
тогда все операции с комментариями групп будут игнорироваться существующим кодом, а уже для комментирования в группах как я и сказал ранее производим те же манипуляции с регистрацией типа рейтинга и тп.