get more out of gravity forms
DESCRIPTION
From my Vancouver WordPress Meet-up talk about to do neat-o things with the Gravity Forms plugin.TRANSCRIPT
GET MORE OUT OFGRAVITY FORMS
VANCOUVER WORDPRESS MEET-UP – MAY 15, 2014
WHAT WE'LL COVER:1. The challenge
2. Gravity Forms vs. ...
3. Get more out of the box
4. Get more with hooks
5. Some gotchas
THE CHALLENGE
MUST-HAVESA form that would accept user-submitted nominationsand save them as a custom post type
A voting mechanism for each award category that onlyallowed a person to vote once per person per category
SOLUTION?Gravity Forms!
vs.
Single license: $39 Single license: $0 + ???
User analytics: $19File uploads: $39Front-end posting: $39Multi-part forms: $39Conditional logic: $29
TOTAL: $165
OUT OF THE BOX MAGIC
FORM FIELDS IN A SNAP
USER-SUBMITTED POSTS
BUT WHAT ABOUT CPTS?There's a plugin for that.
NEEDED TO TURN THIS...
INTO THIS:
GRAVITY FORMS +CUSTOM POST TYPES
Find it WP plugin directory:wordpress.org/plugins/gravity-forms-custom-post-types/
Better yet, get it from Github*:github.com/bradvin/gravity-forms-custom-post-types
*No PHP error notices with WP DEBUG on.
FORMS IN MODALS (or another modal plugin) will allow you to easilyshow or or hide your form on demand.
Fancybox
IN A THEME FILE
hosted with ❤ by
<div id="voting‐form" style="display:none"> <?php echo do_shortcode( '[gravityform id="6" title="false" description="false" ajax="true"]' ) ?></div><a href="#voting‐form" class="fancybox button">Vote Now</a>
view rawGravity Forms and Fancybox GitHub
Initially hidden form + Ajax submitting= no-fuss modal perfection!
IN THE WILD
IN THE WILD
GET MORE WITH HOOKSAround 200 actions & filters you can use to extend GF...
www.gravityhelp.com/documentation/page/Developer_Docs
WHERE DOES IT GO?1. Your theme's functions.php file
2. A functionality plugin
AUTO-POPULATE FIELDSMany ways to go about this!
gform_field_value_[your custom param]
gform_pre_render_[your form ID]
gform_field_value_[your custom param]
Use this filter for text fields or pre-selection of options in a dropdown, etc. See the offcial docs .here
hosted with ❤ by
function my_city_population_function( $value ){ return 'Vancouver';}add_filter( 'gform_field_value_my_city', 'my_city_population_function' );
view rawDynamically Populate Gravity Forms Text Field GitHub
gform_field_value_[your custom param]
gform_pre_render_[your form ID]
Use this filter to pre-populate choices in a dropdown, etc. See the offcial docs .here
Check out a sample Gist.
CUSTOM VALIDATIONBe the boss of your form AND database!
gform_validation_[your form ID]
gform_validation_[your form ID]
hosted with ❤ by
function my_custom_validation( $validation_result ) { $form = $validation_result["form"]; // Sorry, you don't get to live in Vancouver... if ( $_POST['input_1'] == 'Vancouver' ) { $validation_result["is_valid"] = false; foreach ( $form["fields"] as &$field ) { // NOTE: Replace 1 with the field you would like to validate if ( $field["id"] == "1" ) { $field["failed_validation"] = true; $field["validation_message"] = "Sorry, you can't enter Vancouver here!"; break; } } } // Assign modified $form object back to the validation result $validation_result["form"] = $form; return $validation_result;}add_filter( 'gform_validation_[your form ID]', 'my_custom_validation' );
view rawGravity Forms Custom Validation Example GitHub
See the offcial docs .here
RESTRICT UPLOAD SIZEThere's no way to do this out of the box and you may not
want users uploading 32MB files!
There is a plugin for that, but it's buggy. Instead...Check out this Gist.
CUSTOM CHECK FORDUPLICATES
Preventing duplicates is easy... preventing a single user fromsubmitting the same field value twice is harder.
Check out this Gist.
SOME GOTCHASDuplicate prevention (use )
Ajax and captcha
And on the topic of spam...
this plugin
THAT'S ALL FOLKS!Find me: and @mandiwise mandiwise.com
All of the snippets: gist.github.com/mandiwise