// 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();
}
Comments
0 B
|👍
/👎