在 Woocommerce 结帐页面上将“运输方式”字段设置为必填项

Make Shipping Method fields Mandatory on Woocommerce checkout page

我确信那里有一些代码可以解决这个问题,但我正在努力寻找它。

我有一个 WordPress/WooCommerce 网站设置,我正在使用带有 Table 费率插件的 WooCommerce Shipping Pro 在 WooCommerce 的送货设置中指定送货费率以及本地取货选项。

一切正常,但遇到了一个小问题。

在结帐页面上 - 如果没有选择送货方式但所有其他字段都已填写,它仍然允许我单击“支付”按钮并转到支付网关。

因此,我需要一些代码来检查以确保已选择送货方式或将送货方式设为必填字段。这样一来,当客户在未选择任何送货方式的情况下点击“付款”时,将不允许他们继续操作并会发出警告。

Link 到网站: https://larchcottage.co.uk/

如果提交订单时未选择送货方式,以下代码将在结帐页面上输出错误消息:

// Validate shipping method fields and returning an error if none is choosed
add_action( 'woocommerce_checkout_process', 'shipping_method_validation', 20 );
function shipping_method_validation() {
    if ( ! isset( $_POST['shipping_method[0]'] ) ){
        wc_add_notice( __( "You need to choose your a shipping option.", "woocommerce" ), 'error' );
    }
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。 已测试并有效。