{"id":261053,"date":"2025-12-04T08:48:29","date_gmt":"2025-12-04T08:48:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cmb-sqlite-form\/"},"modified":"2025-12-16T15:01:09","modified_gmt":"2025-12-16T15:01:09","slug":"cmb-sqlite-form","status":"publish","type":"plugin","link":"https:\/\/ka.wordpress.org\/plugins\/cmb-sqlite-form\/","author":15767420,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.9.3","stable_tag":"0.9.3","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"CMB SQLite Form","header_author":"C\u00e9sar Morillas","header_description":"Contact forms with SQLite storage, customizable fields, email notifications, SMTP, spam protection, junk email filtering, and CSV\/DB export.","assets_banners_color":"c7d6d0","last_updated":"2025-12-16 15:01:09","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":256,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.9.0":{"tag":"0.9.0","author":"cmorillas1","date":"2025-12-04 09:18:33"},"0.9.1":{"tag":"0.9.1","author":"cmorillas1","date":"2025-12-04 12:08:15"},"0.9.2":{"tag":"0.9.2","author":"cmorillas1","date":"2025-12-16 14:16:13"},"0.9.3":{"tag":"0.9.3","author":"cmorillas1","date":"2025-12-16 15:01:09"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3420815,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3420815,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3420824,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3421175,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"meta\":{\"title\":\"CMB SQLite Form Plugin Test Site\",\"description\":\"A blueprint to test de CMB-SQLite-Form Plugin\",\"author\":\"cmorillas1\"},\"siteOptions\":{\"blogname\":\"CMB SQLite Form Plugin Test\"},\"login\":true,\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"cmb-sqlite-form\"},\"options\":{\"activate\":true}}],\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=cmbsqf-forms\",\"preferredVersions\":{\"php\":\"8.3\",\"wp\":\"latest\"}}"}},"all_blocks":[],"tagged_versions":["0.9.0","0.9.1","0.9.2","0.9.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3421142,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3421142,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3421142,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3421142,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3421142,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3421142,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3421142,"resolution":"7","location":"assets","locale":""}},"screenshots":{"1":"<strong>Forms Dashboard<\/strong> - Overview of all your forms.","2":"<strong>Global Settings<\/strong> - Configuring defaults for the entire site.","3":"<strong>Form Overrides<\/strong> - Customizing specific settings for a single form.","4":"<strong>Bot Protection<\/strong> - Configuring Honeypot, Time Validation, and CAPTCHA.","5":"<strong>Junk Email<\/strong> - Managing blocklists and sources.","6":"<strong>Entries Management<\/strong> - Viewing and exporting submissions."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[2656,358,601,131785,28201],"plugin_category":[42,54],"plugin_contributors":[150563],"plugin_business_model":[],"class_list":["post-261053","plugin","type-plugin","status-publish","hentry","plugin_tags-anti-spam","plugin_tags-contact-form","plugin_tags-forms","plugin_tags-gdpr","plugin_tags-sqlite","plugin_category-contact-forms","plugin_category-security-and-spam-protection","plugin_contributors-cmorillas1","plugin_committers-cmorillas1"],"banners":{"banner":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/banner-772x250.png?rev=3420824","banner_2x":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/banner-1544x500.png?rev=3420815","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/icon-256x256.png?rev=3420815","icon_2x":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/icon-256x256.png?rev=3420815","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/screenshot-1.png?rev=3421142","caption":"<strong>Forms Dashboard<\/strong> - Overview of all your forms."},{"src":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/screenshot-2.png?rev=3421142","caption":"<strong>Global Settings<\/strong> - Configuring defaults for the entire site."},{"src":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/screenshot-3.png?rev=3421142","caption":"<strong>Form Overrides<\/strong> - Customizing specific settings for a single form."},{"src":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/screenshot-4.png?rev=3421142","caption":"<strong>Bot Protection<\/strong> - Configuring Honeypot, Time Validation, and CAPTCHA."},{"src":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/screenshot-5.png?rev=3421142","caption":"<strong>Junk Email<\/strong> - Managing blocklists and sources."},{"src":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/screenshot-6.png?rev=3421142","caption":"<strong>Entries Management<\/strong> - Viewing and exporting submissions."},{"src":"https:\/\/ps.w.org\/cmb-sqlite-form\/assets\/screenshot-7.png?rev=3421142","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>CMB SQLite Form<\/strong> is a lightweight yet powerful contact form solution designed for performance and privacy. Unlike traditional form plugins that clutter your main WordPress database, this plugin stores all submissions in a secure, local SQLite database.<\/p>\n\n<p>It features a robust <strong>Global vs. Per-Form Settings<\/strong> system, allowing you to configure defaults once and override them only when needed for specific forms.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><p><strong>\ud83d\ude80 Zero-Overhead Storage<\/strong><\/p>\n\n<ul>\n<li>Uses a dedicated SQLite database file for submissions.<\/li>\n<li>Keeps your main WordPress database clean and fast.<\/li>\n<li>Portable data: Download the entire <code>.db<\/code> file for backups or migration.<\/li>\n<\/ul><\/li>\n<li><p><strong>\ud83d\udee1\ufe0f Advanced Bot Protection<\/strong><\/p>\n\n<ul>\n<li><strong>Honeypot Field:<\/strong> Invisible field to trap bots.<\/li>\n<li><strong>Time Validation:<\/strong> Rejects submissions that are filled out too quickly (human behavior analysis).<\/li>\n<li><strong>Simple CAPTCHA:<\/strong> Lightweight text-based questions (e.g., \"2 + 2 = ?\") without external dependencies.<\/li>\n<\/ul><\/li>\n<li><p><strong>\ud83d\udce7 Junk Email Protection<\/strong><\/p>\n\n<ul>\n<li><strong>Disposable Email Blocker:<\/strong> Automatically blocks temporary\/throwaway email addresses.<\/li>\n<li><strong>Multiple Sources:<\/strong> Supports multiple blocklist sources with automatic deduplication.<\/li>\n<li><strong>Auto-Updates:<\/strong> Keeps your blocklist fresh with one-click updates.<\/li>\n<\/ul><\/li>\n<li><p><strong>\ud83c\udfa8 Professional Styling<\/strong><\/p>\n\n<ul>\n<li><strong>Pre-designed Templates:<\/strong> Choose from multiple professional styles (Default, Dark Mode, Minimal, etc.).<\/li>\n<li><strong>WordPress Customizer Ready:<\/strong> Fully compatible with \"Additional CSS\" for advanced customization.<\/li>\n<li><strong>Responsive Design:<\/strong> Forms look great on all devices automatically.<\/li>\n<\/ul><\/li>\n<li><p><strong>\ud83d\udce8 Flexible Email Notifications<\/strong><\/p>\n\n<ul>\n<li><strong>Dual Notifications:<\/strong> Send distinct emails to Admin (notification) and User (confirmation).<\/li>\n<li><strong>Custom SMTP Support:<\/strong> Built-in SMTP configuration (Host, Port, Auth, SSL\/TLS) to bypass <code>wp_mail()<\/code> if needed.<\/li>\n<li><strong>Sender Customization:<\/strong> Customize \"From Name\" and \"From Email\" per form.<\/li>\n<\/ul><\/li>\n<li><p><strong>\u2699\ufe0f Smart Configuration System<\/strong><\/p>\n\n<ul>\n<li><strong>Global Defaults:<\/strong> Set your preferred settings once for the entire site.<\/li>\n<li><strong>Per-Form Overrides:<\/strong> Override ANY setting (fields, emails, styling, protection) for individual forms.<\/li>\n<li><strong>Modular Architecture:<\/strong> Enable or disable features as needed.<\/li>\n<\/ul><\/li>\n<li><p><strong>\ud83d\udcca Full Entry Management (Free)<\/strong><\/p>\n\n<ul>\n<li><strong>Unlimited Submissions:<\/strong> No limits on the number of entries.<\/li>\n<li><strong>Search &amp; Filter:<\/strong> Easily find specific submissions in the dashboard.<\/li>\n<li><strong>Export Tools:<\/strong> Download all your data as CSV or full DB backup (often a premium feature in other plugins).<\/li>\n<\/ul><\/li>\n<li><p><strong>\ud83d\udd12 Privacy &amp; GDPR<\/strong><\/p>\n\n<ul>\n<li><strong>Consent Checkbox:<\/strong> Built-in privacy policy acceptance field.<\/li>\n<li><strong>Data Management:<\/strong> Tools to export (CSV\/DB) or delete data upon uninstall.<\/li>\n<li><strong>Local Storage:<\/strong> Data stays on your server, not third-party clouds.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li><strong>Contact Forms:<\/strong> Simple, fast, and secure contact pages.<\/li>\n<li><strong>Lead Generation:<\/strong> Capture leads on landing pages with minimal friction.<\/li>\n<li><strong>Download Gates:<\/strong> Deliver files (PDFs, ebooks) via email confirmation links.<\/li>\n<li><strong>Support Requests:<\/strong> Organize customer queries efficiently.<\/li>\n<li><strong>Event &amp; Quote Requests:<\/strong> Structured data collection for business needs.<\/li>\n<li><strong>Feedback &amp; Surveys:<\/strong> Gather user opinions without external services.<\/li>\n<li><strong>High-Performance Sites:<\/strong> Zero database overhead keeps your site fast.<\/li>\n<li><strong>Privacy-Focused Projects:<\/strong> Local storage with built-in GDPR tools.<\/li>\n<li><strong>Developers &amp; Agencies:<\/strong> Clean architecture that keeps the main DB optimized.<\/li>\n<li><strong>Data Ownership:<\/strong> Full access to your data (view\/export) without paywalls.<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<h4>Global vs. Form Settings<\/h4>\n\n<p>The plugin uses a smart inheritance system:\n1.  <strong>Global Settings:<\/strong> Define the default behavior for ALL forms (e.g., your SMTP server, default styling, admin email).\n2.  <strong>Form Settings:<\/strong> When editing a specific form, you can toggle <strong>\"Override Global Settings\"<\/strong> on any section to customize it just for that form.<\/p>\n\n<h4>Setting up Bot Protection<\/h4>\n\n<ol>\n<li>Go to <strong>Global Settings &gt; Bot Protection<\/strong>.<\/li>\n<li>Enable <strong>Honeypot<\/strong> (recommended).<\/li>\n<li>Enable <strong>Time Validation<\/strong> (e.g., set to 3 seconds).<\/li>\n<li>(Optional) Enable <strong>CAPTCHA<\/strong> for stricter forms.<\/li>\n<\/ol>\n\n<h4>Configuring Email Sending<\/h4>\n\n<p>You can choose how emails are sent:\n*   <strong>WordPress Default:<\/strong> Uses your server's standard PHP <code>mail()<\/code> function.\n*   <strong>Custom SMTP:<\/strong> Go to <strong>Notifications &gt; Outgoing Server<\/strong> to configure a specific SMTP server (Gmail, SendGrid, etc.) for reliable delivery.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>cmb-sqlite-form<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Navigate to <strong>CMB SQLite Form<\/strong> in the admin menu.<\/li>\n<li>(Optional) Configure your <strong>Global Settings<\/strong> to set defaults for all forms.<\/li>\n<li>Create a new form and copy its shortcode: <code>[cmb_sqlite_form id=\"1\"]<\/code>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='where%20is%20the%20data%20stored%3F'><h3>Where is the data stored?<\/h3><\/dt>\n<dd><p>Data is stored in a secure <code>.db<\/code> (SQLite) file within your <code>wp-content\/uploads\/cmb-sqlite-form\/<\/code> directory. This ensures your main WordPress database remains untouched.<\/p><\/dd>\n<dt id='can%20i%20customize%20the%20form%20css%3F'><h3>Can I customize the form CSS?<\/h3><\/dt>\n<dd><p>Yes! You can select a pre-made template in the <strong>Styling<\/strong> section. For specific changes, use the WordPress Customizer (<strong>Appearance &gt; Customize &gt; Additional CSS<\/strong>) and target classes like <code>.cmbsqf-form<\/code>, <code>.cmbsqf-input<\/code>, and <code>.cmbsqf-button<\/code>.<\/p><\/dd>\n<dt id='how%20do%20i%20update%20the%20disposable%20email%20blocklist%3F'><h3>How do I update the disposable email blocklist?<\/h3><\/dt>\n<dd><p>Go to <strong>Junk Email Protection<\/strong>, add your source URLs (e.g., from GitHub lists), and click <strong>\"Update Blocklist Now\"<\/strong>. The plugin will download, merge, and deduplicate the domains automatically.<\/p><\/dd>\n<dt id='what%20happens%20if%20i%20uninstall%20the%20plugin%3F'><h3>What happens if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>By default, data is preserved. You can enable <strong>\"Delete on Uninstall\"<\/strong> in <strong>Global Settings &gt; Data Management<\/strong> if you want to wipe all forms and entries upon deletion.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.9.3<\/h4>\n\n<ul>\n<li>Added Icons<\/li>\n<\/ul>\n\n<h4>0.9.2<\/h4>\n\n<ul>\n<li>Added FORM_FIELDS constant for field definitions.<\/li>\n<li>Improved settings sanitization with explicit rules table.<\/li>\n<li>Added realpath() validation for CSS templates.<\/li>\n<li>Improved error handling in SQLite connections.<\/li>\n<li>Fixed download headers encoding.<\/li>\n<li>Removed duplicate script enqueue.<\/li>\n<li>Code cleanup and PHPDoc improvements.<\/li>\n<\/ul>\n\n<h4>0.9.1<\/h4>\n\n<ul>\n<li>Fixed Error<\/li>\n<\/ul>\n\n<h4>0.9.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>SQLite database engine implementation.<\/li>\n<li>Global vs. Per-Form settings architecture.<\/li>\n<li>Advanced Bot Protection (Honeypot, Time, CAPTCHA).<\/li>\n<li>Junk Email Protection with multi-source blocklists.<\/li>\n<li>Template-based styling system.<\/li>\n<li>Custom SMTP support.<\/li>\n<li>CSV and Database export tools.<\/li>\n<\/ul>","raw_excerpt":"A modular, high-performance SQLite-backed contact form plugin with advanced security, anti-spam features, and zero database overhead.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=261053"}],"author":[{"embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/cmorillas1"}],"wp:attachment":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261053"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261053"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261053"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261053"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261053"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}