Я использую это действие для добавления пользовательской цены к элементу с вводом пользовательского поля как $_SESSION['wo_price_d_"product_id"'];
, но если пользователь каждый раз добавляет в корзину более одной позиции с различной ценой, ловушка действия перезаписывает старую цену элемента и добавить новый с +1 к количеству,
Как я могу позволить пользователю добавить элемент более одного без перезаписи старого?
woocommerce v3 +
add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );
function add_custom_price( $cart_object ) {
foreach ( $cart_object->cart_contents as $key => $value ) {
$product_id =$value['data']->id;
$price = $_SESSION['wo_price_d_'.$product_id];
if($price){
$value['data']->set_price($price);
}
}
}