{"id":319849,"date":"2026-06-10T13:23:49","date_gmt":"2026-06-10T13:23:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/codeatoz-b2b-suite-for-woocommerce\/"},"modified":"2026-06-10T14:09:53","modified_gmt":"2026-06-10T14:09:53","slug":"codeatoz-b2b-suite-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/codeatoz-b2b-suite-for-woocommerce\/","author":23453096,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.0","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"CodeAtoZ B2B Suite for WooCommerce","header_author":"CodeAtoZ","header_description":"Wholesale pricing, RFQ \/ quote management, B2B registration approvals, analytics, and automation for WooCommerce. Free core \u2014 upgrade to Pro for CRM, ERP, AI, Net Terms, Price Books, and more.","assets_banners_color":"739dad","last_updated":"2026-06-10 14:09:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/codeatoz.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":28,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.1":{"tag":"1.1.1","author":"codeatoz","date":"2026-06-10 14:09:53"}},"upgrade_notice":{"1.0.0":"<p>Initial release. No upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3567523,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3567523,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3567523,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3567523,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3567523,"resolution":"1","location":"assets","locale":"","width":2312,"height":1594},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3567523,"resolution":"10","location":"assets","locale":"","width":2320,"height":1672},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3567523,"resolution":"11","location":"assets","locale":"","width":2358,"height":1544},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3567523,"resolution":"12","location":"assets","locale":"","width":2370,"height":1568},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3567523,"resolution":"2","location":"assets","locale":"","width":2342,"height":3350},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3567523,"resolution":"3","location":"assets","locale":"","width":2576,"height":1550},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3567523,"resolution":"4","location":"assets","locale":"","width":2616,"height":1440},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3567523,"resolution":"5","location":"assets","locale":"","width":2338,"height":2982},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3567523,"resolution":"6","location":"assets","locale":"","width":2246,"height":2426},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3567523,"resolution":"7","location":"assets","locale":"","width":2348,"height":1922},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3567523,"resolution":"8","location":"assets","locale":"","width":2350,"height":2124},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3567523,"resolution":"9","location":"assets","locale":"","width":2400,"height":1388}},"screenshots":{"1":"Dashboard \u2014 at-a-glance stats for quotes, registrations, and approvals, with quick access to every module","2":"Wholesale Pricing \u2014 rule builder with role, product, category, and quantity-tier filters","3":"Quotes \/ RFQ \u2014 manage, review, adjust pricing, and convert quote requests to orders","4":"Registrations \u2014 B2B customer onboarding with an approval workflow","5":"Analytics \u2014 quote submission and revenue trends with conversion metrics","6":"Automation \u2014 quote reminders, follow-up emails, and Slack notifications","7":"Settings \u2014 enable or disable individual modules with per-module toggles","8":"Access Control settings \u2014 catalog mode, guest restriction, and price\/add-to-cart visibility by role","9":"Pricing settings \u2014 tier pricing and minimum order quantity (MOQ) options","10":"RFQ settings \u2014 quote button text, quote expiry, and PDF quote generation","11":"Approval settings \u2014 admin notification email and auto-approve roles","12":"Automation settings \u2014 Slack alerts and reminder\/follow-up timing"}},"plugin_section":[],"plugin_tags":[10553,13756,51032,65073,286],"plugin_category":[45],"plugin_contributors":[256075],"plugin_business_model":[],"class_list":["post-319849","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-rfq","plugin_tags-wholesale","plugin_tags-wholesale-pricing","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-codeatoz","plugin_committers-codeatoz"],"banners":{"banner":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/banner-772x250.png?rev=3567523","banner_2x":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/banner-1544x500.png?rev=3567523","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/icon-128x128.png?rev=3567523","icon_2x":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/icon-256x256.png?rev=3567523","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-1.png?rev=3567523","caption":"Dashboard \u2014 at-a-glance stats for quotes, registrations, and approvals, with quick access to every module"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-2.png?rev=3567523","caption":"Wholesale Pricing \u2014 rule builder with role, product, category, and quantity-tier filters"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-3.png?rev=3567523","caption":"Quotes \/ RFQ \u2014 manage, review, adjust pricing, and convert quote requests to orders"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-4.png?rev=3567523","caption":"Registrations \u2014 B2B customer onboarding with an approval workflow"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-5.png?rev=3567523","caption":"Analytics \u2014 quote submission and revenue trends with conversion metrics"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-6.png?rev=3567523","caption":"Automation \u2014 quote reminders, follow-up emails, and Slack notifications"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-7.png?rev=3567523","caption":"Settings \u2014 enable or disable individual modules with per-module toggles"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-8.png?rev=3567523","caption":"Access Control settings \u2014 catalog mode, guest restriction, and price\/add-to-cart visibility by role"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-9.png?rev=3567523","caption":"Pricing settings \u2014 tier pricing and minimum order quantity (MOQ) options"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-10.png?rev=3567523","caption":"RFQ settings \u2014 quote button text, quote expiry, and PDF quote generation"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-11.png?rev=3567523","caption":"Approval settings \u2014 admin notification email and auto-approve roles"},{"src":"https:\/\/ps.w.org\/codeatoz-b2b-suite-for-woocommerce\/assets\/screenshot-12.png?rev=3567523","caption":"Automation settings \u2014 Slack alerts and reminder\/follow-up timing"}],"raw_content":"<!--section=description-->\n<p><strong>CodeAtoZ B2B Suite for WooCommerce<\/strong> turns your WooCommerce store into a full-featured B2B commerce platform. Six powerful free modules cover the essentials, and a <a href=\"https:\/\/codeatoz.com\/codeatoz-b2b-suite-pro\/\">Pro add-on<\/a> unlocks 16 additional advanced modules.<\/p>\n\n<p>Whether you run a wholesale operation, a distributor network, or a trade-only store, this plugin gives you everything needed to serve business customers professionally \u2014 from gated pricing and quote requests to custom registration forms with approval workflows.<\/p>\n\n<h4>Free Modules<\/h4>\n\n<p><strong>Access Control<\/strong>\nHide prices, remove Add-to-Cart buttons, and restrict your catalogue for guest users or specific customer roles. Set a custom replacement action \u2014 show a Login button, Request a Quote modal, or a contact inquiry form instead.<\/p>\n\n<p><strong>Wholesale Pricing<\/strong>\nCreate role-based and user-based pricing rules with percentage discounts, flat discounts, or fixed prices. Full support for quantity tier pricing (volume discounts) and per-product minimum order quantities (MOQ).<\/p>\n\n<p><strong>RFQ &amp; Quotes<\/strong>\nAdd a \"Request a Quote\" button to any product. Customers build a quote cart, submit a request, and you review, adjust, and send a formal quote from the admin panel. Optional PDF generation, quote expiry management, and one-click conversion to a WooCommerce order.<\/p>\n\n<p><strong>Registrations &amp; Approvals<\/strong>\nReplace standard WooCommerce registration with a B2B-specific form that collects company name, VAT number, phone, and supporting documents. Approve or reject applications from the admin panel. Automatic email notifications go to both customers and admins at every step.<\/p>\n\n<p><strong>Analytics<\/strong>\nTrack key B2B events \u2014 quote requests, approvals, registrations, and pricing rule applications \u2014 and view them in a clean admin dashboard with chart visualisations.<\/p>\n\n<p><strong>Automation<\/strong>\nSchedule email reminders for unanswered quotes, follow-up emails for cold leads, and Slack notifications for new quotes and registrations. Fully configurable intervals and message templates.<\/p>\n\n<h4>Why choose CodeAtoZ B2B Suite?<\/h4>\n\n<ul>\n<li><strong>Modular<\/strong> \u2014 enable only the features your store needs; each module can be toggled independently.<\/li>\n<li><strong>No bloat<\/strong> \u2014 no licensing code, no telemetry, no external pings beyond your own WooCommerce configuration.<\/li>\n<li><strong>WP.org compliant<\/strong> \u2014 100% GPL code, all assets bundled locally, no CDN dependencies.<\/li>\n<li><strong>HPOS ready<\/strong> \u2014 fully compatible with WooCommerce High-Performance Order Storage.<\/li>\n<li><strong>Theme agnostic<\/strong> \u2014 uses standard WooCommerce hooks; frontend templates are overridable from your theme.<\/li>\n<\/ul>\n\n<h4>Pro Add-on Features<\/h4>\n\n<p>Upgrade to <a href=\"https:\/\/codeatoz.com\/codeatoz-b2b-suite-pro\/\">CodeAtoZ B2B Suite Pro<\/a> for:<\/p>\n\n<ul>\n<li><strong>CRM Integration<\/strong> \u2014 HubSpot, Salesforce, Zoho CRM, Pipedrive<\/li>\n<li><strong>Dealer Portal<\/strong> \u2014 Saved carts, branded dashboards, quick re-order<\/li>\n<li><strong>Lead Generation<\/strong> \u2014 Callback forms, inquiry widgets, WhatsApp click-to-chat<\/li>\n<li><strong>AI Assistant<\/strong> \u2014 AI-powered quote suggestions, price scoring, and lead prioritisation (Claude \/ OpenAI)<\/li>\n<li><strong>Sales Reps &amp; Commission<\/strong> \u2014 Assign reps to customers, track commission<\/li>\n<li><strong>ERP Integration<\/strong> \u2014 Push orders to SAP, NetSuite, Xero via webhooks<\/li>\n<li><strong>Bulk \/ Quick Order<\/strong> \u2014 SKU paste \/ CSV upload for fast ordering<\/li>\n<li><strong>Net Terms &amp; Credit Accounts<\/strong> \u2014 Net 30\/60\/90 payment terms, per-customer credit limits<\/li>\n<li><strong>Company Accounts<\/strong> \u2014 Multi-user company accounts with Buyer, Viewer, and Admin roles<\/li>\n<li><strong>Catalog Visibility Rules<\/strong> \u2014 Show\/hide products by role, company, or user<\/li>\n<li><strong>Invoice Manager<\/strong> \u2014 Auto-generate PDF invoices, email them on order status change<\/li>\n<li><strong>Custom Checkout Fields<\/strong> \u2014 PO Number, Department, Delivery Note<\/li>\n<li><strong>Price Books<\/strong> \u2014 Scheduled price lists assignable to users, roles, or companies<\/li>\n<li><strong>Advanced Reporting &amp; Export<\/strong> \u2014 B2B revenue, quote conversion, rep performance<\/li>\n<li><strong>In-App Notifications<\/strong> \u2014 Real-time bell notifications for quotes, approvals, credit events<\/li>\n<li><strong>Account Statement<\/strong> \u2014 Monthly purchase and credit statement downloadable from My Account<\/li>\n<\/ul>\n\n<h4>Compatibility<\/h4>\n\n<ul>\n<li><strong>WooCommerce HPOS<\/strong> \u2014 Fully compatible with High-Performance Order Storage (custom order tables)<\/li>\n<li><strong>Block Themes<\/strong> \u2014 Works with both classic and block-based themes<\/li>\n<li><strong>Multisite<\/strong> \u2014 Plugin can be network-activated<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>codeatoz-b2b-suite-for-woocommerce<\/code> directory to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress<\/li>\n<li>Go to <strong>B2B Suite \u2192 Dashboard<\/strong> to get started<\/li>\n<li>Enable and configure modules under <strong>B2B Suite \u2192 Settings \u2192 Modules<\/strong><\/li>\n<\/ol>\n\n<h4>Recommended first steps<\/h4>\n\n<ol>\n<li>Enable the modules you need under <strong>Settings \u2192 Modules<\/strong><\/li>\n<li>Set your B2B customer roles under <strong>Settings \u2192 Access Control<\/strong><\/li>\n<li>Add pricing rules under <strong>Wholesale Pricing \u2192 Rules<\/strong><\/li>\n<li>Configure the registration form under <strong>Settings \u2192 Registrations<\/strong><\/li>\n<li>Set up quote PDF settings under <strong>Settings \u2192 RFQ<\/strong><\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20woocommerce%3F\"><h3>Does this plugin require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce 8.0 or later must be installed and active.<\/p><\/dd>\n<dt id=\"what%20php%20version%20is%20required%3F\"><h3>What PHP version is required?<\/h3><\/dt>\n<dd><p>PHP 8.0 or later.<\/p><\/dd>\n<dt id=\"can%20i%20use%20only%20some%20modules%3F\"><h3>Can I use only some modules?<\/h3><\/dt>\n<dd><p>Yes. Each module can be enabled or disabled individually from <strong>B2B Suite \u2192 Settings \u2192 Modules<\/strong>. Disabled modules load no code and have no performance impact.<\/p><\/dd>\n<dt id=\"will%20it%20work%20with%20my%20theme%3F\"><h3>Will it work with my theme?<\/h3><\/dt>\n<dd><p>The plugin relies on standard WooCommerce hooks and is compatible with any properly-coded WooCommerce theme. Frontend templates can be overridden by copying them to your theme's <code>codeatoz-b2b-suite-for-woocommerce\/<\/code> subdirectory.<\/p><\/dd>\n<dt id=\"how%20do%20i%20override%20templates%3F\"><h3>How do I override templates?<\/h3><\/dt>\n<dd><p>Copy the template file from <code>\/wp-content\/plugins\/codeatoz-b2b-suite-for-woocommerce\/templates\/<\/code> to <code>\/wp-content\/themes\/your-theme\/codeatoz-b2b-suite-for-woocommerce\/<\/code> preserving the same folder structure, then edit the copy.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20create%20database%20tables%3F\"><h3>Does the plugin create database tables?<\/h3><\/dt>\n<dd><p>Yes. On activation it creates custom tables (prefixed <code>{prefix}b2b_<\/code>) for quotes, quote items, quote notes, registrations, pricing rules, analytics events, and automation logs, using <code>dbDelta()<\/code>. All plugin tables, options, roles, and meta are removed when you delete the plugin (via uninstall.php).<\/p><\/dd>\n<dt id=\"how%20do%20i%20set%20up%20the%20rfq%20%2F%20request%20a%20quote%20feature%3F\"><h3>How do I set up the RFQ \/ Request a Quote feature?<\/h3><\/dt>\n<dd><ol>\n<li>Enable the RFQ module under Settings \u2192 Modules<\/li>\n<li>Enable the Access Control module and set the \"replacement action\" to \"Request a Quote\" for guest or non-B2B roles<\/li>\n<li>Customers will see a \"Request a Quote\" button and a modal form on product pages<\/li>\n<li>Submitted quotes appear under <strong>B2B Suite \u2192 Quotes<\/strong> in your admin<\/li>\n<\/ol><\/dd>\n<dt id=\"can%20customers%20see%20their%20quotes%3F\"><h3>Can customers see their quotes?<\/h3><\/dt>\n<dd><p>Yes. Customers can view all their quote requests under <strong>My Account \u2192 Quotes<\/strong>. They can also download a PDF and accept quotes from there.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Post in the <a href=\"https:\/\/wordpress.org\/support\/plugin\/codeatoz-b2b-suite-for-woocommerce\/\">WordPress.org support forum<\/a> or visit <a href=\"https:\/\/codeatoz.com\/\">codeatoz.com<\/a>.<\/p><\/dd>\n<dt id=\"is%20there%20a%20pro%20version%3F\"><h3>Is there a Pro version?<\/h3><\/dt>\n<dd><p>Yes \u2014 <a href=\"https:\/\/codeatoz.com\/codeatoz-b2b-suite-pro\/\">CodeAtoZ B2B Suite Pro<\/a> adds 16 additional modules including CRM, ERP, AI, Net Terms, Price Books, Invoices, and more.<\/p><\/dd>\n<dt id=\"does%20the%20free%20plugin%20do%20license%20key%20checks%20or%20phone%20home%3F\"><h3>Does the free plugin do license key checks or phone home?<\/h3><\/dt>\n<dd><p>No. The free plugin contains no licensing code, telemetry, or external calls beyond the WooCommerce connection you configure yourself. All JavaScript assets (including Chart.js) are bundled locally.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is this plugin compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. The plugin explicitly declares HPOS compatibility and uses WooCommerce's order APIs rather than direct post queries.<\/p><\/dd>\n<dt id=\"can%20this%20be%20used%20on%20a%20multisite%20network%3F\"><h3>Can this be used on a multisite network?<\/h3><\/dt>\n<dd><p>Yes. The plugin can be network-activated. Each site in the network maintains its own B2B settings, quotes, and registrations.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Quote PDF now enqueues its stylesheet via wp_enqueue_style() and prints it with wp_print_styles() by handle \u2014 removes the inline  block entirely<\/li>\n<li>Move all remaining inline style=\"\" attributes in the PDF template to CSS classes in quote-pdf.css<\/li>\n<li>Replace the print button's inline onclick handler with an enqueued script (quote-pdf.js) printed via wp_print_scripts() \u2014 the PDF template now contains zero inline CSS or JS<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Move quote PDF inline styles to assets\/css\/quote-pdf.css; load via file_get_contents() with explanatory comment (standalone PDF document cannot use wp_enqueue_style)<\/li>\n<li>Rename wp_localize_script object names to match plugin prefix convention: catozB2BFront \u2192 catoz_b2b_front, catozB2BAnalytics \u2192 catoz_b2b_analytics<\/li>\n<li>Update all JavaScript references in frontend.js, admin.js, and admin-analytics.js to use renamed object names<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Suppress false-positive InputNotSanitized warnings on session reads (values are sanitized per-field after read)<\/li>\n<li>Prefix global variables in uninstall.php multisite loop<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Remove duplicate Plugin URI header (was identical to Author URI)<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Update bundled Chart.js library to v4.5.1 (latest stable)<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Add wp_unslash() before sanitize_key() on all $_GET\/$_POST reads<\/li>\n<li>Escape all dynamic class-attribute output with esc_attr()<\/li>\n<li>Prefix product meta keys (_catoz_b2b_moq, _catoz_b2b_wholesale_price)<\/li>\n<li>Add uninstall.php to remove all tables, options, roles, and meta on deletion (multisite aware)<\/li>\n<li>Correct the database\/uninstall description in the FAQ<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fix fatal PHP syntax errors in dashboard, quote-cart, and registration-form templates (missing closing PHP tag)<\/li>\n<li>Move inline analytics chart script to an enqueued JS file with wp_localize_script<\/li>\n<li>Add \"Requires Plugins: woocommerce\" header for dependency management<\/li>\n<li>Escape shortcode output (registration status message) before return<\/li>\n<li>Sanitize quote-cart session data on read; sanitize JSON-body nonce before verification<\/li>\n<li>Prefix all AJAX actions, shortcodes, session keys, and the JS data object with catoz_b2b_ to avoid collisions<\/li>\n<li>Fix mismatched AJAX action names for Slack test, run-now, and AI settings save buttons<\/li>\n<li>Update Plugin URI to a valid URL<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Change text domain to codeatoz-b2b-suite-for-woocommerce to match plugin title slug (eliminates all automated checker textdomain warnings)<\/li>\n<li>Rename languages pot file to codeatoz-b2b-suite-for-woocommerce.pot<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix missing wp_unslash\/sanitize on sticky form POST fields in WooCommerce registration integration<\/li>\n<li>Fix phpcs:disable scope covering all $_GET accesses in PDF download handler<\/li>\n<li>Fix translators comment placement in WhatsApp CTA and Variation label<\/li>\n<li>Add PluginCheck.Security.DirectDB.UnescapedDBParameter suppression for safe dynamic SQL queries<\/li>\n<li>Extend NonPrefixedClassFound suppression to HTML class attributes in view templates<\/li>\n<li>Fix session variable access coverage in quote cart indicator<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix unescaped apostrophe in quote follow-up email template causing plugin checker parse error<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix all WP.org plugin checker errors: output escaping, translators comments, wp_unslash, nonce handling, and function name prefixing<\/li>\n<li>Replace non-enqueued stylesheet in PDF template with inline styles<\/li>\n<li>Add missing direct file access protection to PDF template<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Access Control module \u2014 hide prices, restrict catalogue, configurable replacement CTAs<\/li>\n<li>Wholesale Pricing module \u2014 role\/user-based rules, tier pricing, MOQ per product<\/li>\n<li>RFQ &amp; Quotes module \u2014 quote cart, admin quote management, PDF generation, order conversion<\/li>\n<li>Registrations &amp; Approvals module \u2014 B2B registration form with approval workflow<\/li>\n<li>Analytics module \u2014 event tracking and admin dashboard charts<\/li>\n<li>Automation module \u2014 scheduled email reminders and Slack notifications<\/li>\n<li>HPOS compatibility declared<\/li>\n<li>WooCommerce 8.x\u20139.x compatible<\/li>\n<li>WordPress 6.4\u20136.8 compatible<\/li>\n<\/ul>","raw_excerpt":"B2B commerce tools for WooCommerce \u2014 wholesale pricing, RFQ, registration approvals, analytics, and email automation.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/319849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=319849"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/codeatoz"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=319849"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=319849"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=319849"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=319849"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=319849"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=319849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}