------------------------------------------------------------------------------------------------------------------- Version 1.8.7 - Added Text Domain and Domain Path to plugin header so the description may be translated - Updated product calculation to improve performance - Updated width of form title column so form actions do not wrap. - Updated two notice statements to alleviate confusion - Updated German translation file with user-provided update - Updated a few strings so they can be translated - Updated POT file - Updated GFFormsModel::save_lead() method to support saving leads on non-admin views - Updated GFFormDisplay::has_conditional_logic from private to public - Fixed an issue with the validation of the number field when set to currency format and the Gravity Forms currency setting is set to a decimal comma formatted currency - Fixed incorrect domain for translations in a few instances - Fixed security vulnerabilities - Fixed issue with nested conditional logic on checkboxes. - Fixed issue where conditional logic setting was showing up for Hidden products - Fixed issue where GF Results was being initialized on all admin pages - Fixed issue with the {pricing_fields} merge tag markup. - API: Updated the Web API authentication to accept both url-encoded and unencoded signatures to handle different client behavior - API: Updated some mysql_*() calls to support WordPress 3.9 under PHP 5.5 or higher - AF: Added support for top level "app" menus - AF: Added support for top level "app settings" - AF: Added support for app tab UIs - AF: Fixed an issue with the form settings menu where the menu item for the add-on was appearing in the menu even when the current user did not have adequate permissions - AF: Fixed filter for app settings menu ------------------------------------------------------------------------------------------------------------------- Version 1.8.6 - Added logging to help troubleshooting form submissions. - Added hook to allow multi-file upload settings/behavior to be changed. - Added "French Polynesia" to countries list. - Added 'gravityforms_delete_forms' and 'gravityforms_delete_entries' permission checks to form list. - Added new filter "gform_email_background_color_label" to change the background color for the field label in the html email. add_filter("gform_email_background_color_label", "set_email_label_color", 10, 3); function set_email_label_color($color, $field, $lead){ return "#CC99FF"; } - Added new filter "gform_email_background_color_data" to change the background color for the field data in the html email. add_filter("gform_email_background_color_data", "set_email_data_color", 10, 3); function set_email_data_color($color, $field, $lead){ return "#CCCCFF"; } - Added gform_form_notification_page filter. - Added 'gravityforms_delete_entries' permission checks to entry list and entry detail pages. - Added $input_id as fifth parameter to the "gform_save_field_value" function; better allows overriding values for a specific input ID. - Added support for state code via gform_us_states and gform_address_types hook. - Added gform_form_export_page hook. - Added gform_payment_details hook under gform_entry_info in preparation for a new Payment Details box on the entry page. - Added support for country codes in country drop down. - Added support for note type. - Added support for changing note avatar. - Added gform_delete_entries to get fired when entries are being deleted in bulk. - Fixed security vulnerability which allowed malicious form submissions to bypass validation of certain fields - Fixed PHP warning on entry list when the created_by field contains the ID of a user that no longer exists - Fixed issue with conditional logic when configured to start with "0". - Fixed minor PHP warning for recently imported multi-step forms. - Fixed issue where editing credit card fields with HTML5 ouptut enabled generated a browser validation error. - Fixed security vulnerability which allowed malicious form submissions to bypass validation of certain fields. - Fixed issue with entry detail pagination not working correctly on certain types of searches. - Fixed issue with with the multi-file upload field generating a JavaScript error on multi-page, ajax-enabled forms with conditional logic. - Fixed issue with multi file upload throwing AJAX errors when uploading a file with a single quote on certain webservers. - Added GFs instance of the gfMergeTagsObj to the global scope to allow 3rd party devs to more easily work with merge tags. - Fixed issue in the Italian translation file where a string was breaking javascript on the entry detail page. - Fixed issue with entry export not decoding the value of multi file upload fields. - Fixed issue with the {pricing_fields} merge tag markup. - Fixed escaping issue on input mask. - Fixed issue with the new form modal on IE8. - Fixed issue with datepicker css being rendered to the page even when no datepicker field is in the form. - Fixed issue with country not being selected properly when code was provided via hook. - Fixed styling issue with entry actions on entry detail page. - Fixed issue where styles/scripts were being output before doctype when including a form in a confirmation. - Fixed issue with number field validation when set to decimal comma. - Fixed issue with select columns page not loading in SSL when appropriate. - Fixed security vulnerability when validating product state. - Fixed an issue with the entry list where trashed entries appear in the list of active entries when sorting by a field value. - Fixed an issue with conditional logic when product drop down is used as a target. - Removed permissions check from low level GFFormsModel::delete_lead() - moved to page level. - Removed the value and size attributes from the input tag for the "file" type since they are not supported and cause html validation errors. - Removed permission checks from GFFormsModel::delete_form() and GFFormsModel::delete_leads_by_form() - moved to page level. - AF: Set trial amount to user entered value when trial option set to "Enter amount" for the Payment Add-On. - AF: Added GFAPI::current_user_can_any() so developers can check permissions before calling any of the other API functions. - AF: Added some logging for the Payment Add-On. - AF: Added discounts to the order data for the Payment Add-On. - AF: Added product options as a separate array to the line items array for the Payment Add-On. - AF: Added is_shipping indicator to line items to distinguish between shipping field and regular product field for the Payment Add-On - AF: Added name property to settings_setup_fee and settings_trial for the Payment Add-On. - AF: Added integration with the Logging Add-On - all add-ons now appear automatically on the settings page. - AF: Fixed issue with validation failure icon not being displayed for all field types. - AF: Fixed issue with checkbox validation. - API: Fixed an issue with GFAPI::add_entry() where the status was being ignored. - API: Fixed an issue with GFAPI:get_entries() where the status was being ignored when sorting by a field value. - API: Fixed issue with Web API GET entries ignoring is_numeric. ------------------------------------------------------------------------------------------------------------------- Version 1.8.5 - Added $field and $value parameters to 'gform_duplicate_message' filter. - Added new hook: "gform_after_update_form_meta", fires any time form meta is updated. - Updated shortcode_atts() call in GFForms::parse_shortcode() method to pass 'gravityforms' as the third parameter so 3rd party developers can add/filter shortcode attributes. - Fixed Notice when adding a post category field to the form. - Fixed issue with email notification format when using the {pricing_fields} merge tag. - Fixed issue with conditional logic when the current number locale is set to decimal comma. - Fixed issue with export where it was returning results inconsistent with entry list for checkbox items that have been re-ordered. - Fixed issue where custom field types which posted values as arrays were set to null when filtering for HTML. - Fixed issue with number format and conditional logic when number was configured with the comma as the decimal separator. - AF: Added is_object_locked(). - AF: Added payment_callback table to track callbacks and prevent duplicate execution of them. - AF: Added Donation as a dependency value for transaction type for the Payment Add-On. - AF: Added function to set the onchange event for enabling a trial for the Payment Add-On. - AF: Added support for a transaction id to be added to the transaction table for subscription recurring payments. - AF: Added support for a subscription to be retrieved by a transaction id. - AF: Added new styles for add-on results. - AF: Updated payment amount to have a default value of form_total for the Payment Add-On. - AF: Updated the logic for showing/hiding trial fields for the Payment Add-On. - AF: Updated radio button setting markup so that it is consistent with WordPress'. - AF: Updated settings label code; moved it to its own function. - AF: Updated is_json() method to accept "[" as a valid first character of a JSON string. - AF: Updated build_choices() method to 'public' from 'protected'. - AF: Fixed notices in the Payment Add-On. - API: Fixed an issue with get_entries() where incorrect entries were being returned when searching across all forms using an entry meta key that is not currently active for any of the forms. ------------------------------------------------------------------------------------------------------------------- Version 1.8.4.1 - Fixed issue with tooltips not working on Add On pages. Included font-awesome.css to Add On pages to fix the issue. - Fixed issue where old inputs were not removed when adding new choices via bulk add functionality for Post Custom Fields with a "checkbox" field type - Fixed an issue with entry export which may result in an empty export file for forms with a large number of entries - AF: Added logging statements - AF: Fixed issue with field map validation on fields that are hidden by dependency - API: Added some logging statements - API: Updated GFWebAPI::handle_page_request() to check the $HTTP_RAW_POST_DATA global variable before attempting to read the contents of the request body. ------------------------------------------------------------------------------------------------------------------- Version 1.8.4 - Added "gform_footer_init_scripts_filter" hook to support filtering the footer init scripts string - Added support for custom wp-includes directory - Updated setup to run only in admin for single site installations and always on multisite - Updated Google Font includes to be protocol-less - Updated conditional logic to handle the "Other" choice for radio buttons - Updated INACTIVE trim values setup script to ACTIVE. All leading and trailing spaces are now stripped from all previous entry values, field labels, choice texts, choice values, input labels and conditional logic rule values for fields, notifications and confirmations. - Updated the form editor, form importer, notification editor and confirmation editor to trim leading and trailing spaces from all labels, choices values and conditional logic values on save/import - Updated GFFormDisplay::print_form_scripts() to print all scripts at once rather than printing individually - Updated GFFormsModel::update_lead_property() to return the result of the $wpdb->update() call - Updated Credit Card field's Security Code input to use "type='text'" and "pattern='[0-9]*' when in HTML5 mode (rather than "type='number'") - Updated location of gform_form_actions hook so that actions can be filtered when in the trash page - Updated the entry search criteria to support times in the start_date and end_date - Updated GFFormsModel::get_form to optionally allow returning a trashed form - Fixed issue with number field not properly formatting numbers on the entry edit page and on the individual field merge tag - Fixed issue with export start and end dates - Fixed issue with entry list trash view where entry row remains in the list after deleting when a fileupload field in the entry is empty - Fixed issue with deleting entries on multisite installs where files uploaded using the fileupload field aren't deleted if the site ms_files_rewriting option is not set. This issue affects all new multisite installations of WordPress created after the release of WordPres 3.5. - Fixed issue with number field configured with the 9.999,99 format displaying browser validation errors when HTML5 is enabled. - Fixed issue with list field export where "Array" was being displayed under certain conditions. - Fixed warning thrown in rewrite_rules function when using array_merge with a parameter that wasn't an array - Fixed issue with dates used when exporting entries - Fixed number field validation when currency format is specified. - Fixed issue with how spaces in post image file names were being replaced. - Fixed notices when Post Image field with enabled Title, Description, and/or Caption were submitted without values - Fixed styling issue with checkboxes on entry notes - Fixed number field input type - Fixed JS error on form editor when user refreshes the page with the scrollbar lower than the top of the page - Fixed left margin of conditional logic instructions when label position is set to left-aligned. - API: Added support for PUT entries/{entry ID}/properties so entry properties (is_read, is_starred etc) can be updated individually - API: Added GFAPI::update_form_property() and GFAPI::update_forms_property() so form properties from the main forms table (is_trash, is_active etc) can be updated individually - API: Added support for PUT forms/{form ID}/properties - API: Added GFAPI::update_entry_property() to update a single property of an entry - API: Updated the QR Code to include the site title - API: Updated GFAPI::add_entry() to return an error if the entry object is not an array - API: Fixed authentication for multisite installations - API: Fixed loading of scripts on the API settings page when using SSL - API: Fixed GFAPI::update_entry() to update the entry status - AF: Added support for "dynamic_field_map" field setting - AF: Added icon support to form editor top toolbar - AF: Added support for displaying an icon next to the form settings page title - AF: Added support for displaying an icon next to the plugin settings page title - AF: Added support for configuring a form settings page title (using first section as default) - AF: Added support for configuring the "No items" message as well as forcing any message to be displayed in the feed list - AF: Added support for "requires credit card" setting in the Payment Add-On to be used by payment gateways that require a credit card field on the form - AF: Added replace_field() method to replace a field by name in a given $settings array - AF: Added get_field() method to retrieve a field by name in a given $settings array - AF: Updated get_feed() method to return false if no feed is found instead of a non-empty array - AF: Updated get_payment_choices() from private to public - AF: Updated the feed add-on feed_condition field to trim values before saving - AF: Updated payment add-on to better handle different payment actions - AF: Updated payment add-on get_webhook_url() to use simpler callback parameter - AF: Updated default icon for the Results menu - AF: Updated Payment Add-On default settings so that it is easier to add feed settings under the "Other" section - AF: Updated field_map settings field type so that it is available from GFAddon instead of GFFeedAddOn - AF: Fixed issue with subscription cancellation - AF: Fixed results calculation loop to allow add-ons to add custom data to the field_data element. Fixes an issue with the Quiz Add-On correct/incorrect numbers for > 150 entries. ------------------------------------------------------------------------------------------------------------------- Version 1.8.3 - Added new filter "gform_post_category_choices" to alter post category choices sort order. Both globally and form id + field id specific. add_filter("gform_post_category_choices", "set_sort", 10, 3); function set_sort($choices, $field, $form_id){ //usort calls a custom sort function you create usort($choices, "sort_numerically"); return $choices; } function sort_numerically($a, $b){ return floatval($a["text"]) > floatval($b["text"]); } OR add_filter("gform_post_category_choices_390_1", "set_sort", 10, 3); function set_sort($choices, $field, $form_id){ //usort calls a custom sort function you create usort($choices, "sort_numerically"); return $choices; } function sort_numerically($a, $b){ return floatval($a["text"]) > floatval($b["text"]); } - Added INACTIVE setup script to trim leading and trailing spaces from all entry values, field labels, choice texts, choice values and input labels. Uncomment line 503 to test. - Updated GFFormDetail::add_field() to json_encode the field markup before sending it back to the form editor - Updated GFCommon::calculate() to replace multiple spaces and new lines with a single space - Updated the fileupload field to use the https protocol in links to file downloads when the entry detail and entry edit pages are using SSL - Fixed issue with "No duplicates" option displaying on multi-select fields - Fixed an issue with conditional logic failing and some fields not retaining values after validation and changing page with field choices having leading or trailing spaces. - Fixed missing delete icon on the entry edit page. - Fixed a PHP warning on form submission with unsaved imported forms with post fields. - Fixed inconsistent permission allowing users to import forms without edit form permission. - Fixed issue where empty fileupload fields were being displayed in the entry detail, entry print page and {all_fields] merge tag. - Fixed intermittent fatal error calling get_plugins(). - Fixed missing gform_pre_enqueue_scripts hook causing conflict with Picatcha. - Fixed the gform_filters_get_users filter. - Fixed missing ';' on gformInitCurrencyFormatFields() init script. - API: Updated GFWebAPI::end() to public static so it can be used by add-ons. - API: Added gform_webapi_$METHOD_$COLLECTION and gform_webapi_$METHOD_$COLLECTION1_$COLLECTION2 actions. - API: Removed gform_webapi_$METHOD_$COLLECTION and gform_webapi_$METHOD_$COLLECTION_$COLLECTION2 filters. ------------------------------------------------------------------------------------------------------------------- Version 1.8.1 - Added the gform_webapi_get_users_settings_page filter to allow the user list to be filtered on the API settings page. - Added the gform_filters_get_users filter to allow the user list to be filtered in the field filters. - Added logging statements for single file upload fields on single page forms and last page of multi-page forms. - Fixed issue with gform_display_add_form_button filter. - Fixed issue with state validation failing on product names with leading or trailing spaces. - Fixed notices thrown in the clean_up_files function. - Fixed an issue on the settings where a valid license key appears incorrectly as invalid for up to 24 hours after updating to version 1.8. - Fixed an issue on the confirmation edit page when a conditional logic rule value contains an apostrophe. - Fixed an issue with the multi-file upload field when used on more than one page of a multi-page form and when the max number of files is set. - Fixed JavaScript error when form contains a currency format number field but no calculation. - Fixed the missing edit columns icon on the entry list. - Fixed undefined index notice isRequired in GFFormDisplay::get_field_content(). - Fixed the localization of the select files button in the multi-file upload field. - Removed the gform_webapi_max_accounts_settings_page filter. - Removed the gform_filters_max_user_accounts filter. ------------------------------------------------------------------------------------------------------------------- Version 1.8 - Added API to allow developers to easily perform operations such as read/update/delete/create forms and entries - Added Web API to allow developers to perform operations such as read/update/delete/create forms and entries from a remote web site - Added filter to export to allow entries to be changed before exporting them - Added support for mu-plugins deployment - Added JS filter: "gform_calculation_result" to allow modifying the calculated result - Added JS filter: "gform_calculation_format_result" to allow user to override default formatting to calculated result - Added fontawesome webfonts and icon support for form admin - Added trash for forms - Added sorting to form list - Added form locking - Added entry locking - Added form settings locking - Added plugin settings locking - Added locking to the Add-On Framework - Added Romanian and Georgian translation files - Added Kosovo (KV) to the country list - Added Cayman Islands to country list - Added Active/Inactive functionality to Notifications - Added Active/Inactive functionality to Confirmations - Added Duplicate functionality to Notifications - Added Duplicate functionality to Confirmations (not for the default confirmation) - Added enhanced entry search - Added enhanced filters to entry export - Added Query String setting to Page Confirmation - Added hierarchy to the Post Category field UI when the "Select Categories" setting is active. - Added "Form Pending Message" option to Schedule Form restrictions in Form Settings - Added gform_process_form hook - Added Multi-file upload support to the File Upload field - Added max file size setting to single file upload field - Added two filters to next page button. ("gform_next_button", and "gform_next_button_FORMID"). The first is a filter that applies to all forms. The second applies to a specific form. - Added two filters to previous page button. ("gform_previous_button", and "gform_previous_button_FORMID"). The first is a filter that applies to all forms. The second applies to a specific form. - Added new style JS filter for the original Javascript filter gform_product_total() so that multiple filters can be applied to it - Added new notification hook (gform_email_fields_notification_admin) to allow list of email fields to be filtered - Added support for any/all mode for field filters in the search queries and API - Added clean up of temp files removed from form submissions - Added clean up of files older than 48 hours from abandoned submissions - Added gform_form_trash_link filter to replace the deprecated gform_form_delete_link filter - Added a "validate formula" button to the calculation formula setting in the form editor - Added the "instructions" and "checkbox_label" properties of the feed_condition field in GFFeedAddOn - Added gformGetProductQuantity() JS function for getting current quantity of an item; extracted from gformCalculateProductPrice() - Added GFFormDisplay::is_last_page() method as an easier method for determining if the last page of the form is being submitted - Added support for GF_DEBUG constant on AJAX iframe to more easily allow viewing the contents of the iframe when debugging AJAX forms - Added GFFormsModel::get_form_ids() - Added multifile support to the 'post custom field' field (file upload field type) - Added Entry ID, Entry Date, Starred, IP Address, Source URL, Payment Status, Payment Date, Payment Amount, Transaction ID and User to the list of available fields in the entry list search, export conditional logic and Add-On Framework results page filter. - Added sorting by active/inactive in form list - Added form-specific version of "gform_register_init_scripts" hook - Added JS filter: "gform_spinner_url" to allow modifying the spinner URL with the new gformInitSpinner() function - Added logging statements to GFFormsModel::create_post() - Added logging statements to GFAsyncUpload::upload() - Updated GFFormDisplay::register_form_init_scripts() function to include 'is_ajax' parameter - Updated 'gform_register_init_scripts' action to pass 'is_ajax' parameter - Updated gravityforms_addon_browser capability to be gravityforms_view_addons since that is the one actually in use - Updated GFFormsModel::get_entry_meta() to support an array of form IDs and all form IDs (zero) - Updated how GFFormsModel::prepare_value() handled credit card fields, allowing default formatting to be overwritten for the last credit card number - Updated icons to use webfont where possible - Updated CSS file removing IE 7 hacks and removed inline style blocks - Updated the formatting for the Danish Krone - Updated the styles of the form list and entry list to emphasise alternate rows - Updated the credit card field HTML5 markup to use an HTML text input with a pattern instead of a number input - Updated upgrade process so that it gets aborted if database user doesn't have the proper permission to change or create tables - Updated product labels to allow html formatting in the notifications and entry detail page instead of showing the html tags - Updated {form_title} merge tag so that it is not available as a choice for field default values (since it is not supported there). - Updated gravity_form() function call to take "echo" parameter. - Updated page break fields in admin - replaced imagery with translatable text strings - Updated admin.css for new icon and page break markup and styles - Updated the merge tags cursor to pointer (hand) - Updated GFFormsModel::build_lead_array() to include long values by default. GFFormsModel::search_leads() and GFFormsModel::get_leads() now include long values in entry objects. - Updated date range tooltip on export entries page - Updated bulk form actions text - Updated the hierarchy indicator in the Post Category field from spaces to continuous lines - Updated the results page to display as a view of the gf_entries page so the gravityforms_view_entries capability is required instead of gravityforms_edit_forms (in addition to the gravityforms_{add-on}_results capability) - Updated the results page filter box from sticky (always visible) and fixed height to static and fluid height - Updated form submission process to trim leading and trailing spaces before validation and before saving. Added the gform_trim_input_value filter so it's possible to override this behaviour by field and by form. - Updated calculation formula so that it is now trimmed in the form editor - Updated single product field. Removed Admin Label setting - Updated conditional logic for fields with choices to display dropdown values for "is" and "is not" operators and a textbox values for other operators - Updated automatic license key population so that it is remotely validated on first install and version change - Updated the behaviour of the number field to add a leading zero if missing before decimal/comma (ie .5 or ,5 is now validated and stored as 0.5 or 0,5) - Updated resend notification UI so that it displays an appropriate message when no notifications are configured - Updated tooltip function to optimize performance for WPML users - Updated 'gform_is_value_match' filter to optionally pass rule object being validated - Updated the location where the load_plugin_textdomain function is loaded so translations by third-party apps are loaded - Updated code to use functions mb_substr and mb_strlen to truncate large text values before inserting them in the DB to accommodate for Chinese characters and other multi-byte characters - Updated admin styles to comment out button styles conflicting with WP default button styles - Updated remote license key validation procedure so that it consolidates all add-ons and gravity forms into one request/response to save requests to the Gravity Help server. - Updated form meta format to JSON - Updated the "Delete Form" link in the form editor to "Move to trash". - Updated the product quantity input type to "number" when HTML5 is enabled in settings - Updated the credit card number input type to "number" when HTML5 is enabled in settings - Updated the credit card security code input type to "number" when HTML5 is enabled in settings - Updated references to gforms_gravityforms script handle to gform_gravityforms for consistency - Updated spanish translation file - Updated min required WP version to 3.4 (necessitated by use of wp_is_mobile() function) - Updated domain in add-on include files to use gravityforms for translations - Updated hungarian translation file - Updated the button text "Cancel" on the Bulk Add / Predefined Choices so it may be translated into other languages - Updated {ip} merge tag to use GFFormsModel::get_ip() method - Updated GFFormsModel::get_ip() method to try for $_SERVER['HTTP_CLIENT_IP'] first - Updated form settings to use "label" instead of "name" when getting tab label - Updated jQuery calls so that the deprecated jQuery.live() method isn't used - Updated POT file - Updated the Web API to respond always with a 200 HTTP status along with a JSON object containing the status code and response - Updated gformInitSpinner() to be generic and moved to gravityforms.js - Updated enqueue and print script functions to enqueue gravityforms.js when AJAX is enabled - Updated confirmation and notification titles to link to edit view for that item - Updated the help page: removed references to the forum - Updated the field filters on the export entries page and results page to include greater than and less than operators by default - Fixed search criteria operators for likert fields - Fixed issue where datepicker was displaying below WP content - Fixed issue with ReCAPTCHA field throwing Javascript error - Fixed tabindex for AJAX enabled forms after validation - Fixed validation of standard phone field when value is zero - Fixed issue where no formatting was being applied to calculated results - Fixed issue where [gravityforms] shortcode (plural) was not detected and scripts were not loading correctly - Fixed bulk actions at the bottom of the form list to reflect recent changes - Fixed strings that weren't properly localized - Fixed an issue where the confirmation message would not be displayed below the progress bar on AJAX enabled forms. - Fixed an issue with GFCache which can result in long keys getting cut off. Keys are now hashed. - Fixed misspelling - Fixed issue with weekly form scheduling - Fixed conflict on add-on page causing an error when installing new plugins - Fixed conditional logic conflict - Fixed issue with pricing formatting on AJAX forms - Fixed issue with entry list page where more entries were being used than the ones selected when applying actions - Fixed issue with notification causing form to be "blank" in the editor under certain conditions - Fixed issue with multisite database upgrade - Fixed issue when creating a form using special characters - Fixed dynamic population of admin only multi-selects - Fixed dynamic population of admin only list fields - Fixed issues with switched parameters on get_parameter_value() call causing issues with pre-populating certain field types. - Fixed issue with credit card field markup - Fixed issue where zero amount totals were not being saved to carry over in Total merge tags - Fixed issue with legacy notifications causing emails to be sent using field id instead of email address - Fixed issue when adding multiple total fields to a form causing the total field entry data and total field merge tag to not save the correct value - Fixed issue with calculations where formula choked when calculating single-input products when currency number format was 'decimal_comma' - Fixed issue with merge tags entered in the front end being executed when the field is added to notifications - Fixed an issue with single file upload where the entry wouldn't fail validation if the file exceeded the upload_max_filesize PHP init setting - Fixed an issue the results page where single row likert fields display multiple rows with a form that's been imported - Fixed an issue the results page when the error message doesn't display after a database timeout - Fixed notice thrown in multi-site logging for $is_setup_completed variable - Fixed encoding issue on Form Settings causing double quotes on form title to get dropped - Fixed invalid license key message - Fixed issue with database upgrade on multi-sites - Fixed issue where form admin fields menu doesn't remain on screen when scrolling and in no conflict mode - Fixed the merge tags UI and the select columns UI on the entry list to display only Card Type and Card Number for the credit card field - Fixed the calculation formula so that it accepts line breaks - Fixed the add-on feed page feed condition setting - Fixed issue when truncating text with special characters - Fixed issue with date formatting - Fixed text "Insert Form" so that it is localized - Fixed the gform_save_field_value filter - Fixed issue where some calculations resulted in "Infinity" being output to calculated field - Fixed the gform_previous_button filter on the last page. Removed from first page. - Fixed issue where using decimal values from drop downs (and other fields) resulted in ignored decimals - Fixed issue on export entries page allowing exports to be perform without a selected field - Fixed typo on the export forms tab - Fixed typo in the tooltip for the allowed file extensions setting in the fileupload field - Fixed issue with the hidden field type in the form editor where the merge tags UI for the default value wasn't displaying correctly - Fixed issue with date field not resetting to default value correctly when hidden by conditional logic - Fixed issue where number of updates available was being displayed when user didn't have permissions to update the plugin - Fixed issue with for in loops causing strange behavior under certain conditions. - Fixed issue on form notifications page where WP footer was overlapping notifications list - Fixed issue when adding fields in the form editor. Users are now prevented from adding a field while another field is in the process of being added - Fixed captcha math input id - Deprecated the gform_form_delete_link filter - Deprecated the gform_calculation_result function - API: Added further details to some error messages - API: Updated Web API slug from gfwebapi to gravityformsapi - API: Updated the API Functions to remove the capability checks - AF: Added Payment Add-On base class to help and provide consistency when creating payment processors. - AF: Added caching for feed addon's get_feeds() method - AF: Added support for 'validation_callback' and 'dependency' properties for Field Map child fields - AF: Added support for storing previous settings when saving new settings - AF: Added support for plugin_settings_title() overridable function - AF: Added "feedName" as default column and field setting for payment add-on - AF: Added add_field_before() and add_field_after() functions to facilitate adding new fields to existing field groups - AF: Added support for 'style', 'class', and 'id' properties to $sections - AF: Added feed_settings_title() method to Feed Add-on rather; used as title of feed detail page - AF: Renamed has_feed_for_this_addon() method to has_feed() - AF: Updated rgempty() function to support passing just an array for empty() validation - AF: Updated setting_dependency_met() method to handle when false value is passed as $dependency - AF: Updated setting validation to not validate settings where dependency is not met - AF: Updated all calls to $_short_title to use get_short_title() - AF: Updated scripts and styles so that they are registered and can be used as dependencies - AF: Removed some inline styles and added to admin.css - AF: Updated section title markup to use

