Как добавить пользовательскую стоимость доставки в woocommerce?

Я хочу добавить стоимость доставки с помощью кода в woocommerce. вот мои регалии.

Если моя страна перевозкы груза Австралия, то обязанность перевозкы груза другая и вне австралия также по-разному. теперь, если моя страна доставки – Австралия и

1. if order value is < 100, then shipping charge is $100 2. if order value is > 100, then shipping charge is $0. 

Если моя страна доставки находится за пределами Австралии и

  1. if order value is < 500, then shipping charge is $60 2. if order value is > 500 and < 1000, then shipping charge is $50 3. if order value is > 1000, then shipping charge is $0 

Итак, как я могу добавить пользовательскую стоимость доставки в соответствии с моими вышеуказанными требованиями, когда пользователь меняет страну доставки со страницы проверки. Я попробовал под кодом, но он работает только на уровне заказа, как я могу добавить страну доставки в код ниже в пользовательском плагине.

 class WC_Your_Shipping_Method extends WC_Shipping_Method { public function calculate_shipping( $package ) { global $woocommerce; if($woocommerce->cart->subtotal > 5000) { $cost = 30; }else{ $cost = 3000; } } $rate = array( 'id' => $this->id, 'label' => $this->title, 'cost' => $cost, 'calc_tax' => 'per_order' ); // Register the rate $this->add_rate( $rate ); 

}

Лучше сделать собственный плагин для доставки, где вы можете использовать крючок.
Сначала добавьте класс «WC_Your_Shipping_Method» в свой настраиваемый плагин и выполните функцию следующим образом:

 public function calculate_shipping( $package ) { session_start(); global $woocommerce; $carttotal = $woocommerce->cart->subtotal; $country = $_POST['s_country']; //$package['destination']['country']; if($country == 'AU') { if($carttotal > 100){ $cost = 5; }else{ $cost = 10;//10.00; } } else { if($carttotal < 500){ $cost = 60;//60.00; }else if($carttotal >= 500 && $carttotal <= 1000){ $cost = 50;//50.00; }else if($carttotal > 1000){ $cost = 0; } } $rate = array( 'id' => $this->id, 'label' => 'Shipping', 'cost' => $cost, 'calc_tax' => 'per_order' ); // Register the rate $this->add_rate( $rate ); } 

сначала сделайте метод доставки в имени администратора как «myship»,

затем добавьте ниже код в свой файл functions.php темы.

 add_action('woocommerce_before_cart_table', 'discount_when_produts_in_cart'); function discount_when_produts_in_cart( ) { global $woocommerce; $coupon_code = 'myship'; if( $woocommerce->cart->get_cart_total() > 500 ) { $coupon_code = 'myship'; } else { $woocommerce->cart->remove_coupons(sanitize_text_field($coupon_code)); $woocommerce->clear_messages(); }