Удалить ссылку на продукт Woocommerce


Я хотел бы удалить ссылку из списков продуктов Woocommerce. Мне не нужно, чтобы пользователь видел страницы сведений о продукте, вместо этого мы будем использовать Быстрый просмотр. В любом случае, я искал, и все, что я нашел, устарело. Это текущий файл 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);

Я даже не уверен, на правильном ли я пути. Любая помощь будет признательна!

Author: amandathewebdev, 2016-01-20

4 answers

Способ, которым я это сделал, состоял в том, чтобы сделать копию content-product.php и вставьте его в корень папки вашей темы.

Прокомментировать

do_action( 'woocommerce_before_shop_loop_item_title' );

И

do_action( 'woocommerce_after_shop_loop_item' );

Быстро и грязно, но это сработало для меня.

 0
Author: MrFox, 2016-01-20 16:30:17

Лучший и безопасный способ сделать это - удалить действия открыть и закрыть ссылку. Это предотвратит побочные эффекты, такие как исчезновение кнопки "Добавить в корзину".

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

 9
Author: Ralrom, 2017-09-05 01:46:41

Я нашел это.

/**
 * @snippet       Disable Link to Products @ Loop
 * @how-to        Watch tutorial @ http://businessbloomer.com/?p=19055
 * @sourcecode    http://businessbloomer.com/?p=19916
 * @author        Rodolfo Melogli
 * @testedwith    WooCommerce 2.5.2
 */
// Close </a> tag just after it opens before product item

add_action( 'woocommerce_before_shop_loop_item_title','bbloomer_close_permalink', 10 );
function bbloomer_close_permalink() {
?>
</a>
<?php
}

// Open <a> tag  just before it closes after product item

add_action( 'woocommerce_after_shop_loop_item_title','bbloomer_open_atag', 11);
function bbloomer_open_atag() {
?>
<a>
<?php
}

/**
 * Explanation for the hack!
 *
 * Before the loop item, a link opens...
 * After the loop item, a link closes...
 * We're basically adding a close and open so that
 * no content gets wrapped into <a>link</a>
 * 
 * Check wc-template-functions.php lines 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/

 0
Author: Gabriel Darezzo, 2016-07-21 20:47:35

Наилучшей практикой было бы использовать одну строку кода в вашем файле functions.php.

remove_action('woocommerce_before_shop_loop_item' , 
'woocommerce_template_loop_product_link_open' , 10);

Поместите его в любой файл функций. Ссылка на продукт исчезнет.

 0
Author: D. Pal, 2019-11-12 11:59:35