Rimuovere il link del prodotto Woocommerce
Vorrei rimuovere il link dalle liste dei prodotti Woocommerce. Non ho bisogno che l'utente veda le pagine di dettaglio del prodotto, useremo invece Quick View. Ad ogni modo, ho cercato e tutto quello che ho trovato è obsoleto. Questo è l'attuale file content-product.php
: https://github.com/woothemes/woocommerce/blob/master/templates/content-product.php e non ci sono tag anchor da rimuovere semplicemente.
Potrei aver bisogno di un hook ma non sono sicuro di cosa fare. Ho provato alcuni ma il link era ancora presente. Per esempio questo non ha funzionato quando aggiunto al mio 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>'); // Rimuove tutti i tag tranne img
}
Ho provato anche questo che non ha funzionato ma penso sia vicino alla soluzione:
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);
Non sono sicuro di essere sulla strada giusta. Qualsiasi aiuto sarebbe apprezzato!

Un modo migliore e più sicuro per farlo è rimuovere le azioni di apertura e chiusura del link. Questo eviterà effetti collaterali come la scomparsa del pulsante "Aggiungi al carrello".
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 );
Puoi aggiungere questo codice al tuo file functions.php

Il modo in cui ho fatto questo è stato prendere una copia di content-product.php e incollarla nella cartella principale del tuo tema.
Commenta
do_action( 'woocommerce_before_shop_loop_item_title' );
e
do_action( 'woocommerce_after_shop_loop_item' );
Rapido e sporco, ma ha funzionato per me.

Forse ho festeggiato troppo presto. In questo modo ho perso il pulsante "Aggiungi al carrello". È successo anche a te?

Ho trovato questo.
/**
* @snippet Disabilita Link ai Prodotti @ Loop
* @how-to Guarda il tutorial @ http://businessbloomer.com/?p=19055
* @sourcecode http://businessbloomer.com/?p=19916
* @author Rodolfo Melogli
* @testedwith WooCommerce 2.5.2
*/
// Chiude il tag </a> subito dopo che si apre prima dell'elemento prodotto
add_action( 'woocommerce_before_shop_loop_item_title','bbloomer_close_permalink', 10 );
function bbloomer_close_permalink() {
?>
</a>
<?php
}
// Apre il tag <a> appena prima che si chiuda dopo l'elemento prodotto
add_action( 'woocommerce_after_shop_loop_item_title','bbloomer_open_atag', 11);
function bbloomer_open_atag() {
?>
<a>
<?php
}
/**
* Spiegazione dell'hack!
*
* Prima dell'elemento del loop, un link si apre...
* Dopo l'elemento del loop, un link si chiude...
* Fondamentalmente stiamo aggiungendo una chiusura e un'apertura in modo che
* nessun contenuto venga wrappato in <a>link</a>
*
* Controlla wc-template-functions.php righe 545-556:
*
* function woocommerce_template_loop_product_link_open() {
* echo '<a href="' . get_the_permalink() . '">';
* }
*
* function woocommerce_template_loop_product_link_close() {
* echo '</a>';
* }
*
*/
Fonte: http://businessbloomer.com/woocommerce-disable-link-to-product-loop/

Per favore aggiungi una spiegazione su come risponde alla domanda... semplicemente inserire il codice non è sufficiente.

Hai ragione. È la mia prima volta su Stack.
Ho provato molti 'filter', 'remove_action_', per rimuovere questo anchor.
Il codice che sto "inserendo" qui, mi ha salvato la giornata. Puoi trovare maggiori informazioni nella fonte:
http://businessbloomer.com/woocommerce-disable-link-to-product-loop/

La migliore pratica sarebbe inserire una singola riga di codice nel tuo file functions.php
.
remove_action('woocommerce_before_shop_loop_item' ,
'woocommerce_template_loop_product_link_open' , 10);
Inseriscila in qualsiasi file di funzioni. Il link al prodotto verrà rimosso.
