Description
MAIN FEATURES
1. Customize WooCommerce address fields
Customize WooCommerce address fields everywhere:
▪ Back-end: Store address
▪ Back-end: Your profile
▪ Back-end: Order details
▪ Front-end: Cart page
▪ Front-end: Checkout page
▪ Front-end: My account > Adresses
…
2. Vietnam’s new 2-tier administrative units (merger of 01/07/2025)
Both address models are supported side by side: the old 3-tier one (Province / District / Ward) and the new 2-tier one (Province / Ward, 34 provinces). Already-saved addresses always keep the units they were entered with — the setting only governs how new addresses are entered.
▪ Switch new addresses to the 2-tier units (add to your theme’s functions.php):
add_filter('fsw_use_v2025_address', '__return_true');
▪ (Pro) Or simply pick the model on FriendStore Addons Settings “Administrative units”
▪ Saved old addresses convert automatically when a form opens: the province follows the official 63 34 merger exactly, and the ward is pre-picked when its name (or its old district’s name) carried over — checkout, My account and the store address all prefill this way, and nothing is rewritten until the form is saved
▪ Admin screens keep both catalogues side by side (old provinces marked “(cũ)”), so existing orders and customer profiles keep displaying exactly what was entered
▪ (Pro) ViettelPost quotes the new units live; a delivery unit that cannot quote them through its API yet stays choosable at checkout as “Calculate fee later”
3. Add new order statuses
▪ Shipping (wc-shipping)
▪ Shipped (wc-shipped)
4. Address book (like tiki, sendo, lazada, shopee…)
▪ Disable address book:
add_filter('fsw_user_addresses_enabled', '__return_false');
5. Calculate shipping fee on product detail (like tiki, sendo, lazada, shopee…)
▪ Disable calculate shipping:
add_filter('fsw_product_shipping_calculator_enabled', '__return_false');
▪ Turn off auto calculate shipping:
add_filter('fsw_product_shipping_calculator_auto', '__return_false');
6. Freeship coupons
Two coupon types that discount the shipping fee instead of the cart items:
▪ “Shipping discount” — a fixed amount off each rate (empty/0 = completely free)
▪ “Shipping discount (%)” — a percentage off, with an optional “Max discount” cap
▪ The cart/checkout shows the original fee struck through next to the price to pay, and the coupon row shows the real shipping discount
▪ Acts on every paid shipping method; (Pro) acts on the delivery units’ live rates instead, zone methods keep their price
7. Integrating with delivery units (Pro)
▪ Giao hàng nhanh (GHN express): live rates + delivery time estimate, create order, tracking, cancel
▪ Giao hàng tiết kiệm (GHTK express): live rates (fly/road), create order, tracking, cancel
▪ Viettel Post: shipping rates — including the new 2-tier units
▪ Enable/disable each unit on its own card (Delivery Units tab)
8. Stores — sender locations (Pro)
▪ Manage pickup/sender branches and pick a default store for quotes & waybills
▪ Link/sync a store with the carrier’s shop list (GHN, GHTK)
▪ Shortcodes: stores map [fsw_store_maps] and store details [fsw_store_details]
9. Waybill management (Pro)
Manage shipments as first-class records on their own “Waybills” admin page:
▪ Create waybills from an order (one click from the order screen) or standalone
▪ Draft send to carrier automatic status tracking (GHN, GHTK, every 30 minutes)
▪ Cancel at the carrier and resubmit with another delivery unit
▪ Self-delivery and WooCommerce Shipping as manual delivery choices
▪ Printable shipping labels (A5 / A6 / 10×15) with barcode + QR, designed in the Customizer
▪ Recipient changes on a waybill sync back to the order, with an order note
▪ Optional: the order moves to Shipping / Shipped along with its waybill
▪ Public tracking shortcode for customers: [fsw_tracking unit=”ghn|ghtk|spx”]
EXTENSION DEVELOPMENT PLAN
▪ Carrier fee quoting & waybills for the new 2-tier units (as soon as the carriers’ APIs support them)
▪ Waybill CSV import/export
USEFUL LINKS:
▪ Website (Pro version): //store.vietfriend.info (Account: demo/123456)
▪ Product information: //code.vietfriend.info/product/friendstore-for-woocommerce-pro/
Translations included
▪ English (US) (English (US))
▪ Tiếng Việt (Vietnamese)
Screenshots

















