drnbotxo449747 2017-11-01 21:48
浏览 112
已采纳

获取购物车总数,包括WooCommerce中最后添加的商品

In WooCommerce I'm trying to get the cart total when hooking into woocommerce_add_to_cart. That works, but the cart total returned is the total prior to the last added item. I want the updated total, to be able to display a notice regarding shipping costs.

Any idea how to achieve this?

My current code:

function oppsalg_add_to_cart() {
    global $woocommerce;

    // Limit
    $minimum_cart_total = 1000;

    // Cart value (Not including the last added item)
    $total = WC()->cart->subtotal;

    // Comparison
    if( $total < $minimum_cart_total ) {
        // Display notice
        wc_add_notice( sprintf( '<strong>Shipping is free above %s.</strong>'
            .'<br />Your total is %s. Perhaps you would like to add more items?',
            $minimum_cart_total,
            $total ),
        'notice' );
    }
}
add_action('woocommerce_add_to_cart', 'oppsalg_add_to_cart');
  • 写回答

1条回答 默认 最新

  • dongzhong7443 2017-11-02 06:19
    关注

    Here you go, just tested this solution on adding a single page product to the cart without AJAX. This won't modify the message you see when you change the cart quantity on the Cart page though via AJAX. Also you should make the shipping cost dynamic so that it's not hard coded like I have done below, that can be your homework to fix.

    add_filter( 'wc_add_to_cart_message_html', 'modify_wc_add_to_cart_message_html', 10, 2 );
    
    function modify_wc_add_to_cart_message_html( $message, $products ) {
    
        $minimum_cart_total = 100;
        $cart_total = WC()->cart->cart_contents_total;
    
        if( $cart_total < $minimum_cart_total ) {
            $message = sprintf( '<strong>Shipping is free above %s.</strong>'
                                .'<br />Your total is %s. Perhaps you would like to add more items?',
                                wc_price( $minimum_cart_total ),
                                wc_price( $cart_total )
                                );
        }
    
        return $message;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