Inventory of all custom PHP across the Baseworks website ecosystem. Source files are in the changelog repo under sites/. This note covers what exists and why — for implementation details see the changelog files directly.
Code snippet plugin note: baseworks.com uses no code snippet plugin — snippets run as mu-plugins. practice.baseworks.com uses codesnippets.pro for snippets.
| File | Purpose |
|---|
baseworks-site-post-types.php | Registers article custom post type |
baseworks-site-events.php | Registers event custom post type |
baseworks-site-instructors.php | Registers instructor custom post type |
These predate Elementor and were built by the original developers. They register the post types the site still relies on.
| File | Purpose |
|---|
2025-01-04-open-day-checkout.php | Strips all billing fields except Name + Email for Open Day products; also adds product category body classes on checkout |
baseworks-block-unpaid-thankyou.php | Blocks CartFlows thank-you page from showing for unpaid/abandoned orders (Affirm, Afterpay); cancels the order and redirects back to checkout |
baseworks-limit-variations.php | Limits variable products to one variation per cart — adding a new variation replaces the existing one |
baseworks-practice-sessions.php | Sliding-scale pricing widget for Practice Sessions (product #47188), gated to WP Fusion tag 97. Shortcode: [practice_session_booking] |
baseworks-session-booking.php | Credit-based booking dashboard for programs. Shortcode: [bw_booking_dashboard program="ps_spring_2026"] |
| File | Purpose |
|---|
bw-four-layer-cache-purge.php | Admin bar button that clears all cache layers at once: Nginx FastCGI, Redis, Perfmatters, Cloudflare |
cloudflare-auto-purge.php | Auto-purges Cloudflare when nginx-helper clears local cache; also purges listing pages when posts are saved |
elementor-css-cache-handler.php | Auto-purges all cache layers and regenerates CSS when Elementor flushes its stylesheet |
auto-purge-elementor-single-templates.php | Purges cache when Elementor templates targeting a single specific post are saved |
fix-nginx-helper-cache-key.php | Fixes cache key mismatch between xCloud nginx config and nginx-helper; hooks into Cloudflare purge |
disable-rucss-events.php | Disables Perfmatters RUCSS (Remove Unused CSS) on event pages — RUCSS was stripping Formidable Forms styles |
| File | Purpose |
|---|
2026-03-05-fb-capi-timeout-fix.php | Reduces Facebook Conversions API timeout from 60s → 5s to prevent blocking page loads when Facebook returns 503 |
wpf-delete-user-on-tag.php | Deletes WordPress user account when the FluentCRM tag remove-user is applied via webhook |
xcloud-auto-login.php | Vendor — xCloud magic login URLs (not custom code, installed by xCloud) |
| File | Shortcode / Hook | Purpose |
|---|
2026-01-07-cartflows-order-summary-open-by-default.php | CSS/JS | Shows CartFlows order summary expanded by default on mobile instead of collapsed |
2026-01-18-fix-automator-formidable-helper.php | Filter | Fixes Uncanny Automator 7.0.0 regression — Formidable Helpers class autoloaded before plugin init |
2026-03-05-practice-sessions-quiz-v2.php | [bw_practice_quiz] | Multi-step scored eligibility screener for Practice Sessions Montreal 2026 (English) |
2026-03-05-practice-sessions-quiz-v2-fr.php | [bw_practice_quiz_fr] | Same quiz, French version |
2026-03-09-redirect-practice-sessions-event.php | Filter | Redirects Practice Sessions Spring 2026 event permalink to the booking page — keeps the event post live for widgets/archives without exposing it directly |
Archived (kept for reference, not active):
2026-02-27-practice-sessions-quiz-v1-archived.php — v1 of the eligibility quiz, superseded by v2
| File | Purpose |
|---|
template-programs-hub.php | Custom page template for the Programs Hub — registers as a selectable template in Elementor |
| File | Purpose |
|---|
2025-01-20-auto-subscribe-organizers-to-topics.php | Auto-subscribes group organizers (admins) to new forum topics created in their groups |
2025-01-23-wpf-buddyboss-all-members-fix.php | Temp patch — WP Fusion BuddyBoss Access Control doesn’t handle the 'all' value for “All Members” messaging permissions. Fixed in WP Fusion’s class-buddyboss-access-control.php. Remove when WP Fusion ships a fix. |
bw-suppress-wprus-on-view-as.php | Prevents WPRUS from propagating BuddyBoss “View As” session switches to baseworks.com. See Cross-Site User Sync for details. |
primer-assignments-widget.php | Displays group assignment progress visualization with session markers |
| File | Purpose |
|---|
wpf-delete-user-on-tag.php | Same as baseworks.com — deletes WP user when remove-user tag applied (installed on both sites) |
| File | Purpose |
|---|
xcloud-auto-login.php | xCloud magic login URLs |
buddyboss-performance-api.php | BuddyBoss Platform performance plugin (installed by BuddyBoss) |
_cdn-cache-management.php | CDN cache management (installed by xCloud) |
_patchstack.php | Patchstack security firewall |
| Snippet ID | File | Shortcode / Hook | Purpose |
|---|
| 27 | 2025-12-27-presto-custom-token-hub-id.php | Automator token | Adds PRESTOVIDEO_HUB_ID and PRESTOVIDEO_POST_SLUG tokens to Uncanny Automator’s Presto Player trigger — required for Recipe 22021 to read ACF fields on Media Hub posts |
| 39 | 2026-01-19-restrict-buddyboss-members-directory.php | Filter | Restricts the BuddyBoss Members Directory to admins only |
| 40 | 2026-01-20-permission-filtered-topic-index.php | [bbp-topic-index-filtered] | Permission-filtered forum topic index — only shows forums the current user can access, removes “Private: ” prefix from private forum titles |
| 41 | 2026-01-20-hide-dark-mode-elementor-pages.php | CSS/Filter | Hides the dark mode toggle on Elementor template pages |
| 37 | 30-custom-lesson-tab.php (Fluent backup) | Filter (learndash_content_tabs) | Adds Discussion and Transcript tabs to LearnDash lesson pages. Each tab is conditional — it only appears when the corresponding ACF field (discussion_tab_content / transcript_tab_content) on the lesson post is non-empty |
| 38 | 31-add-complete-lesson-class.php (Fluent backup) | Filter (body_class) | Adds the CSS class ld-lesson-complete to the <body> tag on LearnDash lesson pages when the current user has completed that lesson — allows CSS/JS targeting of completed lesson state |
| 45 | 2026-03-20-sync-buddyboss-timezone-to-acf.php | Action | Syncs the BuddyBoss “Timezone” profile field to the ACF timezone user meta field when a user saves their profile — the ACF field is what the BW Activity Plugin reads for date display |
| 46 | 2026-03-20-buddyboss-message-time-user-timezone.php | Filter | Overrides BuddyBoss message thread timestamps to display in the viewer’s timezone rather than server time |
| 47 | 47-bw-lesson-topic-form.php | [bw_topic_form] | Wrapper around [bbp-topic-form] that auto-tags new discussions with the current lesson title. Usage: [bw_topic_form forum_id=XXXXX title_tag=1]. Appends the lesson title as a bbPress tag on topic save; compatible with manually added tags. |
| Snippet ID | File | Was |
|---|
| 30 | 2025-05-27-add-frm-date-shortcode.php | [frm-date] shortcode for Formidable views |
| 31 | 2025-05-27-add-custom-dailymax-type-frm-stats-shortcode.php | Custom aggregate type for [frm-stats] |
| 32 | 2025-06-03-add-formidable-activity-bars-form-69.php | Activity bar visualizations from Form 69 |
| 33 | 2025-06-02-add-formidable-activity-streak.php | Streak calculation from Form 69 |
| 34 | 2025-06-03-add-formidable-activity-dots-shortcode.php | Dot-grid visualization from Form 69 |
| File | Purpose |
|---|
functions.php | Child theme functions — enqueues child styles, custom hooks |
header.php | Custom header template |
bbpress/feedback-no-replies.php | Custom “no replies yet” message for bbPress threads |
learndash/ld30/lesson.php | Custom LearnDash lesson template |
woocommerce/myaccount/dashboard.php | Custom WooCommerce My Account dashboard |
A full WordPress plugin (not a mu-plugin) developed specifically for Baseworks. Lives in wp-content/plugins/bw-activity/. Maintains the wp_bw_activity custom database table — the central activity log replacing Formidable Form 69. Provides all dashboard shortcodes ([bw_activity_bars], [bw_activity_calendar], [bw_activity_list], etc.) and the Uncanny Automator integration for recording video completions.
See BW Activity Plugin — Design & Implementation Plan for full details.