所以我目前安装有许多不同形式的重力形式。我希望用户能够看到所有表格,但最多只能提交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' );
它似乎有可能,但是我该如何实现呢?
答案 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和提交计数。然后在提交时进行更新。