Vyprázdnění košíku ve WooCommerce pomocí kódu

Při vývoji e-shopu se nám při testování může stát, že máme najednou košík plný produktů a odstraňovat položku po položce při větším počtu vložených produktů může být dosti otravné. Čas si můžeme výrazně zkrátit pomocí kousku kódu, který najdete v tomto návodu.

PHP funkce pro vyprázdnění košíku ve WooCommerce

Pro vyprazdňování košíku použijeme níže uvedenou funkci vyprazdnit_kosik, kterou zavěsíme na akční hook woocommerce_init. To zajistí, že se naše funkce spustí při inicializaci WooCommerce. Funkce se tak načte při každém načtení stránky s WooCommerce, její střeva se však do pohybu samy nedají, protože jinak by se nám ani do košíku nepodařilo nic přidat.

Pro spuštění celé akce promazávání košíku tak bude potřeba přidat do URL parametr vyprazdni_kosik s libovolnou hodnotou, nikoliv však bez hodnoty. URL pak bude vypadat nějak takto https://vase.domena/?vyprazdnit_kosik=true. Po vyprázdnění košíku budete přesměrováni na homepage vašeho webu.

Kód uvedení níže vložte do souboru functions.php, případně jinam, odkud je možné PHP scripty spouštět.

function vyprazdnit_kosik() {
    if (isset($_GET['vyprazdnit_kosik'])) {
      global $woocommerce;

      // Získání ID aktuálně přihlášeného uživatele (pokud je přihlášen)
      $user_id = get_current_user_id();

      // Získání ID košíku příslušícího aktuálnímu uživateli
      $cart_id = $woocommerce->cart->generate_cart_id( $user_id );

      // Získání klíče košíku příslušícího aktuálnímu uživateli
      $cart_key = $woocommerce->cart->generate_cart_id( $cart_id );

      // Vyprázdnění košíku
      $woocommerce->cart->empty_cart();

      // Přesměrování na homepage
      wp_redirect( home_url() );
    exit;
    }
}
add_action('woocommerce_init', 'vyprazdnit_kosik');

MĚJTE PŘEHLED, CO SE DĚJE NA
ČESKÝCH PLUGINECH

A navíc získejte slevu 10 % na váš první nákup!

Nespamujeme! Další informace naleznete v našich zásadách ochrany osobních údajů.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

3 × dvě =