Chỉ hiển thị giao hàng miễn phí trong WooCommerce khi đủ điều kiện

Làm thế nào để thiết lập mức giá và hình thức giao hàng trong từng vùng miền? Làm thế nào để thiết lập miễn phí giao hàng trong WooCommerce khi đơn hàng đủ điều kiện? Trong bài viết này mình sẽ hướng dẫn các bạn các cấu hình tính phí giao hàng trong WooCommerce theo điều kiện.

Thiết lập hình thức giao hàng cho khu vực

Tạo khu vực giao hàng mới trong WooCommerce.

Để thiết lập hình thức giao hàng theo khu vực thì việc đầu tiên là bạn nên tiến hành tạo khu vực bạn muốn thiết lập giao hàng bằng đường dẫn sau: WooCommerce → Thiết lập → Giao hàng → Khu vực giao hàng.

Tùy Từng ngôn ngữ các nhau thì tên các điểm trên đường dẫn có thể khác nhau. Ví dụ với phiên bản WooCommerce tiếng anh: WooCommerce → Settings → Shipping → shipping zone. Tuy nhiên cấu trúc của đường dẫn vẫn sẽ là không đổi.

Bạn nhất nút thêm “Thêm khu vực giao hàng” để tiến hành tạo khu vực giao hàng mới.

Tạo khu vực giao hàng mới trong WooCommerce .

Tạo khu vực giao hàng mới trong WooCommerce .

Thiết lập vùng miền cho khu vực giao hàng

  • Tên vùng: Bạn tự chọn 1 tên để đặt cho khu vực đó miễn sao là bạn dễ nhớ và quản lý ví dụ: Nội thành, Ngoại thành, Miền Bắc, Miền Trung, Miền Nam,…
  • Khu vực:
      • Sau khi nhất vào ô sẽ hiện ra một danh sách các vùng miền để bạn lựa chọn.
      • Bạn có thể lựa chọn một hoặc nhiều vùng miền mà bạn muốn áp dụng.
      • Nếu bạn không lựa chọn gì thì sẽ áp dụng mặc định là cho mọi nơi.
      • Tuy nhiên: WooCommerce các vùng miền kiểu như quốc gia và các thành phố lớn chứ không hỗ trợ bạn cấu hình sâu hơn. Ví dụ như Hà Nội, Hồ Chí Minh, Kiên Giang, Đồng Tháp, Điện Biên,… Thì bạn nên sử dụng plugin của bên thứ 3 để hỗ trợ vấn đề này. như ví dụ hình ảnh bên dưới là mình hiện dùng plugin Woo Viet – WooCommerce for Vietnam để hỗ trợ phần hiển thị tỉnh thành này.
Cấu hình vùng miền giao hàng trong WooCommerce

Cấu hình vùng miền giao hàng trong WooCommerce

Thiết lập phương thức giao hàng trong WooCommerce theo khu vực

Tạo phương thức giao hàng trong WooCommerce

Trong phần cấu hình vùng miền bạn đã tạo ở trên có mục “Các phương thức giao hàng” đây là phần để cấu hình những phương thức giao hàng áp dụng cho vùng miền hiện tại mà bạn đang chỉnh sửa.

Tại đây bạn nhấn nút “Thêm phương thức giao hàng mới” để tạo thêm 1 hình thức tính phí giao hàng mới cho bạn.

Tạo phương thức giao hàng mới trong WooCommerce

Tạo phương thức giao hàng mới trong WooCommerce

Các phương thức giao hàng trong WooCommerce

Trong WooCommerce có 3 phương thức giao hàng phổ biến nhất đó là:

  • Đồng giá: Thanh toán giá cố định cho phí giao hàng (Tức là mọi sản phẩm đều áp dụng mức giá mà không cần điều kiện nào cả).
  • Giao hàng tại của hàng: Cho phép khách hàng tự đến lấy hàng của họ. Mặc định khi mua tận nơi, thuế cơ sở của cửa hàng sẽ được áp dụng bất kể địa chỉ của khách hàng.
  • Giao hàng miễn phí: là hình thức có thể được kích hoạt với mã ưu đãi và giá trị đơn hàng tối thiểu.

Nếu bạn đạt đủ cả điều kiện nào thì WooCommerce sẽ hiện đồng thời cả 3 hình thức trên để khách hàng tự lựa chọn

Thiết lập điều kiện cho phương thức Giao hàng miễn phí trong WooCommerce

Ngoài 2 thành phần Đồng giá và Giao hàng tại cửa hàng thì phần quan trọng nhất trong thiết lập giao hàng là điều kiện để miễn phí giao hàng.

