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! Хорошего дня

Связанные записи
  • 6 ноября, 2020
Как убрать ссылку на избранное YITH Woocommerce Wishlist на странице товара
  • 2 ноября, 2020
Как отключить родные стили Woocommerce
  • 2 ноября, 2020
Как пофиксить [prerender-spa-plugin] Unable to prerender all routes!