New WordPress plugin available: Form2Wizz

Ludovic

Member
New plugin available: Form2Wizz

I'm excited to announce the official release of **Form2Wizz**, my new plugin dedicated to integrating Elementor Pro and MailWizz.

✅ **What Form2Wizz does:**

* Allows automatic addition of subscribers to your MailWizz lists directly from Elementor Pro forms.
* Easy integration via the "After Submission" action on Elementor forms.
* Easy management of GDPR compliance with consent submission.

**Ideal for:**

* Automating your marketing processes
* Simplifying your technical integrations
* Improving your subscriber management

**Available now on the WordPress repository:**
[Form2Wizz - MailWizz integration for Elementor](https://wordpress.org/plugins/form2wizz/)

We welcome your feedback to help us improve this tool!

#WordPress #Elementor #MailWizz #MarketingAutomation #Plugin #WebDevelopment

Screen Shot 2025-05-03 at 23.55.04.png
 
Just tested it and unfortunately cannot get it to work. :confused:
  • I entered all the details required. Tried both my plain MailWizz URL and the API URL (which one do you need btw.?)
  • Tried both with and without GDPR consent being required (when I tried with GDPR requirement, I wasn't sure what the "checkbox TAG" was supposed to be, since you otherwise referred to the "field ID". But it didn't make a difference in getting data into MailWizz anyway)
  • List ID and API key are both correct
  • Checked that the test email address was not yet in the list
  • The Elementor Form itself was submitted fine and within a second, as usual
My list requires EMAIL, FNAME, LNAME, and all these fields have been set (email through your email field option, the other two through your "Custom field mapping", which I assume you added after taking the screenshots in the WP repo.)

Am I missing something?
 
Last edited:
Hey @nadworks

Thank you for your enthusiasm, here are some ideas that might help you:
  • I entered all the details required. Tried both my plain MailWizz URL and the API URL (which one do you need btw.?)
The URL of your MailWizz installation is sufficient, mine is installed on `https://app.kingcourriel.fr` for example
  • Tried both with and without GDPR consent being required (when I tried with GDPR requirement, I wasn't sure what the "checkbox TAG" was supposed to be, since you otherwise referred to the "field ID". But it didn't make a difference in getting data into MailWizz anyway)
When you have GDPR consent to check, enter the tag you specified in the `MailWizz Consent Checkbox TAG` field (I have included a screenshot of the part to copy and paste from your MailWizz)

Screen Shot 2025-05-04 at 22.56.01.png

My list requires EMAIL, FNAME, LNAME, and all these fields have been set (email through your email field option, the other two through your "Custom field mapping", which I assume you added after taking the screenshots in the WP repo.)
Have you correctly mapped your Elementor form IDs to the MailWizz form field tags?

Screen Shot 2025-05-04 at 23.04.17.png

Screen Shot 2025-05-04 at 23.06.32.png

I did a quick test of the Elementor form on the frontend; with these precautions, everything was transmitted correctly (The attached zip is a screenshot of the test).

If necessary, I'll create a tutorial from scratch for you, let me know.
 

Attachments

Thanks for the reply.

I was expecting there to be a conditional logic connected to the checkbox (call it GDPR), but not that it's required to connect back to MailWizz and requires to have an actual custom field. That's overkill as far as I'm concerned, since consent is only needed when the opt-in comes as a secondary purpose (like in this contact form). a GDPR consent check is not needed for pure email opt-in forms since completing the form is giving consent. There's no other purpose to an opt-in form than to opt-in, as opposed to a contact form.

Therefore I never created a specific GDPR custom field inside MailWizz.

I simply use the conditional logic (i.e. in Greenforms) so say, "only process the data from this contact form to MailWizz if the checkbox 'I would also like to receive Marketing emails' is ticked". Otherwise don't.

So to your mechanism, if I wanted to simply create that conditional logic inside the Elementor form, I would need to attribute the MailWizz "Action after submit" step to only trigger, when a checkbox is checked, and not even send the data to the MailWizz list otherwise. I do not want to add a GDPR field to all my lists and in particular, I do not want to request consent on single-minded opt-in forms because it's not necessary. If I understand your process correctly, though, that is a mandatory field in your MailWizz setup.

However, for my tests' sake, I disabled the GDPR opt-in entirely, which should in fact add every single contact form submission to my MailWizz list. This is not happening.

I've now tripple-checked the field IDs on both sides. The URL and API are also correct (I'm now just using my top level MailWizz URL) and the list ID, too. The submissions are just not arriving at MailWizz.

It's working fine with Greenforms, where the API + API URL are used and then automatically connect the form to the MailWizz applications and populates a drop-down with all list names for easy selection. That way you can see that the connection was successfully established. After that the field association is straightforward since it gives you all the fields in the list to connect to formd fields:

