我正在尝试为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
}