GFPaymentAddOn

GFPaymentAddOn

IntroductionGetting StartedCreating Plugin Settings for Payment FeedsCreating Feed Settings Fields for Payment FeedsProducts and Services ExampleSubscriptions ExampleHelper Functions for Adding/Removing/Replacing Default FieldsModifying Default FieldsBilling Info FieldsBilling Cycle IntervalsMain Functionalityredirect_url()Parametersauthorize()ParametersReturnscapture()ParametersReturnssubscribe()ParametersReturnscancel()callback()post_callback()

Introduction
The GFPaymentAddOn class provides basic functionality for developers when creating new add-ons for Gravity Forms that collect payments. It handles payments which redirect to a third-party website (e.g., PayPal Standard) and payments which are made using a credit card with the transaction hidden behind-the-scenes (e.g., Authorize.Net, PayPal Payments Pro, and Stripe). The GFPaymentAddOn class extends the GFFeedAddOn class which gives you the functionality from that class and also the functionality from the GFAddOn class.
The GFPaymentAddOn class uses functionality similar to the GFAddOn. View the GFAddOn』s documention for Initialization, Results Page, and Uninstalling for more information on how to use this functionality in the GFPaymentAddOn class.
Getting Started
These are the first steps you』ll need to take to create an add-on using the Payment Add-On Framework:

Include the Payment Add-On Framework files by calling the following:
GFForms::include_payment_addon_framework();

Inherit the Payment Add-On Framework by creating a new class which extends GFPaymentAddOn :
class GFPayPal extends GFPaymentAddOn {}

Add the class variables to configure the add-on. The list below are variables specific to the payment framework. There are other variables needed which are documented in the GFAddOn class variables section.

$_supports_callbacks boolean
If set to true, callbacks/webhooks/IPN will be enabled and the appropriate database table will be created.

$_requires_credit_card boolean
If set to true, the user will not be able to create feeds for a form until a credit card field has been added.

$redirect_url string
For payment add-ons that send users to an external website to submit payment (i.e. PayPal Standard), use this class variable to specify the URL of the payment page.

Example:
if ( method_exists( 'GFForms', 'include_payment_addon_framework' ) ) {
GFForms::include_payment_addon_framework();
class GFPayPal extends GFPaymentAddOn {
protected $_version = "2.3.7";
protected $_min_gravityforms_version = "1.8.12";
protected $_slug = 'gravityformspaypal';
protected $_path = 'gravityformspaypal/paypal.php';
protected $_full_path = __FILE__;
protected $_title = 'Gravity Forms PayPal Standard Add-On';
protected $_short_title = 'PayPal';
protected $_supports_callbacks = true;
protected $_requires_credit_card = false;
}
}

Creating Plugin Settings for Payment Feeds
Review the article Creating Plugin Settings for more details on adding plugin settings.
Creating Feed Settings Fields for Payment Feeds
The Payment Framework automatically adds key fields to the Feed Settings page. You may add the feed_settings_fields() function to your add-on and override the base function.
The key fields automatically added are as follows:

Feed Name
Text box labeled 「Name」 so you may uniquely identify your payment feed.

Transaction Type
Drop down populated with the types 「Products and Services」 and 「Subscriptions」.

Payment Amount
This is only available when the transaction type is 「Products and Services」.
Drop down populated with the option 「Form Total」. If there are products on the form, the product fields will also be populated in the drop down. Form Total is selected by default.

Subscription Settings
These are only available when the transaction type is 「Subscription」.

Recurring Amount
Drop down populated with the option 「Form Total」. If there are products on the form, the product fields will also be populated in the drop down.
Billing Cycle
The choices available are days (1-365), weeks (1-52), months (1-12), years (1-10).
Recurring Times
The choices available are infinite or 2-100. This is the number of times the payment will occur.
Setup Fee
When enabled, a drop down appears for you to select which product field is used as the setup fee. The 「Trial」 option is not available when this is enabled.
Trial
When enabled, a drop down appears for you to select which product field is used at the Trial amount. You also have to ability to manually enter an amount instead of using a product field on the form.

