Стоимость доставки добавляется в зависимости от количества товаров в корзине Woocommerce, превышающего 40 евро. Дополнительная стоимость зависит от страны доставки. - PullRequest
0 голосов
/ 09 мая 2020

Это небольшая функция, которую я пишу для добавления дополнительных затрат на доставку в зависимости от количества продуктов в корзине, цена которых превышает 40 евро.

скриншот моего кода

<br>
<div>

<?php  

  $additionalShippingCosts = 0;

    foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
     $product = $cart_item['data'];
     $product_id = $cart_item['product_id'];
     $quantity = $cart_item['quantity'];
     $price = WC()->cart->get_product_price( $product );
     $pricenum = (float) $product->get_price();

     if($pricenum < 40) {
      $price2 = 0; 
     } else {
      $price2 = 5;
       $additionalShippingCosts += $price2*$quantity;
     }
?>

  <div>product price: <?php echo $pricenum; ?></div>
  <div>extra cost: <?php echo $price2; ?> * <?php echo $quantity; ?></div>

  <br>
<?php
}


?>

  <div>Additional shipping cost: <?php echo $additionalShippingCosts; ?></div>



</div>

Я дошел до того момента, когда функция вычисляет, сколько должно быть добавлено к доставке, теперь мне нужно 1) фактически добавить это к стоимости доставки 2) запускать его каждый раз при обновлении корзины 3) ввести условия для страны доставки

Условные обозначения будут простыми, я собираюсь их жестко закодировать. Обычно «при доставке в Германию дополнительная стоимость доставки для каждого товара стоимостью более 40 евро составляет 10 евро» и «при доставке в Ирландию дополнительная стоимость доставки для каждого товара стоимостью более 40 евро составляет 15 евро»

Как корзина страница выглядит с примечаниями о том, как она должна выглядеть

1 Ответ

0 голосов
/ 09 мая 2020

[решено] Я допустил ошибку, не изучив должным образом, на что способны классы доставки. Для этого не нужен специальный код. Просто установите фиксированную ставку для местоположения -> добавьте класс доставки для продуктов, стоимость которых превышает XX евро -> установите цену для класса, а не класса, то есть 10,00 * [количество] и 20,00 * [количество]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...