Skip to content

Developer Guide

BuddyWoo is a thin bridge over WooCommerce and BuddyPress. This guide covers its extension points, REST API, template overrides, and stored data.

  • 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 the buddywoo/account block all share one render path.

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.

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.