Code hiển thị số lượt xem sản phẩm trong Flatsome
Bài viết này mình sẽ hướng dẫn bạn cách hiển thị số lượt xem sản phẩm trong Flatsome nhé.
Khách vào trang sản phẩm thấy dòng “1.234 lượt xem” sẽ tin sản phẩm có người quan tâm thật, nhất là với sản phẩm mới chưa có đánh giá nào. WooCommerce và Flatsome mặc định đều không đếm lượt xem sản phẩm, cũng không có chỗ nào để hiện con số này — muốn có thì bạn phải code thêm bằng PHP nhé.
Mục lục nội dung bài viếtHiện
Thêm code đếm và hiển thị lượt xem sản phẩm
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
// Dem va hien thi luot xem san pham - them vao functions.php cua child theme Flatsome
add_action( 'template_redirect', 'nn_dem_luot_xem_san_pham' );
function nn_dem_luot_xem_san_pham() {
if ( ! is_product() || is_admin() || current_user_can( 'manage_options' ) ) {
return;
}
$id = get_the_ID();
if ( ! $id ) {
return;
}
$luot_xem = (int) get_post_meta( $id, '_nn_luot_xem_san_pham', true );
update_post_meta( $id, '_nn_luot_xem_san_pham', $luot_xem + 1 );
}
add_action( 'woocommerce_single_product_summary', 'nn_hien_luot_xem_san_pham', 25 );
function nn_hien_luot_xem_san_pham() {
global $product;
if ( ! $product ) {
return;
}
$luot_xem = (int) get_post_meta( $product->get_id(), '_nn_luot_xem_san_pham', true );
echo '<p class="nn-luot-xem-san-pham">👁 ' . number_format_i18n( $luot_xem ) . ' lượt xem</p>';
}
Code trên gồm 2 phần. Phần đếm móc vào template_redirect, mỗi lần có người mở trang chi tiết sản phẩm thì tăng meta _nn_luot_xem_san_pham của sản phẩm đó lên 1, dùng get_post_meta và update_post_meta để lưu vào database. Lượt xem của quản trị viên không được tính nhờ kiểm tra current_user_can(‘manage_options’), để bạn tự mở xem thử không làm sai số liệu. Phần hiển thị móc vào woocommerce_single_product_summary ở vị trí 25, tức là ngay sau phần mô tả ngắn và trước nút Thêm vào giỏ, in ra dòng “👁 1.234 lượt xem” với số đã định dạng theo chuẩn Việt Nam nhờ number_format_i18n. Vì trang sản phẩm của Flatsome dựng trên các móc chuẩn của WooCommerce nên code này hiện đúng chỗ mà không cần sửa template của theme.
Kiểm tra lượt xem sản phẩm đã hiện chưa
Bạn lưu code rồi mở một trang sản phẩm ở ngoài trang thật, kéo xuống dưới phần mô tả ngắn sẽ thấy dòng lượt xem. Tải lại trang vài lần, con số tăng theo mỗi lần tải. Sản phẩm nào chưa có ai xem thì hiện 0 lượt xem, muốn ẩn số 0 này thì thêm điều kiện chỉ in khi $luot_xem > 0 trong hàm hiển thị.

Lưu ý khi dùng
Bài này đếm lượt xem của sản phẩm, khác với bài hiển thị thông tin bài đăng blog trong Flatsome của Ngọc dùng hàm getPostViews để đếm lượt xem bài viết. Lượt xem và số lượng đã bán là 2 con số khác nhau: lượt xem cho thấy sản phẩm được chú ý, còn số lượng đã bán thì xem bài code hiển thị số lượng đã bán trên trang sản phẩm trong Flatsome. Nếu shop bạn bật cache toàn trang thì số lượt xem sẽ tăng chậm hơn thực tế, vì trang đã lưu cache không chạy lại code đếm mỗi lần khách mở.
Kết luận
Vậy là chỉ với 1 đoạn code ngắn bạn đã hiển thị số lượt xem sản phẩm 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 hiển thị số lượng đã bán trên trang sản phẩm trong Flatsome và bài code thêm badge Hàng mới cho sản phẩm mới đăng trong Flatsome là thành bộ bằng chứng xã hội cho trang sản phẩm Flatsome.
Nếu cần mình kèm 1-1 về Flatsome thì cứ liên hệ mình nhé.
