PayPal IPN for WordPress

Description

Introduction

A PayPal Instant Payment Notification (IPN) toolkit that helps you automate tasks in real-time when transactions hit your PayPal account.

  • All PayPal IPN data is saved and available in your WordPress admin panel.
  • Developer hooks are provided for triggering events based on the transaction type or payment status of the IPN.
  • Extend the plugin with your own plugins or theme functions, or check out our premium extensions for easy automation of various tasks.

Premium Extensions

If you are not a developer (or simply wish to save some time) you can still take advantage of PayPal IPN by adding our premium extensions to this plugin.

  • PayPal IPN Forwarder – Automatically forward PayPal’s IPN data to additional IPN listener URLs.
  • PayPal IPN MailChimp – Automatically add the email address from PayPal transactions to a MailChimp mailing list.
  • More coming soon!

Localization

PayPal IPN for WordPress was developed with localization in mind and is ready for translation.

If you’re interested in helping translate please let us know!

Get Involved

Developers can contribute to the source code on the PayPal IPN for WordPress Git repository on BitBucket.

Screenshots

  • Categorized browser for all IPN transactions.
  • Parsed transaction data for an individual IPN.
  • Hook function template for copy/paste into projects.

Installation

Automatic installation

Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New.

In the search field type “PayPal IPN” and click Search Plugins. Once you’ve found our plugin you can view details about it such as the the rating and description. Most importantly, of course, you can install it by simply clicking Install Now.

Manual Installation

  1. Unzip the files and upload the folder into your plugins folder (/wp-content/plugins/) overwriting previous versions if they exist
  2. Activate the plugin in your WordPress admin area.

FAQ

Installation Instructions

Automatic installation

Automatic installation is the easiest option as WordPress handles the file transfers itself and you don’t need to leave your web browser. To do an automatic install, log in to your WordPress dashboard, navigate to the Plugins menu and click Add New.

In the search field type “PayPal IPN” and click Search Plugins. Once you’ve found our plugin you can view details about it such as the the rating and description. Most importantly, of course, you can install it by simply clicking Install Now.

Manual Installation

  1. Unzip the files and upload the folder into your plugins folder (/wp-content/plugins/) overwriting previous versions if they exist
  2. Activate the plugin in your WordPress admin area.
What is PayPal Instant Payment Notification (IPN)?

Instant Payment Notification (IPN) is a message service that notifies you of events related to PayPal transactions. You can use IPN messages to automate back-office and administrative functions, such as fulfilling orders, tracking customers, and providing status and other transaction-related information.

Some things you could potentially do with IPN are…

  • Automatically generate custom, branded email notifications for buyers and/or sellers.
  • Automatically update databases when transactions occur for customer, order, and inventory tracking.
  • Automatically post new messages on a Facebook or Twitter account when an item sells.
  • Automatically deliver e-goods for digital products like music, videos, and documents.

You can automate all sorts of things with IPN, so the list really goes on and on. Also, it all happens in instantly as transactions hit your PayPal account. It’s really a very powerful tool that too few people utilize.

How do I enable IPN in my PayPal account?
  • Take a look at PayPal’s IPN Setup Guide for details on enabling IPN within your PayPal account.
  • You can find your IPN URL under Settings -> PayPal IPN in your WordPress admin panel.
Where can I find more detailed documentation?
Why am I not seeing transactions in my PayPal IPN dashboard in WordPress?
  • Make sure you have added the IPN URL for the plugin (Available in WordPress under Settings -> PayPal IPN) to your PayPal profile under the IPN settings area.
  • If you are using PayPal Standard Payments buttons, make sure you don’t have the “notify” parameter set to some other URL.
  • If you are using PayPal API’s, make sure you don’t have the NOTIFYURL parameter set to some other URL.
  • If you still have problems you may start a thread in the plugin support forum.
How can I test that my IPN solution is working as expected?

Reviews

Excellent Plugin and Support

I used this plugin briefly for debugging purposes. The support was very helpful and cleared up the problems I was having understanding under which circumstances PayPal sends IPNs to which URLs.

Great plugin to automate actions after PayPal payments

This extension is perfect because many hooks are made available to perform actions according to the information returned by PayPal. Since it isn’t possible to retrieve the session parameters in the action processing (user_id and other), do not forget to send them in the code of the PayPal button using the “Custom” field: the contents of this field are returned in the IPN frame. To do this, simply add the <input type=”hidden” name=”custom” value=”your parameters”> to the PayPal button code. If you want to use a short code (with parameters) as a value, you need to create a wrapped short code: <input type=”hidden” name=”custom” value=[my-short-code param1=”id” param2=”12″] doesn’t work purpose <input type=”hidden” name=”custom” value=[my-short-code]my parameters[/my-short-code]> works well. This plugin is simple to use and effective. Thank you for designing and congratulating for fast support.

