在Woo Commerce产品页面上显示产品视图计数

时间:2019-08-30 09:29:27

标签: php wordpress

我有WordPress网站www.kampungcourse.id选择语言课程。我想表明有多少人看过特定产品。使用发布视图计数器插件,它可以在首页和博客页面上显示发布视图,而在woo-commerce产品页面上则不显示发布视图。谁能帮助定制代码来实现这一点

我尝试使用后视图计数器插件,但不适用于woo-commerce的产品页面。

2 个答案:

答案 0 :(得分:0)

将以下代码插入到function.php文件中。您可以按用户IP地址在表格上插入视图计数。

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) );
}
});

在添加到购物车按钮之前显示特定的产品视图计数。

add_action( 'woocommerce_before_add_to_cart_button', 'add_content_before_addtocart_button_func',0 );
function add_content_before_addtocart_button_func() {

        global $product;
        $id = $product->id;         
        $meta = get_post_meta( $id, 'views_count', TRUE );
        if(empty($meta))
        {
            $result = 0;
        }
        else
        {        
        $result = count(explode(',',$meta)); 
        }       
        echo "<div class='custom-visitor-count-st' style='font-size: 20px;'>";
        echo "<i class='fa fa-eye'></i>";
        echo "<span class='cv-value'>";
        echo $result;
        echo " Views</span></div>";
}

您可以使用任何其他woo Commerce钩子来显示视图计数。

答案 1 :(得分:0)

请按以下所示替换此功能,以在页面顶部显示评级栏旁边的视图。

add_action( 'woocommerce_before_add_to_cart_button', 'add_content_before_rating_button_func',0 );

    function add_content_before_rating_button_func() {        
                global $product;
                $id = $product->id;         
                $meta = get_post_meta( $id, 'views_count', TRUE );
                if(empty($meta))
                {
                    $result = 0;
                }
                else
                {        
                $result = count(explode(',',$meta)); 
                }       

        ?>
                <script>
                var html="";
                var result = "<?php echo $result ?>";
                html += "<div class='custom-visitor-count-st' style='font-size: 20px;'>";
                html += "<i class='fa fa-eye'></i>";
                html += "<span class='cv-value'>";
                html += result;
                html += " Views</span></div>";

                $(html).insertAfter('.woocommerce-product-rating');
                </script>
                <?php
        }