重力形式-获取日期值并进行调整,使其成为合并标记

时间:2019-03-12 01:15:44

标签: gravity-forms-plugin gravityforms

所以我想做的是获取一个字段值,一个日期字段,并为其添加一个设置的时间段,然后将其放入合并标记中,然后我可以将其添加回该值中或使用其他地方。

我知道如何制作一个新的合并标签,这不是问题。我的问题是如何获取要在该计算中使用的字段值?

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。请查看我的代码并提供其他反馈?

2 个答案:

答案 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是日期值。这样是否可以检索当前输入日期?