{"id":402447,"date":"2026-11-13T20:07:22","date_gmt":"2026-11-13T20:07:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cityfee-city-dropdown-delivery-fees-for-woocommerce\/"},"modified":"2026-11-14T15:49:29","modified_gmt":"2026-11-14T15:49:29","slug":"cityfee","status":"publish","type":"plugin","link":"https:\/\/hat.wordpress.org\/plugins\/cityfee\/","author":23599177,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.0","stable_tag":"1.4.0","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"CityFee \u2013 City Dropdown & Delivery Fees for WooCommerce","header_author":"Digital Services SARL","header_description":"Replace the free-text checkout city with a dropdown of the store's cities, per country, in classic checkout and the Checkout block, and charge a delivery fee per city.","last_updated":"2026-11-14 15:49:29","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/dssarl.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":135,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"medsalemkhattat","date":"2026-11-13 20:07:14","revision":3801112},"1.1.0":{"tag":"1.1.0","author":"medsalemkhattat","date":"2026-11-14 00:05:28","revision":3801281},"1.2.0":{"tag":"1.2.0","author":"medsalemkhattat","date":"2026-11-14 12:51:13","revision":3801917},"1.3.0":{"tag":"1.3.0","author":"medsalemkhattat","date":"2026-11-14 14:29:21","revision":3802085},"1.4.0":{"tag":"1.4.0","author":"medsalemkhattat","date":"2026-11-14 15:49:29","revision":3802170}},"upgrade_notice":{"1.4.0":"<p>City lists now in WooCommerce &gt; Settings &gt; Shipping &gt; Cities (menu item removed).<\/p>","1.3.0":"<p>Starter lists for 47 countries, and cities grouped by region.<\/p>","1.2.0":"<p>New: one-click starter lists of main cities for 9 Cash on Delivery countries.<\/p>","1.1.0":"<p>New: import your city lists from States, Cities, and Places for WooCommerce.<\/p>","1.0.1":"<p>Readme and listing text only; no change to how the plugin works.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3801112,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3801112,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3801112,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3801112,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3802170,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"CityFee demo: Moroccan store with delivery fees per city\",\"description\":\"Installs WooCommerce and CityFee from WordPress.org, adds a demo product, a Morocco city list with fees and a Morocco shipping zone with Delivery by city. Works only once CityFee is live on WordPress.org.\",\"author\":\"medsalemkhattat\",\"categories\":[\"WooCommerce\",\"Shipping\"]},\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=cityfee&country=MA\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"features\":{\"networking\":true},\"login\":true,\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"cityfee\"},\"options\":{\"activate\":true}},{\"step\":\"setSiteOptions\",\"options\":{\"blogname\":\"CityFee Demo Store\",\"permalink_structure\":\"\\\/%postname%\\\/\",\"woocommerce_default_country\":\"MA:macas\",\"woocommerce_currency\":\"MAD\",\"woocommerce_ship_to_countries\":\"\",\"woocommerce_coming_soon\":\"no\",\"woocommerce_onboarding_profile\":{\"skipped\":true},\"woocommerce_cod_settings\":{\"enabled\":\"yes\",\"title\":\"Cash on delivery\"}}},{\"step\":\"runPHP\",\"code\":\"<?php\\nrequire_once '\\\/wordpress\\\/wp-load.php';\\ndelete_transient( '_wc_activation_redirect' );\\nif ( ! class_exists( 'CityFee_Cities' ) || ! class_exists( 'WooCommerce' ) ) { return; }\\n$product = new WC_Product_Simple();\\n$product->set_name( 'Demo Sneakers' );\\n$product->set_regular_price( '299' );\\n$product->set_status( 'publish' );\\n$product->save();\\nCityFee_Cities::set_country( 'MA', true, true );\\n$cities = array(\\n\\tarray( 'Casablanca', '30', '\\u0627\\u0644\\u062f\\u0627\\u0631 \\u0627\\u0644\\u0628\\u064a\\u0636\\u0627\\u0621' ),\\n\\tarray( 'Rabat', '35', '\\u0627\\u0644\\u0631\\u0628\\u0627\\u0637' ),\\n\\tarray( 'Sal\\u00e9', '35', '\\u0633\\u0644\\u0627' ),\\n\\tarray( 'K\\u00e9nitra', '35', '\\u0627\\u0644\\u0642\\u0646\\u064a\\u0637\\u0631\\u0629' ),\\n\\tarray( 'Marrakech', '40', '\\u0645\\u0631\\u0627\\u0643\\u0634' ),\\n\\tarray( 'F\\u00e8s', '40', '\\u0641\\u0627\\u0633' ),\\n\\tarray( 'Mekn\\u00e8s', '40', '\\u0645\\u0643\\u0646\\u0627\\u0633' ),\\n\\tarray( 'El Jadida', '40', '\\u0627\\u0644\\u062c\\u062f\\u064a\\u062f\\u0629' ),\\n\\tarray( 'Tanger', '45', '\\u0637\\u0646\\u062c\\u0629' ),\\n\\tarray( 'T\\u00e9touan', '45', '\\u062a\\u0637\\u0648\\u0627\\u0646' ),\\n\\tarray( 'Agadir', '50', '\\u0623\\u0643\\u0627\\u062f\\u064a\\u0631' ),\\n\\tarray( 'Oujda', '55', '\\u0648\\u062c\\u062f\\u0629' ),\\n\\tarray( 'Safi', null, '\\u0622\\u0633\\u0641\\u064a' ),\\n\\tarray( 'Chefchaouen', null, '\\u0634\\u0641\\u0634\\u0627\\u0648\\u0646', true ),\\n);\\nforeach ( $cities as $c ) {\\n\\tCityFee_Cities::add( 'MA', $c[0], array( 'fee' => $c[1], 'aliases' => $c[2], 'no_delivery' => ! empty( $c[3] ) ) );\\n}\\n$zone = new WC_Shipping_Zone();\\n$zone->set_zone_name( 'Morocco' );\\n$zone->add_location( 'MA', 'country' );\\n$zone->save();\\n$iid = $zone->add_shipping_method( 'cityfee_city' );\\nupdate_option( 'woocommerce_cityfee_city_' . $iid . '_settings', array( 'title' => 'Delivery', 'tax_status' => 'none', 'default_fee' => '60' ) );\\nCityFee_Cities::bump_shipping();\\n\"}]}"}},"all_blocks":[],"tagged_versions":["1.0.1","1.1.0","1.2.0","1.3.0","1.4.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3801112,"resolution":"1","location":"assets","locale":"","width":1280,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3801112,"resolution":"2","location":"assets","locale":"","width":1280,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3801112,"resolution":"3","location":"assets","locale":"","width":1280,"height":1100},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3801112,"resolution":"4","location":"assets","locale":"","width":1280,"height":1688},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3801112,"resolution":"5","location":"assets","locale":"","width":1280,"height":937},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3801112,"resolution":"6","location":"assets","locale":"","width":1280,"height":900},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3801112,"resolution":"7","location":"assets","locale":"","width":1280,"height":1677}},"screenshots":{"1":"Classic checkout: the city field is a searchable list of your cities, with the other spelling next to each name.","2":"Classic checkout: the order summary shows the delivery fee of the chosen city (Rabat, 35).","3":"Checkout block: the city list and the delivery fee of the chosen city.","4":"WooCommerce &gt; Settings &gt; Shipping &gt; Cities, cities of a country: fees, default fee, \"Not delivered\" cities, order, the add form and the paste box.","5":"Countries overview: city dropdown and postcode setting per country.","6":"The \"Delivery by city\" shipping method in a shipping zone, with its title, tax status and default fee.","7":"The cities screen in Arabic (right-to-left)."}},"plugin_section":[],"plugin_tags":[31179,35402,183734,168766,231952],"plugin_category":[45],"plugin_contributors":[291363],"plugin_business_model":[],"class_list":["post-402447","plugin","type-plugin","status-publish","hentry","plugin_tags-cash-on-delivery","plugin_tags-cities","plugin_tags-city-dropdown","plugin_tags-delivery-fees","plugin_tags-shipping-by-city","plugin_category-ecommerce","plugin_contributors-medsalemkhattat","plugin_committers-medsalemkhattat"],"banners":{"banner":"https:\/\/ps.w.org\/cityfee\/assets\/banner-772x250.png?rev=3801112","banner_2x":"https:\/\/ps.w.org\/cityfee\/assets\/banner-1544x500.png?rev=3801112","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cityfee\/assets\/icon-128x128.png?rev=3801112","icon_2x":"https:\/\/ps.w.org\/cityfee\/assets\/icon-256x256.png?rev=3801112","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cityfee\/assets\/screenshot-1.png?rev=3801112","caption":"Classic checkout: the city field is a searchable list of your cities, with the other spelling next to each name."},{"src":"https:\/\/ps.w.org\/cityfee\/assets\/screenshot-2.png?rev=3801112","caption":"Classic checkout: the order summary shows the delivery fee of the chosen city (Rabat, 35)."},{"src":"https:\/\/ps.w.org\/cityfee\/assets\/screenshot-3.png?rev=3801112","caption":"Checkout block: the city list and the delivery fee of the chosen city."},{"src":"https:\/\/ps.w.org\/cityfee\/assets\/screenshot-4.png?rev=3801112","caption":"WooCommerce &gt; Settings &gt; Shipping &gt; Cities, cities of a country: fees, default fee, \"Not delivered\" cities, order, the add form and the paste box."},{"src":"https:\/\/ps.w.org\/cityfee\/assets\/screenshot-5.png?rev=3801112","caption":"Countries overview: city dropdown and postcode setting per country."},{"src":"https:\/\/ps.w.org\/cityfee\/assets\/screenshot-6.png?rev=3801112","caption":"The \"Delivery by city\" shipping method in a shipping zone, with its title, tax status and default fee."},{"src":"https:\/\/ps.w.org\/cityfee\/assets\/screenshot-7.png?rev=3801112","caption":"The cities screen in Arabic (right-to-left)."}],"raw_content":"<!--section=description-->\n<p>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.<\/p>\n\n<p>Cities can be grouped by region (state, province, governorate, wilaya or district) and shown as \"City \u2013 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.<\/p>\n\n<p><strong>Free features<\/strong><\/p>\n\n<ul>\n<li>City dropdown at checkout instead of a free-text city field, per country, in the <strong>classic checkout and the Checkout block<\/strong>, for billing and shipping addresses.<\/li>\n<li>The customer can only pick a city from your list, and the choice is checked on the server too.<\/li>\n<li>Your own city lists: add, edit, hide and reorder cities in WooCommerce &gt; Settings &gt; Shipping &gt; Cities. An optional \"other spelling\" (for example the name in Arabic script) is shown next to the name.<\/li>\n<li>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.<\/li>\n<li>\"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.<\/li>\n<li>The fee updates as soon as the customer changes the city.<\/li>\n<li>Change many fees at once (bulk edit for selected cities or a whole country).<\/li>\n<li>Cities can also be used as regions in WooCommerce shipping zones.<\/li>\n<li>The chosen city is copied into the order and customer address, so emails, invoices and courier exports show a normal city name.<\/li>\n<li>Postcode field hidden per country (optional).<\/li>\n<li>Compatible with HPOS (High-Performance Order Storage).<\/li>\n<li>Translation-ready and right-to-left ready (admin screen and checkout checked in Arabic).<\/li>\n<\/ul>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>Go to WooCommerce &gt; Settings &gt; Shipping &gt; Cities, choose a country and add or paste your cities with their fees.<\/li>\n<li>In WooCommerce &gt; Settings &gt; Shipping, add \"Delivery by city\" to the shipping zone that covers the country, like Flat rate, and set the default fee.<\/li>\n<li>Customers now choose their city from the list and see its delivery fee at checkout.<\/li>\n<\/ol>\n\n<p>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.<\/p>\n\n<p>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).<\/p>\n\n<p><strong>CityFee Pro<\/strong><\/p>\n\n<p>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.<\/p>\n\n<p>Pricing and a 7-day free trial (no card needed): <a href=\"https:\/\/dssarl.com\/cityfee\/\">dssarl.com\/cityfee<\/a><\/p>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<p>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.<\/p>\n\n<p>CityFee is developed by Digital Services SARL (https:\/\/dssarl.com\/).<\/p>\n\n<p>Getting fake Cash on Delivery orders? Our free plugin <a href=\"https:\/\/wordpress.org\/plugins\/orderproof\/\">OrderProof<\/a> asks customers to confirm COD orders with a WhatsApp code before you ship.<\/p>\n\n<p>Questions or problems? Open a thread in the <a href=\"https:\/\/wordpress.org\/support\/plugin\/cityfee\/\">support forum<\/a>. If CityFee is useful to your store, an honest review helps other store owners find it.<\/p>\n\n<h3>Data sources<\/h3>\n\n<p>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.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install CityFee from Plugins &gt; Add New, or upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, and activate it.<\/li>\n<li>Open WooCommerce &gt; Settings &gt; Shipping &gt; Cities to add your first country and its cities.<\/li>\n<li>Add the \"Delivery by city\" method to a shipping zone in WooCommerce &gt; Settings &gt; Shipping.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%20use%20states%2C%20cities%2C%20and%20places%20for%20woocommerce.%20can%20i%20move%20to%20cityfee%3F\"><h3>I use States, Cities, and Places for WooCommerce. Can I move to CityFee?<\/h3><\/dt>\n<dd><p>Yes. Keep that plugin installed, open WooCommerce &gt; Settings &gt; Shipping &gt; 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.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20my%20cities%20and%20fees%20quickly%3F\"><h3>How do I add my cities and fees quickly?<\/h3><\/dt>\n<dd><p>Go to WooCommerce &gt; Settings &gt; Shipping &gt; Cities, choose the country and paste one city per line. Add the fee after a semicolon:<\/p>\n\n<pre><code>Casablanca;30\nRabat;35\nTanger\n<\/code><\/pre>\n\n<p>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.<\/p><\/dd>\n<dt id=\"can%20i%20set%20different%20delivery%20charges%20for%20each%20city%3F\"><h3>Can I set different delivery charges for each city?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"does%20it%20work%20for%20my%20country%3F\"><h3>Does it work for my country?<\/h3><\/dt>\n<dd><p>Yes. Choose any country in WooCommerce &gt; Settings &gt; Shipping &gt; 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).<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20checkout%20block%3F\"><h3>Does it work with the Checkout block?<\/h3><\/dt>\n<dd><p>Yes. The city dropdown and the fee work in both the classic checkout and the Checkout block.<\/p><\/dd>\n<dt id=\"does%20it%20come%20with%20city%20lists%3F\"><h3>Does it come with city lists?<\/h3><\/dt>\n<dd><p>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 &gt; Settings &gt; Shipping &gt; 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.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20country%27s%20region%20%28state%29%20field%3F\"><h3>What happens to the country's region (state) field?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"what%20if%20i%20don%27t%20deliver%20to%20a%20city%3F\"><h3>What if I don't deliver to a city?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n<dt id=\"can%20i%20rename%20a%20city%20later%3F\"><h3>Can I rename a city later?<\/h3><\/dt>\n<dd><p>Yes. Each city has a code that orders store; renaming the city keeps its code. Past orders keep the address they were placed with.<\/p><\/dd>\n<dt id=\"how%20many%20cities%20can%20a%20country%20have%3F\"><h3>How many cities can a country have?<\/h3><\/dt>\n<dd><p>Up to 2,000. Above 300 the admin shows a reminder, because the Checkout block shows a plain dropdown without search.<\/p><\/dd>\n<dt id=\"is%20it%20translated%3F\"><h3>Is it translated?<\/h3><\/dt>\n<dd><p>CityFee is ready for translation and for right-to-left languages. French and Arabic translations have been prepared for translate.wordpress.org.<\/p><\/dd>\n<dt id=\"what%20is%20removed%20when%20i%20delete%20the%20plugin%3F\"><h3>What is removed when I delete the plugin?<\/h3><\/dt>\n<dd><p>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.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>The city lists moved to WooCommerce &gt; Settings &gt; Shipping &gt; 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.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<li>New per-country setting \"Show the region next to the city at checkout\" (for example \"Alcal\u00e1 de Henares \u2013 Madrid\"), in the classic checkout and the Checkout block.<\/li>\n<li>Each city can have a region (add\/edit form and city list), and a \"Sort by region, then name\" button.<\/li>\n<li>Importing from States, Cities, and Places for WooCommerce now keeps each city's state as its region.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>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.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>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 &gt; Settings &gt; Shipping &gt; 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.<\/li>\n<\/ul>","raw_excerpt":"City dropdown at checkout with ready lists of cities and regions for 47 countries, and a delivery fee per city. Classic and block checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/402447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=402447"}],"author":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/medsalemkhattat"}],"wp:attachment":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=402447"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=402447"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=402447"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=402447"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=402447"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=402447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}