### 3.5 | 2021-04-28 - Fixed an issue with the display of the add-on icon in the form settings on Gravity Forms 2.5. - Removed extraneous animation from the trial input on the feed settings page. ### 3.4 | 2020-09-15 - Added support for Gravity Forms 2.5 - Updated new transactions to use /?callback=gravityformspaypal as the IPN URL. Existing transactions will continue to use /?page=gf_paypal_ipn. ### 3.3 | 2020-04-22 - Added translations for Hebrew, Hindi, Japanese, and Turkish. - Fixed an issue where donation feeds configured to use a specific product field as the payment amount could use the form total instead when there are multiple products in the order summary. Requires Gravity Forms 2.4.16.6 or greater. - Fixed notices which can occur with PHP 7.4 when Gravity Forms is processing post fields and form submission notifications. ### 3.2 | 2019-07-29 - Added security enhancements. - Removed test to verify if server supports TLS 1.2. ### 3.1 | 2018-05-17 - Added detection for servers with an outdated TLS protocol and displays a warning message when needed. ### 3.0 | 2018-05-09 - Added image_url PayPal variable which allows users to enter the URL of the 150x50-pixel image displayed as the logo in the upper left corner of the PayPal checkout pages. - Added GPL to plugin header. - Updated Plugin URI and Author URI to use https. - Removed deprecated PayPal variables page_style and cbt. ### 2.9 | 2018-01-29 - Added compatibility with Gravity Forms 2.3. - Fixed an issue where PayPal can display an error instead of the cart if the option labels exceed 64 characters. ### 2.8 | 2017-05-16 - Added Chinese translation. Credit: Edi Michael. - Updated strings for translations. - Updated string for configuring settings to be consistent with other add-ons. - Deprecated the delayed Notifications setting (Send notifications for the 'Form is submitted' event only when payment is received) in favor of the "Payment Received" notification event. - Fixed typo causing PayPal to not load properly. - Fixed an issue with the delay notification feature where a notification could continue to be delayed even when it is no longer assigned to the form submission event. - Fixed an issue where a note would be added to the entry indicating payment details where updated when editing the entry even though the payment details had not changed. ### 2.7 | 2016-08-10 - Updated options settings so the choices are available to the *gform_addon_feed_settings_fields* filter in GF2.0. - Updated IPN processing to abort earlier if the IPN does not contain the custom field. - Fixed an issue which could cause notifications from other events to be sent when processing the delayed form submission notifications. - Fixed an issue which could prevent the payment details being edited on the entry detail page for sites where Gravity Forms is using a non-English translation. - Fixed a fatal error which could occur if the IPN verification response contained a WP_Error object. ### 2.6 | 2016-01-11 - Added support for sending notifications on payment/subscription events. Configured on the edit notification page using the 'Event' setting. - Added the *gform_paypal_sslverify* filter to allow sslverify be modified before sending requests. Example - turn off SSL verification: add_filter( 'gform_paypal_sslverify', '__return_false' ); - Updated the installation process to activate sslverify by default for all new installations. - Updated tooltip and label for the notifications setting on the feed to indicate it only affects notifications for the 'Form is submitted' event. - Fixed an issue in redirect_url() where the entry currency was not being used. ### 2.5.1 | 2015-09-24 - Fixed a fatal error which could occur if the IPN request check added in v2.5 returned a WP_Error object. ### 2.5 | 2015-09-23 - Added IPN request check to try to detect incompatibility between webserver and new PayPal SSL standards - Added filter to allow return url to be changed in cases where proxy prevents it from being created correctly. - Added $submission_data as the fifth parameter of the *gform_paypal_query* and *gform_paypal_request* filters. - Updated $form parameter on *gform_paypal_get_payment_feed* hook to always pass a form object even if one is not provided to the parent function. - Updated entry detail page to allow editing of payment details when original status is Processing or Pending. - Updated minimum Gravity Forms version to 1.9.3. - Updated max values for the billing cycle and trial period drop downs. D = 90, W = 52, M = 24, Y = 5. - Updated logging to show when IPN processing is aborted due to the entry being marked as spam. - Fixed an issue with IPN validation if the PayPal response body did not contain VERIFIED or INVALID. - Fixed an issue with the upgrade routine which caused it run even if a pre-framework version hadn't been installed. ### 2.4 | 2015-04-20 - Added *gform_paypal_return_url_port* hook to allow the port to be changed for the return_url add_filter( 'gform_paypal_return_url_port', 'change_port' ); function change_port(){ return '81'; } - Updated logging statements. - Updated database upgrade routine to remove redundant code that ensured feeds were copied over. Root of the issue was fixed in Gravity Forms core. - Fixed a low severity security vulnerability in the admin area which could be exploited by authenticated users with form administration permissions. - Fixed an issue with IPN processing which could cause the duplicate callback check to prevent the entry being updated for some transactions. - Fixed issue on IPN processing that could potentially prevent PayPal from re-trying failed IPNs on certain scenarios. - Fixed an issue with the delay notifications list on the feed including notifications from all events instead of just the form_submission event. - Fixed deprecation notices related to getting the country and us state codes in Gravity Forms 1.9. - Fixed a fatal error if GFAPI::get_entry returned a WP_Error object during IPN validation. ### 2.3 | 2014-12-08 - Added Spanish translation file. - Updated strings that were not able to be translated. - Updated POT file. - Fixed a fatal error introduced in 2.2.4 preventing the redirect to PayPal. - Fixed issue that, under a specific scenario, causes PayPal to be executed on forms without a PayPal feed. - Fixed translation domain on several strings. - Fixed issue that when editing an entry after previously editing payment status for that same entry, caused duplicate notes and notifications to be sent. ### 2.2 | 2014-10-16 - Added function gf_paypal() to easily get a PayPal instance. - Added *gform_paypal_get_payment_feed* for backwards compatibility with the *gform_paypal_get_feeds* hook. - Added function gf_paypal to easily get a PayPal instance. - Added *gform_paypal_feed_settings_fields* hook to allow adding custom settings field via hooks. - Added hook to allow PayPal business email to be set during IPN email verification. This will allow secondary PayPal email addresses to be configured in the feed. - Updated protected functions to be public. - Fixed issue with IPN page returning a 500 error on IPN messages not directed to Gravity Forms. - Fixed issue with feeds not being copied over. ### 2.1 | 2014-09-30 - Added function to ensure feeds get copied over from legacy tables. - Added hooks to display payment information (edit mode) in payment info box. - Added paypal_fulfillment function overriding base class so that fulfillment is ignored for PayPal feeds. - Fixed issue with post not getting created when manually setting payment status to 'Paid' - Fixed issue with sales page displaying an error. ### 2.0.3 | 2014-09-18 - Fixed issue where payment didn't go to paypal when certain coupons were used. ### 2.0.2 | 2014-09-18 - Added $feed as fourth parameter to *gform_paypal_query* and *gform_paypal_request*. ### 2.0.1 | 2014-09-18 - Added logging. - Updated feed transfer logic to reduce changes of feeds not getting moved over. ### 2.0 | 2014-09-16 - Added PayPal partner integration. - Updated to use the Add-On Framework. - Updated single payment status to "Paid" ( from "Approved" ). - Updated feed condition to support full conditional logic. - Updated payment amount so that it can be associated with a specific field in the form. - Updated trial amount so that it can be associated with a specific field in the form. ### 1.9.4 | 2013-10-28 - Updated the number of recurring times maximum from 30 to 52 per PayPal documentation ### 1.9.3 | 2013-10-01 - Fixed issue where floating point comparision was failing in GFPayPal::is_valid_initial_payment_amount(). ### 1.9.2 | 2013-09-27 - Added new hook: 'gform_paypal_ipn_{transaction_type}'; allows users to easily hook into the specific IPN transactions they need. ### 1.9.1 | 2013-09-27 - Fixed issue with notifications not being sent when setting "only show notifications when payment is received" is enabled and payment is $0.00. ### 1.9 | 2013-10-28 - Fixed notice message. - Fixed issue where upgrade class was not always included when PayPal details are written on the plugins page. - Updated IPN verification script to use HTTP 1.1 in response to PayPal's change. ### 1.8 | 2013-06-19 - Updated automatic upgrade so that it caches remote requests for 12 hours (even on plugin's page). - Fixed issue with redirecting back from PayPal that takes users to the wrong confirmation page on some occasions. ### 1.7 | 2013-04-01 - Fixed issue where submission still went to PayPal regardless of the feed being inactive. - Fixed issue where changing the form on an existing feed did not save the change. - Fixed error on entry info box (entry detail page) when editing entries. - Fixed issue that ignored discounts when total (product + discount) added up to zero. - Fixed notice message. ### 1.6 | 2013-02-06 - Updated "return mode" parameter so that it is a redirect for non-secure pages to avoid security warning message when returning from PayPal to the site. - Added *gform_paypal_request* filter to allow entire request to PayPal to be filtered. - Fixed issue where null responses from upgrader resulted in several notices. - Updated ajax calls to not send a cookie to prevent calls to admin-ajax.php being aborted for some users. - Added support for new notification structure (for delayed notification setting) in preparation for Gravity Forms 1.7 release while maintaining backwards compatibility with current released version. - Fixed issue which caused the admin IPN setting to not always remain checked/unchecked. - Fixed issue with feed creating throwing javascript errors and displaying the wrong notification UI. - Updated URL to ajax page so that it uses the built-in WordPress ajaxurl variable. - Fixed issue with detecting if page is under SSL which caused return URL to be invalid. - Updated process to correctly save the config ID used to process the entry in the entry meta. - Updated process to retrieve config by entry. - Added amount validation as an extra IPN security check. Entry will only be marked as Approved/Active if payment amount matches product/subscription amount. - Fixed issue where orders with discounts greater than the total were still being sent to PayPal. - Added additional logging for reasons why the transaction wasn't sent to PayPal (no config, $0 price). - Fixed issue with tooltip script being included in every page. ### 1.5 | 2012-06-05 - Added support for negative line items. - Fixed error message which still referred to Donation fields. - Added new hook: *gform_paypal_get_feeds* allows the filtering of return configuration feeds. - Updated logging to use the GF Logging plugin. - Fixed issue with "business" variable not being sent via the IPN message. - Added new conditional logic options (greater than, less than, contains starts with, ends with) and support for other conditional fields. - Fixed notices. - Added ability to edit payment status when not set to Approved and not a subscription. - Added ability to edit payment details (amount, transaction id, date) for all payments types. ### 1.4 | 2012-02-09 - Added additional log messages. - Increased timeout value used when sending IPN message to PayPal for validation. - Added feed_id and gateway type to entry meta to facilitate integration with other Add-Ons. - Fixed notice. - Added logging support. - Added support for multiple feeds to be created for a form. Feed to be executed will be determined by the configured Feed Condition when the form is submitted. - Fixed issue where RG_CURRENT_PAGE constant was not available when GF is deactivated. - Updated get_product_query_string() to include quantity when calculating the total. - Fixed issue with drop down values being displayed on PayPal pages, instead of text. - Added function rgars() if it does not already exist. ### 1.3.1 | 2011-11-01 - Added function rgars() if it does not already exist. ### 1.3 | 2011-11-01 - Fixed issue with delay notification and delay post settings not behaving correctly when paypal condition is not met. - Fixed notice messages. - Changed PayPal request to add charset=UTF-8 variable. - Added currency.js file to remove dependency on script from Gravity Forms. - Fixed issue on validation that failed when emails had extra blank spaces. - Added support for sending product fields to PayPal when feed is a donation. - Added support for using Form Total as an option for the recurring amount. - Changed CURL's setting to disable SSL peer validation. - Fixed UI issue on feeds page that displayed the "Add New" button when PayPal was not configured. - Fixed issue with notification settings not displaying the saved values correctly. ### 1.2 | 2011-04-25 - Cleaned up notices. - Fixed issue when using condition on a field with multiple single quote characters in the label. - Fixed issue when creating a feed using forms with HTML markup in field labels. - Fixed database index error when upgrading plugin. ### 1.1.1 - Cleaned up Notice debug messages. ### 1.1 | 2011-03-28 - Fixed issue with delay notification hooks causing emails to be sent in the wrong time when the "send email after payment is received" option is enabled. ### 1.0.beta6.2 - Added *gform_paypal_config_validation* hook to validate custom options created for the PayPal feed. - Updated PayPal config validation code to support muliple validation errors. - Renamed *gforms_paypal_save_config* to *gform_paypal_save_config*. - Removed extraneous code. ### 1.0.beta6.1 - Added a hook to allow users to modify the query string sent to PayPal: *gform_paypal_query*. add_filter("gform_paypal_query_12", "update_paypal_query", 10, 3); function update_paypal_query($query_string, $form, $entry){ return $query_string; } - Added "Cancel" button to the Edit page. ### 1.0.beta6 - Fixed issue with thank you page displaying "Oops, could not locate your form" message when coming back from Paypal. - Fixed issue with IPN not locating entry properly. ### 1.0.beta5 - Fixed issue where recurring times were not reflecting changes made to PayPal feed. - Defaulting invoice id to blank. It can be specified if needed via the *gform_paypal_invoice* hook. - Fixed issue where recurring times were not getting sent to paypal. ### 1.0.beta4 - Changed invoice number so that is has a unique number appended to it. - Added a hook to allow users to change the invoice number. add_filter("gform_paypal_invoice", "change_invoice", 10, 3); function change_invoice($invoice_id, $form, $entry){ return $entry["id"]; } ### 1.0.beta3 - Added javascript form object as a parameter for the *paypalFormSelected* jQuery action. ### 1.0.beta2 - Added condition so that PayPal can be bypassed based on selected values in the form. - Bypassing PayPal if there are no products selected. ### 0.9 | 2010-12-15 - Displaying summary boxes even when graph is empty. - Added disclaimer for free trials and no payments. - Fixed issue with double fulfillment for subscriptions with paid trials. ### 0.8 | 2010-12-15 - Added transaction table and modified graph to pull data from it. ### 0.7 | 2010-12-15 - Added support for shipping field. ### 0.6 | 2010-12-15 - Added option to change post status after subscription is cancelled. ### 0.5 | 2010-12-15 - Added graphical stats page. - Added link to entries page. ### 0.4 | 2010-12-15 - Added tooltips to admin page. - Implemented confirmation when returning from PayPal.