Billing Information

Email
Address
Address 2
City
State
Zip
Country

Options
Displays a 「Sample Option」 checkbox for you to modify to your needs.

Conditional Logic
Displays an 「Enable Condition」 checkbox which when clicked provides the functionality for selecting a conditional logic match using 「All」 or 「Any」 with the ability to select fields on the form, a condition (is, is not, greater than, less than, contains, starts with, ends with) and an input to set the matching data.

Products and Services Example

Subscriptions Example

Helper Functions for Adding/Removing/Replacing Default Fields
There are several helper functions that you may use to remove, modify, and add fields.

add_field_before()
add_field_after()
remove_field()
replace_field()

Modifying Default Fields
The default values for some of the fields may not be appropriate for your add-on. Below are a few you may modify.
Billing Info Fields
You may override the function billing_info_fields() to set your own fields for billing.
public function billing_info_fields() {
$fields = array(
array( 'name' => 'email', 'label' => __( 'Email', 'gravityforms' ), 'required' => false ),
array( 'name' => 'zip', 'label' => __( 'Zip', 'gravityforms' ), 'required' => false ),
);
return $fields;
}

Billing Cycle Intervals
You may override the function supported_billing_intervals() to set your own intervals to be used.
public function supported_billing_intervals() {
//authorize.net does not use years or weeks, override framework function
$billing_cycles = array(
'day' => array( 'label' => __( 'day(s)', 'gravityforms' ), 'min' => 7, 'max' => 365 ),
'month' => array( 'label' => __( 'month(s)', 'gravityforms' ), 'min' => 1, 'max' => 12 )
);

return $billing_cycles;
}

