What’s New

  • ZenAppBuilder Pro

1.5.1
Fixed: accordions in course/lesson/quiz HTML content rendering permanently expanded with no way to collapse or expand them — they now toggle real open/closed state and honor the `open` attribute for their initial state.
Fixed: a wrapping a checkbox/radio input (e.g. `Remembered`) in HTML content silently disappearing instead of rendering — it’s now promoted out of inline text flow into a real, tappable control.
Fixed: checkbox and radio inputs in HTML content being permanently unselectable — tapping one now fills it in, and radios sharing the same `name` correctly deselect their siblings, using local-only selection state with no submission backend.
Fixed: the selected-radio indicator to render as a solid filled ring (“target” glyph) in the app’s own accent color, matching native radio button conventions, instead of a generic same-color dot-in-circle icon.
Added: support in HTML content: renders as a real, tappable dropdown (built from core React Native components, no new dependency) instead of static text, with optgroup labels and disabled options respected.
Added: purpose-built read-only previews for `range` (filled track + thumb), `color` (swatch + hex value), and `file` (upload-style box) inputs in HTML content, replacing the generic text-box fallback that looked misleading for these types.
Added: ‘svg’ fallback rendering in HTML content — shows the element’s `title` or `aria-label` as a small placeholder instead of silently vanishing along with any accidentally-leaked internal markup text.
Added: “ support in HTML content, rendering its children as-is per the HTML spec’s own fallback-content convention (canvas can’t be drawn to natively here, but any author-provided fallback markup now shows).
Added: approximate support for `float` (positions the element to the correct side; no text-reflow, a hard React Native/Yoga limitation), CSS Grid (`display:grid` approximated as a wrapping row), and `background-image: url(…)` (rendered via a native image background) in HTML content.
Added: /`type=”a”`/`type=”I”`/`type=”i”` alpha/roman numbering and ` countdown numbering support in HTML content, for “match the letter” and ordered-step quiz content.
Aug 30, 2026
1.5.0
Added: full WooCommerce store support to generated apps: a product catalog with category browsing, filters, and recent-search history; a product detail screen with image gallery, variation pickers, stock status, and add-to-cart; a cart with quantity steppers, coupon apply/remove, and live totals; checkout with Cash on Delivery, Bank Transfer, and native Stripe (PaymentSheet) card payment; order history and order detail screens; and a local-device wishlist.
Added: a refreshed mobile commerce design for all WooCommerce blocks and screens — banner carousel, discount badges, star ratings, a sticky “Buy Now” bar, and a denser 2-up product grid — built on a new shared UI component set (`Badge`, `Button`, `Chip`, `Stepper`, `PriceRow`, `ProductCard`, `Rating`, `StickyBar`, `BottomSheet`, `Field`, `Skeleton`, `EmptyState`/`ErrorState`, `Surface`, `SectionHeader`, `IconButton`) plus haptic feedback on key interactions.
Added: per-navbar icon options — the notifications bell, hamburger menu, search, and cart icons can each be toggled on/off per navbar variant; enabling the notifications icon also enables push notifications automatically.
Added: an “Answered: X/Total” progress indicator during quiz attempts, counting only questions the student has actually answered (skipped questions don’t count).
Added: WooCommerce account and privacy flows so checkout, registration, downloads, and privacy-policy links in the generated app follow the store’s own account/privacy settings (e.g. guest checkout allowed/disallowed).
Added: capability-gated commerce navigation: Cart, Checkout, and Order Detail destinations are available to the app’s navigation/menu builder only when WooCommerce is active on the site.
Fixed: quiz answer options repeatedly re-randomizing throughout an active attempt instead of staying fixed after the initial shuffle — a stale-closure guard let duplicate in-flight requests for the same question resolve out of order, each returning a freshly (server-)randomized order that overwrote the previous one.
Fixed: missing `htmlFor` associations between labels and inputs in the Bottom Bar builder, which broke label-click and screen-reader association.
Fixed: the backup directory being created on a different filesystem than the plugin, which could break operations that assume the backup and source share a filesystem.
Fixed: large API responses and inconsistent error handling in the app builder’s data-fetching layer by moving all requests from `fetch` to the shared axios client.
Aug 19, 2026
1.4.0
Added: a real HTML rendering engine for React Native (parses HTML into a proper DOM, sanitizes it against script/event-handler injection, and supports inline + embedded CSS) — replacing the previous regex-based renderer for course/lesson descriptions, lesson and assignment content, quiz questions and answer explanations, syllabus chapter content, and ticket/live-chat/private messages.
Added: lesson attachment display on the Lesson screen, with a tappable row linking to the attached file.
Fixed: extra trailing spacing left after the last paragraph/heading/list/etc. in rendered HTML content.
Fixed: quiz answer explanations appearing while an attempt was still in progress instead of only after it was submitted.
Fixed: the course wishlist toggle not reflecting the persisted (server-side) state — it now syncs from the entity’s saved meta on load instead of trusting the optimistic client value.
Jul 27, 2026
1.3.0
Added: – Event-triggered push notifications for ZenCommunity Pro (`ZenCommunityPush`): private messages, live chat agent messages, and ticket created / reply / status-change events deliver a push to the affected mobile user via the existing FCM pipeline. Loaded only when ZenCommunity Pro is active.
Added: – Notification-tap deep linking in the generated app: tapping a push opens the relevant screen (private chat, agent live chat, or ticket detail) from the foreground, background, or a cold start.
Added: – Google Fonts settings (`Settings_Google_Fonts`): store a Google Fonts API key under Settings → Google Fonts for use in app typography.
Added: – Stable release identity: package name (applicationId / bundleIdentifier) is frozen on first build and stored permanently, preventing accidental package-name drift when an app is renamed after publishing.
Added: – Automatic Android version code and iOS build number tracking, incremented on each saved version snapshot in Build → Build History, with an override field in the Save Version modal for apps already published at a higher build number.
Added: -Signing Keystore Custody: the Android release keystore is held server-side, encrypted at rest with the site’s WordPress security keys, with “Generate New Keystore” and “Upload Existing Keystore” paths plus a Download Keystore Backup action.
Fixed: -Docker build failure for apps without push notifications — `@react-native-firebase/messaging` is no longer statically imported or bundled unless notifications are enabled, resolving the Metro “Unable to resolve module” error and the demand for `google-services.json` on apps that do not use push.
Fixed: – Firebase token expiry causing silent `500` error on Docker bundle download — expired refresh token is now auto-cleared and the UI shows a “Reconnect Firebase” link instead of a raw error message.
Fixed: – Docker bundle error response being unreadable in the frontend — Axios `responseType: ‘blob’` was swallowing the JSON error body; it is now parsed back before surfacing the message.
Fixed: – Firebase auto-disconnect wiping project ID and service account key on token expiry, which caused re-provisioning on reconnect and invalidated all registered FCM device tokens. Only OAuth tokens are now cleared on `invalid_grant`.
Fixed: – Firebase Connection Guide in the Build tab still referencing the removed “Connect to Firebase” modal dialog — steps 4, 5, and 7 now point to Settings → Firebase.
Fixed: – Android version code and iOS build number always being written as `1` in the generated `app.json`, causing every upload after the first to be rejected by Play Console / App Store Connect.
Fixed: – package name being re-derived from the app’s display name on every build in two independent places (browser and server) that could silently drift apart; both now read the stored frozen value.
Improvements: – Signing keystore is kept out of Docker image layers — it lives only in the runtime-mounted `output/` folder, so built images carry no signing secrets. Keystore passwords and aliases are Groovy-escaped before being written into `release-signing.gradle` to prevent build-script breakage or injection.
Improvements: – Docker build guide updated: simplified run command removes the `credentials/` volume mount — output and keystore now live in a single `output/` folder.
Jun 24, 2026
1.2.0
Added: – ZenCommunity notes in live chat inbox.
Added: – Chat delete in live chat inbox.
Added: – Firebase credentials delete system.
Added: – Ticket ID in each ticket.
Added: – A reply system based on a message.
Added: – All Notes UI in the ticket details screen.
Added: – Private messaging block under the ZenCommunity to support private messaging between wordpress users.
Added: – Forgot Password system in login screen.
Added: – Text block as core block.
Added: – Image as core block.
Fixed: – Push Notification failure on docker build mode due to missing `device-token`.
Fixed: – The ticket next line issue.
Fixed: – The Ticket description, which was missing.
Improvements: – Replaced `Simple JWT Login` plugin dependency with WordPress native Application Password authentication system.
Improvements: – Updated OAuth callback handling to avoid nginx blocks and improve redirect URI.
Improvements: – Moved firebase connection from App Build to main plugin settings.
Improvements: – Moved License management from App Build to main plugin settings.
Jun 24, 2026
1.1.0
Added: – License management UI and supporting helpers, including dependency autoload handling and related assets.
Added: – Push notification API plumbing and installer-backed database tables for device tokens and push logs.
Added: – Docker build mode: Generate production-ready Android APKs directly from the builder.
Added: – Firebase integration for push notifications: OAuth-based connection flow, project/app setup, and service account key management.
Added: – Header color customization in the Design > Theme settings.
Added: – Navigation blockers to prevent losing unsaved changes.
Jun 10, 2026
1.0.0
Initial release of the project.
May 26, 2026