Eliminare link produs Woocommerce

20 ian. 2016, 17:52:47
Vizualizări: 38.1K
Voturi: 4

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!

0
Toate răspunsurile la întrebare 5
1
11

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

5 sept. 2017 04:46:41
Comentarii

Și ce faci când asta nu funcționează? Sincer, nu pot să găsesc unde adaugă aceste linkuri... e al naibii de enervant.

ii iml0sto1 ii iml0sto1
9 sept. 2020 20:33:27
2

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.

20 ian. 2016 18:30:17
Comentarii

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

amandathewebdev amandathewebdev
20 ian. 2016 21:44:22

Ah, eu nu folosesc butonul de adăugare în coș. Site-ul meu folosește un plugin pentru Cerere de Ofertă în schimb. Tocmai am dezactivat plugin-ul și da, butonul meu de adăugare în coș lipsește și el. Înapoi la planșă de desen, din păcate.

MrFox MrFox
21 ian. 2016 12:44:18
2

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/

1 iul. 2016 22:57:57
Comentarii

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

bravokeyl bravokeyl
2 iul. 2016 07:57:51

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/

Gabriel Darezzo Gabriel Darezzo
21 iul. 2016 23:47:03
1

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.

12 nov. 2019 11:04:22
Comentarii

Este necesar și remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 ); altfel va rămâne un tag de închidere anchor fără pereche.

authentictech authentictech
18 mai 2020 17:16:58
0

Am eliminat-o folosind jQuery astfel:

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