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!
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.
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
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/