Домой Wp-Recall WP-Recall: Проблемы и решения Остается рейтинг при удалении записи
3ответ(ов) в теме
Николай
не в сети 8 лет
На сайте с 12.04.2014
Участник
1
11:10

Извиняюсь, возможно это исправлено в более поздних версиях , рекалл 8.5.1

Обратил внимание, на следующий момент, ставлю пользователю баллы за пост, пользователь выкладывает другую запись, первая запись удаляется, но баллы у пользователя за нее остаются, хотя логичнее что бы баллы снимались

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16929
2
20:35

Все верно, так и должно работать, но как я выяснил не работает. Поправлю этот функционал в следующем обновлении.
А пока можете найти эти две функции в коде дополнения рейтинга:

add_action('before_delete_post', 'delete_raytings_with_post_rcl');
function delete_raytings_with_post_rcl($postid){ 
	global  $wpdb;
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_post WHERE post = '$postid'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_posts WHERE post_id = '$postid'");	
} 

if (is_admin()):
	add_action('delete_comment', 'delete_rayting_comment_with_comment');
endif;
function delete_rayting_comment_with_comment($comment_id){
	global  $wpdb;
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_comments WHERE comment_id = '$comment_id'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_comments WHERE comment_id = '$comment_id'");
}

и заменить этим кодом:
add_action('before_delete_post', 'delete_raytings_with_post_rcl');
function delete_raytings_with_post_rcl($postid){ 
	global  $wpdb;
	$data_p = get_post($postid);
	$karma_p = $wpdb->get_var("SELECT total FROM ".RCL_PREF."total_rayting_posts WHERE post_id = '$postid'");
	$karma_p = -1*$karma_p;
	update_total_rayt_user_rcl($data_p->post_author,$karma_p);
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_post WHERE post = '$postid'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_posts WHERE post_id = '$postid'");	
} 

if (is_admin()):
	add_action('delete_comment', 'delete_rayting_comment_with_comment');
endif;
function delete_rayting_comment_with_comment($comment_id){
	global  $wpdb;
	$data_c = get_comment($comment_id);
	$karma_c = $wpdb->get_var("SELECT total FROM ".RCL_PREF."total_rayting_comments WHERE comment_id = '$comment_id'");
	$karma_c = -1*$karma_c;
	update_total_rayt_user_rcl($data_c->user_id,$karma_c);
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_comments WHERE comment_id = '$comment_id'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_comments WHERE comment_id = '$comment_id'");
}

0
Николай
не в сети 8 лет
На сайте с 12.04.2014
Участник
3
22:03

Андрей Plechev said

Все верно, так и должно работать, но как я выяснил не работает. Поправлю этот функционал в следующем обновлении.
А пока можете найти эти две функции в коде дополнения рейтинга:

add_action('before_delete_post', 'delete_raytings_with_post_rcl');
function delete_raytings_with_post_rcl($postid){ 
	global  $wpdb;
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_post WHERE post = '$postid'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_posts WHERE post_id = '$postid'");	
} 

if (is_admin()):
	add_action('delete_comment', 'delete_rayting_comment_with_comment');
endif;
function delete_rayting_comment_with_comment($comment_id){
	global  $wpdb;
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_comments WHERE comment_id = '$comment_id'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_comments WHERE comment_id = '$comment_id'");
}

и заменить этим кодом:
add_action('before_delete_post', 'delete_raytings_with_post_rcl');
function delete_raytings_with_post_rcl($postid){ 
	global  $wpdb;
	$data_p = get_post($postid);
	$karma_p = $wpdb->get_var("SELECT total FROM ".RCL_PREF."total_rayting_posts WHERE post_id = '$postid'");
	$karma_p = -1*$karma_p;
	update_total_rayt_user_rcl($data_p->post_author,$karma_p);
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_post WHERE post = '$postid'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_posts WHERE post_id = '$postid'");	
} 

if (is_admin()):
	add_action('delete_comment', 'delete_rayting_comment_with_comment');
endif;
function delete_rayting_comment_with_comment($comment_id){
	global  $wpdb;
	$data_c = get_comment($comment_id);
	$karma_c = $wpdb->get_var("SELECT total FROM ".RCL_PREF."total_rayting_comments WHERE comment_id = '$comment_id'");
	$karma_c = -1*$karma_c;
	update_total_rayt_user_rcl($data_c->user_id,$karma_c);
	$wpdb->query("DELETE FROM ".RCL_PREF."rayting_comments WHERE comment_id = '$comment_id'");
	$wpdb->query("DELETE FROM ".RCL_PREF."total_rayting_comments WHERE comment_id = '$comment_id'");
}

Спасибо !

0
Тема закрыта. Публикация новых сообщений запрещена.