Dezactivează butonul adaugă în coș când produsul nu este în stoc

3 oct. 2017, 15:49:18
Vizualizări: 20.5K
Voturi: -1

Doresc să dezactivez butonul 'Adaugă în coș' atunci când produsul nu este în stoc folosind cod PHP sau o setare din panoul de administrare WooCommerce.

0
Toate răspunsurile la întrebare 5
0

Iată câteva plugin-uri care oferă funcționalitatea de a ascunde butoanele "Adaugă în coș" din magazin și de pe pagina de produs în WooCommerce:

[ https://wordpress.org/plugins/hide-add-to-cart-button/) ]

[ https://wordpress.org/plugins/remove-add-to-cart-woocommerce/ ]

Aceste plugin-uri vor face următoarele:

1) Ascund butonul Adaugă în coș de pe pagina individuală a produsului. 2) Ascund butonul Adaugă în coș de pe pagina de categorie. 3) Ascund butonul Adaugă în coș de pe pagina principală și de pe toate celelalte pagini.

De asemenea, îl puteți ascunde adăugând următoarea funcție în functions.php:

 /*
 * Suprascriere via functions.php
 **/
 if (!function_exists('woocommerce_template_loop_add_to_cart')) {
 function woocommerce_template_loop_add_to_cart() {
    global $product;
    if ( ! $product->is_in_stock() || ! $product->is_purchasable() ) return;
    woocommerce_get_template('loop/add-to-cart.php');
  }
}
3 oct. 2017 16:34:39
0

În loc să suprascrii funcția, ar fi mai bine să utilizezi filtrul woocommerce_is_purchasable.

add_filter( 'woocommerce_is_purchasable', 'vna_is_purchasable', 10, 2 );
function vna_is_purchasable( $purchasable, $product ){
    return true || false; // în funcție de condiția ta
}
3 oct. 2017 17:31:17
0

Am dat peste această întrebare în timp ce ajutam un prieten. Neavând experiență în dezvoltarea WordPress, darămite WooCommerce, tot am reușit să găsesc o soluție fără a scrie PHP, folosind doar CSS.

Se pare că WooCommerce face o treabă bună în a "transforma" multe proprietăți ale produselor în clase CSS care sunt apoi atribuite containerelor HTML. Nu sunt sigur dacă este legat de tema folosită, dar în cazul meu am ajuns să am un container cu clasa "instock" când produsul era în stoc și "outofstock" când produsul era... indisponibil.

Când am observat acest lucru, nu mi-a luat mult timp să implementez niște reguli CSS pentru a:

  1. Ascunde butonul
  2. Afișa un mesaj în loc, folosind pseudo-elemente CSS și proprietatea content
  3. Face o parte din produs semi-transparentă pentru a arăta mai "inactivă"

Nu aș recomanda această abordare pentru codul de producție al unei companii mari, dar în cazul meu a funcționat suficient de bine. Și funcționează bine și cu produsele care au variații - ele primesc clasa "outofstock" doar când toate variațiile sunt indisponibile.

Nu voi posta niciun cod pentru că, după cum am spus, nu sunt expert, așa că nu pot spune dacă HTML-ul meu este "generic WooCommerce" sau legat de tema folosită sau chiar complet personalizat (nu sunt cel care creează și administrează site-ul de obicei), dar totuși cred că poate ajuta, așa cum m-a ajutat și pe mine.

21 apr. 2021 17:18:21
0

Pentru a elimina butonul "Adaugă în coș" de la o anumită pagină de produs, poți adăuga acest cod în fișierul functions.php (aflat în directorul temei):

add_filter('woocommerce_is_purchasable', 'wpblog_specific_product');
function wpblog_specific_product($purchaseable_product_wpblog, $product) {
return ($product->id == specific_product_id (512) ? false :     $purchaseable_product_wpblog);
}

Referință: https://www.wpblog.com/add-to-cart-button-in-woocommerce-store/

2 nov. 2017 09:23:41
0
-1

Cred că poți folosi următorul fragment de cod:

add_action( 'woocommerce_after_shop_loop_item', function() {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
};
3 iun. 2019 15:13:46