Check if address field contains house number (using WooCommerce Blocks)

Note: We are unable to provide support for customizations under our Support Policy. If you need to customize a snippet or extend its functionality, we recommend working with a Woo Agency Partner or finding a WooCommerce developer on Codeable.

Currently, when using the Checkout block from the WooCommerce Blocks plugin, there’s no check if the billing or shipping address field contains a house number. The following code snippets allow to check if these fields contain a number.

You need to add code to your child theme’s functions.php file or via a plugin that allows custom functions to be added, such as the Code snippets plugin. Please don’t add custom code directly to your parent theme’s functions.php file as this will be wiped entirely when you update the theme.

Check if the shipping address contains a house number

↑ Back to top

To check if the shipping address contains a house number, please use the following code snippet:

<?php
add_action( 'woocommerce_store_api_checkout_update_order_from_request', 'woo_blocks_address_field_validation', 10, 2);
function woo_blocks_address_field_validation( WC_Order $order, $request ) {
$shipping_address = $order->get_address('shipping')['address_1'];
if ( $shipping_address && ! preg_match( '/[0-9]+/', $shipping_address ) ) {
throw new Exception( 'Your shipping address must contain a house number!' );
}
}

Check if the billing address contains a house number

↑ Back to top

To check if the billing address contains a house number, please use the following code snippet:

get_address('billing')['address_1'];
    if ( $billing_address && ! preg_match( '/[0-9]+/', $billing_address ) ) {
        throw new Exception( 'Your billing address must contain a house number!' );
    }
}
View on Github

Check if both the billing and the shipping address contain a house number

↑ Back to top

To check if both the billing and the shipping address contain a house number, please use the following code snippet:

get_address('shipping')['address_1'];
    $billing_address  = $order->get_address('billing')['address_1'];

    if ( $shipping_address && ! preg_match( '/[0-9]+/', $shipping_address ) ) {
        throw new Exception( 'Your shipping address must contain a house number!' );
    }

    if ( $billing_address && ! preg_match( '/[0-9]+/', $billing_address ) ) {
        throw new Exception( 'Your billing address must contain a house number!' );
    }
}
View on Github
Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.