Trang thanh toán và địa chỉ
Tab Cài đặt chung lo phần trang thanh toán: địa chỉ 2 cấp sau sáp nhập, số điện thoại Việt Nam, chặn đơn rác, cách hiện giá. Đây là module dùng chung với các plugin vận chuyển của DevVN, và chạy cả khi chưa kích hoạt License.
Địa chỉ 2 cấp — làm việc này trước
Mới cài, module dùng bộ địa chỉ 3 cấp cũ (Tỉnh → Quận/Huyện → Phường/Xã, trước 01/07/2025). Muốn dùng địa chỉ 2 cấp sau sáp nhập (Tỉnh/Thành → Phường/Xã, 34 tỉnh thành) thì đổi ở khối Công cụ cuối tab.
- Cập nhật quốc gia — đặt quốc gia Việt Nam cho toàn bộ tài khoản khách cũ. Chạy một lần nếu website trước đây bán quốc tế.
- Đơn vị hành chính — Mới nhất là bộ 2 cấp sau sáp nhập; v2.0 là bộ 3 cấp trước 01.07.2025; v1.8 là bộ trước năm 2025. Bộ dữ liệu có sẵn mã tỉnh, phường của Nhanh.vn, nên phí ship và đơn đăng lên Nhanh.vn nhận đúng địa chỉ.
- Cập nhật database — nạp bộ vừa chọn. Chọn xong bắt buộc bấm nút này, không thì lựa chọn chưa có tác dụng.
Cập nhật database ghi đè toàn bộ bảng tỉnh, huyện, xã. Đơn cũ lưu mã theo bộ cũ có thể hiện sai địa chỉ sau khi đổi. Sao lưu cơ sở dữ liệu trước, và đổi vào lúc ít đơn.
Trang thanh toán dạng block (khối Thanh toán của WooCommerce) chỉ dùng được ô địa chỉ của module khi đang ở bộ 2 cấp.
Checkout field — các ô ở trang thanh toán
- Cài đặt chung — tab đầu tiên, cũng là tab mở ra mặc định.
- Định dạng SĐT ở VN — bắt số điện thoại đúng dạng
0xxxhoặc+84xxx. Nên bật: số sai là shipper không gọi được. - Xưng hô — thêm lựa chọn Anh/Chị, tiện khi gọi xác nhận đơn.
- KHÔNG bắt buộc nhập Email — khách không có email vẫn đặt được.
- Hình thức tải địa chỉ — để mặc định Tải bằng file json. Chỉ đổi khi hosting chặn đọc file json trong thư mục plugin.
Các ô country, last name, postcode chỉ bật khi cổng thanh toán quốc tế đòi những trường đó. Với bộ 3 cấp có thêm hai ô ẩn phường/xã hoặc không bắt buộc phường/xã.
Cài đặt chung — hiển thị giá và phí ship
- Chuyển giá sang dạng chữ — 18.000đ thành 18k, 1.200.000đ thành 1tr200, áp cho toàn website.
- Chuyển ₫ sang VNĐ — thay ký hiệu ₫ bằng chữ VNĐ.
- Ẩn phương thức khi có free-shipping — đơn được miễn phí vận chuyển thì ẩn các phương thức tính tiền, chỉ để dòng miễn phí.
- Thay đổi giao diện trang đơn hàng — mặc định tắt. Bật thì danh sách đơn có cột sản phẩm, lọc theo ngày và tỉnh, đổi trạng thái ngay tại danh sách, và nút đăng đơn Nhanh.vn trong từng dòng. Xem bài đăng đơn.
- Làm tròn phí ship — làm tròn về hàng nghìn, ví dụ 18.050đ thành 18.000đ, 18.503đ thành 19.000đ.
Miễn phí ship theo cách thanh toán là một phương thức vận chuyển riêng — xem bài vận chuyển.
Chặn đơn rác
- Sử dụng Google reCAPTCHA V3 (Khuyên dùng) — chọn xong, hai ô Sitekey, Secretkey hiện ra. Tạo cặp khoá loại v3 tại trang quản trị reCAPTCHA, khai đúng tên miền.
- Kích hoạt cho tạo đơn hàng — bật reCAPTCHA ở bước đặt hàng.
- Chặn order với các IP — mỗi IP một dòng, chặn cả dải bằng dấu sao, ví dụ
192.168.1.*. - Chặn order với các từ khoá — mỗi giá trị một dòng. Plugin so với tên, số điện thoại, email, địa chỉ của đơn và chặn khi trùng hoàn toàn (không phải "có chứa"). Hợp để chặn số điện thoại hay bom hàng.
Kiểm tra định dạng số điện thoại, chặn IP, chặn từ khoá và reCAPTCHA chỉ chạy khi trang thanh toán dùng mã ngắn [woocommerce_checkout]. Trang thanh toán dạng block không đi qua các bước kiểm tra này. Sitekey và Secretkey phải cùng một cặp, cùng phiên bản — lẫn khoá v2 với v3 là khách không đặt được hàng; bật xong hãy tự đặt thử một đơn ở cửa sổ ẩn danh.
Sổ địa chỉ và tách đơn
Hai tính năng này thuộc module trang thanh toán dùng chung với plugin GHTK của DevVN. Ảnh dưới chụp từ module đó; ở bản plugin của bạn, hai khối này nằm trong cùng tab Cài đặt chung.
Sổ địa chỉ khách hàng
Khách đã đăng nhập lưu được nhiều địa chỉ giao hàng và chọn nhanh khi thanh toán.
- Kích hoạt — chỉ có tác dụng với khách đã đăng nhập.
- Dropdown select — một ô chọn gọn nhẹ.
- Card + nút "Đổi địa chỉ" — hiện địa chỉ đang chọn thành thẻ, bấm để mở hộp chọn, giống các sàn thương mại điện tử.
Tách đơn hàng
Tách một đơn thành hai, chọn sản phẩm và số lượng tách ra — dùng khi một phần hàng chưa về mà khách muốn nhận trước phần còn lại.
- Kích hoạt — bật thì trang sửa đơn có thêm hộp Tách đơn hàng.
- Trạng thái cho phép tách — chỉ đơn ở các trạng thái được tích mới tách được.
- Trạng thái đơn mới — để Giống đơn hiện tại là an toàn nhất.
Đơn mới tách ra được chép thông tin từ đơn gốc, có thể gồm cả ID đơn trên Nhanh.vn của đơn gốc. Tách xong mà hộp Đăng đơn Nhanh.vn của đơn mới đã hiện một ID đơn, thì đó là đơn của đơn gốc — đừng bấm Huỷ đơn trên Nhanh.vn ở đơn mới. Lập trình viên có thể chặn việc chép này bằng hook, xem bài hook.
Nhớ bấm Lưu thay đổi
Mọi ô trong tab chỉ có hiệu lực sau khi bấm Lưu thay đổi ở cuối trang. Riêng hai nút trong khối Công cụ chạy ngay khi bấm.
Lỗi thường gặp
| Hiện tượng | Nguyên nhân và cách xử lý |
|---|---|
| Trang thanh toán vẫn hỏi Quận/Huyện | Đang dùng bộ 3 cấp. Chọn Mới nhất rồi bấm Cập nhật database. |
| Ô tỉnh, phường trống hoặc quay mãi | Hosting chặn đọc file json. Đổi Hình thức tải địa chỉ sang admin-ajax.php. |
| Khách báo không đặt được hàng sau khi bật reCAPTCHA | Khoá sai cặp, sai phiên bản hoặc chưa khai tên miền ở Google. Kiểm tra lại, đặt thử ở cửa sổ ẩn danh. |
| Đã chặn số điện thoại mà vẫn có đơn | Từ khoá phải trùng hoàn toàn (khách nhập thêm dấu cách hay +84 là khác), hoặc trang thanh toán đang dạng block. |
| Phí ship Nhanh.vn không ra với địa chỉ 2 cấp | Chọn bộ Mới nhất mà chưa bấm Cập nhật database, hoặc khách chưa chọn phường/xã. |
Tiếp theo: xem cửa hàng còn hàng.