// Nastavení dopravy zdarma pomocí kupónu add_filter( 'woocommerce_package_rates', 'wpsh_free_shipping_coupon', 20, 2 ); function wpsh_free_shipping_coupon( $rates, $package ) { $has_free_shipping = false; $applied_coupons = WC()->cart->get_applied_coupons(); foreach( $applied_coupons as $coupon_code ){ $coupon = new WC_Coupon($coupon_code); if($coupon->get_free_shipping()){ $has_free_shipping = true; break; } } foreach( $rates as $rate_key => $rate ){ if( $has_free_shipping ){ // Pokud je povolena doprava zdarma, tak ji skryjeme if( $rate->method_id == 'free_shipping'){ unset($rates[$rate_key]); } // Pro ostatní dopravy nastavíme else { // Místt cen yzobrazíme ZDARMA $rates[$rate_key]->label .= ' ' . __('(ZDARMA)', 'woocommerce'); // Cena dopravy bude $rates[$rate_key]->cost = 0; // Nastavíme daň pro dopravu $taxes = array(); foreach ($rates[$rate_key]->taxes as $key => $tax){ if( $rates[$rate_key]->taxes[$key] > 0 ) $taxes[$key] = 0; } $rates[$rate_key]->taxes = $taxes; } } } return $rates; } // Automaticky aplikujeme kupón pro dopravu zdarma add_action( 'woocommerce_before_cart' , 'add_coupon_notice' ); add_action( 'woocommerce_before_checkout_form' , 'add_coupon_notice' ); function add_coupon_notice() { $cart_total = WC()->cart->get_subtotal(); $minimum_amount = 1100; // Nastav jaká je minimální výše v košíku, kdy je doprava zdarma $currency_code = get_woocommerce_currency(); wc_clear_notices(); if ( $cart_total < $minimum_amount ) { WC()->cart->remove_coupon( 'doprava' ); // zadej kód pro dopravu zdarma. wc_print_notice( "Získejte dopravu ZDARMA pokud nakupíte za více než $minimum_amount Kč", 'notice' ); } else { WC()->cart->apply_coupon( 'doprava' ); wc_print_notice( 'Právě jsme Vám dali dopravu ZDARMA!', 'notice' ); } wc_clear_notices(); }