Gravity Forms API调用时开始与结束日期参数被忽略问题求助
问题分析与解决
你的问题核心是日期筛选参数的位置放错了。Gravity Forms API的GFAPI::get_entries()方法中,start_date和end_date属于搜索筛选条件,需要放在第二个参数的筛选数组里,而不是第四个参数的分页/选项数组中。
修正后的代码
$form_id = isset($_GET['form-id']) ? $_GET['form-id'] : ''; $form = GFAPI::get_form($form_id); $start_date = isset($_GET['start-date']) ? $_GET['start-date'] : ''; $end_date = isset($_GET['end-date']) ? $_GET['end-date'] : ''; // 初始化筛选条件 $search_criteria = array( 'status' => array('active'), ); // 仅当日期参数存在时添加筛选,避免空值干扰 if (!empty($start_date)) { $search_criteria['start_date'] = $start_date; } if (!empty($end_date)) { $search_criteria['end_date'] = $end_date; } $entries = GFAPI::get_entries($form_id, $search_criteria, array(), array( 'page_size' => 1000, 'offset' => 0 ));
额外验证点
- 确认传入的日期格式符合要求:Gravity Forms支持
YYYY-MM-DD或带时间的YYYY-MM-DD HH:MM:SS格式,其他格式会导致筛选失效。 - 可以通过
var_dump($start_date, $end_date)检查URL参数是否被正确获取,排除参数传递失败的情况。
内容的提问来源于stack exchange,提问作者User_FTW
相关产品推荐
相关产品推荐

