@denieln7 mozes pouzit tento snippet, pri pouziti kuponu nastavi nulovu cenu na metodu Packeta (prvu v poradi, ak to potrebujes len pre niektoru z metod alebo vsetky, je potrebne upravit podmienku na ake ID dopravy to aplikovat a vyhodit break)
function set_packeta_free( $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;
}
}
if ($has_free_shipping) {
foreach ( $rates as $rate_id => $rate ) {
if ( stripos($rate->method_id, 'packetery') !== false ) {
$taxes = array();
foreach ($rates[$rate_id]->taxes as $key => $tax){
if ( $rates[$rate_id]->taxes[$key] > 0 )
$taxes[$key] = 0;
}
$rates[$rate_id]->cost = 0;
$rates[$rate_id]->taxes = $taxes;
break;
}
}
}
return $rates;
}
add_filter( 'woocommerce_package_rates', 'set_packeta_free', 10, 2);
-
This reply was modified 2 years, 6 months ago by
morvy.