GET MORE OUT OF
GRAVITY 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-HAVES
A form that would accept user-submitted nominations
and save them as a custom post type
A voting mechanism for each award category that only
allowed a person to vote once per person per category
SOLUTION?
Gravity Forms!
vs.
Single license: $39 Single license: $0 + ???
User analytics: $19
File uploads: $39
Front-end posting: $39
Multi-part forms: $39
Conditional 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 easily
show or or hide your form on demand.
Fancybox
IN A THEME FILE
hostedwith ❤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>
viewrawGravityFormsandFancybox GitHub
Initially hidden form + Ajax submitting= no-fuss modal perfection!
IN THE WILD
IN THE WILD
GET MORE WITH HOOKS
Around 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 FIELDS
Many 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
hostedwith ❤by
function my_city_population_function( $value ){
    return 'Vancouver';
}
add_filter( 'gform_field_value_my_city', 'my_city_population_function' );
viewrawDynamicallyPopulateGravityFormsTextField 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 VALIDATION
Be the boss of your form AND database!
gform_validation_[your form ID]
gform_validation_[your form ID]
hostedwith ❤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' );
viewrawGravityFormsCustomValidationExample GitHub
See the offcial docs .here
RESTRICT UPLOAD SIZE
There'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 FOR
DUPLICATES
Preventing duplicates is easy... preventing a single user from
submitting the same field value twice is harder.
Check out this Gist.
SOME GOTCHAS
Duplicate 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

More Related Content

PPTX
Colorado Springs WordPress Meetup - Gravity Forms
PPTX
WordPress Plugin development
PDF
The new form framework
PDF
Plugging into plugins
PDF
HTML::FormFu talk for Sydney PM
PDF
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
PPTX
Custom post-framworks
PPTX
Custom post-framworks
Colorado Springs WordPress Meetup - Gravity Forms
WordPress Plugin development
The new form framework
Plugging into plugins
HTML::FormFu talk for Sydney PM
Kicking off with Zend Expressive and Doctrine ORM (ZendCon 2016)
Custom post-framworks
Custom post-framworks

Similar to Get More Out of Gravity Forms (18)

PPTX
Inheritance, Polymorphism, and Virtual Functions (Ch_15).pptx
PDF
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
PDF
Using Custom Variables in Google Analytics
PDF
Extending Java EE with CDI and JBoss Forge
PDF
Bronx study jam 1
PDF
Vim Hacks
PDF
Vim Hacks
PDF
WordPress Form Builders
PDF
Refactoring
PPTX
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
PDF
Do more, faster, by extending WP-CLI
PDF
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
PPT
11i10 ATFormPersonalization_HRDv2[1].ppt
PDF
7 Tips on Getting Your Theme Approved the First Time
PDF
Writing Software not Code with Cucumber
PDF
Behold! The Happy Path To Captivate Your Users With Stunning CLI Apps!
PPTX
Polumorphism
PDF
Curso Symfony - Clase 4
Inheritance, Polymorphism, and Virtual Functions (Ch_15).pptx
Kicking off with Zend Expressive and Doctrine ORM (PHPNW2016)
Using Custom Variables in Google Analytics
Extending Java EE with CDI and JBoss Forge
Bronx study jam 1
Vim Hacks
Vim Hacks
WordPress Form Builders
Refactoring
10 Things Every Plugin Developer Should Know (WordCamp Atlanta 2013)
Do more, faster, by extending WP-CLI
New Symfony Tips & Tricks (SymfonyCon Paris 2015)
11i10 ATFormPersonalization_HRDv2[1].ppt
7 Tips on Getting Your Theme Approved the First Time
Writing Software not Code with Cucumber
Behold! The Happy Path To Captivate Your Users With Stunning CLI Apps!
Polumorphism
Curso Symfony - Clase 4
Ad

Recently uploaded (20)

PDF
UiPath Agentic Automation session 1: RPA to Agents
PPTX
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PPTX
The various Industrial Revolutions .pptx
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
STKI Israel Market Study 2025 version august
PPTX
Chapter 5: Probability Theory and Statistics
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Modernising the Digital Integration Hub
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPT
Geologic Time for studying geology for geologist
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
UiPath Agentic Automation session 1: RPA to Agents
AI IN MARKETING- PRESENTED BY ANWAR KABIR 1st June 2025.pptx
Getting started with AI Agents and Multi-Agent Systems
Benefits of Physical activity for teenagers.pptx
Convolutional neural network based encoder-decoder for efficient real-time ob...
sustainability-14-14877-v2.pddhzftheheeeee
The various Industrial Revolutions .pptx
Flame analysis and combustion estimation using large language and vision assi...
STKI Israel Market Study 2025 version august
Chapter 5: Probability Theory and Statistics
Module 1.ppt Iot fundamentals and Architecture
Modernising the Digital Integration Hub
Abstractive summarization using multilingual text-to-text transfer transforme...
Consumable AI The What, Why & How for Small Teams.pdf
Microsoft Excel 365/2024 Beginner's training
Hindi spoken digit analysis for native and non-native speakers
A review of recent deep learning applications in wood surface defect identifi...
Geologic Time for studying geology for geologist
Custom Battery Pack Design Considerations for Performance and Safety
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Ad

Get More Out of Gravity Forms