and match styles of GF Form Settings - AF: Updated get_setting() function to support a $settings parameter - AF: Updated Payment Add-on fields to be grouped by their dependencies (based on transaction type) - AF: Updated feed_callback icon to use font - AF: Updated error icon to use fontawesome ------------------------------------------------------------------------------------------------------------------- Version 1.8.beta4.1 - Added 'currency' to the options for number format in the number field. - Updated logging so that number of Web API calls are recorded. - Updated GFFormsModel::get_prepared_input_value(), used by GFFormsModel::create_lead() to handle multi-file fileupload fields correctly. - Updated gravity_form() function call to take "echo" parameter. - Updated {form_title} merge tag so that it is not available as a choice for field default values (since it is not supported there). - Updated POT file - Updated product labels to allow html formatting in the notifications and entry detail page instead of showing the html tags - Fixed a parser error generated in the form list for certain systems. - Fixed issue with {form_title} merge tag displaying for the default value of fields where it is not currently supported. - Fixed default value merge tag list for hidden fields - Fixed the WordPress logo not appearing on the preview and print pages - API: Fixed the Web API paging offset for GET entries. - AF: Updated Payment Add-On to reflect future change in subscription flow ------------------------------------------------------------------------------------------------------------------- Version 1.8.beta4 - Updated upgrade process so that it gets aborted if database user doesn't have the proper permission to change or create tables - Updated FontAwesome Webfont library to 4.0.3 - Updated GFFormsModel::create_lead() method to correctly populate multiple total fields - Updated the credit card field HTML5 markup to use an HTML text input with a pattern instead of a number input - Updated the styles of the form list and entry list to emphasise alternate rows - Updated icons to use webfont where possible - Updated CSS file removing IE 7 hacks and removed inline style blocks - Updated the formatting for the Danish Krone - Updated the text "Enable access to the API" so it can be translated - Replaced icon images - Replaced image-based icons with webfont icons where possible - Removed IE7 CSS hacks from CSS files - Removed several deprecated icon images - Removed several inline style blocks and took care of some general code cleanup - Fixed issue with license validation when upgrading from 1.7 to 1.8 - Fixed duplicate IDs for the credit card field - Fixed various whitespace issues - AF: Added Payment Add-On to help and provide consistency when creating payment processors. - AF: Added remove_field() method for simplify removing a setting from any GFAddon settings array - API: Fixed issue with add_entry() and update_entry() for payment entries where some values would be inserted without quotes generating errors. - API: Fixed add_entry() and update_entry() for payment entries ------------------------------------------------------------------------------------------------------------------- Version 1.8.beta3 - Added gformGetProductQuantity() JS function for getting current quantity of an item; extracted from gformCalculateProductPrice() - Added GFFormDisplay::is_last_page() method as an easier method for determining if the last page of the form is being submitted - Added support for GF_DEBUG constant on AJAX iframe to more easily allow viewing the contents of the iframe when debugging AJAX forms - Added GFFormsModel::get_form_ids() - Updated GFFormDisplay::register_form_init_scripts() function to include 'is_ajax' parameter - Updated 'gform_register_init_scripts' action to pass 'is_ajax' parameter - Updated gravityforms_addon_browser capability to be gravityforms_view_addons since that is the one actually in use - Updated GFFormsModel::get_entry_meta() to support an array of form IDs and all form IDs (zero) - Updated how GFFormsModel::prepare_value() handled credit card fields, allowing default formatting to be overwritten for the last credit card number - Fixed issue where function setup_site had been changed to setup_database but code not updated; caused fatal error to be thrown - Fixed entry sorting by entry meta - Fixed multi-file merge tag output - AF: Added caching for feed addon's get_feeds() method - AF: Added support for 'validation_callback' and 'dependency' properties for Field Map child fields - AF: Added base class for Payment Add-ons. - AF: Updated payment add-on to only run authorize() method on the last page - AF: Updated the results of fields without choices to display latest non-empty values instead of all values - AF: Updated billing cycle strings to be translatable - API: removed html, page and section fields from update_entry() and add_entry() ------------------------------------------------------------------------------------------------------------------- Version 1.8.beta2 - Added multifile support to the 'post custom field' field (file upload field type) - Added Entry ID, Entry Date, Starred, IP Address, Source URL, Payment Status, Payment Date, Payment Amount, Transaction ID and User to the list of available fields in the entry list search, export conditional logic and Add-On Framework results page filter. - Added sorting by active/inactive in form list - Added form-specific version of "gform_register_init_scripts" hook - Added JS filter: "gform_spinner_url" to allow modifying the spinner URL with the new gformInitSpinner() function - Added logging statements to GFFormsModel::create_post() - Added logging statements to GFAsyncUpload::upload() - Updated the Web API to respond always with a 200 HTTP status along with a JSON object containing the status code and response - Updated gformInitSpinner() to be generic and moved to gravityforms.js - Updated enqueue and print script functions to enqueue gravityforms.js when AJAX is enabled - Updated confirmation and notification titles to link to edit view for that item - Updated the help page: removed references to the forum - Updated the field filters on the export entries page and results page to include greater than and less than operators by default - Moved the QR Code library to the includes folder so it can be reused more easily - Fixed element IDs for the date field - Fixed search criteria operators for likert fields - Fixed an issue with the field filter drop down which could result in duplicate inputs - Fixed issue with the field filters where the mode is added more than once - Fixed issue where datepicker was displaying below WP content - Fixed issue where notification edit page was "busting out" of the WP wrapper - Fixed the styles for the active/inactive column of the notification list and confirmation list - Fixed the styles for the field header in the form editor in Chrome. - Fixed an issue with sorting entries from the API - Fixed issue with ReCAPTCHA field throwing Javascript error - Fixed an issue with multi-file uploader opening multiple file dialogs - Fixed issue with calculation formatting - Fixed an issue with the multi-file uploader in IE8 - Fixed an issue with the multi-file uploader for forms with conditional logic in IE - Fixed tabindex for AJAX enabled forms after validation - Fixed validation of standard phone field when value is zero - Fixed issue where no formatting was being applied to calculated results - Fixed issue where [gravityforms] shortcode (plural) was not detected and scripts were not loading correctly - Fixed bulk actions at the bottom of the form list to reflect recent changes - AF: Added support for storing previous settings when saving new settings - AF: Added support for plugin_settings_title() overridable function - AF: Added "feedName" as default column and field setting for payment add-on - AF: Added add_field_before() and add_field_after() functions to facilitate adding new fields to existing field groups - AF: Added support for 'style', 'class', and 'id' properties to $sections - AF: Added feed_settings_title() method to Feed Add-on rather; used as title of feed detail page - AF: Renamed has_feed_for_this_addon() method to has_feed() - AF: Updated rgempty() function to support passing just an array for empty() validation - AF: Updated setting_dependency_met() method to handle when false value is passed as $dependency - AF: Updated setting validation to not validate settings where dependency is not met - AF: Updated all calls to $_short_title to use get_short_title() - AF: all scripts and styles are now always registered so they can be used as dependencies - AF: Removed some inline styles and added to admin.css - AF: Updated section title markup to use

