Trang chủ WordpressWordpress Plugin [Woocommerce] Thêm tỉnh thành Việt Nam và tối ưu lại thông tin khách hàng

[Woocommerce] Thêm tỉnh thành Việt Nam và tối ưu lại thông tin khách hàng

bởi Thạch Phạm
20 bình luận 6115 views

Như qua các bài hướng dẫn trước bạn đã có nhiều dịp đi tới trang thanh toán của Woocommerce thì sẽ thấy phần nhập thông tin thanh toán có phần không phù hợp với Việt Nam. Cụ thể là ở Việt Nam không cần địa chỉ dòng 2, không cần mã bưu chính và phải có tỉnh thành của Việt Nam thay vì chọn tiểu bang.

Trong bài này mình sẽ hướng dẫn cách thêm danh sách tỉnh thành của Việt Nam thay vào phần tiểu bang khi chọn quốc gia là Việt Nam, cách dịch chữ Tiểu bang thành Tỉnh thành, dịch chữ Tỉnh thành/thành phố thành quận huyện và ẩn mã bưu chính đi cho phù hợp.

Cài plugin Vietnam Woocommercy Currency

Tải plugin

Đây là plugin do mình làm cách đây cũng 2 năm rồi kể từ khi viết bài này, nó sẽ có các chức năng là:

  • Thêm danh sách các tỉnh thành của Việt Nam vào phần Bang/Hạt (States)
  • Có thể sử dụng phương thức thanh toán qua PayPal với tiền tệ Việt Nam vì nó sẽ tự chuyển qua USD với tỉ giá quy đổi theo ý muốn khi thanh toán qua PayPal.
  • Thêm tiền tệ VNĐ cho Woocommerce. Cái này không cần nữa vì mặc định bây giờ Woocommerce đã có rồi.

Chỉ vậy thôi. Tương lai rảnh mình sẽ bổ sung thêm tính năng.

Sau khi cài đặt, bạn sẽ cần thiết lập lại địa chỉ ở Woocommerce -> Cài đặt.

woocommerce-vietnam-01

Và nếu bạn cần thiết lập lại tỷ giá USD để nó tự chuyển từ đồng Việt Nam sang USD khi thanh toán PayPal thì thiết lập ở menu Woocommerce VNĐ.

Sửa tên các trường địa chỉ và xóa mã bưu chính

Dưới đây là đoạn code ngắn đổi tên lại phần Bang / HạtThành phố trong Woocommerce cho phù hợp với Việt Nam. Mặc dù các bạn có thể đổi trong bảng dịch qua plugin Loco Translate nhưng mình không khuyến khích vì như thế sẽ bị mất khi bạn cập nhật bản dịch mới, thành ra cách tốt nhất là sử dụng filter hook để đặt lại tên mà thôi.

Bạn hãy vào Giao diện -> Sửa và tìm tập tin functions.php rồi thêm đoạn này vào cuối tập tin (thêm trước ?> nếu có nó ở cuối tập tin).

/**
 * Ẩn mã bưu chính
 * Ẩn địa chỉ thứ hai
 * Đổi tên Bang / Hạt thành Tỉnh / Thành
 * Đổi tên Tỉnh / Thành phố thành Quận / Huyện
 * 
 * 
 * @hook woocommerce_checkout_fields
 * @param $fields
 * @return mixed
 */
function tp_custom_checkout_fields( $fields ) {
 // Ẩn mã bưu chính
 unset( $fields['postcode'] );

 // Ẩn địa chỉ thứ hai
 unset( $fields['address_2'] );

 // Đổi tên Bang / Hạt thành Tỉnh / Thành
 $fields['state']['label'] = 'Tỉnh / Thành';

 // Đổi tên Tỉnh / Thành phố thành Quận / Huyện
 $fields['city']['label'] = 'Quận / Huyện';

 return $fields;
}
add_filter( 'woocommerce_default_address_fields', 'tp_custom_checkout_fields' );

Sau đó vào Giao diện -> Sửa và tìm tập tin style.css rồi thêm đoạn này vào cuối:

#billing_city_field,#shipping_city_field {
 float: none;
 width: 100%;
}

Ở đây nếu bạn nào biết qua code thì nên xem qua bài hướng dẫn tùy biến checkout fields của WooThemes để hiểu thêm về cách sử dụng nó, rất dễ.

Sau khi thêm xong, hãy lưu lại và ra lại trang đặt hàng sẽ có kết quả như sau:

wc26-them-tinh-thanh-01

Nếu bạn nào có hỏi là có thể làm cái mục chọn Quận/Huyện như Tỉnh/Thành mà không cần nhập thủ công hay không, thì mình xin trả lời là có nhưng mình chưa có giải pháp nào tối ưu để làm phần đó có thể tương thích với các plugin khác có tính năng liên quan đến việc sử dụng Quận / Huyện nên bây giờ bạn tạm dùng thủ công đi nhé.

Nếu bạn cần plugin hỗ trợ quản lý và tùy biến lại các trường checkout này thì có thể sử dụng Woocommerce Checkout Manager, nó sẽ giúp bạn ẩn hoặc thêm các trường tùy thích. Bản pro nó có thể giúp bạn thêm cái quận huyện dễ dàng.

Lời kết