1746394661405.png

However, the macanism that makes this solution powerful is the conditional logic.
The MailWizz integration in Greenforms (kind of like "Action after Submit" option) only triggers when my set condition is met, and that is - in all my contact forms - a consent checkbox.

1746394875336.png

As I mentioned before, I'm not using consent requests for pure email subscribe forms.

Needless to say, though, that I would need to get your plugin to actually work first, even without the conditional logic, before I look into an Elementor Form solution for that particular issue.
 
New plugin available: Form2Wizz

I'm excited to announce the official release of **Form2Wizz**, my new plugin dedicated to integrating Elementor Pro and MailWizz.

✅ **What Form2Wizz does:**

* Allows automatic addition of subscribers to your MailWizz lists directly from Elementor Pro forms.
* Easy integration via the "After Submission" action on Elementor forms.
* Easy management of GDPR compliance with consent submission.

**Ideal for:**

* Automating your marketing processes
* Simplifying your technical integrations
* Improving your subscriber management

**Available now on the WordPress repository:**
[Form2Wizz - MailWizz integration for Elementor](https://wordpress.org/plugins/form2wizz/)

We welcome your feedback to help us improve this tool!

#WordPress #Elementor #MailWizz #MarketingAutomation #Plugin #WebDevelopment

View attachment 22113
Great, keep it up.
 
Thank you for your detailed feedback.

Step 1 – Let’s fix the data not being sent to MailWizz​


Before diving into your conditional logic requirements, we first need to solve the issue that submissions are not arriving in MailWizz.

Since your API Key, URL, and List ID seem correctly set, the issue is likely related to field mapping or a missing required field in MailWizz that prevents the API from accepting the data.

To identify the root cause, please enable debug mode in your `wp-config.php` file:

PHP:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);

Then submit the form again and copy-paste the content of your wp-content/debug.log file here. This will show us both the API request and the exact response from MailWizz (like a 422 error if a required field is missing).




⚙️ Step 2 – Adapting the plugin to your conditional logic​


I fully understand your goal: you want to send data to MailWizz only when a marketing opt-in checkbox is ticked, without having to create a custom GDPR/consent field inside each MailWizz list.


Here are two approaches that fit your needs:


✅ Option 1 – Recommended and native​


  • Create a required consent field in your MailWizz list (e.g. CONSENT_MARKETING).
  • In Elementor, add a non-required checkbox field (type: "Acceptance") and map it to that MailWizz field.
  • If the user does not tick the checkbox → MailWizz will reject the submission (as expected).
  • If the user does tick the checkbox → subscriber is added successfully.

✅ This gives you the exact conditional behavior you're looking for, without custom code.


Example from actual debug logs:


Case 1 – Checkbox not ticked, submission fails (as expected):

Code:
[05-May-2025 16:14:16 UTC] Form2Wizz Request data log: Array
(
    [EMAIL] => 2025-05-05-20-13-56@kuuoqlqhsi.com
    [list] => ng011sd2wx2ff
    [ipaddress] => XXX.XX.XXX.XX
    [referrer] => https://xx-xx.xxxxxx.fr/elementor-115/
    [FNAME] => test 2025-05-05-20-13-54
    [POST_ID] => 098765
    [LC_WHORY] => VALUE_3
    [LC_CNSNTMNT_RGPD] =>
)

[05-May-2025 16:14:16 UTC] Form2Wizz log: Response code: 422, Response message: Unprocessable Entity, Response body: {"status":"error","error":{"LC_CNSNTMNT_RGPD":"The field LC_CNSNTMNT_RGPD is required by the list but it has not been provided!"}}

Case 2 – Checkbox ticked, submission succeeds:

Code:
[05-May-2025 16:15:12 UTC] Form2Wizz Request data log: Array
(
    [EMAIL] => 2025-05-05-20-14-57@gmail.com
    [list] => ng011sd2wx2ff
    [ipaddress] => XXX.XX.XXX.XX
    [referrer] => https://xx-xx.xxxxxx.fr/elementor-115/
    [FNAME] => test 2025-05-05-20-14-54
    [POST_ID] => 098747
    [LC_WHORY] => VALUE_1
    [LC_CNSNTMNT_RGPD] => on
)

[05-May-2025 16:15:12 UTC] Form2Wizz log: Response code: 201, Response message: Created, Response body: {"status":"success","data":{"record":{"subscriber_uid":"xx300mfx366e9","email":"2025-05-05-20-14-57@gmail.com","ip_address":"XXX.XX.XXX.XX","source":"api","date_added":"2025-05-05 16:15:12"}}}

This proves the plugin does exactly what you're trying to achieve — as long as the form and list fields are properly configured.


Option 2 – Send all data and filter later​


  • Remove the "required" flag from the consent field in MailWizz.
  • Always send form data to MailWizz, whether the checkbox is ticked or not.
  • Later on, use segmentation or list cleaning to filter only contacts who gave consent.

