Project context
A Technical Case Study — CodingBeings
Role: Full-Stack WordPress/WooCommerce Developer | Engagement: Long-term, ongoing | Stack: WordPress, WooCommerce, PHP, MySQL, ACF Pro, AJAX/jQuery
Client identity anonymized throughout — referred to as "the client," a national Australian charity fundraising campaign.
Suggested skill tags: WordPress, WooCommerce, PHP, MySQL, Advanced Custom Fields (ACF), AJAX, jQuery, Bootstrap, Gravity Forms, E-Commerce Development, Nonprofit/Donation Systems
Problem
The client runs a nationwide, recurring fundraising campaign that sells branded merchandise (bandannas, face masks, pens, tote bags) and accepts direct donations for a children's charity, all through one WooCommerce storefront. Stock WooCommerce covers basic selling, but the campaign's real requirements went well past that: an always-visible, fast cart experience that behaves identically on mobile and desktop, Australia-specific checkout rules, a flexible donation flow that could sit alongside physical products in the same cart with campaign-configurable causes and goals, and marketing/informational pages the client's own team could update themselves each campaign cycle without a developer.
Existing Environment
The site had already been through one earlier WordPress build (a Roots/Sage-based theme) before this current platform. I built the active theme on top of an internal Bootstrap 4 starter theme, then extended it heavily over time as the campaign's requirements grew — donation handling, a mobile-specific experience, and a CMS page-builder pattern were all layered in as the platform matured, with the earlier theme kept in the repository only for historical reference.
Architecture
A custom AJAX mini-cart system replacing WooCommerce's native cart page entirely — a single AJAX endpoint handles quantity updates, add-to-cart, and item removal, with its own stock validation and a full JSON cart/price/image payload, powering a side-cart, sticky-cart, and bottom-cart across the site.
One shared cart across two independent front-ends — desktop and mobile both read and write directly against WooCommerce's own cart/session object rather than maintaining separate per-device storage.
Custom Express/Standard shipping logic layered on top of WooCommerce's shipping methods, persisted in custom session state kept in sync across cart update, an AJAX shipping-change endpoint, and the checkout review step.
Australia-specific checkout hardening — server-side phone-number format validation, numeric-only input enforcement, a sensible default billing state, and a third-party AU address-autocomplete integration.
A donation flow integrated with a WooCommerce donation add-on: preset or custom amounts, multiple selectable causes, a configurable fundraising goal/progress display, an optional fee-cover opt-in, and recurring donations.
An ACF-powered flexible-content page-builder pattern across the static marketing pages, replacing hardcoded HTML with CMS-editable content blocks.
Implementation
I built this as a heavily forked and extended version of an internal Bootstrap 4 starter theme, growing it into a fully bespoke WooCommerce theme purpose-built for this campaign. Custom PHP functions register and coordinate every AJAX endpoint (cart, shipping, search, sort/filter); ACF powers both the flexible-content pages and a global theme-options page that the email templates and campaign banners read from; and a lightweight user-agent check routes mobile visitors into their own partial/asset library instead of a second WordPress install or theme.
Challenge
Keeping a fully custom, hand-rolled cart in sync across two independent front-ends without creating a second source of truth. Rather than building separate cart storage for the mobile and desktop experiences, I had both UIs read and write directly against WooCommerce's own cart/session object — the reason logging in on one device and switching to another shows the identical cart with no extra synchronization code to maintain.
Layering campaign-specific business rules on top of WooCommerce without forking its core shipping logic. The Express/Standard shipping selection needed to be reflected consistently across the cart, an AJAX shipping-change action, and the checkout review step. I synced a dedicated session state at each of those points and cleared it automatically on order completion, so the UI and the final order always agreed on which shipping method was actually selected.
Result
This is a mature, actively used production platform supporting a real, recurring nationwide fundraising campaign — real merchandise sales and real donations flow through it every campaign cycle. The shared cart/session approach has kept mobile and desktop behavior consistent without a parallel storage layer to maintain, and the ACF flexible-content pattern means the client's own team can update FAQ, policy, and informational content each cycle without needing a developer. The platform continues to be extended and refined as campaign requirements evolve.
Technologies
WordPress, WooCommerce, PHP, MySQL, Advanced Custom Fields Pro, AJAX/jQuery, Bootstrap 4, Gravity Forms, WooCommerce Donation add-on, WooCommerce Subscriptions (recurring donations), third-party AU address-validation integration, WP Mail SMTP.
Shared cart, checkout and donation flow
Desktop and mobile use one shared cart rather than separate per-device storage.
View original diagram at full resolution
Scroll within the figure to inspect its original labels and connections.

Figure — Desktop, mobile, and donation inputs converge on one WooCommerce cart/session, then flow through AU-specific checkout to order completion and branded email.
