Every product in WooCommerce is hardwired to a single price. You get one regular price and one sale price per item, with no native way to charge different customers different amounts. This forces store owners to manually adjust prices before each order, send custom invoices, or create duplicate hidden products—workarounds that are inefficient, error-prone, and impossible to scale.
The good news? Custom pricing in WooCommerce is completely achievable. After testing these methods across dozens of real stores, I can show you exactly how to implement them. By the end of this tutorial, you'll have a complete custom pricing strategy that automatically shows the right price to every customer—no manual quotes, no duplicate products, no lost revenue. Whether you're an e-commerce business owner just starting with dynamic pricing or looking to refine your wholesale strategy, this guide covers every approach from beginner-friendly plugins to advanced code snippets.
---

Source: woocommerce.com
Why Standard WooCommerce Pricing Falls Short
Out of the box, WooCommerce treats every visitor as an identical customer. When you open the product editor, the Product data panel shows a single Regular price and a single Sale price field. Those values apply to everyone.
That flat model breaks down in common situations:
- A long-time B2B customer expects net-30 terms and a 20% lower rate than retail.
- A wholesale buyer orders 500 units and deserves a per-unit discount.
- A premium membership tier should unlock exclusive pricing on select products.
- A seasonal promotion needs to apply only to logged-in users, not to the general public.
None of these scenarios can be handled with WooCommerce's default settings. Custom pricing solves this by applying rule-based logic that changes the final amount a customer sees based on conditions you define—user role, quantity ordered, product category, customer group, or time period.
When implemented correctly, WooCommerce calculates the right price in real time. Customers see the discounted amount on the product page, in the cart, and at checkout. They never have to contact you for a revised quote, which saves your team hours of administrative work every week. This dynamic pricing approach also improves customer satisfaction by delivering instant, personalized rates without friction.
---

Source: woocommerce.com
Four Methods Compared: Which Should You Choose?
Before diving into implementation, let's map out your options so you can pick the right path based on your technical comfort, budget, and business model. This WooCommerce custom pricing tutorial covers all four approaches in depth:
| Method | Best For | Technical Skill Required | Cost | Setup Time |
|--------|----------|------------------------|------|------------|
| 1. Role-Based Pricing Plugin | Stores serving multiple customer types (retail + wholesale + members) | Low | $50–$200/year | 1–2 hours |
| 2. Quantity/Tiered Pricing | B2B stores wanting to encourage larger orders | Low | Often included in pricing plugins | 30 minutes |
| 3. Dedicated Wholesale Plugin | Businesses whose core model is B2B wholesale | Low–Moderate | $150–$500/year | 2–4 hours |
| 4. Custom Code Snippets | Developers needing maximum flexibility | High (PHP required) | Free | Variable |
If you're just getting started, begin with Method 1. If wholesale is your entire business, skip ahead to Method 3. Method 4 is only for those comfortable maintaining their own code. Remember, the goal is to find the solution that fits your customer segmentation needs without overcomplicating your store's architecture.
---

