How to create a “name your price” product in WooCommerce

Debit card holder

A “name your price” product in WooCommerce allows your customers to choose the price they want to pay for your product. It may seem weird, but a Name Your Own Price (NYOP) strategy actually has a few advantages to help your store grow in the long run. In fact, it is used more than you think!

In this article, we’ll go over a few popular examples of “pay what you want” products and explain how you can build your own in WooCommerce with our step-by-step tutorials.

Reasons to create a “name your price” product in WooCommerce

It seems counter intuitive to let customers choose their own price for your products. Wouldn’t they just pick the cheapest price? The answer is probably “yes”. But you’re thinking about this the wrong way. You can do so much more with a “name your price” or “pay what you want” tactic.

Let’s go over a few popular examples below!

Accept donations using WooCommerce

Accept donations with WooCommerce

Accepting donations is probably the most popular “name your price” implementation. You can use a plugin like GiveWP to implement donations & fundraising campaigns into your WordPress website. However, the plugin is a bit too expensive and bloated if you’re just looking for a simple way to accept donations.

Instead, you can use WooCommerce to do it! You can add a “name your price” field, which allows users to input the amount they’re willing to pay. The final product price will change depending on what the user entered in the field.

Optionally, you can set a required minimum to make sure users don’t donate below the amount you have to pay in credit card processing fees.

Create a billing/invoicing tool with WooCommerce

WooCommerce is typically used to sell physical goods. But what if you’re selling services by the hour instead? Even consultants, writers, or other freelancers can use WooCommerce to get paid. With a bit of extra work, you can easily accept custom invoice/billing payments from your clients and enjoy the full range of WooCommerce features, such as reporting, out-of-the-box.

Find out what your product is worth

This is an uncommon example, but the “pay what you want” tactic can also be used to A/B test your product pricing.

Let’s say you just launched a new line of your product but you’re unsure what the audience is willing to pay for it. Or perhaps you’d like to increase your product price but you’re not sure with how much?

Run a “pay what you want” campaign for a short while to find out! You can use this tactic to find out how users perceive your product, and how valuable it is to them.

Just like with donations, you’d want to set a minimum required price, so you’re not losing money.

Offer a gift cards

Gift cards with WooCommerce

Another popular example of “pay what you want” products are gift cards. During the holidays, many popular businesses, such as Netflix and Amazon, offer gift cards to increase their profit margins.

With good reason! Because according to research presented by Incomm, gift cards are getting more popular every year. Even during the pandemic, there was an increase in gift card sales. It’s the perfect product to expand your offering without requiring much work from you.

Sure, most companies offering a gift card don’t use a free input field where customers can enter any amount they want. Mostly, they’ll work with predefined amounts, such as 20, 50, or 100. Regardless of how they do it, it’s still a great example of a “name your price” product since the customer decides how much they are willing to pay.

As with all other products in this list, WooCommerce is a great tool to offer gift card products too.

Add a tip option to your product

Times are tough now. The world is recovering from the largest pandemic in recent history and global prices for gas, food, and electricity are rising. Needless to say, small businesses feel there’s an economic downturn coming. This is the ideal time to try and increase your Average Order Value (AOV) by implementing a tipping option.

Similar to asking for donations, you can include a box on the product page for tips. Alternatively, you can present the user with some tipping options so you eliminate the guesswork for them. They can choose between “no tip”, a $0.50 tip, or a $1 tip.

As an example, this tactic works especially well for online delivery services where the customer can add a tip for the driver.

Creating a “name your price” product in WooCommerce

In this tutorial, we’ll go over how you can create the “name your price” products we talked about at the beginning of this article. They are all different products, but share some common features:

  • A “name your price” product has an input field where the customer can define their own price for your product.
  • Alternatively, the product can have “price swatches”, which are clickable buttons (predefined options by you) with a suggested price. This helps the user make a quick decision.
  • You can set a required minimum price so the user can’t buy your product for less than a certain amount.
  • You can also set an allowed maximum price if you wish.