Main Functionality
Like the GFAddOn class, the Payment Framework contains many features that can be activated by overriding functions in the GFPaymentAddOn class. To override a function, add a function with the same name (and arguments) as the function in the base class.
redirect_url()
Override this method to specify a URL to the third party payment processor. Useful when developing a payment gateway that processes the payment outside of the website (i.e. PayPal Standard). Returns a full URL (including http:// or https://) to the payment processor.
protected function redirect_url( $feed, $submission_data, $form, $entry ) {}

Parameters

$feed Feed Object
Active payment feed containing all the configuration data. The properties will change dependent on the add-on.

$submission_data Submission Data
Contains form field data submitted by the user as well as payment information (i.e. payment amount, setup fee, line items, etc…)

$form Form Object
Current form array containing all form settings.

$entry Entry Object
Current entry array containing entry information (i.e data submitted by users).

authorize()
Override this method to add integration code to the payment processor in order to authorize a credit card with or without capturing payment. This method is executed during the form validation process and allows the form submission process to fail with a validation error if there is anything wrong with the payment/authorization. This method is only supported by single payments. For subscriptions or recurring payments, use the subscribe() method. Returns an array of the authorization information.
protected function authorize( $feed, $submission_data, $form, $entry ) {}

Parameters

$feed Feed Object
Active payment feed containing all the configuration data. The properties will change dependent on the add-on.

$submission_data Submission Data
Contains form field data submitted by the user as well as payment information (i.e. payment amount, setup fee, line items, etc…).

$form Form Object
Current form array containing all form settings.

$entry Entry Object
Current entry array containing entry information (i.e data submitted by users). Note: the entry hasn』t been saved to the database at this point, so this $entry object does not have the 『ID』 property and is only a memory representation of the entry.

Returns
An associative array with the following properties:

is_authorized boolean

error_message string

transaction_id string

If the payment is captured in this method, returns a 『captured_payment』 array with the following information about the payment:

captured_payment array

is_success – boolean
error_message – string
transaction_id – string
amount – float

capture()
Override this method to capture a single payment that has been authorized via the authorize() method. Use only with single payments. For subscriptions, use subscribe() instead. Return an array with the information about the captured payment.
protected function capture( $authorization, $feed, $submission_data, $form, $entry ) {}

Parameters

$authorization array
Contains the result of the authorize() function.

$feed Feed Object
Active payment feed containing all the configuration data. The properties will change dependent on the add-on.

$submission_data Submission Data
Contains form field data submitted by the user as well as payment information (i.e. payment amount, setup fee, line items, etc…).

$form Form Object
Current form array containing all form settings.

$entry Entry Object
Current entry array containing entry information (i.e data submitted by users).

Returns
Returns an associative array with the information about the captured payment in the following format:

is_success boolean

error_message string

transaction_id string

amount float

payment_method string

subscribe()
Override this method to add integration code to the payment processor in order to create a subscription. This method is executed during the form validation process and allows the form submission process to fail with a validation error if there is anything wrong when creating the subscription.
protected function subscribe( $feed, $submission_data, $form, $entry ) {}

Parameters

$feed Feed Object
Active payment feed containing all the configuration data. The properties will change dependent on the add-on.

$submission_data Submission Data
Contains form field data submitted by the user as well as payment information (i.e. payment amount, setup fee, line items, etc…).

$form Form Object
Current form array containing all form settings.

$entry Entry Object
Current entry array containing entry information (i.e data submitted by users). Note: the entry hasn』t been saved to the database at this point, so this $entry object does not have the 『ID』 property and is only a memory representation of the entry.

Returns
An associative array with the following properties:

is_success boolean

error_message string

subscription_id string

amount float

To implement an initial/setup fee for gateways that do not support setup fees as part of subscriptions, manually capture the funds for the setup fee as a separate transaction and send that payment information in the following property:

captured_payment array

name – string
is_success – boolean
error_message – string
subscription_id – string
amount – float

cancel()
Override this method to add integration code to the payment processor in order to cancel a subscription. This method is executed when a subscription is canceled from the Payment Gateway (i.e. Stripe or PayPal).
protected function cancel( $entry, $feed ) {
return false;
}

callback()
Override this method to add code to handle processing the callback/webhook/IPN request.
protected function callback() {}
Return an associative array with the following properties:

id string
The event ID.

type string
The action type. Possible values: complete_payment, refund_payment, fail_payment, add_pending_payment, void_authorization, create_subscription, cancel_subscription, expire_subscription, add_subscription_payment, fail_subscription_payment, or a custom event type.

amount integer|float
The transaction amount.

transaction_type string
The type of transaction which occurred.

transaction_id string
The transaction ID.

subscription_id string
The subscription ID.

entry_id integer
The ID of the entry which created the transaction.

payment_status string
The payment status.

note string
The note to be added to the entry.

callback string
The function to be used to process the custom event type.

post_callback()
Override this method to add code to handle post processing of the callback.
protected function post_callback( $callback_action, $result ) {}

Gravity Forms License Types

Gravity Forms License Types

IntroductionCurrent License TypesOther Licenses TypesLegacy License TypesAdditional Info

Introduction

This article contains a brief overview of all the major license types that Gravity Forms has offered. Note that some of these licenses are no longer available for purchase, or may be limited in their availability. Refer to our pricing and features page for all currently available licenses.

Current License Types

Currently we offer the following licenses for sale through GravityForms.com:

Gravity Forms Basic LicenseGravity Forms Pro LicenseGravity Forms Elite License

Refer to our pricing page for a list of currently available licenses. That page overrides anything in this document, and may be updated or modified from time to time without notice.

FeatureBasicProEliteAccess to Support?Yes, Standard SupportYes, Standard SupportYes, Priority SupportAccess to Add-Ons?Basic add-onsBasic and Pro add-onsBasic, Pro and Elite add-onsSite Limit13UnlimitedPermitted on Multi-site installations?NoNoYes

For a list of specific add-ons and their category, refer to our Gravity Forms website Add-On page.

Other Licenses Types

We sometimes offer licenses in partnership with external parties, and they include different benefits.

FeatureGravityView StarterGravity Flow StarterGoDaddy StarterAccess to Support?Yes, Standard SupportYes, Standard SupportNoAccess to Add-Ons?NoneNoneNoneSite Limit111Permitted on Multi-site installations?NoNoNo

Legacy License Types

These licenses were offered in the early days of Gravity Forms, but are not longer for sale. For those customers who previously purchased them, we do allow upgrades to current licenses, as well as maintaining the legacy licenses by keeping up to date with all renewal payments. Refer to our Legacy License FAQ for more details.

Gravity Forms Personal Legacy LicenseGravity Forms Business Legacy LicenseGravity Forms Developer Legacy License

FeaturePersonalBusinessDeveloperAccess to Support?Yes, Standard SupportYes, Standard SupportYes, Priority SupportAccess to Add-Ons?NoBasic add-onsBasic, Pro and Elite add-onsSite Limit13UnlimitedPermitted on Multi-site installations?NoNoYes

Additional Info

Refer to our terms and conditions for important additional information.

gform_zohocrm_lead

gform_zohocrm_lead

DescriptionUsageParametersExamples1. Change Email Opt Out2. Set Owner based on country3. Set the Layout4. Preserve Lead Source on UpdatePlacementSource Code

Description
This filter can be used to modify the lead arguments before they are sent to Zoho CRM.
Usage
The following would apply to all feeds:
add_filter( 'gform_zohocrm_lead', 'your_function_name', 10, 4 );

To target feeds for a specific form append the form id to the hook name. (format: gform_zohocrm_lead_FORMID)
add_filter( 'gform_zohocrm_lead_4', 'your_function_name', 10, 4 );

Parameters

$lead array
The lead arguments are an associative array.
array(
'Email Opt Out' => 'false',
'Description' => 'some text',
'Lead Source' => 'Advertisement',
'Lead Status' => 'Not Contacted',
'Rating' => 'Acquired',
'SMOWNERID' => 'The-Zoho-CRM-User-ID-Here',
'options' => array(
'duplicateCheck' => '1',
'isApproval' => 'false',
'wfTrigger' => 'false'
),
)

$feed Feed Object
The feed currently being processed.

$entry Entry Object
The entry currently being processed.

$form Form Object
The form currently being processed.

Examples
1. Change Email Opt Out
This example shows how you can change the 『Email Opt Out』 setting based on a field value in the Entry Object.
add_filter( 'gform_zohocrm_lead_4', 'change_lead_argument', 10, 4 );
function change_lead_argument( $lead, $feed, $entry, $form ) {
if ( rgars( $feed, 'meta/feedName') == 'Zoho CRM Feed 2' && rgar( $entry, '5' ) == 'No' ) {
$lead['Email Opt Out'] = 'true';
}

return $lead;
}

2. Set Owner based on country
add_filter( 'gform_zohocrm_lead_9', 'change_lead_argument', 10, 4 );
function change_lead_argument( $lead, $feed, $entry, $form ) {
if ( rgars( $feed, 'meta/feedName' ) == 'Zoho Sales Inquiry' ) {

// get the selected country from field 4
$country = rgar( $entry, '4' );

// define an array containing the countries and the zoho crm id to be used for that country
$owners = array(
'Afghanistan' => 'The-Zoho-CRM-User-ID-Here',
'Albania' => 'The-Zoho-CRM-User-ID-Here',
);

// replace the feed configured owner with the id by using the $country as the key to the value in the $owners array
$lead['SMOWNERID'] = rgar( $owners, $country );
}

return $lead;
}

3. Set the Layout
This example shows how you can define the Layout the lead should use for a specific feed of form 4.
add_filter( 'gform_zohocrm_lead_4', function( $lead, $feed, $entry, $form ) {
if ( rgars( $feed, 'meta/feedName') == 'Zoho CRM Feed 2' ) {
$lead['Layout'] = array( 'name' => 'the layout name here', 'id' => 'the layout id here' );
}

return $lead;
}, 10, 4 );

4. Preserve Lead Source on Update
This example shows how you can preserve any existing Lead Source in Zoho for all feeds on form 33.
add_filter( 'gform_zohocrm_lead_33', function( $lead, $feed, $entry, $form ) {
unset( $lead['Lead_Source'] );

return $lead;
}, 10, 4 );

Placement
This code should be placed in the functions.php file of your active theme.
Source Code
gf_apply_filters( 'gform_zohocrm_lead', $form['id'], $lead, $feed, $entry, $form )

This filter is located in GFZohoCRM::create_lead() in class-gf-zohocrm.php.

Gravity Forms 2.5 Key Features

Gravity Forms 2.5 Key Features

SummaryMajor New FeaturesImproved Front-End AccessibilityForm Editor New UI designDrag and Drop ColumnsSettings and Admin New UI DesignSettings APIComplete Revamp of CSS StylesUpdates to MarkupTheme IntegrationOther Form Editor EnhancementsKnown Limitations

Summary

This article lists some of the key features you will most likely notice immediately when checking out the brand new Gravity Forms 2.5.

For an up-to-date list of all features, refer to the Gravity Forms official change log.

Refer to our FAQ for questions about the rollout process.

Major New Features

Improved Front-End Accessibility

Ethically and legally, creating accessible forms is becoming more and more essential, and an area we have publicly stated our commitment to enhance. 2.5 provides many improvements and sets all designers on a better path to easily creating accessible forms for your users – helping you to engage with all your audience and boosting your form submissions.

For more on improving the accessibility off your forms, refer to our comprehensive Accessibility knowledge base.

Form Editor New UI design

The form editor has been given a new look more familiar to WordPresses Gutenberg look and feel. Field Settings have been moved out of the form area to a right-side panel, which allows the form editor area to be the focus of your layout, and allowed us to introduce a new UI feature of…

Drag and Drop Columns

The Form Editor now supports drag and drop for up to 4 columns, allowing you to manage your form layout in a more intuitive way directly within the editor.

Settings and Admin New UI Design

The Gravity Forms settings screens and controls have been completely reworked with a modern look and feel for both layout and the standard controls. This improvement will also be worked across all our add-ons in time as well.

Settings API

We have added an API for Settings management. Stay tuned for more information on this.

Complete Revamp of CSS Styles

This version brings a major revamp of CSS styles, which have been rewritten to be far less strict. This is to make styles easier to customize and it allows the theme to control the look of the form.

For a good overview of many of the style and markup changes, refer to our Guide for Theme Developers.

Updates to Markup

The markup has been overhauled to accommodate a number of accessibility enhancements and better organization moving forward. Refer to this article for information on what has changed.

The previous Gravity Forms markup, now referred to as legacy markup, will continue to work for all old forms, but it is targeted for deprecation in a future release. For now though, existing forms will automatically use the legacy markup, while new forms created under 2.5 will use the new markup.

Using legacy markup for a newly created form can be enabled with the new legacy markup Form Setting.

Theme Integration

The Gravity Forms team has worked with a wide assortment of theme developers to help ensure that 2.5 works with many popular WordPress themes straight out of the box. That obviously does not mean they all will be, or that all themes will be updated at launch, but we are working to get the word out and ensure this beta period allows theme developers time to test and update.

Other Form Editor Enhancements

We have included drag and drop support for touch devices and an improved conditional logic UI, including a fly out menu to allow more space for complex conditional logic sequences. There have been many minor tweaks also to the form editor to enhance design, performance, and usability.

Known Limitations

Some behaviors or previous methods may need to be changed. Refer to this article for a list of possible changes or feature design decisions that may affect existing setups or behaviors.

gform_zapier_sample_field_value

gform_zapier_sample_field_value

DescriptionUsageParametersExamplesBasic usageEmail Field ExamplePlacementSinceSource Code

Description
The gform_zapier_sample_field_value filter can be used to modify the sample field value before it is sent to Zapier.
Usage
add_filter( 'gform_zapier_sample_field_value', 'your_function_name', 10, 3 );

Parameters

$value string
The sample value to be modified.

$form_id integer
The ID of the form being processed.

$field_id string
The ID of the field being processed.

Examples
Basic usage
add_filter( 'gform_zapier_sample_field_value', 'zapier_sample_field_value', 10, 3 );
function zapier_sample_field_value( $value, $form_id, $field_id ) {

return 'the new value';
}

Email Field Example
The following example shows how you can replace the sample value used by the Email type field with your own custom sample value.
add_filter( 'gform_zapier_sample_field_value', function ( $value ) {
if ( $value === '[email protected]' ) {
$value = '[email protected]';
}

return $value;
} );

Placement
This code should be placed in the functions.php file of your active theme.
Since
This filter was added in version 1.9.1.
Source Code
This filter is located in GFZapier::get_body() in zapier.php.

Setting Up the Help Scout Add-On

Setting Up the Help Scout Add-On

Pre-RequisitesSetupStandardCustom Help Scout AppAdd-On Framework Hooks

Pre-Requisites

Download and install the add-onA Help Scout account

Setup

Standard

Log into your WordPress admin dashboard.On the left side navigation menu, hover over Forms and click on Settings.From this page, click the Help Scout tab.Click the Click here to authenticate with Help Scout. button to connect to your Help Scout account. If you wish to use a custom Help Scout app, see the instructions below.

Click the Authorize button on the Help Scout page to authorize the connection.Once you have successfully authenticated your account, you will see a green checkmark next to Authenticated with Help Scout.

Now you』re ready to begin creating a feed for the Help Scout Add-On.

Custom Help Scout App

If you wish to use a custom Help Scout app, follow these instructions:

Log into your WordPress admin dashboard.On the left side navigation menu, hover over Forms and click on Settings.From this page, click the Help Scout tab.Click I want to use a custom HelpScout app.. The page will reload with new OAuth and App fields.

The OAuth Redirect URI field will be filled in automatically.Enter in your App Key and App Secret. These are found in your Help Scout account under My Apps.

Click the Click here to authenticate with Help Scout. button to connect to your Help Scout account.Click the Authorize button on the Help Scout page to authorize the connection.Once you have successfully authenticated your account, you will see a green checkmark next to Authenticated with Help Scout.Now you』re ready to begin creating a feed for the Help Scout Add-On.

Add-On Framework Hooks

Because the Help Scout Add-On is built using the Add-On Framework it also inherits any hooks available in the framework methods it uses such as:

gform_short_slug_field_value for changing a field value before it is passed to Help Scout.

GFSignature

GFSignature

Descriptiongf_signature()get_signature_url()UsageParametersdelete_signature()UsageParameters

Description
GFSignature is the class which houses some of the functionality included by the Gravity Forms Signature Add-on; it extends the GFAddon class which is part of the add-on framework. Below are a few functions which you may find useful when working on your own custom code.
gf_signature()
The gf_signature() function is used to return an instance of the GFSignature class.
get_signature_url()
Returns the URL for the specified signature.
Usage
$signature_url = gf_signature()->get_signature_url( $filename );

Parameters

$filename string
The filename for this signature. The filename can be found in the Entry Object as the value for the signature field.

Returns string
The url for the specified signature.

delete_signature()
Initiates deletion of the signature file and updates the entry to remove the filename.
Usage
$result = gf_signature()->delete_signature( $entry_id, $field_id );

Parameters

$entry_id integer
The ID of the entry to be updated.

$field_id integer
The ID of the signature field.

Returns bool
Indicates if the entry field value was sucesfully updated.

Gravity Forms Notification Events

Gravity Forms Notification Events

Gravity FormsPayment Add-On EventsPayment CompletedPayment RefundedPayment FailedPayment PendingAuthorization VoidedSubscription CreatedSubscription CanceledSubscription ExpiredSubscription Payment AddedSubscription Payment FailedHelp Scout Add-OnPartial Entries Add-OnNoteUser Registration Add-On

Several notification events are available within Gravity Forms as well as additional add-ons. In this article, we will outline the notification events that are available to you.

Gravity Forms

EventDescriptionForm is submittedThe Form is submitted notification event does exactly what it says – sends a notification when a form is submitted. This is the default notification sent if you do not have any selections available within your installed add-ons.Form is savedWhen using the Save and Continue functionality on your form, this event becomes available. By using this event type, a notification will be sent any time a form is saved to be continued later.Save and continue email is requestedThis notification is sent each time an email containing the save and continue link is requested. Upon enabling Save and Continue within your form settings, a notification for this event is automatically created.

Payment Add-On Events

Payment Completed

Available in:

PayPal Checkout Add-OnPayPal Standard Add-OnPayPal Payments Pro Add-OnSquare Add-OnStripe Add-OnAuthorize.Net Add-On

The Payment Completed notification event will send the notification when a product and services payment has successfully been completed.

This is not to be confused with the Subscription Created event which will occur when a new subscription is created.

Payment Refunded

Available in:

PayPal Checkout Add-OnPayPal Standard Add-OnStripe Add-On

When a payment is refunded in PayPal or Stripe, the Payment Refunded event will trigger a notification.

Payment Failed

Available in:

PayPal Checkout Add-OnPayPal Standard Add-OnStripe Add-On

If a payment fails, any notifications configured for the Payment Failed event will be triggered.

Payment Pending

Available in:

PayPal Checkout Add-OnPayPal Standard Add-On

If a payment is pending, a notification will be sent to notifications with the Payment Pending event type.

Keep in mind that this notification only fires if you have your PayPal IPN correctly configured.

Authorization Voided

Available in:

PayPal Checkout Add-OnPayPal Standard Add-On

When a prior authorization has been voided, a notification will be sent to the notification methods with the Authorization Voided event type.

Subscription Created

Available in:

PayPal Standard Add-OnPayPal Payments Pro Add-OnStripe Add-OnAuthorize.Net Add-On

If you have a subscription configured, use the Subscription Created event type to send notifications when a new subscription is created.

Subscription Canceled

Available in:

PayPal Standard Add-OnPayPal Payments Pro Add-OnStripe Add-OnAuthorize.Net Add-On

If a subscription is canceled, notifications with the Subscription Canceled event type will be sent.

Subscription Expired

Available in:

PayPal Standard Add-OnPayPal Payments Pro Add-OnStripe Add-OnAuthorize.Net Add-On

If a subscription becomes expired, a notification will fire to any notifications with the Subscription Expired event type.

Subscription Payment Added

Available in:

PayPal Standard Add-OnPayPal Payments Pro Add-OnStripe Add-OnAuthorize.Net Add-On

Each time a payment is made within a subscription, the Subscription Payment Added notification event will be triggered.

Subscription Payment Failed

Available in:

PayPal Standard Add-OnStripe Add-OnAuthorize.Net Add-On

If an existing subscription payment fails, the Subscription Payment Failed notification will be sent.

Help Scout Add-On

EventDescriptionConversation is createdThe Help Scout Conversation Created notification event will send a notification when a Help Scout conversation is created.

Partial Entries Add-On

EventDescriptionSavedThe Saved notification event will send a notification when a partial entry is saved for the first time. See note 1.UpdatedThe Updated event will send the notification when an update request for an existing partial entry is received. See note 2.

Note

Note that this is different from the Form is submitted event, or the Updated event in which the notification will fire for every partial entry update request.Bear in mind that many update requests can happen until the user submits the form or leaves the page, and they are fired by the Heartbeat API even if there』s not any new data in the form fields, therefore using this event can lead to multiple emails being sent.

User Registration Add-On

The following are the various notification events that are available when the User Registation add-on is being used.

EventDescriptionSite is createdThe Site is created event will send a notification when a new site is created within a WordPress Multisite installation.User is pending activationWhen a user is pending activation, the User is pending activation event can be used to send notifications when a user is added to the activation queue.User is activatedThe User is activated event is used to send notifications when a new user is activated on the site.User is registeredSends notifications when a user is updated on the site.User is updatedSend the entry to the Trash. Please note, the Trash is not automatically deleted. Deleting entries from the Trash will delete those entries permanently along with any files uploaded to them.User pending activation deletedSends the notification when the pending activation is deleted without being activated. Available with User Registration v4.4.4 and greater.

gform_zohocrm_post_create_contact

gform_zohocrm_post_create_contact

DescriptionUsageParametersExamplePlacementSinceSource Code

Description
Allows custom actions to be performed after creating the contact.
Usage
add_action( 'gform_zohocrm_post_create_contact', $contact_record, $contact, $feed, $entry, $form );

return $contact_id;

}

