In this tutorial “Custom woocommerce product view counter using hooks” we learn to display particular user count first need IP Address of user. User “$_SERVER[‘REMOTE_ADDR’]” we can get the IP address of user.
$_SERVER is an array containing information such as headers, paths, and script locations. “REMOTE_ADDR”, The IP address from which the user is viewing the current page.
Using the below code we will insert user IP address , post id and meta key(_views_count) in wp_postmeta table.
add_action('wp', function() {
global $post;
$user_ip = $_SERVER['REMOTE_ADDR'];
$meta = get_post_meta( $post->ID, '_views_count', TRUE );
$meta = '' !== $meta ? explode( ',', $meta ) : array();
$meta = array_filter( array_unique( $meta ) );
if( ! in_array( $user_ip, $meta ) ) {
array_push( $meta, $user_ip );
update_post_meta( $post->ID, '_views_count', implode(',', $meta) );
}
});
Now using the below woocommerce hook, We can display particular product view count after add to cart button.
add_action( 'woocommerce_after_add_to_cart_button', 'add_content_after_addtocart_button_func',0 );
function add_content_after_addtocart_button_func() {
global $product;
$id = $product->id;
$user_ip = $_SERVER['REMOTE_ADDR'];
$meta = get_post_meta( $id, '_se_post_views', TRUE );
if(empty($meta))
{
$result = 0;
}
else
{
$result = count(explode(',',$meta));
}
echo "<div class='custom-visitor-count-st'>";
echo "<i class='fa fa-eye'></i>";
echo "<span class='cv-value'>";
echo $result;
echo " Views</span></div>";
}
At the end we have to use the below woocommerce hook, We can display particular product’s view count after every product listing on shop page.
add_action('woocommerce_after_shop_loop_item','show_free_shipping', 20);
function show_free_shipping () {
global $product;
$id = $product->id;
$user_ip = $_SERVER['REMOTE_ADDR'];
$meta = get_post_meta( $id, '_se_post_views', TRUE );
if(empty($meta))
{
$result = 0;
}
else
{
$result = count(explode(',',$meta));
}
echo "<div class='related-custom-count'><i class='fa fa-eye'></i>";
echo "<span class='cv-value'>";
echo $result;
echo "</span></div>";
}
Thank you for being here, Please share your feedback in below comment section.
Hi and Thank You
Is it possible to count and display unique visits for last hour or for today, let’s say?
Regards
Hi, this does not work. I have added it into WP snippets but it doesn’t work