{"id":381591,"date":"2026-10-07T22:14:18","date_gmt":"2026-10-07T22:14:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/zc-forms-contact-form-builder\/"},"modified":"2026-10-08T13:54:47","modified_gmt":"2026-10-08T13:54:47","slug":"zain-corporations-contact-forms","status":"publish","type":"plugin","link":"https:\/\/nl-be.wordpress.org\/plugins\/zain-corporations-contact-forms\/","author":23580638,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0.7","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Zain Corporations Contact Forms","header_author":"Zain Corporations","header_description":"A fast, tag-based contact form builder with submissions inbox, CSV export, file uploads, conditional fields, webhooks, CAPTCHA-free spam protection and one-click Contact Form 7 import.","assets_banners_color":"ccccdd","last_updated":"2026-10-08 13:54:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/zaincorporations.com\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":80,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"zaincorporations","date":"2026-10-08 13:54:47","revision":3734771}},"upgrade_notice":{"1.0.2":"<p>Form buttons now match your theme automatically.<\/p>","1.0.1":"<p>Improves how form fields look on dark and custom themes.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3733424,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3733424,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3733424,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3733424,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"zainforms\/form":{"name":"zainforms\/form","title":"ZC Form"}},"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The form editor with one-click field buttons.","2":"The submissions inbox.","3":"A form on the front end."}},"plugin_section":[],"plugin_tags":[358,5887,2253,601,6696],"plugin_category":[41,42],"plugin_contributors":[284919],"plugin_business_model":[],"class_list":["post-381591","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form","plugin_tags-file-upload","plugin_tags-form-builder","plugin_tags-forms","plugin_tags-smtp","plugin_category-communication","plugin_category-contact-forms","plugin_contributors-zaincorporations","plugin_committers-zaincorporations"],"banners":{"banner":"https:\/\/ps.w.org\/zain-corporations-contact-forms\/assets\/banner-772x250.png?rev=3733424","banner_2x":"https:\/\/ps.w.org\/zain-corporations-contact-forms\/assets\/banner-1544x500.png?rev=3733424","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/zain-corporations-contact-forms\/assets\/icon-128x128.png?rev=3733424","icon_2x":"https:\/\/ps.w.org\/zain-corporations-contact-forms\/assets\/icon-256x256.png?rev=3733424","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Zain Corporations Contact Forms lets you build forms with a simple tag syntax (the same idea as the classic form plugins) and adds the things most people end up needing anyway.<\/p>\n\n<p><strong>Familiar tags<\/strong><\/p>\n\n<pre><code>[text* your-name], `[email* your-email]`, `[textarea your-message]`, `[select]`, `[radio]`, `[checkbox]`, `[number]`, `[date]`, `[tel]`, `[url]`, `[file]`, `[acceptance]`, `[submit]`. Insert fields with one click from the editor.\n<\/code><\/pre>\n\n<p><strong>What you get out of the box<\/strong><\/p>\n\n<ul>\n<li><strong>Submissions inbox<\/strong> \u2013 every message is saved in your dashboard, with search, bulk delete and an \"Email failed\" flag, so nothing is lost if an email does not arrive.<\/li>\n<li><strong>CSV export<\/strong> \u2013 download all submissions (or one form), protected against spreadsheet formula injection.<\/li>\n<li><strong>File uploads<\/strong> \u2013 <code>[file* cv allowed:pdf,docx limit:2mb]<\/code>. Strict allow-list, executable types always blocked, files stored under random names in a protected folder, attached to the notification email and downloadable only by administrators.<\/li>\n<li><strong>Conditional fields<\/strong> \u2013 <code>[text company show-if:topic=sales]<\/code> shows a field only when another field has a given value. Hidden fields are skipped on the server too.<\/li>\n<li><strong>Spam protection without CAPTCHA<\/strong> \u2013 hidden honeypot, signed timestamp, per-visitor rate limit, maximum links and blocked words. Suspicious messages go to a Spam tab instead of your inbox.<\/li>\n<li><strong>Optional Cloudflare Turnstile<\/strong> \u2013 a free, privacy-friendly CAPTCHA alternative, off unless you add your keys.<\/li>\n<li><strong>Webhooks<\/strong> \u2013 send each submission as JSON to Zapier, Make, n8n or your own endpoint.<\/li>\n<li><strong>Auto-reply<\/strong> \u2013 confirmation email to the visitor.<\/li>\n<li><strong>Clean HTML emails<\/strong> \u2013 a responsive layout in your accent colour with a one-click \"Reply\" button, plus a plain-text version for every message.<\/li>\n<li><strong>Reliable email delivery<\/strong> \u2013 built-in SMTP option (only used for this plugin's emails), From name\/address, a \"Send test email\" tool and the exact failure reason shown in the inbox.<\/li>\n<li><strong>Redirect after success<\/strong> \u2013 send visitors to a thank-you page.<\/li>\n<li><strong>Import from Contact Form 7<\/strong> \u2013 copies your forms, email settings and messages. Your original forms are not touched.<\/li>\n<li><strong>Block editor block<\/strong> \u2013 plus the <code>[zain_form id=\"123\"]<\/code> shortcode.<\/li>\n<li><strong>Duplicate forms<\/strong>, accent colour setting, AJAX submit with accessible inline errors.<\/li>\n<li><strong>GDPR friendly<\/strong> \u2013 IP addresses and browser details are not stored; optionally auto-delete submissions (and their files) after N days.<\/li>\n<li><strong>Lightweight<\/strong> \u2013 a few KB of CSS\/JS, loaded only on pages that contain a form.<\/li>\n<li><strong>Developer friendly<\/strong> \u2013 hooks for validation, spam checks, webhook payloads and post-submit actions.<\/li>\n<\/ul>\n\n<h4>Tag reference<\/h4>\n\n<pre><code>[text* name placeholder \"Your name\" class:wide] \u2013 add `*` to make a field required.\n\n[select topic \"Sales|sales\" \"Support|support\"] \u2013 use `Label|value` for choices.\n\n[number qty min:1 max:10], `[textarea msg maxlength:500]`, `[submit \"Send\"]`.\n\n[text company show-if:topic=sales] \u2013 conditional field (use the choice *value*; separate several values with `|`). Put each conditional field in its own `&lt;p&gt;` or `&lt;label&gt;`.\n\n[file* cv allowed:pdf,docx limit:2mb] \u2013 file upload (maximum 10 MB).\n<\/code><\/pre>\n\n<h4>Mail tags<\/h4>\n\n<p>Use <code>[field-name]<\/code>, <code>[_all_fields]<\/code>, <code>[_site_title]<\/code>, <code>[_site_url]<\/code>, <code>[_form_title]<\/code>, <code>[_date]<\/code> and <code>[_time]<\/code> in the email subject and body.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin works fully on its own. It only contacts third parties if you turn the following features on:<\/p>\n\n<p><strong>Cloudflare Turnstile (optional)<\/strong><\/p>\n\n<p>If you enter a Turnstile site key and secret key under Zain Forms \u2192 Settings, visitors' browsers load a script from <code>https:\/\/challenges.cloudflare.com\/turnstile\/v0\/api.js<\/code>, and the submitted Turnstile token (plus the visitor's IP address) is sent to <code>https:\/\/challenges.cloudflare.com\/turnstile\/v0\/siteverify<\/code> to confirm the visitor is human. Terms: https:\/\/www.cloudflare.com\/website-terms\/ \u2013 Privacy: https:\/\/www.cloudflare.com\/privacypolicy\/<\/p>\n\n<p><strong>Webhooks (optional)<\/strong><\/p>\n\n<p>If you enter a webhook URL on a form, each accepted submission (the field values, form name, submission ID, time and your site address) is sent to that URL. You decide which service receives the data. Nothing is sent unless you configure a URL.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Submissions are stored in your own WordPress database. The plugin does not store IP addresses or user agents. See \"External services\" above for the two optional features that contact other services. You can set an automatic deletion period in <strong>Zain Forms \u2192 Settings<\/strong>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>zain-corporations-contact-forms<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the plugin from the Plugins screen.<\/li>\n<li>Activate it. A starter form is created for you.<\/li>\n<li>Go to <strong>Zain Forms<\/strong> and edit the form.<\/li>\n<li>Paste the shortcode, e.g. <code>[zain_form id=\"123\"]<\/code>, into any page or post, or add the <strong>Zain Form<\/strong> block.<\/li>\n<\/ol>\n\n<p>Coming from Contact Form 7? Go to <strong>Zain Forms \u2192 Settings \u2192 Import from Contact Form 7<\/strong>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20see%20messages%3F\"><h3>Where do I see messages?<\/h3><\/dt>\n<dd><p>In <strong>Zain Forms \u2192 Submissions<\/strong> (when \"Save submissions\" is enabled on the form) and by email.<\/p><\/dd>\n<dt id=\"does%20it%20use%20recaptcha%3F\"><h3>Does it use reCAPTCHA?<\/h3><\/dt>\n<dd><p>No. It uses a honeypot, a signed timestamp, a rate limit and content filters. Cloudflare Turnstile is available as an optional extra.<\/p><\/dd>\n<dt id=\"emails%20are%20not%20arriving\"><h3>Emails are not arriving<\/h3><\/dt>\n<dd><p>Many hosts (and all local test sites) cannot send email on their own. Go to <strong>Zain Forms \u2192 Settings \u2192 Email delivery<\/strong>, turn on SMTP and enter your mail account details (for Gmail: smtp.gmail.com, port 587, TLS, and an App Password), then use <strong>Send test email<\/strong>. Messages are always saved in the Submissions inbox, and a failed email is flagged there together with the reason. Also set a From email on your own domain to avoid spam folders.<\/p><\/dd>\n<dt id=\"are%20uploaded%20files%20safe%3F\"><h3>Are uploaded files safe?<\/h3><\/dt>\n<dd><p>Only allow-listed extensions are accepted, executable and script types are always rejected, images are checked, and files are stored under random names in a protected folder. Only administrators can download them. On Nginx servers, also add a rule that denies direct access to <code>wp-content\/uploads\/zainforms-uploads\/<\/code>.<\/p><\/dd>\n<dt id=\"the%20rate%20limit%20blocks%20everyone%20behind%20my%20cdn\"><h3>The rate limit blocks everyone behind my CDN<\/h3><\/dt>\n<dd><p>Make sure your CDN forwards the real visitor IP and use the <code>zainforms_client_ip<\/code> filter, or set the limit to 0 in <strong>Zain Forms \u2192 Settings<\/strong>.<\/p><\/dd>\n<dt id=\"which%20hooks%20are%20available%3F\"><h3>Which hooks are available?<\/h3><\/dt>\n<dd><p>zainforms_validation_errors, <code>zainforms_is_spam<\/code>, <code>zainforms_client_ip<\/code> and <code>zainforms_webhook_payload<\/code> (filters) and <code>zainforms_submitted<\/code> (action).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>New: the submit button and fields now follow your theme's styling automatically. A custom colour is optional (Settings \u2192 Appearance).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: form fields now look consistent on dark and custom themes (the message box no longer shows a white background).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Fast contact form builder with a submissions inbox, file uploads, conditional fields, CAPTCHA-free spam protection and Contact Form 7 import.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/381591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=381591"}],"author":[{"embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/zaincorporations"}],"wp:attachment":[{"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=381591"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=381591"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=381591"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=381591"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=381591"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nl-be.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=381591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}