Some products will require additional features, such as conditional logic to bring up the custom pricing box only when a certain option was selected.

For the purpose of this guide, we assume you have WooCommerce up & running on your site.

In this tutorial, you’ll learn how to create variations of a “name your price” product in WooCommerce:

Before we begin: use a Name Your Price plugin

WooCommerce is a powerful e-commerce solution for your WordPress site, but it can’t do everything out-of-the-box. To implement a “name your price” (also referred to as “pay what you want”) strategy, we’ll use the Advanced Product Fields (APF) plugin, which works flawlessly with WooCommerce.

It’s a powerful plugin that allows you to add input fields on WooCommerce product pages and influence the final product price. In short, it allows you to create donation products, gift cards, collect invoice payments, and so much more!

Advanced Product Fields WooCommerce
Advanced Product Fields for WooCommerce

The fastest way to create 'name your price' products in WooCommerce

Find out more

Install Advanced Product Fields (APF) for WooCommerce

First, get the Advanced Product Fields for WooCommerce plugin. We’ll use this plugin to add extra options to our WooCommerce products. There are a 16 different input types to choose from so you can build your donation forms, free price fields, etc… without a hassle.

When you’ve downloaded the plugin, go to your WordPress admin dashboard and navigate to Plugins → Add New and install the ZIP file.

Once you’ve installed and activated the plugin, head over to WooCommerce → Settings → Product Fields from the admin panel to activate the license key.

Input the APF license key after installation

The plugin is now installed, so let’s move on to creating the WooCommerce product.

Create a WooCommerce product

In your WordPress dashboard, navigate to Products → Add New to create a new product. Enter the usual required data: a product title, description, and a product image.

In the General tab, set the Regular Price to zero (“0”) and enable the Hide Price setting.

Hide the price label in WooCommerce

WooCommerce requires a price but since you’ll let the customer decide on the price they want to pay, you have to set the regular price to zero. Enabling the Hide Price setting makes sure the product page doesn’t show the “zero” price label. Otherwise, it looks like it is a free product, which could confuse your customer.

You’re ready with the basics! You can create the actual product now. Use the sections below to create your desired product.

How to create a billing/invoicing product in WooCommerce

As mentioned before in this article, WooCommerce is typically used to sell physical products (which require shipping, etc…) but you can just as easily use it to sell services. You can use a WooCommerce product to accept custom invoice payments.

Here’s why using WooCommerce to accept custom billing/invoice payments is a good idea: you can make use of all features that come with Woo out-of-the-box. This means you can run reports on the profits you made, or you can download other plugins to take care of automatic invoicing, etc…

Specifically, this is what we’r be making:

An invoice or billing product in WooCommerce

Step 1: add a number field for the invoice amount

Edit your product and find the Custom fields tab. Click on Add your first field.

Add your first custom field in advanced product fields for woocommerce

In the new section, you can change all settings corresponding to your input field. Let’s change these settings:

  • Set the first setting, called Type, to Number. This tells the APF plugin to add a number input field to your product page.
  • Set the Label to “Pay invoice amount”. The label will appear above the input field, giving your users some context.
  • Add Instructions: “Enter the amount to pay, as found on your invoice”. This gives your users further instructions.
  • Turn on the Required setting, making sure this field can not be empty.
  • You can enter a Minimum required. For example, if your hourly rate is $50, and you know you’ll always bill 1 hour at minimum, you can enter “50” as the minimum required. This ensures users can’t enter a lower amount.
  • Enable Pricing and select Amount × field value.
  • As Amount, enter “1”.

When you are finished, your settings should look like this:

Pay your invoice number field in APF

Step 2: add a text field for the invoice number

Receiving the invoice amount is the most important part, but it would be great if you can see the invoice number so you know which invoice is being paid. Let’s add a text field so your customers can let you know which invoice number they’re paying.

In the same tab as before, click Add a Field and use these settings:

  • The field Type is Text.
  • Set the Label setting to “Invoice number”.
  • Add an optional Description and Placeholder value to make it easier for your customers.