Parameters

$contact_record array
The contact record.

$contact array
The contact arguments.

$feed array
The feed object.

$entry array
The entry object.

$form array
The form object.

Example
add_action( 'gform_zohocrm_post_create_contact', 'action_after_contact_creation', 10, 5 );
function action_after_contact_creation( $contact_record, $contact, $feed, $entry, $form ) {
// Do your stuff
}

Placement
This code should be placed in the functions.php file of your active theme.
Since
This filter was added in Zoho CRM version 1.8.
Source Code
This filter is located in class-gf-zohocrm.php.

Gravity Forms 2.5 Release FAQ

Gravity Forms 2.5 Release FAQ

Frequently Asked QuestionsIs Gravity Forms 2.5 publicly released yet?What if I want it right now, can I download it?Does the new Form Editor use Gutenberg? What if I have disabled the block editor?Does the form editor have column support?Are there accessibility improvements?Are existing website forms backwards compatible?Will my existing custom theme or page builder work with Gravity Forms 2.5? Is there a change-log/feature list/bug list available?How do I report a bug or feedback?

Frequently Asked Questions

Is Gravity Forms 2.5 publicly released yet?

Yes! After multiple beta releases and a few Release Candidates, Gravity Forms 2.5 was released on 27th April, 2021. This release is staggered meaning the auto-update notices will roll out to our customers across a few weeks.

