{"id":296415,"date":"2026-06-07T20:22:49","date_gmt":"2026-06-07T20:22:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/xpressui-bridge\/"},"modified":"2026-06-24T17:39:52","modified_gmt":"2026-06-24T17:39:52","slug":"xpressui-bridge","status":"publish","type":"plugin","link":"https:\/\/so.wordpress.org\/plugins\/xpressui-bridge\/","author":17850494,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.3","stable_tag":"1.1.3","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"IntakeFlow Forms \u2013 Multi-Step Form Builder, File Upload & Client Intake","header_author":"IAKPress","header_description":"Receives and manages submissions from exported XPressUI workflow packages. Embed any XPressUI form on your site with a shortcode and review submissions in wp-admin.","assets_banners_color":"454371","last_updated":"2026-06-24 17:39:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/intakeflow.dev\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":342,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.86":{"tag":"1.0.86","author":"iakpressteam","date":"2026-06-07 20:22:33"},"1.0.91":{"tag":"1.0.91","author":"iakpressteam","date":"2026-06-11 12:00:59"},"1.0.92":{"tag":"1.0.92","author":"iakpressteam","date":"2026-06-11 16:39:50"},"1.0.93":{"tag":"1.0.93","author":"iakpressteam","date":"2026-06-12 16:09:10"},"1.0.95":{"tag":"1.0.95","author":"iakpressteam","date":"2026-06-15 12:18:51"},"1.0.96":{"tag":"1.0.96","author":"iakpressteam","date":"2026-06-15 12:32:01"},"1.0.97":{"tag":"1.0.97","author":"iakpressteam","date":"2026-06-19 19:10:15"},"1.0.98":{"tag":"1.0.98","author":"iakpressteam","date":"2026-06-21 22:50:30"},"1.0.99":{"tag":"1.0.99","author":"iakpressteam","date":"2026-06-21 23:26:19"},"1.1.0":{"tag":"1.1.0","author":"iakpressteam","date":"2026-06-24 09:27:34"},"1.1.1":{"tag":"1.1.1","author":"iakpressteam","date":"2026-06-24 11:02:35"},"1.1.2":{"tag":"1.1.2","author":"iakpressteam","date":"2026-06-24 13:49:36"},"1.1.3":{"tag":"1.1.3","author":"iakpressteam","date":"2026-06-24 17:39:52"}},"upgrade_notice":{"1.0.77":"<p>This release cleans up legacy Pro references in the free package and clarifies the public positioning of the free bridge.<\/p>","1.0.70":"<p>This release removes WordPress.org-incompatible feature gating and keeps the readable runtime source files in release archives.<\/p>","1.0.21":"<p>The shortcode now renders the form inline \u2014 no iframe. If you have custom CSS targeting the <code>.xpressui-embed-wrapper iframe<\/code>, update your styles to target <code>.xpressui-inline-embed<\/code> instead.<\/p>","1.0.0":"<p>Initial release \u2014 no upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3584879,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3584879,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3585196,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3585196,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"xpressui\/workflow-embed":{"name":"xpressui\/workflow-embed","title":"IntakeFlow Form"}},"tagged_versions":["1.0.86","1.0.91","1.0.92","1.0.93","1.0.95","1.0.96","1.0.97","1.0.98","1.0.99","1.1.0","1.1.1","1.1.2","1.1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3584879,"resolution":"1","location":"assets","locale":"","width":2048,"height":1114},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3584879,"resolution":"2","location":"assets","locale":"","width":2048,"height":1114},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3584879,"resolution":"3","location":"assets","locale":"","width":2048,"height":1114},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3584879,"resolution":"4","location":"assets","locale":"","width":2048,"height":1114},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3584879,"resolution":"5","location":"assets","locale":"","width":2048,"height":1200},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3584879,"resolution":"6","location":"assets","locale":"","width":2048,"height":1200},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3584879,"resolution":"7","location":"assets","locale":"","width":2048,"height":1114}},"screenshots":{"1":"The submission list with status badges, project filter, and row actions.","2":"The submission detail view with payload fields, status workflow, and assignment panel.","3":"The Manage Workflows page showing installed packages and project settings.","4":"A workflow embedded in a page using the [xpressui] shortcode \u2014 inline rendering, no iframe.","5":"Product catalog storefront rendered natively in WordPress \u2014 server-side, SEO-friendly, no iframe.","6":"Checkout with the manual payment step: bank-transfer details, a generated payment reference, and proof-of-payment upload.","7":"Service \/ time-slot booking \u2014 the chosen slot is carried into the checkout step."}},"plugin_section":[262246],"plugin_tags":[358,5887,2253,229702,30663],"plugin_category":[42],"plugin_contributors":[183284],"plugin_business_model":[],"class_list":["post-296415","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-contact-form","plugin_tags-file-upload","plugin_tags-form-builder","plugin_tags-intake-form","plugin_tags-multi-step-form","plugin_category-contact-forms","plugin_contributors-iakpressteam","plugin_committers-iakpressteam"],"banners":{"banner":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/banner-772x250.png?rev=3585196","banner_2x":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/banner-1544x500.png?rev=3585196","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/icon-128x128.png?rev=3584879","icon_2x":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/icon-256x256.png?rev=3584879","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/screenshot-1.png?rev=3584879","caption":"The submission list with status badges, project filter, and row actions."},{"src":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/screenshot-2.png?rev=3584879","caption":"The submission detail view with payload fields, status workflow, and assignment panel."},{"src":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/screenshot-3.png?rev=3584879","caption":"The Manage Workflows page showing installed packages and project settings."},{"src":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/screenshot-4.png?rev=3584879","caption":"A workflow embedded in a page using the [xpressui] shortcode \u2014 inline rendering, no iframe."},{"src":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/screenshot-5.png?rev=3584879","caption":"Product catalog storefront rendered natively in WordPress \u2014 server-side, SEO-friendly, no iframe."},{"src":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/screenshot-6.png?rev=3584879","caption":"Checkout with the manual payment step: bank-transfer details, a generated payment reference, and proof-of-payment upload."},{"src":"https:\/\/ps.w.org\/xpressui-bridge\/assets\/screenshot-7.png?rev=3584879","caption":"Service \/ time-slot booking \u2014 the chosen slot is carried into the checkout step."}],"raw_content":"<!--section=description-->\n<p><strong>IntakeFlow<\/strong> is a multi-step form builder for WordPress for contact forms, file uploads, client intake and document-collection workflows \u2014 with a built-in submission inbox so you manage everything inside wp-admin.<\/p>\n\n<p><strong>Already using Contact Form 7 or Gravity Forms?<\/strong> Import and convert any existing CF7 or Gravity Forms form into an IntakeFlow workflow in a few clicks (field types, choices and required rules are preserved), then embed it with a shortcode.<\/p>\n\n<p>Embed any form anywhere using the <code>[xpressui]<\/code> shortcode (or the Gutenberg block \/ Elementor widget). The form renders natively inside your page \u2014 no iframe, no external dependencies at runtime. Submissions are stored as private posts in a dedicated wp-admin inbox, directly in your site's database.<\/p>\n\n<p>If you need advanced field types, direct Console Sync, or cloud workflow management, those are available by connecting the plugin to your IntakeFlow account at intakeflow.dev.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Import from Contact Form 7 &amp; Gravity Forms<\/strong> \u2014 migrate your existing forms in a few clicks; field types, choices and required rules are preserved.<\/li>\n<li><strong>Works with the block editor &amp; page builders<\/strong> \u2014 embed via the <code>[xpressui]<\/code> shortcode, the native Gutenberg block, or the Elementor widget.<\/li>\n<li><strong>One-click installation<\/strong> \u2014 upload the exported <code>.zip<\/code> file from the IntakeFlow console directly inside wp-admin.<\/li>\n<li><strong>Shortcode embed<\/strong> \u2014 <code>[xpressui id=\"your-project-slug\"]<\/code> works in any page, post, or block-editor paragraph block. The form renders inline, inheriting your theme's page layout.<\/li>\n<li><strong>Submission inbox<\/strong> \u2014 all submissions land in a private wp-admin post list with status badges, filtering by project, status, and assignee, and detailed review metaboxes.<\/li>\n<li><strong>Status workflow<\/strong> \u2014 mark submissions <em>New<\/em>, <em>In review<\/em>, or <em>Done<\/em> from the list or the detail view. Every status change is recorded in a per-submission history log.<\/li>\n<li><strong>Team assignment<\/strong> \u2014 assign any WordPress user to a submission. The <em>My Queue<\/em> page shows each reviewer their personal backlog at a glance.<\/li>\n<li><strong>Email notifications<\/strong> \u2014 configure a notification address per project and receive a plain-text summary email the moment a new submission arrives.<\/li>\n<li><strong>Post-submit redirect<\/strong> \u2014 optionally redirect the visitor to a thank-you page after a successful submission. Configured per project from wp-admin.<\/li>\n<li><strong>File uploads<\/strong> \u2014 uploaded files are stored as WordPress media attachments and linked back to their submission.<\/li>\n<li><strong>REST API endpoint<\/strong> \u2014 submissions are received via a standard WordPress REST route (<code>POST \/wp-json\/xpressui\/v1\/submit<\/code>). No extra server configuration required.<\/li>\n<li><strong>Bundled runtime<\/strong> \u2014 the XPressUI standard runtime is bundled inside the plugin. No JavaScript is loaded from the uploads directory or external CDNs.<\/li>\n<li><strong>Product &amp; booking catalogs<\/strong> <em>(with a Console account)<\/em> \u2014 product and service \/ time-slot booking catalogs render server-side in WordPress (SEO-friendly, no iframe) with a built-in checkout step; orders are recorded in your submission inbox.<\/li>\n<\/ul>\n\n<h4>Who is this for?<\/h4>\n\n<p>Businesses and developers who use the IntakeFlow console to build document-intake or multi-step application forms and want to manage the collected data inside their existing WordPress environment without an external SaaS inbox.<\/p>\n\n<h4>The Ultimate Alternative for Team Intake<\/h4>\n\n<p>Unlike generic form builders (like Contact Form 7, WPForms, or Gravity Forms), IntakeFlow is built specifically for <strong>client intake<\/strong> and <strong>document collection<\/strong>. \n* <strong>No paywall on team inbox:<\/strong> Assign submissions to specific WordPress users without upgrading to expensive Enterprise plans (unlike JotForm or Typeform).\n* <strong>No bloated iframes:<\/strong> Forms render natively in clean, fast HTML\/JS, inheriting your active theme's styling.\n* <strong>100% GDPR-compliant:<\/strong> Your submissions and uploaded files are stored entirely in your local database. No data is stored on third-party servers.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin can optionally connect to the IntakeFlow SaaS platform (hosted at intakeflow.dev) to enable real-time cloud synchronization, advanced field types, and centralized workflow management.<\/p>\n\n<p>When connected to IntakeFlow:\n* The plugin makes outbound HTTP requests to <code>https:\/\/app.intakeflow.dev<\/code> (or the custom console URL you configure under Settings) to verify your subscription status, sync project schemas, and download workflow packages.\n* Outbound requests include an API Token (<code>X-Api-Token<\/code>) generated from your IntakeFlow dashboard so the service can identify your account.\n* When you connect an account, the plugin sends the token to validate it and to look up the owner of the account.\n* When you use the Form Importer with an account connected, the structure of the imported Contact Form 7 \/ Gravity Forms form (field names, labels and types \u2014 not visitor submissions) is sent to the console to create the corresponding workflow, which is then downloaded back to this site.\n* No visitor or submission data is transmitted to the IntakeFlow console unless specifically configured by the administrator for cloud backup or webhook routing.\n* When you use a product \/ booking catalog with checkout, the order details (cart or chosen slot, and the payment proof or card payment) are sent to the IntakeFlow Console, which owns payment and order status; a copy of the order is also recorded locally in your wp-admin inbox.<\/p>\n\n<p>A connection is required to sync custom workflows. The bundled starter workflow functions fully offline without a connection.<\/p>\n\n<p>Use of the IntakeFlow service is governed by its terms and privacy policy:\n* Terms of Service: https:\/\/intakeflow.dev\/terms\n* Privacy Policy: https:\/\/intakeflow.dev\/privacy<\/p>\n\n<p>The bundled XPressUI standard runtime (JavaScript) is served directly from the plugin directory \u2014 it is never loaded from a CDN or external URL.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin stores data submitted by your site visitors (form field values, uploaded files, and metadata such as submission timestamps). All data is stored locally in your WordPress database and media library. No data is transmitted to external servers. When a submission is permanently deleted, its linked uploaded files are deleted as well.<\/p>\n\n<p>Users may request access to or deletion of their personal data. This plugin integrates with the WordPress Personal Data tools (<strong>Tools \u203a Erase Personal Data<\/strong> and <strong>Tools \u203a Export Personal Data<\/strong>).<\/p>\n\n<p>For full details on what data is collected and how to manage it, refer to your site's privacy policy.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>The full source code for this plugin is available at:\nhttps:\/\/github.com\/lybaba\/xpressui-wordpress-bridge<\/p>\n\n<h4>Bundled JavaScript runtime<\/h4>\n\n<p>The file <code>runtime\/xpressui-*.umd.js<\/code> is the compiled output of the XPressUI library. The unminified TypeScript source files used to produce this bundle are included in the <code>xpressui-src\/<\/code> directory of this plugin.<\/p>\n\n<p>To rebuild the runtime from those sources:<\/p>\n\n<ol>\n<li>Navigate to the source directory: <code>cd xpressui-src<\/code><\/li>\n<li>Install dependencies: <code>npm install<\/code><\/li>\n<li>Build the runtime: <code>npm run build<\/code><\/li>\n<li>The output file is produced in <code>xpressui-src\/dist\/xpressui-*.umd.js<\/code>.<\/li>\n<\/ol>\n\n<!--section=installation-->\n<ol>\n<li>Download the plugin <code>.zip<\/code> from the WordPress Plugin Directory or from <a href=\"https:\/\/intakeflow.dev\/\">intakeflow.dev<\/a>.<\/li>\n<li>In your WordPress dashboard, go to <strong>Plugins \u203a Add New \u203a Upload Plugin<\/strong>, then select the downloaded <code>.zip<\/code> file and click <strong>Install Now<\/strong>.<\/li>\n<li>Click <strong>Activate Plugin<\/strong>.<\/li>\n<li>In your WordPress dashboard, go to <strong>Submissions \u203a Workflows<\/strong> and enter your API Token in the <strong>Console Sync<\/strong> section (generate it in your Console under Profile \u2192 API Tokens).<\/li>\n<li>Click <strong>Load from Console<\/strong> and then <strong>Sync<\/strong> next to the workflow you want to import.<\/li>\n<li>Insert <code>[xpressui id=\"your-project-slug\"]<\/code> in any page or post to embed the form.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20intakeflow%20free%3F\"><h3>Is IntakeFlow free?<\/h3><\/dt>\n<dd><p>Yes. The WordPress plugin is free and open-source. You can build, import and embed forms and review submissions in your wp-admin inbox at no cost. A free or paid account at intakeflow.dev is optional and only needed for cloud sync and advanced field types (signatures, document scanning, time-slot booking). Free accounts include up to 100 cloud-synced submissions per month.<\/p><\/dd>\n<dt id=\"can%20i%20import%20my%20contact%20form%207%20or%20gravity%20forms%20forms%3F\"><h3>Can I import my Contact Form 7 or Gravity Forms forms?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Submissions \u203a Workflows \u203a Import<\/strong>, pick any Contact Form 7 or Gravity Forms form, and convert it to an IntakeFlow workflow. Field types (text, email, phone, number, date, URL, file, select, checkbox, radio), choices and required rules are preserved, and you get a ready-to-embed shortcode. It works with or without a Console connection.<\/p><\/dd>\n<dt id=\"can%20i%20take%20bookings%20or%20sell%20products%3F\"><h3>Can I take bookings or sell products?<\/h3><\/dt>\n<dd><p>Yes, with an IntakeFlow Console account. Product and service \/ time-slot booking catalogs render natively in your WordPress pages (server-side, SEO-friendly \u2014 no iframe) with a checkout step. Customers can pay by bank transfer \/ mobile money (uploading a payment proof) or by card (processed by the IntakeFlow Console via Stripe), and each order is recorded in your wp-admin submission inbox.<\/p><\/dd>\n<dt id=\"how%20do%20i%20import%20my%20workflows%20from%20the%20console%3F\"><h3>How do I import my workflows from the Console?<\/h3><\/dt>\n<dd><p>Connect your WordPress site to the IntakeFlow Console using your API Token in the <strong>Console Sync<\/strong> section of the Workflows admin page. You can then sync all your custom workflows with a single click.<\/p><\/dd>\n<dt id=\"what%20does%20the%20%5Bxpressui%5D%20shortcode%20accept%3F\"><h3>What does the [xpressui] shortcode accept?<\/h3><\/dt>\n<dd><ul>\n<li><code>id<\/code> (required) \u2014 the project slug, matching the uploaded package folder name.<\/li>\n<\/ul>\n\n<p>Example: <code>[xpressui id=\"loan-application\"]<\/code><\/p><\/dd>\n<dt id=\"where%20are%20submissions%20stored%3F\"><h3>Where are submissions stored?<\/h3><\/dt>\n<dd><p>Submissions are stored as private WordPress posts of the custom post type <code>xpressui_submission<\/code>, directly in your site's database. No data is sent to external servers.<\/p><\/dd>\n<dt id=\"can%20i%20export%20or%20delete%20submissions%3F\"><h3>Can I export or delete submissions?<\/h3><\/dt>\n<dd><p>Submissions can be deleted directly from the wp-admin list (Trash \u2192 Delete permanently). When a submission is permanently deleted, its uploaded files are deleted too. Export and bulk actions are on the roadmap.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20emails%3F\"><h3>Does the plugin send emails?<\/h3><\/dt>\n<dd><p>Only if you configure a notification email address for a project under <strong>Submissions \u203a Workflows \u203a Project Settings<\/strong>. The plugin uses WordPress's built-in <code>wp_mail()<\/code> function, so it respects any SMTP plugin you have installed.<\/p><\/dd>\n<dt id=\"what%20file%20types%20can%20submitters%20upload%3F\"><h3>What file types can submitters upload?<\/h3><\/dt>\n<dd><p>File uploads are handled by <code>media_handle_upload()<\/code>, which respects the WordPress file type allow-list configured under <strong>Settings \u203a Media<\/strong>. By default, this includes common document, image, and archive formats.<\/p><\/dd>\n<dt id=\"is%20the%20rest%20endpoint%20publicly%20accessible%3F\"><h3>Is the REST endpoint publicly accessible?<\/h3><\/dt>\n<dd><p>Yes \u2014 the <code>\/wp-json\/xpressui\/v1\/submit<\/code> endpoint accepts POST requests without authentication. This is intentional: form submissions originate from visitors who are not logged in. Each submission is stored as a private post and is only visible to authorised users inside wp-admin.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20uploaded%20files%20when%20a%20submission%20is%20deleted%3F\"><h3>What happens to uploaded files when a submission is deleted?<\/h3><\/dt>\n<dd><p>Uploaded files are stored as WordPress media attachments. When a submission is permanently deleted, the plugin also permanently deletes the files linked to that submission. Trashing a submission does not immediately remove the files; permanent deletion does.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20reinstall%20or%20delete%20the%20plugin%3F\"><h3>What happens if I reinstall or delete the plugin?<\/h3><\/dt>\n<dd><p>Workflow packs can be re-synced without deleting submissions. If you delete and reinstall the plugin itself, submissions are preserved by default. To permanently remove submission data during uninstall, define the <code>XPRESSUI_BRIDGE_DELETE_SUBMISSIONS_ON_UNINSTALL<\/code> constant and set it to <code>true<\/code> before deleting the plugin.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20call%20any%20external%20api%20at%20runtime%3F\"><h3>Does the plugin call any external API at runtime?<\/h3><\/dt>\n<dd><p>No. Once a workflow package is installed, the plugin operates entirely within your WordPress site. The IntakeFlow console at intakeflow.dev is only used to design and export packages \u2014 it is not contacted during form rendering or submission processing.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fix: Imported forms (e.g. Contact Form 7) no longer disappear from the Workflows list after connecting the site to the IntakeFlow Console.<\/li>\n<li>Improve: The Sync Logs \"Email delivery log\" now records admin notification emails for trial \/ unconnected forms too, so a test submission visibly confirms email is going out, with a sent counter on the Submissions screen.<\/li>\n<li>Improve: Streamlined first-run onboarding guidance for new sites.<\/li>\n<li>Improve: Removed noisy, unreliable status badges from the Workflows list pending a more accurate sync signal.<\/li>\n<li>Fix: Admin scripts now cache-bust on update so changes load reliably.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Improve: Plugin Directory listing \u2014 documented the product &amp; service\/time-slot booking catalogs with native WordPress checkout (new FAQ + feature), refreshed the banner and screenshots, and added screenshots of the catalog storefront, manual payment checkout, and booking.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: The manual payment step at checkout now works end-to-end \u2014 proof-of-payment upload (drag &amp; drop \/ browse), the generated payment reference, and the IBAN\/BIC\/reference copy buttons. The 1.1.0 build bundled an older runtime that broke these; this release ships the corrected runtime.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Manual payment step at checkout \u2014 bank-transfer details with a server-generated payment reference and one-click copy for IBAN \/ BIC \/ reference, plus a proof-of-payment upload (parity with the IntakeFlow Console checkout).<\/li>\n<li>New: Send admin notification and submitter confirmation emails via the IntakeFlow Console (SaaS) for better deliverability (SPF\/DKIM\/DMARC), with a per-workflow \"Send emails via SaaS\" toggle. Submission delivery now shows the mail recipient and a \"SaaS cloud\" status.<\/li>\n<li>New: Embed a hosted link from the Gutenberg block or the Elementor \/ page-builder widget via the project + link selector.<\/li>\n<li>Improve: Catalog orders are now recorded on the WordPress submission (cart items, total, payment method) even when paying by file upload.<\/li>\n<li>Fix: Payment-proof copy \/ info icons now render correctly (SVG viewBox preserved through sanitization).<\/li>\n<li>Fix: Submission JSON metadata (payload, status history, event log, uploaded files) is stored without slash corruption.<\/li>\n<li>Fix: Remove orphaned hosted-link configurations left under a previous project after a link moves between projects.<\/li>\n<li>Fix: Resolve all Plugin Check \/ PHPCS nonce findings with proper fixes (no suppressions).<\/li>\n<\/ul>\n\n<h4>1.0.99<\/h4>\n\n<ul>\n<li>Fix: Resolve a fatal error (\"Path cannot be empty\") that could occur when rendering an [xpressui] shortcode, caused by a missing catalog file path after the 1.0.98 filesystem refactor. Workflows without a fronted catalog now render normally again.<\/li>\n<\/ul>\n\n<h4>1.0.98<\/h4>\n\n<ul>\n<li>Improve: Form Importer now keeps phone, number, date and URL fields from Contact Form 7 and Gravity Forms as their proper input types instead of converting them to plain text.<\/li>\n<li>Improve: Importer admin scripts and styles are now enqueued instead of being printed inline.<\/li>\n<li>Improve: Workflow package files are written through the WordPress Filesystem API.<\/li>\n<li>Improve: External service usage (the IntakeFlow Console) is documented with Terms of Service and Privacy Policy links.<\/li>\n<\/ul>\n\n<h4>1.0.97<\/h4>\n\n<ul>\n<li>New: Headless product &amp; time-slot booking catalogs render server-side in WordPress (SEO + faster load) on hosted-link pages.<\/li>\n<li>New: Booking summary shown inside the checkout form for time-slot\/booking catalogs.<\/li>\n<li>New: \"Sync All Workflows\" with a live progress bar; hosted-links synchronization &amp; webhooks.<\/li>\n<li>New: Embedded console with secure single sign-on plus \"Edit on IntakeFlow\" deep links.<\/li>\n<li>Improve: Many catalog\/checkout layout fixes on WordPress themes \u2014 grid\/card overlap, spacing and alignment, mobile stacking, sticky-header overlap, empty-cart checkout, consistent top spacing.<\/li>\n<li>Improve: Payment-proof (bank transfer \/ RIB) field; option to disable archive file types in validation.<\/li>\n<li>Fix: Resolved all Plugin Check \/ PHPCS findings with proper fixes (no suppressions).<\/li>\n<\/ul>\n\n<h4>1.0.96<\/h4>\n\n<ul>\n<li>Use secure transient database storage for admin notices instead of raw query parameters to pass Plugin Check.<\/li>\n<\/ul>\n\n<h4>1.0.95<\/h4>\n\n<ul>\n<li>Rename plugin to IntakeFlow \u2013 Client Intake, Multi-Step Forms &amp; Secure Document Collection.<\/li>\n<li>Remove manual ZIP upload feature in favor of secure API Console Sync.<\/li>\n<\/ul>\n\n<h4>1.0.94<\/h4>\n\n<ul>\n<li>SaaS migration to unified standalone wordpress plugin with API token connection.<\/li>\n<\/ul>\n\n<h4>1.0.93<\/h4>\n\n<ul>\n<li>Frame style: new appearance option (Card \/ Plain) to drop the form's card frame and inherit the host theme's container, avoiding a double frame on themes that already wrap content in a card.<\/li>\n<li>Use the full plugin name \"Multi-Step Forms &amp; Client Document Intake \u2013 XPressUI Bridge\" consistently with the header, description and wordpress.org listing.<\/li>\n<li>Packaging: exclude .gitattributes from the distributed ZIP (hidden files are not permitted on WordPress.org).<\/li>\n<\/ul>\n\n<h4>1.0.86<\/h4>\n\n<ul>\n<li>Keep the plugin name \"XPressUI Bridge\" consistent across the plugin header, description and admin UI (menu, labels) to match the wordpress.org listing and slug.<\/li>\n<\/ul>\n\n<h4>1.0.85<\/h4>\n\n<ul>\n<li>Rename the product from XPressUI to IntakeFlow in metadata and the admin UI; regenerate the translation template (POT).<\/li>\n<li>Restore print-only \/ download-only workflow settings support.<\/li>\n<li>Fix the mobile capture dialog (close on session failure, scope the dialog lookup to the form).<\/li>\n<li>Harden workflow ZIP validation and escape shortcode output with wp_kses.<\/li>\n<\/ul>\n\n<h4>1.0.83<\/h4>\n\n<ul>\n<li>Remove SVG from the workflow ZIP allowed-extensions list; SVG files can embed JavaScript and are therefore code-like assets not permitted in user-uploaded packages.<\/li>\n<li>Remove bundled shortcode-example.php from the document-intake starter workflow to prevent executable code files from being written to the uploads directory on first install.<\/li>\n<li>Rebuild the bundled light runtime from the included xpressui-src sources during packaging.<\/li>\n<li>Include readable runtime sources in the WordPress.org package while excluding generated dist files and dependency folders.<\/li>\n<\/ul>\n\n<h4>1.0.81<\/h4>\n\n<ul>\n<li>Fix xpressui-src\/package.json build scripts: remove prebuild\/build:css steps that required dev-only files; npm run build now correctly builds the light runtime only.<\/li>\n<\/ul>\n\n<h4>1.0.80<\/h4>\n\n<ul>\n<li>Update plugin site URL to https:\/\/intakeflow.dev\/.<\/li>\n<\/ul>\n\n<h4>1.0.79<\/h4>\n\n<ul>\n<li>Sanitize uploaded file MIME types with sanitize_mime_type() in addition to sanitize_file_name() for file names.<\/li>\n<li>Fix field label resolution for camelCase field names (e.g. primaryDocument) in notification emails and admin preview.<\/li>\n<li>Store signature field values as WordPress media attachments; render URL-based signatures in emails and admin preview.<\/li>\n<li>Improve admin submission file display: image thumbnails (100\u00d775 px grid) and document list with icons and links.<\/li>\n<li>Compiled PHP templates: eliminate non-WordPress (standalone) branches at compile time; wrap inline CSS with phpcs annotations.<\/li>\n<li>Bundled XPressUI light runtime updated to 1.0.14.<\/li>\n<\/ul>\n\n<h4>1.0.77<\/h4>\n\n<ul>\n<li>Cleaned legacy Pro-related strings from the free package.<\/li>\n<li>Clarified public messaging around the free bridge and the separate Pro add-on.<\/li>\n<li>Internal cleanup to keep the WordPress.org build focused on the free operational bridge.<\/li>\n<\/ul>\n\n<h4>1.0.70<\/h4>\n\n<ul>\n<li>Custom workflow ZIP upload is available in the free plugin.<\/li>\n<li>Removed license and Pro-only gating from the WordPress.org build.<\/li>\n<li>Packaging now keeps the readable <code>xpressui-src\/<\/code> sources while excluding dependency folders from release archives.<\/li>\n<\/ul>\n\n<h4>1.0.21<\/h4>\n\n<ul>\n<li>Native inline rendering: the [xpressui] shortcode now renders the form directly inside the WordPress page without an iframe.<\/li>\n<li>Bundled XPressUI light runtime served from plugin assets \u2014 no JavaScript loaded from uploads or external URLs.<\/li>\n<li>Form CSS scoped to the embed container to avoid conflicts with the active WordPress theme.<\/li>\n<li>Runtime and init script enqueued via wp_enqueue_script for correct dependency ordering and deduplication.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Custom post type for submissions with status workflow (New, In review, Done).<\/li>\n<li>Status history log per submission.<\/li>\n<li>Team assignment and My Queue page.<\/li>\n<li>Project Inbox overview page.<\/li>\n<li>[xpressui] shortcode embed with bundled runtime.<\/li>\n<li>REST endpoint for receiving submissions and file uploads.<\/li>\n<li>Per-project email notifications via wp_mail().<\/li>\n<li>Per-project post-submit redirect URL.<\/li>\n<li>Manage Workflows page with ZIP upload and project settings.<\/li>\n<\/ul>","raw_excerpt":"Multi-step form builder for WordPress: contact forms, file upload, client intake &amp; document collection, with a built-in submission inbox.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/296415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=296415"}],"author":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/iakpressteam"}],"wp:attachment":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=296415"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=296415"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=296415"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=296415"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=296415"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=296415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}