Webhooks Change Log

Webhooks Change Log

1.5 | 2021-05-061.4 | 2020-09-101.3 | 2020-05-131.2 | 2019-04-251.1 | 2017-08-231.0 | 2017-08-08

1.5 | 2021-05-06

Fixed an issue that prevents saving feed settings for a request URL that contains encoded values.
Fixed an issue where the add-on icon is missing on the Form Settings page for Gravity Forms 2.5.
Fixed an issue where script tags are being output above the document head element.

1.4 | 2020-09-10

Added support for Gravity Forms 2.5.

1.3 | 2020-05-13

Added translations for Hebrew, Hindi, Japanese, and Turkish.
Added security enhancements.
Updated stylesheets to use minified versions.
Fixed a PHP error which could occur when using the https_local_ssl_verify filter with WP 5.1+.

1.2 | 2019-04-25

Added "gform_webhooks_post_request" action.
Added GPL to plugin header.
Added support for delaying feed processing until after payment has been successfully completed using the PayPal Standard Add-On.
Added support for feed duplication.
Added support for using the {admin_ajax_url} and {rest_api_url} merge tags in the Request URL setting.
Updated logging statement.
Updated Plugin URI and Author URI to use https.

1.1 | 2017-08-23

Fixed data from selected fields not being included in the request.

1.0 | 2017-08-08

It's all new!

Website Field CSS Selectors

Website Field CSS Selectors

ContainerInput