What if I want it right now, can I download it?

You can download it on-demand by logging into a Gravity Forms account and going to the Downloads area of your dashboard. You need to have an active license to download Gravity Forms.

Does the new Form Editor use Gutenberg? What if I have disabled the block editor?

The Gravity Forms editor does not use Gutenberg, but given WordPress』s commitment to the Gutenberg block editor aesthetic and usability, we have provided a similar user experience that feels native to the WordPress environment. Your use (or disabling of) the WordPress block editor has no affect on your Gravity Forms form editing environment.

Does the form editor have column support?

Yes! This much requested feature is now available. It currently supports up to 4 columns using drag-and-drop within the form editor. See this article on Working with Columns in the new Form Editor for more details.

Are there accessibility improvements?

Accessibility was a major focus of 2.5 product development, and trying to make the frontend forms as accessible as possible. We have made a lot of changes to the admin, but we can』t claim it』s fully accessible – yet! See these Kbase articles for more information on making compatible forms. This will continue to be an area of focus in future Gravity Forms releases as well, in keeping with our commitment to accessibility.

Are existing website forms backwards compatible?

Yes. Existing forms will default to use the same markup they』ve always used (called legacy markup). This means you don』t need to worry about existing forms when you install Gravity Forms 2.5.

Newly created forms will use the new markup but can be updated to use the legacy markup if required.

