Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 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();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement