Eliminare link produs Woocommerce
Aș dori să elimin link-urile din listarea produselor Woocommerce. Nu am nevoie ca utilizatorul să vadă paginile cu detalii ale produselor, vom folosi în schimb Quick View. Oricum, am căutat și tot ce am găsit este învechit. Acesta este fișierul actual content-product.php
: https://github.com/woothemes/woocommerce/blob/master/templates/content-product.php și nu există tag-uri anchor pentru a le elimina pur și simplu.
Probabil am nevoie de un hook dar nu sunt sigur ce să fac. Am încercat câteva dar link-ul era încă prezent. De exemplu, următorul cod adăugat în functions.php nu a funcționat:
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>');
}
Am încercat și acest cod care nu a funcționat, dar simt că sunt aproape:
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);
Nu sunt sigur dacă sunt măcar pe calea cea bună. Orice ajutor ar fi apreciat!

O metodă mai bună și mai sigură de a face acest lucru este eliminarea acțiunilor de deschidere și închidere a linkurilor. Acest lucru va preveni efecte secundare, cum ar fi dispariția butonului de adăugare în coș.
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 );
Puteți adăuga acest cod în fișierul functions.php

Modul în care am realizat acest lucru a fost să iau o copie a fișierului content-product.php și să o lipesc în directorul rădăcină al temei tale.
Comentează
do_action( 'woocommerce_before_shop_loop_item_title' );
și
do_action( 'woocommerce_after_shop_loop_item' );
Rapid și neelegant, dar a funcționat pentru mine.

Poate am sărbătorit prea devreme. Am pierdut butonul "Adaugă în Coș" în felul acesta. Ți s-a întâmplat și ție?

Am găsit acest lucru.
/**
* @snippet Dezactivează Linkul către Produse în Loop
* @how-to Vezi tutorialul @ http://businessbloomer.com/?p=19055
* @sourcecode http://businessbloomer.com/?p=19916
* @author Rodolfo Melogli
* @testedwith WooCommerce 2.5.2
*/
// Închide </a> tag imediat după ce se deschide înainte de elementul produs
add_action( 'woocommerce_before_shop_loop_item_title','bbloomer_close_permalink', 10 );
function bbloomer_close_permalink() {
?>
</a>
<?php
}
// Deschide <a> tag chiar înainte să se închidă după elementul produs
add_action( 'woocommerce_after_shop_loop_item_title','bbloomer_open_atag', 11);
function bbloomer_open_atag() {
?>
<a>
<?php
}
/**
* Explicație pentru hack!
*
* Înaintea elementului din loop, un link se deschide...
* După elementul din loop, un link se închide...
* Practic, adăugăm un close și un open astfel încât
* niciun conținut să nu fie înconjurat de <a>link</a>
*
* Verifică wc-template-functions.php linii 545-556:
*
* function woocommerce_template_loop_product_link_open() {
* echo '<a href="' . get_the_permalink() . '">';
* }
*
* function woocommerce_template_loop_product_link_close() {
* echo '</a>';
* }
*
*/
Sursa articolului: http://businessbloomer.com/woocommerce-disable-link-to-product-loop/

Te rog să adaugi o explicație despre cum răspunde la întrebare... doar să arunci codul nu este suficient.

Ai dreptate. Prima dată pe Stack.
Am încercat multe 'filter', 'remove_action_' pentru a elimina acest anchor.
Codul pe care l-am 'aruncat' aici, mi-a salvat ziua. Poți obține mai multe informații în sursa originală:
http://businessbloomer.com/woocommerce-disable-link-to-product-loop/

Cea mai bună practică ar fi adăugarea unei singure linii de cod în fișierul tău functions.php
.
remove_action('woocommerce_before_shop_loop_item' ,
'woocommerce_template_loop_product_link_open' , 10);
Pune acest cod în orice fișier de funcții. Link-ul către produs va fi eliminat.
