Rimuovere il link del prodotto Woocommerce

20 gen 2016, 17:52:47
Visualizzazioni: 38.1K
Voti: 4

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!

0
Tutte le risposte alla domanda 5
1
11

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

5 set 2017 04:46:41
Commenti

E cosa fai quando non funziona? Onestamente non riesco a trovare dove aggiungono questi link... è dannatamente fastidioso

ii iml0sto1 ii iml0sto1
9 set 2020 20:33:27
2

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.

20 gen 2016 18:30:17
Commenti

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

amandathewebdev amandathewebdev
20 gen 2016 21:44:22

Ah, io non sto usando il pulsante aggiungi al carrello. Il mio sito utilizza un plugin per Richiedi un preventivo. Ho appena disattivato il plugin e sì, anche il mio pulsante aggiungi al carrello è scomparso. Purtroppo devo ricominciare da capo.

MrFox MrFox
21 gen 2016 12:44:18
2

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/

1 lug 2016 22:57:57
Commenti

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

bravokeyl bravokeyl
2 lug 2016 07:57:51

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/

Gabriel Darezzo Gabriel Darezzo
21 lug 2016 23:47:03
1

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.

12 nov 2019 11:04:22
Commenti

Serve anche remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 ); altrimenti rimarrà un tag di chiusura dell'ancora vagante.

authentictech authentictech
18 mag 2020 17:16:58
0

L'ho rimosso con jQuery in questo modo:

<script>
jQuery(document).ready(function(){
    jQuery('li.product a.woocommerce-loop-product__link').removeAttr('href');
});
</script>
26 mag 2021 15:20:07