wc_price

// Thay đổi vị trí giá mặt định WC, chỉ áp dụng cho sp biến thể
add_filter('woocommerce_get_price_html', 'custom_reverse_price_html_for_variations', 100, 2);
function custom_reverse_price_html_for_variations($price, $product) {
    if ($product->is_type('variable')) {
        // Lấy tất cả các biến thể của sản phẩm
        $variations = $product->get_available_variations();

        foreach ($variations as $variation) {
            $variation_id = $variation['variation_id'];
            $variation_product = wc_get_product($variation_id);

            // Kiểm tra nếu biến thể có giá sale
            if ($variation_product->is_on_sale()) {
                $regular_price = wc_price($variation_product->get_regular_price());
                $sale_price = wc_price($variation_product->get_sale_price());
                return sprintf('<ins>%s</ins> <del>%s</del>', $sale_price, $regular_price);
            }
        }
    }

    // Trả về giá gốc nếu không có biến thể nào có giá sale
    return $price;
}
// Mã này bao gồm single product
add_filter('woocommerce_get_price_html', 'custom_reverse_price_html', 100, 2);
function custom_reverse_price_html($price, $product) {
    if ($product->is_type('variable')) {
        // Nếu sản phẩm là biến thể, lấy giá từ các biến thể
        $variations = $product->get_available_variations();
        foreach ($variations as $variation) {
            $variation_id = $variation['variation_id'];
            $variation_product = wc_get_product($variation_id);

            if ($variation_product->is_on_sale()) {
                $regular_price = wc_price($variation_product->get_regular_price());
                $sale_price = wc_price($variation_product->get_sale_price());
                return sprintf('<ins>%s</ins> <del>%s</del>', $sale_price, $regular_price);
            }
        }
    } elseif ($product->is_on_sale() && $product->get_regular_price() && $product->get_sale_price()) {
        // Single product
        $regular_price = wc_price($product->get_regular_price());
        $sale_price = wc_price($product->get_sale_price());
        $price = sprintf('<ins>%s</ins> <del>%s</del>', $sale_price, $regular_price);
    } else {
        // Log nếu sản phẩm không có giá sale
        error_log('Product not on sale: ' . $product->get_name());
    }
    return $price;
}