计算点击按钮以创建"热门活动"区域

时间:2014-05-29 14:41:33

标签: javascript php jquery wordpress

我正在旅游网站上展示多个旅游。我正在使用WordPress并创建了一个名为Tours的自定义帖子类型。

每个游览内部都是“立即预订”按钮,该按钮作为自定义元框创建。 “立即预订”按钮包含指向第三方预订系统的链接。

我要做的是在主页上创建一个字段,以显示本周最受欢迎的游览。这将通过每次巡演中“立即预订”按钮的点击次数来判断。

因此,每当用户点击本周特定行程的“立即预订”时,计数将设置为该行程,并且一周内编号最高的行程将作为主页上的链接。

如何通过JavaScript或PHP实现此功能?

2 个答案:

答案 0 :(得分:1)

使用jquery

点击Book Now按钮上的点击事件
  $(document).ready(function(){
      $("#booknow").click(function(){
          $.ajax({
             type: "POST",
             url: "<?php echo site_url(); ?>/wp-admin/admin-ajax.php",
              data: { action: "countaddone", postId: "1" }
          });
      });
  });

现在在你的主题functions.php文件中创建函数,如。

add_action('wp_ajax_countaddone', 'my_countlogin');
add_action('wp_ajax_nopriv_countaddone', 'my_countlogin');

function my_countlogin(){
     $postid = $_POST['postId'];
     $getcount = get_post_meta($postid,'_my_meta_getcount');
     $count = $getcount[0] + 1;
     update_post_meta($postid,'_my_meta_getcount',$count);
}

使用此代码获取多少次点击按钮。

 $getcount = get_post_meta($postid,'_my_meta_getcount');

答案 1 :(得分:0)

每个链接都应该有一个类和唯一标识符

<a href="/some/trip/package-A" class="countable" data-id="package-A">Click</a>

在javascript端使用jquery,您绑定到链接的click事件。

$('a.countable').click(function() {
     // get our trip identifier
     var identifier = $(this).attr('data-id');
     // ajax call to increment counter
     jQuery.post(
            '/counter.php',
            {track_id: identifier}
        );
    }
});

counter.php然后收到track_id作为$ _POST变量,并通过调用increment_counter()将你的计数器增加到某个地方(database / redis / etc ..)。您还需要从数据存储区中按周/月/日/等报告最受欢迎的功能。由于这可能是数据密集型的,因此最好通过生成最终输出的cron脚本来执行此操作,而不是在每个页面请求上执行此操作。在最坏的情况下,你应该缓存&#34; Top X&#34;结果一段时间(一小时,六小时,一天?)。

 <?php
 // assumes integer ids, filter inputs appropriately
 $identifier = (int) $_POST['track_id']; 

 if (!empty($identifier)) {
      increment_counter($identifier);
 }