Nếu bạn đang muốn hiện thị số lượt xem sản phẩm nhằm gia tăng trải nghiệm khách hàng, thì đoạn code dưới đây sẽ giúp bạn làm điều này nhanh chóng mà không cần sử dụng plugin.

Để tạo bộ đếm tùy chỉnh trong Woocommerce, chúng ta sẽ sử dụng một số function để thực thi chức năng này gồm có:

  • Sử dụng hàm get_post_meta() để lấy và lưu trữ dữ liệu lượt xem dựa trên ID sản phẩm.
  • Sử dụng hàm update_post_meta() cập nhật lượt xem vào meta key.
  • Hiện thị số lượt xem trong phần chi tiết sản phẩm, sử dụng hook woocommerce_before_add_to_cart_button
  • Hiện thị ở Shop page/Archive Product Page, sử dụng hook woocommerce_after_shop_loop_item

Lưu ý: Bạn nên chèn đoạn code này trong Child Theme.

Hiện thị theo mỗi lượt xem

Bộ đếm sẽ hoạt động khi có lượt truy cập. Tăng dần theo từng lượt và hiện thị tổng số lượt xem

Hiện thị ở chi tiết sản phẩm

Bạn dán đoạn code này vào file function.php

add_action('wp', 'product_view_counter');
function product_view_counter() {
     global $post;
     if ( is_product() ){
         $meta = get_post_meta( $post->ID, '_total_views_count', TRUE );
         $meta = ($meta) ? $meta + 1 : 1; 
         update_post_meta( $post->ID, '_total_views_count', $meta );
     }
}

Đoạn mã này sẽ kiểm tra đây có là trang sản phẩm hay không? Nếu đây là trang sản phẩm thì sẽ thêm một post meta field ‘_total_views_count‘. Sau khi tạo ra bộ đếm, việc còn lại là hiện thị. Bạn có thể hiện thị tùy chỉnh với vị trí hook mà theme bạn đang dùng.

add_action('woocommerce_before_add_to_cart_button','show_product_view_counter_on_product_page', 10);
function show_product_view_counter_on_product_page() {
    global $product;
    $id = $product->id;         
    $meta = get_post_meta( $id, '_total_views_count', true);
    if(!$meta) {
        $count = 0;
    } else {        
        $count = $meta; 
    }       
    echo "<div class="custom-visitor-count"><i class="fa fa-eye"></i><span class="counter-value">".$count." Views</span></div>";
}

Hiện thị ở danh mục sản phẩm

Muốn hiện thị phần lượt xem sản phẩm tại danh mục bạn chỉ cần lặp lại đoạn code trên và thay thế hook ở shop page là xong.

add_action( 'woocommerce_after_shop_loop_item', 'show_product_view_counter_on_shop_page', 10);
function show_product_view_counter_on_shop_page() {

    global $product;
    $id = $product->id;         
    $meta = get_post_meta( $id, '_total_views_count', true);
    if(!$meta) {
        $count = 0;
    } else {        
        $count = $meta; 
    }       
    echo "<div class="custom-visitor-count"><i class="fa fa-eye"></i><span class="counter-value">".$count." Views</span></div>";
}

Đếm và hiện thị lượt xem theo IP

Để đếm lượt xem dựa theo IP, bạn vẫn sử dụng các hàm ở trên và kết hợp thêm hàm kiểm tra IP truy cập.

add_action('wp', 'product_view_counter');
function product_view_counter() {
     global $post;
     $userip = $_SERVER['REMOTE_ADDR'];
     if ( is_product() ){
         $meta = get_post_meta( $post->ID, '_total_views_count', TRUE );
         $meta = (!$meta) ? array() : explode( ',', $meta );
         $meta = array_filter( array_unique( $meta ) );

         if( ! in_array( $userip, $meta ) ) {
            array_push( $meta, $userip );
            update_post_meta( $post->ID, '_total_views_count', implode(',', $meta));
         }
     }
}

Okay, vậy đã xong! Nếu bạn có bất kì thắc mắc nào hãy comment ý kiến của bạn nhé!

Nguồn: yourblogcoach.com

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

Nếu bạn cảm thấy bài viết này hữu ích, bạn có thể ủng hộ cho tác giả một ly Cafe. Cảm ơn bạn rất nhiều !

DONATE QUA MOMO
DONATE QUA BANKING
ViettinBank
TRAN TRUNG HIEU
105875880468
Theo dõi
Thông báo của
0 Bình luận
Phản hồi nội tuyến
Xem tất cả bình luận