【发布时间】:2020-10-10 08:48:46
【问题描述】:
我正在尝试检查一系列邮政编码,如果并且仅当客户选择 local_pickup 选项时。
我有一个名为 Home Delivery 的本地取货选项 (local_pickup4) 的副本,并且我有邮政编码数组。
如果选择了本地取货选项,则预期结果是如果邮政编码不匹配,则会收到错误通知。
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.' );
}
}
【问题讨论】:
标签: php wordpress woocommerce checkout shipping