Нечто подобное может сработать ...
function so_61559494_validate_checkout() {
if( ! empty( $_POST['ship_to_different_address'] ) ) {
$billing_city = ! empty( $_POST['billing_city'] ) ? trim( $_POST['billing_city'] ) : '';
if ( empty( $billing_city ) || ! ctype_alpha( $billing_city ) ) {
$notice = __('Only alphabets are alowed in <strong>Billing City</strong>.', 'your-text-domain' );
throw new Exception( $notice );
}
$shiping_city = ! empty( $_POST['shiping_city'] ) ? trim( $_POST['shiping_city'] ) : '';
if ( empty( $shipping_city ) || ! ctype_alpha( $shipping_city ) ) {
$notice = __('Only alphabets are alowed in <strong>Shipping City</strong>.', 'your-text-domain' );
throw new Exception( $notice );
}
}
}
add_action( 'woocommerce_checkout_process', 'so_61559494_validate_checkout' );
Это полностью не проверено, поэтому используйте с осторожностью.