Current Time Gravity Forms Merge Tags

The built-in Gravity Forms merge tags include {date_mdy} and {date_dmy}, which are useful for setting the default values of Date fields, but there aren’t any for Time fields. This snippet adds three merge tags for that:

  • {current_hour}
  • {current_minute}
  • {current_am_pm}

Note that the server’s clock and site’s timezone setting are used, not the client’s.

Screenshot of Gravity Forms Time field merge tags

add_filter( 'gform_replace_merge_tags', 'djb_gform_replace_merge_tags', 10, 7 );
/**
* Replace custom merge tags.
*
* @link https://docs.gravityforms.com/gform_replace_merge_tags/
*
* @param string  $text Current text in which merge tags are being replaced.
* @param object  $form Current Form object.
* @param object  $entry Current Entry object.
* @param boolean $url_encode Whether or not to encode any URLs found in the replaced value.
* @param boolean $esc_html Whether or not to encode HTML found in the replaced value.
* @param boolean $nl2br Whether or not to convert newlines to break tags.
* @param string  $format Determines how the value should be formatted. Default is html.
* @return string Modified data.
*/
function djb_gform_replace_merge_tags( $text, $form, $entry, $url_encode, $esc_html, $nl2br, $format ) {
if ( strpos( $text, '{current_hour}' ) !== false ) {
$text = str_replace( '{current_hour}', current_time( 'g' ), $text );
}
if ( strpos( $text, '{current_minute}' ) !== false ) {
$text = str_replace( '{current_minute}', current_time( 'i' ), $text );
}
if ( strpos( $text, '{current_am_pm}' ) !== false ) {
$text = str_replace( '{current_am_pm}', current_time( 'A' ), $text );
}
return $text;
}

4 comments on “Current Time Gravity Forms Merge Tags

  1. This was exactly what I needed! Thanks so much! And thanks for the pointers into the documentation. I looked for this but missed it.

Leave a Reply

Your email address will not be published. Required fields are marked *