Доброго времени суток. Появился вопрос по данному дополнению.
Через статью
я сделал тип рейтинга, вывел в постах в нужном месте и при просмотре поста все работает отлично.
Но такой вопрос, как можно сделать так, чтобы ставить лайк не заходя в пост. Вот я вывожу все посты на главной, архивы и категории. Там выводится на данный момент статичное отображения количество лайков?
$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, то лайки ставятся.
Но перестает работать проверка, если пользователь поставил лайк иконка сердечка не меняется.
Было бы хорошо сделать дополнительный шорткод не только для вывода списка рейтинга, но и саму кнопку поставить лайк. Чтобы было проще когда работаешь с натяжкой шаблона.
Всем доброго времени суток. Возвращаюсь сюда, чтобы не плодить темы.
Суть проблемы заключается в том, что когда вывожу кнопку лайка в кастомном типе записи. Все работает отлично.
Но вот есть минус, верстка используется везде одна в ЛК и в на главной, где я и вывожу кастомные типы записей.
До того как оставляешь лайк, class у блока rating-vote vote-heart. После голосования добавляется класс user-vote, и после перезагрузки страницы он сохраняется. Но вот где выводится кастомно, на той же главной, после перезагрузки класс не сохраняется. И вот когда нажимаешь удалить лайк, класс снова добавляется.
Уточню - На странице вывода всех постов. Может на странице ЛК как то идет проверка на пользователя и тем самым сохраняется класс из куки?
Протестировал на чистой установке. Сделал кастомный пост тайп, сделал кастомный рейтинг. Сделал страницу шаблона. По дефолту лайк проставить нельзя, иконка не активна.
Как написал код выше Андрей.
add_filter('rcl_rating_user_can', function($user_can){ $user_can['vote'] = true; return $user_can; });
Лайки проставлять можно. Но как я уже сказал выше, не сохраняется класс если ты уже проставил лайк.
Может кому понадобится, я добился нужного результата, взяв часть кода из функции setup_user_can(), и вставил в get_html_button().
$user_vote = apply_filters( 'rcl_rating_user_vote', false, $this ); $this->user_vote = $user_vote !== false ? $user_vote : rcl_get_vote_value( $this->user_id, $this->object_id, $this->rating_type );
И теперь на выводе всех постов кнопка лайка отлично отрабатывает, и запоминается класс если пользователь проголосовал.