Portugal States (Distritos) for WooCommerce


This plugin adds the 18 Portuguese “States” (known as “Distritos”) plus the 2 Autonomous Regions (known as “Regiões Autónomas”, Madeira and Açores) to WooCommerce.

Also sets the right name for “Districts” and the correct “Postcode”/”City” order and the correct address format for Portugal.

And… that’s pretty much it.


  • Adds the Portuguese “States”, known as “Distritos”, to WooCommerce
  • Sets the correct address format for Portugal, including the correct “Postal Code”/”City” positioning on the checkout

Do your customers still write the full address details manually on the checkout?

Activate the automatic filling of the address details at the checkout, including street name and neighbourhood, based on the postal, avoiding incorrect data at the time of shipping, with our plugin Portuguese Postcodes for WooCommerce

The Portuguese Postcodes plugin can also do a district-postcode cross validation on checkout and guarantee they match.

Are you already issuing automatic invoices on your WooCommerce store?

If not, get to know our new plugin: Invoicing with InvoiceXpress for WooCommerce

Other (premium) plugins

Already know our other WooCommerce (premium) plugins?


Use the included automatic install feature on your WordPress admin panel and search for “Portugal States (Distritos) for WooCommerce”.


After version 3.0.0 the Postcode and Postcode City are showing side by side on the checkout and I want it the way it was before. What do I revert it?

