根据 WooCommerce 购物车中的购物车商品数量显示消息

Display message based on cart items count in WooCommerce cart

我想在 woocommerce_before_cartwoocommerce_before_cart_table 如果购物车中的商品总数少于X,也显示差额。我所说的项目是指个别数量而不是产品线。

我如何添加一个函数来计算购物车中所有商品的数量并在总数小于指定数量时显示一条消息?

示例:将数量设置为 30,购物车总共包含 27 件商品,因此消息会显示 'If you order 3 more items you can get...' 等。但如果购物车已经有 30 件或更多商品,则无需显示消息.

要根据购物车商品数量在购物车页面上显示自定义消息,请使用以下内容:

// On cart page only
add_action( 'woocommerce_check_cart_items', 'custom_total_item_quantity_message' );
function custom_total_item_quantity_message() {
    $items_count = WC()->cart->get_cart_contents_count();
    $min_count   = 30;

    if( is_cart() && $items_count < $min_count ){
        wc_print_notice( sprintf( __("If you order %s more items you can get…", "woocommerce"), $min_count - $items_count ), 'notice' );
    }
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。测试和工作。


如果使用 woocommerce_before_cartwoocommerce_before_cart_table,则在更改数量或删除项目时将不会更新剩余计数……尝试:

add_action( 'woocommerce_before_cart', 'custom_total_item_quantity_message' );
function custom_total_item_quantity_message() {
    $items_count = WC()->cart->get_cart_contents_count();
    $min_count   = 30;

    if( is_cart() && $items_count < $min_count ){
        echo '<div class="woocommerce-info">';
        printf( __("If you order %s more items you can get…", "woocommerce"), $min_count - $items_count );
        echo '</div>';
    }
}

或:

add_action( 'woocommerce_before_cart_table', 'custom_total_item_quantity_message' );
function custom_total_item_quantity_message() {
    $items_count = WC()->cart->get_cart_contents_count();
    $min_count   = 30;

    if( is_cart() && $items_count < $min_count ){
        echo '<div class="woocommerce-info">';
        printf( __("If you order %s more items you can get…", "woocommerce"), $min_count - $items_count );
        echo '</div>';
    }
}