Cách ẩn / hiện sản phẩm WooCommerce từ 1 quốc gia cụ thể
Trong bài viết trước tôi có giới thiệu về tính năng kiểm tra IP quốc gia với WC_Geolocation và có 1 số độc giả có nhắn tin hỏi cách để ẩn hoặc hiển thị sản phẩm cho người dùng từ một số quốc gia nên trong bài ngắn hôm nay là 1 cách ứng dụng code hôm trước và sử dụng filter hook
WooCommerce để ẩn hoặc hiện sản phẩm tuý ý.
Nhờ có filter hook woocommerce_product_is_visible
mà bạn có thể tạo ra một số sản phẩm phụ thuộc vào địa lý.
Ví dụ như sau: Ẩn các sản phẩm có ID là 1234 nếu khách đến từ Mỹ
add_filter( 'woocommerce_product_is_visible', 'vts_show_product_via_country', 25, 2 ); function vts_show_product_via_country( $visible, $product_id ){ $location = WC_Geolocation::geolocate_ip(); if ( 'US' === $location[ 'country' ] && 1234 === $product_id ) { $visible = false; } return $visible; }
Tất nhiên ở trên là 1 ví dụ cơ bản để bạn hiểu các sử dụng, còn không ai viết code cứng với ID sản phẩm như trên mà nó phải tuỳ vào điều kiện cụ thể để set cho phù hợp, bạn có thể kết hợp với ACF hoặc các yêu cầu để code cho phù hợp với ý của khách hàng yêu cầu.
Lưu ý ở trên bạn có thể lấy Country Codes ở link sau https://www.geonames.org/countries/
Hy vọng bài viết ngắn sẽ giúp ích cho nhiều người.