This article explains how to collect the Saudi Arabia National Address in WooCommerce, why it is required, and how to ensure your checkout remains compliant before shipments are created.
Quick Links
- Why the National Address Is Required
- What the WooCommerce Plugin Does
- How to Enable the National Address Field
- Where to See the National Address in Orders
- Adding the Field Manually
- Full Developer Code Example
Why the National Address Is Required
Saudi Arabia’s Transport General Authority (TGA) has issued a regulation under Decision No. 1/46/196 (dated 10/08/1446H).
Starting January 1, 2026, all last-mile shipments to Saudi Arabia must include a valid National Address. Shipments that do not contain this information will not be accepted by carriers.
| Requirement | What you need to provide | Example |
|---|---|---|
| National Address code | 8 characters, letters A–Z and digits 0–9 | RNMA7272 |
| Applies to | Orders shipping to Saudi Arabia (SA) | Destination country = SA |
| Effective date | Mandatory for carrier acceptance | January 1, 2026 |
:warning: Important: If this value is missing from an order, the shipment cannot be processed.
What the WooCommerce Plugin Does
Our WooCommerce integration provides a ready-made solution to help you collect the National Address correctly during checkout.
- Adds a “National Address (Saudi Arabia)” field to the checkout
- Shows the field only for Saudi Arabia orders
- Validates the format (exactly 8 letters and numbers)
- Stores the value in the correct order meta key: _billing_national_address
- Makes the value available for fulfilment and last-mile booking
Result: Your Saudi Arabia shipments remain compliant and are accepted by carriers.
How to Enable the National Address Field
Enabling the National Address field takes less than a minute.
- Open WordPress Admin: Go to WooCommerce → National Address
- Enable the option: Check Enable National Address field on checkout
- Save changes: Click Save Changes
Once enabled:
- The field appears only when the customer selects Saudi Arabia (SA)
- The field is required
- The order cannot be placed until a valid National Address is entered
Where to See the National Address in Orders
You can view the National Address for each order directly in WooCommerce.
- Open orders: Go to WooCommerce → Orders
- Open the order: Click the relevant order
- Check billing details: Find the National Address value in the Billing Details section

You will see:
National Address (Saudi Arabia): RNMA7272
Adding the Field Manually
If you prefer not to use the plugin, you may add the National Address field using your own checkout customization plugin or theme.
To remain compatible:
- Store the value in: _billing_national_address
- Make it required only for: Saudi Arabia (SA) orders
Note: As long as the value is saved under the correct meta key, your shipment flow will work normally.
Full Developer Code Example
The example below shows how to add, validate, and store the National Address field using custom code.
// 1) Add "National Address (Saudi Arabia)" to billing fields.
add_filter( 'woocommerce_checkout_fields', function ( $fields ) {
$fields['billing']['billing_national_address'] = array(
'type' => 'text',
'label' => __( 'National Address (Saudi Arabia) *', 'your-textdomain' ),
'placeholder' => __( 'e.g. RNMA7272', 'your-textdomain' ),
'required' => false, // we'll validate manually
'class' => array( 'form-row-wide' ),
'priority' => 55, // after Address line 1
);
return $fields;
} );
// 2) Validate it only for Saudi Arabia (SA).
add_action( 'woocommerce_checkout_process', function () {
$billing_country = isset( $_POST['billing_country'] )
? wc_clean( wp_unslash( $_POST['billing_country'] ) )
: '';
if ( 'SA' !== $billing_country ) {
return;
}
$value = isset( $_POST['billing_national_address'] )
? trim( wc_clean( wp_unslash( $_POST['billing_national_address'] ) ) )
: '';
if ( '' === $value ) {
wc_add_notice( __( 'Please enter your National Address (Saudi Arabia).', 'your-textdomain' ), 'error' );
return;
}
if ( ! preg_match( '/^[A-Za-z0-9]{8}$/', $value ) ) {
wc_add_notice( __( 'Please enter a valid 8-character National Address (letters and numbers only).', 'your-textdomain' ), 'error' );
}
} );
// 3) Save it to order meta so integrations can read _billing_national_address.
add_action( 'woocommerce_checkout_update_order_meta', function ( $order_id ) {
if ( isset( $_POST['billing_national_address'] ) && $_POST['billing_national_address'] !== '' ) {
$value = trim( wc_clean( wp_unslash( $_POST['billing_national_address'] ) ) );
update_post_meta( $order_id, '_billing_national_address', $value );
}
} );Result: The National Address is stored in _billing_national_address and can be used when creating shipments.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article