WPAdverts-如何限制每月提交10份表单

时间:2019-06-12 作者:gezuka

我目前使用wpadverts插件,希望将提交限制为每月10次提交。

我该怎么做?

我想我需要在“wp\\u usermeta”中创建一个类似“form\\u submissions”的新行,并在用户每次提交表单时进行存储,并在一个月后执行cron任务删除行值。

我需要在表单提交页面上查询行值,如下所示:

$result = mysqli_query($connect, "SELECT COUNT(*) AS `form_submission` FROM wp_usermeta WHERE user_id = $user_id");

    $row = mysqli_fetch_assoc($result);

    if($row[\'form_submission\'] > 10) {
        // can\'t submit the form because you already have 10 post
    } else {
        // you can submit the form
    }
还是我完全迷路了?对不起,我的英语不好。

1 个回复
最合适的回答,由SO网友:majick 整理而成

您可以使用get_user_metaupdate_user_meta:

$value = get_user_meta($user_id, \'form_submission\', true); 
if (!$value) {$value = 1;} else {$value = $value + 1;}
if ($value < 11) {
    update_user_meta($user_id, \'form_submission\', $value);
} else {
    // too many form submissions
}
如果不想使用cron作业,也可以在此基础上进行扩展,以存储提交月份。

$month = get_user_meta($user_id, \'submission_month\', true);
$value = get_user_meta($user_id, \'form_submission\', true); 

if ($month && ($month != date(\'m\',time())) ) {
    update_user_meta($user_id, \'submission_month\', date(\'m\', time());
    $newmonth = true;
} else {$newmonth = false;}
if (!$value || $newmonth) {$value = 1;} else {$value = $value + 1;}
if ($value < 11) {
    update_user_meta($user_id, \'form_submission\', $value);
} else {
    // too many form submissions
}

相关推荐

Gantry4中的GravityForms不会显示

在将表单插入页面之前,在Gantry4模板中实现GravityForms效果良好。表单(包括条件)不会显示在页面的公共视图中。经过7个小时的研究,问题似乎来自主题(甘特瑞4),因为将其更改为另一个主题确实会显示表单,但GravityForms的支持团队没有给出任何直接的解决方案,他们宁愿建议更改主题。尝试将主题更改为Gantry5似乎需要几天的时间,而且无法确定问题是否会得到解决(因为问题可能是由于使用了mootools),而且由于控制台上没有出现错误,几乎不可能找到真正的原因。使用控制台进行一些测试,这