Your product set up is now complete!

Bonus 2: pre-fill the invoice amount through the URL

Wouldn’t it be great if you can send an URL to your customer and it pre-fills the amount and invoice number for them? An example of such a URL is The system would pre-fill the input fields with the correct invoice number and amount. This approach eliminates any human errors your customer might make and you get paid faster!

The Advanced Product Fields plugin comes with a few add-ons that allow you to make WooCommerce even more powerful. The Pre-fill URL add-on does exactly what we want to achieve.

After installing the add-on, go back to your field settings and you’ll notice a new setting named Key. Use this setting to denote what URL key this field should listen for.

The Key setting in APF for WooCommerce

In our example, we’ll have an “amount” key and an “invoice” key, meaning you can append information to URLs like amount=500&invoice=INV-1003. The result would look like this:

Pre-fill product options via the URL in WooCommerce

Taking it a little further, you can even hide the fields with CSS code so the user only sees the grand total and a “Pay now” button.

Bonus 2: skip adding to cart and go straight to checkout

By default, each WooCommerce product page comes with an Add to Cart button. In our use case, we don’t want to add the product to cart. Instead we want to pay. You can add the code snippet below to your website to change the “Add to cart” text to “Pay Now” and redirect immediately to the checkout.

Just make sure to change the two occurrences of 414 to match your WooCommerce product ID. Find out here how to find your product ID in WooCommerce.

add_filter( 'woocommerce_product_single_add_to_cart_text', function($text, $product) {
    if($product->get_id() === 414) return 'Pay Now';
    return $text;
}, 10, 2);

add_filter( 'woocommerce_add_to_cart_redirect', function( $url, $adding_to_cart) {
	$product_id = absint( wp_unslash( $_REQUEST['add-to-cart'] ) ); 
	if(! $product_id || ! $adding_to_cart) return $url;
	if($product_id === 414) return wc_get_checkout_url();
	return $url;
}, 10, 2);Code language: PHP (php)

This code snippet further improves the payment funnel and improves your checkout process.

How to create a donation product in WooCommerce

There are many reasons why you might want a donation product in your WooCommerce store. For example, your company is a charity or non-profit and they are already using WooCommerce to sell branded t-shirts to raise awareness. As opposed to using yet another plugin to handle donations, you could easily use WooCommerce and Advanced Product Fields to create a donation page (product).

We’ll create a donation product where the user can specify the amount they would like to donate, as well as add an optional message. Here’s what we’ll be making:

A donation product in WooCommerce

Step 1: add a number field for the donation amount

Start from the base product we created earlier in this guide, and find the Custom fields tab. Click on Add your first field.

In the section which just appeared, you can change all settings corresponding to your input field. Let’s change these settings:

  • Set the first setting, called Type, to Number as we want the customer to enter a number.
  • Set the Label to “Donation amount”. The label will appear above the input field.
  • Add Instructions: “Enter the amount you’d like to donate”. This gives your users further instructions to avoid confusion.
  • Turn on the Required setting, making sure this field can not be empty.
  • You can enter a Minimum required. For example, $2.
  • Enable Pricing and select Amount × field value.
  • Set Amount to “1”.
Donation field settings in Advanced Product Fields

Step 2: add the message field

Let’s give users the opportunity to leave a message when they are donating. In the same tab as before, click Add a Field and use these settings:

  • The field Type is Text Area.
  • Set the Label setting to “Your message”.
  • Add an optional Description and Placeholder value to make it easier for your users.

Your product set up is now complete!

Bonus 1: change the “add to cart” button to “donate”

Changing the “Add to cart” text can easily be achieved by adding the code snippet below to your website:

add_filter( 'woocommerce_product_single_add_to_cart_text', function($text, $product) {
    if($product->get_id() === 427) return 'Donate';
    return $text;
}, 10, 2);Code language: PHP (php)

Change 427 in the snippet above to match your product’s ID.

Bonus 2: hide the WooCommerce quantity input box

