Title: OfferDragon – Price Negotiation for WooCommerce
Author: makeanofferpro
Published: <strong>August 8, 2026</strong>
Last modified: August 8, 2026

---

Search plugins

![](https://ps.w.org/offerdragon-price-negotiation/assets/banner-772x250.png?rev
=3638983)

![](https://ps.w.org/offerdragon-price-negotiation/assets/icon-256x256.png?rev=3638983)

# OfferDragon – Price Negotiation for WooCommerce

 By [makeanofferpro](https://profiles.wordpress.org/makeanofferpro/)

[Download](https://downloads.wordpress.org/plugin/offerdragon-price-negotiation.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/offerdragon-price-negotiation/#description)
 * [Reviews](https://wordpress.org/plugins/offerdragon-price-negotiation/#reviews)
 *  [Installation](https://wordpress.org/plugins/offerdragon-price-negotiation/#installation)
 * [Development](https://wordpress.org/plugins/offerdragon-price-negotiation/#developers)

 [Support](https://wordpress.org/support/plugin/offerdragon-price-negotiation/)

## Description

OfferDragon adds price negotiation (“make an offer”, “name your price”, “best offer”)
to your WooCommerce store, so shoppers can negotiate instead of abandoning your 
product pages. Every offer arrives with the shopper’s card already authorized — 
accept it to get paid instantly, decline to release the hold, or send a counter-
offer.

**How it works**

 1. A “Make an Offer” button is added to your single product pages (on all products,
    or only the ones you choose).
 2. When a shopper clicks it, a modal (served by the Make an Offer app) lets them enter
    the price they are willing to pay along with their contact and shipping details.
 3. The shopper’s card is **authorized via Stripe** at that moment — it is only charged
    if you accept the offer (or the shopper accepts your counter offer) in your Make
    an Offer dashboard.
 4. When an offer is accepted and the card is captured, the Make an Offer service sends
    a cryptographically signed webhook to your site. This plugin verifies the signature
    and creates a **paid WooCommerce order** (status: Processing) at the agreed price,
    with the customer’s details, so your fulfillment and inventory workflows stay entirely
    inside WooCommerce. Stock levels are reduced automatically.

**What this plugin does on your site**

 * Adds a settings page (Settings  Make an Offer) for your App URL, Site Key, and
   Webhook Secret.
 * Adds an “Enable Make an Offer” checkbox to each product’s General settings, plus
   a global “enable on all products” option.
 * Injects the widget script and a hidden offer button on eligible single product
   pages.
 * Registers a REST endpoint (`/wp-json/offerdragon/v1/order`) that receives accepted-
   offer webhooks, verifies their HMAC-SHA256 signature and timestamp, and creates
   the corresponding order idempotently (the same offer is never turned into two
   orders).

**External service disclosure**

This plugin depends on the hosted Make an Offer service (the “App URL” you configure,
e.g. `https://makeanofferpro.com`), a third-party external service. You must create
an account there to obtain a Site Key and Webhook Secret; offer management, counter
offers, and payment processing (via Stripe) all happen on that service, not on your
WordPress site.

Data flow:

 * Your visitors’ browsers load the widget script (`offer.js`) directly from the
   App URL you configure. When a visitor opens the offer modal and submits an offer,
   their browser sends the offer details — product ID, product name, product price,
   product URL and image URL (provided by this plugin as button attributes), plus
   the name, email, shipping address, offer amount, and payment card details they
   type in — directly to the Make an Offer service and to Stripe (for card authorization).
   This happens from the visitor’s browser; this plugin’s PHP code makes **no** 
   outbound requests to any external service.
 * The Make an Offer service sends signed webhooks **to** your site when offers 
   are accepted, containing the offer and customer details needed to create the 
   order.

Please review the terms of service and privacy policy of the Make an Offer service
you connect to, and of Stripe (https://stripe.com/privacy), and disclose this data
flow in your own privacy policy as required.

This plugin requires WooCommerce and is compatible with WooCommerce High-Performance
Order Storage (HPOS).

## Installation

 1. Install and activate WooCommerce (required).
 2. Upload the `offerdragon-price-negotiation` folder to `/wp-content/plugins/`, or
    install via Plugins  Add New, then activate the plugin.
 3. Sign up at your Make an Offer app and copy your Site Key (`mao_pk_...`) and Webhook
    Secret (`mao_whsec_...`) from its dashboard.
 4. Go to **Settings  Make an Offer** in WordPress, enter the App URL, Site Key, and
    Webhook Secret, and choose where the button appears.
 5. Copy the **webhook callback URL** shown at the bottom of the settings page (`https://
    your-site.com/wp-json/offerdragon/v1/order`) and paste it into your Make an Offer
    dashboard’s webhook settings.
 6. Enable the button on all products, or edit individual products and tick “Enable
    Make an Offer” in the General settings tab.

## FAQ

### Where do I get a site key?

Sign up at the Make an Offer app (the App URL configured in the plugin settings,
e.g. `https://makeanofferpro.com`). Your Site Key and Webhook Secret are shown in
that dashboard’s settings after you register your store.

### Why isn’t the button showing on my product pages?

Check that (1) an App URL and Site Key are saved in Settings  Make an Offer, and(
2) either “Enable on all products” is checked or the specific product has “Enable
Make an Offer” ticked in its General settings. The button is rendered hidden and
only revealed once the widget script loads its configuration, so an unreachable 
App URL or invalid Site Key will also keep it hidden.

### When is the shopper’s card charged?

Never at submission time. The card is only authorized when the offer is made. It
is charged (captured) by the Make an Offer service via Stripe when you accept the
offer — or when the shopper accepts your counter offer — and only then is the WooCommerce
order created.

### Are orders taxed or is shipping added?

The order is created at exactly the amount charged to the customer’s card by the
Make an Offer service. The plugin does not recalculate taxes or add shipping charges
on top; the agreed price is treated as the final total. If you need tax breakdowns,
handle pricing accordingly when accepting offers.

### What happens with variable products?

The button is shown with the product’s minimum variation price as the reference 
price. The accepted-offer order line references the parent product.

### Is the webhook endpoint secure?

Yes. Every webhook must carry an `X-MAO-Signature` header containing a timestamp
and an HMAC-SHA256 signature computed with your Webhook Secret. Requests with a 
missing or invalid signature, or a timestamp more than 5 minutes old, are rejected
with a 401. Duplicate deliveries of the same offer are detected and never create
a second order.

### Does this plugin work with HPOS (High-Performance Order Storage)?

Yes, compatibility is declared and only CRUD APIs are used for orders.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“OfferDragon – Price Negotiation for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ makeanofferpro ](https://profiles.wordpress.org/makeanofferpro/)

[Translate “OfferDragon – Price Negotiation for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/offerdragon-price-negotiation)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/offerdragon-price-negotiation/),
check out the [SVN repository](https://plugins.svn.wordpress.org/offerdragon-price-negotiation/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/offerdragon-price-negotiation/)
by [RSS](https://plugins.trac.wordpress.org/log/offerdragon-price-negotiation/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release.
 * Settings page with App URL, Site Key, Webhook Secret, global enable, and button
   position.
 * Per-product “Enable Make an Offer” toggle.
 * Widget script injection and offer button on single product pages.
 * Signed webhook receiver that creates paid WooCommerce orders (with idempotency
   and stock reduction).
 * WooCommerce HPOS compatibility.

## Meta

 *  Version **1.0.0**
 *  Last updated **4 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [make an offer](https://wordpress.org/plugins/tags/make-an-offer/)[name your price](https://wordpress.org/plugins/tags/name-your-price/)
   [price negotiation](https://wordpress.org/plugins/tags/price-negotiation/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/offerdragon-price-negotiation/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/offerdragon-price-negotiation/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/offerdragon-price-negotiation/reviews/)

## Contributors

 *   [ makeanofferpro ](https://profiles.wordpress.org/makeanofferpro/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/offerdragon-price-negotiation/)