Description
This filter is executed when the form is displayed and can be used to completely change the form tag (i.e. <form method=”post”>).
Usage
The following would apply to all forms.
add_filter( 'gform_form_tag', 'your_function_name', 10, 2 );
To limit the scope of your function to a specific form, append the form id to the end of the hook name. (format: gform_form_tag_FORMID)
add_filter( 'gform_form_tag_6', 'your_function_name', 10, 2 );
Parameters
- $form_tag string
The string containing the <form> tag
- $form Form Object
The current form.
Examples
Submit Form to Custom Handler
This example changes the action of the form tag, submitting the form to a custom form handler.
add_filter( 'gform_form_tag', 'form_tag', 10, 2 );
function form_tag( $form_tag, $form ) {
if ( $form['id'] != 3 ) {
// Not the form whose tag you want to change, return the unchanged tag.
return $form_tag;
}
$form_tag = preg_replace( "|action='(.*?)'|", "action='custom_handler.php'", $form_tag );
return $form_tag;
}
Turn off autocompletion
Turn off autocompletion as described in Mozilla developer docs: How to Turn Off Form Autocompletion
The following will be applied only to a form with id 1.
add_filter( 'gform_form_tag', 'form_tag', 10, 2 );
function form_tag( $form_tag, $form ) {
if ( $form['id'] != 1 ) { // change 1 to match your form id
// Not the form whose tag you want to change, return the unchanged tag.
return $form_tag;
}
// Turn off autocompletion as described here https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
$form_tag = preg_replace( "|action='|", "autocomplete='off' action='", $form_tag );
return $form_tag;
}
If you want to apply it to all forms simply remove the if statement.
add_filter( 'gform_form_tag', 'form_tag', 10, 2 );
function form_tag( $form_tag, $form ) {
// Turn off autocompletion as described here https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
$form_tag = preg_replace( "|action='|", "autocomplete='off' action='", $form_tag );
return $form_tag;
}
Add custom CSS class for Save and Continue forms
The following example shows you how to add a custom CSS class to forms when they’re accessed using a Save and Continue link.
add_filter( 'gform_form_tag', function ( $form_tag, $form ) {
$gf_token = rgget( 'gf_token' );
if ( ! empty( $gf_token ) ) { // Add class only if value for gf_token is provided.
if ( rgar( $form, 'cssClass' ) ) {
$form_tag = preg_replace( "|class='|", "class='my_super_class ", $form_tag );
} else {
$form_tag = preg_replace( "|action='|", "class='my_super_class' action='", $form_tag );
}
}
return $form_tag;
}, 10, 2 );
Add hidden input
This example shows how you can add a custom input to the form without including a field in the form fields array.
add_filter( 'gform_form_tag', function ( $form_tag, $form ) {
if ( empty( $form_tag ) ) {
// Don't add the input when other integrations have removed the form tag e.g. Gravity Flow workflow detail page.
return $form_tag;
}
$name = wp_hash( GFForms::$version . rgar( $form, 'id' ) . 'your_custom_key' );
$class = 'your_custom_class';
$form_tag .= sprintf( "<input type='hidden' name='%s' class='%s' value='' />", esc_attr( $name ), esc_attr( $class ) );
return $form_tag;
}, 60, 2 );
Placement
This code should be placed in the functions.php file of your active theme.
Source Code
This filter is located in GFFormDisplay::get_form() in form_display.php
Third-party Resources
Plugin: Gravity Forms Tag Editor
A simple plugin that makes modifying Gravity Forms tags a breeze. Change any attribute of the form tag with just a few lines of code. Visit the plugin page.