Troubleshooting Forminator Payment Issues: Why Payments Succeed But Forms Don't Submit
Content
One of the most frustrating issues Forminator users encounter is when a payment processes successfully through Stripe or PayPal, but the form submission itself fails. The payment goes through, but you don't receive the form data, notifications, or any record of the submission. This problem is particularly common with specific payment methods like Bancontact, as seen in our sample threads.
Why Does This Happen?
This disconnect occurs because the form submission process and the payment process are two separate steps that need to handshake correctly. When a user clicks "submit," Forminator first validates the form data. If validation passes, it initiates the payment process. The form submission is only fully completed after receiving a successful confirmation from the payment gateway (like Stripe). If this confirmation is not received or is misinterpreted, the payment may process, but the form data is never saved or emailed.
Common causes include:
- Asynchronous Payment Methods: Methods like Bancontact or iDEAL can have a slight delay or different confirmation flow compared to instant credit card payments.
- Browser Pop-up Blockers: If the payment gateway tries to open a new tab or window for authentication and it's blocked, the confirmation handshake can fail.
- Conditional Logic Conflicts: If the payment amount is set by conditional logic (e.g., based on a user's selection), a misconfiguration can cause Stripe to receive a value of '0', which fails, halting the entire submission process.
- JavaScript Errors: Conflicts with other plugins or themes can interrupt the JavaScript that handles the payment confirmation callback.
How to Troubleshoot and Fix the Issue
1. Check the Payment Method Configuration
First, ensure the specific payment method (e.g., Bancontact) is properly enabled and configured within your Stripe account settings, not just in Forminator. Some payment methods require explicit activation in your Stripe dashboard.
2. Test for Pop-up Blockers
As highlighted in another thread, some payment flows require opening a new window. Instruct users to allow pop-ups for your site. Alternatively, check if your Stripe integration can be configured to use a redirect flow within the same tab instead of a pop-up, which is more reliable across different browsers and devices.
3. Review Conditional Logic for Payment Amounts
If you are using conditional logic to dynamically set the payment amount, double-check your rules. The field containing the final amount must be correctly populated before the form reaches the payment step. A common pitfall in multi-step forms is that the value is not carried over correctly. Test the form thoroughly to ensure the correct, non-zero amount is being passed to Stripe.
4. Enable WordPress Debugging
To uncover hidden PHP or JavaScript errors, enable debugging. Temporarily add the following lines to your wp-config.php file (above the line that says 'That's all, stop editing!').
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // Logs errors to wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // Prevents errors from being shown on screen
After reproducing the issue, check the wp-content/debug.log file for any relevant errors that occur during the form submission process.
5. Conflict Test
A plugin or theme conflict is a frequent culprit. To test for this:
- Switch your theme to a default WordPress theme like Twenty Twenty-Four.
- Deactivate all plugins except Forminator.
- Test the payment form again.
If the form works, reactivate your plugins and theme one by one, testing after each, to identify the source of the conflict.
6. Verify Webhook Setup (Stripe)
For Stripe, ensure that the necessary webhook endpoint is correctly set up in your Stripe dashboard to send events back to your site. The webhook URL should be https://yourdomain.com/wp-json/forminator/stripe/webhook. This is crucial for payment methods that have a delayed confirmation.
By methodically working through these steps, you can usually identify and resolve the issue causing successful payments to fail to trigger a complete form submission in Forminator.
Related Support Threads Support
-
Payment via Bank Account not detectedhttps://wordpress.org/support/topic/payment-via-bank-account-not-detected/
-
Stripe in Forminator issuehttps://wordpress.org/support/topic/stripe-in-forminator-issue/
-
Submission Alerts?https://wordpress.org/support/topic/submission-alerts/
-
double paymenthttps://wordpress.org/support/topic/double-payment-3/
-
Form info is not being sent, only uploaded attachments are sent.https://wordpress.org/support/topic/form-info-is-not-being-sent-only-uploaded-attachments-are-sent-2/
-
Email Field Rejects Valid Addresses in Warranty Formhttps://wordpress.org/support/topic/email-field-rejects-valid-addresses-in-warranty-form/
-
Conditional Logic Amount Not Sent with Custom HTML/JS on Multi-Step Formhttps://wordpress.org/support/topic/conditional-logic-amount-not-sent-with-custom-html-js-on-multi-step-form/
-
Form not displayedhttps://wordpress.org/support/topic/form-not-displayed-3/
-
Only first mail senthttps://wordpress.org/support/topic/only-fordt-mail-sent/
-
Resend email – Radio/checkbox “Other” optionhttps://wordpress.org/support/topic/resend-email-radio-checkbox-other-option/
-
Attached files remains in the server after sending emailhttps://wordpress.org/support/topic/attached-files-remains-in-the-server-after-sending-email/
-
Identify form used from submissionhttps://wordpress.org/support/topic/identify-form-used-from-submission/
-
Public website dont show formhttps://wordpress.org/support/topic/public-website-dont-show-form/
-
Forminator not working with PHP 8.2https://wordpress.org/support/topic/forminator-not-working-with-php-8-2/
-
filter fields sent to google sheet through integrationhttps://wordpress.org/support/topic/filter-fields-sent-to-google-sheet-through-integration/
-
Current Hook for Custom Form Submission (Multi-Step Quiz/Form)https://wordpress.org/support/topic/current-hook-for-custom-form-submission-multi-step-quiz-form/
-
Quiz – multiple answershttps://wordpress.org/support/topic/quiz-multiple-answers/