Мне нужно проверить значение billing_state равно «xyz» при проверке. и отобразить значение в «woocommerce_review_order_before_submit».
add_action( 'woocommerce_review_order_before_submit', 'messageonstate' );
function messageonstate() {
echo $fields['billing']['billing_state']['value'];
echo $_POST['_billing_state'];
echo"====+++++";
foreach( $checkout_fields as $key_field => $field_value ){
if( $input == $key_field && ! empty( $field_value ) ){
echo $value = $field_value;
}
}
}
Необходимый код для отображения в порядке просмотра перед отправкой:
add_action( 'woocommerce_review_order_before_submit', 'review_order_before_submit_state_message' );
function review_order_before_submit_state_message() {
// HERE set your state code
$state_code = 'CA';
if( $selected_state_code = WC()->customer->get_billing_state() ){
$country_code = WC()->customer->get_billing_country();
$state_name = WC()->countries->get_states($country_code)[$state_code];
if( WC()->customer->get_billing_state() === $state_code ){
$message = "The billing state <strong>".$state_name."<strong> matches";
echo '<ul class="woocommerce-info">'.$message.'</ul>';
} else {
$message = "The billing state <strong>".$state_name."<strong> don't matches";
echo '<ul class="woocommerce-alert">'.$message.'</ul>';
}
}
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.
Замечания: Проверка полей в Woocommerce, чтобы избежать проверки обрабатывается по-разному.
Других решений пока нет …