and match styles of GF Form Settings - AF: Updated get_setting() function to support a $settings parameter - AF: Updated Payment Add-on fields to be grouped by their dependencies (based on transaction type) - AF: Updated feed_callback icon to use font - AF: Updated error icon to use fontawesome - AF: fixed results filter mode initialization - API: added further details to some error messages - API: Updated Web API slug from gfwebapi to gravityformsapi - API: Updated the API Functions to remove the capability checks ------------------------------------------------------------------------------------------------------------------- Version 1.8.beta1 - Added API to allow developers to easily perform operations such as read/update/delete/create forms and entries - Added Web API to allow developers to perform operations such as read/update/delete/create forms and entries from a remote web site - Added filter to export to allow entries to be changed before exporting them - Added support for mu-plugins deployment - Added JS filter: "gform_calculation_result" to allow modifying the calculated result - Added JS filter: "gform_calculation_format_result" to allow user to override default formatting to calculated result - Added fontawesome webfonts and icon support for form admin - Added trash for forms - Added sorting to form list - Added form locking - Added entry locking - Added form settings locking - Added plugin settings locking - Added locking to the Add-On Framework - Added Romanian and Georgian translation files - Added Kosovo (KV) to the country list - Added Cayman Islands to country list - Added Active/Inactive functionality to Notifications - Added Active/Inactive functionality to Confirmations - Added Duplicate functionality to Notifications - Added Duplicate functionality to Confirmations (not for the default confirmation) - Added enhanced entry search - Added enhanced filters to entry export - Added Query String setting to Page Confirmation - Added hierarchy to the Post Category field UI when the "Select Categories" setting is active. - Added "Form Pending Message" option to Schedule Form restrictions in Form Settings - Added gform_process_form hook - Added Multi-file upload support to the File Upload field - Added max file size setting to single file upload field - Added two filters to next page button. ("gform_next_button", and "gform_next_button_FORMID"). The first is a filter that applies to all forms. The second applies to a specific form. - Added two filters to previous page button. ("gform_previous_button", and "gform_previous_button_FORMID"). The first is a filter that applies to all forms. The second applies to a specific form. - Added new style JS filter for the original Javascript filter gform_product_total() so that multiple filters can be applied to it - Added new notification hook (gform_email_fields_notification_admin) to allow list of email fields to be filtered - Added support for any/all mode for field filters in the search queries and API - Added clean up of temp files removed from form submissions - Added clean up of files older than 48 hours from abandoned submissions - Added gform_form_trash_link filter to replace the deprecated gform_form_delete_link filter - Added a "validate formula" button to the calculation formula setting in the form editor - Added the "instructions" and "checkbox_label" properties of the feed_condition field in GFFeedAddOn - Updated page break fields in admin - replaced imagery with translatable text strings - Updated admin.css for new icon and page break markup and styles - Updated the merge tags cursor to pointer (hand) - Updated GFFormsModel::build_lead_array() to include long values by default. GFFormsModel::search_leads() and GFFormsModel::get_leads() now include long values in entry objects. - Updated date range tooltip on export entries page - Updated bulk form actions text - Updated the hierarchy indicator in the Post Category field from spaces to continuous lines - Updated the results page to display as a view of the gf_entries page so the gravityforms_view_entries capability is required instead of gravityforms_edit_forms (in addition to the gravityforms_{add-on}_results capability) - Updated the results page filter box from sticky (always visible) and fixed height to static and fluid height - Updated form submission process to trim leading and trailing spaces before validation and before saving. Added the gform_trim_input_value filter so it's possible to override this behaviour by field and by form. - Updated calculation formula so that it is now trimmed in the form editor - Updated single product field. Removed Admin Label setting - Updated conditional logic for fields with choices to display dropdown values for "is" and "is not" operators and a textbox values for other operators - Updated automatic license key population so that it is remotely validated on first install and version change - Updated the behaviour of the number field to add a leading zero if missing before decimal/comma (ie .5 or ,5 is now validated and stored as 0.5 or 0,5) - Updated resend notification UI so that it displays an appropriate message when no notifications are configured - Updated tooltip function to optimize performance for WPML users - Updated 'gform_is_value_match' filter to optionally pass rule object being validated - Updated the location where the load_plugin_textdomain function is loaded so translations by third-party apps are loaded - Updated code to use functions mb_substr and mb_strlen to truncate large text values before inserting them in the DB to accommodate for Chinese characters and other multi-byte characters - Updated admin styles to comment out button styles conflicting with WP default button styles - Updated remote license key validation procedure so that it consolidates all add-ons and gravity forms into one request/response to save requests to the Gravity Help server. - Updated form meta format to JSON - Updated the "Delete Form" link in the form editor to "Move to trash". - Updated the product quantity input type to "number" when HTML5 is enabled in settings - Updated the credit card number input type to "number" when HTML5 is enabled in settings - Updated the credit card security code input type to "number" when HTML5 is enabled in settings - Updated references to gforms_gravityforms script handle to gform_gravityforms for consistency - Updated spanish translation file - Updated min required WP version to 3.4 (necessitated by use of wp_is_mobile() function) - Updated domain in add-on include files to use gravityforms for translations - Updated hungarian translation file - Updated the button text "Cancel" on the Bulk Add / Predefined Choices so it may be translated into other languages - Updated {ip} merge tag to use GFFormsModel::get_ip() method - Updated GFFormsModel::get_ip() method to try for $_SERVER['HTTP_CLIENT_IP'] first - Updated form settings to use "label" instead of "name" when getting tab label - Updated jQuery calls so that the deprecated jQuery.live() method isn't used - Fixed an issue where the confirmation message would not be displayed below the progress bar on AJAX enabled forms. - Fixed an issue with GFCache which can result in long keys getting cut off. Keys are now hashed. - Fixed misspelling - Fixed issue with weekly form scheduling - Fixed conflict on add-on page causing an error when installing new plugins - Fixed conditional logic conflict - Fixed issue with pricing formatting on AJAX forms - Fixed issue with entry list page where more entries were being used than the ones selected when applying actions - Fixed issue with notification causing form to be "blank" in the editor under certain conditions - Fixed issue with multisite database upgrade - Fixed issue when creating a form using special characters - Fixed dynamic population of admin only multi-selects - Fixed dynamic population of admin only list fields - Fixed issues with switched parameters on get_parameter_value() call causing issues with pre-populating certain field types. - Fixed issue with credit card field markup - Fixed issue where zero amount totals were not being saved to carry over in Total merge tags - Fixed issue with legacy notifications causing emails to be sent using field id instead of email address - Fixed issue when adding multiple total fields to a form causing the total field entry data and total field merge tag to not save the correct value - Fixed issue with calculations where formula choked when calculating single-input products when currency number format was 'decimal_comma' - Fixed issue with merge tags entered in the front end being executed when the field is added to notifications - Fixed an issue with single file upload where the entry wouldn't fail validation if the file exceeded the upload_max_filesize PHP init setting - Fixed an issue the results page where single row likert fields display multiple rows with a form that's been imported - Fixed an issue the results page when the error message doesn't display after a database timeout - Fixed notice thrown in multi-site logging for $is_setup_completed variable - Fixed encoding issue on Form Settings causing double quotes on form title to get dropped - Fixed invalid license key message - Fixed issue with database upgrade on multi-sites - Fixed issue where form admin fields menu doesn't remain on screen when scrolling and in no conflict mode - Fixed the merge tags UI and the select columns UI on the entry list to display only Card Type and Card Number for the credit card field - Fixed the calculation formula so that it accepts line breaks - Fixed the add-on feed page feed condition setting - Fixed issue when truncating text with special characters - Fixed issue with date formatting - Fixed text "Insert Form" so that it is localized - Fixed the gform_save_field_value filter - Fixed issue where some calculations resulted in "Infinity" being output to calculated field - Fixed the gform_previous_button filter on the last page. Removed from first page. - Fixed issue where using decimal values from drop downs (and other fields) resulted in ignored decimals - Fixed issue on export entries page allowing exports to be perform without a selected field - Fixed typo on the export forms tab - Fixed typo in the tooltip for the allowed file extensions setting in the fileupload field - Fixed issue with the hidden field type in the form editor where the merge tags UI for the default value wasn't displaying correctly - Fixed issue with date field not resetting to default value correctly when hidden by conditional logic - Fixed issue where number of updates available was being displayed when user didn't have permissions to update the plugin - Fixed issue with for in loops causing strange behavior under certain conditions. - Fixed issue on form notifications page where WP footer was overlapping notifications list - Fixed issue when adding fields in the form editor. Users are now prevented from adding a field while another field is in the process of being added - Fixed captcha math input id - Deprecated the gform_form_delete_link filter - Deprecated the gform_calculation_result function ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.12 - Fixed E_STRICT notices under WP 3.6 running on PHP 5.4 ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.11 - Updated multi-site database upgrade procedure so that it only updates all sites in the network on network admin pages - AF: Updated all functionality activation checks, e.g. has_plugin_settings_page(), to use GFAddOn:method_is_overridden(); ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.10 - Added the option to select all entries on all pages for bulk actions - Added support for touchscreen devices - AF: removed vertical_label support from settings_xxx() fields - AF: removed extra
around inputs - Fixed issue with pagination on entry list page displaying wrong counts after a search is performed - Updated tooltips so that they use the jQuery UI Tooltip script instead of qTip ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.9 - Added safeguard to prevent double clicks from creating duplicate entries - AF: added support for addons to create a "Plugin Page", which are pages specific for that addon linked from the left menu (similar to the old style addon pages). - AF: added "progress" and "timestamp" to the results calculation - AF: added max_execution_time to the params of GFResults::get_results_data(). Changed the default value from 20 to 15. - AF: added the gform_admin_pre_render filter to GFAddOn::form_settings_page() so the form object and merge tags can be filtered on form settings pages for add-ons - AF: renamed GFResults::get_entries_data() to GFResults::get_results_data() - AF: fixed an issue with the results page for forms with a Quiz fields and with a high volume of entries - AF: fixed an issue with the results page with HTML in choice labels - AF: fixed an issue where entry meta might not get registered before the cache is invoked; Added GFAddOn::pre_init(). Moved the entry meta hook into pre_int(). - Updated tooltip function so that it uses a global variable improving performance on sites using WPML - Fixed notices ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.8 - Updated masked input script to 1.3.1 - Updated chosen script to 0.9.12 - AF: Added the "horizontal" property to the settings_radio field - Added logging statements around the setup() function ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.7 - Updated ManageWP hooks so that they fire in the admin and front end - Changed GFFormsModel::search_leads() to accept both a single form id and an array of form ids - AF: Added tooltips to the results markup - AF: Added a callback to allow the results filters to be modified - AF: Added gform_filters_pre_results filter to allow the results filters to be modified - AF: Added support for the contains operator in the results filters - AF: Added support for likert scores on the results page - AF: Added vertical_label attribute to text box and textarea settings - AF: Added the id attribute to setting rows - AF: Changed the results page to include results filters for all fields and all entry meta by default - AF: Updated Addon Framework uninstall so that it displays the "Uninstall success" message inside the settings panel - AF: Updated the Feed Addon to display a more friendly message when no feeds are configured - AF: Fixed more results link on the results page - AF: Fixed no output attributes for field choices - AF: Fixed issue with "hidden" property of AFW settings fields - AF: Fixed issue with new feed being created multiple times - AF: Fixed _get_base_path() and _get_base_url() ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.6 - AF: Added support for labels, tooltips and default values to text and textarea settings - AF: Added support for tooltips in checkbox choices - AF: Added settings_radio() - AF: Moved some MailChimp specific functions back into MailChimp - Fixed issue with admin_title filter return false instead of original title when not on form settings page ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.5 - Fixed notice if confirmations object doesn't exist (it could be removed using a hook) ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.4 - Fixed bug with hidden, single, or calculated product inputs object creation treating the field id as a string instead of number, resulting in the ids of the items in the inputs object not matching the field id ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.3 - AFW: Changed script enqueueing to add scripts automatically to preview and print pages - Fixed entry meta conditional logic in confirmations and notifications - AFW: moved support for paypal integration into feed addon - Added support for updating page title based on settings page - AFW: added support for 'save' field type - Added support for filtering return of 'has_conditional_logic', useful for developers using conditional logic in objects not checked by Gravity Forms ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.2 - Updated dutch translation file - Fixed localization issue - Updated Pot file ------------------------------------------------------------------------------------------------------------------- Version 1.7.6.1 - AFW: Added maybe_process_feed(), handles getting feeds and only calling process_feed() method when feed should be processed ------------------------------------------------------------------------------------------------------------------- Version 1.7.6 - Fixed "ob_clean(): failed to delete buffer" notice thrown in export - Fixed issue with create_lead() not taking conditional logic into account for calculation fields - Fixed issue with addon framework's checkbox fields onclick attribute - Added JS hook: gform_conditional_logic_fields, allows filtering which fields are avialable for conditional logic (and adding custom fields) - Added JS hook: gform_conditional_logic_operators, allows filtering which conditional logic operators are avialable for the selected field - Added JS hook: gform_conditional_logic_values_input, allows filtering the input provided for the conditional logic comparison value - Various modifications in the conditional logic functions found in form_admin.js to better support the new filters - Added entry meta to conditional logic for confirmations and notifications - Added gform_entry_meta_conditional_logic_confirmations and gform_entry_meta_conditional_logic_notifications so the entry meta filters can be modified depending on their context - Fixed typo in GetLabel function when testing for "undefined", was "undefind" - Fixed issue where not specifying a field label could at times throw javascript errors (merge tags) - Updated merge tag list in admin to use admin label if one exists - Fixed issue where the database wasn't being updated on every site when updating a network activated install of Gravity Forms, causing forms to display an error after updating - Fixed issue with quantity drop down when "enhanced interface" is enabled not calculating the total correctly - Fixed issue with limiting form entries per day not validating the form properly - Added an Add-On Framework to provide tools for developers when creating new Gravity Forms Add-Ons ------------------------------------------------------------------------------------------------------------------- Version 1.7.5 - Fixed issue with new form not displaying fields after first time it was saved - Fixed issue with notification's conditional logic causing notifications to not be sent even when conditional logic was disabled - Updated save_input function to delete from the rg_lead_detail_long table before deleting from rg_lead_detail - Changed GFCache::flush() to prevent deleting persistent transients by default - Various fixes for gaddon support - Updated gf_vars js variable to be automatically included based on script-dependency ------------------------------------------------------------------------------------------------------------------- Version 1.7.4 - Fixed bug in sending notifications when a form field is chosen - Updated POT file - Added support for object methods to the JavaScript hook framework. ------------------------------------------------------------------------------------------------------------------- Version 1.7.3 - Changed form switcher so that it redirects to the main form settings tab when switching form while at any other form settings tab - Updated post creation process to create post initially as a draft and then update to desired post status - Fixed issue where merge tag drop down did not display items when a required extended name field was present - Added new hook to prevent new forms from being created in the demo site - Fixed issue with form duplication routine not duplicating confirmations and notifications - Fixed issue with new notifications being created with the "enable conditional logic" checkbox checked - Fixed issue with entry date timezone conversion when exporting entries - Added JS hook: 'gform_is_value_match' allows filtering whether the source and target values are a match - Added PHP hook: 'gform_is_value_match' allows filtering whether the source and target values are a match - Fixed script path issue when registering scripts by using get_base_url() - Added gaddon JS object for use with the upcoming add-on framework - Added support for "tab_label" setting when creating "Settings Pages" - Updated SaveForm() in js.php to delete the data that should no longer be stored in the form meta from the form object: 'notficadtion', 'notifications', 'autoResponder', 'confirmation', and 'confirmations' - Fixed issue with calculating fields not working correctly when it contained another calculated field in its formula - Updated JS GetFieldById() function to allow passing of input ID (i.e. "3.3") - Added JS filter: 'gform_conditional_logic_description' allows you to modify the descriptive HTML (i.e. "Show/hide this field if any/all of the following match") - Added JS filter: 'gform_conditional_object' allows you to modify the conditional logic object based on the object type - Added 'gf_currency_config' to gf_vars array, one step closer to deprecating gf_global array - Fixed several issues with unlocalized strings - Fixed issue with notification logging message - Fixed issue with file uploads where concurrent submissions may result in files being deleted or assigned to the wrong entry ------------------------------------------------------------------------------------------------------------------- Version 1.7.2 - Fixed issue with enqueueing the wrong css file on the preview page ------------------------------------------------------------------------------------------------------------------- Version 1.7.1 - Fixed conflict with minifiers because of @import statements in forms.css ------------------------------------------------------------------------------------------------------------------- Version 1.7 - Fixed issue with jQuery tabs creating a Javascript error on the form editor page when using WP 3.6 beta - Added language attributes to the preview page's html tag - Fixed issue with entry limit and form scheduling validation on preview page not displaying the appropriate message - Added div wrapper element with class name gf_submission_limit_message to submission limit message so it can be styled more easily. - Added improved right to left (RTL) language support for the admin, preview page and front end. - Added Gravity Forms specific classes to the dashboard widget to allow user styling - Fixed issue causing legacy notifications to be reloaded after all notifications are deleted. - Updated form settings submenu style to avoid issue where menu is hidden before it can be selected - Updated update_lead() function so that it updates the cached lead. - Fixed GFFormsModel::gform_get_meta_values_for_entries() when $entry_ids is empty - Updated gfMergeTags class to trigger input's change event after tag inserted - Fixed issue with form settings submenu hiding before mouse can move to it - Fixed error when trying to resend entry notifications when no conflict mode is on - Fixed bug in adminonly fields that were set to be dynamically populated from the querystring ------------------------------------------------------------------------------------------------------------------- Version 1.7.beta2 - Fixed issue with calculation fields on currencies that use a comma as the decimal separator - Updated Zip to ZIP - Updated send_notifications() function to accept single path attachments (previously only supported arrays) - Added support for WP Editor merge tag icons and applied to the Notification message textarea - Moved GFNotificationsTable to notifications.php - Fixed issue preventing modifications done from the gform_entry_post_save filter to not be available on notifications - Added gform_entry_post_save filter to allow entries to be filtered after being saved - Fixed issue where when accessing a new form and not adding any fields, unsaved changes notification is still triggered - Fixed issue where "text" confirmations were having confirmation message replaced with default message when upgrading to 1.7 - Moved notification functions form form_settings.php to notifications.php - Renamed the hook gform_confirmation_before_save -> gform_pre_confirmation_save - Fixed issues with notification tooltips - Fixed issue with preview page returning a 404 on sites where wordpress is running in a subfolder - Removed the gform_before_form_settings_update javascript hook; use the gform_pre_form_settings_save php hook instead - Renamed the javascript hook gform_before_form_editor_update -> gform_pre_form_editor_save - Renamed the hook gform_notification_before_save -> gform_pre_notification_save - Renamed the hook gform_before_email -> gform_pre_send_email - Removed debug statement which caused a javascript error to be thrown in Internet Explorer when switching forms in the editor - Fixed issue with calculated products not saving their values correctly - Fixed conflict with Custom Post Types plugin causing JS errors - Added mt-prepopulate class to "Default Value" setting on form field Advanced tab so the Merge Tag drop down does not include form fields - Fixed issue with custom jQuery UI stylesheet being enqueued when file did not exist - Added gform_admin_pre_render hook to notifications edit page - Changed the form actions submenu hover class to make it more generic and applicable to all submenus. ------------------------------------------------------------------------------------------------------------------- Version 1.7.beta1 - Fixed issue with notifications being sent with extra padding ------------------------------------------------------------------------------------------------------------------- Version 1.7.alpha2.2 - Fixed backward compatibility of the gform_form_actions filter - Added GFCache class to common.php and changed GFFormsModel::get_lead_field_value() and GFCommon::is_section_empty() to use GFCache. - Fixed backward compatibility of the gform_custom_merge_tags filter - Added group labels to new merge tag list - Updated form settings to have gform_pre_form_settings_save filter and removed separation of standard and advanced settings ------------------------------------------------------------------------------------------------------------------- Version 1.7.alpha2.1 - Updated Form Field title to be marked as required on new form creation modal ------------------------------------------------------------------------------------------------------------------- Version 1.7.alpha2 - Moved legacy confirmation settings hook so that it is above the submit button - Updated form settings menu (in form actions list) to match functionality for form settings menu in toolbar - Updated conditional logic to be required for non-default confirmations - Fixed issue where error icon was still displaying next to form title on new form modal ------------------------------------------------------------------------------------------------------------------- Version 1.7.alpha1 - Fixed no-conflict scripts - Cleaned up datepicker UI - Added tooltip to merge tag icon ------------------------------------------------------------------------------------------------------------------- Version 1.7.dev7 - Added caching to get_lead_field_value, is_section_empty and is_field_hidden to improve performance on long forms - Fixed js issues when in no conflict mode - Changed GFFormsModel::search_leads and GFFormsModel::count_search_leads to support searching across all forms (form_id = 0) ------------------------------------------------------------------------------------------------------------------- Version 1.7.dev6 - Fixed issue with radio button Other choice not maintaining text when the form has conditional logic - Fixed javascript errors being thrown when Gravity Forms set to No Conflict Mode - Fixed issue with phone field not honoring the "No duplicate" field setting when phones are formatted slightly different - Updated form settings page to not run filter gform_editor_js ------------------------------------------------------------------------------------------------------------------- Version 1.7.dev5 - Added hook for changing args when getting all categories for post category fields - Added animation to form settings sub sections - Added the $form_id parameter to GFFormSettings::get_tabs($form_id) so tabs can be added conditionally. e.g. only show Quiz Settings when there's a quiz field on the form. - Changed GFCommon::$errors from private to public because it's now used in GFFormSettings::get_confirmation_ui_settings() - Added GFFormsModel::search_leads() and GFFormsModel::count_search_leads() ------------------------------------------------------------------------------------------------------------------- Version 1.7.dev4 - Fixed potential security hole on form_display.php by using json_encode/json_decode instead of serialize/unserialize ------------------------------------------------------------------------------------------------------------------- Version 1.7.dev3 - Updated form editor UI ------------------------------------------------------------------------------------------------------------------- Version 1.7.dev2 - Re-added jQuery event trigger 'gform_load_form_settings' for backwards compatibility - Added new JS filter 'gform_is_conditional_logic_field' to the form editor page - Added support for resending notifications using the new notification structure - Added form setting hooks to form editor page - Added new JS filter 'gform_before_form_editor_update' to the form editor page - Added new JS filter 'gform_before_form_settings_update' to form settings page - Fixed issue with City sublabel having a dot in the ID attribute instead of an underscore - Fixed issue with wpList script in WP 3.5 causing entry list trash and spam links not to work - Updated form button UI to include text on WP 3.5+ - Updated gform.doHook function to call functions via window - Fixed several styling issues with GF editor - Added auto-focus to form title field when new form modal launched - Added correct tabbing sequence for new form modal fields - Added "Settings" link to Form Settings submenu - Fixed issue with notification displaying validation errors where created with "Send To" set to "Field" - Fixed styling issues on entry detail page - Updated import/export pages to use new vertical tab format - Fixed issue where notifications of type field were not being sent - Fixed issue where confirmations were not in the legacy format when processing continues from paypal - Fixed issue where checking "show values" option on multi-choice fields was generating a JS error - Updated "Max Characters" field to only allow numbers to be entered - Updated post creation to not fire Buddy Press' save_post function until the post data is complete - Added new filter "gform_post_status_options" to allow addition of custom post status in field's post status setting add_action('gform_post_status_options', 'add_custom_post_status'); function add_custom_post_status($post_status_options) { $post_status_options['custom_status'] = 'My Custom Status'; return $post_status_options; } - Fixed issue where commas in checkbox post custom field fields with commas in the label/value resulted in multiple post meta values for a single checkbox value - Updated confirmation settings ui and code to load editing into new page, removed functions no longer called - Added confirm message when deleting a field or modifying/deleting a field choice that is depended on for conditional logic - Updated loop in get_calculation_value to be a foreach loop to eliminate an extra time through when filter was set to false - Added support for removing notifications - Added support for handling admin messages - Miscellaneous clean up - Updated location of notification messages on the edit page to be under the page title - Added new filter to allow new menu items on the Results toolbar item. Example usage: add_filter("gform_custom_toolbar_button", "add_results_toolbar_button", 10, 2); function add_results_toolbar_button($buttons, $form_id){ $capabilities = array("gravityforms_quiz_results"); $menu_items = array(); $menu_items[] = array( 'html' => '' . __('Quiz Results', "gravityformsquiz") . '', 'css_class' => '', 'capabilities' => $capabilities ); $buttons[] = array( 'key' => 'gform_results', 'html' => ' ' . __("Results", "gravityformsquiz") . '', 'css_class' => 'gf_form_toolbar_results', 'menu_items' => $menu_items, 'capabilities' => $capabilities ); return $buttons; } - Updated confirmations UI to better match new GF UI direction - Added new filter "gform_pre_validation" to allow add-ons to modify the form object before validation - Added new action "gform_view" to allow add-ons to add new views to the gf_edit_forms WordPress admin "page" ------------------------------------------------------------------------------------------------------------------- Version 1.7.dev1 - Added is_default_column to the gform_entry_meta filter allow developers to define default columns for the entry list - Fixed a warning notice with gform_get_meta when no key is found - Added gform_field_added and gform_field_deleted jQuery event actions - Fixed an issue which was causing gform_update_meta to insert multiple values for the same key - Added gform_entry_meta filter to allow developers to add custom propeties to the lead object. Allows lead meta data to be added as sortable columns to the entry list and export entries file. Added the following functions to assist: GFFormsModel::get_entry_meta(), GFFormsModel::update_entry_meta(), GFSelectColumns::get_selectable_entry_meta, GFExport::get_entry_meta() and gform_get_meta_values_for_entries($entry_ids, $meta_keys) Example usage: add_filter( 'gform_entry_meta', array( 'GFQuiz', 'entry_meta' ), 10, 2); public static function entry_meta($entry_meta, $form_id){ $form = RGFormsModel::get_form_meta($form_id); $quiz_fields = GFCommon::get_fields_by_type( $form, array( 'quiz' ) ); if ( false === empty ( $quiz_fields ) ) { $entry_meta['gquiz_score'] = array( 'label' => 'Quiz Score Total', 'is_numeric' => true, 'update_entry_meta_callback' => array('GFQuiz', 'update_entry_meta') ); $entry_meta['gquiz_grade'] = array( 'label' => 'Quiz Grade', 'is_numeric' => false, 'update_entry_meta_callback' => array('GFQuiz', 'update_entry_meta') ); $entry_meta['gquiz_percent'] = array( 'label' => 'Quiz Percentage', 'is_numeric' => true, 'update_entry_meta_callback' => array('GFQuiz', 'update_entry_meta') ); $entry_meta['gquiz_is_pass'] = array( 'label' => 'Quiz Pass/Fail', 'is_numeric' => false, 'update_entry_meta_callback' => array('GFQuiz', 'update_entry_meta') ); } return $entry_meta; } public static function update_entry_meta($key, $lead, $form){ $value = ""; $results = self::get_quiz_results( $form, $lead, false ); if ( $key == "gquiz_score" ) $value = $results["score"]; elseif ( $key == "gquiz_percent" ) $value = $results["percent"]; elseif ( $key == "gquiz_grade" ) $value = $results["grade"]; elseif ( $key == "gquiz_is_pass" ) $value = $results["is_pass"] ? "1" : "0"; return $value; } - Added RGFormsModel::get_leads_where_sql() function to assist with get_leads() queries - Fixed sending admin notifications with conditional routing when using PayPal's option to only send when payment is received - Fixed register link on multi-site; goes to primary site's Form Settings - Fixed notice (Undefined index: gforms_enable_akismet) when saving Form Settings and Akismet not installed - Fixed 1000 character string limit for emails - Updated Chosen script to its latest version (0.9.8) - Fixed issue with Section break being displayed on {all_fields} even when marked as Admin Only - Fixed issue with duplicate validation taking trash entries into account - Added extra parameter to gform_merge_tag_filter hook - Added hook: gform_register_init_script - Used to initialized init scripts via the add_init_script() function - Fixed issue with conditional logic reset default value function which set drop down value to non-existant option resulting in JS errors - Updated gform_field_values field to use esc_attr as additional prevention of cross-site scripting - Fixed notice generated by hierarchical post categories - Fixed issue where quantity was counted as 0 when a product's quantity field was hidden via conditional logic. - Fixed issue with database permission error message. - Fixed issue with static methods not being declared as static - Added calcObj to parameters passed in gform_calculation_result() user function - Added "gform_price_change" js event, triggers when any pricing field is modified - Added "gform_calculation_formula" hook, allows modification of formula prior to calculation - Fixed bug for multi-page ajax forms with progress bar starting at zero that are sent to PayPal Standard - Fixed bug in get_credit_card_init_script that caused javascript error when Force SSL was turned on - Fixed bug for when a calculated value was zero and it did not show in the email notifications or on the confirmation page - Added spanish translation file - Fixed warning thrown in has_conditional_logic when $form["fields"] is empty - Updated "Edit Forms" menu navigation/page to be "Forms" - Fixed conflict with some popup scripts (i.e. FancyBox) that caused the spinner to be displayed twice - Updated AJAX calls using sack and jquery to not pass along a cookie because this caused the loading of admin-ajax.php to be aborted for some users - Updated the display of the name of uploaded files to be escaped to prevent security issues. - Fixed notice when max_label_size was not defined - Fixed issue where fields that are not on the last page of a multi-page form and are marked to not allow duplicates were not going through duplicate validation - Updated Settings UI - Added gform_entry_detail_sidebar_before hook to allow text to be added before the first sidebar box on the entry detail page add_action("gform_entry_detail_sidebar_before", "add_sidebar_text_before", 10, 2); function add_sidebar_text_before($form, $lead){ echo "

