Я изменяю цену товара динамически в woocommerce при добавлении в корзину, но set_price, кажется, работает должным образом только тогда, когда пользователь-администратор вошел в систему. Он не работает для других пользователей при входе в систему и не при выходе из системы тоже.
add_action( 'woocommerce_before_calculate_totals', 'update_custom_price', 90, 1 );
function update_custom_price( $cart_object ) {
foreach ( $cart_object->cart_contents as $cart_item_key => $value ) {
if(!empty($value['_custom_options'])){
$custom_price = 100;
$value['data']->set_price($custom_price);
}
}
}
Если я $value['data']->get_price()
возвращает старую цену