Я пытаюсь предоставить пользователю скидку на основе поля количества на странице отдельного продукта.
В основном, на сайте продаются билеты, и у меня разные цены для взрослых и для детей. Поэтому я создал поля ввода на странице одного продукта, чтобы пользователь мог указать, сколько взрослых и сколько детей он покупает.
В админке продукта у меня есть ACF (расширенное настраиваемое поле) для "скидки для детей". ", поэтому в корзине я хочу дать эту скидку исходя из количества детей. Например, предположим, что для этого продукта пользователь покупает 5 билетов, 3 для взрослых и 2 для детей, я хочу рассчитать скидку для этих 2 детей.
Что я пробовал до сих пор:
add_action( 'woocommerce_before_add_to_cart_button', 'custom_product_price_field', 5 );
function custom_product_price_field(){
echo '<div class="custom-text text">
<p>Quantity of adults:</p>
<input type="text" name="qtty_adults" value="" title="Quantity Adults" class="qtty-field">
</div>
<div class="custom-text text">
<p>Quantity of children:</p>
<input type="text" name="qtty_kids" value="" title="Quantity Kids" class="qtty-field">
</div>';
}
add_action('woocommerce_cart_calculate_fees' , 'add_user_discounts');
function add_user_discounts( WC_Cart $cart ){
global $product;
$qtty_kids = (float) sanitize_text_field( $_POST['qtty_kids'] );
$discount_per_kid = (float) get_field('children_discount', $product->id);
$discount = $qtty_kids * $discount_per_kid;
$cart->add_fee( 'Discount for children', -$discount);
}
При этом скидка всегда составляет $ 0
Кто-нибудь может мне помочь, как это сделать?