Chào ACE nha! Hôm nay share code sản phẩm đã xem, với nhiều lựa chọn và phục vụ cho flatsome nói riêng, và tất cả theme wordpress nói chung. Chơi được tất.!
Vào thẳng vấn đề luôn, Theme Computer là Giao diện web đã áp dụng code trên mọi người có thể tham khảo trước!
Set Cookie khi user ghé thăm trang chi tiết sản phẩm
Chèn code bên dưới vào function.php của theme (ưu tiên child theme nếu có nhé).
function isures_set_user_visited_product_cookie()
{
if (!is_singular('product')) {
return;
}
global $post;
if (empty($_COOKIE['woocommerce_recently_viewed'])) {
$viewed_products = array();
} else {
$viewed_products = wp_parse_id_list((array) explode('|', wp_unslash($_COOKIE['woocommerce_recently_viewed'])));
}
$keys = array_flip($viewed_products);
if (isset($keys[$post->ID])) {
unset($viewed_products[$keys[$post->ID]]);
}
$viewed_products[] = $post->ID;
if (count($viewed_products) > 22) {
array_shift($viewed_products);
}
wc_setcookie('woocommerce_recently_viewed', implode('|', $viewed_products));
}
add_action('wp', 'isures_set_user_visited_product_cookie');
Với một ít code trên thì đã xử lý được phần cookie rồi. Tiếp tục là khởi tạo shortcode, đối với Flatsome thì em sẽ ưu tiên thêm 1 lựa chọn khác nữa là tạo thêm 1 element kéo thả vào header trong thời gian tới.
Demo có thể tham khảo trước tại theme wordpress Allin
Khởi tạo shortcode sản phẩm đã xem
Code sau cũng bỏ vào function.php
add_shortcode('isures_recently_viewed_products', 'isures_2718_prod_viewed_atts');
function isures_2718_prod_viewed_atts()
{
ob_start();
$viewed_products = !empty($_COOKIE['woocommerce_recently_viewed']) ? (array) explode('|', wp_unslash($_COOKIE['woocommerce_recently_viewed'])) : array();
$viewed_products = array_reverse(array_filter(array_map('absint', $viewed_products)));
?>
<div id="isures-recently--wrap">
<div class="isures-container">
<?php
if (!empty($viewed_products)) {
echo do_shortcode('[products type="row" limit="8" columns="6" ids="' . implode(',', $viewed_products) . '"]');
} else {
echo 'Không có sản phẩm xem gần đây';
}
?>
</div>
</div>
<?php
return ob_get_clean();
}
Ở trên mình tận dụng shortcode của woo để kéo ra cho nhanh
Columns ở dòng số 18 code trên:
- Limit=”8″ có nghĩa là hiển thị tối qua 8 sản phẩm. -> thay số tùy bạn.
- Columns=”6″ số cột là 6. -> thay tùy ý.
Hiển thị shortcode sản phẩm đã xem
Tiếp theo để hiển thị được sản phẩm đã xem thì bạn thêm shortcode sau vào nơi cần hiển thị, ví dụ như page!
[isures_recently_viewed_products]
Oke như thế là đã xong 1 tính năng sản phẩm đã xem cho website của bạn rồi. Chúc thành công.!
- Hướng dẫn fix lỗi “Notice: ob_end_flush(): failed to send buffer of zlib output compression (1)”
- Hướng dẫn thêm hiệu ứng Placeholder loading cho sản phẩm
- Custom lại field số điện thoại tại trang thanh toán
- Cách ẩn giá sản phẩm khỏi Google
- Hiện thêm ảnh sản phẩm tại trang thanh toán
- Code ẩn Edit Product che mất tùy chọn khi đăng sản phẩm