Read all 23 reviews

Contributors & Developers

“PayPal IPN for WordPress” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.4 – 06.21.2018

  • Tweak – Replaces remote resources with local copies, and further data sanitization for privacy and security. (PIFW-7)

1.1.3 – 06.20.2018

  • Tweak – Adds data sanitization and replaces remote resources with local copies. (PIFW-2)
  • Fix – Resolves an issue with data tables displayed using shortcodes. (PIFW-3)

1.1.2 – 09.21.2017

  • Fix – Resolves a PHP failure in some PHP versions related to timezone / timestamps in IPN data. (#96)

1.1.1 – 09.19.2017

  • Feature – New hooks for “ipn_response_verified” and “ipn_response_invalid”. (#87)
  • Tweak – Adjusts URL forwarding filters to improve functionality. (#84)
  • Tweak – Clean post-meta data when IPN records are deleated. (#85)
  • Tweak – Tighter integration with PayPal Standard and PayPal Plus to avoid IPN conflicts. (#86)
  • Tweak – Adjusts date / time stamps for local server time. (#88)
  • Tweak – Adjustments to avoid Google crawlers indexing IPN records. (#93)

1.1.0 – 10.12.2016

  • Feature – Adds premium extension library. (#51)
  • Fix – Resolves missing amount data for new subscription sign ups. (#64)
  • Fix – Resolves the broken link from the settings page to the PayPal IPN Configuration Guide. (#71
  • Fix – Adds a content-type header to IPNs that get forwarded (using our Forwarder premium extension) to resolve issues with 3rd party IPN handlers that require it. (#73)
  • Fix – Resolves a PHP notice. (#76)
  • Fix – Resolves an issue causing refund IPN data to fail triggering its hook. (#78)
  • Fix – Resolves an issue with Prettify JavaScript. (#79)
  • Tweak – Removes unnecessary enqueued scripts. (#65)
  • Tweak – Adjusts sorting on table output by shortcode. (#62)
  • Tweak – Makes arrangements for additional functionality. (Smarter Forwarding) to be added to our IPN Forwarder premium extension. (#66)
  • Tweak – Hides View and Edit links because there is no public view for the IPN data. (#69)
  • Tweak – Adds functionality to handle URL name from the IPN Forwarder premium extension. (#68)
  • Tweak – Updates IPN verification endpoints. (#70)
  • Tweak – Adjustments to enqueued scripts for performance improvements. (#75)
  • Tweak – Adjusts date format in IPN log. (#82)

1.0.8 – 08.29.2015

  • Fix – Resolves PHP notices when activating the plugin in WordPress 4.3.

1.0.7 – 07.13.2015

  • Fix – Adds missing files that were keeping shortcodes from functioning properly.
  • Fix – Resolves a code logic conflict causing Adaptive Payments hooks to not be triggered.

1.0.6 – 05.06.2015

  • Fix – Resolves a potential SQL injection vulnerability in the IPN filter logic.

1.0.5 – 04.30.2015

  • Fix – Resolves a number of minor bugs.
  • Fix – Adds the BAID in the post title for Billing Agreement IPNs.
  • Tweak – Adds separate hook for MassPay transactions based on payment status.
  • Tweak – Updates the log path to /wp-content/uploads/paypal-ipn-logs/
  • Feature – Highlights PayPal sandbox IPNs yellow so that they are easy to recognize.
  • Feature – Adds hook function snippet to IPN details page which provides a function template including IPN data parsed to PHP vars.

1.0.4 – 03.26.2015

  • Fix – Resolves issue where direct hits to the IPN URL were creating empty records in the system.
  • Fix – Resolves PHP notices when updating plugin.
  • Fix – Resolves issue where search functionality was not working correctly.
  • Tweak – Search now works across all columns.
  • Feature – Adaptive Payments compatibility.

1.0.3 – 01.28.2015

  • Fix – More adjustments to resolve issues with plugin repo name change.
  • Fix – Corrects random typos through-out the plugin.

1.0.2 – 01.27.2015

  • Fix – Adjusts areas of the plugin where the slug needed to be updated to match repo name.
  • Fix – Adjusts WooCommerce compatibility so that IPN forwarding will not occur unless PayPal Standard is enabled.

1.0.1

  • Fix – Adjusts post type icon so it will work regardless of plugin folder name.

1.0.0

  • Logs all IPN transaction data in the WordPress database.
  • Provides developer hooks for extending functionality and automating tasks within extension plugins.