Trang thanh toán và địa chỉ
Tab Cài đặt chung lo phần khách nhìn thấy: ô Tỉnh/Thành và Phường/Xã, địa chỉ 2 cấp hay 3 cấp, định dạng số điện thoại, chặn đơn ảo. Đây là module dùng chung của mọi plugin vận chuyển DevVN.
GHTK, SPX, ViettelPost, VNPost và GHN đều mang theo cùng một module trang thanh toán. Bản nào nạp trước thì chạy, các bản sau tự nhường — nên bạn không phải khai lại ở từng plugin.
Mở tab Cài đặt chung
Vào WooCommerce → Cài đặt GHN, tab Cài đặt chung là tab đầu tiên.
- Cài đặt chung — tab đầu tiên.
- Định dạng SĐT ở VN — bắt số điện thoại phải đúng dạng Việt Nam (
+84xxxhoặc0xxx). Mặc định tắt. Nên bật: sai số là shipper không gọi được cho khách. - Ẩn mục phường/xã — bỏ hẳn ô Phường/Xã khỏi trang thanh toán. Cân nhắc kỹ — GHN cần Phường/Xã để giao đúng chỗ.
Các ô còn lại theo cùng một kiểu: tích để bật, bỏ tích để tắt. KHÔNG bắt buộc nhập phường/xã cho khách bỏ trống ô này; Hiển thị trường country và last name cùng hai ô postcode mặc định tắt vì bán trong nước không cần.
Địa chỉ 3 cấp hay 2 cấp
Khối Công cụ ở cuối tab có mục Cập nhật dữ liệu địa chỉ với ba bộ dữ liệu:
- "Mới nhất" — 2 cấp Tỉnh/Thành → Phường/Xã, theo địa giới sau sáp nhập 01.07.2025.
- v2.0 - trước 01.07.2025 — 3 cấp cũ Tỉnh → Quận/Huyện → Phường/Xã. Đây là mặc định khi mới cài.
- V1.8 - trước năm 2025 — bộ cũ hơn, chỉ để tương thích.
Muốn trang thanh toán dùng địa chỉ 2 cấp mới: chọn "Mới nhất" rồi bấm Cập nhật database ngay bên dưới, chờ chạy xong rồi mới đóng tab. Website dùng trang thanh toán dạng khối (Checkout block) thì module chỉ hỗ trợ ô địa chỉ ở chế độ 2 cấp.
Phí GHN hiện ra khi khách đã chọn đủ Tỉnh + Phường/Xã (2 cấp) hoặc Tỉnh + Quận/Huyện (3 cấp). Ở chế độ 3 cấp, nếu bạn bật Có hàng nặng? thì khách phải chọn thêm Phường/Xã.
Phí ship GHN gồm những khoản nào, khối lượng quy đổi tính ra sao: xem bài cách tính phí ship GHN.
Ô "Hỗ trợ tính phí ship tới phường/xã"
- Hỗ trợ tính phí ship tới phường/xã — ô này thuộc module dùng chung và dành cho các hãng khác. Với GHN, bật hay tắt đều không đổi gì: khách đã chọn Phường/Xã thì plugin luôn gửi Phường/Xã sang GHN, và đổi Phường/Xã là phí được tính lại.
Cách tải dữ liệu địa chỉ
Ô Hình thức tải địa chỉ có ba lựa chọn, ảnh hưởng thẳng tới tốc độ trang thanh toán:
| Cách | Khi nào dùng |
|---|---|
| Tải bằng file json | Nhanh, plugin khuyến khích. Đây là mặc định, cứ để nguyên. |
| Tải bằng admin-ajax.php | Chậm hơn, dùng khi cách trên bị hosting chặn. |
| Tải bằng get-address.php | Nhanh nhưng gọi thẳng một file trong thư mục plugin; vài hosting chặn kiểu truy cập này. |
Những khối còn lại
| Khối | Làm gì |
|---|---|
| Cài đặt chung | Chuyển giá sang dạng chữ (18.200đ → 18k200), đổi ₫ sang VNĐ, bỏ tiêu đề phương thức vận chuyển, ẩn phương thức khác khi có miễn phí ship, làm tròn phí ship, giao diện danh sách đơn hàng kiểu mới (mặc định bật — nút Tạo vận đơn GHN ngay trong danh sách đơn nằm ở giao diện này). |
| Sổ địa chỉ khách hàng | Cho khách lưu nhiều địa chỉ giao hàng. Mặc định tắt. |
| Tách đơn hàng | Cho quản trị viên tách một đơn thành đơn mới (chọn sản phẩm và số lượng). Mặc định bật. Xem cảnh báo bên dưới trước khi dùng với đơn GHN. |
| Lấy địa chỉ tự động | Gợi ý địa chỉ theo số điện thoại khách đã mua lần trước. |
| Cấu hình Google reCAPTCHA | Chặn đơn ảo do máy tự đặt (reCAPTCHA v2 hoặc v3). |
| Nâng cao | Chặn đặt hàng theo IP (hoặc dải IP) và theo từ khoá trong tên, địa chỉ, email, số điện thoại. |
| Công cụ | Cập nhật quốc gia và Cập nhật dữ liệu địa chỉ — xem mục 3 cấp hay 2 cấp ở trên. |
Đơn mới sao chép toàn bộ thông tin đơn gốc, gồm cả mã vận đơn GHN và trạng thái GHN. Khi đó bấm Hủy đơn hàng ở đơn mới là huỷ luôn vận đơn thật của đơn gốc, và trạng thái webhook gửi về có thể cập nhật vào đơn mới thay vì đơn gốc. Chỉ tách đơn khi đơn chưa tạo vận đơn GHN; tách xong mới tạo vận đơn cho từng đơn.
Cách kiểm tra đã đúng chưa
- Mở trang thanh toán ở cửa sổ ẩn danh.
- Ô Tỉnh/Thành chọn được, chọn xong thì ô Phường/Xã (và Quận/Huyện nếu dùng 3 cấp) nạp theo.
- Chọn đủ địa chỉ và xem dòng GHN có hiện kèm phí không.
Lỗi thường gặp
| Hiện tượng | Cách xử lý |
|---|---|
| Ô Phường/Xã trống, không chọn được | Bấm Cập nhật database ở khối Công cụ, hoặc đổi Hình thức tải địa chỉ sang cách khác. |
| Muốn 2 cấp mà form vẫn hỏi Quận/Huyện | Đang dùng bộ dữ liệu mặc định 3 cấp. Chọn "Mới nhất" rồi bấm Cập nhật database. |
| Chọn đủ Tỉnh/Quận mà phí GHN chưa hiện (3 cấp) | Đang bật Có hàng nặng? nên khách phải chọn thêm Phường/Xã. Nếu đã chọn đủ mà vẫn chỉ thấy "Phí vận chuyển sẽ báo sau." thì xem Giải đáp thắc mắc. |
| Ô Tỉnh/Phường là ô gõ chữ, không phải danh sách chọn | JavaScript của module không chạy — thường do plugin gộp/nén file JS. Tắt thử tính năng gộp JS. |
| Sửa ở đây mà trang thanh toán không đổi | Đang bị cache. Xoá cache rồi thử ở cửa sổ ẩn danh. |
Tiếp theo: tạo, huỷ và in vận đơn.