Container
example: website field container (div) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .ginput_container_website {border: 1px solid red;}
example: website field container (div) – applies just to form ID #1
body .gform_wrapper_1 .gform_body .gform_fields .gfield .ginput_container_website {border: 1px solid red;}
example: website field container (div) – applies just to specific container (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper_1 .gform_body .gform_fields #field_XX_X.gfield .ginput_container_website {border: 1px solid red;}
Input
example: website field input (input) – applies to all forms
body .gform_wrapper .gform_body .gform_fields .gfield .ginput_container_website input {border: 1px solid red;}
example: website field input (input) – applies just to form ID #1
body .gform_wrapper_1 .gform_body .gform_fields .gfield .ginput_container_website input {border: 1px solid red;}
example: website field input (input) – applies just to specific container (based on the unique parent element ID – replace 「XX_X」 with your actual element ID)
body .gform_wrapper_1 .gform_body .gform_fields #field_XX_X.gfield .ginput_container_website input {border: 1px solid red;}

Website

Website

SummaryCommon SettingsMerge TagsUsageModifiersValidation

Summary

The Website field allows users to enter a website URL. This field automatically validates that the information entered was formatted correctly. It is available under the Advanced Fields section within the form editor.

Website field as displayed in the Field Library

Website field as displayed in the Form Editor.

Common Settings

This field uses only common field settings for the General, Appearance, and Advanced settings. For a description of each of the common field settings, refer to this article. Below you will find description of specialty settings that are particular to this field.

Merge Tags

For more information on the use of merge tags, refer to these articles.

Usage

{Field Name:2}

Notes:

The first of these merge tag parameters is optional and is simply the field name for easier identification.The second parameter defines the field ID within the form. In the example above, it would be field ID 2.

Modifiers

This field does not have any modifiers.

Validation

URLs submitted through this field are validated by GFCommon::is_valid_url(). For more information on how URLs are validated, and overriding them, take a look at the article on URL validation in Gravity Forms.

What is a Feed?

What is a Feed?

A feed is like a notification that communicates information to an add-on or to an external service that the add-on integrates with, each time a visitor successfully submits your form.
Whereas a notification will fire an email off to a destination of your choice each time a Gravity Forms submission is completed, a 「feed」 is set-up within an add-on in order to define the way your form will notify the add-on (and potentially an external service) of a submission.
The reason to do this is because you want the external service to do something with it, such as:

send information to a customer management system in order to create a new customer record. E.g. Agile CRM Add-On or ActiveCampaign Add-On.
send information to a payment gateway in order to generate a charge. E.g. Paypal Payments Standard Add-On or 2Checkout Add-On.
send information to a ticketing service to initiate a support request. E.g. Help Scout Add-On.
send information to a communication service to generate a message in that service. E.g. Slack Add-On.
send file information to a storage service. E.g. Dropbox Add-On.

In general when setting up a feed for an external service, you will have to setup the following:

configure an API key or unique identifier that allows the external service to securely identify your submissions as coming from you. This is usually done within the Add-On Settings.
identify the form you want to use to send the information.
map the form fields to the external service fields you want to populate. For example, identifying which phone number field on your form is going to be sent to a CMS service to create a new custom record.
if needed, set any conditional logic you need in order to describe the conditions you want the submission to be sent using your feed. For example, you may only want the customer details to be sent using the 「new customer」 feed when a form field is set to 「new customer」, else you will want to fire the 「update customer」 feed. For information on enabling conditional logic for a feed, please see this article.

For specific instructions on setting up your feeds, refer to the user guide for each add-on.
Note: A feed must be present and active at the time of form submission in order to send information to the external service. Entries created without an active feed will not be sent to the service. Creating a feed afterwards will not process any entries previously submitted.
Tip: If you cannot find an Add-On that supports the specific external service you want to integrate your form with, then try the Zapier Add-On, which is a service expressly designed for providing hundreds of integrations with other services.

What is Gravity Forms?

What is Gravity Forms?

What It IsWhat It Isn』tWhere To Start

What It Is

Gravity Forms is a WordPress plugin that allows site owners, admins and developers to create simple and complex forms to collect information on their WordPress site, and then decide what to do with that information. Gravity Forms can be used for contact forms, WordPress post creation, calculators, employment applications and more. Check out this library of available templates for just a taste of some of the things you can do.

Additionally, we also offer numerous official add-ons ​that help you integrate your form submissions with numerous external services (such as Stripe, PayPal, Square, Zapier or MailChimp). See a full list of official add-ons here.

On top of that, we offer a robust number of WordPress hooks and a fully featured API to enable developers to modify and extend the functionality we provide, and enable third parties to produce extensive number of additions to the core functionality. Refer to our developer documentation, and our repository of third party add-ons that work with Gravity Forms for a sample of what exists.

Written in PHP, Gravity Forms uses many WordPress built-in functions and features to power its form builder. It also uses the same MySQL database system as WordPress, but stores all forms and entries in its own tables. Gravity Forms is open source and GPL licensed. All of the code included is unencrypted.

What It Isn』t

Gravity Forms is not a SaaS service. We do not host your forms, collect or store your form submissions. All that takes place on your designated WordPress website host where you install Gravity Forms.

Gravity Forms is not a design agency. We cannot contract to design or integrate your forms into your website.

We at Gravity Forms are not available for custom coding. But the fine developers at Codeable are!

Where To Start

If you are new to Gravity Forms, try starting your adventure into wonderful forms with this helpful Getting Started checklist.

Check out our informative blog for a host of getting started articles and the latest news.

Or reach out to our team via our Contact Us form if you have further questions.

What is this Charge on my Credit Card?

What is this Charge on my Credit Card?

I have a charge on my statement for Gravity Forms, can you explain what this is for?How Do I See My License?How Can I Get A Refund?How Can I Get More Info?

I have a charge on my statement for Gravity Forms, can you explain what this is for?
Gravity Forms is the pre-eminent WordPress plug-in to enable web professionals and website administrators to add simple or complex forms to their WordPress websites, as well as to integrate submissions from those forms to a host of external services. This helpful article explains what Gravity Forms is in a little more detail.

​If you have been billed for Gravity Forms, then you have purchased or renewed one of our licenses. Our licenses renew annually, and you can see our license plans and payment amounts on this page.
How Do I See My License?
If you know the email address your license was purchase under, you can view your license details, including what sites it is being used on and the transaction history by logging in to your account.
See also this help page for articles on your Gravity Forms account page.
How Can I Get A Refund?
A refund can be requested from within your account. See this guide.
How Can I Get More Info?
We have a host of quick-read help guides on this very website. Try starting here for articles about your license and account.
If you do not know the email address the license was purchased against, you can contact our support team here. We will require details about the purchase method used, so please include:

date of purchase
first 3 digits and final 4 digits of the credit card used.
name on the card

What To Do If You Suspect a Security Issue

What To Do If You Suspect a Security Issue

Determining if you have a threatCleaning up a compromised sitePreventing security issues

We take security issues very seriously and want to make sure that any security concerns are appropriately addressed in a timely manner. In this article, we will take a look at identifying a legitimate security concern and what to look for before submitting a ticket to support.
Note: This article is not intended for security researchers reporting a code vulnerability. For technical details on identifying code vulnerabilities, you may review our article on security practices in Gravity Forms.
Determining if you have a threat
If you have a security threat, many times it will be quite blatant but can sometimes be a bit subtle. Here are a few things to look for:

If any part of your site has been abruptly replaced with other content you do not recognize, your site has likely been hacked.
Suddenly being unable to log into your WordPress admin dashboard is another sign that your side may be compromised.
Check for unknown plugins. Some attacks will install plugins with clever names to hide their true intent.
If you have Webmaster Tools enabled, most times Google will alert you of possible malware on your site. Check your email for any alerts that may have been sent regarding a security issue.
Check the pages on your site. Many times when a site is compromised, links will be injected within either the footer or within the main content itself.
If you are accepting payments, check to ensure that any payment gateway information is indeed yours. If the payment information has changed, it』s a sure sign that your site has been compromised.

Cleaning up a compromised site
If your site has been compromised, it can sometimes be quite difficult to completely track it down. Here are a few things that can help you clean up a site after it has been compromised:

If possible, restore from the earliest possible backup. This will ensure that you have a clean copy of your files rather than attempting to track down the issue which can take quite a while. Always back up your site early and often as this is your best defense against a catastrophic issue.
Install iThemes Security and use the security scanner included with it. Often times, iThemes Security can easily locate malicious files hiding deep inside your WordPress installation.
Restore your WordPress core files with a fresh copy. As it is a good practice to never modify your WordPress core files and instead build a plugin that makes the changes you need, replacing your WordPress core files with a fresh copy can often make an impact if malicious software has modified them.
Reinstall any plugins and themes you may be using. Doing so will make sure you have a clean copy. Although most data should be stored in the database, be sure to create a backup first just in case anything goes wrong.
Change any passwords used to access your content. This includes your WordPress admin user passwords, FTP credentials, database credentials, and cPanel passwords. If you』re having trouble making those changes, your web host should be able to easily make the change for you.

Preventing security issues

Keep all of your plugins, themes, and WordPress core updated at all times. A large number of sites are compromised due to out of date plugins, themes, or WordPress core every day. Keeping everything up to date is your best defense against attacks.
Use secure passwords. Often times, the password being used is the weakest link in the chain. Passwords should be completely random and contain a mixture of upper-case and lower-case letters, numbers, and symbols.
Use security plugins for added protection. iThemes Security does a great job of preventing common attacks before they happen as well as BruteProtect will help prevent against brute force attacks.
Using secure, well-known plugins minimizes security risks as they are regularly updated and vulnerabilities are discovered rather quickly and before they are discovered by the public.

How Poll Results Work and Why They May Be Delayed

How Poll Results Work and Why They May Be Delayed

How Poll Results Are GeneratedResults Calculation Cron JobCan I Accelerate The Hourly Cron Job?

How Poll Results Are Generated
Each time a poll form submission occurs, results are processed. Those processed results are then displayed to the user. The results are then cached until another submission triggers them to need to be rebuilt again.
In some rare cases, when there are thousands of submissions on a particular poll, the results may not be able to be generated quickly, and thus the results displayed may be behind the actual submissions.
Results Calculation Cron Job
If results take longer than five seconds to generate, a cron is created which will attempt to rebuild the results hourly. Once the cron is created, it will attempt every hour to complete the result generation.
Simply giving some time for the results to be generated will allow the data to once again become accurate.
Can I Accelerate The Hourly Cron Job?
Yes. With a bit of custom code, you can adjust the cron task to run more often. For example, a failure could attempt twice an hour rather than hourly. The snippet below will do that.
add_filter( 'gform_polls_cron_schedule', 'cron_add_twice_hourly' );
function cron_add_twice_hourly() {
// Adds once weekly to the existing schedules.
$schedule['twicehourly'] = array(
'interval' => 1800, // number of seconds in the interval
'display' => __( 'Twice Hourly' )
);
return $schedule;
}

Note: After inserting this snippet, you will need to deactivate and reactivate the Polls Add-On to reschedule an existing task.

Where Do I Put This Code?

Where Do I Put This Code?

IntroductionImportant!CSSJavascript/jQueryPHPThird Party Plug-Ins

Introduction

Depending on what code you are trying to add, and the complexity of the theme you are using, there can be a number of different places that code snippets can be added to extend your forms. This article covers most of the common options.

Important!

Replacing or updating your theme can overwrite the theme directory in your site folder, and that means modifications like these you may have made to files there will be lost. Always keep regular back-ups, consider the use of a child theme, and check out some of the third party plug-ins that provide safer alternatives for adding code.

CSS

CSS code will typically look something like this:

body .gform_wrapper { border:1px solid red }

In most cases, custom CSS should be pasted at the bottom of your theme』s style.css file. Your theme may have a custom.css. If so, pasting your custom styles at the very end of that file is preferable. Generally, when a theme includes any type of file named custom it indicates that this file should be used for custom code specific to the file type.

Javascript/jQuery

Javascript code will typically look something like this:

jQuery(document).ready(function($) {
$('.gfield_checkbox input').click(function(){
var is_checked = $(this).is(':checked');
var parent = $(this).parent('li');
if(is_checked){
$(parent).addClass('selected');
} else {
$(parent).removeClass('selected');
}
});
});

Community Library Alternative The team at Gravity Wiz have a free Custom JavaScript add-on which you can use to include custom scripts for forms.(see disclaimer at bottom of article)

Some theme』s will provide an init.js or, even better, a custom.js file. If so, pasting the custom Javascript in either of these files would be ideal. If neither is present, you can wrap your Javascript code in a

Additional Information on using JavaScript with WordPress can be found here: https://codex.wordpress.org/Using_Javascript

PHP

PHP code will typically look something like this:

PHP snippets will almost always be pasted in your theme』s functions.php file. A few things to be aware of when adding PHP snippets.

Your functions.php will already have an opening

Where to Put Your Custom CSS

Where to Put Your Custom CSS

Use the WordPress CustomizerUsing a Third Party PluginModifying style.css

Use the WordPress Customizer
WordPress includes a tool to enable you to tailor the presentation of your theme. Included in that, is a way to add custom CSS code. Do the following:

From your site admin dashboard, click the Appearance option.
Under Appearance, choose Customize.
That will be take you into the theme customizer, where you can find the Additional CSS tool.

Remember, these custom CSS changes are kept with your theme, so will be lost if you change themes.
This external article covers the basics of the customizer, and as always, your can refer to the official WordPress documentation for a detailed list of the options.
Using a Third Party Plugin
There are third party plugins that allow you to add additional styles to your theme without editing the core theme files. They often allow you to target changes to only specific form pages, and it may keep your changes intact, even if you decide to switch themes or your theme provider issues an update.
The Custom CSS & JS Pro plugin by SilkyPress.com is a well established plugin with good supporting documentation. There are also other plugins that do similar things. Try searching our community plugins library or the WordPress plugin directory.
Modifying style.css
If you are comfortable with editing and modifying cascading style sheets (CSS), then you can make custom site wide changes to how your Gravity Forms are displayed by manipulating your theme』s style.css file. We recommended this approach only for users with at least moderate CSS experience, as the interactions and complexity of style sheets can mount up quickly.
The location of the style.css file is not consistent across the many themes available. Often the theme』s style.css file is located in the in the root (or top level) of the theme folder on the web server hosting your site, but theme developers can choose to place them somewhere else within their theme』s folder structure. Check out this article (external site) for some advice on how to locate and access the theme』s CSS file.
Remember: Your first step should always be to back up the CSS file before you modify it!
We cannot really advise where to put your style additions within your style.css file, as their organization varies immensely from theme to theme. If in doubt, or your changes do not seem to be working, review any documentation that accompanies your theme, or contact your theme provider.