Using the PayPal Checkout Add-On

Using the PayPal Checkout Add-On

IntroductionPrerequisitesSetup PayPal CheckoutSetup Your FormConfiguring a FeedViewing Sales ResultsTransaction Types SupportedPayPal Checkout Add-On HooksAdd-On Framework Hooks

Introduction
The Gravity Forms PayPal Checkout Add-On, when connected to the PayPal Checkout, allows you to quickly and easily accept payments from 286 million PayPal customers, in over 100 currencies and across 200 markets, with advanced Fraud Protection and unprecedented control.
This add-on was previously named PayPal Commerce Platform at version 1.0. Note that the filters do still use the _ppcp_ naming convention, and have not been changed to avoid any issues with existing hook users.
Prerequisites
You will need Gravity Forms version 2.4 or greater and the Gravity Forms PayPal Checkout Add-On installed and activated.
Because of the secure nature of capturing payment information, you will be required to install an SSL certificate on your web site if you have not already done so. You will also need to configure your WordPress site to work properly with SSL.
Contact your web host if you need assistance purchasing and configuring an SSL certificate.
If you need assistance configuring your WordPress site to work with SSL, we recommend the Really Simple SSL Plugin.
Setup PayPal Checkout
Learn how to setup the PayPal Checkout Add-on in our Setting Up The PayPal Checkout Add-On article.
Setup Your Form
Refer to the Setting Up A PayPal Checkout Compatible Form article for detailed instructions on how to setup your form to be compatible with the PayPal Checkout Add-on.
Configuring a Feed
See the Configuring A Feed For The PayPal Checkout Add-On article.
Viewing Sales Results
After creating a feed and making your first sale, you can view the results on the Sales Results page.  Review Viewing Sales Results article for more information.
Transaction Types Supported
The PayPal Checkout Add-on supports one-time payments (aka the Products and Services transaction type) and recurring payments (Subscriptions Transaction Type). You can also configure an Authorize and Capture transaction.
PayPal Checkout Add-On Hooks
The PayPal Checkout Add-On provides hooks that can be used to modify the default functionality or extend it. For more information, review the PayPal Checkout Add-On Hooks.
Add-On Framework Hooks
Because the PayPal Checkout 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 the PayPal Checkout.

Using the Akismet Add-on

Using the Akismet Add-on

IntroductionDescriptionPrerequisitesSetup AkismetMarked As SpamTesting Akismet FormsAkismet Hooks

Introduction

The official Gravity Forms Akismet Add-on provides a way to integrate your form with the Akismet service, allowing you to use that service to help identify suspicious or likely spam entries.

Description

Akismet is a spam filtering plugin for WordPress websites. It catches blog comments and pingback spam using its own algorithm and a broad collection of data collected from thousands of sources.

This algorithm learns from previous data and the actions taken by participating websites. For example, when a number of websites start reporting similar content as spam, Akismet will learn to identify this type of content as spam.

Akismet integration used to be part of Gravity Forms core but with the release of Gravity Forms, Akismet integration is now handled by the official Gravity Forms Akismet addon. Both integrations will work for the time being but the old method of integration will be phased out.

Prerequisites

To use the Akismet Add-On, you will require:

Gravity Forms plugin, and the official Gravity Forms Akismet Add-On.The Akismet Spam Protection plugin must be installed and active.Ensure the global Akismet setting under Gravity Forms → Settings page is toggled to On.

When all prerequisites are satisfied, a new Akismet page will be added to the Form Settings area of every form.

Setup Akismet

Refer to the Akismet Settings Reference article for a full list of add-on settings, and the Setting Up The Akismet Add-On for the process steps required to get up and running.

Marked As Spam

When Akismet marks an entry as spam the entry can still be found on the entries page, but it will be placed in the Spam category instead of Unread.

When you manually mark an entry as spam (by clicking the red Spam link as shown in the screenshot above) it will help train Akismet for similar entries moving forward. Akismet will take this information and uses it to improve its spam filtering process not only on your installation but across all websites. This help guide shows how to mark entries as spam.

Testing Akismet Forms

Entries submitted from a form preview will be processed by Akismet in test mode, which prevents those submissions from training the Akismet filters.Embedded forms submitted by logged in users will send the user role to Akismet. Akismet does not mark submissions by administrators as spam.

Akismet Hooks

Gravity Forms includes two filters which can be used to customize the Akismet integration:

gform_akismet_enabled which can be used to enable or disable the integration globally or for specific forms.gform_akismet_fields which can be used to modify the data which is sent to Akismet.

Using real form entries as Zapier test data

Using real form entries as Zapier test data

SummaryBackgroundCode Snippet

Summary
This article provides a code snippet that you can use to fetch actual form submissions from your entries table to see when you are testing out your Zapier Zap. This is to address a need that some Zapier users have requested with the release of the official Gravity Forms Zapier Add-On v4.
Background
It may seem like this ability existed before version 4, but in actual fact it was a somewhat happenstance. There was no way for Zapier to fetch sample data on demand so they listened for it instead. The Gravity Forms Zapier Add-On would send sample data to the zap URL when you saved the feed or when you saved changes to the form.
While the integration was never designed to use form submissions (entries) as sample data it was possible that if the form happened to be submitted at the time Zapier was listening for the sample data they would also pick up the real entry data as well.
The new version of the Gravity Forms app that is available on Zapier.com does not listen for incoming sample data. We have setup a registered API endpoint where the app can request the sample data on demand, but both the Zapier app and Gravity Forms add-on require updates to utilize it. This code snippet is a work around in the meantime.
Code Snippet
Add this to your theme』s functions.php file, or within any custom functions plugin you may be using.
This code snippet will override the response of the REST API request which gets the sample data with the latest real form entry.
/**
* Replaces the Gravity Forms Zapier sample entry response with the latest real entry, if available.
*
* @param WP_REST_Response $response The response to be returned.
* @param WP_REST_Server $server The current instance of the REST API server.
* @param WP_REST_Request $request The request which is currently in progress.
*/
add_filter( 'rest_post_dispatch', function ( $response, $server, $request ) {
if ( ! function_exists( 'gf_zapier' )
|| $response->get_status() !== 200
|| $request->get_method() !== 'GET'
|| empty( $request['form_id'] )
|| $request->get_route() !== "/gf/v2/forms/{$request['form_id']}/sample-entry"
|| ! GFAPI::current_user_can_any( 'gravityforms_view_entries' )
) {
return $response;
}

$entries = GFAPI::get_entries( $request['form_id'], array( 'status' => 'active' ), array(), array( 'page_size' => 1 ) );
if ( empty( $entries[0]['id'] ) ) {
return $response;
}

$form = GFAPI::get_form( $request['form_id'] );
$feed = array( 'meta' => array( 'adminLabels' => false ) );

return rest_ensure_response( gf_zapier()->get_body( $entries[0], $form, $feed ) );
}, 10, 3 );

If you need the entry data to use the field admin labels change 'adminLabels' => false to 'adminLabels' => true.

Using the Quiz Add-On

Using the Quiz Add-On

