Я пытаюсь проверить массив почтовых индексов ЕСЛИ и только ЕСЛИ клиент выбирает опцию local_pickup
.
У меня есть копия опции местного самовывоза (local_pickup4) под названием Home Delivery
и У меня есть массив почтовых индексов.
Ожидаемый результат - получить уведомление об ошибке, если почтовый индекс не совпадает, если был выбран вариант местного самовывоза.
add_action('woocommerce_after_checkout_validation', 'zip_code_validator_for_local_home_delivery', 10, 2 );
function zip_code_validator_for_local_home_delivery( $data, $error ) {
$del_zones_array = array( 30030, 30032, 30033 );
$chosen_shipping = WC()->session->get( 'chosen_shipping_methods' )[0];
$chosen_shipping = explode(':', $chosen_shipping);
if ( $chosen_shipping[0] == 'local_pickup:4' && !in_array( $data['shipping_postcode'], $del_zones_array ) ) {
$error->add( 'validation', 'We\'re sorry, but this address is outside of our online order delivery area.<br>Please contact us for assistance or choose the local pickup option.' );
}
}