10ответ(ов) в теме
savelyev
не в сети 8 лет
На сайте с 06.03.2016
Участник
1
19:55

Здравствуйте, есть проблемка. До того как узнал о чудеснейшем плагине recall) стоял у меня cubepoints для набора балов посетителями. Сейчас решил избавиться от него, ведь всё можно решить 1 recall. К тому же я изрядно мучаюсь после обновления плагинов для их совмещения. Так вот, Мне нужно взять баллы из кубпоинтс и транслировать их раз и навсегда в wp recall. Вопрос, я беру столбец в бд у юзеров с очками от кубпоинтс и копирую в столбец очков от recall.
Что с очками делать господа?

0
Андрей CS
не в сети 9 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16857
2
22:57

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

0
savelyev
не в сети 8 лет
На сайте с 06.03.2016
Участник
3
12:09

id uid notice - wp_cp_notify.
id uid type data points timestamp - wp_cp.
Это столбцы у всего, что я нашёл о кубпоинтс в бд.
Я только сейчас понимаю, что значит ещё нужно будет с postratings переносить в wp recall(

0
Андрей CS
не в сети 9 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16857
4
12:20

ок, интересует более подробная информация по таблице wp_cp, в каком столбце какие данные и в каком виде там храняться?

0
savelyev
не в сети 8 лет
На сайте с 06.03.2016
Участник
5
12:26

id - порядковый столбец 1-2-3-4....
uid - везде 1
type - описание за что баллы - за post/comment
data - цифры в разноброс)
points - сдесь получен или потерян +5 +1 -20
timestamp - всегда большие цифры (1377443370)

0
Андрей CS
не в сети 9 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16857
6
14:39

в общем понятно.
Чтобы перенести данные из таблицы плагина CP в таблицу рейтинга плагина wp-recall необходимо получить массив этих данных и обработать его через цикл, формируя новый массив и передавая его в функцию rcl_insert_rating(). Эта функция внесет новые значения в рейтинговую систему wp-recall и отразит их в общем рейтинге как отдельных объектов рейтинга (публикаций, комментариев...), так и их авторов.
Выглядеть будет примерно так:

global $wpdb;
$cp_data = $wpdb->get_results("SELECT * FROM ".$wpdb->prefix."cp");
foreach($cp_data as $data){
	$args = array(
        'object_id' => 0,//тут надо указать ИД объекта, которому изменили рейтинг
        'object_author' => 0,//тут надо указать ИД автора объекта, которому изменили рейтинг
        'rating_type' => $data->type,
        'user_id' => 0,//тут надо указать ИД юзера, который изменил рейтинг
        'rating_value' => str_replace('+','',$data->points)
    );
	rcl_insert_rating($args);
}

0
savelyev
не в сети 8 лет
На сайте с 06.03.2016
Участник
7
14:53

Т.е. вручную переводить каждого?

0
Андрей CS
не в сети 9 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16857
8
15:13

что значит "вручную каждого"? я дал код цикла, все данные можно перевести там.

0
savelyev
не в сети 8 лет
На сайте с 06.03.2016
Участник
9
16:53

Я с запросами к бд дуб-дубом) Поэтому сразу и стал искать помощи) Т.е. мне надо выполнить то, что ты скинул? Или подставить к комментариям твоим определённые id. Т.е. беру id человека, вставляю потом задаю остальное и так для каждого usera?

0
Андрей CS
не в сети 9 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16857
10
19:00

Я привел вполне рабочий код, только в нем осталось прописать верные данные для формируемого массива передаваемого в функцию rcl_insert_rating($args);
Я не знаю какие именно данные храняться в столбце data, скорее всего это идентификатор объекта, которому рейтинг изменяли, значит этот идентификатор можно использовать для получения также ИД автора этого объекта. Пока только могу это предполагать, надо разбираться что и где храниться, я точно пока ничего не могу сказать.

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