YITH Woocommerce Wishlist это отличный плагин, чтобы быстро сделать Избранное на сайте, все работает из коробки, даже стили…можно оставить и не править, но..как всегда с готовыми плагинами, есть нюанс 🙂 Мне надо было немного изменить отображение ссылки на страницу избранного со стораницы товара, и оказалось что для этого надо добавить свой фильтр. Ниже вся история.
Кстати, отображение в цикле (для категории / поиска) можно настроить в админке на странице плагина, для страницы товара тоже, можно выбрать положение и иконку\без иконки.

И все отлично работает, кнопка показывается, работает как положено.


А теперь нюанс. Если добавить товар в избранное, то на полой странице товара плагин к кнопке добавляет еще и ссылку на страницу с самим избранным..получается косяк.

Так как у меня есть отдельная ссылка на страницу Избранное в хедере, мне здесь она ненужна, я думал есть такая настройка чтобы ее выключить, но к сожалению нет 🙁 что делать? Лезем в код плагина, и видим что эта кнопка добавляется только при просмотре полной карточки товара, и это хардкод, но слава разработчикам, можно использовать фильтр и исправить это недоразумение 🙂
if ( ! function_exists( 'yith_wcwl_is_single' ) ) {
/**
* Returns true if it finds that you're printing a single product
* Should return false in any loop (including the ones inside single product page)
*
* @return bool Whether you're currently on single product template
* @since 3.0.0
*/
function yith_wcwl_is_single() {
return apply_filters( 'yith_wcwl_is_single', is_product() && ! in_array( wc_get_loop_prop( 'name' ), array( 'related', 'up-sells' ) ) && ! wc_get_loop_prop( 'is_shortcode' ) );
}
}
Что делаем? Пишем свой обработчик, так как это функция которая возвращает просто true/false нам достаточно сделать так.
add_filter( 'yith_wcwl_is_single', '__return_false', 10, 1);

Ура, все получилось.
Cheers! Хорошего дня