重力形式限制提交量

时间:2018-12-14 21:14:20

标签: php wordpress

所以我目前安装有许多不同形式的重力形式。我希望用户能够看到所有表格,但最多只能提交3个表格。 我发现了Gravity Wiz Limit提交,无法将电子邮件地址限制为3次使用,但这仅适用于一种形式,我需要它允许用户提交3种不同的形式(例如,全局限制)

https://gist.github.com/spivurno/4024361

浏览了一下然后找到

add_filter( 'gpls_rule_groups', function( $rule_groups, $form_id ) {
    // Update "123" to the ID of your form.
    $primary_form_id = 123;
    if( $form_id == $primary_form_id ) {
        return $rule_groups;
    }
    $rule_groups = array_merge( $rule_groups, GPLS_RuleGroup::load_by_form( $primary_form_id ) );
    foreach( $rule_groups as $rule_group ) {
        $rule_group->applicable_forms = false;
    }
    return $rule_groups;
}, 10, 2 );

add_filter( 'gpls_apply_limit_per_form', '__return_false' );

它似乎有可能,但是我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

是用户还是访客?根据用户,您可以创建用户元,然后使用gform_after_submission添加到元中。然后使用pre_render检查并查看它们是否已用完,并对其进行重定向。

add_action( 'gform_after_submission_{form_id}', 'after_submit_{form_id}', 10, 2 );
function after_submit_{form_id}( $entry, $form, $field ) {

$user_id = get_current_user_id();
$meta_key = 'count_submissions';

$get_meta = get_user_meta($user_id, $meta_key, true);
$qty = $get_meta + 1;

update_user_meta( $user_id, $meta_key, $qty );
}

如果同时需要两者,则可以只创建一个数据库表并收集IP和提交计数。然后在提交时进行更新。