所以我想做的是获取一个字段值,一个日期字段,并为其添加一个设置的时间段,然后将其放入合并标记中,然后我可以将其添加回该值中或使用其他地方。
我知道如何制作一个新的合并标签,这不是问题。我的问题是如何获取要在该计算中使用的字段值?
add_filter( 'gform_replace_merge_tags', 'new_date_plus_30', 10, 7 );
function new_date_plus_30( $text, $form, $entry, $url_encode, $esc_html, $nl2br, $format ) {
$merge_tag = '{date_plus_30}';
$new_date = date('m/d/Y', strtotime('+30 days'));
return str_replace( $merge_tag, $new_date, $text );
}
因此,在进行新的日期计算的地方,我需要能够从该帖子中提取一个字段并使用它。
我还考虑过使用If / Else脚本,在该脚本中,我将根据表单中的设置进行日期计算。因此,如果用户说每15天重复一次,我将得到以下信息:
add_filter('gform_replace_merge_tags','new_date_plus_30',10,7); 函数new_date_plus_30($ text,$ form,$ entry,$ url_encode,$ esc_html,$ nl2br,$ format){
if ( $form_id == 34 && $field_id == 2 && $value == 'add 30 days') {
$merge_tag = '{date_plus_30}';
$new_date = date('m/d/Y', strtotime('+30 days'));
}
else if ( $form_id == 34 && $field_id == 2 && $value == 'first of month') {
$merge_tag = '{first_of_month}';
$new_date = date('m/d/Y', strtotime('first of next month'));
}
}
return str_replace( $merge_tag, $new_date, $text );
}
但是我的问题还是一样。如何同时使用两个过滤器?我假设我需要使用gform_get_input_value。请查看我的代码并提供其他反馈?
答案 0 :(得分:0)
或者也许是这样...
add_filter( 'gform_merge_tag_filter', function ( $value, $merge_tag, $options, $field, $raw_value ) {
if ( $field->id == '2' && $value == 'first of the month') {
$merge_tag = '{the_next_date}';
$thedatetochange = 'Not sure how to get the date value here...';
$value = date('m/d/Y', strtotime($thedatetochange . 'first of the next month'));
return $value;
}
else if ( $field->id == '2' && $value == 'the 15th') {
$merge_tag = '{the_next_date}';
$thedatetochange = 'Not sure how to get the date value here...';
$the_first_date = date('m/d/Y', strtotime($thedatetochange . 'first of the next month' ));
$value = date('m/d/Y', strtotime($the_first_date . '+15 days' ));
return $value;
}
}, 10, 5 );
答案 1 :(得分:0)
因此,在进行更多挖掘之后,我是否可以使用类似方法来获取字段的值?
$theDateToChange = rgar( $entry, ‘3’);
这假定字段3是日期值。这样是否可以检索当前输入日期?