IntroductionPre-RequisitesOverviewAdding a Quiz FieldDefine Quiz Field SettingsConfigure Your Form-level Quiz SettingsDisplay Your QuizQuiz ResultsQuiz Merge Tags

Introduction

The Gravity Forms Quiz Add-On allows you to quickly create quizzes that are automatically scored and graded when the form is submitted.

The Quiz Add-On provides the special Quiz Field which is the building block of your quiz. A quiz to be graded either on a simple Pass/Fail scale or using a letter-grade system that you can customize. And remember, the Quiz Add-On allows you to add as many Quiz Fields as you would like to ANY form you choose!

Pre-Requisites

Download and install the Quiz Add-On (you may require the appropriate type of Gravity Forms license to access the add-on, refer to this page).Have a target form ready for where your quiz will go.

Overview

To get a quiz up and running, you will need to complete the following steps:

Add a quiz field to your form.Define all the required settings for your Quiz fieldRepeat steps 1 and 2 to add all the Quiz fields you require.Configure the form level quiz-related settings you want. Embed your Quiz form on a page or post. Check the Quiz results

Once you have your form with Quiz fields up and running, your attention will shift to

Adding a Quiz Field

If you have met the pre-requisites, the Quiz field is available under the Advanced Fields section within the Field Library on the Form Editor. Drag it onto the Layout Space.

Define Quiz Field Settings

The Quiz field comes with a lot of settings to help you define different question types, answer scoring and the behaviors. Refer to the Quiz Field User Guide for a full list of the available settings.

Configure Your Form-level Quiz Settings

There are form level settings that control the behavior of all quiz fields on your form.

Such as randomizing the presentation of quiz questions, and what type of grading you would like to use. When you add a Quiz Field to your form, a new section will automatically be added to the Form Settings that introduces Quiz Settings related to grading. Visit the Configure Quiz Settings article for details.

Display Your Quiz

The Gravity Forms Quiz Add-On offers a few methods to display your quiz form, such as the standard form shortcode, function, and a widget. Check out this list of articles for more information on adding a form to your site.

The Quiz Confirmation messages that you configure in the Quiz Settings will automatically be displayed after the Form Confirmation message when the form is submitted.

Quiz Results

This article reviews quiz results and where to find them.

Quiz Merge Tags

You can view quiz-specific merge tags in this article. For more information on the general use of merge tags, refer to these articles.

Using the Mollie Add-on

Using the Mollie Add-on

IntroductionPrerequisitesSetup MollieSetup Your FormSetting up a Mollie FeedViewing Sales ResultsImportant NotesMollie Add-On HooksAdd-On Framework Hooks

Introduction
The official Gravity Forms Mollie Add-On allows you to quickly and easily capture one-time credit card payments with WordPress and your Mollie account.
Prerequisites

You will of course need Gravity Forms and the official Gravity Forms Mollie Add-On installed and activated.
SSL Certificate Installed and Configured
Publicly Accessible Website (for installation and testing)
A Mollie account

Because of the secure nature of capturing credit card information, you will be required to install an SSL certificate on your web site if you have not already done so. You will also need to configure your WordPress site to work properly with SSL.
Contact your web host if you need assistance purchasing and configuring an SSL certificate.
If you need assistance configuring your WordPress site to work with SSL, we recommend the WordPress HTTPS (SSL) Plugin which you can find here: http://wordpress.org/extend/plugins/wordpress-https/
Setup Mollie
Learn how to setup the Mollie Add-on in our Setting Up the Mollie Add-on article.
Setup Your Form
Refer to the Setting up a Mollie Compatible Form article for detailed instructions on how to setup your form to be compatible with the Mollie Add-on.
Setting up a Mollie Feed
Now that you have configured the Mollie Add-on to work with your Mollie account, and you have a form configured, it』s time to bring it all together by configuring the form to send it』s submissions to Mollie. Just like all of our Gravity Forms Add-ons, this is done by creating a feed.
Review our Creating a Feed for the Mollie Add-on article for step-by-step instructions.
Note that a pre-configured feed will be created in the Form Settings > Mollie area when a form containing a Mollie Field is saved, and a feed does not already exist.

Viewing Sales Results
After creating a feed and making your first sale, you can view the results on the Sales Results page.  Review Viewing Sales Results article for more information.

Important Notes

Only one-time credit card payments (Products and Services transaction type) are supported with the Mollie Add-on. Recurring payments (Subscriptions) are not supported in our Mollie Add-On at this time. Let us know how important creating subscriptions is to you on our roadmap.
The currency setting for your Mollie Account must match your Gravity Forms Currency Setting. Whichever Currency setting you have configured in Gravity Forms will define the payment methods available in the Mollie Field.
You cannot refund the same amount twice from Mollie. This is a known issues with the Mollie Dashboard: the refund modal will remain with a spinner and no errors message displayed. This isn』t really a Gravity Forms Add-on Issue, but an issue with refunds from within Mollie and the Refund Webhook communication.
Credit Card payments without 3D Secure do not receive a refund webhook. This means the payment status of entries won』t be updated if the payment is refunded from Mollie.

Mollie Add-On Hooks
The Mollie Add-On provides hooks that can be used to modify the default functionality or extend it. For more information, review the Mollie Add-On Hooks.
Add-On Framework Hooks
Because the Mollie 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 Mollie.

Using the Gravity Forms 「gform_validation」 Hook

Using the Gravity Forms 「gform_validation」 Hook

The PremiseGetting StartedThe Validation ResultGetting the Current PageLooping Through the FieldsFind Field by CSS ClassGetting the Field Page NumberIs the Field Hidden?Skip Field If…Retrieve & Validate the Submitted ValueCheck If the Field Value is ValidUh, oh! It Failed Validation!Assign the Modified Form Back to the Validation ResultReturn the Validation Result

The Premise
Let』s imagine that we』re building some sort of car related website. On this fictional website we have a Gravity Form that allows you to register cars you own and part of that registration is a field for the VIN number of the vehicle. So how do we ensure that the user is entering a valid VIN number? Yup. The gform_validation hook.
Getting Started
The first step is to tie our custom validation function to the gform_validation filter.
// 1 - Tie our validation function to the 'gform_validation' hook
add_filter( 'gform_validation_9', 'validate_vin' );

This line is just us telling Gravity Forms that whenever it validates the form submission, we』d like it to also run our custom validate_vin function as well. In addition, since this is a filter and not an action (read more about the difference here) we』re also telling Gravity Forms that we』d like to modify the validation result and continuing processing the rest of the validation with those modifications preserved.

Note: You』ll notice we』ve appended a 『9』 to the end of the 『gform_validation』 filter name. This means that we only want to trigger our custom validation function from form ID 9. No sense in running an extra function on every form submission if we only need it on one specific form. Just replace the 9 with the ID of the form you』d like to target.*

The Validation Result
When Gravity Forms calls our custom function it will pass an array containing two important items for form validation.

$validation_result[『is_valid』] This property will be either true or false and indicates whether or not the form has failed any of Gravity Forms』 default validation checks. You』ll see this again on step 13.
$validation_result[『form』] This property contains the Form Object which itself contains an array of all the fields created for this form.

// 2 - Get the form object from the validation result
$form = $validation_result['form'];

