如果运输方式是Woocommerce中的本地提货,则需要订单

在Woocommerce中,我希望仅当 local pickup is selected 作为送货方式时,结帐 Order Notes field 将为"required" .

我已设法更改本地提货标签,以便指示客户在此字段中添加详细信息但是想知道是否有一种方法不允许他们继续操作,直到他们向此部分添加了详细信息?

任何帮助将非常感谢 .

回答(1)

2 years ago

以下代码将 "Order notes" 作为 "Local Pickup" 选择的送货方式的必填字段,如果客户尝试提交此订单的订单,则会显示错误通知:

// 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文件中 . 经过测试和工作 .