Survey Change Log

Survey Change Log

3.7 | 2021-04-293.6 | 2020-09-303.5 | 2020-05-133.4 | 2019-08-073.3 | 2018-12-033.2 | 2017-05-163.1 | 2016-08-313.0 | 2016-04-142.6 | 2015-10-082.5 | 2015-02-162.4 | 2014-10-162.3 | 2014-09-242.1 | 2014-02-282.0 | 2014-02-111.0.41.0.31.0.21.0.1 | 2013-06-211.0 | 2013-06-121.0.beta21.0.beta1

3.7 | 2021-04-29

Added right-to-left language support for the Rating, Rank, and Likert survey field types.
Fixed an issue where script tags are output above the document head element.
Fixed an issue with Likert Survey field on mobile when the labels are hidden.
Fixed CSS styles for better compatibility with Gravity Forms 2.5.
Fixed a deprecated usage of jQuery ready event.

3.6 | 2020-09-30

Added support for Gravity Forms 2.5.
Fixed an issue where survey dropdown field is not displayed properly if the field type was single line text with a mask before it was changed to dropdown.

3.5 | 2020-05-13

Added security enhancements.
Updated Javascript files, stylesheets to use minified versions.
Updated Javascript events to use standard Gravity Forms events for consistency.
Fixed an issue where the "n of n items shown" message from the form editor can be displayed on the front-end when the Rank field choices are populated via a filter.
Fixed an issue with the label styles used by the field general settings in the form editor.

3.4 | 2019-08-07

Added security enhancements.
Updated Likert field entries page filters for Gravity Forms 2.4+.

3.3 | 2018-12-03

Added security enhancements.
Added "value" modifier to Likert field merge tag to return column text only.
Updated compatibility issue with conditional logic and Gravity Forms 2.4.

3.2 | 2017-05-16

Added Chinese (China) translation. Credit: Edi Michael.
Updated minimum Gravity Forms version to 2.0.
Updated strings for translations.
Updated Likert CSS for better mobile display.
Updated low resolution PNG icons with scaleable vector graphics (SVG).
Fixed Survey field settings referencing incorrect icon URLs.
Fixed an issue with the Likert field markup.
Updated inline image in rank field so that it is applied via CSS instead.
Fixed an issue with the locations the gform_merge_tags hook was being used to include the merge tags.

3.1 | 2016-08-31

Fixed an issue with Likert field column labels which contain HTML displaying the HTML markup for mobile devices.
Fixed issue exporting Likert field values if the row label included trailing spaces.
Fixed an issue validating/saving the multi-row Likert field which could occur if the field has had ten or more rows defined and then one or more rows removed causing a mismatch between the ids used in the front-end input name attributes and the ids in the field inputs property.
Fixed an issue with how the empty Likert field value was handled in the {all_fields} output.
Fixed an issue which caused the Likert field value to be lost when editing the entry.
Fixed an issue which could prevent field values of 0 being displayed on the entry detail page.

3.0 | 2016-04-14

Added support for Gravity Forms v2.0.
Added GF_Field_Rating.
Added GF_Field_Rank.
Added GF_Field_Survey.
Added GF_Field_Likert.
Added DocBlocks.
Added support for using the Rating type field with conditional logic.
Added support for exporting the choice text when using the 2015 batch & future feed add-ons. Requires Gravity Forms 1.9.15.12.
Added label and description placement setting to the Survey field.
Updated minimum Gravity Forms version to 1.9.17.
Updated to use object notation when accessing the field object.
Updated the styles to adapt better to different screen sizes.
Updated the score merge tag to support returning the Likert row score e.g. {score:id=1.5} would return the score for field 1 row 5.
Updated Likert field preview in form editor to display only the first five rows.
Increased width of input boxes for weighted score values.
Fixed an issue with the tooltip in the rank field where text can get cut off if certain special characters are included in the choice label.
Fixed an issue with the merge tag values in the query string of a redirect confirmation.
Fixed an issue with empty Likert fields being displayed on the entry detail page when 'show empty fields' is not selected.
Fixed a typo in the Rank type fourth choice string.
Fixed an issue with the Likert field in entry exports when the field rows are changed after entries are saved.
Fixed an issue with some untranslatable strings.
Fixed an issue with the display of Likert field values for some entries on the entry list when the field rows are changed after entries are saved.
Fixed an issue with the Likert field label for attribute.

