{"id":372854,"date":"2026-09-22T11:49:48","date_gmt":"2026-09-22T11:49:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/drag-drop-editor-for-contact-form-7\/"},"modified":"2026-09-22T12:00:41","modified_gmt":"2026-09-22T12:00:41","slug":"canvasly-for-contact-form-7","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/canvasly-for-contact-form-7\/","author":23570887,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.5","stable_tag":"0.2.5","tested":"7.1.2","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Canvasly for Contact Form 7","header_author":"Maximilian Leistner","header_description":"Drag-and-drop visual field editor for Contact Form 7 \u2014 adds a \"Visual Builder\" tab to the form editor that reads and writes CF7's native tag syntax directly, so the raw \"Form\" tab keeps working as a fallback.","assets_banners_color":"9fc0da","last_updated":"2026-09-22 12:00:41","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/canvasly-for-contact-form-7\/","header_author_uri":"https:\/\/profiles.wordpress.org\/fuxdev\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.4":{"tag":"0.2.4","author":"fuxdev","date":"2026-09-22 11:49:29","revision":3707221},"0.2.5":{"tag":"0.2.5","author":"fuxdev","date":"2026-09-22 12:00:41","revision":3707252}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3707221,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3707221,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3707221,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3707221,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.4","0.2.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3707221,"resolution":"1","location":"assets","locale":"","width":2560,"height":1760},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3707221,"resolution":"2","location":"assets","locale":"","width":2560,"height":2000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3707221,"resolution":"3","location":"assets","locale":"","width":2560,"height":1660},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3707221,"resolution":"4","location":"assets","locale":"","width":2560,"height":1760}},"screenshots":{"1":"The Visual Builder tab: every field is a live preview card you can drag; headings of your form become editable cards too.","2":"Editing a field \u2014 label, required, option list, and whether the field is part of the email you receive. Technical settings hide under \"Advanced\".","3":"Adding fields: templates plus all supported form-tags, grouped.","4":"Front-end preview of the unsaved form with your theme's styles (desktop \/ mobile)."}},"plugin_section":[],"plugin_tags":[5445,1152,3938,2253,2796],"plugin_category":[42],"plugin_contributors":[282035],"plugin_business_model":[],"class_list":["post-372854","plugin","type-plugin","status-publish","hentry","plugin_tags-cf7","plugin_tags-contact-form-7","plugin_tags-drag-and-drop","plugin_tags-form-builder","plugin_tags-visual-editor","plugin_category-contact-forms","plugin_contributors-fuxdev","plugin_committers-fuxdev"],"banners":{"banner":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/banner-772x250.png?rev=3707221","banner_2x":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/banner-1544x500.png?rev=3707221","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/icon-128x128.png?rev=3707221","icon_2x":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/icon-256x256.png?rev=3707221","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/screenshot-1.png?rev=3707221","caption":"The Visual Builder tab: every field is a live preview card you can drag; headings of your form become editable cards too."},{"src":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/screenshot-2.png?rev=3707221","caption":"Editing a field \u2014 label, required, option list, and whether the field is part of the email you receive. Technical settings hide under \"Advanced\"."},{"src":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/screenshot-3.png?rev=3707221","caption":"Adding fields: templates plus all supported form-tags, grouped."},{"src":"https:\/\/ps.w.org\/canvasly-for-contact-form-7\/assets\/screenshot-4.png?rev=3707221","caption":"Front-end preview of the unsaved form with your theme's styles (desktop \/ mobile)."}],"raw_content":"<!--section=description-->\n<p>Contact Form 7 forms are written as text with form-tags such as <code>[text* your-name]<\/code>. This plugin adds a <strong>Visual Builder<\/strong> tab to the Contact Form 7 editor, next to the existing \"Form\" tab, so that people who do not want to write tags can build and edit forms visually.<\/p>\n\n<p>It does not replace anything in Contact Form 7. The Visual Builder reads the form template, lets you edit it, and writes the same native syntax back into the \"Form\" tab. Saving, mail, validation and spam protection stay 100% Contact Form 7. Both tabs always show the same form, and anything the builder does not understand is kept exactly as it was.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Live preview card for every field \u2014 click it to edit label, required state, default\/placeholder, options and more<\/li>\n<li>Drag and drop to reorder; a field moves together with its own <code>&lt;label&gt;<\/code> or layout wrapper (for example <code>&lt;div class=\"half-width\"&gt;<\/code>)<\/li>\n<li>Layout choice per field when your form uses wrapper classes such as half\/full width<\/li>\n<li>Option list editor for dropdowns, checkboxes and radio buttons<\/li>\n<li>Headings, paragraphs and divider lines of your template become editable cards; pure layout markup stays out of the way<\/li>\n<li>Field templates (contact form, callback request)<\/li>\n<li>Email check: see whether a field is part of the email you receive, add it with one click, and get warned before a removed or renamed field breaks the mail template<\/li>\n<li>Undo \/ redo<\/li>\n<li>Front-end preview with your theme's styles (desktop and mobile width), without saving<\/li>\n<li>Technical settings (field name, id, class, raw options, surrounding HTML) are available under \"Advanced\"<\/li>\n<li>Translation-ready; German included (Du and Sie, plus Austrian and Swiss variants)<\/li>\n<\/ul>\n\n<p>Supported form-tags: text, email, tel, url, textarea, number, date, select, checkbox, radio, acceptance, quiz, file, submit. Other tags (from add-ons, for example) are preserved untouched.<\/p>\n\n<p>This plugin is an independent add-on and is not affiliated with or endorsed by the Contact Form 7 project.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate Contact Form 7.<\/li>\n<li>Install and activate this plugin.<\/li>\n<li>Go to Contact \u2192 Contact Forms, open a form and switch to the \"Visual Builder\" tab.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20change%20how%20my%20forms%20are%20stored%3F\"><h3>Does it change how my forms are stored?<\/h3><\/dt>\n<dd><p>No. The form is still the plain Contact Form 7 form template. You can deactivate this plugin at any time and nothing changes.<\/p><\/dd>\n<dt id=\"will%20it%20break%20my%20hand-written%20form%3F\"><h3>Will it break my hand-written form?<\/h3><\/dt>\n<dd><p>Fields you do not edit are written back byte-for-byte. Markup the builder does not recognise is shown as an \"HTML block\" and left alone.<\/p><\/dd>\n<dt id=\"does%20it%20support%20conditional%20fields%20or%20multi-step%20forms%3F\"><h3>Does it support conditional fields or multi-step forms?<\/h3><\/dt>\n<dd><p>No. Contact Form 7 has no native syntax for those; tags added by other add-ons are preserved but not edited visually.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20contact%20external%20servers%3F\"><h3>Does the plugin contact external servers?<\/h3><\/dt>\n<dd><p>No.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.5<\/h4>\n\n<ul>\n<li>Plugin URI and Author URI headers, so the author name links to a profile like other plugins<\/li>\n<li>\"Getting Started\" and \"Leave a Review\" links on the plugin's row on the Plugins screen<\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li>Renamed to \"Canvasly for Contact Form 7\" per WordPress.org plugin review feedback (distinctive name, trademark only after \"for\")<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>Translations are loaded by WordPress itself (no manual text domain loading)<\/li>\n<li>German variants: formal, Austria, Switzerland<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Fields move together with their label \/ layout wrapper; layout choice per field<\/li>\n<li>Undo\/redo, front-end preview, field templates, option list editor, email checks<\/li>\n<li>Placeholder toggle<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"A visual drag-and-drop editor for Contact Form 7 forms. No separate data model: it reads and writes CF7&#039;s own form template.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/372854","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=372854"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fuxdev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=372854"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=372854"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=372854"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=372854"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=372854"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=372854"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}