B2BPress is a WooCommerce-based WordPress plugin designed for B2B eCommerce. It streamlines WooCommerce for wholesale scenarios and ships with a powerful Product Table Generator to build and manage large B2B product catalogs.
- Toggle off non-B2B features: cart, checkout, coupons, inventory, prices, marketing, email templates, and frontend CSS/JS
- Setup Wizard guides admins to switch into B2B mode and auto-detect conflicts with third-party plugins
- Declares compatibility with HPOS (High-Performance Order Storage) and prompts upgrade if legacy order tables are detected
- Guided UI steps:
- Choose product categories
- Load all attributes in the category (including global attributes and custom taxonomies, e.g., brand)
- Multi-select and drag to sort columns
- Choose a table style
- Columns: product name (link to single product), thumbnail, SKU, custom attributes, hierarchical categories, stock status, and more
- Features: pagination, column sorting, frontend search, optional CSV export
- Preset styles: minimal, striped, card
- Fully translatable strings; RTL-friendly headers
- Shortcode:
[b2bpress_table id="123" style="striped" category="widgets" per_page="50"]
- Elementor Widget: live preview in editor; create/select tables directly
- Listens to product change hooks; invalidates cache precisely when needed
- Cache layers: WordPress Object Cache (keys include category + attribute hash); Transients as fallback; automatically uses Redis/Memcached if enabled
- Admin tools: "Refresh Tables Now" button; WP-Cron scheduled rebuilds
- Only users with
manage_woocommerceor custom capabilitymanage_b2bpresscan edit tables - Optional "logged-in only" visibility and role-based column hiding
- Action hooks:
b2bpress_table_before_render,b2bpress_table_after_render - Filters:
b2bpress_column_value_$attribute_slug,b2bpress_table_styles - REST API:
/wp-json/b2bpress/v1/tables(CRUD) for headless frontends and mobile apps
- WordPress 6.5+
- WooCommerce 8.7+
- PHP 8.0+
- Download the plugin ZIP
- In WordPress Admin, go to Plugins > Add New
- Click "Upload Plugin" and select the ZIP
- Install and activate
- Go to "B2BPress" > "Setup Wizard" and complete initial configuration
- Go to "B2BPress" > "Tables"
- Click "Add Table"
- Enter a title and choose categories
- Select columns and drag to reorder
- Choose a style
- Click "Create Table"
Use the shortcode:
[b2bpress_table id="123"]
Optional parameters:
id: table ID (required)style: table style (default,striped,card)per_page: products per page
- In the editor, add the "B2B Product Table" widget
- Select the table in the widget settings
- Adjust style and options as needed
If you have questions or need help, please contact our support team.
GPL v2 or later
- I18n: Remove runtime mapping; rely on .po/.mo only. Backend follows user locale; frontend follows site locale
- Settings: Prevent first-save auto-check; preserve old values when keys are absent
- UX: Elementor widget registration compatible with new API
- Performance: Paginated category attribute scan; restrict cache cleanup to admin/cron/CLI
- Compliance: Readme/license headers, safer admin strings
- I18n: Ensure backend pages have English fallbacks; default to .po/.mo; runtime fallback is opt-in via filter (now removed in 1.2.0)
- Settings: Prevent first-save auto-check of all boolean options; preserve old values when keys are absent
- UX: Frontend uses user-preferred language consistently; Elementor registration compatible with new API
- Performance: Category attribute scan paginated; cache cleanup limited to admin/cron/CLI contexts
- Compliance: Added readme.txt, license headers; safer admin strings
- Feature: New table style set (Inherit, ShadCN/UI, Clean, Bordered, Compact) with consistent CSS selectors
- Fix: Global default style now applies reliably to frontend (priority + cache invalidation)
- Feature: Attribute column prefix/suffix with whitespace preserved and safe escaping
- Feature: Language handling prioritizes user preference on frontend; added runtime English fallback; added
languages/b2bpress-en_US.po - UX: Elementor widget options updated to the new styles; removed duplicate style control to avoid conflicts
- Fix: Removed duplicate global activation/deactivation hooks to avoid running activation logic twice
- Security: Escaped table cell output and allowlisted HTML to reduce XSS risk
- Performance/Stability: Replaced full object cache flush with precise prefix/group-based invalidation
- UX: Added accessibility attributes to table headers and pagination; safer pre-rendered output
- Initial release
- WooCommerce Lite Mode (toggle cart/checkout/coupons/stock/prices/marketing/emails/frontend CSS/JS)
- Product Table Generator (wizard UI, multi-column/sorting, pagination, search, optional CSV export)
- Elementor widget (live preview, create/select tables)
- Caching and sync (object cache + transients, WP-Cron scheduled rebuilds, admin one-click refresh)
- Permissions and visibility (capability-gated editing, logged-in visibility, role-based column hiding)
- Developer hooks and filters
- REST API
/wp-json/b2bpress/v1/tables(CRUD) - HPOS compatibility declaration
