You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改WooCommerce结账时无可用配送方式的错误提示?

WooCommerce 自定义无配送方式错误提示失效的解决方法

问题回顾

尝试自定义WooCommerce结账页面无可用配送方式的错误提示,先后使用woocommerce_checkout_no_shipping_available_notice、woocommerce_no_shipping_available_html、woocommerce_checkout_error三个钩子,但修改均未生效,仍显示默认提示。

可能的遗漏点及解决方案

1. 函数命名冲突

三次尝试使用了同一个函数名custom_change_shipping_error_message,PHP中同名函数会导致后定义的覆盖先定义的,直接影响钩子生效。需给每个钩子对应的函数设置唯一名称。

2. 钩子优先级被覆盖

主题或其他插件可能使用了更高优先级的钩子修改了提示文本,需要提高自己钩子的优先级(第三个参数数值越大,优先级越高)。

修正后的代码示例:

// 自定义结账页无配送方式提示
function custom_checkout_shipping_unavailable_notice( $message ) {
    return '我们当前暂不支持该地址配送,请修改配送日期后重试,或联系客服咨询。';
}
add_filter( 'woocommerce_checkout_no_shipping_available_notice', 'custom_checkout_shipping_unavailable_notice', 99 );

// 自定义购物车等其他页面的无配送方式提示
function custom_global_shipping_unavailable_html( $message ) {
    return '我们当前暂不支持该地址配送,请修改配送日期后重试,或联系客服咨询。';
}
add_filter( 'woocommerce_no_shipping_available_html', 'custom_global_shipping_unavailable_html', 99 );

3. 错误提示未通过目标钩子输出

部分场景下,无配送方式的错误提示是通过wc_add_notice直接添加的,这时候需要拦截woocommerce_add_error钩子来替换文本:

function custom_replace_shipping_error_text( $error ) {
    // 替换为你的WooCommerce默认错误文本(根据语言版本调整)
    $default_error = '抱歉,该地址暂无可用配送方式。';
    if ( $error === $default_error ) {
        return '我们当前暂不支持该地址配送,请修改配送日期后重试,或联系客服咨询。';
    }
    return $error;
}
add_filter( 'woocommerce_add_error', 'custom_replace_shipping_error_text', 99 );

4. 缓存问题

修改后如果没生效,先清除网站缓存(如WP Rocket、W3 Total Cache等插件缓存)和浏览器缓存,再刷新页面测试。

5. 代码放置位置错误

确保代码添加到当前主题的functions.php文件末尾,或使用自定义功能插件,不要直接修改WooCommerce核心文件(核心文件更新会覆盖修改)。

内容的提问来源于stack exchange,提问作者Rishikesh Dubey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:53:11