基于 WooCommerce 页面的不同消息
Different Messages Based on WooCommerce Page
我正在尝试更改在将产品添加到购物车和/或通过连接到 woocommerce_add_message
更新购物车时显示的消息。它根本没有显示任何内容,我想知道为什么。
我试过 echo
我试过 return__(
这是代码:
add_filter('woocommerce_add_message', 'change_cart_message', 10);
function change_cart_message() {
$ncst = WC()->cart->subtotal;
if ( is_checkout() ) {
echo 'Your new order subtotal is: '.$ncst.'. <a style="color: green;" href="#customer_details">Ready to checkout?</a>';
}
elseif ( is_product() ) {
echo 'Your new order subtotal is: '.$ncst.'. <a style="color: green;" href="'.wc_get_checkout_url().'">Ready to checkout?</a>';
}
else {
echo 'Your new order subtotal is: '.$ncst.'. <a style="color: green;" href="'.wc_get_checkout_url().'">Ready to checkout?</a>';
}
}
我做错了什么?
Important note: A filter hook has always a variable argument to be returned.
使用过滤器挂钩时,您始终需要 到 return 过滤值参数(但不要回应它)...
您的代码也可以简化和压缩:
add_filter('woocommerce_add_message', 'change_cart_message', 10, 1 );
function change_cart_message( $message ) {
$subtotal = WC()->cart->subtotal;
$href = is_checkout() ? '#customer_details' : wc_get_checkout_url();
return sprintf( __("Your new order subtotal is: %s. %s"), wc_price($subtotal),
'<a class="button alt" href="'.$href.'">' . __("Ready to checkout?") . '</a>' );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
我正在尝试更改在将产品添加到购物车和/或通过连接到 woocommerce_add_message
更新购物车时显示的消息。它根本没有显示任何内容,我想知道为什么。
我试过 echo
我试过 return__(
这是代码:
add_filter('woocommerce_add_message', 'change_cart_message', 10);
function change_cart_message() {
$ncst = WC()->cart->subtotal;
if ( is_checkout() ) {
echo 'Your new order subtotal is: '.$ncst.'. <a style="color: green;" href="#customer_details">Ready to checkout?</a>';
}
elseif ( is_product() ) {
echo 'Your new order subtotal is: '.$ncst.'. <a style="color: green;" href="'.wc_get_checkout_url().'">Ready to checkout?</a>';
}
else {
echo 'Your new order subtotal is: '.$ncst.'. <a style="color: green;" href="'.wc_get_checkout_url().'">Ready to checkout?</a>';
}
}
我做错了什么?
Important note: A filter hook has always a variable argument to be returned.
使用过滤器挂钩时,您始终需要 到 return 过滤值参数(但不要回应它)...
您的代码也可以简化和压缩:
add_filter('woocommerce_add_message', 'change_cart_message', 10, 1 );
function change_cart_message( $message ) {
$subtotal = WC()->cart->subtotal;
$href = is_checkout() ? '#customer_details' : wc_get_checkout_url();
return sprintf( __("Your new order subtotal is: %s. %s"), wc_price($subtotal),
'<a class="button alt" href="'.$href.'">' . __("Ready to checkout?") . '</a>' );
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。