У меня есть функция на моем веб-сайте Woocommerce, которая позволяет клиентам устанавливать индивидуальную сумму для оплаты определенного продукта, основываясь на значении, которое я передаю через URL.
Я использую крюк woocommerce_before_calculate_totals
, и до тех пор, пока я не обновил до WC 3.3.5, он работал нормально. Теперь, когда я запускаю код, на кассе изначально отображается заказная сумма.
Однако после того, как загрузчик завершил обновление, он сбрасывает цену на «0» (т. Е. Отображает £ 0,00 на полях страницы оформления заказа).
Вот этот код:
add_action( 'woocommerce_before_calculate_totals', 'pay_custom_amount', 99);
function pay_custom_amount() {
$payment_value = $_GET['amount'];
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if($cart_item['data']->id == 21 ){
$cart_item['data']->set_price($payment_value);
}
}
}
Ну, цвет меня расстроил. Я просмотрел Stack Overflow для решений, но не вижу подобных проблем. Я вижу, что крюк запускается несколько раз, но это нормально.
Если кто-нибудь знает, что здесь может происходить, было бы здорово, если бы вы могли поделиться.