Will my existing custom theme or page builder work with Gravity Forms 2.5?

Our beta and RC phases were extended for over a year to give third party developers a chance to test and make updates to their products so they can work seamlessly with the new Gravity Forms. This was for the benefit of not just the huge library of third party add-ons that work with Gravity Forms, but also theme developers and third party page builders like Elementor, Beaver Builder, WPBakery, Oxygen or Divi. Many of these impose their styles and layout handlers on top of our markup, so when our layout or markup changes, they may need updating.

While many of our most popular third party plug-ins have been updated, we cannot provide any guarantee that all have done so for all scenarios. If you run into what looks like a new conflict using a theme or page builder (that you do not have when using the generic WP theme for example) after you upgrade, then reach out to the publisher of that plug-in and ask them if they are working on compatibility updates. Our talented Support Team can help you diagnose the issue (for example, running a conflict test), but you will still need to get back to the publisher for the any necessary tweaks.

Is there a change-log/feature list/bug list available?

There are a few different places you can get further information about Gravity Forms 2.5.

search this very document site!check out the many informative articles we published on Gravity Forms 2.5 during the beta period on the Gravity Forms blog.as always, keep an eye on the official Gravity Forms change log. see this document listing items that were deprecated in 2.5.

How do I report a bug or feedback?

Contact our talented Customer Support team.