Jak na jednokrokový košík ve WooCommerce

woocommerce

Pokud chcete ušetřit Vaše zákazníky klikání a zobrazit jim košík zároveň s pokladnou, tak to můžete provést i bez pluginu. Stačí přidat pár kousků kódu do souboru functions.php ve vaší šabloně nebo ve Vašem pluginu.

1. Zrušte přiřazení stránky košíku v nastavení WooCommerce

Jděte v administraci do WooCommerce > Nastavení > Pokročilé a stránku košíku ponechte prázdnou.

2. Přidání košíku na stránku pokladny

Pokud jste se někdy dívali co obsahuje stránka košíku v editoru, tak jste si všimli, že v ní byl pouze tento shortcode [woocommerce_cart], tento shortcode nám umožňuje zobrazit košík kdekoliv na webu. Vložením následujícího kódu do souboru functions.php jej dostaneme nahoru na stránku pokladny.

add_action( 'woocommerce_before_checkout_form', 'navodovna_cart_on_checkout_page_only', 5 );
 
function navodovna_cart_on_checkout_page_only() {
 
if ( is_wc_endpoint_url( 'order-received' ) ) return;
 
echo do_shortcode('[woocommerce_cart]');
 
}

3. Přesměrování odkazů košíku na pokladnu

I přes to, že jsme zrušili přiřazení stránky košíku a odstranili jej, tak se nám může stát, že nás například po kliknutí na košík odkaz dostane na neexistující stránku. Tomu předejdeme přidáním tohoto kódu, opět do functions.php.

add_action( 'template_redirect', 'navodovna_redirect_to_checkout_if_cart' );
function navodovna_redirect_to_checkout_if_cart() {
	if ( !is_cart() ) return;
	global $woocommerce;
    // Redirect na url pokladny
	wp_redirect( $woocommerce->cart->get_checkout_url(), '301' );
	exit;	
}

Nyní je vše hlavní připraveno. Co ale asi bude potřebovat ještě úpravu jsou styly tabulky košíku, mohou být trochu rozhozené oproti původní stránce, jelikož jsou vázané na třídu .woocommerce-cart, která na stránce pokladny není a je třeba tyto styly navázat na .woocommerce-checkout.

4. Přesměrování při prázdném košíku

Pokud potřebujete, aby se při prázdném košíku nezobrazovala pokladna, tak můžete nastavit přesměrování na libovolnou url. V tomto příkladu bude přesměrování na stránku obchodu.

add_action( 'template_redirect', 'navodovna_redirect_empty_cart_checkout_to_home' );
 
function navodovna_redirect_empty_cart_checkout_to_home() {
   if ( is_cart() && is_checkout() && 0 == WC()->cart->get_cart_contents_count() && ! is_wc_endpoint_url( 'order-pay' ) && ! is_wc_endpoint_url( 'order-received' ) ) {
      wp_safe_redirect( get_permalink( woocommerce_get_page_id( 'shop' ) ) );
      exit;
   }
}
Reklama zdarma, zvýšení návštěvnosti

5. Načtení Javascriptu pro aktualizaci košíku

Všechno je tam, kde má být, ale když chcete změnit obsah košíku a poté kliknete na tlačítko Aktualizovat košík a stránka se Vám začne načítat celá znovu. To je však nežádoucí a je potřeba načíst na stránku Javascript košíku, který bude toto řešit skrze AJAXový požadavek. Tento Javascript je ve WordPressu zaregistrován pod handlem wc-cart, takže jej stačí zavolat pomocí funkce wp_enqueue_script na stránce pokladny pomocí tohoto kódu.

function navodovna_nacti_javascript_kosiku(){
    if (is_checkout()) {
        wp_enqueue_script('wc-cart');
    }
}
add_action( 'wp_enqueue_scripts', 'navodovna_nacti_javascript_kosiku', 10 );
Reklama
Zobrazeno 36 krát.
%d bloggers like this: