TBC App/Web - WooCommerce Addon

SKU: TBC-APP-WOO-MOD

Native WooCommerce cart for the TBC Community App. Adds a header cart icon with live badge, fast cart REST API, and optional shop/checkout frame in Fluent Community.

$29.00
Buy Now

v1.1.0
Changelog ยท v1.1.0

1.1.0 โ€” 2026-07-09

โœจ New

  • Customize studio picks your cart icon. The plugin now tags its header cart icon as a "WooCommerce Cart" provider sharing the header's cart slot with the built-in Fluent Cart icon, so the new Customize island lets you choose which cart occupies that slot from a "Provided by" dropdown โ€” only one is ever live. Ships the slotGroup + provider fields on the plugin's Top Nav menu-item registration; no REST or runtime change.

๐Ÿ”ง Changed

  • "Delete data on uninstall" moved to the License tab. The uninstall toggle is now rendered on the shared License panel instead of its own Data Management settings section, matching every other TBC plugin. Storage is unchanged โ€” the flag still lives in the standalone tbc_cart_delete_data_on_uninstall option read by uninstall.php โ€” so your existing setting carries over untouched.
  • Settings screen rebuilt on the shared TBC admin design system. The admin page now draws from suite-wide drop-in libs (lib/tbc-admin-tokens.php, lib/tbc-admin-base.php) for consistent cards, tabs, and palette tokens, and adopts the shared sticky save bar (lib/tbc-save-bar.php) with dirty tracking, a Discard button, a "Saved" flash, and a per-tab unsaved-changes dot. Removes ~123 lines of duplicated per-plugin CSS and the old inline save-bar script; the settings look and save identically to the rest of the suite.
  • Shared licenser resynced. Updated lib/class-tbc-licenser.php to the canonical suite version (adds the notice_suppress_pages capability used elsewhere in the suite). No behavior change for this plugin.

1.0.8 โ€” 2026-06-26

๐Ÿ›  Fixed

  • Dark-mode WooCommerce notices. Success and error notices (.woocommerce-message, .woocommerce-error) now theme to dark mode โ€” translucent status-color backgrounds with readable neutral text โ€” instead of rendering as bright light-mode boxes against the dark cart UI.

1.0.7 โ€” 2026-06-17

๐Ÿ“ก OTA & Internal

  • Sync: version sync only โ€” no plugin-side changes. Mobile module bumped 1.0.6 โ†’ 1.0.7 (modules/cart/module.ts): the module no longer declares its own X-TBC-Cart-Count response-header mapping โ€” that header is now parsed by the shared core API client (the same path the built-in Fluent Cart cart uses), so the count still arrives via the standard listener with no manifest entry. No behavior or API change.

1.0.6 โ€” 2026-06-12

๐Ÿ“ก OTA & Internal

  • Sync: version sync only โ€” no plugin-side changes. Mobile module bumped 1.0.5 โ†’ 1.0.6 (modules/cart/module.ts): the module is now a thin WooCommerce adapter over core's shared cart UI/store; no behavior or API change.

1.0.5 โ€” 2026-06-10

โœจ New

  • Add: cart responses include checkout_url from wc_get_checkout_url() โ€” the app navigates to WooCommerce's real (configurable, localized) checkout page instead of assuming the default /checkout/ slug.

๐Ÿ›  Fixed

  • Fix: cart count is correct on multisite sub-sites โ€” the persistent-cart user-meta key is now built with get_current_blog_id() instead of assuming blog id 1.
  • Fix (licensing): the shared licenser now fails open on a license-server outage โ€” only a definitive invalid/expired answer disables features. Ships the updated lib/class-tbc-licenser.php.

๐Ÿ”ง Changed

  • Change: REST errors normalized to the shared {code, message} envelope (tbc_cart_item_not_found, tbc_cart_coupon_invalid, tbc_cart_coupon_not_applied) so the app localizes from the code; a rejected coupon no longer triggers a full cart refresh.

๐Ÿ“ก OTA & Internal

  • Sync: Mobile module version bumped 1.0.4 โ†’ 1.0.5 (modules/cart/module.ts). The module side URL-encodes coupon codes and handles coupon rejection refresh-free.

1.0.4 โ€” 2026-06-02

๐Ÿ›  Fixed

  • Fix (licensing): Plugin now sends its FluentCart product id (item_id) on every license check so the License Server can reject a key bought for a different TBC product (previously any valid TBC key activated any TBC plugin). Ships the updated shared lib/class-tbc-licenser.php. Requires TBC License Server 1.1.3+.

