Я написал простой фрагмент кода Woocommerce, чтобы добавить правила условной доставки. Но он выглядит раздутым. Может есть способ получше? - PullRequest
0 голосов
/ 10 июля 2020

Написал небольшой код, но, возможно, есть лучший / более короткий способ добиться того же. Я рад помощи от всех, кто более опытен, чем я:

   
function conditionals_for_shipping_class( $rates, $package ) {
   $total = WC()->cart->cart_contents_total;
   $shipping_class_target = 120; // shipping class ID
   $in_cart = false;
   foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
      if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target ) {
         $in_cart = true;
         break;
      } 
   }
   if ( $in_cart && ( 325 <= $total )) { // also goto and change free shipping threshold
      unset( $rates['free_shipping:3'] ); // shipping method with ID
      unset( $rates['flat_rate:4'] );
      unset( $rates['flat_rate:2'] );
   }
   elseif ( $in_cart && ( 324 >= $total && 85 <= $total)) {
      unset( $rates['flat_rate:2'] );
   }
   elseif (! $in_cart && 325 <= $total ) {
       unset( $rates['free_shipping:5'] );
       unset( $rates['flat_rate:4'] );
       unset( $rates['flat_rate:2'] );
   }
   elseif (! $in_cart && 324 >= $total && 85 <= $total) {
       unset( $rates['flat_rate:4'] );
       unset( $rates['flat_rate:2'] );
   }
   return $rates;
}```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...