Extra Cool Stuff

text added before!
"; } - Added gform_entry_detail_sidebar_after hook to allow text to be added after the last sidebar box on the entry detail page add_action("gform_entry_detail_sidebar_after", "add_sidebar_text_after", 10, 2); function add_sidebar_text_after($form, $lead){ echo "

More Cool Stuff

text added after!
"; } - Added gform_entry_detail_content_before hook to allow text to be added before the main content on the entry detail page add_action("gform_entry_detail_content_before", "add_main_text_before", 10, 2); function add_main_text_before($form, $lead){ echo '
Main Content Before
some stuff
'; } - Added gform_entry_detail_content_after hook to allow text to be added after the main content on the entry detail page add_action("gform_entry_detail_content_after", "add_main_text_after", 10, 2); function add_main_text_after($form, $lead){ echo '
Main Content After
some stuff
'; } - Added gform_append_field_choice_option_[field type] JS hook to allow additional options for each choice - Added gform_load_field_choices JS hook to allow help text to be displayed below the choices - Added gform_export_field_value filter to allow the value to be filtered during export - Added gform_print_styles filter to allow styles to be included in the print entry page - Added gform_export_fields filter to allow fields to be added/modified during export - Added GFExport::add_default_export_fields($form) to refactor a fragment of duplicate code - Added gform_choices_setting_title filter to allow the choice setting title to be changed - Added gform_import_form_xml_options filter to allow add-ons to declare arrays during the import process - Updated entry export to prompt user when no fields have been chosen - Fixed notice "Undefined index: gf_form_id" displayed when exporting forms and no form chosen - Added gform_form_settings filter to allow the settings displayed for a form to be changed (added, removed, modified) - Added support for adding merge tag autocomplete - Added support for the new notifications/confirmations form meta format for importing and exporting forms ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.11 - Fixed issue where only section headers were displaying in email notifications when using a multi-select with conditional logic ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.10 - Added filter to allow new choices to be filtered. Initially to support the Polls Add-On. - Updated GFEntryList::get_icon_url() function to be public ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.9 - Fixed issue with conditional logic when using "is not" as the operator ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.8 - Updated field editor so that fields can only be dragged from the title bar ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.7 - Added drag and drop sorting functionality to selection field choices ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.6 - Fixed security vulnerability with password field - Fixed conflict with Tabbed Widget plugin that caused the widget page to throw Javascript errors ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.5 - Fixed issue with field_values not being saved across AJAX validation failures - Added Hungarian translation ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.4 - Replaced }) with } ) to alleviate conflict with some themes that replace }) with ] ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.3 - Added space between multiselect values on entry list view - Fixed issue on confirmation page causing malformed markup and preventing progress bar from being displayed properly - Added swedish translation ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.2 - Fixed issue where submissions (entries) could be created on forms that did not exist or that were inactive. ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5.1 - Fixed issue with number field calculation not rounding correctly when entry is saved - Added gform_shortcode_$action filter to allow Add-Ons to implement shortcode actions add_filter("gform_shortcode_custom", "custom_action", 10, 3); function custom_action($string, $attributes, $content){ $string = "custom shortcode action"; return $string; } - Fixed issue with total not being calculated on forms with animation and next button conditional logic - Fixed issue with conditional logic value reset with pre-populated fields ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.5 - Fixed issue with conditional logic on jQuery 1.6.1 under certain circumstances - Fixed issue where required quantity on single, hidden and cacluation products did not accept "0" - Added logging infrastructure and a few log messages around multi-page file upload - Fixed issue where inputs did not have calc events bound to change event - Fixed issue where required quantity on single, hidden and cacluation products did not accept "0" - Fixed issue with input mask not properly clearing value when form was submitted via the Enter key. - Fixed issue with gform_product_info being added to meta even on non-product forms - Fixed issue with default post category not being properly set - Updated "GFCommon::is_post_field()" to be a public method (for use in User Registration Add-on) - Fixed issue with number field failing validation when field was configured with commas for decimal separators - Fixed issue with calculation not supporting the field number format setting ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.4 - Fixed issue with get_product_fields() function caching product fields for pre-submission entries (ones without an ID) - Fixed issue with credit card field not updating card type as the card number is entered - Fixed issue with init scripts being executed more than once - Fixed issue with gf_global not being output on certain situations - Fixed issue with post not being associated with entries - Fixed some notice messages ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.3 - Fixed issue with notification url not accepting port number and cleaned up trailing slash and question mark when not necessary - Fixed issue with shipping being displayed even when shipping is hidden by conditional logic - Fixed issue with slow conditional logic on certain situations - Added "create_lead()" function to allow creation of lead object prior to actually saving the lead - Fixed issue with checkbox field reverting back to default selections after form is submitted - Fixed issue with payment amount being displayed on entry details for payments of $0.00 - Fixed issue causing long entry values to not be displayed when server's localization changes the number format - Fixed issue with quantity fields not updating total on blur - Fixed issue where "No duplicates" option was not working on calculated fields on values above 999 - Fixed issue where jQuery prop function was not returning elem/value - Fixed misc notices - Added constant for min wp version and updated min version error to use this - Fixed issue where hidden fields were not triggering calculation event - Fixed an issue with character counter throwing errors when configured on admin only fields - Fixed issue with shortcodes being executed as part of the post body template - Fixed issue with default values being reset on forms with conditional logic - Updated how gf_global js object was being enqueued and output to work around wp3.2 wp_localize script limitation - Fixed issue with conditional logic when using the post category checkbox field as a target - Fixed issue with no conflict mode blocking scripts for any ajax call - Fixed issue with option and quantity fields not being properly re-assigned to another product field when the product field they are assigned to is deleted. - Added validation to prevent option and quantity fields from being added to the form without a product field. ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.2 - Fixed issue with website validation not allowing port numbers to be entered - Added override for jQuery "prop" method which defaults to using attr if prop not available - Updated AJAX .submit() call, removing extra event data parameter that caused a conflict with some scripts - Fixed issue with field calculation not taking fields hidden by conditional logic into account - Moved Cardholder name under the expiration date on credit card fields - Fixed issue with post image size merge tag drop down not saving its value properly - Fixed issue where field calculations were not triggering conditional logic - Fixed issue with {all_fields} displaying duplicate values - Fixed issue with No conflict mode not enqueueing gravityforms.js on the form editor - Updated Single Product field so that the field label is changed to match the pre-populated product name - Fixed issue with Forms menu overriding other custom post type menus - Fixed issue where number fields in HTML where chocking on comma-formatted numbers - Fixed issue on form editor for forms that had hidden product fields ------------------------------------------------------------------------------------------------------------------- Version 1.6.4.1 - Fixed issue with conditional logic throwing a javascript error. - Fixed issue with price calculation rounding ------------------------------------------------------------------------------------------------------------------- Version 1.6.4 - Fixed issue with notification failing when a comma separated list of emails was entered with spaces in between emails - Fixed quantity validation so that it does not allow decimals. - Fixed issue with chosen script not being enqueued properly when form had conditional logic - Fixed validation issue with quantity field that didn't honor the min/max setting - Removed "Enable calculation" option from quantity field - Added step='any' attribute to number inputs when HTML5 is enabled - Fixed javascript error on AJAX forms with credit card field - Added id attribute to anchor - Fixed issue with the WordPress HTTPS plugin integration - Added new entry information fields to the entry export field list - Updated conditional logic and merge tag drop downs so that a width is specified instead of truncating the value - Fixed issue on notification merge tag drop down wrapping to next line when field labels were long - Fixed issue with hidden product not taking quantity into account when calculating total - Fixed issue with hidden product field preventing quantity from being populated dynamically - Fixed issue with entry detail page not loading the entry that was clicked on entry list page - Updated inline js so that it is now "enqueued" and consolidated into a single script block tied to the 'gform_post_render' event - Fixed admin display issue with the bulk-add modal panel in Chrome - Fixed warnings when nl2br used on array - Added new choices for conditional routing to administrator notifications (greater than, less than, contains, starts with, ends with) - Updated notification wysiwyg styles in admin - Fixed issue with form editor not allowing users to uncheck the "Set as Post Image" checkbox - Fixed issue where errors would be displayed when a "starts with" conditional logic was configured without the actual "starts with" value - Fixed issue with quantity field being recorded as . when a value is not entered - Fixed issue with a "Select Format" option appearing in the quantity field's number format option for newly created fields. - Added hook to allow users to specify the page size on the entry list page add_filter("gform_entry_page_size", "set_page_size", 10, 2); function set_page_size($page_size, $form_id){ return 50; //sets page size to 50 } - Updated the form editor so that the max characters option on single input field is hidden when input mask is enabled - Updated checkbox field so that it can be pre-populated using an array in addition to a comma separated list - Fixed notice for $read_only variable - Fixed notice for postStatus - Added support for calculations in Number field - Added Calculation product type - Added [gravityforms action="conditional"] shortcode - Added support for showing lead on entry detail when LID or POS are passed. Always third parties to link directly to leads. - Implemented support for {Product Name:1:qty} merge tag to allow the quantity of product fields to be returned via a merge tag - Fixed issue with {all_fields} merge tag when using post category fields as target of conditional logic - Added filter to allow changes to the recaptcha init screen add_filter("gform_recaptcha_init_script", "custom_translation", 10, 3); function custom_translation($script, $form_id, $field){ $script = 'RecaptchaOptions.custom_translations = { instructions_visual : "Scrivi le due parole:", instructions_audio : "Trascrivi ci\u00f2 che senti:", play_again : "Riascolta la traccia audio", cant_hear_this : "Scarica la traccia in formato MP3", visual_challenge : "Modalit\u00e0 visiva", audio_challenge : "Modalit\u00e0 auditiva", refresh_btn : "Chiedi due nuove parole", help_btn : "Aiuto", incorrect_try_again : "Scorretto. Riprova.", }'; return $script; } - Added support for {Total:1:price} merge tag to allow total to be formatted numerically - Fixed issue of no results displayed when viewing a form that has a paged entry list and switching to a form that does not ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.1.2 - Fixed notices in form widget and when enabling no-conflict mode - Fixed issue with entry list throwing database errors when sorting while filtering by starred or unread - Fixed javascript error on form editor for IE7/8 - Fixed issue with entry detail page displaying an error when query string "pos" wasn't specified. ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.1.1 - Fixed bug with Post Category merge tags - Fixed issue when AJAX forms getting displayed blank - Fixed issue with product fields being added to entry even though they were hidden by conditional logic ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.1 - Fixed bug with conditional logic when applied to checkboxes - Fixed issue where entry limit ------------------------------------------------------------------------------------------------------------------- Version 1.6.3 - Fixed issue where entry limit was not being validated on form submssion - Fixed issue where form schedule was not being validated on form submission - Added no-conflict mode functionality ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.beta2.4 - Fixed issue with spinner when multiple forms are placed on the same page - Fixed issue with AJAX multi-form not being displayed on some occasions - Fixed issue with email validation when using {admin_email} on notification emails - Added integration with ManageWP - Fixed deprecated PHP functions ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.beta2.3 - Updated pricing fields so that they don't support the "Admin Only" option. - Fixed issue with reCaptcha not changing languages properly ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.beta2.2 - Fixed issue when clicking on "enable values" in admin throwing javascript error; function SetFieldChoices was missing - Fixed issue with non-customer facing error when there was no attachment - Fixed issue with with submit button text always using default text ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.beta2 - Fixed issue when applying conditional logic to the submit button - Fixed issue with non-translatable strings in JS files - Added merge tag support for HTML fields - Added hook to enable attachments to be added to notifications - Updated POT file - Added total entries to dashboard widget - Added filter to customize dashboard widget title - Fixed issue with dashboard widget table breaking outside of container ------------------------------------------------------------------------------------------------------------------- Version 1.6.3.beta1 - Fixed issue with post author not being correctly set for posts configured to be created after payment is received - Updated conditional logic to support other types of operation and other types of fields - Updated search in admin to maintain the filter (starred, unread, spam, trash) so the filtered results you are viewing are what is searched - Added field type (Multi Select, Drop Down, Radio, Checkbox) support to Post Category field - Updated single product field so that its quantity is defauted to 1 when the quantity field is disabled - Fixed notices in export and notification page - Added setting to enable/disable Akismet - Removed CDATA from scripts to prevent JS error on some browsers due to a character replacement done by WP core. - Added hooks to enable CDATA wrapping - Fixed issue with Date field not honoring the "No Duplicate" setting and allowing duplicate dates to be entered when they shouldn't - Fixed issue with custom confirmation not working properly on AJAX forms - Added back button to entry detail pagination - Added pagination on entry detail page - Fixed WP3.3 bug with {user:***} merge tag - Fixed issue with chosen script initialization when field is target of conditional logic - Added support for {admin_email} merge tag and using it as the default value for notifications instead of the actual admin email - Updated admin paging total to not include items in the trash - Updated admin paging links so that when an item is moved to the trash using the link, the counts are updated as necessary to reflect the change - Updated admin paging links so that when an item is marked spam using the link, the counts are updated as necessary to reflect the change - Fixed admin paging so that the filter carries through to the next page - Fixed admin paging so that the counts displayed apply to the entry list you are viewing (all, unread, starred, spam, trash) - Added "gform_akismet_enabled" hook which allows you to disable akismet integration Documentation: http://www.gravityhelp.com/documentation/page/Gform_akismet_enabled Example: add_filter("gform_akismet_enabled", "__return_false"); - Updated enqueue and print scripts functions to always include jQuery, allows "gform_post_render" js hook to be accessible even when GF not using it - Added 'eventName' parameter to ajaxSpinner submit event to allow third party integrations to target this specific event - Added $ajax parameter to 'gform_pre_render' hook - Updated field type menu on form editor page to prevent it from overlapping the form toolbar when a notice is displayed - Fixed issue with textarea and input mask script on AJAX forms - Fixed issue with multi-select fields on AJAX multi-page forms - Updated progress bar to start at 0% - Added ability to turn on/off progress bar and set completion text when displayed with the confirmation text - Added "gform_progressbar_start_at_zero" hook to set progress bar back to previous behavior Example: add_filter("gform_progressbar_start_at_zero", "set_progressbar_start", 10, 2); function set_progressbar_start($start_at_zero, $form) { return false; } - Added functionality to store a static copy of the product info when the entry is created - Updated Really Simple Captcha to set a tabindex - Fixed notice occuring when 'postFormat' property of form object was not present - Added TinyMCE editor to notification page - Fixed issue with main Gravity Forms permission that prevented the Forms menu from displaying the first time a new user logged in. - Fixed issue with Simple Captcha field not validating because of an extra "input_" in the input's ID attribute ------------------------------------------------------------------------------------------------------------------- Version 1.6.2 - Fixed issue with uploaded files not being properly deleted on multi-site installs - Updated thickbox enqueuing so that it is done conditionally when WP < 3.3, since the conflict between thickbox and the UI tabs have been fixed in WP 3.3 - Fixed issue for ReallySimpleCaptcha with image/color display when changing size/font/background colors - Fixed issue with preview link that is displyed after creating a new form - Fixed notice messages - Fixed link for reCaptcha sign-up - Changed the way that the preview, print entry and column selection pages are requested so that they run within the WordPress page cycle instead of being called directly. - Fixed issue with {all_fields:admin} not displaying admin labels for Single Product fields. - Fixed issue with blank sections being displayed on {all_fields} merge tag. - Fixed issue where content templates would return empty when a "0" was passed - Added "gform_replace_merge_tags" hook which allows for the replacement of custom merge tags Documentation: http://www.gravityhelp.com/documentation/page/Gform_replace_variables Example: add_filter('gform_replace_merge_tags', 'replace_download_link', 10, 7); function replace_download_link($text, $form, $entry, $url_encode, $esc_html, $nl2br, $format) { if(strpos($text, '{download_link}') === false) return $text; $text = str_replace('{download_link}', gform_get_meta($entry['id'], 'download_link'), $text); return $text; } - Added "gform_custom_merge_tags" hook which allows for the inclusion of custom merge tags whereever merge tag drop downs are generated Documentation: http://www.gravityhelp.com/documentation/page/Gform_custom_merge_tags Example: add_filter('gform_custom_merge_tags', 'custom_merge_tags', 10, 4); function custom_merge_tags($merge_tags, $form_id, $fields, $element_id) { $merge_tags[] = array('label' => 'Download Link', 'tag' => '{download_link}'); return $merge_tags; } - Added "gform_entry_created" hook which fires immediately after the lead has been created but before any lead specific functionality has processed Documentation: http://www.gravityhelp.com/documentation/page/Gform_entry_created Example: add_action('gform_entry_created', 'generate_mergedoc'); function generate_mergedoc($entry, $form) { $download_link = self::get_download_link($entry['id']); gform_update_meta($entry['id'], 'download_link', $download_link); } - Added "gform_form_actions" hook which allows the modification of existing form actions and addition of new form actions Documentation: http://www.gravityhelp.com/documentation/page/Gform_form_actions Example: add_action('gform_form_actions', 'add_mergedoc_link', 10, 4); function add_mergedoc_link($actions, $form_id) { $actions['mergedoc_settings'] = "" . __("MergeDoc", "gravityformsmergedoc") . ""; return $actions; } - Fixed issue with activation throwing errors when trying to remove old indexes. - Fixed issue with Pricing fields displaying as $0.00 for text formatted notifications - Updated issue where selecting "None" for Paging Progress Indicator option was not being re-populated correctly after updating the form - Fixed issue with user defined price field not accepting $0.00 as a valid value - Added ability to go back to a specific page when form valiation fails - Fixed issue with radion button and checkbox pricing fields storing the selected items even when they had blank prices - Fixed issue with escaping causing javascript errors on the entry list when language is set to French - Updated the color_picker function in the GFFormDetail class to public (so Add-Ons can access it) ------------------------------------------------------------------------------------------------------------------- Version 1.6.1 - Fixed issue with form preview returning a 404 - Fixed issue with credit card field not escaping translated text properly and causing issues with French translation. - Updated 'gform_allowable_tags' filter to run on every field including post fields - Fixed issue with form export including the node for non credit card fields. - Fixed issue with gform_save_field_value filter not accepting values greater than 200 characters - Fixed issue with last field in the form being saved with the value of the total field. ------------------------------------------------------------------------------------------------------------------- Version 1.6 - Added additional version-specific IE browser classes to gform_wrapper - Removed json.php. Using WordPress JSON class instead. - Fixed issue where blank post meta keys are created when empty value is submitted - Added support for running Gravity Forms setup from settings page based on "setup" query string. (ie. ?page=gf_settings&setup) - Fixed issue with radio buttons when using jQuery 1.6.4 (Wordpress 3.3) - Fixed issue with post images getting saved in a wrong folder (based on the date of the embedded post/page instead of the newly created post) - Fixed debug notice messages - Added support for merge codes :label to allow field labels to be conditionally written to the outputted only when the field has a value. - Fixed issue with Post Format not being selected correctly in the form editor - Added hook on preview.php file to enqueue custom styles - Added Primary key to wp_rg_form_meta and wp_rg_lead_detail_long tables - Fixed issue on checkbox merge tag when targeting specific checkbox item - Added support for :currency and :price modifier on pricing merge tags - Updated tooltip script printing so that only tooltip specific scripts are printed when calling wp_print_scripts(); - Updated "gform_confirmation_anchor" hook to affect AJAX forms and provide option for AJAX forms that allows you to specify an integer for the scroll position - Fixed issue with thickbox script on upcoming WP 3.3 - Fixed issue with Post Custom Field (Date field type) not honoring date format when storing post meta - Updated editor "Update Form" button to do a full refresh instead of AJAX - Fixed issue with formatting and total calculation of the Swiss Franc currency - Added ID attribute to the "Add Form" link - Dynamically calculating WordPress root directory on files that are loaded outside the WP context (i.e. preview.php, select_columns.php) - Added "gform_post_render" javascript hook to functions to bound to every form render on AJAX enabled forms. Documentation: http://www.gravityhelp.com/documentation/page/Gform_post_render Example: jQuery(document).bind('gform_post_render', function(){ // code to trigger on AJAX form render }); - Added support for additional date formats - Fixed conditional logic issue on multi-page forms when AJAX is turned on - Fixed issue where the full list of radio and checkbox items were displayed in the admin after editing a choice - Fixed erroneous single quote from AJAX inline script block - Fixed issue with conditional logic fields not making into notification email when sending notification after payment is made. - Added "gform_allowable_tags" hook to allow enabling HTML or specific HTML tags for submitted data Documentation: http://www.gravityhelp.com/documentation/page/Gform_allowable_tags Example: add_filter("gform_allowable_tags", "__return_true"); - Added browser class to gform_wrapper - Added a form specific class to the confirmation container. "gform_confirmation_message_FORMID". - Fixed issue where adding any post field to a form prevented the form from saving if Post Formats were not supported - Fixed problem creating warning messages on radio button fields. - Added extra classes to pagination steps - Updated form editor UI - Added Mask setting to Text Field. - Fixed markup on form list page causing WP footer to overlap with long form list. - Aded form advanced setting to require user to be logged in to view form and a configurable message. - Added re-send notification functionality to entry list and entry detail page. - Added Print to list of bulk action operations so that multiple entries can be printed at once. - Added hook to change separator of entry export file. - Added "Other" option to radio button field. - Added tab index to shortcode and function to specify starting tab index. - Added CDATA around scripts to ensure valid HTML. - Updated shortcode wizard to remove square brackets( [ ] ) characters from form name when placed in the shortcode. - Added duplicate field functionality. - Added update message for bulk actions on entries list page. - Added post format setting to main post fields (title, body). - Added option to set post image field as a featured image. - Added default value settings to simple name field - Updated default price for options to $0.00 price instead of blank. - Added visibility setting to product fields so that they can be hidden. - Added trash and spam functionality. - Added integration with Akismet. - Fixed conditional logic problem when target values have single quotes. - Fixed number field validation. - Added support for 24 hour time on time field. - Added Date drop down type to date field. - Added new gform_after_submission hook that fires early in the process and deprecated gform_post_submission. - Enhanced Limit entry option to allow (per day/week/month/year). - Added hidden product field. - Added list field type. - Updated file upload field to increase security. - Added lookup by form name on gravityform shortcode. - Added checkbox merge variable to return a comma separated list of selected items. - Updated product fields to improve pre-population via hooks. - Added new easier to use field validation filter. - Updated entry detail and notification emails to hide section break when all fields in that section are blank. - Added validation so that option field does not get added to a form without a product field. - Added hook for single product sublabels. - Added support for merge tags in confirmation URL redirect field - Added checkbox input type to Post Custom Field. - Added an option to send emails in text format. - Added rg_lead_meta table to be used by Add-On developers. - Removed donation field button (still providing support for existing donation fields). - Added option to use the "chosen" script on drop downs. - Added multi-select field. - Added multi-select field as input type for: Tag, Custom Field. - Added checkbox (comma separated) to entry list. - Added ability to save a predefined choice from the bulk add screen. - Added list field to custom post field. - Added hook for list field column. - Added description placement setting (top label only). - Added new merge tag for displaying Admin labels on notifications(create {all_fields:admin_label} and make it more flexible) - Fixed issue with "gform_notification_format" filter not passing all of the parameters correctly ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.10 - Fixed issue with checkbox variable replacement creating a warning message. ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.9 - Replaced dot(.) in the state field ID with underscore. - Disabling product state validation if field is configured for dynamic population - Marked build_lead_array() function as public to allow developers to call it when performing custom entry queries. ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.8 - Added product price javascript filter to allow custom total calculation function gform_product_total(formId, price){ return price + 100; } - Added gform_product_info filter to allow manipulation of the product list - Removed custom class from field when displayed in the form editor - Implemented gform_address_display_format on form display - Fixed formatting issue with address field when state field was hidden - Replace dot (.) in complex field's input IDs with underscores to prevent CSS problems when targeting the input - Added gform_print_entry_header and gform_print_entry_footer hooks to allow users to add custom headers and footers in the Print Entry screen - Added CSS rule to prevent a reported display issue where button panels were cut off by the container overflow in the form editor - Fixed javascript error on drop down shipping fields when using WP 3.2 RC1 - Fixed issue with Post Custom Field template not saving value correctly ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.7 - Fixed issue with drop down fields hidden by conditional logic getting sent in notifications ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.6 - Added rgobj() function to better handle retrieving properties from objects - Added new hook "gform_default_notification" to allow the default admin notification for new forms to be disabled Documentation: http://www.gravityhelp.com/documentation/page/Gform_default_notification Example: add_filter("gform_default_notification", "__return_false"); - Fixed localization issues on a few strings - Updated POT file ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.5 - Adjusted website field so that if the default value of "http://" is left in the field, it is saved as a blank value - Fixed issue with shortcode wizard adding shortcode to wrong the tab ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.4 - Changed entry export so that entry date is timezone aware ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.3 - Updated jQuery attr("checked"), attr("disabled") and attr("selected") statements for compatibility with jQuery 1.6 - Fixed issue with form editor throwing errors on WP 3.2 on forms without page breaks - Changed Print Entry page so that Admin labels are used when appropriate. - Added "gfield_contains_required" class to main
  • when it contains a required field. - Fixed issue with checkbox option fields displaying blank options in the admin and PayPal - Added Greenland to the list of countries ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.2 - Changed form action to a relative path instead of full URL - Removed TwentyTen theme-specific styles from forms.css - Minor updates to admin.css ------------------------------------------------------------------------------------------------------------------- Version 1.5.2.1 - Updated jQuery property selector to include quotes - Removed 'href' attribute from 'Edit' link to resolve IE issue where it triggered the onBeforeUnload event - Updated admin styles to make 'Close' link cursor display as a pointer - Added 'gform_admin_pre_render' hook to fire on Form Editor view - Added renewal reminder to admin notifications - Removed Category ID from category variable replacement - Fixed issue with back-slashes being removed when saving entry - Added gform_get_input_value hook to replace gform_get_field_value ------------------------------------------------------------------------------------------------------------------- Version 1.5.2 - Updated reCAPTCHA API file - Fixed issue with Post Category fields storing the wrong post when sub categories have the same name - Fixed issue with Post Category field not displaying all categories in the form editor - Fixed issue with drop downs not keeping selected item upon validation error when value is set to 0 (zero) and other item is selected by default - Fixed issue with number of entries being written to the export files - Fixed javascript error on Form Editor when "Enable Content Template" is checked, but nothing is entered in the template field - Added JS escaping to prevent javascript error on Form Editor when translated AJAX error messages contain a single quote. - Fixed issue drop downs not keeping selected item upon validation error when value is set to 0 (zero) - Fixed issue with price calculation when conditional logic animation was enabled - Added gform_validation_error in wrapper div when form fails validation - Updated POT file - Fixed error caused by GFCommon not being included when calling enqueue_function from functions.php - Updated portuguese translation file - Added gform_delete_lead hook - Fixed problem with exporting/importing routing rules - Fixed issue with product field validation when using Euro as currency ------------------------------------------------------------------------------------------------------------------- Version 1.5.1 - Fixed problem with getting embed_post for {custom_field} variables - Added rules to forms.css file to reset unordered list styles to defaults inside HTML blocks - Cleaned up Notice messages ------------------------------------------------------------------------------------------------------------------- Version 1.5.0.2 - Updated GFFormsModel::get_forms() to sort by "title ASC" by default - Added autocomplete="off" to honeypot field when HTML5 is on - Added shortcode support to entry limit and expired form messages - Updated POT file - Fixed File Upload and Post Field bug deleting field data when editing entry - Fixed typo in validation message ------------------------------------------------------------------------------------------------------------------- Version 1.5.0.1 - Localized string "of" in character counter message. - Fixed issue with option field where checkbox and radio buttons items where not getting refreshed when the + and - button were clicked - Fixed issue with currency formatting for currencies with commas as decimal points - Added form specific version of "gform_validation" hook - Fixed issue with gform_unique_id not escaping result before displaying ------------------------------------------------------------------------------------------------------------------- Version 1.5.RC7 - Added "Disable Auto-formatting" option to form confirmations - Added "Reset Views" and "Delete Entries" to the form list bulk action drop down - Added "Settings" link to the plugins page - Removed Thesis (theme) specific CSS rules from default forms.css file ------------------------------------------------------------------------------------------------------------------- Version 1.5.RC6 - Added styles to admin.css for new toolbar element - Implemented toolbar on Form editor, Notification and Entry list pages - Added gform_countries filter to allow manipulation of the address field's country list - Added gform_duplicate_message filter to allow customization of the default duplicate value validation message - Populating content templates with the field's variable by default (applies to Post Title, Post Body and Post Custom Field) - Fixed issue with Single Product and User Defined Product not displaying the Rule Settings - Implemented Renew section on Settings page - Limiting the number of items displayed in the admin for checkbox and multiple choice fields - Fixed issue with user defined product field not formatting the entered value as currency - Fixed issue with