wordpress唯一 使用cookie系统进行投票,以防止对每个帖子进行重新投票


wordpress unique Voting using a cookie system to prevent revoting for each post

我正在尝试为wordpress主题创建一个投票系统。我正在使用 cookie 系统来确保选民只投票一次,但问题是当用户投票支持一个帖子时,投票的 cookie 设置为 1,如果他们想投票给另一个帖子,因为 cookie 设置为 1,他们不能。我怎样才能解决这个问题,并为每个wordpress帖子提供独特的投票?

我正在使用以下代码来设置 cookie

setcookie('voted','1');

我使用 if 语句来查看用户是否已投票:

if(!isset($_COOKIE["voted"]){
     // vote up code
}

您可以尝试将投票的 id 存储在投票的 cookie 中。

<?php
setcookie("voted[$id_of_poll]", $id_of_poll);

然后像这样检查它

<?php
if (in_array($id_of_poll, $_COOKIE['voted']))
{
   // already voted
}

但请注意,饼干是高度自愿的。用户可以清除它们,他们可以使用多个设备等。您最好根据用户 ID 将其存储在您自己的数据库中。

将帖子 ID 附加到 cookie 中,使其唯一:

setcookie("voted-".get_the_ID(),'1');

像这样:

if(!isset($_COOKIE["voted-".get_the_ID()]){
     // vote up code
}