Collecting the National Address (Saudi Arabia) in WooCommerce

Modified on Tue, 16 Dec at 3:43 PM

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

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.

RequirementWhat you need to provideExample
National Address code8 characters, letters A–Z and digits 0–9RNMA7272
Applies toOrders shipping to Saudi Arabia (SA)Destination country = SA
Effective dateMandatory for carrier acceptanceJanuary 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.

  1. Open WordPress Admin: Go to WooCommerce → National Address
  2. Enable the option: Check Enable National Address field on checkout
  3. 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.

  1. Open orders: Go to WooCommerce → Orders
  2. Open the order: Click the relevant order
  3. 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

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article