в 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. И смотрите в таблице появились данные