Hiển thị giá cao nhất trong sản phẩm của giá biến thể Woocommerce – với sản phẩm có nhiều giá lựa chọn, bắt buộc bạn phải liệt kê nhiều giá để khách hàng lựa chọn. Tuy nhiên, khi hiển thị bên ngoài trang sản phẩm sẽ làm cho khách hàng rối mắt và phân vân không biết chọn sản phẩm nào. Để hạn chế điều đó, bạn nên chỉ hiển thị một giá (thấp nhất hoặc cao nhất) trong trang sản phẩm.
Trong WooCommerce, khi sản phẩm có nhiều biến thể, hệ thống mặc định sẽ hiển thị khoảng giá từ thấp nhất đến cao nhất, ví dụ: 200.000đ – 500.000đ. Cách hiển thị này đôi khi gây nhầm lẫn, khiến khách hàng tưởng rằng tất cả các lựa chọn đều có giá thấp nhất. Để minh bạch thông tin và tăng tính chuyên nghiệp cho cửa hàng, bạn có thể tùy chỉnh để hiển thị giá cao nhất trong sản phẩm biến thể WooCommerce. Đây là một thủ thuật đơn giản nhưng hiệu quả, giúp cải thiện trải nghiệm mua sắm và tăng sự tin tưởng từ khách hàng.

Hãy copy đoạn mã dưới vào file function.php để thấy sự thay đổi.
/* Hiển thị giá cao nhất trong sản phẩm với nhiều giá biển thể */
add_filter('woocommerce_variable_price_html', 'thangoi_custom_price_high', 10, 2);
function thangoi_custom_price_high( $price, $product ) {
$default_attributes = $product->get_variation_default_attributes();
foreach($product->get_available_variations() as $variation) {
$is_default=true;
foreach($default_attributes as $attribute_key => $attribute_value) {
if($variation['attributes']['attribute_' . $attribute_key] != $attribute_value){
$is_default=false;
break;
}
}
if($is_default){
return $variation['price_html'];
}
}
}
Nếu bạn bị lỗi Hàm $product->get_variation_default_attributes() đã không còn được dùng từ WooCommerce 3.0. Thì bạn có thể sử dụng đoạn mã dưới đây:
add_filter('woocommerce_variable_price_html', 'thangoi_custom_price_high', 10, 2);
function thangoi_custom_price_high( $price, $product ) {
// Lấy các giá trị mặc định của biến thể
$default_attributes = $product->get_default_attributes();
// Duyệt các biến thể có sẵn
foreach($product->get_available_variations() as $variation) {
$is_default = true;
foreach($default_attributes as $attribute_key => $attribute_value) {
if($variation['attributes']['attribute_' . $attribute_key] != $attribute_value){
$is_default = false;
break;
}
}
if($is_default){
return $variation['price_html'];
}
}
return $price; // trả về giá mặc định nếu không có biến thể trùng
}
Hãy F5 và xem lại có báo lỗi không nhé

Việc hiển thị giá cao nhất trong biến thể sản phẩm WooCommerce không chỉ giúp cửa hàng minh bạch hơn trong việc niêm yết giá mà còn hạn chế hiểu lầm cho người mua. Với một vài tùy chỉnh nhỏ, bạn sẽ nâng cao tính chuyên nghiệp cho website, đồng thời cải thiện tỷ lệ chuyển đổi và trải nghiệm người dùng.
