{"id":382191,"date":"2026-10-07T02:26:19","date_gmt":"2026-10-07T02:26:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vietaddr-vietnam-2-level-address-for-woocommerce\/"},"modified":"2026-10-07T02:25:54","modified_gmt":"2026-10-07T02:25:54","slug":"vietaddr","status":"publish","type":"plugin","link":"https:\/\/tir.wordpress.org\/plugins\/vietaddr\/","author":23581296,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.0","stable_tag":"0.2.0","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"VietAddr \u2013 Vietnam 2-Level Address for WooCommerce","header_author":"","header_description":"\u0110\u1ecba ch\u1ec9 Vi\u1ec7t Nam 2 c\u1ea5p (T\u1ec9nh\/Th\u00e0nh ph\u1ed1 \u2013 X\u00e3\/Ph\u01b0\u1eddng\/\u0110\u1eb7c khu, sau s\u00e1p nh\u1eadp 2025) cho trang thanh to\u00e1n WooCommerce, ki\u1ec3m s\u1ed1 \u0111i\u1ec7n tho\u1ea1i Vi\u1ec7t Nam.","assets_banners_color":"1e73b4","last_updated":"2026-10-07 02:25:54","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":61,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.0":{"tag":"0.2.0","author":"vnwooplugins","date":"2026-10-07 02:25:54","revision":3731764}},"upgrade_notice":{"0.2.0":"<p>Adds Checkout block support. New addresses store the ward name instead of the ward code.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3731796,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3731796,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3731764,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3731764,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3731764,"resolution":"1","location":"assets","locale":"","width":1100,"height":1513},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3731764,"resolution":"2","location":"assets","locale":"","width":1100,"height":1513},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3731764,"resolution":"3","location":"assets","locale":"","width":1100,"height":1513}},"screenshots":{"1":"Checkout block: province and ward dropdowns.","2":"Order received page with ward and province names.","3":"Admin order screen: ward dropdown filtered by province."}},"plugin_section":[],"plugin_tags":[3513,3148,2644,39081,286],"plugin_category":[45,49],"plugin_contributors":[284786],"plugin_business_model":[],"class_list":["post-382191","plugin","type-plugin","status-publish","hentry","plugin_tags-address","plugin_tags-checkout","plugin_tags-phone","plugin_tags-vietnam","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_category-maps-and-location","plugin_contributors-vnwooplugins","plugin_committers-vnwooplugins"],"banners":{"banner":"https:\/\/ps.w.org\/vietaddr\/assets\/banner-772x250.png?rev=3731764","banner_2x":"https:\/\/ps.w.org\/vietaddr\/assets\/banner-1544x500.png?rev=3731764","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vietaddr\/assets\/icon-128x128.png?rev=3731796","icon_2x":"https:\/\/ps.w.org\/vietaddr\/assets\/icon-256x256.png?rev=3731796","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vietaddr\/assets\/screenshot-1.png?rev=3731764","caption":"Checkout block: province and ward dropdowns."},{"src":"https:\/\/ps.w.org\/vietaddr\/assets\/screenshot-2.png?rev=3731764","caption":"Order received page with ward and province names."},{"src":"https:\/\/ps.w.org\/vietaddr\/assets\/screenshot-3.png?rev=3731764","caption":"Admin order screen: ward dropdown filtered by province."}],"raw_content":"<!--section=description-->\n<p>Since 1 July 2025 Vietnam uses a 2-level administrative system: 34 provinces\/cities and 3,321 wards\/communes\/special zones. VietAddr turns the WooCommerce address form into two dependent dropdowns for Vietnamese addresses:<\/p>\n\n<ul>\n<li><strong>Province<\/strong> (T\u1ec9nh\/Th\u00e0nh ph\u1ed1) uses the core <code>state<\/code> field: 34 entries.<\/li>\n<li><strong>Ward<\/strong> (X\u00e3\/Ph\u01b0\u1eddng\/\u0110\u1eb7c khu) uses the core <code>city<\/code> field, filtered by the selected province. The ward name is stored, so addresses stay readable in emails, exports and other plugins.<\/li>\n<li>Postcode is hidden for Vietnam.<\/li>\n<li>Phone numbers must have 10 digits starting with 0 or +84 (03\/05\/07\/08\/09); they are saved as <code>0xxxxxxxxx<\/code>.<\/li>\n<\/ul>\n\n<p>Works with:<\/p>\n\n<ul>\n<li>the Checkout block and the classic <code>[woocommerce_checkout]<\/code> shortcode,<\/li>\n<li>My Account &gt; Addresses,<\/li>\n<li>the admin order screen (ward dropdown filtered by province),<\/li>\n<li>High-Performance Order Storage (HPOS).<\/li>\n<\/ul>\n\n<p><strong>Migrating from \"Vietnam Checkout for WooCommerce\"<\/strong> (woo-vietnam-checkout): Tools &gt; \"VietAddr: chuy\u1ec3n \u0111\u1ecba ch\u1ec9\" converts saved customer addresses (old 3-level province\/district\/ward codes, or that plugin's 2-level codes) to the new format. It has a dry-run mode, backs up old values to the user meta <code>_vnck_legacy_address<\/code>, and lists the addresses that need a manual fix (for example, an old ward split between several new wards). WP-CLI: <code>wp vnck migrate-legacy [--apply]<\/code>.<\/p>\n\n<p>Ti\u1ebfng Vi\u1ec7t: Plugin thay \u00f4 \u0111\u1ecba ch\u1ec9 c\u1ee7a WooCommerce b\u1eb1ng 2 \u00f4 ch\u1ecdn T\u1ec9nh\/Th\u00e0nh ph\u1ed1 \u2192 X\u00e3\/Ph\u01b0\u1eddng\/\u0110\u1eb7c khu (34 t\u1ec9nh, 3.321 x\u00e3 theo \u0111\u01a1n v\u1ecb h\u00e0nh ch\u00ednh t\u1eeb 01\/07\/2025), \u1ea9n m\u00e3 b\u01b0u ch\u00ednh, ki\u1ec3m s\u1ed1 \u0111i\u1ec7n tho\u1ea1i Vi\u1ec7t Nam. D\u00f9ng \u0111\u01b0\u1ee3c v\u1edbi Checkout Block, checkout c\u1ed5 \u0111i\u1ec3n, T\u00e0i kho\u1ea3n &gt; \u0110\u1ecba ch\u1ec9, m\u00e0n s\u1eeda \u0111\u01a1n trong admin, HPOS.<\/p>\n\n<h4>Data<\/h4>\n\n<p>Administrative units are bundled in <code>data\/vn-units.json<\/code> (source: provinces.open-api.vn API v2, see <code>data\/SOURCE.md<\/code>). The plugin makes no external requests: the browser loads the JSON file from your own site.<\/p>\n\n<h4>Credits and data sources<\/h4>\n\n<ul>\n<li>Administrative units (34 provinces\/cities, 3,321 wards\/communes\/special zones, per the 2025 merger resolutions): source is the Vietnam National Statistics Office (C\u1ee5c Th\u1ed1ng k\u00ea, https:\/\/danhmuchanhchinh.nso.gov.vn\/), downloaded through the API https:\/\/provinces.open-api.vn\/ by Nguy\u1ec5n H\u1ed3ng Qu\u00e2n (https:\/\/github.com\/hongquan\/vn-open-api-provinces), licensed GPL-3.0-or-later. Download date and SHA-256 are in <code>data\/SOURCE.md<\/code>.<\/li>\n<li>The old-to-new ward conversion table (<code>data\/legacy-map.json<\/code>) also uses data from the plugin \"Vietnam Checkout for WooCommerce\" (woo-vietnam-checkout) 2.1.6 (GPL), and the old-ward mapping of the same API.<\/li>\n<li>This plugin is licensed GPL-3.0-or-later; the full text is in the <code>LICENSE<\/code> file.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>vietaddr<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install the zip from Plugins &gt; Add New.<\/li>\n<li>Activate the plugin. WooCommerce 8.0 or newer is required.<\/li>\n<li>Set the store country to Vietnam if needed. No settings page is required.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20replace%20the%20city%2Fstate%20fields%20in%20the%20checkout%20block%3F\"><h3>Does it replace the city\/state fields in the Checkout block?<\/h3><\/dt>\n<dd><p>The block keeps the core fields. Province is the core state dropdown. For the ward, a small script places a dropdown over the core city field and writes the value through the WooCommerce Blocks data store. The server checks again when the order is placed, so an invalid ward or phone is rejected even without JavaScript.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20phone%20rule%3F\"><h3>Can I change the phone rule?<\/h3><\/dt>\n<dd><p>Yes, with the <code>vnck_phone_pattern<\/code> filter (PHP regular expression applied to the normalized number).<\/p><\/dd>\n<dt id=\"what%20happens%20to%20addresses%20saved%20by%20version%200.1.0%3F\"><h3>What happens to addresses saved by version 0.1.0?<\/h3><\/dt>\n<dd><p>Version 0.1.0 stored ward codes. They are still accepted and shown as ward names; the migration tool converts them to names.<\/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 plugin creates no options or transients. Deleting it from Plugins (uninstall) removes only the user meta <code>_vnck_legacy_address<\/code>, the backup written by the migration tool. Customer and order addresses (WooCommerce billing\/shipping fields) are kept. Deactivating the plugin removes nothing.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Renamed from \"VN Checkout\" to VietAddr (slug <code>vietaddr<\/code>).<\/li>\n<li>Checkout block support (ward dropdown, server-side validation through the Store API).<\/li>\n<li>Ward name is stored in the city field (ward codes from 0.1.0 still accepted).<\/li>\n<li>Admin order screen: ward dropdown.<\/li>\n<li>Migration tool and WP-CLI command for \"Vietnam Checkout for WooCommerce\" addresses.<\/li>\n<li>Text domain <code>vietaddr<\/code>, translation template <code>languages\/vietaddr.pot<\/code>.<\/li>\n<li>Uninstall removes the migration backup meta <code>_vnck_legacy_address<\/code>.<\/li>\n<li>License changed to GPL-3.0-or-later; data credits added.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Classic checkout and My Account: province\/ward dropdowns, Vietnamese phone validation, HPOS compatibility.<\/li>\n<\/ul>","raw_excerpt":"2-level Province \u2192 Ward addresses for Vietnam (2025 merger, 34 provinces, no district level) for the Checkout Block and classic checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/382191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=382191"}],"author":[{"embeddable":true,"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vnwooplugins"}],"wp:attachment":[{"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=382191"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=382191"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=382191"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=382191"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=382191"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tir.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=382191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}