Plugin pro WooCommerce – Ajax košík do menu

Pro holandskou společnost btdonline.nl jsem vytvořil košík pro WooCommerce, který je možné jednoduše přidat do menu eshopu a kde je možné měnit počet kusů a odebírat produkty bez načtení stránky.

I když to je poměrně jednoduché zadání, přineslo několik výzev. Jednou z nich bylo to, aby plugin fungoval i s dalšími pluginy, které přidávají Ajax funkcionalitu do WooCommerce, např. YITH added to cart a dalšími.

Při procházení kódu WooCommerce jsem narazil na filtr add_to_cart_fragments, který umožňuje přesně to, co jsem hledal – obnovit některou část stránky při změně obsahu košíku. Tento filtr je používán například pro obnovování standardní stránky Košík. Pro obnovování košíku v menu tedy stačilo přidat:


add_filter('add_to_cart_fragments', array($this, 'woocommerce_header_add_to_cart_fragment'));

/**
* Add the mini-cart to cart fragments, so it gets updated automatically when the cart is changed
* This should help with the compatibility with other WC plugins
* @param $fragments
* @return mixed
*/
function woocommerce_header_add_to_cart_fragment($fragments)
{
    $fragments['#wmc-cart'] = $this->render_mini_cart();
    return $fragments;
}

 

Výsledkem je plugin, který zobrazí košík pro WooCommerce v menu, umožní měnit množství a odebírat produkty bez znovunačtení stránky, a funguje dobře s ostatními pluginy pro WooCommerce.

Pokud budete mít o podobný plugin zájem nebo potřebujete jinou funkcionalitu pro WordPress nebo WooCommerce, neváhejte mě kontaktovat

 

 

 

 

 

Přidat komentář