A default WooCommerce product comes with a quantity input box where your customers can select how much items they’d like to buy. Since our WooCommerce product is meant as a donation page, we don’t need the quantity input. Luckily, we can easily hide it with some CSS code. Go to Appearance → Customize → Additional CSS and add the following line of code:

#product-427 .quantity{ display: none; }Code language: CSS (css)

Just like with the previous code snippet, change the occurrence of 427 to your own product’s ID.

Accepting extra tips on your WooCommerce products

Similar to asking for donations, you can include a box on the product page for tips. This works well for delivery services where you can tip your driver. In this example, we’ll create a flower product which is delivered to the customer. We’ll add predefined choices to tip the driver.

Product with tipping options in WooCommerce

Step 1: create the product

Earlier in this article, we told you to create a product and set the normal price to zero. For this product, the setup is a little different since we’re adding a tip to an existing product. So make sure you create a product that has a base price. In our case, we created a simple flower product, gave it a title & a price, and used Advanced Product Fields to add a date field for the delivery date.

Step 2: create the tipping amount options

We’ll create clickable swatches so the customer can easily choose how much they want to tip the driver.

In the Custom fields section, click Add a Field to create a new field. Use these settings:

  • Set the Type to Text Swatches.
  • As Label, set “Tip the driver”.
  • Optionally, add an additional description in the Instructions setting.
  • Scroll down until you find the Options section and click Add Option. This is where you define each clickable swatch. We’re adding 4 tipping options: no tip, 0.5, 1, and 1.5.
    • Enter the Text to appear on the swatch, for example “$1.50”.
    • Set Adjust pricing to Flat fee and enter the correct flat fee in the input box below.

This is what your the swatch options should look like:

Add options to text swatches WooCommerce

That’s it! You can now accept tips through your WooCommerce products!

Bonus: adding conditional logic to your extra product options

It’s always a good idea to keep your product forms as simple as possible. If you overwhelm your customers with choices, they may not complete their purchase. That’s why it’s a good idea to hide the tipping options behind a checkbox. The options only appear when the customer selects “Yes, I’d like to tip the driver”.

Luckily, Advanced Product Fields for WooCommerce supports conditional logic, which allows you to show or hide fields based on the values of other fields. That’s perfect for our scenario!

Ideas for using Name Your Price products in WooCommerce

It’s no secret that Pay What You Want / Name Your Price doesn’t always work. We’ve seen some great product types, but what about some other successful sale tactics where Name Your Price can be used?

  • Last-minute sales to fill up capacity: if you’re selling theater tickets, you can hold a unique sale to fill empty seats at the last minute. Allow customers to decide what they want to pay. This creates a win-win because the theater performs anyway, even if half of the seats are empty. This way, they get some extra profit.
  • Clearance: do you need to get rid of a lot of products at once and don’t have time to hold a regular clearance sale with discounts? Try a Pay-What-You-Want sale!
  • Giving earnings to charity: In a 2010 paper in Science, a team of researchers conducted an experiment selling photos after a roller-coaster ride. Some customers were told half the money collected would go to charity, others were told nothing. Without the charity explanation, customers only paid $.92. The other group paid $5.33. While we do not condone lying, this proves customers are likely to pay a little extra to donate to a charity.


It’s easy to think about a “name your price” strategy as a bad idea and will only allow customers to undervalue your products. However, as we’ve discussed in this guide, there are plenty of product types where “name your price” or “pay what you want” tactics are useful. The most common products are donations or gift certificates, which can be perfectly built with the help of WooCommerce.

If you set up your products in a way that the user can not pay less than your profit margin, then there are some great “name your price” products you can add to your store. Using Advanced Product Fields for WooCommerce, it’s easy to create such type of products in WooCommerce.

Advanced Product Fields WooCommerce
Advanced Product Fields for WooCommerce

The easiest way to create gift cards, donations, or billing products in WooCommerce

Find out more

If you have any other ideas for “name your price” products in WooCommerce, or you would like us to build a product demo, let us know in the comment section below this tutorial.