{"id":306172,"date":"2026-08-29T10:47:17","date_gmt":"2026-08-29T10:47:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/quick-forms\/"},"modified":"2026-08-29T10:47:03","modified_gmt":"2026-08-29T10:47:03","slug":"99forms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/99forms\/","author":23544374,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.8","requires_php":"7.4","requires_plugins":null,"header_name":"99Forms","header_author":"bodhiwp","header_description":"A native Gutenberg block-based form builder. Build forms directly inside the block editor \u2014 no shortcodes, no iframes.","assets_banners_color":"f1f2f3","last_updated":"2026-08-29 10:47:03","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/bodhiwp.com\/99forms\/","header_author_uri":"https:\/\/bodhiwp.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":54,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"salimlabs","date":"2026-08-29 10:47:03","revision":3671418}},"upgrade_notice":{"1.0.0":"<p>Initial release. No upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3671418,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-722x250.png":{"filename":"banner-722x250.png","revision":3671418,"resolution":"722x250","location":"assets","locale":"","width":724,"height":250}},"assets_blueprints":{},"all_blocks":{"nnforms\/form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/form","version":"0.1.0","title":"Form","category":"nnforms","icon":"feedback","description":"99Forms wrapper block","example":{},"supports":{"html":false,"multiple":false},"attributes":{"id":{"type":"string"},"formName":{"type":"string","default":"Contact Form"},"showLabel":{"type":"boolean","default":true},"labelPosition":{"type":"string","default":"above"},"fieldWidth":{"type":"string","default":"500px"},"fieldMargin":{"type":"object","default":{"top":"20px","left":"0px","right":"0px","bottom":"0px"}},"labelWidth":{"type":"string","default":"150px"},"redirectionUrl":{"type":"string","default":""},"hideFormAfterSubmit":{"type":"boolean","default":true},"honeypot":{"type":"boolean","default":true},"messages":{"type":"object","default":{"success":"The form has been submitted successfully!","error":"The form submission has failed. Please check the errors."}},"emails":{"type":"array","default":[]},"margin":{"type":"object","default":{"top":"20px","left":"0px","right":"0px","bottom":"0px"}},"padding":{"type":"object","default":{"top":"20px","left":"20px","right":"20px","bottom":"20px"}}},"textdomain":"nnforms","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScript":"file:.\/view.js","render":"file:.\/render.php"},"nnforms\/checkbox":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/checkbox","version":"0.1.0","title":"Checkbox","category":"nnforms","icon":"yes","description":"Checkbox Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"fieldLabel":{"type":"string","default":"Checkbox"},"placeholder":{"type":"string","default":"I agree to all terms and conditions."},"defaultValue":{"type":"string","default":""},"required":{"type":"boolean","default":false},"checkedByDefault":{"type":"boolean","default":false}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/radio":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/radio","version":"0.1.0","title":"Radio","category":"nnforms","icon":"editor-ul","description":"Radio Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"fieldLabel":{"type":"string","default":"Radio"},"options":{"type":"string","default":""},"optionsLayout":{"type":"string","default":"inline"},"defaultValue":{"type":"string","default":""},"required":{"type":"boolean","default":false}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/textarea":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/textarea","version":"0.1.0","title":"Textarea","category":"nnforms","icon":"editor-paragraph","description":"Textarea Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"fieldLabel":{"type":"string","default":"Textarea"},"rowsCount":{"type":"number","default":5},"placeholder":{"type":"string","default":""},"defaultValue":{"type":"string","default":""},"required":{"type":"boolean","default":false},"maxLength":{"type":"number","default":500}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/select":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/select","version":"0.1.0","title":"Select","category":"nnforms","icon":"arrow-down-alt2","description":"Select Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"fieldLabel":{"type":"string","default":"Select"},"options":{"type":"string","default":""},"optionsLayout":{"type":"string","default":"inline"},"defaultValue":{"type":"string","default":""},"required":{"type":"boolean","default":false}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/file-upload":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/file-upload","version":"0.1.0","title":"File Upload","category":"nnforms","icon":"cloud-upload","description":"File Upload Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"fieldLabel":{"type":"string","default":"File Upload"},"placeholder":{"type":"string","default":""},"required":{"type":"boolean","default":false},"accept":{"type":"string","default":""},"multiple":{"type":"boolean","default":false}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/submit":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/submit","version":"0.1.0","title":"Submit","category":"nnforms","icon":"arrow-right-alt","description":"Submit Button","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"buttonText":{"type":"string","default":"Submit"},"buttonWidthType":{"type":"string","default":"custom"},"buttonWidth":{"type":"string","default":"100px"},"textColor":{"type":"string","default":"#000000"},"bgColor":{"type":"string","default":"#e7e7e7"},"padding":{"type":"object","default":{"top":"15px","left":"20px","right":"20px","bottom":"15px"}}},"textdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/recaptcha":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/recaptcha","version":"0.1.0","title":"Recaptcha","category":"nnforms","icon":"lock","description":"Recaptcha Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/country":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/country","version":"0.1.0","title":"Country","category":"nnforms","icon":"admin-site-alt2","description":"Country Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"fieldLabel":{"type":"string","default":"Country"},"options":{"type":"string","default":""},"optionsLayout":{"type":"string","default":"inline"},"defaultValue":{"type":"string","default":""},"required":{"type":"boolean","default":false}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"},"nnforms\/input":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"nnforms\/input","version":"0.1.0","title":"Input","category":"nnforms","icon":"editor-textcolor","description":"Input Field","parent":["nnforms\/form"],"example":{},"supports":{"html":false},"attributes":{"id":{"type":"string"},"inputType":{"type":"string","default":"text"},"fieldLabel":{"type":"string","default":"Field Label"},"placeholder":{"type":"string","default":""},"defaultValue":{"type":"string","default":""},"required":{"type":"boolean","default":false},"minValue":{"type":"number","default":0},"maxValue":{"type":"number","default":100},"maxLength":{"type":"number","default":100}},"inputdomain":"nnforms","editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Form block with field blocks inside the block editor.","2":"Label position and field width controls in the block sidebar.","3":"Submissions table filtered by a specific form.","4":"Plugin settings page (reCAPTCHA keys)."}},"plugin_section":[],"plugin_tags":[1220,358,361,2253,148076],"plugin_category":[42],"plugin_contributors":[278166,243805],"plugin_business_model":[],"class_list":["post-306172","plugin","type-plugin","status-publish","hentry","plugin_tags-block","plugin_tags-contact-form","plugin_tags-form","plugin_tags-form-builder","plugin_tags-gutenberg","plugin_category-contact-forms","plugin_contributors-bodhiwp","plugin_contributors-salimshrestha","plugin_committers-bodhiwp","plugin_committers-salimshrestha"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/99forms\/assets\/icon-256x256.png?rev=3671418","icon_2x":"https:\/\/ps.w.org\/99forms\/assets\/icon-256x256.png?rev=3671418","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>99Forms is a lightweight, Gutenberg-native contact form builder built for WordPress 6.8+. Every form field is a proper block \u2014 drag, drop, and configure directly inside the editor. No shortcodes, no page builders required.<\/p>\n\n<p><strong>Why 99Forms?<\/strong><\/p>\n\n<p>Most form plugins were built before the block editor existed. They bolt on Gutenberg support as an afterthought \u2014 a single shortcode block wrapping a separate form builder UI. 99Forms is built block-first from day one.<\/p>\n\n<p><strong>Available Field Blocks<\/strong><\/p>\n\n<ul>\n<li>Text, Email, Password, Number, Hidden input<\/li>\n<li>Textarea<\/li>\n<li>Checkbox<\/li>\n<li>Radio buttons<\/li>\n<li>Select dropdown<\/li>\n<li>Country picker (with phone code)<\/li>\n<li>File upload<\/li>\n<li>reCAPTCHA v2<\/li>\n<\/ul>\n\n<p><strong>Form Features<\/strong><\/p>\n\n<ul>\n<li>Honeypot spam protection (built-in, no config needed)<\/li>\n<li>Google reCAPTCHA v2 support<\/li>\n<li>Configurable success and error messages<\/li>\n<li>Post-submission redirect URL<\/li>\n<li>Hide form after successful submission<\/li>\n<li>Server-side file upload validation (type + size)<\/li>\n<\/ul>\n\n<p><strong>Admin Features<\/strong><\/p>\n\n<ul>\n<li>Submissions table with per-form filtering<\/li>\n<li>Bulk delete submissions<\/li>\n<li>Sortable columns (ID, date)<\/li>\n<\/ul>\n\n<p><strong>Design &amp; Styling<\/strong><\/p>\n\n<ul>\n<li>Label position: above or inline<\/li>\n<li>Global field width control<\/li>\n<li>Field spacing (margin) control<\/li>\n<li>Label width control (for inline mode)<\/li>\n<li>Padding control on the form wrapper<\/li>\n<\/ul>\n\n<p><strong>Pro Version (Coming Soon)<\/strong><\/p>\n\n<p>The free version covers all core form-building needs. A Pro version is planned with:<\/p>\n\n<ul>\n<li>Email notifications (admin + user confirmation)<\/li>\n<li>Conditional logic (show\/hide fields based on values)<\/li>\n<li>Multi-step forms<\/li>\n<li>CSV export of submissions<\/li>\n<li>File attachment in notification emails<\/li>\n<li>Webhooks \/ Zapier integration<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin optionally uses Google reCAPTCHA v2 to protect forms from spam.\nWhen the reCAPTCHA field is added to a form, the Google reCAPTCHA script is\nloaded from Google's servers and the user's response token is sent to Google\nfor verification on form submission.<\/p>\n\n<p>Service: Google reCAPTCHA\nData sent: CAPTCHA response token, IP address (handled by Google)\nCondition: Only when a form with the reCAPTCHA block is submitted\nTerms of Service: https:\/\/policies.google.com\/terms\nPrivacy Policy: https:\/\/policies.google.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>nnforms<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong>.<\/li>\n<li>Open any page or post in the block editor.<\/li>\n<li>Search for \"Form\" in the block inserter \u2014 add the <strong>Form<\/strong> block.<\/li>\n<li>Add field blocks inside the Form block (Input, Textarea, Select, etc.).<\/li>\n<li>Publish the page.<\/li>\n<\/ol>\n\n<p><strong>reCAPTCHA Setup (optional)<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>99Forms \u2192 Settings<\/strong>.<\/li>\n<li>Enter your Google reCAPTCHA v2 Site Key and Secret Key.<\/li>\n<li>Add the <strong>reCAPTCHA<\/strong> block inside your form.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20the%20classic%20editor%3F\"><h3>Does this work with the classic editor?<\/h3><\/dt>\n<dd><p>No. 99Forms is built exclusively for the Gutenberg block editor (WordPress 6.8+). It has no shortcode or classic editor support by design.<\/p><\/dd>\n<dt id=\"where%20are%20form%20submissions%20stored%3F\"><h3>Where are form submissions stored?<\/h3><\/dt>\n<dd><p>Submissions are stored in a custom database table (<code>wp_nnforms_submissions<\/code>) created on plugin activation. View them under <strong>99Forms \u2192 Submissions<\/strong> in the admin.<\/p><\/dd>\n<dt id=\"how%20do%20i%20filter%20submissions%20by%20form%3F\"><h3>How do I filter submissions by form?<\/h3><\/dt>\n<dd><p>On the <strong>Submissions<\/strong> page, use the \"Choose a form\" dropdown at the top and click Filter.<\/p><\/dd>\n<dt id=\"is%20the%20honeypot%20spam%20protection%20always%20active%3F\"><h3>Is the honeypot spam protection always active?<\/h3><\/dt>\n<dd><p>Honeypot is enabled by default on each form. You can disable it per-form from the Form block settings in the editor sidebar.<\/p><\/dd>\n<dt id=\"can%20i%20have%20multiple%20forms%20on%20the%20same%20page%3F\"><h3>Can I have multiple forms on the same page?<\/h3><\/dt>\n<dd><p>Yes. Each Form block gets a unique ID automatically.<\/p><\/dd>\n<dt id=\"what%20file%20types%20are%20allowed%20for%20file%20upload%20fields%3F\"><h3>What file types are allowed for file upload fields?<\/h3><\/dt>\n<dd><p>Currently: JPEG, PNG, and PDF. Maximum file size is 2MB per upload.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Form, Input, Textarea, Checkbox, Radio, Select, Country, File Upload, reCAPTCHA, and Submit blocks.<\/li>\n<li>Submissions stored in custom DB table with admin list table.<\/li>\n<li>Honeypot spam protection.<\/li>\n<li>reCAPTCHA v2 support.<\/li>\n<li>Per-form success\/error messages and redirect URL.<\/li>\n<\/ul>","raw_excerpt":"A native Gutenberg block-based contact form builder. Build contact forms directly inside the block editor \u2014 no shortcodes, no iframes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/306172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=306172"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/bodhiwp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=306172"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=306172"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=306172"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=306172"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=306172"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=306172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}