2.6 | 2015-10-08

Fixed an issue with the input ID attributes for the Likert and Rating type fields.
Fixed an issue in the form editor where removing a likert row didn't remove the corresponding input property.
Fixed an issue which caused survey merge tags to be replaced during form render.
Fixed an issue with the Likert field row specific merge tag which caused all the rows to be included in the output instead of just the specified row.

2.5 | 2015-02-16

Added support on the results page for score averages by row in multi-row Likert fields (requires Gravity Forms 1.9).
Added Spanish (es_ES) translation.
Updated front-end script dependency to include jquery-touch-punch on mobile devices enabling touch support for the Rank field.
Updated POT file.
Fixed an issue with the processing of merge tags for multi-row Likert fields which would prevent the field being included in notifications/confirmations when using Gravity Forms 1.9.
Fixed two untranslatable strings in the form editor.
Fixed a notice in the entry detail page for imported forms.
Fixed an issue under PHP 5.2 where score for multi-row likert field was not displayed correctly in email notification if any row was not answered.
Fixed an issue where score for multi-row likert field was not displayed correctly in email notification if any row was not answered.

2.4 | 2014-10-16

Added function gf_survey to easily get a Survey instance.
Added text domain/path to header.
Added support for Gravity Forms 1.9 form editor drag and drop.
Updated protected functions to be public.
Updated to have the file class-gf-survey.php and organized code into this file and survey.php
Updated version to use a variable.

2.3 | 2014-09-24

Adding tabbing support for likert fields.
Updated the ratings field UI in the form editor to display the choices in the more natural order of worst at the top to best at the bottom instead of the reverse. The front-end UI is not affected.
Fixed issue where score for multi-row likert field was always 0 if any row was not answered.
Fixed the field title in the Form Editor.
Fixed a strict notice preventing the results to be displayed in PHP 5.4+.
Fixed an issue with the dynamic population parameter names for multi-row Likert fields reverting to default values after re-opening the field settings.
Fixed an issue with the resending of notifications from the entry detail page where the choice values were being displayed instead of the choice text.

2.1 | 2014-02-28

Fixed issue when exporting entries.

2.0 | 2014-02-11

Added integration with the Add-On Framework.
Added integration with the Campaign Monitor Add-On, MailChimp Add-On, AWeber Add-On, and Zapier Add-On.
Fixed entries tab for the Contacts Add-On.
Fixed entry editor; scripts and styles now loaded.

1.0.4

Added support for survey entries tab in the Contacts Add-On.
Fixed an issue where survey merge tags would appear in the list of merge tags available during pre-submission.
Added support for decimal score values in the Likert field.

1.0.3

Added total score to entry meta.
Added total score entry meta to the results filters and to the conditional logic filters for notifications and confirmations. Only available for likert fields with scoring enabled.

1.0.2

Requires Gravity Forms version 1.7.6.6+.
Implemented the Add-On Framework.
Added weighted scoring for likert fields.
Added score merge tags.

1.0.1 | 2013-06-21

Fixed an issue with multi-row likert fields having more than 9 rows. The submitted value for every tenth row would not be saved.

1.0 | 2013-06-12

Changed the validation of required multi-row likert fields to require responses for all rows.
Fixed an issue with entries export where the choice value could be exported instead of the label.
Fixed an issue with results not being displayed when double quotes are inside field choices labels.
Fixed an issue with results not being displayed in no conflict mode.
Fixed an issue with multi-row likert fields and rank fields not retaining selected values when stepping back a page on multi-page forms.
Fixed an issue with multi-row likert fields not importing correctly.
Fixed an issue with rank fields not working on some pages of multi-page ajax-enabled forms.

1.0.beta2

Added gform_form_pre_results filter so the form object can be manipulated before the results are calculated for the admin results page.
Added required field setting to likert and rating fields.
Added tooltips for the field settings.
Fixed an issue where the plugin couldn't be activated on servers with shorttags disabled.
Fixed merge tags for likert multple rows and rating fields.

1.0.beta1

Initial version.

{survey_total_score} Merge Tag

