在 Woocommerce 3 中自定义添加到购物车消息

Customize add to cart message in Woocommerce 3

我想将“[产品名称]”已添加到您的购物车提示更改为 'x item(s) has/have been added to your basket'。

This thread 解释了如何编辑添加到购物车消息,但我找不到任何关于可以使用的变量的信息。

如何显示添加的产品数量而不是名称?

从 Woocommerce 3 开始,过滤器挂钩 wc_add_to_cart_message 已过时,现在被 wc_add_to_cart_message_html 取代…

函数可用变量参数有两个:

  • $message即输出的字符串message
  • $products 这是一个包含产品 ID/数量对的索引数组 (key / value).

要更改默认值 "{qty} x {product-name} 已添加到您的购物车" 留言至:

{qty} item(s) has/have been added to your basket.

您将使用以下内容:

add_filter( 'wc_add_to_cart_message_html', 'custom_add_to_cart_message_html', 10, 2 );
function custom_add_to_cart_message_html( $message, $products ) {
    $count = 0;
    foreach ( $products as $product_id => $qty ) {
        $count += $qty;
    }
    // The custom message is just below
    $added_text = sprintf( _n("%s item has %s", "%s items have %s", $count, "woocommerce" ),
        $count, __("been added to your basket.", "woocommerce") );

    // Output success messages
    if ( 'yes' === get_option( 'woocommerce_cart_redirect_after_add' ) ) {
        $return_to = apply_filters( 'woocommerce_continue_shopping_redirect', wc_get_raw_referer() ? wp_validate_redirect( wc_get_raw_referer(), false ) : wc_get_page_permalink( 'shop' ) );
        $message   = sprintf( '<a href="%s" class="button wc-forward">%s</a> %s', esc_url( $return_to ), esc_html__( 'Continue shopping', 'woocommerce' ), esc_html( $added_text ) );
    } else {
        $message   = sprintf( '<a href="%s" class="button wc-forward">%s</a> %s', esc_url( wc_get_page_permalink( 'cart' ) ), esc_html__( 'View cart', 'woocommerce' ), esc_html( $added_text ) );
    }
    return $message;
}

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