10ответ(ов) в теме
Владимир DestWeb
не в сети 16 минут
На сайте с 29.11.2021
Участник
Тем 7
Сообщения 51
1
16:03
Версия WP-Recall: 16.26.5

Доброго времени суток. Появился вопрос по данному дополнению.
Через статью

Вы не можете просматривать опубликованные ссылки

я сделал тип рейтинга, вывел в постах в нужном месте и при просмотре поста все работает отлично.
Но такой вопрос, как можно сделать так, чтобы ставить лайк не заходя в пост. Вот я вывожу все посты на главной, архивы и категории. Там выводится на данный момент статичное отображения количество лайков?

1
Владимир DestWeb
не в сети 16 минут
На сайте с 29.11.2021
Участник
Тем 7
Сообщения 51
2
13:07

Что то совсем все пропали!

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

смотрите фильтр rcl_rating_user_can
установите параметр vote в значение true

0
Владимир DestWeb
не в сети 16 минут
На сайте с 29.11.2021
Участник
Тем 7
Сообщения 51
4
10:44

$this->user_can = apply_filters( 'rcl_rating_user_can', $this->user_can, $data );

Фильтр описан в функции setup_box().
А $this->user_can['vote'] в функции get_box_like(). И я не совсем понимаю как через фильтры изменить данное значение.
Если в самом файле class-rcl-rating-box.php дописать $this->user_can['vote'] = true, то лайки ставятся.
Но перестает работать проверка, если пользователь поставил лайк иконка сердечка не меняется.
Было бы хорошо сделать дополнительный шорткод не только для вывода списка рейтинга, но и саму кнопку поставить лайк. Чтобы было проще когда работаешь с натяжкой шаблона.

0
Андрей CS
не в сети 3 часа
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16556
5
18:57

Владимир DestWeb сказал(а)
я не совсем понимаю как через фильтры изменить данное значение

попробуйте найти доступное описание работы с фильтрами WP, сложного там нет

add_ffilter('rcl_rating_user_can', function($user_can){
  $user_can['vote'] = true;
  return $user_can;
});

0
Владимир DestWeb
не в сети 16 минут
На сайте с 29.11.2021
Участник
Тем 7
Сообщения 51
6
18:55

Всем доброго времени суток. Возвращаюсь сюда, чтобы не плодить темы.
Суть проблемы заключается в том, что когда вывожу кнопку лайка в кастомном типе записи. Все работает отлично.
Но вот есть минус, верстка используется везде одна в ЛК и в на главной, где я и вывожу кастомные типы записей.
До того как оставляешь лайк, class у блока rating-vote vote-heart. После голосования добавляется класс user-vote, и после перезагрузки страницы он сохраняется. Но вот где выводится кастомно, на той же главной, после перезагрузки класс не сохраняется. И вот когда нажимаешь удалить лайк, класс снова добавляется.

Уточню - На странице вывода всех постов. Может на странице ЛК как то идет проверка на пользователя и тем самым сохраняется класс из куки?

0
Preci
не в сети 2 часа
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1616
7
19:26

Возможно кеш включен и авторизованным отдается страница из кеша, которая для гостя генерировалась.

0
Владимир DestWeb
не в сети 16 минут
На сайте с 29.11.2021
Участник
Тем 7
Сообщения 51
8
20:56

Preci сказал(а)
Возможно кеш включен и авторизованным отдается страница из кеша, которая для гостя генерировалась.

Как раз в момент разработки кеширование отключил полностью везде. И сайт сделан так, чтобы гости не могли просматривать его.

0
Владимир DestWeb
не в сети 16 минут
На сайте с 29.11.2021
Участник
Тем 7
Сообщения 51
9
14:23

Протестировал на чистой установке. Сделал кастомный пост тайп, сделал кастомный рейтинг. Сделал страницу шаблона. По дефолту лайк проставить нельзя, иконка не активна.
Как написал код выше Андрей.

add_filter('rcl_rating_user_can', function($user_can){
	$user_can['vote'] = true;
	return $user_can;
});

Лайки проставлять можно. Но как я уже сказал выше, не сохраняется класс если ты уже проставил лайк.

0
Владимир DestWeb
не в сети 16 минут
На сайте с 29.11.2021
Участник
Тем 7
Сообщения 51
10
16:17

Дополнительный вопрос. Решил попробовать по другому переиграть.
Как в функции get_html_button() можно проверить текущего пользователя, поставил ли он лайк или нет?
Я думал получится через $this->user_vote, но возвращает NULL.

0
Вы не имеете права на публикацию сообщений в этой теме