Title: CityFee – City Dropdown &amp; Delivery Fees for WooCommerce
Author: Digital Services SARL
Published: <strong>13 de novembre de 2026</strong>
Last modified: 14 de novembre de 2026

---

Cerca extensions

![](https://ps.w.org/cityfee/assets/banner-772x250.png?rev=3801112)

![](https://ps.w.org/cityfee/assets/icon-256x256.png?rev=3801112)

# CityFee – City Dropdown & Delivery Fees for WooCommerce

 Per [Digital Services SARL](https://profiles.wordpress.org/medsalemkhattat/)

[Baixa](https://downloads.wordpress.org/plugin/cityfee.1.4.0.zip)

[Previsualitza](https://ca.wordpress.org/plugins/cityfee/?preview=1)

 * [Detalls](https://ca.wordpress.org/plugins/cityfee/#description)
 * [Ressenyes](https://ca.wordpress.org/plugins/cityfee/#reviews)
 *  [Instal·lació](https://ca.wordpress.org/plugins/cityfee/#installation)
 * [Desenvolupament](https://ca.wordpress.org/plugins/cityfee/#developers)

 [Suport](https://wordpress.org/support/plugin/cityfee/)

## Descripció

In many countries couriers price delivery by city, not by postcode, and customers
type their city in many different ways. CityFee replaces the free-text city field
with a dropdown (a select list) of the cities you deliver to and charges the delivery
fee of the chosen city: city-wise delivery charges that you set. It is built for
Cash on Delivery stores, but works for any WooCommerce store that ships by city 
or charges a local delivery fee per city or area.

Cities can be grouped by region (state, province, governorate, wilaya or district)
and shown as «City – Region» in the dropdown, so customers find their city quickly
in long lists. The city select works in the WooCommerce Checkout block as well as
the classic checkout.

**Free features**

 * City dropdown at checkout instead of a free-text city field, per country, in 
   the **classic checkout and the Checkout block**, for billing and shipping addresses.
 * The customer can only pick a city from your list, and the choice is checked on
   the server too.
 * Your own city lists: add, edit, hide and reorder cities in WooCommerce > Settings
   > Shipping > Cities. An optional «other spelling» (for example the name in Arabic
   script) is shown next to the name.
 * Paste a whole list at once: one city per line, optionally with its fee. You can
   copy two columns (city and fee) from a spreadsheet and paste them directly.
 * «Delivery by city» shipping method: a fee per city, a default fee for cities 
   without one, and «not delivered» cities that get no delivery option.
 * The fee updates as soon as the customer changes the city.
 * Change many fees at once (bulk edit for selected cities or a whole country).
 * Cities can also be used as regions in WooCommerce shipping zones.
 * The chosen city is copied into the order and customer address, so emails, invoices
   and courier exports show a normal city name.
 * Postcode field hidden per country (optional).
 * Compatible with HPOS (High-Performance Order Storage).
 * Translation-ready and right-to-left ready (admin screen and checkout checked 
   in Arabic).

**How it works**

 1. Go to WooCommerce > Settings > Shipping > Cities, choose a country and add or paste
    your cities with their fees.
 2. In WooCommerce > Settings > Shipping, add «Delivery by city» to the shipping zone
    that covers the country, like Flat rate, and set the default fee.
 3. Customers now choose their city from the list and see its delivery fee at checkout.

Starter lists of main cities, grouped by region, are included for 47 countries (
from Wikidata, with English, French and Arabic names), including Morocco, Algeria,
Tunisia, Egypt, Saudi Arabia, the United Arab Emirates, Oman, Mauritania, Nigeria,
Pakistan, Bangladesh and most of Latin America: open the country and click «Load
starter list» (all regions or only the ones you deliver to), then edit it to match
your courier. For other countries you add or paste your own list.

Already using another plugin for states and cities? If «States, Cities, and Places
for WooCommerce» is installed, CityFee can import its lists in one click (see the
FAQ). Try CityFee first with «Load demo cities» (7 cities of Mauritania).

**CityFee Pro**

A paid version, CityFee Pro, adds city groups (for example Zone A / B / C) with 
one fee per group, free delivery above a cart amount per city or group, hiding Cash
on Delivery for selected cities, and full CSV import and export of your city lists.
The free plugin works on its own and shows no advertising.

Pricing and a 7-day free trial (no card needed): [dssarl.com/cityfee](https://dssarl.com/cityfee/)

**Privacy**

CityFee does not send any data to external services and adds no tracking. City lists
and settings are stored in your WordPress database; orders and customer addresses
use WooCommerce’s normal fields.

CityFee is developed by Digital Services SARL (https://dssarl.com/).

Getting fake Cash on Delivery orders? Our free plugin [OrderProof](https://wordpress.org/plugins/orderproof/)
asks customers to confirm COD orders with a WhatsApp code before you ship.

Questions or problems? Open a thread in the [support forum](https://wordpress.org/support/plugin/cityfee/).
If CityFee is useful to your store, an honest review helps other store owners find
it.

### Data sources

Starter city lists are built from Wikidata (https://www.wikidata.org/), available
under CC0 1.0 Universal (https://creativecommons.org/publicdomain/zero/1.0/). Selection,
codes and corrections by Digital Services SARL, GPLv2 or later. City lists are provided«
as is» for convenience; store owners should check names and fees before going live.

## Captures

[⌊Classic checkout: the city field is a searchable list of your cities, with the
other spelling next to each name.⌉⌊Classic checkout: the city field is a searchable
list of your cities, with the other spelling next to each name.⌉[

Classic checkout: the city field is a searchable list of your cities, with the other
spelling next to each name.

[⌊Classic checkout: the order summary shows the delivery fee of the chosen city (
Rabat, 35).⌉⌊Classic checkout: the order summary shows the delivery fee of the chosen
city (Rabat, 35).⌉[

Classic checkout: the order summary shows the delivery fee of the chosen city (Rabat,
35).

[⌊Checkout block: the city list and the delivery fee of the chosen city.⌉⌊Checkout
block: the city list and the delivery fee of the chosen city.⌉[

Checkout block: the city list and the delivery fee of the chosen city.

[⌊WooCommerce > Settings > Shipping > Cities, cities of a country: fees, default
fee, "Not delivered" cities, order, the add form and the paste box.⌉⌊WooCommerce
> Settings > Shipping > Cities, cities of a country: fees, default fee, "Not delivered"
cities, order, the add form and the paste box.⌉[

WooCommerce > Settings > Shipping > Cities, cities of a country: fees, default fee,«
Not delivered» cities, order, the add form and the paste box.

[⌊Countries overview: city dropdown and postcode setting per country.⌉⌊Countries
overview: city dropdown and postcode setting per country.⌉[

Countries overview: city dropdown and postcode setting per country.

[⌊The "Delivery by city" shipping method in a shipping zone, with its title, tax
status and default fee.⌉⌊The "Delivery by city" shipping method in a shipping zone,
with its title, tax status and default fee.⌉[

The «Delivery by city» shipping method in a shipping zone, with its title, tax status
and default fee.

[⌊The cities screen in Arabic (right-to-left).⌉⌊The cities screen in Arabic (right-
to-left).⌉[

The cities screen in Arabic (right-to-left).

## Instal·lació

 1. Install and activate WooCommerce.
 2. Install CityFee from Plugins > Add New, or upload the plugin folder to `/wp-content/
    plugins/`, and activate it.
 3. Open WooCommerce > Settings > Shipping > Cities to add your first country and its
    cities.
 4. Add the «Delivery by city» method to a shipping zone in WooCommerce > Settings 
    > Shipping.

## PMF

### I use States, Cities, and Places for WooCommerce. Can I move to CityFee?

Yes. Keep that plugin installed, open WooCommerce > Settings > Shipping > Cities
and choose your country: an «Import from States, Cities, and Places for WooCommerce»
box imports its places as CityFee cities (all of them, or only the states you choose).
Then set your delivery fees and deactivate the other plugin, because both plugins
change the city field at checkout.

### How do I add my cities and fees quickly?

Go to WooCommerce > Settings > Shipping > Cities, choose the country and paste one
city per line. Add the fee after a semicolon:

    ```
    Casablanca;30
    Rabat;35
    Tanger
    ```

Cities without a fee use the default fee of «Delivery by city». Fees are plain numbers
in the store currency. Two columns copied from a spreadsheet (city, fee) work the
same way. Tick «Check only» to count the lines before saving anything.

### Can I set different delivery charges for each city?

Yes. Each city can have its own fee, cities without a fee use the default fee of«
Delivery by city», and you can change many fees at once with bulk edit.

### Does it work for my country?

Yes. Choose any country in WooCommerce > Settings > Shipping > Cities and add the
cities your courier serves. You can show another spelling next to each name, for
example in Arabic script. If WooCommerce asks for a region (state) in your country,
the city list takes its place (see below).

### Does it work with the Checkout block?

Yes. The city dropdown and the fee work in both the classic checkout and the Checkout
block.

### Does it come with city lists?

Yes, starter lists of main cities for 47 countries: Algeria, Australia, Bangladesh,
Barbados, Bolivia, Brazil, Burkina Faso, Chile, Colombia, Cuba, Denmark, Dominican
Republic, Ecuador, Egypt, El Salvador, Ghana, Guatemala, Haiti, Honduras, Italy,
Kazakhstan, Lebanon, Malaysia, Mauritania, Mauritius, Mexico, Morocco, Nicaragua,
Niger, Nigeria, Oman, Pakistan, Panama, Paraguay, Peru, Portugal, Romania, Russia,
Saudi Arabia, Spain, Sri Lanka, Tunisia, Turkey, United Arab Emirates, Uruguay, 
Venezuela, Vietnam. Open the country in WooCommerce > Settings > Shipping > Cities
and click «Load starter list»; you can load all regions or only the ones you deliver
to. Names follow your site language (English, French or Arabic) with the other spelling
shown next to them. Check the list against your courier’s cities before going live.
For other countries, add or paste your own list.

### What happens to the country’s region (state) field?

For a country where you turn the city dropdown on, the city list takes the place
of the region field. Stores that need both a region and a city should keep that 
country switched off.

### What if I don’t deliver to a city?

Mark it «Not delivered». It stays in the list, but «Delivery by city» offers no 
rate for it, so WooCommerce shows its usual «no shipping options» message unless
another method of the zone (for example local pickup) is available.

### Can I rename a city later?

Yes. Each city has a code that orders store; renaming the city keeps its code. Past
orders keep the address they were placed with.

### How many cities can a country have?

Up to 2,000. Above 300 the admin shows a reminder, because the Checkout block shows
a plain dropdown without search.

### Is it translated?

CityFee is ready for translation and for right-to-left languages. French and Arabic
translations have been prepared for translate.wordpress.org.

### What is removed when I delete the plugin?

The city lists, the CityFee settings and the «Delivery by city» methods in your 
shipping zones. Orders and customer addresses are never changed. Tick «Keep city
lists and settings when the plugin is deleted» if you plan to reinstall.

## Ressenyes

No hi ha ressenyes per a aquesta extensió.

## Col·laboradors i desenvolupadors

«CityFee – City Dropdown & Delivery Fees for WooCommerce» és programari de codi 
obert. La següent gent ha col·laborat en aquesta extensió.

Col·laboradors

 *   [ Digital Services SARL ](https://profiles.wordpress.org/medsalemkhattat/)

[Traduïu «CityFee – City Dropdown & Delivery Fees for WooCommerce» a la vostra llengua.](https://translate.wordpress.org/projects/wp-plugins/cityfee)

### Interessats en el desenvolupament?

[Navegueu pel codi](https://plugins.trac.wordpress.org/browser/cityfee/), baixeu-
vos el [repositori SVN](https://plugins.svn.wordpress.org/cityfee/), o subscriviu-
vos al [registre de desenvolupament](https://plugins.trac.wordpress.org/log/cityfee/)
per [fisl de subscripció RSS](https://plugins.trac.wordpress.org/log/cityfee/?limit=100&mode=stop_on_copy&format=rss).

## Registre de canvis

#### 1.4.0

 * The city lists moved to WooCommerce > Settings > Shipping > Cities, next to Shipping
   zones and Classes, as WooCommerce recommends for extensions. The «CityFee» item
   under the WooCommerce menu is removed; old links open the new place. Nothing 
   else changes.

#### 1.3.0

 * Starter lists for 47 countries (was 9), each city with its region (state, province
   or governorate). Load all regions or only the ones you deliver to.
 * New per-country setting «Show the region next to the city at checkout» (for example«
   Alcalá de Henares – Madrid»), in the classic checkout and the Checkout block.
 * Each city can have a region (add/edit form and city list), and a «Sort by region,
   then name» button.
 * Importing from States, Cities, and Places for WooCommerce now keeps each city’s
   state as its region.

#### 1.2.0

 * New: starter lists of main cities for Morocco, Algeria, Tunisia, Egypt, Saudi
   Arabia, the United Arab Emirates, Oman, Nigeria and Pakistan, loaded with one
   click («Load starter list») on the country screen. Names in the site language(
   English, French or Arabic) with the other spelling shown next to them; cities
   already in the list are kept. Data from Wikidata (CC0), see data/LICENSES.md.

#### 1.1.0

 * New: import city lists from «States, Cities, and Places for WooCommerce» when
   it is installed on the same site (active or not). Each country screen shows an
   import box; you can import all places or only some states. Cities already in 
   your list are kept, and the import tells you how many were added, already listed
   or over the limit.

#### 1.0.1

 * Readme: clearer short description and description, two new FAQ entries (fees 
   per city, supported countries), support forum link, screenshot 2 caption. No 
   change to how the plugin works.

#### 1.0.0

 * First public release: city dropdown per country in the classic checkout and the
   Checkout block (billing and shipping), server-side city check, city lists managed
   in WooCommerce > Settings > Shipping > Cities (add, edit, hide, reorder, bulk
   fee changes, paste-import with fees), «Delivery by city» shipping method (fee
   per city, default fee, not-delivered cities, tax status), cities usable as regions
   in shipping zones, city copied into orders and customer addresses, optional postcode
   hiding, HPOS compatible, translation and right-to-left ready, uninstall cleanup
   with a «keep data» option.

## Meta

 *  Versió **1.4.0**
 *  Darrera actualització **fa 15 minuts**
 *  Instal·lacions actives **Menys de 10**
 *  Versió del WordPress ** 6.5 o posterior **
 *  Provada fins a **7.1.4**
 *  Versió del PHP ** 7.4 o posterior **
 *  Idioma
 * [English (US)](https://wordpress.org/plugins/cityfee/)
 * Etiquetes
 * [cash on delivery](https://ca.wordpress.org/plugins/tags/cash-on-delivery/)[cities](https://ca.wordpress.org/plugins/tags/cities/)
   [City Dropdown](https://ca.wordpress.org/plugins/tags/city-dropdown/)[delivery-fees](https://ca.wordpress.org/plugins/tags/delivery-fees/)
   [Shipping By City](https://ca.wordpress.org/plugins/tags/shipping-by-city/)
 *  [Vista avançada](https://ca.wordpress.org/plugins/cityfee/advanced/)

## Valoracions

Encara no s'ha enviat cap ressenya.

[La vostra ressenya](https://wordpress.org/support/plugin/cityfee/reviews/#new-post)

[Visualitza totes les ressenyes](https://wordpress.org/support/plugin/cityfee/reviews/)

## Col·laboradors

 *   [ Digital Services SARL ](https://profiles.wordpress.org/medsalemkhattat/)

## Suport

Teniu quelcom a dir? Necessiteu ajuda?

 [Visualitza els fòrums de suport](https://wordpress.org/support/plugin/cityfee/)