我试图根据单个产品页面中的数量字段为用户提供折扣。
基本上,该网站出售门票,成人和儿童的价格不同。所以我在单个产品页面中创建了输入字段,这样用户就可以输入他要购买的成人人数和儿童人数。
在产品管理员中,我有一个“儿童折扣”的 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
谁能给我一些关于如何实现这一点的帮助?
呼如林