{survey_total_score} Merge Tag

SummaryUsageNotes

Summary

Displays the total score for the survey. Scoring must be enabled on the survey field for it to be tallied.

Usage

{survey_total_score}

Notes

Quiz and Survey related merge tags can only be used in confirmations and notifications.For more information, Refer to our Survey Add-On documentation.

Subscription Settings in the PayPal Payments Standard Add-On

Subscription Settings in the PayPal Payments Standard Add-On

Transaction Type-specific Options

When using the PayPal Add-Ons for Gravity Forms, you can set various transaction types depending on your needs such as Products and Services, Subscription, and Donations.

Transaction Type-specific Options

If you select Subscription within the Transaction Type dropdown, additional options that are specific to subscriptions will appear.

SettingDescriptionRecurring AmountSet the amount that the subscription will bill for. Using the drop down, you can set the recurring payment amount as one of your product fields or as the form total.Billing CycleSelect the amount of time in each billing cycle. For example, if you want the subscription to renew monthly, select 1 and Month within the dropdown.Recurring TimesConfigure the number of times a subscription will be renewed. By default, it is set to infinite.Recurring RetryEnable to automatically retry again if billing fails.TrialSet the initial purchase to be a trial period with a reduced price, after which it will renew at regular price. Once enabled, additional options will appear for the trial price as well as the time that the trial will be available before renewing at regular price.

If you need more information on configuring feeds within the PayPal Payments Standard Add-On, you may review our article on Creating a Feed for the PayPal Payments Standard Add-On.

Recurring Payment Account Detail and Credit Card Changes

Recurring Payment Account Detail and Credit Card Changes

Currently it is not possible to change any account details within recurring payments when using Authorize.Net. To make changes to a recurring payment, you will need to cancel the subscription, then create a new subscription with the changed information.
If you require more information on canceling a subscription, take a look at our article on recurring subscription cancelations.

Submit Button CSS Selectors

Submit Button CSS Selectors

Basic TargetingSubmit ButtonSubmit Button (image)Use Case ExamplesBasic ExampleHover ExampleActive State ExampleInline Positioning Of The Submit Button

Here』s how to apply styles to Gravity Forms submit buttons. You can utilize these selectors to apply any additional styling that you may need.
Basic Targeting
Submit Button

example: the form submit button (input) – applies to all forms
body .gform_wrapper .gform_footer input[type=submit] {border: 1px solid red}

example: the form submit button (input) – applies just to form ID #1
body #gform_wrapper_1 .gform_footer input[type=submit] {border: 1px solid red}

Submit Button (image)

example: the form submit button (image) – applies to all forms
body .gform_wrapper .gform_footer input[type=image] {border: 1px solid red}

example: the form submit button (image) – applies just to form ID #1
body #gform_wrapper_1 .gform_footer input[type=image] {border: 1px solid red}

Use Case Examples
Basic Example
body .gform_wrapper .gform_footer input.button,
body .gform_wrapper .gform_footer input[type=submit] {
color:#ffffff;
padding-top:4px;
padding-bottom:4px;
padding-left:10px;
padding-right:10px;
border: 1px solid rgba(114,114,114,0.4);
border-radius: 1px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
box-shadow: 0 1px 0px rgba(114,114,114,0.3);
-moz-box-shadow: 0 1px 0px rgba(114,114,114,0.3);
-webkit-box-shadow: 0 1px 0px rgba(114,114,114,0.3);
background-color: #0096d6;
}

Hover Example
body .gform_wrapper .gform_footer input[type=submit]:hover {
border: 1px solid rgba(114,114,114,0.6);
background-color: #444444;
}

Active State Example
body .gform_wrapper .gform_footer input[type=submit]:active {
top: 1px;
}

Inline Positioning Of The Submit Button
/* make the form container relative for positioning */

body #gform_wrapper_1 {
position: relative;
}

/* resize and position the form footer with the button */

body #gform_wrapper_1 .gform_footer {
width: auto;
position: absolute;
top: 46px;
left: 150px;
padding: 0;
margin: 0;
}

Submission Data Object

Submission Data Object

IntroductionUsagePropertiesLine ItemOptionHooks

