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

时间:2018-03-28 13:17:56

标签: php wordpress woocommerce checkout shipping

在Woocommerce中,我希望仅当选择本地取件作为送货方式时才会“需要”结帐订单备注字段

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

以下代码会将"订单备注" 作为" 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文件。经过测试并正常工作。

相关问题