#php #wordpress #woocommerce
Вопрос:
Как я могу подсчитать с помощью итерации количество моего продукта, если оно превышает количество, которое может поместиться в одной палете.
Пример ограничение на одну палету составляет 100, и если это количество продукта превышает 101, то оно добавляет 2 итерации, как вторая палета.
Мой код:
$tkp = 1;
foreach( WC()->cart->get_cart() as $cart_item ){
if (!empty(get_post_meta($cart_item['variation_id'], '_number_field', true))) { //this checks if pallet price is empty or not.
$a = $cart_item['quantity']; // these are products with pallets already.
} else {
$atk = strstr(get_post_meta($cart_item['variation_id'], '_alus_al', true), "units", true); // it checks how many products can be in pallet for this variation (ex. 100 units)
if ($cart_item['quantity'] > $atk) {
$tk = $tkp ;
}
$tkc = $tk * 8; // 8 is pallet price.
}
$calc = $a * 8 $tkc;
WC()->cart->add_fee(__('Alused', 'txtdomain'), $calc);
}
Комментарии:
1.
ceil( $quantity / 100 )
Ответ №1:
Вы должны делать $tk = ceil($cart_item['quantity'] / $atk)
и не делать проверку «если». Таким образом, вы подсчитываете, сколько палитр вам нужно. Функция ceil округляет их, потому что вы не можете отправить половину палитры
Комментарии:
1. У меня есть 3 продукта, первое количество продукта 1, второе количество продукта 101, третье количество продукта 201, и оно показывает 3, и оно показывает, что значение $tk равно 2.