In Woocommerce, I would like that checkout Order Notes field will be "required"only when local pickup is selected as a shipping method.
我已经设法更改本地取件标签,以便指示客户将详细信息添加到此字段,但想知道是否有一种方法可以在他们将详细信息添加到此部分之前不允许他们继续操作?
非常感谢任何帮助。
最佳答案
下面的代码将使“订单备注”成为“本地取件”仅选择的送货方式的必填字段,如果客户尝试提交,将显示错误通知他对此要求的订单:
// Validate mandatory "Order notes" field for "Local Pickup" shipping methods
add_action( 'woocommerce_checkout_process', 'local_pickup_order_comment_validation', 20 );
function local_pickup_order_comment_validation() {
$chosen_shipping = WC()->session->get( 'chosen_shipping_methods' )[0];
$chosen_shipping = explode(':', $chosen_shipping);
if ( $chosen_shipping[0] == 'local_pickup' && empty($_POST['order_comments']) ){
wc_add_notice( __( "You need to fill up \"Order notes\" with some details.", "woocommerce" ), 'error' );
}
}
代码在您的事件子主题(或事件主题)的 function.php 文件中。经过测试并有效。
关于php - 如果运输方式是 Woocommerce 中的本地取货,则需要填写订单备注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49535670/