首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于WooCommerce页面的不同消息

基于WooCommerce页面的不同消息
EN

Stack Overflow用户
提问于 2019-01-25 13:45:21
回答 1查看 144关注 0票数 2

我试图修改在向购物车中添加产品和/或通过链接到woocommerce_add_message来更新购物车时显示的消息。它根本没有显示任何东西,我想知道为什么。

我尝试过echo,我尝试过return__(,这是代码:

代码语言:javascript
运行
复制
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>';
    } 
}

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-25 14:27:06

重要注意事项:过滤器钩子总是要返回一个变量参数。

使用筛选器钩子时,始终需要返回筛选值参数(但不回显)…

此外,您的代码也可以简化和压缩:

代码语言:javascript
运行
复制
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文件中。测试和工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54366556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档