With that said, all we』re doing here is setting the form object from the validation result to a local variable that will be easier to read and use.
Getting the Current Page
// 3 - Get the current page being validated
$current_page = rgpost( 'gform_source_page_number_' . $form['id'] ) ? rgpost( 'gform_source_page_number_' . $form['id'] ) : 1;

If you aren』t using multi-page forms, this step doesn』t apply to you but it wouldn』t hurt to know how it works.
When you submit a page on a multi-page form, Gravity Forms will populate some additional info in the $_POST global (read more here if you』re unfamiliar with the $_POST). One of those helpful bits of information is the source page number (aka the current page you are validating). We』ll use the rgpost function to retrieve the source page number from the $_POST.
So why is this important? Because if the field we want to validate is on page 2 of our form and the user just submitted page 1, that field will be blank and will fail the validation for the entire form preventing the user form progressing to the next page.
Looping Through the Fields
// 4 - Loop through the form fields
foreach( $form['fields'] as &$field ) {

As mentioned earlier, the Form Object contains an array of fields created for that form. Using a loop we can go through each field one by one and run a series of checks and conditions to determine if it is a field that should be validated for a VIN number.

Note: You』ll see continue in a couple places in the code within the loop. This means that we want to skip the rest of the loop for whatever field we are on and move on to the next field.*

Find Field by CSS Class
// 5 - If the field does not have our designated CSS class, skip it
if ( strpos( $field->cssClass, 'validate-vin' ) === false ) {
continue;
}

In this example, we』re looking for a specific string based on the field』s CSS class property. We could change this to check by field ID or any other field property, but I』ve found that the CSS class is a user friendly way of quickly adding custom validation functionality to most fields. Basing this check on field ID would have the drawback of requiring a code change if you ever needed to remove the field and apply the custom validation to a different field. With the CSS class technique, you can simply add the designated CSS class to the new field from the Gravity Form editor. The designated class we』re using here is validate-vin.
If validate-vin CSS class is not present on the current field, we will skip it and move on to the next field. If the field does have the validate-vin class, we know that this is a field we』ve marked for VIN validation and we』ll proceed to the next step.
Getting the Field Page Number
// 6 - Get the field's page number
$field_page = $field->pageNumber;

This step is also multi-page form specific.
When using the multi-page functionality, each field has a pageNumber property which stores the page number on which that field is displayed. We』ll be using this variable on step 8.
Is the Field Hidden?
// 7 - Check if the field is hidden by GF conditional logic
$is_hidden = RGFormsModel::is_field_hidden( $form, $field, array() );

It』s important to know whether or not the field we are validating is hidden by Gravity Form』s conditional logic. Hidden fields should not be validated because they are not part of the form submission.
Gravity Forms provides a handy public function that you can use to determine if a field is hidden: RGFormsModel::is_field_hidden(). To use this function all you need is a Form Object and a field to check.
Skip Field If…
// 8 - If the field is not on the current page OR if the field is hidden, skip it
if ( $field_page != $current_page || $is_hidden ) {
continue;
}

The previous two steps we gathered some information about the current field. Now we』re putting that information to use. If the field is not on the current page OR if the field is hidden, we don』t want to run our VIN validation function on it. Instead, we』ll continue on to the next field in the loop.
Retrieve & Validate the Submitted Value
// 9 - Get the submitted value from the $_POST
$field_value = rgpost( "input_{$field['id']}" );

// 10 - Make a call to your validation function to validate the value
$is_valid = is_vin( $field_value );

So… if the field gets to this point we know that it:

has the designated validation CSS class
is on the current page being validated
and is not hidden

We』re now ready to retrieve and validate the submitted value for this field. Let』s retrieve the value of of the field using the rgpost function (which is a clean way of retrieving values from the $_POST). The string we』re passing to this function would look something like 「input_48」 if we weren』t dynamically populating the field ID using the current field』s ID property.

Note: This method for retrieving the field value will work for most fields. Known exceptions are checkboxes and fields with multiple inputs. We will cover those later as an addition to this walk-through.*

Next, we create an $is_valid variable and assign it the result of our VIN validation function. We pass is_vin() our field value and it returns a true/false value indicating whether the submitted value is a valid VIN number.
Check If the Field Value is Valid
// 11 - If the field is valid we don't need to do anything, skip it
if ( $is_valid ) {
continue;
}

If the submitted value is valid, then we don』t need to update any of the validation properties for this field. It』s good to go!
If you are only validating one field for the VIN number (which is likely the case) you could technically stop here and return the unmodified validation result; however, for the sake of explanation and making this code sample as useful as possible, let』s assume that you』re validating multiple fields. That means we』d skip the rest of the code for this field and start back with the next field at the very top of the loop.
Uh, oh! It Failed Validation!
Ok, so we made it all the back to the is_vin() validation function on the next VIN field… but this one failed validation. What do we do now?
// 12 - The field field validation, so first we'll need to fail the validation for the entire form
$validation_result['is_valid'] = false;

// 13 - Next we'll mark the specific field that failed and add a custom validation message
$field->failed_validation = true;
$field->validation_message = 'The VIN number you have entered is not valid.';

Well, first since we know that there is a validation error on the form, let』s make sure we mark the $validation_result is_valid property as false. When we return our modified validation result, this property is how Gravity Forms knows to look for validation errors on the individual fields.
Next, we』re going to mark the $field failed_validation property as true, because, well… it did! In addition, we』ll want to provide a custom validation message so the user filling out the form will know what the problem is.
Assign the Modified Form Back to the Validation Result
// 14 - Assign our modified $form object back to the validation result
$validation_result['form'] = $form;

This step is super important! We』ve updated a field of this form with validation failure details but if we don』t assign the Form Object back to the form property of the $validation_result, Gravity Forms won』t know which field had the error.
Return the Validation Result
// 15 - Return the validation result
return $validation_result;

And finally, we return the modified (or perhaps unmodified if no validation errors were found) $validation_result back to Gravity Forms. Assuming that a field did fail validation, Gravity Forms will now prevent the form from submitting successfully and mark each field that has a validation error with its corresponding validation message.

Including and Using Entry Meta with the Add-On Framework

Including and Using Entry Meta with the Add-On Framework

Introductionget_entry_meta()PropertiesExampleSaving a value to the Entry Meta keyAccessing the Entry Meta ValueDeleting the Entry Meta Value

Introduction
Entry meta data is custom data that』s stored and retrieved along with the entry object. For example, entry meta data may contain the results of a calculation made at the time of the entry submission, or a unique id for a subscriber returned by a mailing list service.
Any add-on which extends GFAddon, GFFeedAddOn, or GFPaymentAddOn can add custom entry meta.
get_entry_meta()
To add entry meta, override the get_entry_meta() function and return an associative array with the properties for each meta key your add-on is including.
Properties

label string
The label for the entry meta item.

is_numeric boolean
Used for sorting.

is_default_column boolean
Default columns appear in the entry list by default. Otherwise the user has to edit the columns and select the entry meta from the list.

update_entry_meta_callback string
The function that should be called when updating this entry meta value.

filter array
An array containing the configuration for the filter used on the results pages, the entry list search, and export entries page.
The array should contain one element: operators. e.g. 『operators』 => array( 『is』, 『isnot』, 『>』, 『<『 ) Example public function get_entry_meta( $entry_meta, $form_id ) { $entry_meta['simpleaddon_contact_id'] = array( 'label' => 'Simple Add-On Contact ID',
'is_numeric' => true,
'is_default_column' => true,
'update_entry_meta_callback' => array( $this, 'update_entry_meta' ),
'filter' => array(
'operators' => array( 'is', 'isnot', '>', '<' ) ) ); return $entry_meta; } public function update_entry_meta( $key, $lead, $form ) { $return ''; // return the value of the entry meta } Saving a value to the Entry Meta key In this example we are using gform_update_meta() to store the contact id returned by the third-party service during feed processing in the entry meta. public function process_feed( $feed, $entry, $form ) { $contact_id = $this->create_contact( $feed, $entry, $form );
gform_update_meta( $entry['id'], 'simpleaddon_contact_id', $contact_id );
$entry['simpleaddon_contact_id'] = $contact_id;

return $entry;
}

Accessing the Entry Meta Value
If you have access to the Entry Object then you could access the meta value like so:
$contact_id = rgar( $entry, 'simpleaddon_contact_id' );

If you don』t have access to the Entry Object but you do have the entry id then you can access the value by using gform_get_meta() like so:
$contact_id = gform_get_meta( $entry_id, 'simpleaddon_contact_id' );

Deleting the Entry Meta Value
The gform_delete_meta() function can be used to delete the meta value from the entry like so:
gform_delete_meta( $entry_id, 'simpleaddon_contact_id' );

Using Calculations

Using Calculations

IntroductionCreating a calculation formulaNumber Formatting RulesTerminologyRules

Introduction

Calculations are available within a field when using a Number field with calculation enabled, or a Product field set to Field Type of Calculation. In this article, we will show you how to set up a calculation in a Number field, as well as go over some important rules on using number fields in calculations as well as the rules supporting different decimal formats.

Note: The Total field type cannot be used within calculations. Within this article, only Number fields are used.

You perform all the following steps from within the Form Editor.

Creating a calculation formula

We will generate a simple example of a calculation using two Number fields. 

Add 2 different number fields and name them First Number and Second Number.Save your form, it is important to do this so the newly added fields are available when setting up the calculation formula in later steps.Add a third Number field which will handle the result of the calculation. Name it Total.  Ensure that this field is positioned after the first two Number fields.Access the field settings of the Total field.Select the Enable Calculation checkbox to enable this field to be populated based on a calculation result. Once the Enable Calculation checkbox is selected, additional options will appear below it. See image (A) below. Access the field settings of the Total field. Click the button Insert Merge Tag and select your first field in the calculation. Note that only fields valid for use in calculations will be listed. See image (B) below.Add a mathematical operator. In this case, simple addition (+).Insert the Second Number field to complete the calculation. Check the calculation by clicking Validate Formula. If it says that your calculation is invalid, go back and take another look. See image (C) below.Your calculation is all set. Be sure you Save your form.

(A) Enabling calculations within your Number field titled 「Total」.

(B) Using a Merge Tag to insert your operands.

(C) Final formula

Number Formatting Rules

This section explains how to format numbers properly for product pricing and calculations.

Terminology

Decimal dot format: Number format where a dot is used as the decimal separator. Example: 5.20Decimal comma format: Number format where a comma is used as a decimal separator. Example: 5,20

Rules

When creating a calculation formula, all numbers manually entered in the formula must:

Be entered in decimal dot format**, and
Use a preceding 0 if required. Example: 0.2 is valid, 0,2 is not valid, .2 is not valid.

When entering number fields on a form on the front end of the site, users must enter the format configured for that number field, even if that field is being used in a calculation that uses a different number format.When using drop down or checkbox field types in a formula, the values must be formatted with the same format as the field containing the formula.For example, if you have a calculated number field in decimal comma format (i.e. 9.999,99) that has calculation formula that references a drop down field, the values of the drop down field must be also be in decimal comma format.If the number field is configured with a 「Currency」 Number Format, the drop down values must be formatted with the same decimal separator as the currency.When using a quantity drop down field to specify fractional values (i.e. 5.5), those numbers must be formatted with the same decimal separator as the site』s currency.​​​​​​Fields referenced in a calculation formula (1) must be positioned before the calculation field, and (2) must not be hidden by logic. This is because calculations are rerun during submission using saved values, and if the field hasn』t been saved yet or has been ignored due to logic at form submission, it won』t have a value available for the calculation, leaving the result either incorrect or empty.

User Registration Change Log

User Registration Change Log

4.9 | 2021-10-214.8 | 2021-04-284.7 | 2021-01-284.6 | 2020-09-304.5 | 2020-05-144.4 | 2019-09-254.3 | 2019-08-074.2 | 2019-07-104.1 | 2019-05-154.0 | 2018-12-193.9 | 2018-01-293.8 | 2017-10-263.7 | 2017-02-203.6 | 2017-01-053.5 | 2016-11-043.4 | 2016-08-313.3 | 2016-04-193.2 | 2016-03-083.1 | 2016-01-273.0 | 2016-01-202.0.2 | 2014-12-082.0.12.0 | 2014-11-051.9 | 2014-05-291.8 | 2014-03-311.7 | 2013-09-051.6 | 2013-06-191.5 | 2013-04-011.4 | 2012-03-271.3 | 2012-02-091.2.11 | 2011-11-011.2.101.2.9 | 2011-10-031.2.81.2.71.2.6.31.2.6.21.2.6.1 | 2011-07-201.2.6 | 2011-07-161.2.51.2.41.2.31.2.21.2.1 | 2011-04-291.2 | 2011-04-271.11.0 | 2011-03-231.0.beta5.31.0.beta5.21.0.beta5.11.0.beta51.0.beta41.0.beta3.21.0.beta31.0.beta1

4.9 | 2021-10-21

Fixed a typo in the text domain.
Fixed an issue that prevented the login widget from saving in the block-based widget editor.
Fixed an issue that prevented the sorting of files in the multi-file upload field.
Fixed an issue where Multi-File Upload fields don't correctly map to user meta values.
Fixed an issue where the login form was not styled correctly when using Gravity Forms 2.5.
Fixed an issue where the {set_password_url} merge tag can output an invalid URL on multisite.
Fixed an issue where user-submitted data doesn't get saved to the profiles of users activated via BuddyPress or BuddyBoss.

4.8 | 2021-04-28

Fixed an issue with untranslated strings on the activation page.
Fixed an issue where the values of BuddyPress fields that are mapped to form fields are not saved on user activation.
Fixed a fatal error which can occur during user activation.
Fixed an issue where the add-on icon is missing on the form settings pages in Gravity Forms 2.5.

4.7 | 2021-01-28

Fixed user permissions so users with the promote_users capability can now view the Pending Activations screen.
Fixed an issue where script tags were being output above document head element.
Fixed styling issues on the Pending Activations screen in Gravity Forms 2.5.
Fixed an issue where both success and error message where displayed when activating a user from the Pending Activations screen.
Fixed a typo in the tooltip for the Password setting on the feed configuration page.
Fixed an issue where MySQL throws an error on Entry Detail and Pending Activations screens.
Fixed an issue where the login form does not display non-standard authentication errors.
Fixed a fatal error which occurs on form population if the Consent field is mapped on the Update feed and the entry which last updated or created the user has been deleted.

4.6 | 2020-09-30

Added translations for Japanese.
Added support for Gravity Forms 2.5.
Updated the activation page query string to use the "gfur_activation" parameter instead of "page" to fix an issue with WordPress 5.5 where a 404 not found error occurs. Existing activation links will automatically redirect to the new page.
Fixed an issue where the password can fail validation on login if the user object is cached when the user is created and feed processing is delayed by the user activation feature or a payment add-on such as PayPal Standard.
Fixed an issue where the set password URL included in the notification sent on the user is activated event becomes invalid when the user is activated via the front-end activation page.
Fixed a validation error which occurs when using the update type feed and the submitted email address uses a different case to the users current email.
Fixed an issue that prevents the dropdown to select notification type in the "Send Email?" setting of a create user feed from displaying in certain situations.
Fixed an issue during user update for passwords containing quotes which results in a password validation error on login.
Fixed an issue during user creation for passwords containing quotes which results in a password validation error on login.
Fixed an issue where feed processing aborts early when the activation feature is enabled and the gform_user_registration_validation and gform_user_registration_check_email_pre_signup_activation filters are being used to allow multiple accounts to use the same email address.

4.5 | 2020-05-14

Added security enhancements.
Added translations for Hebrew, Hindi, and Turkish.
Added gform_user_registration_pending_activation_expiration filter that allows the expiration period for the pending activation users to be overridden.
Added support for sending notifications when the pending activation is deleted.
Updated the settings on the feed configuration page. See Creating a Feed for the User Registration Add-On for the available settings.
Updated the new user emails to be sent by wp_new_user_notification() instead of gf_new_user_notification().
Updated the default activation page template.
Updated Javascript files, stylesheets to use minified versions.
Fixed an issue introduced in v4.4.6 where WordPress does not send the new user email for new feeds.
Fixed a database error on multisite installations related to the WordPress signups table.
Fixed a notice with PHP 7.4 when creating a new feed.
Fixed a PHP notice being displayed when a custom meta value is not a string.
Fixed a PHP compatibility warning in PHP 7.1+ when getting the set password URL due to using $this within a plain function.

4.4 | 2019-09-25

Added support for Stripe Checkout to display the "User Registration Options" section in the feed.
Fixed an issue where a site cannot be updated when the subscription is canceled on a multisite install.
Fixed a PHP warning which occurs when an invalid form ID is used with the gravityform shortcode.

4.3 | 2019-08-07

Added security enhancements.

4.2 | 2019-07-10

Added security enhancements.

4.1 | 2019-05-15

Added gform_userregistration_associate_entry_with_user filter to add change if newly created user should be set as entry creator.
Updated minimum Gravity Forms version to 2.2.6.
Updated feed settings to display Set Post Author setting when form has Advanced Post Creation feeds.
Updated Login widget to set logout redirect to current page when logout redirect URL setting is left empty.
Fixed entry not being associated to newly created user when submitter is not logged in.
Fixed an issue with pending activation for duplicate emails.
Fixed PHP notice after Gravity Form 2.4.7 adding tab capabilities check.
Fixed an issue preventing the personal data retention policy from deleting entries.
Fixed an issue that the consent field didn't reflect user metadata correctly.
Fixed an issue populating checkbox fields from BuddyPress checkboxes types fields when processing the update type feed on form display.
Fixed issues processing multi-select fields when mapped to BuddyPress multi select box fields during submission for both feed types and on form display for the update type feed.
Fixed a PHP 7.3 warning when the update type feed is populating the form and it contains a file upload field.

4.0 | 2018-12-19

Added support for data retention in Gravity Forms 2.4.
Fixed an issue with login widget when using special characters in password.
Fixed an issue where the username, email, and password fields may not be validated on multi-page forms if the feed conditional logic is not met when the page containing those fields is submitted.
Fixed a deprecated function notice with PHP 7.2 when processing update type feeds on form display.
Fixed BuddyPress overriding the role after the user is created.
Fixed text domains for string translations.
Fixed the user_nicename being saved to the _usermeta table instead of the _users table.
Fixed an issue with the login form submission when the password contains the less than character.
Fixed a fatal error which occurred if the GFFormDisplay class is not available when getting the login form HTML.
Fixed an issue introduced in 3.9 which prevents the Pending Activations from being listed when the database tables are utf8 encoded instead of the newer utf8mb4.

3.9 | 2018-01-29

Added support for Gravity Forms 2.3.
Added GPL to the plugin header.
Added the "Preserve current email" choice to the email address mapping drop down on the update type feed.
Updated URIs in plugin header to use https.
Updated username validation message to match WordPress' equivalent validation message.
Updated strings in pending activations so they could be translated.
Fixed an issue which can prevent pending activations from being listed due to collation mismatch after installing the add-on after upgrading MySQL from 5.5 to 5.6.
Fixed a PHP warning related to the login form/widget logged in/out links.

3.8 | 2017-10-26

Added gform_userregistration_login_form filter to allow modifying the login form object.
Added gf_login_form class to login form wrapper.
Added validation error message to login form when an invalid email address is used.
Updated user meta shortcode to retrieve multiple user meta items when output is set to CSV or list.
Fixed multi-input field not being populated, in some situations, when processing update type feeds on form display.
Fixed issue where $user_id returned by gform_user_registration_update_user_id filter was not respected when updating a user.
Fixed a fatal error which could occur with PHP 7.1 when using a login widget without logged in and/or logged out links.
Fixed a fatal error which can occur when getting the BuddyPress fields.
Fixed a notice which could occur with PHP 7.1 during update type feed processing on form display when populating Checkbox fields.
Fixed an issue populating Multi Select fields created with Gravity Forms 2.2+ when processing update type feeds on form display.

3.7 | 2017-02-20

Added security enhancements. Credit: Fletcher Horton - Horton's Art LLC.
Fixed a PHP warning when populating a form field using the value from a BuddyPress datebox type field.
Renamed the function hooked to the gform_merge_tags filter to prevent conflicts with other add-ons and custom code snippets.
Updated gf_user_registration_login_form() to allow for login form arguments to be passed directly through a parameter.

3.6 | 2017-01-05

Added logging of BuddyPress field processing.
Fixed an issue where the number field value may not use the format configured on the field.
Fixed fatal error on main settings page when running PHP 7.1.
Fixed strings for translations.
Fixed an issue with the markup for the login widgets logged in message.

3.5 | 2016-11-04

Added support for the {set_password_url} merge tag.
Updated 'User activation' notification event label to 'User is pending activation'.
Updated Pending Activations table to be responsive.
Updated to use a meta box to include the activate user button on the entry detail with Gravity Forms 2.0+.
Fixed a timing issue with the inclusion of the GF_Field_Username class which in some situations caused the username field to be initialized in the form object using the basic GF_Field object resulting in the field input being missing when the form was rendered.
Fixed feed not being passed through the gform_addon_pre_process_feeds filters in some situations.
Fixed a PHP notice which could occur when an update type feed populates checkbox type fields with values stored in ACF checkboxes.
Fixed an issue with the Login button which prevented it being translated.
Fixed an issue with the custom registration page redirect.
Fixed an issue with the default logged in message for the login shortcode.

3.4 | 2016-08-31

Added additional logging statements.
Added the gform_user_registration_user_meta_options filter to allow the options for the "Other User Meta" group in the User Meta setting on the settings page to be set before running the query against the usermeta table for existing meta keys. If the return value is not empty then the query for existing meta keys will not run.
Updated German (de_DE) translation to fix an issue in Pending Activations page when Deutsch language is selected in WP settings due to incorrect usage of double quotes in the translation file.
Fixed issue when trying to hide title, description or logged in avatar with the login shortcode.
Fixed issue when including the deprecated.php file on some installations.
Fixed a typo in the capability for the pending activations page under the Users menu.
Fixed fatal error which could occur if the BP_XProfile_Field class already exists.
Fixed fatal error which could occur if the BP_XProfile_Group class already exists.
Fixed an issue with the activation url if the WordPress Address and Site Address URLs differ.
Fixed notice generated during validation when form did not have a password field
Fixed issue with password validation.
Fixed GF_Field array access/object notation notices with Gravity Forms 2.0.

3.3 | 2016-04-19

Added support for redirect_to query parameter for login/logout form.
Added German translation. Credit: Dominik Horn - netzstrategen.
Updated wp_new_user_notification() to be gf_new_user_notification() to avoid issues where users are attempting to override the same function. Users wishing to override this function can do so by defining their own version in a theme or plugin.
Updated login widget interface.
Updated login widget editor to restore previously active tab after save.
Updated some strings on the feed settings page.
Updated 'Add Link' string in Login widget to be translatable.
Updated Chinese (China) translation. Credit: Edi Michael.
Updated Spanish (es_ES) translation.
Updated login widget to not use boolval().
Fixed an issue with the PayPal integration with Gravity Forms 2.0.
Fixed an issue where a PHP notice would appear when enqueuing scripts when not logged in.
Fixed issue with login redirect URL not populating properly.
Fixed an issue populating the Checkbox field when processing the update feed on form render.
Fixed fatal error when using "user" shortcode in list output mode and meta value is not an array.
Fixed textdomain for some strings.

3.2 | 2016-03-08

Added Chinese (China, Hong Kong, and Taiwan) translations. Credit: Jason Hoi.
Added feed settings option to send user email when site is created.
Added gform_user_registration_login_args filter to modify all login form arguments.
Added gform_user_registration_login_form_title filter to modify login form title.
Added gform_user_registration_login_form_description filter to modify login form description.
Added gform_user_registration_login_redirect_url filter to modify redirect url after success login.
Added "Nickname" option to User Settings feed settings.
Added notification events: Site is created, User activation, User is activated, User is registered, User is updated.
Added "Preserve existing Display Name" option to update user feeds.
Added support for feed duplication.
Added support for using a custom link as the custom registration page.
Added user login via widget.
Added "user" action to Gravity Forms shortcode to retrieve user object and meta data (e.g. [gravityform action="user" key="display_name"]).
Added "Username" field to Advanced Fields.
Added additional logging statements.
Added support for the {activation_url} merge tag.
Fixed a fatal error which could occur on the pending activations page when attempting to display the activation error message.
Fixed an issue pre-populating the List field when processing the update feed on form render.
Fixed an issue where the post author was not set when the entry was marked as not spam.
Fixed an issue which could prevent user activation for users created by the pre-framework version if conditional logic is configured on the feeds.
Fixed an issue with BuddyPress overriding the activation emails which prevented the add-on handling user creation when the activation link was used.
Fixed an issue with the entry id stored in the user meta being overridden when an update feed is processed.
Fixed an issue with the post author not being set.
Updated feed action feed settings field to use visual radio buttons.
Updated feed settings for PayPal Standard to only display once the transaction type is selected and to only display the update user and site settings when the subscription type is selected.
Updated user role feed settings field to be a required field.
Updated wp_new_user_notification() to support logging the result from wp_mail().

3.1 | 2016-01-27

Updated processing of post category field value to use object notation.
Updated logging around processing of user meta.
Fixed an issue with the multi select field value when saving it to the user meta.
Fixed a fatal error which could occur with PHP versions older than 5.3 when including the deprecated functions file.
Fixed an issue with the capabilities.
Fixed an issue with the choices for display name setting not being translatable.

3.0 | 2016-01-20

Added integration with Add-On Framework.
Added new filter gform_userregistration_feed_settings_fields for modifying UR feed settings.
Added gform_user_registration_check_email_pre_signup_activation filter for allowing the user to disable the check for an email being already used by a registered user.
*add_filter( 'gform_user_registration_check_email_pre_signup_activation', '__return_false' );*
Added gform_userregistration_delete_signup hook to allow custom actions to be performed when pending activations are deleted.
add_action( 'gform_userregistration_delete_signup', function( $signup ) {
// do something
} );
Usage example here
Updated Spanish (es_ES) translation.
Updated update feed so that email isn't required.
Updated maybe_prepopulate_form() and handle_existing_images_submission() so the gform_user_registration_update_user_id filter can be used to override which user is used to populate the form.
Fixed an issue which could prevent the user email being sent when manually adding a user via Users > Add New.
Fixed a fatal error which could occur when processing BuddyPress data if the mapped field was a not a form field.
Fixed a fatal error which could occur when processing uploads if the mapped field was a not a form field.
Fixed issue where activation notification was not sent for for new users and new sites in WP 4.4
Fixed an issue with passwords containing quotes.
Fixed issue where password wasn't getting sent via email.
Fixed an issue with the pending activations page including blank rows for signups which do not have an associated GF entry.
Fixed an issue with username and email validation not taking pending activations into account.
Fixed issue where BuddyPress functions were triggered when BuddyPress was not active.

2.0.2 | 2014-12-08

Fixed issue where date fields were not mapped correctly in newer versions of BuddyPress.

2.0.1

Fixed typo in a translation string in userregistration.php.
Updated POT file.

2.0 | 2014-11-05

Added support for updating file upload fields mapped to BuddyPress image fields (available via BP add-on).
Added additional logging statements.
Updated pending activation so that it doesn't rely on the password being in the entry.
Updated POT file.
Updated plugin updated method so that it takes advantage of proxy manager to get around the blacklisted IP issue.
Fixed issue where pending activations were not sorted correctly.
Fixed update feeds in Gravity Forms 1.9.
Fixed issue where BuddyPress field visibility was ignored.
Fixed warning message on plugin's page.
Fixed notice when 'create_site' feed meta was not set.
Fixed issue where "Simple" type Name fields did not map to user meta correctly.
Fixed issue where data pulled from BuddyPress was not always correctly matched since the HTML entities were already encoded.
Fixed issue whith PayPal integration where users were not getting created when payment was manually being marked as Approved on the entry detail page.
Fixed notice thrown when updating BuddyPress Last Activity meta; updated to use new version.
Fixed issue where the upgrade class wasn't included which caused ManageWP to not work with add-on.
Fixed notices thrown in the downgrade_paypal_user function.

1.9 | 2014-05-29

Added gform_user_registration_new_site_meta filter for filtering the meta used to create a new site
add_filter( 'gform_user_registration_new_site_meta', 'add_blog_template', 10, 6 );
function add_blog_template( $site_meta, $form, $entry, $feed, $user_id, $is_update_feed ) {
$signup_meta['blog_template'] = 1;
return $signup_meta;
}
Added "Preserve current role" option for "Current Site Role" setting.
Added gform_user_registration_signup_meta filter for filtering the signup meta
add_filter( 'gform_user_registration_signup_meta', 'add_blog_template', 10, 4 );
function add_blog_template( $signup_meta, $form, $entry, $feed ) {
$signup_meta['blog_template'] = 1;
return $signup_meta;
}
Added current user object to wpmu_validate_blog_signup() call to allow registering sites with the same name as the current user.
Fixed the functions used by the mwp_premium_update_notification and mwp_premium_perform_update hooks so that the new_version element in the array returns the add-on's version instead of Gravity Forms.
Fixed issue where signups table on single site installs failed to update correctly when promoting site to multisite.
Fixed issue where activation emails were sent even though manual activation was enabled.
Fixed strict notice for Non-static method GFUserSignups::install_signups().

1.8 | 2014-03-31

Added more debug statements for logging.
Added logging support and some initial debug statements.
Updated two strings in activate.php to match their equivalents in wp-activate.php (as of WP 1.8.1).
Updated signup activation to check if email address is already in use and return a message indicating such.
Updated all places where RGUserUpgrade class was manually included to use new GFUser::include_upgrade_library() method.
Fixed notice with missing variable $set_post_author.
Fixed issue on single site installs where activation email title and from name defaulted to "WordPress".
Fixed issue on Update form where pre-population didn't always work when a value was set to zero.
Fixed issue where RGUserUpgrade class was called but not included.
Fixed issue where single column list fields were not updating correctly on Update feeds.
Fixed issue where deprecated functions were used in activation process.
Fixed issue in Update feed on multi-site where email address said to already be used.

1.7 | 2013-09-05

Fixed issue with invalid site domain and path when creating a new site.
Fixed issue with email activation link displaying errors when mapping BBPress fields.
Fixed issue where $base global variable in wp-config.php may not have the trailing slash, causing the site url created to be bad.
Fixed bug where PayPal integration caused user to be registered regardless of being set to manual/email activation.

1.6 | 2013-06-19

Updated automatic upgrade so that it caches remote requests for 12 hours (even on plugin's page).
Updated multisite username and email validation to only apply if the correct page is being validated.
Updated to allow mapping to POST fields for Update User feed.
Fixed issue with form action on activate.php when invalid activation key provided.
Fixed issue with display name not being set correctly on an create feed.
Fixed issue were BP on single site installs was overwriting standard user meta fields (ie first name, last name, nicename).
Fixed issue where email validation allowed update feeds to use already used email addresses.
Added better support for file uploads on forms with update feeds.
Fixed issue where multisite validation on Update feeds generated error when using existing email.

1.5 | 2013-04-01

Added support for custom registration page for multi-site installs.
Fixed link location for drop down on Pending Activations page which takes user to view All pending or form-specific pending.
Fixed issue where All pending activations was returning no records.
Fixed issue where usernames with spaces were not displaying in pending activation table.
Added "back to list" link on successful activation on Pending Activations page.
Updated Pending Activations table to only show form column when viewing All Pending Activations.
Updated UI to remove tabs.
Fixed issue where update_user() function was not correctly saving the user's email.
Fixed errors when populating an update fields with values containing single quotes.
Added support for specifying user activation type (manual, by email).
Updated roles drop down on feed page to order by a custom sort (subscriber first).
Fixed issue when updating user's website meta on an update feed.
Fixed issue with mapping category fields to BuddyPress.
Fixed error on update feed form when Buddy Press is uninstalled.
Fixed issue with checkboxes not being saved correctly when unchecked from an update feed.
Fixed issue with date fields not being formatted correctly when populating fields in an update feed.
Fixed issue with plugin-upgrade.php where failed remote response generated several notices.
Added support for saving processed config in entry meta and retrieving this from get_active_config() function.
Fixed issue where multiple file upload fields were not be populated correctly (powered by update feed).
BP functions bound to gform_user_registered were not being bound in the admin as the gform_user_registered hook was not previously fired in the admin (now fires when manually activating a pending activation).
Fixed issue where "wp_" prefix was being used instead of "$wpdb->prefix" Busted!
refactored form population for update feeds.
added support for list fields for update feeds.
fixed issue with date field population for update feeds.
Fixed issue with hardcoded table prefix.
Fixed issue with AJAX call when admin is configured to force SSL.
Fixed issue where Gravity Forms was being required and failing to find plugin.
Fixed issue where values being populated back into form for update feeds were not escaping single quotes which caused errors.
Fixed issue where unescaped single quotes were causing issues on feed editor.
Fixed issue where custom meta fields with 0 as a value weren't saving to the database.
Fixed notices when form inputs array doesn't exist which caused AJAX spinner to remain and no form fields were displayed.
fixed compatability issue with BP 1.6 where BP profile function is no longer available.
added "gform_disable_registration" hook to allow add-ons to prevent User Registration from registering/updating a user.
fixed issue where using wp_get_current_user() function was failing to update users when wait for payment option was checked.
fixed issue where "Pending Activations" link displayed in feed actions for Update feeds.
fixed issue where "Send Email?" option was displaying for Update feeds.
fixed issue where "Preserve current role" option was not preserving user's role for new feeds.
fixed issue were active status was not taken into account when retrieving update feed.
Fixed issue where new feed options were not displaying immediately.
Added support for displaying all user meta keys in feed meta key drop downs.
Fixed UI to read "Action" instead of "Feed Type".
Added pending activation link to entry detail page.
Added support for multiple feeds per form.
Added support for user activation on a per feed basis.
Added support for "update" feed types.
Added new conditional logic options (greater than, less than, contains starts with, ends with) and support for other conditional fields.
Fixed notices.

1.4 | 2012-03-27

Fixed typo.
Fixed issue where users were not visible in the BP member directory.
Added support for displaying user registration notice in activity feed.

1.3 | 2012-02-09

Fixed issue when Authorize.net and PayPal feeds were configured on the same form. The PayPal feed was being used sometimes even though the PayPal condition wasn't met.
Fixed issue where inactive feeds were still being processed.
Added several additional parameters to the "gform_username" hook.
Fixed issue where translation files were only being loaded for admin.
Fixed several notices with BuddyPress integration.
Updated function for adding user properties to prevent removal of password.
Added gform_site_created hook which triggers after a site has been created.
Updated functionality to add website user property correctly.
Updated PayPal integration to support multiple PayPal feeds with the same form.
Fixed notices on the PayPal Transaction Settings for the User Registration section.
Fixed issue where RG_CURRENT_PAGE constant was not available when GF is deactivated.
Added option to feed to allow user to specify the display name of the created user.
Updated code in various places to be cleaner and more efficient.
Added option to select role of new user on new site.
Added option to select role of new user on existing site.
Updated the "Custom Registration Page" functionality to also override BP Register page.
Fixed several PHP notices.
Fixed issue where validation was being processed regardless of a registration condition.
Fixed issue where $entry object was not being passed when checking if registration condition was met.
Fixed issue where GF was calling "gform_post_submission" hook prior to add-on tying function to it.

1.2.11 | 2011-11-01

Fixed issue where password was not included on New Site Creation email.

1.2.10

Updated registration_met() function to retrieve submitted value from the lead (rather than $_POST) to be compatible with PayPal Add-On.

1.2.9 | 2011-10-03

Fixed issue where empty array values for checkboxes and multiselect fields were being displayed as part of the BP profile data.

1.2.8

Fixed issue where erroneous fields with empty inputs array were not displaying in feed fields drop down.

1.2.7

Updated custom_registration_page() function to no longer user parse_url() php function.

1.2.6.3

Users are not created if entry is marked as spam.
Marking an entry as not spam will create the user.

1.2.6.2

Updated how the BuddyPress profile data table name is retrieved.
Updated custom_registration_page() function to parse more complex URLs.

1.2.6.1 | 2011-07-20

Updated "Custom Registration Page" functionality; when activated, accessing WP's default registration page will redirect user to specified page.

1.2.6 | 2011-07-16

Updated all localization strings to ensure same domain.
Recreated localization POT file.
Updated validation to validate regardless if the registration condition is met.

1.2.5

Added cleanup routine to make sure user meta values are not stored as arrays.

1.2.4

Added new filter "gform_username" to dynamically assign a username.
add_filter('gform_username', 'auto_username');
function auto_username($username){
$username = rgpost('input_2_3') . rgpost('input_2_6');
return $username;
}

1.2.3

Escaped javascript localization strings.

1.2.2

Add new option/functionality to override WP's default registration page with a custom page.
Require BP file in get_buddypress_fields() for users who have BP active but not setup.

1.2.1 | 2011-04-29

Updated 'Email Address' field dropdown to also pull custom fields that are set to the Email input type.
Updated is_root_site() function to more reliably determine if the current blog is the root site's blog.
Fixed several notices on User Registration multisite options.

1.2 | 2011-04-27

Fixed issue with localization.
Updated UI to support longer translation verbiage.

1.1

Fixed issue where all User Registration options were displaying for PayPal Feeds even when no User Registration Feed existed for the selected form.
Fixed issue where User Registration options were not available on a PayPal Feed until after saving the PayPal Feed was saved.
Feed password field now defaults to a form password field (if available).

1.0 | 2011-03-23

Updated version to 1.0.

1.0.beta5.3

Updated reference to gforms_paypal_save_config to use the renamed hook: gform_paypal_save_config.
Localized add-on.
Added gravityformsuserregistration.pot file.

1.0.beta5.2

Added hook to allow User Registration validation messages to be updated.
Example:
add_filter("gform_user_registration_validation_message", "update_validation_msgs", 10, 2);

function update_validation_msgs($message, $form){

if($message == 'This username is already registered')
$message = 'We're sorry, this username is already registered. Try submitting with a different username.';

return $message;
}

1.0.beta5.1

Updated gf_create_user() code to abort user registration if username already exists; beneficial to prevent existing user data being overwritten if username validation is overriden.

1.0.beta5

Added support for all BP field types.
Rewrote function to better retrieve values from the $_POST and $entry object.

1.0.beta4

Fixed validation issue for multi-page forms where the site address MU registration field was being validated regardless of current page.
Fixed "Cancel" button on Edit page to return the user to the List page.
Update multisite registration validation to check if site name (domain) already exists.

1.0.beta3.2

Fixed IE issue where selecting a form on the PayPal add-on was generating an error when no User Registration feeds existed.

1.0.beta3

Added support for creating MultiSite with user registration.
Fixed issue where MultiSite was failing to return validation error for spaces in domain name.
Disabled MultiSite options on User Registration feed view for child sites.

1.0.beta1

Updated database name to be consistent with other Gravity Form Add-Ons.
Updated permission required to view User Registration menu.

User Registration Add-On Login Widget

User Registration Add-On Login Widget

Adding the Login WidgetConfiguring the Login WidgetLogin Form OptionsNoteLogged In OptionsMerge TagsSummary

In addition to creating or updating users, the User Registration Add-On for Gravity Forms also contains a widget which will allow users to log in and register from the front-end of your site.

Adding the Login Widget

This section will show you how to add the Login widget included with the User Registration Add-On. If you already know how to activate a widget, you can continue on to the next section which contains information on the settings contained within the Login widget.

From within your WordPress admin dashboard, hover over Appearance on the left side admin menu, and click on Widgets.

Once you are on the Widget page, click on the the plus icon in the widget area of your choice. Type in login to the search bar that appears then select the Login widget.

You should now see the widget within your widget area Simply click it to access the settings for it.

Configuring the Login Widget

Immediately upon adding the Login widget, basic functionality such as logging in, logging out, and user registration will be available. Using the settings in this section, you can further customize the Login widget.

Login Form Options

SettingDescriptionLogin Redirect URLThis setting will allow you to define a custom URL that the user will be sent to upon successfully logging in when using the widget.LinksThis is a listing of links and their locations that will be displayed within the widget. By default, Register and Forgot Password? are included here. If you would like to change the text or the URL that a user will be sent to when clicking them, they can be changed here. See note.Tab Index StartThis is used to set a custom tab index. Setting a custom tab index may resolve accessibility issues if needed. As it is rather uncommon to change this, changing this value should only be done if you have a specific need for it.

Note

Additional links may also be added here. To do so, click the Add Link button for an additional field set to customize.

Logged In Options

SettingDescriptionTitleThe Title setting is used to set a custom title to the welcome message. This, as well as the Welcome Message, are used to display custom information to the user within the widget when logged in.Welcome MessageJust like the Title option above, this inserts a message within the widget for users that are logged in. This is displayed within the widget area, below the content of the Title setting.LinksSimilar to the links in the Login Form Options section, this is used to define custom links inside the widget. This differs only in that they are displayed when a user is already logged in.Login Redirect URLThis is the URL that a user will be sent to upon successfully logging out through the Login widget.Show user avatarEnabled by default, this setting will determine if the logged in user』s avatar is displayed within the widget.

Merge Tags

TagDescription{register_url}Outputs the URL to the registration page for the site. This utilizes the main User Registration Add-On setting. If no custom registration page has been defined here, it will default to the built in WordPress registration page URL.{password_url}Outputs the URL to the forgot password form that is built into WordPress.{logout_url}Outputs the URL to logout of WordPress. If a Logout Redirect URL has been configured in the widget in which it is used, it will also redirect to this URL when the user clicks on this logout link.{admin_url}Outputs the URL to the WordPress admin. When configuring links in the Login widget this can be handy for adding a link to the admin as part of the links you output via the widget.

Summary

Once finished with configuring your settings, don』t forget to click the Save button, so that your Login widget settings are active.