Active License Elementor Pro chỉ với 300k/năm/domain Shop Now
Mới Dịch vụ thiết kế website, xử lý mã độc & tối ưu tốc độ chuyên sâu

Code thêm badge Hàng mới cho sản phẩm mới đăng trong Flatsome

Trang cửa hàng Flatsome với lưới 8 sản phẩm giày và túi, mỗi ảnh sản phẩm có badge xanh lá HÀNG MỚI ở góc phải trên

Bài viết này mình sẽ hướng dẫn bạn cách thêm badge Hàng mới cho sản phẩm mới đăng trong Flatsome nhé.

Shop nhập hàng mới liên tục mà khách vào trang cửa hàng thì không phân biệt được đâu là hàng mới về, đâu là hàng đã bán cả năm nay, món mới cứ chìm giữa cả trăm sản phẩm cũ. Một badge nhỏ màu xanh lá “HÀNG MỚI” dán góc ảnh sản phẩm là đủ để mắt khách dừng lại ngay ở món mới. Flatsome mặc định chỉ có badge Giảm giá, không có badge Hàng mới, nên muốn có thì bạn phải code thêm bằng PHP nhé.

Thêm code badge Hàng mới

Bạn chỉ cần thêm code dưới vào cuối file functions.php của child theme Flatsome nhé. Nhớ sao lưu file trước khi sửa, và đừng chèn vào theme cha vì khi theme cập nhật sẽ mất code.

<?php
// Badge "Hàng mới" cho sản phẩm mới đăng trong Flatsome
// Cách dùng: dán code này vào cuối file functions.php của child theme Flatsome.
// Badge tự hiện trên ảnh sản phẩm ở trang cửa hàng và trang danh mục,
// rồi tự mất khi sản phẩm đăng quá 14 ngày. Đổi số 14 trong code nếu bạn
// muốn giữ badge lâu hơn hoặc ngắn hơn.
add_action( 'woocommerce_before_shop_loop_item_title', 'nn_badge_hang_moi_flatsome', 15 );
function nn_badge_hang_moi_flatsome() {
    global $product;
    if ( ! $product ) {
        return;
    }
    $ngay_tao = $product->get_date_created();
    if ( ! $ngay_tao ) {
        return;
    }
    $so_ngay = 14;
    if ( time() - $ngay_tao->getTimestamp() > $so_ngay * DAY_IN_SECONDS ) {
        return;
    }
    echo '<span class="nn-badge-hang-moi">Hàng mới</span>';
}

add_action( 'wp_head', 'nn_badge_hang_moi_css' );
function nn_badge_hang_moi_css() {
    if ( ! function_exists( 'is_shop' ) ) {
        return;
    }
    if ( ! is_shop() && ! is_product_category() && ! is_product_tag() && ! is_search() ) {
        return;
    }
    echo '<style>.product-small .box-image { position: relative; } .nn-badge-hang-moi { position: absolute; top: 12px; right: 12px; z-index: 2; background: #16a34a; color: #fff; font-size: 12px; font-weight: 700; line-height: 1; letter-spacing: .5px; text-transform: uppercase; padding: 7px 11px; border-radius: 999px; }</style>';
}

Code trên móc vào hook woocommerce_before_shop_loop_item_title với độ ưu tiên 15, tức chạy ngay sau ảnh sản phẩm và badge Giảm giá mặc định của WooCommerce (độ ưu tiên 10), nên badge mới không đè lên badge cũ. Hàm lấy ngày đăng sản phẩm qua $product->get_date_created()->getTimestamp() rồi so với thời điểm hiện tại, sản phẩm nào đăng trong vòng 14 ngày thì in ra thẻ span “Hàng mới”, quá 14 ngày thì thôi nên badge tự biến mất mà bạn không cần gỡ tay. Phần CSS đặt badge ở góc phải trên của ảnh sản phẩm, đối diện với badge Giảm giá ở góc trái, và chỉ nạp ở trang cửa hàng, trang danh mục, trang thẻ và trang tìm kiếm nhờ kiểm tra is_shop(), is_product_category(), is_product_tag() và is_search().

Kiểm tra badge Hàng mới

Bạn đăng thử một sản phẩm mới, hoặc sửa ngày đăng của một sản phẩm cũ về hôm nay, rồi mở trang cửa hàng hoặc trang danh mục chứa sản phẩm đó, ảnh sản phẩm sẽ có badge xanh lá “HÀNG MỚI” ở góc phải trên. Sản phẩm đăng đã quá 14 ngày thì không có badge. Nếu muốn giữ badge lâu hơn, ví dụ 30 ngày cho shop ít nhập hàng mới, bạn chỉ cần đổi số 14 trong code thành 30 là được.

Trang cửa hàng Flatsome với lưới 8 sản phẩm giày và túi, mỗi ảnh sản phẩm có badge xanh lá HÀNG MỚI ở góc phải trên
Kết quả: badge xanh lá HÀNG MỚI hiện ở góc phải trên ảnh sản phẩm mới đăng trong lưới cửa hàng Flatsome, sản phẩm đăng quá 14 ngày thì badge tự mất.

Lưu ý khi dùng

Badge chỉ hiện ở lưới sản phẩm ngoài trang cửa hàng và danh mục, chưa hiện trong trang chi tiết sản phẩm, vì hook dùng ở đây chỉ chạy ở vòng lặp sản phẩm. Con số 14 ngày tính theo ngày đăng sản phẩm chứ không phải ngày nhập kho, nên sản phẩm bạn đăng nháp từ lâu rồi mới bấm đăng thì badge tính từ lúc bấm đăng. Tính năng này đi chung với bài code tùy biến badge giảm giá hiển thị số tiền tiết kiệm trong Flatsome là thành bộ badge đầy đủ cho lưới sản phẩm Flatsome.

Kết luận

Vậy là chỉ với 1 đoạn code ngắn bạn đã thêm badge Hàng mới cho sản phẩm mới đăng trong Flatsome mà không cần cài thêm plugin rồi nhé. Tính năng này đi chung với bài code tùy biến badge giảm giá hiển thị số tiền tiết kiệm trong Flatsome và bài code hiển thị số lượng còn lại trong kho trong Flatsome là thành bộ thông tin sản phẩm rõ ràng hơn cho khách mua hàng.

Nếu cần mình kèm 1-1 về Flatsome thì cứ liên hệ mình nhé.

Nhân Viên

Nhân Viên

Web Developer & WordPress Expert

Ngọc Nguyễn - Chuyên gia thiết kế Website WordPress, tối ưu tốc độ 90+ và xử lý dứt điểm mã độc. Đam mê chia sẻ kiến thức hữu ích đến cộng đồng lập trình & webmaster.

Để lại bình luận hoặc thắc mắc

Email của bạn sẽ không được hiển thị công khai.

Ngọc Nguyễn
Ngọc Nguyễn
| Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ | Thiết kế Website | Hosting tốc độ cao | Giải pháp hạ tầng | Fix lỗi WordPress, mã độc | Tối ưu tốc độ
Tư vấn miễn phí