WP eStore plugin allows you to create products whereby your customers can specify how much they want to pay for the product (pay what you want).
This feature can be helpful for accepting donation amount or selling a product for charity work.
How to Use “Offer Your Price” Feature
- Create a product as you normally do in eStore
- Specify the minimum amount your customers can pay in the “Price” field of the product. Payment Gateways do not allow $0 product checkout so you need to specify a minimum price value of the product.
- Check the “Allow Customers to Specify a Price” checkbox from the “Additional Product Details” section and that should do it.

Allow customers to specify a price
Now, when you put an “Add to Cart” button for this product on a page, it will have a price field next to the button so the customers can specify how much they want to pay for the item.
Using it with a Product Display Template
If you are using a fancy product display template to show the product then it will look like the following:
Customer Specifies a Price Demo
This is a test description. This description is here to show how the description of this product looks like.Price: $2.00
Note:
- The minimum price that you can set for a product can be as low as 0.01 but please keep in mind that the payment gateway (for example PayPal) may not like it as they are not getting any commission from these transactions.
- If you want to offer a product for free then use the squeeze page form option to do so.
Note: We provide technical support for our premium plugins via our customer only support forum
Thanks Ivy,
You Rock
I found it in wp-cart-for-digital-products -> Languages —> eng
Hi Aaron, The following forum post will explain how to do this:
http://www.tipsandtricks-hq.com/forum/topic/how-to-customize-various-textmessages-displayed-by-the-plugin
Thanks for the great plug-ins. I’m just setting up my site with e-store, affiliate and membership.
I am allowing customers to specify a price for digital products, but I would like it to seam like a donation.
How do I change the text “your price” to “Your Donation” ?
Looks like my formatting got screwy above (system removed the divs), so if you enter what it says above, it likely will not show anything as you just the #content, so remove that line and play around with it.
I also had another quick fix that should ideally help someone. I wanted to let people know that the minimum price is donation based (and not to inspire them to donate 0.00), unfortunately if i put ‘Donation’ into the price in the admin, the user gets an error message in his / her cart saying, ‘The Minimum Price you can enter is…’. Not liking that, i modified Wp_eStore1.php at line 420, from:
if($_POST[‘custom_price’] price ){
to:
if($_POST[‘custom_price’] price && $retrieved_product->price !== ‘Donation’ ){
and now I can declare ‘Donation’ in my product details. Thanks again.
Just thought I’d share a solution that may or may not be ‘good’, but not having the skills to sort through all of the code of this plugin (which is great, btw) i created an ‘intercept’ for someone wishing to achieve a download for free on the Specify a Price items.
in function submit_to_paypal (in eStore_payment_submissions.php) i created my price placeholder
$dhr_donation_price = 0.00;
then iterated it
$dhr_donation_price = 0.00;
foreach ($_SESSION[‘eStore_cart’] as $item)
{
//removed for brevity
$dhr_donation_price += $rounded_price;
$count++;
}
then at the end, right before submitPayment, added my intercept and squeeze form on the fly:
if ($dhr_donation_price < 0.01){
echo '#container{display:none;}’;
echo eStore_free_download_form_ajax($item[‘item_number’]);
echo ”;
}else{
// submit the payment!
$myPaypal->submitPayment2(WP_ESTORE_CLICK_HERE);
}
i know it’s not elegant and the squeeze page won’t support multiple products in the cart, but it’s good enough for me for now to give away downloads without making people pay me a penny, and still being able to get that donation if someone wishes, all without multiple instances of the same product. Obviously, if I’m missing an easier solution, let me know, otherwise just wanted to share the above in case it could help someone else.
Thanks