如何解决如何防止在特定日期内在重力表格中重复输入
我正在努力防止我的 2 个重力表格重复输入。我只需要在特定时间范围内并基于“电子邮件”或“地址”等特定字段来阻止这些条目。因此,如果他们在 start_date
之前有一个具有相同“电子邮件”的条目,他们仍然可以毫无问题地提交表单。如果他们在 start_date
之后和 end_date
之前有一个具有相同“电子邮件”的条目,那么他们将无法提交表单。下面的代码是我目前拥有的代码,但它不起作用。非常感谢任何帮助。
add_filter( 'gform_is_duplicate','custom_duplicate_entry_rules',10,4 );
function custom_duplicate_entry_rules( $count,$form_id,$field,$value ) {
$form_id = array( 6,61 );
$search_criteria = array(
'start_date' => 2021-02-01,// Get entries from date after last event
'end_date' => 2022-01-20,// Up to right before next event
'field_filters' => array( // which fields to search
array(
'key' => 'email',)
)
);
$search_past_entries = GFAPI::count_entries($form_id,$search_criteria);
if ( $search_past_entries >= '1' ) {
echo 'You have already signed up.';
}
}
解决方法
在一位开发人员的帮助下,我设法解决了这个问题...
add_filter( 'gform_is_duplicate_6','custom_duplicate_entry_rules',10,4 );
add_filter( 'gform_is_duplicate_61',4 );
function custom_duplicate_entry_rules( $count,$form_id,$field,$value ) {
$search_criteria = array(
'start_date' => '2021-02-01',// Get entries from date after last event
'end_date' => '2022-01-20',// Up to right before next event
'field_filters' => array( // which fields to search
array(
'key' => 2,'value' => $value,)
)
);
$count = GFAPI::count_entries( $form_id,$search_criteria );
if( $count >= 1 ) {
return $count;
} else {
return 0;
}
}
我需要将 field_filters
中的特定条目元归零,在本例中最终为 2,用于电子邮件地址(这是重力表单中的字段 ID)。最后,我将 if 语句更改为返回 $count
或 0。Gravity Forms 完成了除此之外的所有繁重工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。