Autor Zpráva
Marek Sklenka
Profil
Používam tento kód na magnetfishing.sk:
// upozorni zakaznika, ze magnet 1100kg nie je skladom
add_action('woocommerce_add_to_cart', 'upozorni_na_kuzel', 1 );
add_action('woocommerce_before_cart', 'upozorni_na_kuzel', 1 );
add_action('woocommerce_before_checkout_form', 'upozorni_na_kuzel', 1 );

function upozorni_na_kuzel( $wc_cart ){
    
    if ( ! defined( 'DOING_AJAX' ) ) return;
    do_action( 'woocommerce_set_cart_cookies',  true );
    
    $magnet_1100_v_kosiku = check_products_in_cart(array(1019));
    
    if($magnet_1100_v_kosiku) wc_add_notice( __( "<b>Obojstranný magnet 1100kg práve nemáme na sklade</b>. Objednávku vybavíme akonáhle magnety prídu na sklad. Očakávaný termín dodania je 10. október." ), 'error');
    
}

Po pridaní magnetu 1100kg do košíka a navštívení stránky "košík" sa mi oznam zobrazí. Ale keď stránku "košík" refreshnem, oznam zmizne.

Funkcia check_products_in_cart() určite funguje správne. Problém pretrváva, aj keď som namiesto if($magnet_1100_v_kosiku) napísal if(true). Oznam sa zobrazí iba raz.

Ako dosiahnuť, aby sa zoznam stále zobrazoval na stránkach "košík" a "pokladňa", kým je magnet 1100kg v košíku?
Keeehi
Profil
Pokud to správně chápu tak řádek 8 zajišťuje že se následující kód vykoná jen pokud jde o AJAXový požadavek. Což refresh nebo přechod na další stránku není.

Zkusil bych řádek 8 zakomentovat. Ale úspěch nezaručuji, s woocommerce zkušenosti nemám, hádám jen z kódu.
Marek Sklenka
Profil
Keeehi:
Ďakujem. Malo to byť naopak, nech sa to deje iba ak nejde o AJAX. Dal som preč výkričník a funguje to.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0