根据WooCommerce购物车中的购物车项目显示消息

时间:2019-04-29 14:22:15

标签: php wordpress woocommerce count cart

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

如何添加一个功能来对购物车中所有物品的数量求和并显示一条消息(如果总数少于指定数量)?

示例:将数字设置为30,购物车中总共包含27个商品,因此系统会显示一条消息“如果您再订购3个商品,您将可以得到...”等。 ,则无需显示任何消息。

1 个答案:

答案 0 :(得分:1)

要根据购物车项目数在购物车页面上显示自定义消息,请使用以下命令:

// 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>';
    }
}