Add this to your (child) theme’s functions.php file:
add_filter( ‘woocommerce_portugal_postcode_class’, function( $class ) {
return array( ‘form-row-wide’ );
add_filter( ‘woocommerce_portugal_city_class’, function( $class ) {
return array( ‘form-row-wide’ );

Is this plugin compatible with the new WooCommerce High-Performance Order Storage?


Is this plugin compatible with the new WooCommerce block-based Cart and Checkout?


I need help, can I get technical support?

This is a free plugin. It’s our way of giving back to the wonderful WordPress community.

There’s a support tab on the top of this page, where you can ask the community for help. We’ll try to keep an eye on the forums but we cannot promise to answer support tickets.

If you reach us by email or any other direct contact means, we’ll assume you need, premium, and of course, paid-for support.

Where do I report security vulnerabilities found in this plugin?

You can report any security bugs found in the source code of this plugin through the Patchstack Vulnerability Disclosure Program. The Patchstack team will assist you with verification, CVE assignment and take care of notifying the developers of this plugin.


29 Julai 2022 1 reply
The plugin has been very well developed. It fulfills everything you need to make shipments in portugal, as well as or eliminate shipping zones. The support has been very fast and efficient.
9 Oktober 2019 1 reply
Si tu tienda incluye envíos a Portugal este es el plugin que necesitas. Tendrás en las direcciones de cliente la opción de poder elegir el distrito (lo equivalente a las provincias de España), algo que WooCommerce no incluye por defecto.
24 Julai 2019
Obrigatório para ecommerce em Portugal no wordpress, obrigado pelo excelente trabalho!!
3 Januari 2019
Plugin simples, mas de grande utilidade. Fiquei horas a tentar configurar as localidades e zonas com custos diferentes em minha loja no woocommerce, e por acaso encontrei este plugin, que consegui confirgurar em minutos… Parabéns e obrigado por este plugin 🙂
11 Disember 2016
A must have plugin if you’re configuring shipping methods in WooCommerce for Portuguese “Distritos”. Thank you!
Read all 9 reviews

Contributors & Developers

“Portugal States (Distritos) for WooCommerce” adalah perisian sumber terbuka. Orang-orang berikut telah menyumbang kepada pemalam ini.


“Portugal States (Distritos) for WooCommerce” telah diterjemahkan ke dalam 3 penempatan. Terima kasih kepada para penterjemah untuk terjemahan mereka.

Translate “Portugal States (Distritos) for WooCommerce” into your language.

Berminat dalam pembangunan?

Layari kod, periksa repositori SVN, atau langgani log pembangunan dengan RSS.


3.7 – 2024-04-20

  • [TWEAK] Compatibility with checkout block custom fields
  • [DEV] Tested with WordPress 6.6-alpha-58011 and WooCommerce 8.9.0-dev

3.6 – 2024-03-27

  • [DEV] Set Requires Plugins tag to woocommerce
  • [DEV] Tested with WordPress 6.5-RC3-57875 and WooCommerce 8.8.0-beta.1

3.5 – 2023-12-12

  • Declare WooCommerce block-based Cart and Checkout compatibility
  • Requires WooCommerce 5.0 and WordPress 5.4
  • Tested with WordPress 6.5-alpha-57159 and WooCommerce 8.4.0-rc.1

3.4.1 – 2023-07-07

  • Fix some strings and links

3.4 – 2023-07-06

  • Requires WooCommerce 5.0
  • Tested with WordPress 6.3-beta3-56143 and WooCommerce 7.9.0-rc.2

3.3 – 2022-11-09

  • Tested and confirmed WooCommerce HPOS compatibility
  • Tested with WordPress 6.2-alpha-54748 and WooCommerce 7.1

3.2.0 – 2022-06-30

  • New brand: PT Woo Plugins 🥳
  • Requires WordPress 5.0, WooCommerce 3.0 and PHP 7.0
  • Tested with WordPress 6.1-alpha-53556 and WooCommerce 6.7.0-beta.2

3.0.3 – 2021-05-14

  • Fix the order in which we set the address format because other plugin’s changes, like EU VAT Assistant, were being overriden
  • New woocommerce_portugal_localisation_address_formats_priority filter to change the hook priority for the address format
  • Tested with WooCommerce 5.3.0

3.0.2 – 2021-04-14

  • Removed the information about WooCommerce 5.2.0 from the readme.txt file as the change was reverted on WooCommerce 5.2.1

3.0.1 – 2021-04-14

  • Important information on readme.txt about WooCommerce 5.2.0 and the fact they now include the Portuguese Districts.

3.0.0 – 2021-04-08

  • Complete code refactoring
  • Show Postcode and Postcode City side by side on the checkout and added two new filters to change it: woocommerce_portugal_postcode_class and woocommerce_portugal_city_class
  • Changed the (english) city label from “Postcode Town / City” to “Postcode City” (no changes in Portuguese)
  • Added support information to the Frequently Asked Questions readme section
  • Requires WooCommerce 3.0
  • Tested with WordPress 5.8-alpha-50689 and WooCommerce 5.2.0-rc.2

2.1.9 – 2021-03-10

  • Tested with WordPress 5.8-alpha-50516 and WooCommerce 5.1.0


  • Tested with 5.6-beta3-49562 and WooCommerce 4.8.0-beta.1



  • Tested with WordPress 5.3.3-alpha-47419 and WooCommerce 4.0.1

  • Changes on the InvoiceXpress banner

  • Fix version number


  • Hide the InvoiceXpress nag if the invoicing is already installed and active
  • Tested with WordPress 5.3.1-alpha-46798 and WooCommerce 3.8.1


  • Change InvoiceXpress nag interval from 30 to 90 days
  • Tested with WordPress 5.2.4-alpha-46074 and WooCommerce 3.8.0-beta.1
  • Requires PHP 5.6

  • readme.txt small fix


  • Tested with WooCommerce 3.5.2
  • Bumped WC tested up tag
  • Bumped Requires at least tag


  • Tested with WooCommerce 3.5
  • Bumped WC tested up to tag


  • Added the woocommerce_portugal_postcode_priority filter to allow overriding the “Postal Code” priority value


  • Fix “Postal Code”/”City” fields order on the checkout on newer WooCommerce versions
  • The “City” field label is now “Postcode Town / City” on the checkout
  • New woocommerce_portugal_city_label filter to be able to change the “City” field label
  • New woocommerce_portugal_state_label filter to be able to change the “District” field label
  • New woocommerce_portugal_state_required filter to be able to set the “District” field as not required
  • Bumped WC tested up to tag


  • Removed the district from the plain text address format for Portugal, as we do not use it on a day to day basis: “{name}\n{company}\n{address_1}\n{address_2}\n{postcode} {city}\n{country}” (can be restored via the woocommerce_portugal_address_format_include_state filter)
  • Better coding standards

  • Fixed readme.txt

  • Tested with WooCommerce 3.3
  • Bumped Tested up to tag


  • Removed the translation files from the plugin lang folder (the translations are now managed on WordPress.org’s GlotPress tool and will be automatically downloaded from there)
  • Tested with WooCommerce 3.2
  • Added WC tested up to tag on the plugin main file
  • Bumped Tested up to tag


  • Tested with WooCommerce 3.0.0-rc.2
  • Bumped Tested up to tag
  • Portuguese translation update


  • Bumped Tested up to tag


  • Sets the correct Portuguese address format: “{name}\n{company}\n{address_1}\n{address_2}\n{postcode} {city}\n{state}\n{country}”


  • Bumped “Requires at least” and “Tested up to” tags


  • The district is now required by default, as is on all the other countries that have states loaded by the WooCommerce core


  • Important bug fix: No longer overrides other countries states


  • WordPress Multisite support


  • Now also sets the right name for “Districts” and the correct “Postal Code”/”City” order


  • Initial release.