web-dev-qa-db-fra.com

Supprimer le lien du produit Woocommerce

Je souhaite supprimer le lien des listes de produits Woocommerce. Je n'ai pas besoin de l'utilisateur pour voir les pages de détail du produit, nous allons utiliser Quick View à la place. Quoi qu'il en soit, j'ai cherché et tout ce que j'ai trouvé est obsolète. Il s'agit du fichier content-product.php actuel: https://github.com/woothemes/woocommerce/blob/master/templates/content-product.php et il n'y a aucune balise d'ancrage à supprimer.

J'ai peut-être besoin d'un crochet mais je ne sais pas quoi faire. J'en ai essayé quelques uns mais le lien était toujours là. Par exemple, cela ne fonctionnait pas quand on l'ajoutait à mon 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>');
 }

J'ai aussi essayé ceci qui n'a pas fonctionné mais je sens que c'est proche:

 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);

Je ne suis même pas sûr d'être sur la bonne voie. Toute aide serait appréciée!

3
amandathewebdev

Pour ce faire, j'ai pris une copie de content-product.php et collez-la à la racine de votre dossier de thèmes.

Commenter

do_action( 'woocommerce_before_shop_loop_item_title' );

et

do_action( 'woocommerce_after_shop_loop_item' );

Rapide et sale, mais cela a fonctionné pour moi.

0
MrFox

Un moyen plus efficace de procéder consiste à supprimer les actions d’ouverture et de fermeture de lien. Cela évitera que des effets secondaires tels que le bouton Ajouter au panier ne disparaissent.

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 );

Vous pouvez ajouter ce code à votre functions.php

5
Ralrom

J'ai trouvé ça.

/**
 * @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>';
 * }
 *
 */

Source de la police: http://businessbloomer.com/woocommerce-disable-link-lo-product-loop/

0
Gabriel Darezzo