我有一个带有定价表的自定义定价WP页面。在那里,我得到3个参数,即$ product_id,$ quantity,$ total_price。我已经将产品创建为常规WC产品,并给每个产品提供了初始价格,说明...等,并获得了ID。
然后通过Ajax将参数发送到PHP函数。此功能:
end:
leave
ret
我面临的问题是,尽管增加了产品,增加了数量,购物车坚持显示,并根据初始产品价格进行计算。
示例:
假设产品A的初始价格为$ 15 ...在定价页面中,客户订购了5个单位,因此价格为$ 75。如果他添加第六个单位,则het将获得50%的折扣(仅在附加单位上,整个单位),因此,六个单位的价格变为$ 82.5。页面通过Ajax发送的内容:
无论我做什么,购物车都会显示总计= 6 x 15 = $ 90
我在这里想念什么?
谢谢。
答案 0 :(得分:0)
那呢?
function my_ajax_functions() {
check_ajax_referer( 'my_ajax_nonce', 'security' );
if('checkout' == esc_attr($_POST['required_action'])) {
$product = esc_attr($_POST['product_id']);
$qty = esc_attr($_POST['quantity']);
$price = ltrim(esc_attr($_POST['total_price']), '$');
WC()->cart->empty_cart();
WC()->cart->add_to_cart( $product, $qty);
$cart = WC()->cart->get_cart();
foreach( $cart as $key => $value ) {
$value['data']->set_price($price/$qty); // Set the per unit price, so, it match when cart sub total is calculated
}
WC()->cart->maybe_set_cart_cookies();
WC()->cart->calculate_totals();
}
die();
}