Source: wooninjas.com
Method 1: Role-Based Pricing with a Plugin
The fastest and most reliable way to set up custom pricing is role-based pricing. This method charges different amounts depending on the logged-in user's WordPress role. It's the foundation of most customer-specific pricing strategies.
Before You Begin: Create Your Customer Roles
WordPress roles are the foundation of this approach. If you already use a membership plugin like WooCommerce Memberships, your roles may exist. Otherwise, you'll need to create them.
Recommended roles for most stores:
- Wholesale – Your primary B2B customer, typically 20–30% below retail
- Distributor – Higher-volume buyers who move more product, typically 30–40% below retail
- Gold Member – Premium retail customers who pay for exclusive access
You can create these roles using a user-role editor plugin like User Role Editor (free) or Members by MemberPress, or directly within your pricing plugin if it includes role management. Proper user role management ensures your pricing rules apply consistently across your entire customer base.
Step 1: Install a Role-Based Pricing Plugin
Popular options include Advanced Dynamic Pricing for WooCommerce, WooCommerce Role Based Price, and B2BKing. Here's a quick comparison to help you choose:
- Advanced Dynamic Pricing for WooCommerce – The most flexible for complex rules. Supports per-product overrides, global rules, and quantity breaks. Best if you need both role-based AND tiered pricing in one tool.
- WooCommerce Role Based Price – Simpler and lighter. Good for basic per-role pricing without the learning curve of a full dynamic pricing suite.
- B2BKing – Excels at wholesale-specific features like separate catalogs and quick-order forms. Choose this if you're leaning toward Method 3 but want to start with role-based rules.
For this tutorial, choose a plugin that supports both per-product and global rules, because you will need both. These pricing plugins for WooCommerce are designed to handle the heavy lifting of price differentiation automatically.
Step 2: Configure Global Discounts First
Inside your pricing plugin, create a rule that says:
> If user role equals Wholesale, apply a 20% discount to all products in the catalog.
This gives you immediate coverage. Add a second rule for Distributors at 30% and a third for Gold Members at 15%. Most plugins let you toggle whether the discount is a percentage or a fixed amount. This approach to price differentiation ensures no customer falls through the cracks.
Pro tip: Start with global rules before touching individual products. This ensures every item in your catalog is covered immediately, even new products you add later.
Step 3: Override Individual Products When Needed
Not every product should follow the same rule. After your global rules run, open a specific product and assign a custom price for each role. For instance, you might charge wholesalers $34 per unit on a product that retails for $49, even though your global rule would give them $39.20.
Per-product overrides always take precedence over global rules in well-built plugins, giving you surgical control. Use overrides sparingly—they add maintenance overhead—but don't hesitate to use them when margins or competitive positioning require it. This per-product customization is essential for products with unique cost structures or strategic value.
Step 4: Test as Different Users
Switch to the "Wholesale" role using the "Switch User" functionality found in most user-role plugins. Visit your shop and confirm the discounted price appears on the product page and in the cart. Repeat this for every role you created.
What to check during testing:
- Product page displays the correct price
- Cart and checkout recalculate correctly
- Variable products (with size/color options) show role-based pricing on each variation
- Sale prices still work correctly when combined with role discounts
Testing takes ten minutes but prevents embarrassing pricing mistakes later. This quality assurance step is critical for maintaining trust with your customers.
---
Method 2: Quantity-Based and Tiered Pricing
Role-based pricing solves the "who" of custom pricing, but quantity-based pricing rules solve the "how much." Tiered pricing encourages larger orders by lowering the per-unit price automatically as cart quantity increases. This is one of the most effective volume discount strategies for B2B stores.
A typical tier structure looks like this:
| Quantity Ordered | Price Per Unit |
|------------------|----------------|
| 1 – 9 | $50.00 |
| 10 – 49 | $45.00 |
| 50 – 99 | $40.00 |
| 100+ | $35.00 |
How to Configure Tiered Pricing
Open your dynamic pricing plugin and create a new "Bulk quantity" rule. Select the applicable product or category, then specify the quantity ranges and the discount type for each. The plugin handles the rest.
Where to find these settings:
- Advanced Dynamic Pricing: Navigate to Rules → Add New → choose "Bulk quantity" as the rule type
- WooCommerce Role Based Price: Look for the "Tiered Pricing" tab in product settings
- B2BKing: Go to Pricing → Tiered Pricing in the plugin dashboard
These bulk pricing rules are designed to reward your best customers while increasing your average order value.
What Customers Experience
When a customer adds 30 units to their cart, WooCommerce instantly recalculates the line total at $45 per unit. If they later increase the quantity to 60, the price recalculates again to $40 per unit. This real-time feedback is one of the best conversion tools for B2B stores, because buyers immediately see the value of increasing their order size.
Note on cart behavior: Most dynamic pricing plugins recalculate instantly when quantity changes in the cart. However, if you use a caching plugin, prices may appear stale until the cart page refreshes. Test this on your live site to confirm real-time updates work correctly.
Stacking with Role-Based Rules
These quantity discounts can be layered on top of role-based pricing. For example, a wholesale customer could receive their 20% role discount and qualify for a 5% additional discount at 100 units. This multi-rule pricing approach gives you maximum flexibility.
Important: Ensure your plugin supports stacked rules before you rely on this combination. Some plugins apply only the most favorable discount; others can combine them. Check your plugin's documentation or test with a sample order to verify the behavior.
Common Pitfalls to Avoid
- Creating too many tiers – More than 4–5 tiers confuses buyers and complicates maintenance. Keep it simple.
- Setting discounts too aggressive – Calculate your margins before publishing tiers. A 50% discount at 100 units sounds great until you realize you're losing money.
- Forgetting to update tiered pricing when costs change – Review your tiers quarterly or whenever supplier costs shift.
---
Method 3: Wholesale-Specific Pricing Plugins
If your entire business model revolves around B2B sales, a comprehensive wholesale plugin offers more than just price rules. Tools such as Wholesale Suite and B2BKing provide a complete B2B experience that pairs beautifully with custom pricing. These B2B e-commerce solutions are built specifically for wholesale operations.
What These Plugins Add Beyond Pricing Rules
- Separate wholesale catalogs with distinct prices and images, so retail customers never see B2B rates
- Quick-order forms that let buyers paste SKU lists for rapid reordering
- Payment gateways enabled only for wholesale customers, such as net-30 terms or bank transfers
- Shipping methods and tax rules tailored to business buyers
- Email verification for wholesale account approval, so you control who gets access
Getting Started: A Practical Setup Path
Step 1: Install and activate your wholesale plugin. Wholesale Suite and B2BKing both offer free versions to test basic functionality before committing to premium plans.
Step 2: Create your wholesale user role. The plugin will typically create this automatically. Assign existing wholesale customers to this role.
Step 3: Configure your wholesale price levels. Set either percentage discounts off retail or flat per-product wholesale prices. Wholesale Suite lets you set multiple price levels (e.g., Wholesale and Distributor) with different rates.
Step 4: Set up the wholesale experience. Enable the quick-order form, configure payment gateways for wholesale users only, and adjust shipping rules.
Step 5: Test the full checkout flow. Create a test wholesale account and complete an order from start to finish, verifying prices, payment options, and shipping calculations.
Cost Expectations
Wholesale plugins range from free (basic versions) to $200–$500 per year for full-featured plans. Compare this against the hours you currently spend manually adjusting prices or sending custom quotes—most store owners recoup the cost within the first month.
When to Choose This Route Over Methods 1 and 2
Choose a wholesale plugin if you need more than just price changes. If you require separate catalogs, approval workflows, or B2B-specific payment terms, a unified wholesale plugin reduces the risk of conflicting rules and gives you one dashboard to manage. You could technically build the same result with several plugins connected together, but the integrated approach is simpler and more reliable.
---
Method 4: Custom Code Snippets for Developers
For store owners comfortable with PHP, custom pricing can be implemented with a short code snippet. WooCommerce provides filter hooks such as
woocommerce_product_get_price that allow you to modify prices dynamically on the fly. This programmatic pricing approach offers unlimited flexibility for those with coding skills.A Basic Example: Single Role Discount
add_filter( 'woocommerce_product_get_price', 'custom_price_based_on_role', 10, 2 );
function custom_price_based_on_role( $price, $product ) {
if ( is_user_logged_in() && current_user_can( 'wholesale' ) ) {
return round( $price <em> 0.80, 2 );
}
return $price;
}This snippet gives every logged-in wholesale user a 20% discount.
A More Realistic Example: Multiple Roles and Categories
add_filter( 'woocommerce_product_get_price', 'custom_price_based_on_role_and_category', 10, 2 );
function custom_price_based_on_role_and_category( $price, $product ) {
if ( ! is_user_logged_in() ) {
return $price;
}
// Define discount rules: role => [category => discount %]
$rules = array(
'wholesale' => array( 'electronics' => 0.25, 'accessories' => 0.15 ),
'distributor' => array( 'electronics' => 0.35, 'accessories' => 0.25 ),
);
foreach ( $rules as $role => $category_discounts ) {
if ( current_user_can( $role ) ) {
foreach ( $category_discounts as $category => $discount ) {
if ( has_term( $category, 'product_cat', $product->get_id() ) ) {
return round( $price </em> ( 1 - $discount ), 2 );
}
}
}
}
return $price;
}Critical: Don't Forget Variable Products
The hook above only affects simple products. For variable products (products with size, color, or other options), you must also add:
add_filter( 'woocommerce_product_variation_get_price', 'custom_price_based_on_role', 10, 2 );Without this second hook, variable product variations will ignore your custom pricing—a common bug that leads to inconsistent prices across your store.
When to Choose This Path
Only choose this path if you are comfortable with code. Snippets are free and lightweight, but they require technical maintenance. One theme update or plugin conflict can silently break your pricing logic. If you are a business owner rather than a developer, the plugin routes above are safer and easier to audit.
If you do go the code route, store your snippets in a child theme's
functions.php file or a code-snippets plugin so they survive theme updates.---
Best Practices for Implementing Custom Pricing
Whichever method you choose, these practices will keep your pricing structure clean and your customers happy. Following these WooCommerce pricing best practices ensures long-term success:
1. Build on User Roles as Your Foundation
Roles are already part of WordPress core and integrate with virtually every pricing plugin. Even if you're using a membership plugin, ensure each membership level maps to a distinct WordPress role. This gives you maximum flexibility to add or change pricing rules later. Proper customer group management starts with well-defined roles.
2. Document Every Pricing Rule
Keep a spreadsheet that lists every role, discount percentage, quantity tier, and product override. Include the date each rule was created and the business rationale behind it. Your future self—or the new team member who inherits your store—will thank you. This pricing documentation is essential for scaling your operations.
3. Test Comprehensively Before Launch
Test with a fresh account for each role and quantity tier. Verify prices on product pages, in the cart, and at checkout. Test variable products separately from simple products. Never assume a rule works because it looks configured correctly. Thorough pricing validation prevents costly customer-facing errors.
4. Audit Third-Party Plugin Conflicts
Subscription plugins and product add-ons sometimes ignore filtered prices. Check your third-party extensions when pricing behaves unexpectedly. Common culprits include:
- Subscription plugins (which may bypass price filters)
- Product add-on/configuration plugins
- Currency converters
- Caching plugins that serve stale price pages
5. Communicate Value to Customers
If someone sees a different price than a friend, they may feel confused or even cheated. Wholesale plugins solve this by hiding retail pricing from wholesale accounts and vice versa. If you're not using a wholesale plugin, consider adding a note on your pricing page explaining that volume discounts or membership pricing apply automatically. Transparent price communication builds trust.
6. Review Rules Seasonally
Currency fluctuations, new competitors, and supplier cost changes all affect whether your custom tiers still make sense. Schedule a quarterly review of your pricing rules. Ask yourself: Are our margins still healthy at every tier? Are competitors offering better wholesale rates? Have our costs changed enough to require adjustments? Regular pricing audits keep your strategy competitive.
---
Conclusion: Make Pricing a Strategic Advantage
The stores that thrive are those that treat pricing as a strategic tool, not a static field in a database. By implementing custom pricing, you're not just fixing a WooCommerce limitation—you're building a system that rewards loyalty, encourages larger orders, and makes every customer feel like they're getting a fair deal. This strategic pricing approach differentiates your store from competitors who rely on one-size-fits-all rates.
Your action plan:
1. Start with role-based pricing using a trusted plugin like Advanced Dynamic Pricing or B2BKing. Create your wholesale and distributor roles, set global percentage discounts, and test with secondary user accounts.
2. Add tiered quantity discounts to reward larger orders and increase average order value. Keep tiers simple—4–5 levels maximum—and verify real-time cart updates.
3. Upgrade to a dedicated wholesale plugin if B2B is your core focus and you need catalogs, approval workflows, or B2B payment terms.
4. Leave the code-snippet route to developers who can maintain it properly, unless you're confident in your PHP skills and willing to handle updates.
Set up one pricing rule today, test it with a secondary user account, and watch how much time it saves you from the very first order. Your customers will appreciate the instant, personalized pricing, and you will reclaim hours previously lost to quote requests and manual invoice edits. This WooCommerce pricing optimization is one of the highest-ROI changes you can make to your store.
As WooCommerce continues to evolve, expect more built-in flexibility around customer segmentation and dynamic pricing. But don't wait for that future—the tools to implement custom pricing exist today, and the competitive advantage is yours for the taking.
Start small, test thoroughly, and let your pricing work as hard as you do.
---
Ready to take control of your WooCommerce pricing? The strategies outlined above will transform how you do business—but the first step is yours. Whether you're leaning toward a plugin-based approach or exploring custom development, the right solution is within reach. Subscribe Now to get more actionable WooCommerce tutorials delivered straight to your inbox, and join a community of store owners who refuse to settle for one-size-fits-all pricing.
0 comments:
Post a Comment