#php #wordpress #woocommerce #hook-woocommerce
Вопрос:
Я использую фильтр на woocommerce_product_variation_get_price
чтобы попытаться получить сумму всего количества для конкретного приодука в корзине, чтобы я мог изменить его цену.
if( $product->is_type( 'variable' ) || $product->is_type( 'variation' ) ){
$cart_item_quantities = WC()->cart->get_cart_item_quantities();
$otroci = $product->get_children();
foreach ($otroci as $kiddy) {
$kolicinavv = isset( $cart_item_quantities[ $kiddy ] ) ? $cart_item_quantities[ $kiddy ] : null;
echo $kolicinavv;
}
$price = $kolicinavv;
if ($kolicinavv == 1) {echo "1a"; $price = 100;}
if ($kolicinavv == 2) {echo "2b"; $price = 200;}
if ($kolicinavv == 3) {echo "3c"; $price = 300;}
if ($kolicinavv > 3) {echo "4d"; $price = 400;}
return $price;
}
Проблема в том, что если я суммирую количество, я ничего не могу сделать с количеством… Фильтр не работает для установки цены (но echo работает правильно)
Комментарии:
1. Первая проблема заключается в том, что в PHP конкатенатором строк является a
.
, а нето, что является конкатенатором javascript. php.net/manual/en/language.operators.string.php и если вы повторите вывод внутри своего внешнего вида, он будет отображаться каждый раз (если только вы этого не хотите).