Thay chữ Sale thành % giảm giá trong woocommerce

Ngày đăng: 19 - 04 - 2021 Lượt xem: 3055 lượt

Thay Sale thành % giảm giá woocommerce?

Nhiều khi chúng ta không muốn hiển thị chữ SALE khi sản phẩm đó có chương trình giảm giá.

Mà thay vào đó sẽ hiển thị phần trăm (%) giảm giá của sản phẩm đó.

Bạn cũng có thể thay đổi hiển thị Sale Flash/Sale Badge cho các sản phẩm có giá sale price, với plugin WooCommerce Smart Sale Badge.

Plugin sẽ thêm giá tiết kiệm được khi mua sản phẩm tại cửa hàng và sửa thêm vào chuỗi mặc định “Sale!”  nhưng bài này mình sẽ giới thiệu về thêm vào code

sale trong woocommerce

Đây là đoạn code giúp bạn thực hiện việc này:


add_filter( 'woocommerce_sale_flash', 'add_percentage_to_sale_badge', 20, 3 );
function add_percentage_to_sale_badge( $html, $post, $product ) {
    if( $product->is_type('variable')){
        $percentages = array();

        // Get all variation prices
        $prices = $product->get_variation_prices();

        // Loop through variation prices
        foreach( $prices['price'] as $key => $price ){
            // Only on sale variations
            if( $prices['regular_price'][$key] !== $price ){
                // Calculate and set in the array the percentage for each variation on sale
                $percentages[] = round(100 - ($prices['sale_price'][$key] / $prices['regular_price'][$key] * 100));
            }
        }
        // We keep the highest value
        $percentage = max($percentages) . '%';
    } else {
        $regular_price = (float) $product->get_regular_price();
        $sale_price    = (float) $product->get_sale_price();

        $percentage    = round(100 - ($sale_price / $regular_price * 100)) . '%';
    }
    return '' . esc_html__( '', 'woocommerce' ) . ' ' . "-". $percentage . '';
}

Giải thích:

Hàm add_filter: hook  hàm add_percentage_to_sale_badge vào hàm có sẵn trong woocommerce là

woocommerce_sale_flash

Đoạn code trong add_percentage_to_sale_badge  là cài đặt khi mà sản phẩm có sự chênh lệch giữa giá thật (

regular_price) và giá giảm giá (sale_price) rồi tính công thức theo phần trăm

Lời kết

Như vậy mình đã chia sẻ  cách thay Sale thành % giảm giá woocommerce.

Nếu các bạn thấy hay có thể theo dõi chuyên mục thủ thuật wordpress để biết thêm nhiều kiến thức mới nha.

Hãy follow fanpage để nhận được những bài viết mới nhất nhé : Hocwordpress Group

Chúc bạn có những kiến thức về  wordpress thú vị và hay ho !

5 1 vote
Đánh giá bài viết

Nhận thông báo
Nhận thông báo cho
guest

0 Góp ý
Inline Feedbacks
View all comments
Vitamin S

Chào bác. Mình đã làm theo hướng dẫn và thành công, nhưng mình muốn nó hiển thị cả khi xem chi tiết sản phẩm thì làm thế nào bác?

Bài viết liên quan

Tạo tab mới trong trang sản phẩm WooCommerce

Tạo tab mới trong trang sản phẩm WooCommerce

24 - 04 - 2022

Theo mặc định, WooCommerce chỉ hỗ trợ những tab cơ bản như mô tả, thông tin thêm, đánh giá. Vậy...

Làm thế nào để giỏ hàng tự động cập nhật khi thay đổi số lượng sản phẩm

Làm thế nào để giỏ hàng tự động cập nhật khi thay đổi số lượng sản phẩm

22 - 04 - 2022

Bạn có từng nghĩ rằng, sẽ tốt hơn nếu giỏ hàng tự động cập nhật khi thay đổi số...

Tạo nhãn mới và nổi bật cho sản phẩm WooCommerce

Tạo nhãn mới và nổi bật cho sản phẩm WooCommerce

18 - 04 - 2022

Theo mặc định, WooCommerce chỉ hiện nhãn cho sản phẩm hết hàng và đang được giảm giá. Nhưng nếu...

Xoá, đổi tên, thay đổi vị trí tính năng sắp xếp sản phẩm trong WooCommerce

Xoá, đổi tên, thay đổi vị trí tính năng sắp xếp sản phẩm trong WooCommerce

07 - 04 - 2022

Bạn có nhu cầu muốn xoá, đổi tên, thay đổi vị trí của tính năng sắp xếp trong WooCommerce....

Cách xoá dữ liệu WooCommerce sau khi gỡ cài đặt

Cách xoá dữ liệu WooCommerce sau khi gỡ cài đặt

02 - 03 - 2022

Bạn muốn loại bỏ dữ liệu WooCommerce ra khỏi trang web? Nếu bạn chỉ gỡ cài đặt plugin và...

Cách ẩn phạm vi giá cho các sản phẩm biến thể trong WooCommerce

Cách ẩn phạm vi giá cho các sản phẩm biến thể trong WooCommerce

12 - 12 - 2021

Bạn đang tìm cách ẩn phạm vi giá cho các sản phẩm biến thể trong WooCommerce? Theo mặc định, giá...

0
Would love your thoughts, please comment.x