⚠️ Drawback: non-opted-in contacts will still enter your list, which can affect deliverability or compliance depending on your usage.




❗ About Elementor’s “Actions After Submit” logic​


You are correct: Elementor does not support conditional execution of actions after submission. Once the form is submitted, all configured actions (like MailWizz) are triggered.


The only way to truly conditionally run such actions is via custom code or a tailored plugin extension, which I could develop for you if needed (as a paid add-on or customization).




Let’s first get the debug log to make sure everything is wired correctly on your side. Once we confirm that, we can look at the best option to fit your workflow.


Let me know when you have the debug output ready.
 
Hi Ludovic.
Thanks - I'll check this again with debug enabled a.s.a.p.

Re. your outlined "Recommended" MailWizz consent field process: that's exactly what I would NOT recommend.
You're forcing the entire list mechanic to only accept subscribers when a custom consent box has been confirmed. However, as I was trying to explain - probably not very well - consent is only needed for cross-purpose forms. If the single purpose of an opt-in form is to opt-in to receive emails, the consent field is obsolete and just adds to form clutter. The consent field is only required when the form's initial purpose is not exclusively to sign up to receive emails (i.e. contact or purchase etc.).

We would have to tie 50+ lists and hundreds of existing signup-forms across multiple websites to this unnecessary consent box mechanic, only to overcome a missing conditional logic that should happen on a form level, not on the MailWizz side.
 
Hey @nadworks,
Thanks for your reply and the additional context.

It seems we're facing a mutual misunderstanding regarding how our respective tools function, so let me clarify things point by point. This should help us move forward constructively:



1. First, on a technical note: the GDPR consent field in my plugin is​


Contrary to what you may have understood, the GDPR consent field is not mandatory in Form2Wizz. This is an option that you can completely ignore if your form is a simple contact form (which you rightly describe as not requiring separate explicit consent).

You can therefore use my plugin perfectly well without creating a consent field in your MailWizz lists, without adding this field to your Elementor forms, and without having to enable "GDPR" in the Form2Wizz settings.



2. About Elementor’s native “Actions After Submit” behavior​


It’s important to clarify that Elementor Pro does not natively support conditional logic on Actions After Submit. Once a form is submitted, all actions defined (MailWizz, email, webhook, etc.) are triggered automatically. There is no built-in way to execute an action only if a certain checkbox is ticked.

This is a limitation of Elementor itself — not of my plugin. So unfortunately, there is no way (without custom development) to prevent the MailWizz action from running based on a checkbox.

Official source: Elementor Developer Documentation – Form Actions



3. What GreenForms does (and why it's different)​


In your case, you're using GreenForms — which is a fully standalone form engine. That means it handles form logic and integrations internally, including advanced conditional logic.

GreenForms lets you do something Elementor doesn’t:

Send data to MailWizz only if a condition is met — before the form is actually submitted.

That works because GreenForms controls the entire flow, from field logic to integrations. Elementor, by contrast, only allows “After Submit” actions — which all trigger unconditionally once the form is submitted.

Source: GreenForms Documentation – Integration Settings




4. How to replicate this (sort of) with Elementor​


If you're looking to implement similar conditional logic in Elementor without coding, the only realistic workaround is what I previously proposed:
Let MailWizz reject the submission if the checkbox isn't ticked.

You would:
  • Create a required field in your MailWizz list.
  • Map it to a non-required checkbox in Elementor.
  • If the checkbox isn’t ticked → MailWizz returns a 422 error (as expected).
  • If it is → the submission goes through.

This isn't as elegant as what you're used to with GreenForms, but it's the only method that works within Elementor's current capabilities — without custom coding.



5. If needed: a custom-built solution​


If your workflow really requires conditional logic before submission, it's entirely possible to build a custom extension or JS/PHP logic that adds this to Elementor forms. I’d be happy to explore that with you as a custom development if you'd like.



In the meantime, please don’t hesitate to send me your debug log when you're ready — we can troubleshoot the current submission issue, and then revisit the logic aspect once your setup is working properly.

Best regards,
Ludovic
 
Hi Ludovic. Yes, that all makes sense and I'm aware of all this. My bugbear is less your GDPR field requirement, but the fact that your route 4 forces a permanent checkbox on all forms for that list.
I was excited to potentially have an alternative to Green Forms, which has its own minor issues and isn't perfect because it's so unique and somewhat locked in. But it seems that indeed, the limitations of Elementor Pro Forms alone are making your plugin a trickier than expected implementation if the aim is a smooth workflow, even with the use of Dynamic.ooo's extensions.

I'll experiment a little more soon and check the debug log when I have time between other projects.
Thanks for the great work!
 
Back
Top