Thay chữ Sale bằng % giảm giá trong 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 đó. vậy chúng ta sẽ làm gì?

Thay chữ sale bằng phần trăm giảm giá trong woocommerce

Nếu các bạn chưa có filesale-flash.php trong theme thì các bạn làm như sau. Tạo file sale-flash.phptrong thư mục [your-theme]/woocommerce/loop/ với nội dung file sale-flash.php như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
/**
* Product loop sale flash
*
* This template can be overridden by copying it to yourtheme/woocommerce/loop/sale-flash.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @author WooThemes
* @package WooCommerce/Templates
* @version 1.6.4
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
global $post, $product;
if ( ! $product->is_in_stock() ) return;
$sale_price = get_post_meta( $product->get_id(), '_price', true);
$regular_price = get_post_meta( $product->get_id(), '_regular_price', true);
if (empty($regular_price)){
$available_variations = $product->get_available_variations();
$variation_id = $available_variations[0]['variation_id'];
$variation = new WC_Product_Variation( $variation_id );
$regular_price = $variation ->regular_price;
$sale_price = $variation ->sale_price;
}
$sale = ceil(( ($regular_price - $sale_price) / $regular_price ) * 100);
if ( !empty( $regular_price ) && !empty( $sale_price ) && $regular_price > $sale_price ) :
$R = floor((255*$sale)/100);
$G = floor((255*(100-$sale))/100);
$bg_style = 'background:none;background-color: rgb(' . $R . ',' . $G . ',0);';
echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale" style="'. $bg_style .'">-' . $sale . '%</span>', $post, $product );
endif;

Chúc các bạn thành công ^^

Down load file sale-flash.php

Tham khảo: //code.tutsplus.com/articles/customize-the-behavior-of-the-woocommerce-sale-flash–cms-22225

Bài viết mình lưu lại để dùng khi cần