Sau bước này rồi thì mình nghĩ bạn cũng đã tùy chỉnh được kha khá trong Woocommerce rồi đó, và chắc chắn những thiết lập trong Woocommerce bạn cũng đã nắm qua. Nếu trong bài bạn nào không rành code mà bị lỗi khi làm theo thì hãy gửi hỗ trợ lên diễn đàn hoidap.thachpham.com để được trợ giúp nhanh nhất nhé.

20 bình luận

Có thể bạn quan tâm

0 0 vote
Article Rating
guest
20 Comments
mới nhất
cũ nhất đánh giá nhiều
Inline Feedbacks
View all comments
Bình

Chào bạn
cho mình hỏi làm sao để xóa mục này trong trang đặt hàng
Giao hàng tới địa chỉ khác?

Liêm KaKa

Mình thêm tỉnh/thành vào thành công rồi, nhưng khi checkout thì giá trị của field này không được in ra ở phần review order, và trong quản trị đơn hàng cũng không được lưu nhỉ ?

harry

a xem hộ e vs, sai dòng 67 ạ. Đổi tên Tỉnh / Thành phố thành Quận / Huyện  *  *  * @hook woocommerce_checkout_fields  * @param $fields  * @return mixed  */ function tp_custom_checkout_fields( $fields ) {  // Ẩn mã bưu chính unset( $fields[‘postcode’] );    // Ẩn địa chỉ thứ hai  unset( $fields[‘address_2’] );    // Đổi tên Bang / Hạt thành Tỉnh / Thành  $fields[‘state’][‘label’] = ‘Tỉnh / Thành’;    // Đổi tên Tỉnh / Thành phố thành Quận / Huyện  $fields[‘city’][‘label’] = ‘Quận / Huyện’;    return $fields; } add_filter( ‘woocommerce_default_address_fields’, ‘tp_custom_checkout_fields’ );

nguyên

Dropdown tỉnh thành mình không sài được trên mobile (ios) . bấm vào nó ko ra chọn tỉnh !

Tri

Dear Thạch,

Nếu mình muốn chia cụ thể hơn theo quận, huyện tại TpHCM thì có plugin nào hỗ trợ không? Nhu cầu của mình muốn phân tách ra theo kiểu tính phí ship nội thành, còn các quận ngoại thành sẽ có giá khác.

Mong bạn giúp đỡ.

Nam

Mình bị lỗi dòng quận/huyện ở trên dòng tỉnh/thành. Nhờ bạn chỉnh dùm cách sửa.
Cảm ơn!

Lương

Hi Thạch. Mình dùng cái này nhưng nó không ẩn được postcode và address_2, tại sao vậy nhỉ

giaybinhha

Anh ơi, mình đã làm theo hướng dẫn rồi mà sau nó thiếu mục Tỉnh thành khi chọn QG Việt nam, còn các QG khác thì có vậy?

Duy

bác Thach Pham ơi, bác có thể cập nhật plugin Vietnam Woocommercy Currency không ạ? vì trong đó thiếu 2 tỉnh là Đồng Tháp và Cao Bằng. Cảm ơn bác

Thinh

Trong khi đợi tác giả update, trên màn hình quản lý plugin, bạn nhấp chuột vào chỉnh sửa và thủ công thêm tỉnh thành còn thiếu.

Duy

bác Thach Pham ơi, bác có thể cập nhật plugin Vietnam Woocommercy Currency không ạ? vì trong đó thiếu 2 thình là Đồng Tháp và Cao Bằng. Cảm ơn bác

Thuận

Thạch cho mình hỏi, mình đang làm theo Series Học Woocommerce, có cách nào bỏ đi phần nhập “Mã Ưu Đãi” và thanh toán bằng Paypal trong trang check-out không? Website mình làm chưa cần những chức năng như thế.
Xin cảm ơn bạn trước

Thái

Chào anh!
Mình thêm code vào file function.php thì hiện giờ không vào web cũng như đăng nhập wordpress được. Báo lỗi “Trang web hiện không hoạt động

… hiện không thể xử lý yêu cầu này.
HTTP ERROR 500”
GIờ làm sao để mình sửa được lỗi này.
Cám ơn anh nhiều.

bahanh

<?php
// Add custom Theme Functions here

function tp_custom_checkout_fields ($fields) {
unset ( $fields['postcode'] );
$fields['state']['label'] = 'Tỉnh / Thành phố';
$fields['city']['label'] = 'Quận / Huyện';
$fields['city']['placeholder'] = 'Ví dụ: Quận 1';
return $fields;
}

add_filter ( 'woocommerce_default_address_fields','tp_custom_checkout_fields' );

Đoạn mã code của mình như thế này. Thì thêm vào chỗ nào vậy bác thach pham

Quân

Chào bạn!
Sao mình chỉnh lại file function.php xóa mã bưu điện giống bài trên thì báo lỗi này:
Parse error: syntax error, unexpected ‘tp_custom_checkout_fields’ (T_STRING) in /home/u329249613/public_html/wp-content/themes/storefront/functions.php on line 47
Hiện tại không vào được trang admin của wordpress luôn. Mong bạn giải đáp, xin cảm ơn.

Trần Thái Bằng

Chào anh thạch!

Cho em hỏi là sao trong phần wordpress của em lại ko có tập tin function.php ạ? làm cách nào để mình có thể thêm code vào trong trường hợp mình ko có file function.php
em xin cám ơn

20
0
Would love your thoughts, please comment.x
()
x