Introduction
Submission Data ($submission_data) is an associative array containing all the payment related properties for the entry being processed by an add-on which extends the GFPaymentAddOn class. It is generated by GFPaymentAddOn::get_submission_data() during form validation.
Usage
We recommend accessing the properties in $submission_data using the rgar() function e.g.
1$payment_amount = rgar( $submission_data, 'payment_amount' );

Properties

form_title string
The form title.

email string
The value of the field which was mapped to the billing information Email field (not available to all add-ons).

address string
The value of the field which was mapped to the billing information Address field (not available to all add-ons).

address2 string
The value of the field which was mapped to the billing information Address 2 field (not available to all add-ons).

city string
The value of the field which was mapped to the billing information City field (not available to all add-ons).

state string
The value of the field which was mapped to the billing information State field (not available to all add-ons).

zip string
The value of the field which was mapped to the billing information Zip field (not available to all add-ons).

country string
The value of the field which was mapped to the billing information Country field (not available to all add-ons).

card_number string
The Credit Card number last 4 digits, padded with X (not available to all add-ons).

card_expiration_date array
The Credit Card expiration month and year (not available to all add-ons).

card_security_code string
The Credit Card security code (not available to all add-ons).

card_name string
The Credit Card cardholder name (not available to all add-ons).

payment_amount float
Either the form total or the value of the field mapped to the feeds payment amount or recurring amount setting.

setup_fee integer
Zero or the value of the field mapped to the setup fee setting.

trial integer
Zero, the trial amount, or the number of days the trial should last.

line_items array
An indexed array of line items with unit prices greater than or equal to zero. Created from the submitted pricing fields. See Line Item for available properties.

discounts array
An indexed array of line items with negative unit prices. e.g Coupon fields. See Line Item for available properties.

Line Item
12345678array(    'id'          => 1,    'name'        => 'Product A',    'description' => '',    'quantity'    => '1',    'unit_price'  => 10,    'options'     => array(),)
Each line item is an associative array containing the following properties.

id integer
The field ID.

name string
The product name or shipping name.

description string
Comma separated string of selected option names.

quantity integer
The quantity.

unit_price float
The total unit price for the product and any selected options or the shipping price.

options array
An indexed array of the selected product options. See Option for available properties.

is_shipping boolean
Only present if the line item is from the shipping field. Value will be true.

Option
123456array(    'field_label'  => 'Option',    'option_name'  => 'First Option',    'option_label' => 'Option: First Option',    'price'        => '10',)
Each option is an associative array containing the following properties.

field_label string
The option field admin label or choice label.

option_name string
The choice label or value if values are enabled on the field.

option_label string
The colon separated field_label and option_name.

price string
The option price.

Hooks
The Submission Data can be modified by using the gform_submission_data_pre_process_payment filter.

Stripe Support of Strong Customer Authentication

Stripe Support of Strong Customer Authentication

IntroductionWhat is SCA (Strong Customer Authentication)?How does this affect Stripe?So will all my transactions through Stripe now work with financial institutions using SCA?I don』t need any of the security of SCA, does this affect me?

Introduction
Version 3 of the official Gravity Forms Stripe Add-On made a number of changes to bring our add-on into line with Stripe』s updates around Strong Customer Authentication (SCA) and their new API. This article gives you the basics regarding SCA.
What is SCA (Strong Customer Authentication)?
SCA is a requirement of the EU Revised Directive on Payment Services (often referred to as just PSD2), that affects payment service providers within the European Economic Area. It is intended to ensure that electronic payments are performed with multi-factor authentication, to increase the security of electronic payments.
How does this affect Stripe?
This directive affects all payment gateways that want to collect payments from financial institutions who will be requiring SCA. To that end, Stripe has updated their API to ensure they can meet these requirements. Stripe has a suite of documentation to describe the implications for them and their customers.
So will all my transactions through Stripe now work with financial institutions using SCA?
It will depend upon the collection method you use. Payments collected using:

Stripe Checkout method in Stripe Add-On version 3.0 or higher
Stripe Credit Card field (also called Stripe Elements) in Stripe Add-On version 3.3.1 or higher

…are both SCA ready.
Collecting information using the Gravity Forms Credit Card field does not comply with SCA requirements.
I don』t need any of the security of SCA, does this affect me?
Not in practice, no, but do note that the 3.0 update also modified the flow for Stripe Checkout, and removed some existing Stripe Add-On hooks. Review this guide to see a list of those changes.

