в 14-ой версии был алгоритм перевода рейтинга на новые рельсы, в 15-ой его уже нет, но вы можете разместить данную функцию в файле функций своего шаблона и один раз запустить ее:
function rcl_update_rating_data(){
global $wpdb;
$objs = $wpdb->get_results("SELECT * FROM ".RCL_PREF."rayting_comments ORDER BY time_action DESC");
$totals = array();
if($objs){
$values = array();
foreach($objs as $obj){
$values[] = "(".$obj->user.",".$obj->comment_id.",".$obj->author_com.",".$obj->rayting.",'".$obj->time_action."','comment')";
if(!isset($totals['comment'][$obj->comment_id])){
$totals['comment'][$obj->comment_id]['value'] = $obj->rayting;
$totals['comment'][$obj->comment_id]['author'] = $obj->author_com;
}else{
$totals['comment'][$obj->comment_id]['value'] += $obj->rayting;
}
}
$query = "INSERT INTO ".RCL_PREF."rating_values (user_id,object_id,object_author,rating_value,rating_date,rating_type)"
. " VALUES ".implode(',',$values).";";
$wpdb->query($query);
}
$wpdb->query("DROP TABLE ".RCL_PREF."rayting_comments");
$wpdb->query("DROP TABLE ".RCL_PREF."total_rayting_comments");
$objs = $wpdb->get_results("SELECT * FROM ".RCL_PREF."rayting_post ORDER BY ID DESC");
if($objs){
$values = array();
foreach($objs as $obj){
$type = get_post_type($obj->post);
if(!$type) continue;
$values[] = "(".$obj->user.",".$obj->post.",".$obj->author_post.",".$obj->status.",DEFAULT,'".$type."')";
if(!isset($totals[$type][$obj->post])){
$totals[$type][$obj->post]['value'] = $obj->status;
$totals[$type][$obj->post]['author'] = $obj->author_post;
}else{
$totals[$type][$obj->post]['value'] += $obj->status;
}
}
$query = "INSERT INTO ".RCL_PREF."rating_values (user_id,object_id,object_author,rating_value,rating_date,rating_type)"
. " VALUES ".implode(',',$values).";";
$wpdb->query($query);
}
$wpdb->query("DROP TABLE ".RCL_PREF."rayting_post");
$wpdb->query("DROP TABLE ".RCL_PREF."total_rayting_posts");
$objs = $wpdb->get_results("SELECT * FROM ".RCL_PREF."profile_otziv");
if($objs){
$values = array();
foreach($objs as $obj){
$values[] = "(".$obj->author_id.",".$obj->ID.",".$obj->user_id.",".$obj->status.",DEFAULT,'rcl-review')";
if(!isset($totals['rcl-review'][$obj->ID])){
$totals['rcl-review'][$obj->ID]['value'] = $obj->status;
$totals['rcl-review'][$obj->ID]['author'] = $obj->user_id;
}else{
$totals['rcl-review'][$obj->ID]['value'] += $obj->status;
}
}
$query = "INSERT INTO ".RCL_PREF."rating_values (user_id,object_id,object_author,rating_value,rating_date,rating_type)"
. " VALUES ".implode(',',$values).";";
$wpdb->query($query);
$wpdb->query("ALTER TABLE ".RCL_PREF."profile_otziv MODIFY status VARCHAR(5)");
}
if(!$totals) return false;
$values = array();
$users = array();
foreach($totals as $type=>$total){
foreach($total as $id=>$val){
$totals[$type][$obj->post]['value'] += $obj->status;
$values[] = "(".$id.",".$val['author'].",".$val['value'].",'".$type."')";
if(!isset($users[$val['author']])) $users[$val['author']] = $val['value'];
else $users[$val['author']] += $val['value'];
}
}
$query = "INSERT INTO ".RCL_PREF."rating_totals (object_id,object_author,rating_total,rating_type)"
. " VALUES ".implode(',',$values).";";
$wpdb->query($query);
$values = array();
foreach($users as $user_id=>$total){
$values[] = "(".$user_id.",".$total.")";
}
$query = "INSERT INTO ".RCL_PREF."rating_users (user_id,rating_total)"
. " VALUES ".implode(',',$values).";";
$wpdb->query($query);
$wpdb->query("DROP TABLE ".RCL_PREF."total_rayting_users");
}
это функция миграции старого рейтинга на новые рельсы
функцию надо запустить только один раз, например, разместив ее вызов в том же файле функций и перезагрузить страницу один раз.
По мне как лучше сделать: (буду нудеть что надо своевременно обновляться, а не жить год на старых версиях - тогда бы и проблем не было)
1. Откатывайтесь на вашу прежнюю, 13-ю версию из дампа
2. обновляйтесь с 13й на 14ю версию
3 - проверяйте там рейтинг
4. Если в 3 пункте все ок - обновляйтесь на 15-ю версию.
Что сейчас у вас происходит - гадать - только время терять.
1. Вставьте в файл функций тот код который дал Андрей (активной вордпресс темы - которую используете в данный момент)
2. и допишите этот
add_action('init', 'rcl_update_rating_data');
3. Обновите любую страницу вашего сайта один раз - в фронетенде, не в админке.
4. Удалите эти 2 кода
5. И смотрите в таблице появились данные