Installation
Minimum Requirements
- WordPress 4.4 or greater
- WooCommerce 3.0 or greater
- PHP version 5.4 or greater
- MySQL version 5.0 or greater
Uploading in Plugin Dashboard
Step 1: Download FriendStore for WooCommerce
Step 2: Navigate to the Dashboard -> Plugins -> Add New, and then click Upload Plugin.
Step 3: Click Install Now and activate the plugin in the Plugin dashboard
Installing in Plugin Dashboard
Step 1: Navigate to the Dashboard -> Plugins -> Add New.
Step 2: In the search bar type FriendStore for WooCommerce
Step 3: Select this plugin and click on Install Now
Using FTP
Step 1: Download FriendStore for WooCommerce.
Step 2: Extract the plugin code to your computer
Step 3: Upload friendStore-for-woocommerce folder to your WordPress plugins directory /wp-content/plugins/
Step 4: Activate the plugin in the Plugin dashboard
The WordPress codex contains instructions on how to do this here.
FAQ
-
Is this plugin compatible with the latest version of WordPress and WooCommerce?
-
Of course, it is. We are always tried to make regular update so that the plugin can be compatible with the latest version of WordPress and WooCommerce.
-
Can it work well with other WordPress theme?
-
Yes, it can. This plugin can be used with any WordPress themes.
-
What is the number format and currency of Vietnamese?
-
In Vietnam, the currency is Vietnamese đồng (₫), the thousand separator is dot (.), the decimal separator is comma (,), the number of decimals should be 0.
-
How do I switch to the new 2-tier administrative units (after the 01/07/2025 merger)?
-
Add one line to your theme’s functions.php:
add_filter('fsw_use_v2025_address', '__return_true');New addresses are then entered as Province / Ward (34 provinces, no district). Addresses saved before keep showing the old units they were entered with — nothing breaks. When a saved old address is opened in a form (checkout, My account, the store address), it prefills converted: the province follows the official 63 34 merger, the ward is pre-picked when its name carried over and left for you to choose when it did not — nothing is rewritten until you save. In the Pro version you can simply pick the model on FriendStore Addons Settings “Administrative units”.
Reviews
Contributors & Developers
“FriendStore for WooCommerce” is open source software. The following people have contributed to this plugin.
Contributors“FriendStore for WooCommerce” has been translated into 1 locale. Thank you to the translators for their contributions.
Translate “FriendStore for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.6.0 – 2026-10-13
- Add: Freeship coupons — two coupon types, “Shipping discount” (a fixed amount off each rate, empty/0 = completely free) and “Shipping discount (%)” with an optional “Max discount” cap, that lower the shipping fee instead of the cart items. The cart shows the original fee struck through next to the price to pay and the coupon row shows the real shipping discount. Acts on every paid shipping method; the Pro version acts on the delivery units’ live rates instead
- Add: Vietnam’s new 2-tier administrative units (merger of 01/07/2025) beside the old 3-tier model — 34 provinces with their wards directly under them. The ward takes the City slot and “Address line 2” returns to a plain optional line; already-saved addresses always keep the units they were entered with. Switch new input with add_filter(‘fsw_use_v2025_address’, ‘__return_true’) in functions.php
- Add: Saved old addresses convert automatically when a form opens — the province follows the official 63 34 merger exactly and the ward is pre-picked when its name (or its old district’s name) carried over. Checkout, My Account, both shipping calculators and the Store Address all prefill this way; nothing is rewritten until the form is saved
- Add: Admin screens keep both catalogues side by side (old provinces marked “(cũ)”), so existing orders and customer profiles keep displaying exactly what was entered
- Updated: The Vietnamese place-name catalogues are parsed once per request and cached — an id-to-name conversion dropped from ~66ms to ~0ms, and the admin orders list no longer re-reads the 11,000-ward file for every address
- Updated: District renames caught up with reality: Phú Quốc island city, Hà Tiên city, Tân Châu town
- Fix: Dismissing an admin notice passed the wrong argument and never stuck
- Fix: The address formatter read its arguments before applying their defaults
- Updated: Internal — the plugin’s own scripts and stylesheets now carry the fsw- prefix, stylesheet sources are split into shared partials, and the Vietnamese translation catalogue grew by the full new-unit list
1.5.0 – 2026-09-20
- Add: Addresses outside Vietnam. Checkout, My Account, the address book, the cart and product shipping calculators, the order edit screen and the user profile show WooCommerce’s own fields for any other country, and saved addresses keep WooCommerce’s format; Vietnam keeps the Province / District / Ward selects and a single “Full Name” field. The form switches as soon as the customer changes country
- Add: The country field is shown whenever the shop sells or ships to more than one country
- Updated: Vietnam is set as the shop’s base country once, when the plugin is activated, instead of on every admin page load
- Updated: Requires WordPress 5.9, PHP 7.4 and WooCommerce 7.8 or newer
- Updated: Tested with WordPress 7.1.1 and WooCommerce 11.1.1; the cart shipping calculator template follows WooCommerce 9.7, which shows the field labels
- Refactor: Same code base as FriendStore for WooCommerce Pro, security hardening (nonce and permission checks, sanitised input, escaped output, no direct access to plugin files) and support for WooCommerce High-Performance Order Storage (HPOS)
- Fix: PHP notice at checkout for a visitor whose session holds no customer yet
- Fix: The cart shipping calculator lost the district and ward when opened
- Fix: Returning customers saw their old billing address at checkout after using a shipping calculator
1.4.3 – 2025-01-05
- Updated: Compatible WordPress v6.7.1
- Updated: Compatible WooCommerce v9.5.1
- Updated: new ward/province data
1.4.2 – 2020-08-19
- Updated: Add filter config
fsw_user_addresses_enabled - Updated: Add filter config
fsw_product_shipping_calculator_enabled - Updated: Add filter config
fsw_product_shipping_calculator_auto - Fixed: Fix bugs
1.4.1 – 2020-08-04
- Fixed: Product Shipping Calculator error in Simple, Grouped, Virtual & External product
1.4.0 – 2020-08-03
- Updated: Add Product Shipping Calculator (References from Magerips plugin)
1.3.0 – 2020-07-28
- Updated: Add Customer Address Book (References from WooCommerce plugin)
1.2.1 – 2020-07-09
- Fixed: Fix error when activate pro version
1.2.0 – 2020-03-22
- Update: Ajax new version – Select address faster than before
1.1.9 – 2019-11-05
- Update: Update notice after setup (thank fb:tuongbhn)
- Fixed: Fix select2 district, ward when city selected in Rey (Marius H.) theme (thank fb:tuongbhn)
1.1.8 – 2019-11-04
- Update: Separate the Lite and Pro versions
- Fixed: Check language Vietnamese with WordPress versions 4.9.12 and earlier
1.1.7.1 – 2019-11-01
- Fixed: Copy address of user in Order details (when add new, select customer)
1.1.7 – 2019-11-01
- Update: Copy address of user in Order details
1.1.6 – 2019-10-30
- Update: Copy billing address in Order details
- Fixed: Fix copy address when edit User (thanks fb:BloggerNguyenPhatLoc)
1.1.5 – 2019-10-29
- Updated: Escape all string in internationalization functions
- Fixed: Fix copy address in Your Profile (thanks fb:BloggerNguyenPhatLoc)
1.1.4 – 2019-10-28
- Fixed: Update CSS fix select2 in WooCart theme
- Fixed: Fix text placeholder Select Province/City (thanks fb:neoxone47)
1.1.3 – 2019-10-27
- Fixed: Remove link setting in Plugin Dashboard (thanks @truongduy)
- Fixed: Format PHP code (Easy to compare with Pro version)
1.1.2 – 2019-10-25
- Fixed: Change Text Domain
1.1.1 – 2019-10-25
- Fixed: Select2 in cart
- Fixed: Select2 in addresses my account
1.1.0 – 2019-10-25
- Updated: Store Address in General Options
1.0.0 – 2019-10-24
- Initial release