Overview of Stripe Payment Collection Methods

Overview of Stripe Payment Collection Methods

IntroductionSettings1. Stripe Credit Card Field (Stripe Elements)DescriptionBenefitsPre-Requisites2. Stripe Payment Form (Stripe Checkout):DescriptionBenefitsPre-Requisites3. Gravity Forms Credit Card Field (deprecated)

Introduction

Gravity Forms Stripe Add-On version v2.6 increased the number of options available for processing credit cards using Stripe. This article gives a brief overview of those payment collection methods.

Settings

The option 「Payment Collection Method」 is set via the Stripe Add-On Settings page.

1. Stripe Credit Card Field (Stripe Elements)

Description

The Stripe Credit Card field is hosted on Stripe』s servers and displayed on your form using an iframe. Your Gravity Form collects all data except the credit card (and optionally, the Cardholder Name) fields, which are collected securely by Stripe and transmitted over HTTPS connection to their processing servers. Those Stripe collected details are not stored with your entry data.

Benefits

Reduces your responsibility for handling and securing sensitive payment information as that process is handled by Stripe.is SCA ready as of version 3.3.1.can help you meet your PCI compliance requirements, such as Stripe』s easier PCI compliance process, Pre-filled SAQ A.

Pre-Requisites

the Stripe Add-On must be installed and active.have selected Stripe Credit Card field as your payment collection method within the Stripe settings.the checkout page must be a secure https:// address.

Then the field is available under the Pricing Fields section of the Gravity Forms Editor.

Note: Stripe.com will render the inputs for the card details only if your form has an active Stripe feed configured. Also if your Stripe feed has conditional logic, you will want to configure the Stripe Card field with the same logic.

2. Stripe Payment Form (Stripe Checkout):

Example of the Stripe Checkout form.

Description

Form submission will trigger the opening of a Stripe hosted form to collect all the payment details directly within Stripe』s domain, including required data such as email, billing address, or any other verification fields as demanded by your payment processing flow.

Note: This collection method will not make a credit card field available in the list of available Pricing fields to add to a form as a credit card field is not required for this collection method.

Benefits

Reduces your responsibility for handling and securing sensitive payment and customer information, as none of the payment form collected data is stored by your Gravity Forms databases.is SCA ready.can support additional payment methods like Apple Pay or Google Pay.can help you meet your PCI compliance requirements, such as Stripe』s easier PCI compliance process, Pre-filled SAQ A.

Pre-Requisites

have the Stripe Add-On installed and active.have Stripe Payment form (Stripe Checkout) selected as your payment collection method within the Stripe settings.when using this method, you configure the payment collection form and fields via your Stripe account, and not within the Gravity Forms editor.If any of your form notifications is intended to be sent when the payment is done, you would need to change the notification Event setting from the default 「Form is submitted」 to 「Payment Completed」 if you use a Products and Services feed, or 「Subscription Created」 for Subscription feeds.to support Apple Pay or Google Pay, you must login to your Stripe account, go to Settings → Checkout and Payment Links, and then toggle the desired payment options as shown here:

3. Gravity Forms Credit Card Field (deprecated)

This collection method has been deprecated in Stripe Add-On version 3.4. Refer to this document for more information.

Stripe Marks Charge As Recurring When It Is Non-Recurring

Stripe Marks Charge As Recurring When It Is Non-Recurring

IssueExplanation

Issue
Charges made through the Stripe Add-On have shown up flagged as 「recurring」, when they are not part of a recurring subscription plan.
Explanation
Stripe have confirmed that this is an expected behavior when the storage of customer card details is required.
The 「recurring」 flag in this instance does not necessarily indicate the customer is subscribed to a recurring billing plan, only that the card was saved for future charges.
Cards attached to non-recurring transactions cannot have all details stored, in keeping with PCI compliance requirements. Therefore the recurring flag must be used by Stripe in order to store card details for future charges, even if future charges are not automated as part of the plan.
Stripe have created this document to explain the change: https://support.stripe.com/questions/non-recurring-charges-show-as-recurring-on-customer-bank-statements.