Удаление ссылки с товара WooCommerce
Я хочу удалить ссылку из списка товаров WooCommerce. Мне не нужно, чтобы пользователь видел страницы с подробной информацией о товаре, вместо этого мы будем использовать Quick View. В любом случае, я искал решение, но всё, что я нашел, устарело. Вот текущий файл content-product.php
: https://github.com/woothemes/woocommerce/blob/master/templates/content-product.php, и в нем нет тегов привязки, которые можно было бы просто удалить.
Возможно, мне нужен хук, но я не уверен, что делать. Я пробовал несколько вариантов, но ссылка всё равно оставалась. Например, это не сработало при добавлении в functions.php:
add_filter('woocommerce_template_loop_product_link_open','mbc_remove_link_on_thumbnail' );
function mbc_remove_link_on_thumbnail($html){
return strip_tags($html,'<img>');
}
Я также пробовал следующий вариант, который не сработал, но, кажется, близок к решению:
remove_action ('woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10);
remove_action ('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5);
Я не уверен, правильным ли путём иду. Буду благодарен за любую помощь!

Более правильный и безопасный способ сделать это - удалить действия открытия и закрытия ссылки. Это предотвратит побочные эффекты, такие как исчезновение кнопки добавления в корзину.
remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 );
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 );
Вы можете добавить этот код в свой файл functions.php

Возможно, я поспешил с выводами. Таким образом я потерял кнопку "Добавить в корзину". У вас такое случалось?

Я нашел это.
/**
* @snippet Отключение ссылок на товары в цикле
* @how-to Смотрите обучающее видео @ http://businessbloomer.com/?p=19055
* @sourcecode Исходный код @ http://businessbloomer.com/?p=19916
* @author Rodolfo Melogli
* @testedwith WooCommerce 2.5.2
*/
// Закрываем тег </a> сразу после его открытия перед элементом товара
add_action( 'woocommerce_before_shop_loop_item_title','bbloomer_close_permalink', 10 );
function bbloomer_close_permalink() {
?>
</a>
<?php
}
// Открываем тег <a> непосредственно перед закрытием после элемента товара
add_action( 'woocommerce_after_shop_loop_item_title','bbloomer_open_atag', 11);
function bbloomer_open_atag() {
?>
<a>
<?php
}
/**
* Объяснение хака!
*
* Перед элементом цикла открывается ссылка...
* После элемента цикла ссылка закрывается...
* Мы просто добавляем закрытие и открытие, чтобы
* никакое содержимое не оборачивалось в <a>ссылку</a>
*
* Проверьте файл wc-template-functions.php строки 545-556:
*
* function woocommerce_template_loop_product_link_open() {
* echo '<a href="' . get_the_permalink() . '">';
* }
*
* function woocommerce_template_loop_product_link_close() {
* echo '</a>';
* }
*
*/
Источник: http://businessbloomer.com/woocommerce-disable-link-to-product-loop/

Пожалуйста, добавьте объяснение, как это отвечает на вопрос.. просто сбрасывать код — это нехорошо.

Вы правы. Впервые на Stack.
Я пробовал множество 'filter', 'remove_action_' чтобы убрать эту ссылку.
Код, который я "сбрасываю" здесь, спас мой день. Вы можете получить больше информации в первоисточнике:
http://businessbloomer.com/woocommerce-disable-link-to-product-loop/
