Methods 需要根据装运类型附加注释

Methods 需要根据装运类型附加注释,methods,conditional-statements,shipping,Methods,Conditional Statements,Shipping,我试图在结帐时将附加注释作为必填字段,以防选择包裹点提货运输方式(固定费率:47)。如果我不使用特定ID(47),它会起作用,并要求在所有固定费率装运方法中填写订单注释。但我希望它只适用于固定费率:47次装运。这是我到目前为止的代码,但它不起作用。知道我做错了什么吗 // Validate mandatory "Order notes" field for "Parcel pickup point" shipping methods add_action(

我试图在结帐时将附加注释作为必填字段,以防选择包裹点提货运输方式(固定费率:47)。如果我不使用特定ID(47),它会起作用,并要求在所有固定费率装运方法中填写订单注释。但我希望它只适用于固定费率:47次装运。这是我到目前为止的代码,但它不起作用。知道我做错了什么吗

// Validate mandatory "Order notes" field for "Parcel pickup point" shipping methods
add_action( 'woocommerce_checkout_process', 'flat_rate_order_comment_validation', 20 );
function flat_rate_order_comment_validation() {
    $chosen_shipping = WC()->session->get( 'chosen_shipping_methods' )[0];
    $chosen_shipping = explode(':', $chosen_shipping);
    if ( $chosen_shipping[0] == 'flat_rate:47' && empty($_POST['order_comments']) ){
        wc_add_notice( __( "You need to fill up \"Order notes\" with some details.", "woocommerce" ), 'error' );
    }
}
正确代码:

// Validate mandatory "Order notes" field for "Parcel pickup point" shipping methods
add_action( 'woocommerce_checkout_process', 'flat_rate_order_comment_validation', 20 );
function flat_rate_order_comment_validation() {
    $chosen_shipping = WC()->session->get( 'chosen_shipping_methods' )[0];
       if ( $chosen_shipping == 'flat_rate:47' && empty($_POST['order_comments']) ){
        wc_add_notice( __( "You need to fill up \"Order notes\" with some details.", "woocommerce" ), 'error' );
    }
}