Developer Guide
BuddyWoo is a thin bridge over WooCommerce and BuddyPress. This guide covers its extension points, REST API, template overrides, and stored data.
Pages in this section
Section titled “Pages in this section”Architecture in one screen
Section titled “Architecture in one screen”- All tab configuration lives in one registry,
Buddywoo_Tabs(includes/class-buddywoo-tabs.php). Add or change a tab there; the profile nav, admin-bar menu, settings screen, shortcode, block, and REST config all read from it. - Screen callbacks assemble data and render through theme-overridable templates in
templates/. WooCommerce stays the data engine; BuddyWoo owns the markup. - The profile tabs, the
[buddywoo_account]shortcode, and thebuddywoo/accountblock all share one render path.
Data stored
Section titled “Data stored”BuddyWoo adds no custom tables, post types, taxonomies, or cron.
| Store | Key | Notes |
|---|---|---|
| Option | buddywoo_admin_general_options |
Sub-tab enable toggles |
| Option | buddywoo_label_admin_settings |
Per-tab label, slug, and position overrides |
| Option | buddywoo_activity_admin_settings |
Activity event toggles (removed when Reign Dokan is active) |
| Option | buddywoo_admin_welcome_options |
Legacy, no longer written, removed on uninstall |
| User meta | shop_enabled |
The member’s Disable Shop Menu opt-out; kept on uninstall |
| Comment meta | comment_product_id |
The product a review belongs to |
| Activity meta | buddywoo_activity_markup_productid |
The product id on a BuddyWoo activity item, used to render the preview card |
| Object cache | group buddywoo_options |
Caches option reads; cleared when the three buddywoo_* options change |
Uninstall removes the four buddywoo_* options and keeps the shop_enabled user meta.
A note on legacy option semantics
Section titled “A note on legacy option semantics”The stored tab-enable keys are historically named hide_*, but a value of 'yes' enables the tab. Likewise the activity keys are named disable_*, but 'yes' enables the event. New code should call Buddywoo_Tabs::is_enabled( $id ), which says what it means. The legacy wrapper functions and legacy filters keep the old names and old inverted behavior for back-compat.

