Nakupte ještě za XXX a máte dopravu zdarma!

Chcete informovat zákazníka o tom, za kolik má ještě nakoupit, aby měl dopravu zdarma? Tento snippet zobrazí hlášení, za kolik má ještě zákazník nakoupit, aby měl dopravu zdarma. Jen upozorním, že tento jednoduchý snippet není vhodný pro více dopravních zón či měn. Na to už doporučuji použít regulérní placené pluginy.

 

Nakupte ještě za XXX a máte dopravu zdarma!

// do dopravy zdarma zbývá
add_action( 'woocommerce_before_cart', 'vandaal_free_shipping_cart_notice_zones' ); // zobrazení hlášky v košíku
add_action( 'woocommerce_before_checkout_form', 'vandaal_free_shipping_cart_notice_zones' ); // zobrazení hlášky v pokladně
add_action( 'woocommerce_before_add_to_cart_button', 'vandaal_free_shipping_cart_notice_zones' ); // zobrazení hlášky na stránce produktu nad tlačítkem Přidat do košíku

function vandaal_free_shipping_cart_notice_zones() {

global $woocommerce;

$default_zone = new WC_Shipping_Zone(0);
$default_methods = $default_zone->get_shipping_methods();

foreach( $default_methods as $key => $value ) {
if ( $value->id === "free_shipping" ) {
if ( $value->min_amount > 0 ) $min_amounts[] = $value->min_amount;
}
}

$delivery_zones = WC_Shipping_Zones::get_zones();

foreach ( $delivery_zones as $key => $delivery_zone ) {
foreach ( $delivery_zone['shipping_methods'] as $key => $value ) {
if ( $value->id === "free_shipping" ) {
if ( $value->min_amount > 0 ) $min_amounts[] = $value->min_amount;
}
}
}

if ( is_array($min_amounts) ) {

$min_amount = min($min_amounts);

$current = WC()->cart->subtotal;

if ( $current < $min_amount ) {
// nastylujte si podle potřeby
$added_text = sprintf('<div class="ndz-info-doprava-zdarma"><span class="info-doprava-zdarma"><strong>Nakupte ještě za ', 'woocommerce' ) . wc_price( $min_amount - $current ) . sprintf(' a máte dopravu ZDARMA!</strong></span></div>', 'woocommerce' );
$return_to = apply_filters( 'woocommerce_continue_shopping_redirect', wc_get_raw_referer() ? wp_validate_redirect( wc_get_raw_referer(), false ) : wc_get_page_permalink( 'shop' ) );
$notice = sprintf( '<a href="%s" class="button wc-forward">%s</a> %s', esc_url( $return_to ), esc_html__( 'Pokračovat v nákupu', 'woocommerce' ), $added_text );
wc_print_notice( $notice, 'notice' );
}

}

}
Hodnocení: 5.5/10. hodnotili 2 lidé
Please wait...

1 komentář u „Nakupte ještě za XXX a máte dopravu zdarma!“

  1. A sakra, ja má viac dopravných zón samozrejme. Odporúčaš nejaký komplexný plugin? Tie populárne Jetpack alebo Booster to dokážu?

Napsat komentář