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

如何让WooCommerce结账页面的配送方式字段必填?

解决WooCommerce结账未选配送方式仍可提交的问题

嘿,这问题确实挺闹心的——顾客没选配送方式就能下单,后续发货肯定要乱套。别担心,这段简短的代码就能帮你搞定:

add_action('woocommerce_checkout_process', 'force_shipping_method_selection');
function force_shipping_method_selection() {
    // 校验结账页面是否已选择配送方式
    if (is_checkout() && !WC()->session->get('chosen_shipping_methods')) {
        wc_add_notice(__('请先选择一种配送方式,再提交订单哦。', 'woocommerce'), 'error');
    }
}

怎么用这段代码?

  • 你可以把它添加到当前WordPress主题的functions.php文件末尾(记得先备份主题文件,避免操作出错);
  • 更稳妥的方式是用「Code Snippets」这类自定义代码插件来添加,这样主题更新时不会丢失代码。

代码原理

这段代码挂钩了WooCommerce的woocommerce_checkout_process动作——这是结账提交前的关键校验节点。它会检查用户的会话中是否存在选中的配送方式,如果没有,就抛出一个错误提示,直接阻止订单提交,直到用户选择了合适的配送方式。

如果之后测试发现还有问题,可以检查下缓存插件是否影响了会话数据,或者确认插件本身有没有隐藏的强制配送选择设置(不过从你的描述来看,插件应该没这个内置功能)。

内容的提问来源于stack exchange,提问作者Bev Love

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:29:31