Khi bạn chọn “Thêm phương thức giao hàng” như ở trên vào chọn vào mục miễn phí giao hàng thì WooCommerce  sẽ tạo ra cho bọn một mục mới và miễn phí giao hàng. Bạn kích vào mục đó sẽ hiển thị lên phần cấu hình cho mục này.

Tại đây có

  • Tiêu đề: Nơi bạn đặt tên cho mục cấu hình này
  • Điều kiện miễn phí giao hàng là nơi bạn chọn điều kiện bạn muốn thiết lập

Các kiểu điều kiện thiết lập miễn phí giao hàng

  • N/A: áp dụng miễn phí giao hàng cho toàn khu vực bạn đang cấu hình mà không cần điều kiện nào cả.
  • Một ưu đãi miễn phí giao nhận còn hiệu lực: áp dụng khi khách hàng dùng phiếu ưu đãi.
  • Số lượng đặt hàng tối thiểu: dựa trên số lượng hàng mà khách hàng đặt có thể  từ 3,5,7,10 trở lên tùy theo bạn cấu hình.
  • Giá trị đơn hàng tối thiểu hoặc một phiếu ưu đãi: Tổng giá trị đơn hàng của bạn phải từ bao nhiêu trở lên thì mới được miễn phí hoặc phải có phiếu ưu đãi.
  • Giá trị đơn hàng tối thiểu và một phiếu ưu đãi: áp dụng cho cả 2 trường hợp đồng thời là vừa đạt giá trị đơn hàng tối thiểu và vừa phải đó phiếu ưu đãi.
Thiết lập điều kiện giao hàng miễn phí trong WooCommerce

Thiết lập điều kiện giao hàng miễn phí trong WooCommerce

Nếu như bạn lựa chọn điều kiện theo dạng số lượng đặt hàng tối thiểu hoặc giá trị đơn hàng tối thiểu thì bên dưới mục đó sẽ hiển thị lên một ô để bạn tiến hành nhập giá trị số lượng hoặc số tiền

nhập điều kiện tối thiểu để miễn phí giao hàng

nhập điều kiện tối thiểu để miễn phí giao hàng

 

Ẩn các phương thức giao hàng khác khi đủ điều kiện miễn phí giao hàng

Trước khi làm điều này thì bạn cần xóa các cache của WooCommerce.

Để xóa cache của WooCommerce bạn vào theo đường dẫn:  WooCommerce > Tình trạng > Công cụ > WooCommerce transients > Xóa hết bộ nhớ đệm tạm thời.

Xóa hết bộ nhớ đệm tạm thời woocommerce

Xóa hết bộ nhớ đệm tạm thời woocommerce

Sau khi xóa xong cache bạn chèn đoạn mã sau vào trong file functions.php.

Mã áp dụng cho WooCommerce 3.x trở lên
/**
 * Ẩn phí vẫn chuyển khi đơn hàng đủ điều kiện miễn phí vận chuyển
 * Hỗ trợ cho phiên bản WooCommerce 2.6 Shipping Zones.
 *
 * @param array $rates Mảng tỷ lệ được tìm thấy cho gói.
 * @return array mảng chỉ chứa phương thức miễn phí vẫn chuyển
 */
function hide_shipping_when_free_is_available( $rates ) {
	$free = array();
	foreach ( $rates as $rate_id => $rate ) {
		if ( 'free_shipping' === $rate->method_id ) {
			$free[ $rate_id ] = $rate;
			break;
		}
	}
	return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100 );
Mã áp dụng cho WooCommerce 2.5 trở xuống
/**
 * woocommerce_package_rates is một hook có trong woocommerce 2.1 trơ lên
 */
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
 
/**
 * Ẩn phí vẫn chuyển khi đơn hàng đủ điều kiện miễn phí vận chuyển
 *
 * @param array $rates Mảng tỷ lệ được tìm thấy cho gói.
 * @param array $package array/object của gói được phần chuyển.
 * @return array mảng chỉ chứa phương thức miễn phí vẫn chuyển
 */
function hide_shipping_when_free_is_available( $rates, $package ) {
 	
 	// Only modify rates if free_shipping is present
  	if ( isset( $rates['free_shipping'] ) ) {
  	
  		// To unset a single rate/method, do the following. This example unsets flat_rate shipping
  		unset( $rates['flat_rate'] );
  		
  		// To unset all methods except for free_shipping, do the following
  		$free_shipping          = $rates['free_shipping'];
  		$rates                  = array();
  		$rates['free_shipping'] = $free_shipping;
	}
	
	return $rates;
}

Bạn có thể xem chi tiết hơn tại đây.

Leave a Reply