{"id":74153,"date":"2017-09-01T09:40:32","date_gmt":"2017-09-01T09:40:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wholesale-customers-for-woo\/"},"modified":"2026-04-13T17:39:23","modified_gmt":"2026-04-13T17:39:23","slug":"wholesale-customers-for-woo","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/wholesale-customers-for-woo\/","author":13882431,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.0.0","stable_tag":"2.0.0","tested":"6.7.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Wholesale Customers For Woo","header_author":"Jarryd Long","header_description":"Allow wholesale pricing for WooCommerce.","assets_banners_color":"ae779b","last_updated":"2026-04-13 17:39:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pacificplugins.com","rating":4.3,"author_block_rating":0,"active_installs":60,"downloads":6639,"num_ratings":4,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"andrewza","date":"2017-10-03 10:42:00"},"1.0.1":{"tag":"1.0.1","author":"andrewza","date":"2017-10-03 10:42:00"},"1.0.2":{"tag":"1.0.2","author":"andrewza","date":"2017-10-03 10:42:00"},"1.0.3":{"tag":"1.0.3","author":"andrewza","date":"2017-10-03 10:42:00"},"1.0.4":{"tag":"1.0.4","author":"andrewza","date":"2017-10-03 10:42:00"},"1.0.4.1":{"tag":"1.0.4.1","author":"yoohooplugins","date":"2017-11-08 09:29:20"},"1.0.4.2":{"tag":"1.0.4.2","author":"yoohooplugins","date":"2017-11-09 09:47:22"},"1.0.5":{"tag":"1.0.5","author":"andrewza","date":"2020-05-29 11:33:44"},"1.0.6":{"tag":"1.0.6","author":"Jarryd Long","date":"2026-04-13 17:21:02"},"2.0.0":{"tag":"2.0.0","author":"Jarryd Long","date":"2026-04-13 17:39:23"}},"upgrade_notice":{"2.0.0":"<p>Major release. Adds the Wholesale Customers admin screen, product page pricing display, cart savings badges, order flagging, REST API support, CSV import\/export, Quick Edit and Bulk Edit, a shortcode, and more. Includes security hardening and bug fixes. Recommended for all users.<\/p>"},"ratings":{"1":0,"2":0,"3":"1","4":"1","5":"2"},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":1767998,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":1767998,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":1767998,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":1767998,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.0.1","1.0.2","1.0.3","1.0.4","1.0.4.1","1.0.4.2","1.0.5","1.0.6","2.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3505449,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3505449,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3505449,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3505449,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3505449,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"Wholesale notice on the My Account dashboard \u2014 confirms wholesale status and the date it was granted.","2":"Wholesale Customers admin screen \u2014 lists all wholesale users with order count and assignment date, searchable and sortable.","3":"General Settings \u2014 global discount percentage, per-product pricing options, and sale price behaviour.","4":"Order Settings \u2014 minimum cart total and coupon restriction controls.","5":"Notice Settings \u2014 configurable \"Log in for wholesale pricing\" notice text and link URL."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[10553,51032,65072,65073,65074],"plugin_category":[45],"plugin_contributors":[87248,77750,141575],"plugin_business_model":[],"class_list":["post-74153","plugin","type-plugin","status-publish","hentry","plugin_tags-b2b","plugin_tags-wholesale","plugin_tags-wholesale-prices","plugin_tags-wholesale-pricing","plugin_tags-woocommerce-wholesale","plugin_category-ecommerce","plugin_contributors-andrewza","plugin_contributors-jarryd-long","plugin_contributors-travislima","plugin_committers-andrewza","plugin_committers-jarryd-long"],"banners":{"banner":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/banner-772x250.jpg?rev=1767998","banner_2x":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/banner-1544x500.jpg?rev=1767998","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/icon-128x128.jpg?rev=1767998","icon_2x":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/icon-256x256.jpg?rev=1767998","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/screenshot-1.png?rev=3505449","caption":"Wholesale notice on the My Account dashboard \u2014 confirms wholesale status and the date it was granted."},{"src":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/screenshot-2.png?rev=3505449","caption":"Wholesale Customers admin screen \u2014 lists all wholesale users with order count and assignment date, searchable and sortable."},{"src":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/screenshot-3.png?rev=3505449","caption":"General Settings \u2014 global discount percentage, per-product pricing options, and sale price behaviour."},{"src":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/screenshot-4.png?rev=3505449","caption":"Order Settings \u2014 minimum cart total and coupon restriction controls."},{"src":"https:\/\/ps.w.org\/wholesale-customers-for-woo\/assets\/screenshot-5.png?rev=3505449","caption":"Notice Settings \u2014 configurable \"Log in for wholesale pricing\" notice text and link URL."}],"raw_content":"<!--section=description-->\n<p><strong>Wholesale Customers For WooCommerce<\/strong> gives you everything you need to run a wholesale operation alongside your regular WooCommerce store \u2014 without a complicated setup or a bloated plugin.<\/p>\n\n<p>Assign customers as wholesale buyers, set a global percentage discount or per-product wholesale prices, enforce a minimum order value, and control exactly what your customers see at every step of the buying journey.<\/p>\n\n<p>Whether you're selling direct to retailers, running a B2B-only store, or offering trade pricing to select customers alongside your retail catalogue, this plugin handles it cleanly and efficiently.<\/p>\n\n<h4>Pricing<\/h4>\n\n<ul>\n<li><strong>Global percentage discount<\/strong> \u2014 set a single store-wide discount that applies automatically to every product for wholesale customers.<\/li>\n<li><strong>Per-product wholesale price<\/strong> \u2014 set an exact price on any simple product or variation. Always overrides the global discount when set.<\/li>\n<li><strong>Apply discount to sale prices<\/strong> \u2014 choose whether the global discount stacks on top of a sale price or applies to the regular price only.<\/li>\n<li><strong>Discount tax base<\/strong> \u2014 for stores that enter prices inclusive of tax, apply the discount to the tax-exclusive price instead of the stored price.<\/li>\n<li><strong>Wholesale price column<\/strong> in the Products list \u2014 see every product's wholesale price at a glance.<\/li>\n<li><strong>Quick Edit support<\/strong> \u2014 set or clear the wholesale price without opening each product individually.<\/li>\n<li><strong>Bulk Edit support<\/strong> \u2014 update wholesale prices across multiple products at once.<\/li>\n<li><strong>Product CSV import\/export<\/strong> \u2014 <code>wholesale_price<\/code> is included in WooCommerce's built-in importer and exporter with automatic column mapping.<\/li>\n<\/ul>\n\n<h4>Customer Management<\/h4>\n\n<ul>\n<li><strong>Wholesale Customers admin page<\/strong> \u2014 a dedicated screen listing every wholesale user with their name, email, order count, and the date they were assigned wholesale status. Supports search, column sorting, and bulk removal.<\/li>\n<li><strong>One-click assignment<\/strong> \u2014 enable wholesale status from the user's Edit Profile page with a single checkbox.<\/li>\n<li><strong>Wholesale since date<\/strong> \u2014 the date a customer was first granted wholesale status is recorded and shown on their profile.<\/li>\n<li><strong>\"Wholesale\" column on the Users list<\/strong> \u2014 instantly identify wholesale accounts with a dedicated filter view.<\/li>\n<li><strong>Wholesale customer filter on the Orders screen<\/strong> \u2014 filter the order list to show only wholesale orders (works with both classic and HPOS order storage).<\/li>\n<li><strong>Order flagging<\/strong> \u2014 wholesale orders are tagged at checkout so they remain identifiable in reports even if a customer's status later changes. A \"Wholesale Order\" badge appears on the admin order screen.<\/li>\n<li><strong>WooCommerce REST API support<\/strong> \u2014 read and set <code>wholesale_customer<\/code> status via the <code>\/wc\/v3\/customers<\/code> endpoint.<\/li>\n<\/ul>\n\n<h4>Customer Experience<\/h4>\n\n<ul>\n<li><strong>Wholesale price on the product page<\/strong> \u2014 logged-in wholesale customers see their price on every product page (simple and variable).<\/li>\n<li><strong>\"You save\" display<\/strong> \u2014 shows the exact savings amount and percentage on the product page. Variable products show the maximum savings percentage across all variations.<\/li>\n<li><strong>Hide retail price<\/strong> \u2014 optionally show wholesale customers only their discounted price, removing the regular price from display.<\/li>\n<li><strong>Wholesale badge in cart &amp; checkout<\/strong> \u2014 line items show a \"Wholesale\" label when a wholesale discount is applied.<\/li>\n<li><strong>Wholesale savings total<\/strong> \u2014 cart and checkout display a \"Wholesale savings\" row showing the total saved on the order.<\/li>\n<li><strong>Wholesale savings in order emails<\/strong> \u2014 order confirmation emails include how much the customer saved.<\/li>\n<li><strong>My Account wholesale status panel<\/strong> \u2014 customers see a \"Wholesale Account\" section on their dashboard confirming their status and the date it was granted.<\/li>\n<li><strong>\"Log in for wholesale pricing\" notice<\/strong> \u2014 shown on product pages to guests and non-wholesale customers. Text and link URL are configurable in settings.<\/li>\n<li><strong>\"No wholesale pricing available\" message<\/strong> \u2014 a configurable fallback shown to wholesale customers viewing products with no specific pricing set up.<\/li>\n<li><strong>Customisable wholesale price label<\/strong> \u2014 change \"Your wholesale price:\" to any text you like.<\/li>\n<li><strong><code>[wcs_wholesale_notice]<\/code> shortcode<\/strong> \u2014 place the wholesale call-to-action notice anywhere on your site. Supports <code>login_text<\/code>, <code>apply_text<\/code>, <code>active_text<\/code>, and <code>url<\/code> attributes.<\/li>\n<\/ul>\n\n<h4>Store Controls<\/h4>\n\n<ul>\n<li><strong>Minimum cart total<\/strong> \u2014 block wholesale customers from checking out below a set order value.<\/li>\n<li><strong>Disable coupons for wholesale customers<\/strong> \u2014 prevent coupon codes from stacking on top of wholesale pricing.<\/li>\n<li><strong>Catalog \/ private store mode<\/strong> \u2014 hide prices and the Add to Cart button from guests only, or from all non-wholesale visitors, turning your store into a B2B-only catalogue.<\/li>\n<\/ul>\n\n<h4>Developer Tools<\/h4>\n\n<p>Built with extensibility in mind. All core behaviour is exposed through filters and actions so Pro features and third-party integrations work without modifying plugin files.<\/p>\n\n<p>Key hooks: <code>wcs_is_wholesale_customer<\/code>, <code>wcs_wholesale_price<\/code>, <code>wcs_minimum_cart_amount<\/code>, <code>wcs_wholesale_customer_enabled<\/code>, <code>wcs_wholesale_customer_disabled<\/code>, <code>wcs_after_settings_saved<\/code>, <code>wcs_pro_upgrade_url<\/code>.<\/p>\n\n<h4>Wholesale Customers For Woo Pro<\/h4>\n\n<p><strong><a href=\"https:\/\/pacificplugins.com\/plugins\/wholesale-customers-for-woo-pro?utm_source=wholesale-customers-for-woo&amp;utm_medium=readme&amp;utm_campaign=upgrade\">Wholesale Customers For Woo Pro<\/a><\/strong> extends this plugin into a full B2B sales platform.<\/p>\n\n<p><strong>Groups &amp; Pricing<\/strong><\/p>\n\n<ul>\n<li><strong>Wholesale groups<\/strong> \u2014 create multiple customer tiers (Gold, Silver, Bronze, etc.), each with its own discount rate, minimum cart total, and settings.<\/li>\n<li><strong>Tiered \/ quantity-break pricing<\/strong> \u2014 set volume price tiers per product (e.g. 1\u20139 units at $18, 10\u201349 at $15, 50+ at $12). Tier table shown on the product page.<\/li>\n<li><strong>Per-category pricing<\/strong> \u2014 apply a flat or percentage discount to an entire product category, per group.<\/li>\n<\/ul>\n\n<p><strong>Registration &amp; Approvals<\/strong><\/p>\n\n<ul>\n<li><strong>Wholesale registration form<\/strong> \u2014 a dedicated sign-up page via <code>[wcsp_registration_form]<\/code> shortcode with one-click page creation in settings.<\/li>\n<li><strong>Admin approval workflow<\/strong> \u2014 applicants sit in a pending queue; approve or reject with one click from the Registrations admin page.<\/li>\n<li><strong>Custom registration fields<\/strong> \u2014 add text, textarea, select, checkbox, and file-upload fields to the registration form.<\/li>\n<li><strong>Automated email notifications<\/strong> \u2014 customers are notified on approval or rejection; admins receive alerts on new applications.<\/li>\n<\/ul>\n\n<p><strong>Product Controls<\/strong><\/p>\n\n<ul>\n<li><strong>Product visibility<\/strong> \u2014 hide products from non-wholesale visitors, globally or per-product.<\/li>\n<li><strong>Quantity rules<\/strong> \u2014 enforce minimum and maximum order quantities per product.<\/li>\n<li><strong>Quantity steps<\/strong> \u2014 require ordering in multiples (e.g. packs of 6) per product.<\/li>\n<li><strong>Bulk Order Form<\/strong> \u2014 a searchable, filterable order table via <code>[wcsp_order_form]<\/code> shortcode for fast large-quantity ordering.<\/li>\n<\/ul>\n\n<p><strong>Payments &amp; Finance<\/strong><\/p>\n\n<ul>\n<li><strong>Net Terms \/ Pay by Invoice<\/strong> \u2014 a \"Pay by Invoice\" WooCommerce payment gateway for approved customers. Configurable net days (Net 7\/15\/30\/60\/90), per-user and per-group credit limits, overdue tracking, and due dates in admin and emails.<\/li>\n<li><strong>Store Credit \/ Wallet<\/strong> \u2014 issue credit to customers, let them apply it at checkout, and track the full transaction history in My Account. Auto-refunds on order refund.<\/li>\n<li><strong>Purchase Order Number<\/strong> \u2014 collect a PO number at checkout (optional or required), stored on the order and shown in emails.<\/li>\n<li><strong>Tax Exemption<\/strong> \u2014 mark customers or groups as tax-exempt. WooCommerce skips tax calculation automatically.<\/li>\n<li><strong>Payment &amp; shipping restrictions<\/strong> \u2014 limit which gateways and shipping methods are available to each wholesale group.<\/li>\n<\/ul>\n\n<p><strong>Commerce<\/strong><\/p>\n\n<ul>\n<li><strong>Quote Requests<\/strong> \u2014 \"Request a Quote\" button on product pages. Admins review, adjust prices, and convert approved quotes to real orders with one click.<\/li>\n<li><strong>WordPress Role Management<\/strong> \u2014 auto-assign a custom <code>wcsp_wholesale_customer<\/code> role on approval and remove it on revocation, for use with role-aware plugins.<\/li>\n<\/ul>\n\n<p><strong>Reporting<\/strong><\/p>\n\n<ul>\n<li><strong>Wholesale Reports dashboard<\/strong> \u2014 revenue, orders, average order value, top customers by revenue, and revenue by group \u2014 filterable by 7 days, 30 days, 90 days, or year.<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/pacificplugins.com\/plugins\/wholesale-customers-for-woo-pro?utm_source=wholesale-customers-for-woo&amp;utm_medium=readme&amp;utm_campaign=upgrade\">Get Wholesale Customers For Woo Pro \u2192<\/a><\/p>\n\n<h4>Translation Ready<\/h4>\n\n<p><a href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/wholesale-customers-for-woo\">Translate Wholesale Customers For WooCommerce<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it directly through <strong>Plugins &gt; Add New<\/strong> in your WordPress dashboard.<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Wholesale &gt; Settings<\/strong> to configure the global discount, minimum cart total, and customer-facing notices.<\/li>\n<li>To make a user a wholesale customer, open their profile under <strong>Users<\/strong> and check <strong>Wholesale customer<\/strong>, then save.<\/li>\n<li>To set a wholesale price on a specific product, open the product, go to the <strong>General<\/strong> tab (simple) or the <strong>Variations<\/strong> tab (variable), and enter a value in the <strong>Wholesale price<\/strong> field.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20version%20of%20woocommerce%20is%20required%3F\"><h3>What version of WooCommerce is required?<\/h3><\/dt>\n<dd><p>WooCommerce 5.0 or later. Tested up to WooCommerce 9.0.<\/p><\/dd>\n<dt id=\"what%20version%20of%20wordpress%20is%20required%3F\"><h3>What version of WordPress is required?<\/h3><\/dt>\n<dd><p>WordPress 5.8 or later.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20variable%20products%3F\"><h3>Does this work with variable products?<\/h3><\/dt>\n<dd><p>Yes. You can set a wholesale price on each variation individually under the Variations tab. If a variation has no wholesale price set, the global percentage discount applies to its regular price instead.<\/p><\/dd>\n<dt id=\"how%20does%20the%20pricing%20priority%20work%3F\"><h3>How does the pricing priority work?<\/h3><\/dt>\n<dd><p>Per-product wholesale price wins first. If that's not set, the global percentage discount is applied. If there's no global discount either, the product shows the regular WooCommerce price (unless Pro features like group pricing or tiered pricing are active and applicable).<\/p><\/dd>\n<dt id=\"can%20i%20show%20wholesale%20prices%20to%20guests%20or%20non-wholesale%20customers%3F\"><h3>Can I show wholesale prices to guests or non-wholesale customers?<\/h3><\/dt>\n<dd><p>No \u2014 wholesale prices are shown only to logged-in users who have been granted wholesale status. You can configure a \"Log in for wholesale pricing\" notice to display to everyone else on product pages, with configurable text and an optional link.<\/p><\/dd>\n<dt id=\"can%20i%20hide%20prices%20entirely%20from%20guests%20or%20the%20public%3F\"><h3>Can I hide prices entirely from guests or the public?<\/h3><\/dt>\n<dd><p>Yes. The <strong>Catalog \/ private store mode<\/strong> setting lets you hide prices and the Add to Cart button from guests only, or from all non-wholesale visitors entirely.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20wholesale%20customer%20uses%20a%20coupon%3F\"><h3>What happens when a wholesale customer uses a coupon?<\/h3><\/dt>\n<dd><p>You can optionally disable coupons for wholesale customers entirely using the <strong>Disable coupons for wholesale customers<\/strong> setting. This prevents discount stacking.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is this compatible with WooCommerce High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. Full HPOS compatibility is declared as of version 2.0.0.<\/p><\/dd>\n<dt id=\"can%20i%20import%20or%20export%20wholesale%20prices%20in%20bulk%3F\"><h3>Can I import or export wholesale prices in bulk?<\/h3><\/dt>\n<dd><p>Yes. The <code>wholesale_price<\/code> column is supported in WooCommerce's built-in product CSV importer and exporter. The importer also recognises the column header automatically.<\/p><\/dd>\n<dt id=\"can%20i%20use%20the%20rest%20api%20to%20manage%20wholesale%20customers%3F\"><h3>Can I use the REST API to manage wholesale customers?<\/h3><\/dt>\n<dd><p>Yes. The <code>\/wc\/v3\/customers<\/code> endpoint is extended with a <code>wholesale_customer<\/code> boolean field that you can read and write via the API.<\/p><\/dd>\n<dt id=\"where%20can%20i%20see%20all%20my%20wholesale%20customers%3F\"><h3>Where can I see all my wholesale customers?<\/h3><\/dt>\n<dd><p>Go to <strong>Wholesale &gt; Customers<\/strong> in the admin menu. The screen lists every wholesale user with their name, email, username, total order count, and the date they were assigned. You can search, sort by column, and bulk-remove wholesale status from there.<\/p><\/dd>\n<dt id=\"i%20need%20wholesale%20groups%2C%20registration%20forms%2C%20tiered%20pricing%2C%20or%20net%20terms%20%E2%80%94%20is%20that%20in%20the%20free%20version%3F\"><h3>I need wholesale groups, registration forms, tiered pricing, or Net Terms \u2014 is that in the free version?<\/h3><\/dt>\n<dd><p>Those features are in <strong><a href=\"https:\/\/pacificplugins.com\/plugins\/wholesale-customers-for-woo-pro?utm_source=wholesale-customers-for-woo&amp;utm_medium=readme-faq&amp;utm_campaign=upgrade\">Wholesale Customers For Woo Pro<\/a><\/strong>. The free plugin handles the core wholesale pricing experience; Pro adds the full B2B sales layer on top.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20support%3F\"><h3>Where do I get support?<\/h3><\/dt>\n<dd><p>Free support is available via the <a href=\"https:\/\/wordpress.org\/support\/plugin\/wholesale-customers-for-woo\">WordPress.org support forum<\/a>. Pro customers receive support through <a href=\"https:\/\/pacificplugins.com\">Pacific Plugins<\/a>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0 - 2026-04-13<\/h4>\n\n<ul>\n<li>Feature: Added <strong>Wholesale Customers<\/strong> admin page (WooCommerce &gt; Wholesale Customers) \u2014 lists all wholesale users with name, email, username, order count, and assignment date. Supports search, column sorting, and bulk removal of wholesale status.<\/li>\n<li>Feature: Wholesale price is now displayed on single product pages for logged-in wholesale customers (simple and variable products).<\/li>\n<li>Feature: Cart and checkout line items now show a \"Wholesale\" badge when a wholesale discount is applied.<\/li>\n<li>Feature: A \"Wholesale savings\" row in cart and checkout totals displays the total amount saved on the order.<\/li>\n<li>Feature: Wholesale savings notice added to order confirmation emails.<\/li>\n<li>Feature: New setting \u2014 <strong>Apply discount to sale prices<\/strong> \u2014 choose whether the global discount stacks on top of a product's sale price or applies to the regular price only.<\/li>\n<li>Feature: New setting \u2014 <strong>Discount tax base<\/strong> \u2014 apply the global discount to the stored product price or the tax-exclusive price (for stores that enter prices inclusive of tax).<\/li>\n<li>Feature: \"Log in for wholesale pricing\" notice on product pages for guests and non-wholesale customers. Text and link URL configurable in settings.<\/li>\n<li>Feature: \"No wholesale pricing available\" fallback message for wholesale customers viewing products with no configured pricing.<\/li>\n<li>Feature: <strong>Order flagging<\/strong> \u2014 wholesale orders are tagged at checkout for permanent identification. A \"Wholesale Order\" badge appears on the admin order edit screen.<\/li>\n<li>Feature: <strong>My Account wholesale status panel<\/strong> \u2014 customers see a \"Wholesale Account\" section on their dashboard with their status and assignment date.<\/li>\n<li>Feature: <strong>Product CSV import\/export<\/strong> \u2014 <code>wholesale_price<\/code> column supported in WooCommerce's built-in importer and exporter with automatic header mapping.<\/li>\n<li>Feature: <strong>Quick Edit support<\/strong> \u2014 set or clear the wholesale price from the Products list inline Quick Edit panel.<\/li>\n<li>Feature: <strong>Bulk Edit support<\/strong> \u2014 set or remove wholesale prices across multiple products from the Bulk Edit panel.<\/li>\n<li>Feature: <strong><code>[wcs_wholesale_notice]<\/code> shortcode<\/strong> \u2014 place the wholesale CTA notice anywhere on the site. Supports <code>login_text<\/code>, <code>apply_text<\/code>, <code>active_text<\/code>, and <code>url<\/code> attributes.<\/li>\n<li>Feature: <strong>Hide retail price<\/strong> setting \u2014 show wholesale customers their discounted price only, without the regular price alongside it.<\/li>\n<li>Feature: <strong>\"You save\" display<\/strong> on the product page \u2014 exact savings amount and percentage for simple products; maximum savings percentage for variable products.<\/li>\n<li>Feature: <strong>Disable coupons for wholesale customers<\/strong> \u2014 prevents coupon codes from stacking on top of wholesale pricing.<\/li>\n<li>Feature: <strong>Catalog \/ private store mode<\/strong> \u2014 hide prices and Add to Cart from guests only, or from all non-wholesale visitors.<\/li>\n<li>Feature: <strong>Customisable wholesale price label<\/strong> \u2014 replace the default \"Your wholesale price:\" with any text.<\/li>\n<li>Feature: \"Wholesale\" column added to the admin Users list with a dedicated \"Wholesale Customers\" filter view.<\/li>\n<li>Feature: Wholesale customer filter added to the WooCommerce Orders screen (legacy and HPOS).<\/li>\n<li>Feature: WooCommerce REST API extended \u2014 <code>wholesale_customer<\/code> boolean field on <code>\/wc\/v3\/customers<\/code> supports read and write.<\/li>\n<li>Feature: Wholesale Groups placeholder section added to settings with Pro upgrade links for each advanced feature.<\/li>\n<li>Security: Added nonce verification and capability check to the product wholesale price save handler.<\/li>\n<li>Security: All <code>$_POST<\/code> and <code>$_REQUEST<\/code> values are now properly sanitized before use.<\/li>\n<li>Security: Admin output is escaped with <code>esc_html()<\/code> and <code>esc_attr()<\/code> throughout.<\/li>\n<li>Enhancement: Added WooCommerce HPOS (High-Performance Order Storage) compatibility declaration.<\/li>\n<li>Enhancement: Defined plugin constants (<code>WCS_VERSION<\/code>, <code>WCS_PLUGIN_FILE<\/code>, <code>WCS_PLUGIN_DIR<\/code>, <code>WCS_PLUGIN_URL<\/code>).<\/li>\n<li>Enhancement: Added a <strong>Settings<\/strong> shortcut link on the Plugins list page.<\/li>\n<li>Enhancement: Variable products display \"See variations\" in the wholesale price column instead of \"N\/A\".<\/li>\n<li>Enhancement: Wholesale since date is recorded on first assignment and shown on the user profile page.<\/li>\n<li>Enhancement: Settings page reorganised into <strong>Pricing<\/strong>, <strong>Order Restrictions<\/strong>, and <strong>Customer Notices<\/strong> sections.<\/li>\n<li>Enhancement: Developer hooks added \u2014 <code>wcs_is_wholesale_customer<\/code>, <code>wcs_wholesale_price<\/code>, <code>wcs_minimum_cart_amount<\/code>, <code>wcs_wholesale_customer_enabled<\/code>, <code>wcs_wholesale_customer_disabled<\/code>, <code>wcs_after_settings_saved<\/code>, <code>wcs_pro_upgrade_url<\/code>.<\/li>\n<li>Bug Fix: Replaced deprecated <code>global $current_user<\/code> with <code>get_current_user_id()<\/code> throughout.<\/li>\n<li>Bug Fix: Fixed a potential undefined-variable warning in <code>wcs_calculate_variation_range_prices()<\/code> for empty variation sets.<\/li>\n<li>Bug Fix: Removed a redundant <code>WC_Product_Variable<\/code> instantiation.<\/li>\n<li>Bug Fix: Variation wholesale prices are now saved via <code>wc_format_decimal()<\/code> for consistent decimal formatting.<\/li>\n<li>Bug Fix: Corrected the global-discount early-exit condition that was incorrectly combining an <code>empty()<\/code> check with <code>&lt; 1<\/code>.<\/li>\n<li>Tested up to WordPress 6.7 and WooCommerce 9.0.<\/li>\n<li>Updated minimum PHP requirement to 7.4.<\/li>\n<\/ul>\n\n<h4>1.0.6 - 2023-08-14<\/h4>\n\n<ul>\n<li>Tested up to latest WordPress and WooCommerce versions.<\/li>\n<li>Announcement of change of ownership and commitment to ongoing maintenance.<\/li>\n<\/ul>\n\n<h4>1.0.5 - 2020-05-28<\/h4>\n\n<ul>\n<li>Bug Fix: Hide extra column on small screens.<\/li>\n<li>Enhancement: Removed admin notice.<\/li>\n<li>Tested on latest versions of WooCommerce and WordPress.<\/li>\n<\/ul>\n\n<h4>1.0.4.2<\/h4>\n\n<ul>\n<li>Bug Fix: Newsletter opt-in form would not dismiss as expected.<\/li>\n<\/ul>\n\n<h4>1.0.4.1<\/h4>\n\n<ul>\n<li>Bug Fix: If variations had the same price for min and max, display only one price instead of a range.<\/li>\n<li>Enhancement: Subscribe to newsletter prompt.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Enhancement: Translation support via GlotPress.<\/li>\n<li>Bug Fix: Wholesale amounts would round incorrectly.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Bug Fix: General bug fixes.<\/li>\n<li>Enhancement: Wholesale pricing for variable products, including price range display with global discount and individual variation pricing.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Enhancement: Wholesale pricing for simple products.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Feature: Minimum cart total for wholesale customers.<\/li>\n<li>Enhancement: Improved settings page UI and code structure.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"The simplest way to sell wholesale through WooCommerce. Set wholesale prices, manage B2B customers, and control the buying experience.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/74153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=74153"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jarryd-long"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=74153"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=74153"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=74153"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=74153"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=74153"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=74153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}