首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Woocommerce WC()->cart->set_cart_content()无效

Woocommerce WC()->cart->set_cart_content()无效
EN

Stack Overflow用户
提问于 2019-12-18 16:00:31
回答 1查看 1.6K关注 0票数 4

我有一个自定义定价WP页面与定价表。得到了3个参数,即$product_id,$quantity,$total_price。我将产品创建为普通的WC产品,给出了每个产品的初始价格description...etc,并获得了I。

然后通过Ajax将参数发送到PHP函数。这一职能:

代码语言:javascript
复制
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_contents();
            foreach( $cart as $key => $value ) {
                $value['data']->price = $price/$qty; // Set the per unit price, so, it match when cart sub total is calculated
            }
            WC()->cart->set_cart_contents($cart->cart_contents);
            WC()->cart->maybe_set_cart_cookies();
            WC()->cart->calculate_totals();
    }
    die();
}

我面临的问题是,虽然,产品添加,数量增加,购物车坚持显示,计算根据最初的产品价格。

示例:

假设A产品的初始价格是15美元.在定价页面中,客户订购了5台,相应的价格是75美元。如果他加一个第六个单元,那么het会得到50%的折扣(只对额外的单元,整个单元),因此,6个单元的价格为82.5美元。这是页面通过Ajax发送的内容:

correctly)

  • quantity =6 (goes ok)

  • total_price = $82.5 (以下是问题所在)

无论我做什么,这辆车都显示总数=6x15=90美元。

我在这里错过了什么??

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-12-12 23:13:10

那这个呢?

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59395840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档