Ние създаваме уебсайтове за теб и твоят бизнес. За информация и запитвания:  +359 876 700 417

Как да добавим съобщение за оставащата сума до безплатна доставка в WooCommerce

12.06.2017

Как да добавим съобщение за оставащата сума до безплатна доставка в WooCommerce

Всеки собственик на онлайн магазин се стреми по всякакъв начин да направи живота на неговите потребители, максимално лесен, както и да ги накара да поръчват повече от него.

За тази цел, в тази кратка статия ще Ви представим начин, как да накарате потребителите да добавят достатъчно продукти в кошницата си, за да достигнат заложената сума за безплатна доставка.

И така, нека преминем към съществената част. Чудите се как най-ленсо и безболезнено да добавите тази функционалност във Вашия WooCommerce онлайн магазин? Много лесно! Нужно е само да добавите кода по-долу във functions.php файла на вашата тема или child тема.

ВАЖНО: винаги използвай child тема в WordPress!

// Notice with $$$ remaining to Free Shipping @ WooCommerce Cart 
// Tested with WooCommerce version 3.0.5 

function free_shipping_cart_notice() { 
  global $woocommerce; 

  // Get Free Shipping Methods for Rest of the World Zone & populate array $min_amounts
  $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;
      }
    }

    // Get Free Shipping Methods for all other ZONES & populate array $min_amounts
    $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;
        }
      }
    }

    // Find lowest min_amount
    if ( is_array($min_amounts) ) {
       $min_amount = min($min_amounts);

       // Get Cart Subtotal inc. Tax excl. Shipping
       $current = WC()->cart->subtotal;

       // If Subtotal < Min Amount, еcho Notice and add "Continue Shopping" button
       if ( $current < $min_amount ) {
          $added_text = esc_html__('You need to add ', 'woocommerce' ) . wc_price( $min_amount - $current ) . esc_html__(' for free delivery!', '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( '/' ) );
    $notice = sprintf( '%s %s', esc_url( $return_to ), esc_html__( 'Continue shopping', 'woocommerce' ), $added_text );
    wc_print_notice( $notice, 'notice' );
       }
    }
}
add_action( 'woocommerce_before_cart', 'free_shipping_cart_notice' );

Честито! Вече имате поредната готина функционалност, която ще накара потребителите, да пазаруват повече.

Ако имате въпроси или се нуждаете от помощ, коментирайте под тази статия или се свържете с нас.

WordPress, Програмиране, Трикове и съвети ,
За Martin Nestorov
I dedicated 5 years of my life to history. I’ve never known that soon after university graduation I would find my one and only true passion – web development and programming.