2 cách ẩn phương thức vận chuyển WooCommerce

Giới Thiệu Chung Về Vận Chuyển Trong WooCommerce
WooCommerce cung cấp nhiều tùy chọn vận chuyển linh hoạt để đáp ứng nhu cầu đa dạng của các doanh nghiệp trực tuyến. Từ vận chuyển cố định, vận chuyển miễn phí đến các phương thức tính toán phức tạp dựa trên trọng lượng, kích thước và địa điểm, WooCommerce cho phép bạn cấu hình vận chuyển theo cách phù hợp nhất với sản phẩm và đối tượng khách hàng của bạn.
Tuy nhiên, trong một số trường hợp, bạn có thể muốn ẩn một hoặc nhiều phương thức vận chuyển nhất định. Ví dụ:
- Bạn chỉ muốn cung cấp một phương thức vận chuyển duy nhất cho một số sản phẩm cụ thể.
- Bạn muốn ẩn các phương thức vận chuyển không khả dụng dựa trên địa điểm của khách hàng.
- Bạn muốn tạm thời vô hiệu hóa một phương thức vận chuyển do vấn đề kỹ thuật hoặc sự cố logistics.
Bài viết này sẽ hướng dẫn bạn hai cách để ẩn phương thức vận chuyển WooCommerce một cách hiệu quả.
Cách 1: Sử Dụng Code (Tùy Chỉnh Chức Năng)
Cách này đòi hỏi bạn phải chỉnh sửa code của theme hoặc sử dụng plugin code snippets. Đây là phương pháp linh hoạt nhất, cho phép bạn kiểm soát chi tiết các điều kiện ẩn phương thức vận chuyển.
Bước 1: Xác Định Phương Thức Vận Chuyển Cần Ẩn
Trước khi bắt đầu viết code, bạn cần xác định ID của phương thức vận chuyển mà bạn muốn ẩn. Để làm điều này:
- Truy cập trang quản trị WooCommerce.
- Chọn “WooCommerce” > “Cài đặt”.
- Chọn tab “Vận chuyển”.
- Nhấp vào tên khu vực vận chuyển mà phương thức bạn muốn ẩn thuộc về.
- Trong danh sách các phương thức vận chuyển, di chuột qua phương thức bạn muốn ẩn. Bạn sẽ thấy ID của phương thức này trong URL hoặc khi bạn nhấp vào “Chỉnh sửa”. ID thường có dạng “flat_rate:1” hoặc “free_shipping:2”.
Bước 2: Thêm Code Vào File functions.php Hoặc Sử Dụng Plugin Code Snippets
Bạn có thể thêm code trực tiếp vào file functions.php
của theme con (child theme) hoặc sử dụng một plugin code snippets như “Code Snippets”. Sử dụng child theme là cách tốt nhất để tránh mất các tùy chỉnh khi theme chính được cập nhật.
Dưới đây là một ví dụ về code để ẩn một phương thức vận chuyển cụ thể (ví dụ, “flat_rate:1”) dựa trên một điều kiện:
“`php
function hide_shipping_method_based_on_condition( $rates, $package ) {
$shipping_method_id_to_hide = ‘flat_rate:1’;
// Điều kiện: Ví dụ, ẩn nếu tổng giá trị giỏ hàng nhỏ hơn 500.000 VNĐ
if ( WC()->cart->subtotal < 500000 ) {
unset( $rates[ $shipping_method_id_to_hide ] );
}
return $rates;
}
add_filter( 'woocommerce_package_rates', 'hide_shipping_method_based_on_condition', 10, 2 );
“`
Giải thích code:
- `hide_shipping_method_based_on_condition`: Tên của hàm. Bạn có thể thay đổi tên này.
- `$rates`: Mảng chứa tất cả các phương thức vận chuyển khả dụng.
- `$package`: Mảng chứa thông tin về gói hàng vận chuyển.
- `$shipping_method_id_to_hide`: Biến lưu ID của phương thức vận chuyển cần ẩn. Thay ‘flat_rate:1’ bằng ID thực tế của bạn.
- `WC()->cart->subtotal`: Lấy tổng giá trị giỏ hàng.
- `unset( $rates[ $shipping_method_id_to_hide ] )`: Loại bỏ phương thức vận chuyển khỏi mảng `$rates`, do đó ẩn nó khỏi người dùng.
- `add_filter( ‘woocommerce_package_rates’, ‘hide_shipping_method_based_on_condition’, 10, 2 )`: Hook này được sử dụng để lọc các phương thức vận chuyển trước khi chúng được hiển thị cho người dùng.
Bước 3: Tùy Chỉnh Điều Kiện Ẩn Phương Thức Vận Chuyển
Phần quan trọng nhất của code là điều kiện ẩn phương thức vận chuyển. Bạn có thể thay đổi điều kiện này dựa trên nhu cầu của mình. Dưới đây là một vài ví dụ:
- Ẩn dựa trên danh mục sản phẩm:
“`php
function hide_shipping_method_based_on_category( $rates, $package ) {
$shipping_method_id_to_hide = ‘flat_rate:1’;
$product_category_slug = ‘ao-thun’; // Slug của danh mục sản phẩm
$hide_shipping = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
$product_id = $cart_item[‘product_id’];
if ( has_term( $product_category_slug, ‘product_cat’, $product_id ) ) {
$hide_shipping = true;
break; // Chỉ cần một sản phẩm thuộc danh mục này để ẩn
}
}
if ( $hide_shipping ) {
unset( $rates[ $shipping_method_id_to_hide ] );
}
return $rates;
}
add_filter( ‘woocommerce_package_rates’, ‘hide_shipping_method_based_on_category’, 10, 2 );
“`
- Ẩn dựa trên quốc gia vận chuyển:
“`php
function hide_shipping_method_based_on_country( $rates, $package ) {
$shipping_method_id_to_hide = ‘flat_rate:1’;
$allowed_countries = array( ‘VN’, ‘US’ ); // Mã quốc gia cho Việt Nam và Hoa Kỳ
if ( ! in_array( $package[‘destination’][‘country’], $allowed_countries ) ) {
unset( $rates[ $shipping_method_id_to_hide ] );
}
return $rates;
}
add_filter( ‘woocommerce_package_rates’, ‘hide_shipping_method_based_on_country’, 10, 2 );
“`
Hãy nhớ thay đổi `$shipping_method_id_to_hide` và các biến khác cho phù hợp với cài đặt của bạn.
Cách 2: Sử Dụng Plugin (Dễ Sử Dụng Hơn)
Nếu bạn không quen thuộc với việc chỉnh sửa code, bạn có thể sử dụng một plugin WooCommerce để ẩn phương thức vận chuyển. Có rất nhiều plugin miễn phí và trả phí có thể giúp bạn thực hiện việc này một cách dễ dàng.
Một Số Plugin Phổ Biến
- Conditional Shipping and Payments: Plugin này cho phép bạn kiểm soát hoàn toàn các phương thức vận chuyển và thanh toán dựa trên nhiều điều kiện khác nhau, bao gồm quốc gia, sản phẩm, danh mục, tổng giá trị giỏ hàng, và hơn thế nữa.
- Hide Shipping Methods for WooCommerce: Plugin đơn giản này cho phép bạn ẩn các phương thức vận chuyển cụ thể dựa trên một số điều kiện cơ bản.
- Advanced Shipping Packages for WooCommerce: Plugin này cung cấp các tính năng nâng cao cho việc quản lý vận chuyển, bao gồm cả khả năng ẩn phương thức vận chuyển dựa trên các quy tắc phức tạp.
Ví Dụ: Sử Dụng Plugin “Conditional Shipping and Payments”
Plugin “Conditional Shipping and Payments” là một lựa chọn mạnh mẽ và linh hoạt. Dưới đây là cách sử dụng nó để ẩn một phương thức vận chuyển:
- Cài đặt và kích hoạt plugin: Tìm kiếm “Conditional Shipping and Payments” trong trang “Plugins” > “Thêm mới” của WordPress, cài đặt và kích hoạt plugin.
- Truy cập cài đặt plugin: Sau khi kích hoạt, bạn sẽ thấy một mục mới trong WooCommerce hoặc một mục riêng biệt trong menu WordPress (tùy thuộc vào phiên bản plugin).
- Tạo quy tắc mới: Trong cài đặt plugin, tìm tùy chọn để tạo quy tắc mới.
- Chọn loại quy tắc: Chọn loại quy tắc là “Shipping methods”.
- Chọn phương thức vận chuyển cần ẩn: Chọn phương thức vận chuyển bạn muốn ẩn từ danh sách.
- Thiết lập điều kiện: Thiết lập điều kiện để ẩn phương thức vận chuyển. Ví dụ, bạn có thể chọn ẩn phương thức vận chuyển nếu tổng giá trị giỏ hàng nhỏ hơn 500.000 VNĐ hoặc nếu sản phẩm thuộc một danh mục cụ thể.
- Lưu quy tắc: Lưu quy tắc của bạn.
Plugin sẽ tự động ẩn phương thức vận chuyển dựa trên các điều kiện bạn đã thiết lập.
Kết Luận
Ẩn phương thức vận chuyển WooCommerce có thể là một cách hiệu quả để tối ưu hóa trải nghiệm mua sắm của khách hàng và điều chỉnh các tùy chọn vận chuyển phù hợp với nhu cầu kinh doanh của bạn. Cho dù bạn chọn sử dụng code tùy chỉnh hay một plugin chuyên dụng, hãy đảm bảo bạn hiểu rõ các điều kiện và quy tắc bạn đang thiết lập để tránh gây ra bất kỳ sự nhầm lẫn hoặc khó chịu nào cho khách hàng của bạn.
Việc lựa chọn giữa sử dụng code và plugin phụ thuộc vào kỹ năng kỹ thuật của bạn và mức độ tùy chỉnh bạn cần. Nếu bạn thoải mái với việc chỉnh sửa code và cần kiểm soát chi tiết, sử dụng code là lựa chọn tốt nhất. Nếu bạn muốn một giải pháp đơn giản và dễ sử dụng, hãy sử dụng một plugin.
Chúc bạn thành công!