• Resolved schmedler

    (@schmedler)


    Hi There!

    I’m having an issue where donations are submitted, but then the wheel of doom appears and never goes away. It doesn’t look like payments are actually being submitted. Nothing has gone through since April 2022. The webhook is connected. Everything looks fine. I checked the data logs and reupdated them (all successful). Nothing is going through on Give’s end or on Stripe’s. It’s as if the payment was never submitted (no pending or abandoned transactions). Any help would be AWESOME!

    Thanks!

    • This topic was modified 2 years, 3 months ago by schmedler.
Viewing 5 replies - 1 through 5 (of 5 total)
  • Hi @schmedler,

    Glad you reached out, we’ll help you get to the bottom of that spinning wheel!

    I’ll need a little more context before I can hop in:

    First, send along your system information. Your system information is one of the most helpful tools for us to use when we start digging in to a potential issue. It gives us a peek at your site’s environment, which can give us helpful clues. You can do this by navigating to Donations > Tools > System Info (tab) and click the button to “Get System Report” and copy/paste that in your reply here.

    I’ll also need a link to the URL of your donation form. This will let me check things from the front end for possible errors.

    We’ll start here, and do some digging. Let me know if you have any questions in the meantime, I’m happy to help.

    Thread Starter schmedler

    (@schmedler)

    Hi there!

    Here’s the info you requested:

    The site: https://johnsonstringproject.org/donate/

    The system report:

    ### WordPress Environment ###
    
    Home URL: https://johnsonstringproject.org
    Site URL: https://johnsonstringproject.org
    WP Version: 6.1.1
    WP Multisite: –
    WP Memory Limit: 256 MB
    WP Debug Mode: –
    WP Cron: ?
    Language: en_US
    Permalink Structure: /%postname%/
    Show on Front: page
    Page on Front: The Johnson String Project (#1683)
    Page for Posts: Unset
    Table Prefix Length: wp_
    Table Prefix Length: 3
    Table Prefix Status: Acceptable
    Admin AJAX: Accessible
    Registered Post Statuses: publish, future, draft, pending, private, trash, auto-draft, inherit, request-pending, request-confirmed, request-failed, request-completed, refunded, failed, revoked, cancelled, abandoned, processing, preapproval
    
    ### Server Environment ###
    
    Hosting Provider: DBH: jspweb.startlogicmysql.com, SRV: johnsonstringproject.org
    TLS Connection: Connection uses
    TLS Connection: 
    Server Info: Apache/2
    PHP Version: 7.4.10
    PHP Post Max Size: 20 MB
    PHP Time Limit: 300
    PHP Max Input Vars: 1000
    PHP Max Upload Size: 20 MB
    cURL Version: 7.47.0, OpenSSL/1.0.2g
    SUHOSIN Installed: –
    MySQL Version: 5.6.49
    Default Timezone is UTC: ?
    fsockopen/cURL: ?
    SoapClient: ?
    DOMDocument: ?
    gzip: ?
    GD Graphics Library: ?
    Multibyte String: ?
    Remote Post: ?
    Remote Get: ?
    
    ### GiveWP Configuration ###
    
    GiveWP Version: 2.23.2
    GiveWP Cache: Enabled
    Database Updates: All DB Updates Completed.
    Database Updates: All Database Migrations Completed.
    Database Tables: ? wp_give_donors? wp_give_donormeta? wp_give_comments? wp_give_commentmeta? wp_give_sessions? wp_give_formmeta? wp_give_sequential_ordering? wp_give_donationmeta? wp_give_revenue? wp_give_migrations? wp_give_log
    GiveWP Cache: Enabled
    GiveWP Cache: ?New Donation?Donation Receipt?New Offline Donation?Offline Donation Instructions?New User Registration?User Registration Information?Donation Note?Email access
    Upgraded From: 2.23.1
    Test Mode: Disabled
    Currency Code: USD
    Currency Position: Before
    Decimal Separator: .
    Thousands Separator: ,
    Success Page: https://johnsonstringproject.org/thank-you/
    Failure Page: https://johnsonstringproject.org/unsuccessful/
    Donation History Page: https://johnsonstringproject.org/donor-dashboard-3/
    GiveWP Forms Slug: /donations/
    Enabled Payment Gateways: Stripe - Credit Card
    Default Payment Gateway: Stripe - Credit Card
    PayPal IPN Notifications: N/A
    Donor Email Access: Enabled
    Stripe Webhook Notifications: June 7, 2022 1:57 am
    
    ### Active GiveWP Add-ons ###
    
    Give - Stripe Gateway: ? Licensed – by GiveWP – 2.5.0
    
    ### Other Active Plugins ###
    
    Akismet Anti-Spam: by Automattic – 5.0.2
    Async JavaScript: by Frank Goossens (futtta) – 2.21.08.31
    Code Snippets: by Code Snippets Pro – 3.2.2
    Elementor: by Elementor.com – 3.9.0
    Elementor Header & Footer Builder: by Brainstorm Force, Nikhil Chavan – 1.6.13
    Elementor Pro: by Elementor.com – 3.9.0
    JetSticky For Elementor: by Crocoblock – 1.0.3
    JetTabs For Elementor: by Crocoblock – 2.1.20
    MP3-jPlayer: by Simon Ward – 2.7.3
    Scripts n Styles: by unFocus Projects – 3.5.2
    Smush: by WPMU DEV – 3.12.4
    UpdraftPlus - Backup/Restore: by UpdraftPlus.Com, DavidAnderson – 1.22.23
    W3 Total Cache: by BoldGrid – 2.2.7
    Wordfence Security: by Wordfence – 7.8.0
    
    ### Inactive Plugins ###
    
    Autoptimize: by Frank Goossens (futtta) – 3.1.4
    Cloudflare: by Cloudflare, Inc. – 4.11.0
    
    ### Theme ###
    
    Name: OceanWP
    Version: 3.3.6
    Author URL: https://oceanwp.org/about-oceanwp/
    Child Theme: No – If you're modifying GiveWP on a parent theme you didn't build personally, then we recommend using a child theme. See: How to Create a Child Theme

    Hey @schmedler,

    Thanks for sending along that information, it was helpful!

    Right off the bat I see 2 potential issues:

    An error in the console that indicates your donation form’s iframe is crashing
    Webhooks with a last activity date of June 7th

    Let’s hop right into these!

    Iframe Error
    The most common reason we see this error caching happening somewhere in the process. If you’re not familiar with caching, it’s a method of saving server resources by storing copies of a page or site, so that the next visitor’s visit doesn’t trigger a call to the server at all, they just get the copy that was saved. Basically instead of the site needing to recreate the page from scratch, it sends up a copy which allows it to load faster.

    We put together this deep dive into what caching is and how it can cause problems: https://givewp.com/documentation/resources/caching/

    Caching works really well for speeding up sites, but when a saved copy of the site has sensitive information in it (like donor info) it’s important that GiveWP not share that with the next visitor. If GiveWP is not convinced that the browser requesting the data is the correct one, it defaults to not showing the data.

    Caching is handled differently on various sites and web hosts. This could mean a caching plugin, or caching could be in a security solution. Hosting providers also have settings for caching at the server level, and they can help make adjustments for you there. Most caching solutions have a setting or section for excluding specific URLs or parts of URLs (called “slugs”) from caching. At the very least, you should exclude the following slugs from caching:

    /donations/
    /donation-confirmation/
    /donor-dashboard/
    *any page with a donation form on it

    Also, the following query strings (if your caching solution has a setting for them):
    give-embed=donor-dashboard
    giveDonationFormInIframe=1

    Your host or the caching plugin/solution you are using can help with that. Some of them may require what’s called a “wildcard” like /donations/* to capture all subdirectories under the /donations/ folder.

    One helpful tip: Check in with your hosting provider. Most hosts have caching at the server level, and they will be able to adjust this for you.

    I would recommend starting with W3 Total Cache and Wordfence, those two should both have some form of caching capabilities you can adjust.

    Webhooks
    I know you mentioned you have webhooks set up, but because I see the last activity back in June, we’ll want to give this another look.

    The webhook endpoint is a URL that you need to copy and paste into a specific tab of the Stripe Dashboard, and then configure to receive the following events:

    checkout.session.completed
    payment_intent.succeeded
    payment_intent.payment_failed
    charge.refunded
    customer.subscription.created
    customer.subscription.deleted
    invoice.payment_failed
    invoice.payment_succeeded

    Our documentation (with screenshots!) on setting up the webhook is here:
    https://givewp.com/documentation/add-ons/stripe-gateway/#connecting-stripe-and-your-webhook-required

    If the webhook is correctly configured, you should see a record in the logs at Donations > Tools > Logs > Stripe for every event at Stripe (going forward).

    Give caching and that webhook a look and let me know how things go. If you run into any questions along the way, just let me know, I’m happy to hop in and help.

    Hi @schmedler,

    It’s been a bit since I’ve heard back and I know sometimes folks need a little extra time to work through instructions. I’m marking this as resolved for now, but if you still have questions you can open a new ticket right here and we’ll be happy to hop back in.

    Have a great day!

    Thread Starter schmedler

    (@schmedler)

    Hi There!

    So sorry for the late reply; I got swept up in other things. So I’ve tried adding these slugs to the Page Cache “Never cache the following pages” list on W3 Total Cache:

    /donations/
    /donate/
    /donation-confirmation/
    /donor-dashboard/

    I’ve also added “donation” to the categories not to cache (and pages that use the donation tag).

    I’ve also included the Webhooks you provided above (it was initially listening for all events)!

    So sad to say that I’m still getting the spinning wheel, even on an incognito window. Is there anything I’m doing incorrectly or that needs to be done?

    Thanks!

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Stripe Donation Not Working’ is closed to new replies.