{"id":336646,"date":"2026-08-23T00:51:47","date_gmt":"2026-08-23T00:51:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/guidwell-recommendation-wizard\/"},"modified":"2026-08-23T02:16:58","modified_gmt":"2026-08-23T02:16:58","slug":"lets-make-decisions-lead-generation-wizard","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/lets-make-decisions-lead-generation-wizard\/","author":23528404,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.6.4","stable_tag":"2.6.4","tested":"7.0.4","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Let\u2019s Make Decisions","header_author":"Chad Welfle","header_description":"A customizable guided wizard that recommends the right plan or offer for each visitor.","assets_banners_color":"d0d3d9","last_updated":"2026-08-23 02:16:58","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/welflecreative.com\/lets-make-decisions","header_author_uri":"https:\/\/welflecreative.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":42,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.6.1":{"tag":"2.6.1","author":"welflecreative","date":"2026-08-23 00:51:27"},"2.6.4":{"tag":"2.6.4","author":"welflecreative","date":"2026-08-23 02:16:58"}},"upgrade_notice":{"2.3.1":"<p>Housekeeping release \u2014 no action required.<\/p>","1.5.6":"<p>Minor visual fix \u2014 no action required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3661288,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3661288,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3661288,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3661288,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"lmd\/wizard":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"lmd\/wizard","version":"1.0.0","title":"Let\u2019s Make Decisions Wizard","category":"widgets","icon":"forms","description":"Embed a Let\u2019s Make Decisions recommendation wizard on any page or post.","keywords":["lets-make-decisions","quiz","wizard","recommendation"],"textdomain":"lets-make-decisions-lead-generation-wizard","attributes":{"wizardId":{"type":"number","default":0}},"supports":{"html":false,"align":["wide","full"]},"editorScript":"lmd-block-editor"}},"tagged_versions":["2.6.1","2.6.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3661315,"resolution":"1","location":"assets","locale":"","width":736,"height":436},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3661315,"resolution":"2","location":"assets","locale":"","width":736,"height":482},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3661315,"resolution":"3","location":"assets","locale":"","width":736,"height":481},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3661315,"resolution":"4","location":"assets","locale":"","width":1088,"height":600}},"screenshots":{"1":"The wizard's opening question, rendered natively on the page.","2":"A follow-up question along one path through the wizard.","3":"A different path \u2014 the questions adapt based on what a visitor answers earlier.","4":"The results screen: a recommended plan with reasoning and a clear next step."}},"plugin_section":[],"plugin_tags":[337,456,583,3466,17648],"plugin_category":[53,55],"plugin_contributors":[277029],"plugin_business_model":[],"class_list":["post-336646","plugin","type-plugin","status-publish","hentry","plugin_tags-lead-generation","plugin_tags-marketing","plugin_tags-quiz","plugin_tags-recommendation","plugin_tags-wizard","plugin_category-ratings-and-reviews","plugin_category-seo-and-marketing","plugin_contributors-welflecreative","plugin_committers-welflecreative"],"banners":{"banner":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/banner-772x250.png?rev=3661288","banner_2x":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/banner-1544x500.png?rev=3661288","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/icon-128x128.png?rev=3661288","icon_2x":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/icon-256x256.png?rev=3661288","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/screenshot-1.png?rev=3661315","caption":"The wizard's opening question, rendered natively on the page."},{"src":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/screenshot-2.png?rev=3661315","caption":"A follow-up question along one path through the wizard."},{"src":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/screenshot-3.png?rev=3661315","caption":"A different path \u2014 the questions adapt based on what a visitor answers earlier."},{"src":"https:\/\/ps.w.org\/lets-make-decisions-lead-generation-wizard\/assets\/screenshot-4.png?rev=3661315","caption":"The results screen: a recommended plan with reasoning and a clear next step."}],"raw_content":"<!--section=description-->\n<p>Let\u2019s Make Decisions replaces the guesswork of \"which plan is right for me?\" with a smart, conversational wizard that scores each visitor's answers and surfaces the option that genuinely fits them.<\/p>\n\n<p>Most quiz and recommendation tools are hosted SaaS products that charge $30\u2013$100\/month and store your data on someone else's server. Let\u2019s Make Decisions runs entirely inside WordPress: your data stays in your database, you own the experience, and there is no monthly platform fee.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<p>You build a wizard in the WordPress admin \u2014 write your questions, add answer choices, set up your plans or offers, and Let\u2019s Make Decisions scores each visitor's responses to find their strongest match. When they finish, a polished results modal shows them exactly which option fits and why.<\/p>\n\n<p><strong>What's included:<\/strong><\/p>\n\n<ul>\n<li>Build a wizard with up to 5 questions, 5 answers per question, and 3 result plans (Free)<\/li>\n<li>Full frontend wizard rendering on any post or page (Free)<\/li>\n<li>Gutenberg block, shortcode <code>[lmdwiz]<\/code>, and Elementor widget (Free)<\/li>\n<li>Conditional logic trees with a visual drag-and-drop canvas <em>(Premium)<\/em><\/li>\n<li>Custom colors, fonts, and branding to match your site <em>(Premium)<\/em><\/li>\n<li>Email capture \u2014 collect visitor emails and send them their results <em>(Premium)<\/em><\/li>\n<li>Admin notifications when a visitor completes the wizard, with optional custom SMTP <em>(Premium)<\/em><\/li>\n<li>JSON export to back up or copy your wizard <em>(Premium)<\/em>; JSON import to restore or duplicate one <em>(Premium \u2014 Pro and up)<\/em><\/li>\n<li>Plan logo and icon images on the results page <em>(Premium \u2014 Pro and up)<\/em><\/li>\n<li>Higher wizard\/question\/answer\/plan limits, multi-site licensing, and analytics scale with Starter ($79\/yr), Pro ($149\/yr), and Agency ($299\/yr) \u2014 see the full comparison at <a href=\"https:\/\/welflecreative.com\/lets-make-decisions\">welflecreative.com<\/a><\/li>\n<\/ul>\n\n<p><strong>Embedding options<\/strong><\/p>\n\n<ul>\n<li><strong>Gutenberg block<\/strong> \u2014 search for \"Let\u2019s Make Decisions Wizard\" in the block inserter<\/li>\n<li><strong>Shortcode<\/strong> \u2014 <code>[lmdwiz]<\/code> or <code>[lmdwiz id=\"123\"]<\/code> for a specific wizard<\/li>\n<li><strong>Elementor<\/strong> \u2014 Let\u2019s Make Decisions Wizard widget available in the Elementor panel<\/li>\n<\/ul>\n\n<p><strong>Privacy<\/strong><\/p>\n\n<p>Let\u2019s Make Decisions does not send any visitor data to external servers. All wizard configurations and visitor responses are stored in your WordPress database. If email capture is enabled, collected emails are stored locally in your WordPress database.<\/p>\n\n<p>When lead capture is enabled, visitor submissions (any of: name, email, phone, company, message), the recommended plan, the visitor's answers, their consent (text + timestamp), the page URL, a one-way hashed IP address, and the browser user-agent are stored locally as private records in your WordPress database. No lead data is transmitted outside your site by the plugin itself. Leads participate in WordPress's built-in personal-data export and erasure tools (Tools \u2192 Export\/Erase Personal Data), and all lead data is deleted when the plugin is uninstalled.<\/p>\n\n<p><strong>Premium<\/strong><\/p>\n\n<p>The Free tier is fully usable on its own \u2014 build a wizard with up to 5 questions, 5 answers per question, and 3 result plans, embedded anywhere via Gutenberg, shortcode, or Elementor. Starter ($79\/yr), Pro ($149\/yr), and Agency ($299\/yr) unlock conditional logic, custom branding, email capture, admin notifications, JSON import\/export, plan logo\/icon images, multi-site licensing, and analytics; see the full tier comparison at <a href=\"https:\/\/welflecreative.com\/lets-make-decisions\">welflecreative.com<\/a>. Upgrading is handled inside your WordPress dashboard from the plugin\u2019s <strong>Upgrade<\/strong> page, which is powered by our checkout partner Freemius \u2014 they process the purchase and issue your license.<\/p>\n\n<p><strong>External services<\/strong><\/p>\n\n<p>This plugin uses Freemius for license management and the optional upgrade flow. Freemius is only contacted for these purposes, and any usage-data sharing is opt-in via a consent prompt you can decline. See the Freemius <a href=\"https:\/\/freemius.com\/terms\/\">Terms of Service<\/a> and <a href=\"https:\/\/freemius.com\/privacy\/\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>lets-make-decisions-lead-generation-wizard<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install via <strong>Plugins &gt; Add New<\/strong> in WordPress admin.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Let\u2019s Make Decisions<\/strong> in the WordPress admin menu (left-hand sidebar). If you see a one-time Freemius screen asking to share usage data, either choice is fine \u2014 it only affects optional diagnostics and has no effect on the plugin's features.<\/li>\n<li>Build your first wizard on the <strong>Builder<\/strong> tab, which opens by default with a starter example already filled in:\n\n<ul>\n<li><strong>Questions &amp; Answers<\/strong> \u2014 edit the sample question\/answers in place, or click <strong>+ Add Question<\/strong> and <strong>+ Add Answer<\/strong> to write your own. Each answer carries a weight toward each plan below it \u2014 higher weight means that answer favors that plan.<\/li>\n<li><strong>Plans<\/strong> \u2014 edit the sample plans (name, description, call-to-action) or add your own with <strong>+ Add Plan<\/strong>. A wizard needs at least two plans and one question with answers before it can score visitors.<\/li>\n<li>Click <strong>Save<\/strong> (top of the Builder tab) once your questions and plans are in place.<\/li>\n<\/ul><\/li>\n<li>Optional setup, each on its own tab in the same screen:\n\n<ul>\n<li><strong>Logic<\/strong> \u2014 build conditional branching between questions instead of a straight list, with a visual drag-and-drop canvas.<\/li>\n<li><strong>Lead Capture<\/strong> \u2014 turn on a hard gate that collects name\/email\/phone (you choose which fields are required) before a visitor sees their result. For a lighter touch, the separate <strong>Notifications<\/strong> tab has its own optional \"Collect visitor email\" toggle that shows a single, non-required email field after the result instead.<\/li>\n<li><strong>Features<\/strong> \u2014 add a feature-comparison list under each plan on the results screen.<\/li>\n<li><strong>Settings<\/strong> \u2014 colors, fonts, and branding to match your site.<\/li>\n<li><strong>Notifications<\/strong> \u2014 turn on an admin email each time a visitor completes the wizard, and optionally configure custom SMTP.<\/li>\n<\/ul><\/li>\n<li>Embed the wizard on any page:\n\n<ul>\n<li><strong>Gutenberg block<\/strong> \u2014 search \"Let\u2019s Make Decisions Wizard\" in the block inserter.<\/li>\n<li><strong>Shortcode<\/strong> \u2014 <code>[lmdwiz]<\/code> for your first (oldest published) wizard, or <code>[lmdwiz id=\"123\"]<\/code> for a specific one \u2014 find each wizard's numeric ID under <strong>Plan Wizards<\/strong> in the admin menu, hovering its title shows the ID in the row-action link.<\/li>\n<li><strong>Elementor<\/strong> \u2014 drag the \"Let\u2019s Make Decisions Wizard\" widget onto any section and pick a wizard from its dropdown.<\/li>\n<\/ul><\/li>\n<li>Completed wizard submissions (when Lead Capture is on) appear under <strong>Let\u2019s Make Decisions \u2192 Leads<\/strong>, with CSV export available from that screen.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20my%20theme%3F\"><h3>Does this work with my theme?<\/h3><\/dt>\n<dd><p>Yes. Let\u2019s Make Decisions renders a full-bleed card that breaks out of your theme's content column automatically. It has been tested with Twenty Twenty-Four, Astra, Kadence, and GeneratePress.<\/p><\/dd>\n<dt id=\"can%20i%20have%20more%20than%20one%20wizard%3F\"><h3>Can I have more than one wizard?<\/h3><\/dt>\n<dd><p>Yes. You can create as many wizards as you like \u2014 there is no limit.<\/p><\/dd>\n<dt id=\"does%20let%E2%80%99s%20make%20decisions%20store%20visitor%20data%3F\"><h3>Does Let\u2019s Make Decisions store visitor data?<\/h3><\/dt>\n<dd><p>Let\u2019s Make Decisions does not log individual visitor responses by default. If you enable email capture, the visitor's email address and their result are stored in your WordPress database. No visitor data is sent to external servers.<\/p><\/dd>\n<dt id=\"is%20let%E2%80%99s%20make%20decisions%20compatible%20with%20page%20builders%3F\"><h3>Is Let\u2019s Make Decisions compatible with page builders?<\/h3><\/dt>\n<dd><p>Yes. Let\u2019s Make Decisions includes a native Gutenberg block and an Elementor widget. For other page builders, use the <code>[lmdwiz]<\/code> shortcode.<\/p><\/dd>\n<dt id=\"can%20i%20import%20a%20wizard%20from%20another%20site%3F\"><h3>Can I import a wizard from another site?<\/h3><\/dt>\n<dd><p>Yes. JSON import and export are both included \u2014 use them to back up, copy, or move wizards between sites.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>Documentation and support are available at <a href=\"https:\/\/welflecreative.com\/lets-make-decisions\">https:\/\/welflecreative.com\/lets-make-decisions<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.0<\/h4>\n\n<ul>\n<li>Added: Every completed wizard run is now stored under Leads with the visitor's full set of answers \u2014 free-text responses included \u2014 so nothing is lost when a notification email fails to arrive or notifications are switched off. Runs without contact details are saved as \"Anonymous completion\" and are not counted as captured leads.<\/li>\n<li>Added: Lead CSV export now includes an Answers column (every question and response), plus Runner-up, Insight and \"Recorded from\" columns. The lead detail screen and the WordPress personal-data export show the answers too.<\/li>\n<li>Fixed: Multi-line and non-ASCII free-text answers were stored with their escaping stripped (a line break became a literal \"n\"). Newly stored answers keep their original formatting.<\/li>\n<li>Changed: Removed the unprefixed <code>[lets-make-decisions]<\/code> shortcode alias \u2014 <code>[lmdwiz]<\/code> is now the only registered shortcode (WordPress.org guideline compliance). Existing posts and pages are rewritten to <code>[lmdwiz]<\/code> automatically on update, so embeds keep working.<\/li>\n<li>Security: The public send-result endpoint now re-reads the recommended and runner-up plan from the wizard's saved configuration instead of trusting the plan details sent with the request, so a forged submission cannot inject its own plan name, price, copy, or CTA link into notification emails or the <code>lmdwiz_result_submitted<\/code> \/ <code>lmdwiz_lead_captured<\/code> hooks.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Changed: Renamed all PHP identifiers, options, post types, meta keys, and the REST namespace to the distinct <code>lmdwiz<\/code> prefix (WordPress.org guideline compliance). Existing wizards, leads, and settings are migrated automatically on update.<\/li>\n<li>Added: Prefixed <code>[lmdwiz]<\/code> shortcode. The legacy <code>[lets-make-decisions]<\/code> shortcode continues to work.<\/li>\n<li>Changed: Removed the \"Powered by\" credit from visitor result emails.<\/li>\n<li>Removed: The \u201cBrought to you by Let\u2019s Make Decisions\u201d watermark and its setting have been removed entirely.<\/li>\n<li>Changed: Admin \"Add New\" styling now loads via the proper style API instead of an inline tag.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Fixed: Removed the last internal \"Guidwell\" references from developer comments and package metadata (no user-facing changes)<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Added: Leads admin page, CSV export, privacy tools (phase 4)<\/li>\n<li>Added: Lead Capture builder tab (phase 3)<\/li>\n<li>Added: Frontend capture gate before results (phase 2)<\/li>\n<li>Added: Lead storage + REST \/lead capture endpoint (phases 0\u20131)<\/li>\n<li>Added: Expose Let's Make Connections integration surface<\/li>\n<li>Fixed: Address code-review findings<\/li>\n<li>Fixed: Keep the plugin menu link on wizard settings from lead screens<\/li>\n<li>Fixed: Stop the lmd_lead CPT from hijacking manage_options site-wide<\/li>\n<li>Fixed: Point in-app upgrade CTAs at the Freemius checkout<\/li>\n<li>Fixed: Address save-button review findings<\/li>\n<li>Fixed: Make the admin Save button persist every tab, not just the active one<\/li>\n<li>Fixed: Harden the lead trigger and finish the Cobalt sweep<\/li>\n<li>Fixed: Make the WordPress.org build fully functional (guidelines 5 &amp; 10)<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Fixed: Distinct Plugin URI and Author URI in plugin header<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Maintenance release \u2014 no functional changes.<\/li>\n<\/ul>\n\n<h4>2.0.5<\/h4>\n\n<ul>\n<li>Fixed: Use \"Let\u2019s Make Decisions\" as the plugin display name<\/li>\n<\/ul>\n\n<h4>2.0.4<\/h4>\n\n<ul>\n<li>Maintenance release \u2014 no functional changes.<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>Fixed: Resolve WordPress.org Plugin Check findings in first-party code<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Maintenance release \u2014 no functional changes.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fixed: Upgrade freemius-deploy v0.1.2 -&gt; v0.1.3 (v0.1.2 built a bad API path and masked failures)<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added: Resolve tier from Freemius plan (license-driven gating)<\/li>\n<li>Added: Complete Freemius init (org-compliant + wp.org gatekeeper via CI secret)<\/li>\n<li>Fixed: Address whole-app review of Freemius integration<\/li>\n<li>Fixed: Use trial plan for tier during Freemius trial; fail build if gatekeeper placeholder missing<\/li>\n<\/ul>\n\n<h4>1.5.10<\/h4>\n\n<ul>\n<li>Fixed: Snap to closest overlapping card when chaining, not first in array order<\/li>\n<li>Fixed: Allow text\/plain cards to chain in logic tree and persist defaultNext<\/li>\n<\/ul>\n\n<h4>1.5.9<\/h4>\n\n<ul>\n<li>Added: Replace GitHub PUC update checker with Freemius SDK<\/li>\n<\/ul>\n\n<h4>1.5.8<\/h4>\n\n<ul>\n<li>Fixed: Remove focus outline on wizard question heading and update demo GIF<\/li>\n<\/ul>\n\n<h4>1.5.7<\/h4>\n\n<ul>\n<li>Fixed: Deploy docs to \/srv\/htdocs\/lets-make-decisions instead of \/srv\/htdocs\/lmd-docs<\/li>\n<\/ul>\n\n<h4>1.5.6<\/h4>\n\n<ul>\n<li>Fixed: Replace lftp+sshpass with paramiko for SFTP deploy<\/li>\n<\/ul>\n\n<h4>1.5.5<\/h4>\n\n<ul>\n<li>Fixed: Embed user in SFTP URL and set SSHPASS via step env<\/li>\n<\/ul>\n\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>Fixed: Use sshpass to deliver SFTP password to OpenSSH subprocess<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Added: Auto-update changelog.html on every release<\/li>\n<li>Fixed: Pass SFTP credentials via lftp -u flag instead of .netrc<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Added: Multi-select questions: Question editor now supports an \"Allow multiple selections\" mode \u2014 visitors can pick more than one answer before advancing. All selected answers contribute their weights to scoring.<\/li>\n<li>Added: Zero-score plan filter: Plans with a total weighted score of 0 are now excluded from results. Visitors only see plans that genuinely match their answers.<\/li>\n<li>Added: Docs auto-deploy: The release workflow now syncs the lmd-docs\/ folder to the live documentation server on every release \u2014 no manual uploads required.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Fixed: Gutenberg full-bleed alignment: The #lets-make-decisions container now renders correctly inside Gutenberg's constrained layout. Added alignfull class + JS viewport correction to handle the margin-inline: auto !important override applied by Gutenberg's .is-layout-constrained rule.<\/li>\n<li>Fixed: Mobile card overflow: Changed card minimum width from clamp(600px, ...) to min(clamp(360px, ...), 100%) so the wizard card never overflows narrow viewports (e.g. Pixel 7 at 412px).<\/li>\n<li>Fixed: Logo SVG crop: Trimmed excess whitespace from the viewBox of the Let\u2019s Make Decisions logo SVG so it renders crisply without phantom padding.<\/li>\n<li>Fixed: Logo cache-busting: SVG logo URL now includes ?ver=x.y.z so browsers pick up the corrected logo on update.<\/li>\n<li>Fixed: Mount-point DRY: Extracted lmd_mount_point() helper to eliminate identical HTML string duplication across the shortcode, Gutenberg block, and Elementor widget.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Logic tree canvas: Visual branching editor on a dot-grid canvas. Click answer rows to draw bezier wires to destination questions. Horizontal chain connections for default-next flow. Depth and node limits enforced per tier.<\/li>\n<li>Added: Linear \/ Tree mode toggle: Wizards can run in linear mode (all visitors same path) or tree mode (each answer can branch to a different next question).<\/li>\n<li>Added: Multi-site licensing: Pro licenses now activate on up to 5 WordPress installs; Agency on up to 25.<\/li>\n<li>Added: JSON import (Pro+): Import a previously exported wizard config to restore or duplicate a wizard across sites.<\/li>\n<li>Added: Plan icons (Pro+): Upload a logo or icon image to each plan for a richer results card.<\/li>\n<li>Added: Basic analytics (Pro+): See which plans are recommended most often.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security \u2014 High: Capability escalation fix: can_edit() in the REST API now requires manage_options instead of edit_posts. Previously, any WordPress author or editor could create wizards and overwrite existing wizard configurations via the REST API.<\/li>\n<li>Security \u2014 High: Admin menu gating: The Let\u2019s Make Decisions admin menu now requires manage_options (was edit_posts). Non-admin users no longer see the menu or receive a wp_rest nonce from the admin page.<\/li>\n<li>Security \u2014 High: Wizard config sanitization: All string fields in wizard configs (question text, answer labels, plan names, descriptions, CTA labels, slugs, URLs) are now sanitized through sanitize_text_field(), sanitize_key(), and esc_url_raw() before storage. Closes a latent stored XSS vector.<\/li>\n<li>Security \u2014 Medium: Email header injection fix: CR\/LF characters are now stripped from recipient and sender name fields before being composed into mail headers. Prevents header injection attacks via crafted name values containing newline sequences.<\/li>\n<li>Security \u2014 Medium: SMTP encryption none honored: The SMTP configuration now correctly sets SMTPSecure = '' and disables SMTPAutoTLS when encryption is set to none, instead of silently falling back to TLS.<\/li>\n<li>Security \u2014 Low: Missing tiers.json detection: LMD_Tiers::config() now calls wp_die() with a clear reinstall prompt if tiers.json cannot be read. Previously, a missing file produced an empty config that silently granted unlimited access to all limits.<\/li>\n<li>Added: GitHub release pipeline: .github\/workflows\/release.yml \u2014 pushing a v* tag builds the plugin zip and creates a GitHub Release automatically.<\/li>\n<li>Added: Version bumping workflow: .github\/workflows\/bump-version.yml \u2014 trigger from GitHub Actions UI to bump patch, minor, or major version, commit, and tag in one step.<\/li>\n<li>Added: Auto-update support: Installed copies now detect new GitHub Releases and surface the standard WordPress update prompt in WP Admin.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Added: Wizard Builder: Drag-and-drop question and answer editor with per-answer per-plan weight assignment. Minimum 1 question, 2 plans.<\/li>\n<li>Added: Weighted scoring engine: Sums answer weights per plan, recommends the highest-scoring plan, breaks ties by tier number. Returns top 3 matches with score bars.<\/li>\n<li>Added: Logic tree canvas: Visual branching editor on a dot-grid canvas. Click answer rows to draw bezier wires to destination questions. Horizontal chain connections for default-next flow.<\/li>\n<li>Added: Result modal: Full-screen overlay with recommended plan, insight paragraph, feature checklist, CTA button, and score comparison. Closeable via \u00d7, Escape, or overlay click.<\/li>\n<li>Added: Feature Library tab: Shared feature label library assignable to any plan. Auto-saves immediately.<\/li>\n<li>Added: Settings tab: Custom colors (primary, primary dark, background, card), use-theme-colors toggle, JSON export\/import.<\/li>\n<li>Added: Notifications tab: Admin result notifications, visitor email capture, custom SMTP with AES-256-CBC password encryption.<\/li>\n<li>Added: Tier system: Free, Starter ($79\/yr), Pro ($149\/yr), Agency ($299\/yr) \u2014 enforced via LMD_Tiers class reading from config\/tiers.json.<\/li>\n<li>Added: Shortcode embed: [lets-make-decisions] and [lets-make-decisions id=\"42\"].<\/li>\n<li>Added: Gutenberg block: Native block with wizard selector and live editor preview.<\/li>\n<li>Added: REST API: Full lmd\/v1 namespace with endpoints for wizard CRUD, config, settings, contact settings, features, and result email delivery.<\/li>\n<li>Added: Rate limiting: Public \/send-result endpoint limited to 5 requests\/IP\/hour via WordPress transients.<\/li>\n<\/ul>","raw_excerpt":"A guided recommendation wizard that matches each visitor to the right plan, offer, or service \u2014 built natively in WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/336646","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=336646"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/welflecreative"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=336646"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=336646"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=336646"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=336646"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=336646"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=336646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}