I have a wordpress website hosted on GoDaddy.
I am an advanced stripe user and have integrated stripe with many Ruby on Rails apps , along with stripe-webhook integration with the Rails. Also i am well versed in how web-hooks work. But recently i was made owner of a wordpress website hosted on GoDaddy and on that website i am supposed to receive stripe payment failed webhook and then trigger an email based on that webhook event. I am not able to make much connect with wordpress and stripe from online resources and need help on how to receive stripe-webhooks in wordpress website i.e where to put code to make that happen etc.
I recently had the same problem and pippins stripe integration plugin seemed to answer it but it had a lot of extra code I did not need so I removed it and made a concise version just for the webhook integration: WPStripeWebhook. README is self explanatory. Basically make changes to includes/stripe_listener.php for your events. Also attaching readme here as per stackoverflow guidelines:
Usage:
Copy the complete folder WPStripeWebhook in wp-content/plugins. Go to website admin page.
Activate the WP Stripe webhook plugin for plugins section.
Important notes and suggestions For live mode, add stripe webhook endpoint (stripe account -> settings -> account settings -> webhook) like this
For testing locally on your machine, you can use Ultrahook. Its awesome! Set up your keys and username and start ultrahook on your machine using:
ultrahook -k your_ultrahook_key stripe 8888
Add a webhook endpoint url in your stripe account similar to this:
And it should start working for you. Also, you might see 404 in ultrahook console. Just ignore it. I would suggest setting up debugging too. It really helps. For debugging, add these to your wp_config.php
define('WP_DEBUG', true);
define( 'WP_DEBUG_LOG', true );
define('WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
define('SCRIPT_DEBUG', true );
After this, you should see a debug.log file in your wp-content folder and it will display errors and warnings and whatever you print using error_log()