๐Ÿ“ก OTA & Internal

  • Sync: Mobile module version bumped 1.0.3 โ†’ 1.0.4 (modules/cart/module.ts) to mirror the plugin version.

1.0.3 โ€” 2026-05-29

๐Ÿ“ก OTA & Internal

  • Sync: Version bumped 1.0.2 โ†’ 1.0.3 to stay matched with the cart module (modules/cart/module.ts), which was rebuilt on the app's responsive layout primitives in core 1.1.7. No plugin code change.

1.0.2 โ€” 2026-05-27

โœจ New

  • Add: Plugin now shows Settings | License row links on the WP Plugins screen alongside the default Deactivate. The row links are wired by the shared TBC_Licenser::add_plugin_row_links() filter โ€” no per-plugin code added here, the bump only ships the updated lib/class-tbc-licenser.php copy.

๐Ÿ“ก OTA & Internal

  • Sync: Mobile module version bumped 1.0.1 โ†’ 1.0.2 (modules/cart/module.ts) to mirror the plugin version.

1.0.1 โ€” 2026-05-26

โœจ New

  • Add: Cart auto-registers a Top Nav (header) icon via the new tbc_ca_register_plugin_menu_items filter with kind: 'module' (requires the latest TBC Community App companion plugin). The mobile module's headerIcons[] manifest entry continues to provide the live cart count (useCartCount) + bottom-sheet open (useCartPress) via React hooks, matched to this server row by id 'cart'. Buyer can toggle the Cart icon on/off, reorder it within the Top Nav section, and set role-based visibility from WP Admin โ†’ TBC Community App โ†’ Menus โ€” controls that didn't exist before, when the icon was hardcoded by the mobile manifest's pre-Phase-3 fallback path. Label, icon, and colors stay owned by the module (Cart's brand presentation โ€” locked in admin with a "Module-driven" note explaining the boundary). Sync of mobile module version (modules/cart/module.ts 1.0.0 โ†’ 1.0.1) reflects this pairing.

1.0.0 โ€” Initial release

โœจ New

  • Opt-in "Delete data on uninstall" setting under Data Management โ€” settings are preserved by default so deactivating for testing doesn't wipe your configuration
  • WooCommerce integration bridge for TBC Community App + Fluent Community
  • Native cart REST API under tbc-cart/v1:

- GET /cart โ€” full cart contents, totals, applied coupons, WC store settings (coupons/tax/shipping enabled, currency formatting) - PATCH /cart/items/{key} โ€” update item quantity - DELETE /cart/items/{key} โ€” remove item from cart - POST /cart/coupons โ€” apply coupon code - DELETE /cart/coupons/{code} โ€” remove coupon code - GET /count โ€” cart item count (used for badge counts in mobile app)

  • WooCommerce fees support โ€” fees array + fee total in cart response
  • Response header X-TBC-Cart-Count on every authenticated REST response
  • WC session initialization via wc_load_cart() for REST context
  • All mutation endpoints return full updated cart in a single round-trip; WC error notices captured and returned
  • Mini cart dropdown in Fluent Community header with AJAX item removal and line-item meta (event dates, variation attributes, custom line item data) via wc_get_formatted_cart_item_data()
  • GamiPress credits/points display in mini cart
  • WooCommerce page rendering (shop, product, cart, checkout, account) inside the Fluent Community portal frame via direct fluent_community/theme_content hook โ€” works with any theme, no theme-specific filter needed
  • Variation table + dropdown theming (dark mode, custom arrow, focus states, table-cell layout)
  • Product gallery thumbnail filmstrip scroll sync
  • WooCommerce CSS fully themed with Fluent Community tokens and light/dark mode
  • Settings page under the TBC Community App admin menu (WooCommerce fallback): WC integration toggle, template choice, mini cart toggle
  • WooCommerce dependency check with admin notice

TBC Cart is the WooCommerce bridge for the TBC Community App. It exposes a lightweight REST API around the WC cart so the mobile app can show a header cart icon with a live badge count, open a native bottom-sheet cart UI, update quantities, remove items, and apply coupons โ€” all without loading the full WooCommerce frontend on each request.

A /count endpoint reads persistent-cart user meta directly (no WC session boot) so the badge stays in sync cheaply, and an X-TBC-Cart-Count response header piggybacks on every authenticated API call to keep the badge accurate even when the cart changes outside the app.

On the WordPress side, optional toggles let you iframe the WooCommerce shop and checkout into the Fluent Community portal and enable a classic mini-cart slide-out, so members can browse and check out without leaving the community UI. Payments are handled by WooCommerce and whatever gateway you’ve configured (Stripe, PayPal, etc.) โ€” TBC Cart is purely the cart surface.