WooCommerce Offer Pricing Pro — Documentation
Premium Plugin

WooCommerce Offer Pricing Pro

A complete "Make an Offer" negotiation system for WooCommerce — featuring a full admin dashboard, counter-offers, auto-accept rules, 6 UI themes, analytics, and enterprise-grade security out of the box.

Version 1.0.0 — May 2026
WooCommerce 7.0+ / WC 10 tested
PHP 8.1+ · WordPress 6.0+
HPOS Compatible

Overview

WooCommerce Offer Pricing Pro adds a fully functional price-negotiation channel to your WooCommerce store. Customers can propose their own price on any product; you review every offer in a dedicated back-office, then accept, reject, or make a counter-offer. Both the standard Add to Cart button and the Make an Offer form are displayed side by side — customers choose the purchase path that suits them without any friction.

The plugin is designed for merchants who deal in high-value, limited, or negotiable inventory — wholesale goods, refurbished electronics, art, B2B pricing, estate sales, and similar verticals where a fixed price is not always the right conversation-starter.

Key features

Make an Offer form

AJAX-powered form on every product page. Supports simple and variable products, with per-variation min/max bounds.

Admin offer dashboard

Status-tabbed list, full detail view, single-click Accept / Reject / Counter, bulk actions, and CSV export.

Counter-offers

Propose a price back to the customer. They accept via a secure signed link in their email or My Account page.

Auto-accept threshold

Automatically accept any offer at or above a configurable percentage of the listed price — zero admin time required.

Analytics

KPI tiles, conversion rate, average offer %, top products, daily trend chart, and CSV export — all in one page.

6 frontend themes

Inherit · Light · Dark · Professional · Art Floral · Custom. All CSS-variable driven; fully customisable palette via color picker.

Security-first

HMAC-signed action tokens, nonce verification, rate limiting, capability checks, and CSV-injection mitigation.

Customer My Account

Dedicated "My Offers" tab shows all offer statuses. One-click Add to Cart at the accepted price for any approved offer.

Requirements

Component Minimum Recommended
WordPress6.0Latest stable (6.9+)
WooCommerce7.0Latest stable (tested through 10.0)
PHP8.18.2 or 8.3
MySQL / MariaDB5.7 / 10.38.0 / 10.6
Browser (admin)Chrome, Firefox, Edge, Safari (last 2 versions)
HPOSOptionalFully compatible (custom_order_tables declared)
WooCommerce must be installed and active before you activate this plugin. If WooCommerce is absent, the plugin's admin pages fall back to a reduced mode — the License page remains accessible under Settings → Offer Pricing Pro so you can activate your key while WooCommerce is being set up.

Installation

There are two equivalent installation methods. Choose whichever fits your workflow.

Method A — Upload via WordPress Admin (recommended)

1

Navigate to Plugins → Add New → Upload Plugin

In your WordPress admin sidebar, go to Plugins → Add New, then click the Upload Plugin button at the top of the page.

2

Select the ZIP file

Click Choose File and select woocommerce-offer-pricing-pro-1_0_0.zip from your computer, then click Install Now.

3

Activate the plugin

After installation completes, click Activate Plugin. A 14-day trial starts automatically — all features are immediately available.

4

Enter your license key

Go to Offer Pricing → License in the sidebar and paste the key you received after purchase. Click Activate.

5

Configure the plugin

Go to Offer Pricing → Settings to set global defaults, then enable the offer form on individual products as described in the Per-Product Setup section.

Method B — Manual FTP / SFTP upload

  1. Unzip woocommerce-offer-pricing-pro-1_0_0.zip on your computer.
  2. Upload the resulting folder woocommerce-offer-pricing-pro/ to /wp-content/plugins/ on your server.
  3. In WordPress Admin, go to Plugins and activate WooCommerce Offer Pricing Pro.
  4. Continue from Step 4 above (license activation).
On activation the plugin creates a single dedicated database table (wp_wop_offers) and registers a daily cron job to expire pending offers. No changes are made to any existing WooCommerce table.

License & Trial

WooCommerce Offer Pricing Pro is a commercial plugin sold by XaniaCode. A license key is required for continued use after the trial period. You can purchase a license on the product page.

14-Day Trial

  • Starts automatically on first activation
  • Full feature access — no limitations
  • No payment required to start
  • After expiry: form submissions disabled; stored data and admin remain accessible

Licensed

  • Unlimited offer submissions
  • Automatic plugin updates from xaniacode.com
  • Priority support from XaniaCode
  • License key stored encrypted on your server

Activating your license

1

Open the License page

In the WordPress admin sidebar, go to Offer Pricing → License. If WooCommerce is not yet active, the page is available at Settings → Offer Pricing Pro.

2

Paste your key and activate

Paste the license key you received after purchase into the field and click Activate. The plugin verifies the key with xaniacode.com and unlocks all features.

3

Confirmation

A green confirmation notice appears on success. The License page now shows your active license status and expiry date.

Your license key is stored encrypted on your server. Do not share it. For questions about billing, key transfers, or multi-site licensing, contact xaniacode.com.

General Settings

Navigate to Offer Pricing → Settings to configure the plugin. Settings are grouped into sections described below.

General

OptionTypeDescription
Enable offer system Checkbox Master switch. Uncheck to disable the offer form site-wide without deactivating the plugin.
Allow guest offers Checkbox When enabled, visitors without an account can submit offers. When disabled, only logged-in customers may do so — a login prompt is shown in place of the form.
Offer expiry (days) Number Pending offers are automatically expired after this many days. Set to 0 to disable expiry entirely.
Global minimum offer (%) Number (0–100) Rejects any offer below this percentage of the listed price, store-wide. Per-product minimums take precedence when set. 0 disables the global floor.
Auto-accept threshold (%) Number (0–100) Offers at or above this percentage of the listed price are accepted automatically, without admin review. 0 disables auto-accept.
"Make an Offer" button text Text Customise the label on the offer toggle button shown on product pages.
Submission success message Textarea Message displayed to the customer immediately after a successful offer submission.
Terms & conditions label Text Optional. Displays a required checkbox on the offer form linking to your Terms URL. Leave blank to hide the checkbox.
Terms & conditions URL URL Target URL for the Terms checkbox link above.

Security & Limits

OptionTypeDescription
Max offers per customer per product Number Limits how many active (non-rejected, non-expired) offers a single customer can hold on the same product. 0 = unlimited.
Rate limit: max submissions Number Maximum number of offer submissions allowed per user (or IP for guests) within the time window below. 0 disables rate limiting.
Rate limit: window (seconds) Number The rolling time window for rate limiting. Default is 3600 (1 hour). Minimum is 60 seconds.
The plugin uses trusted-proxy-aware IP resolution — forwarded headers are only consulted when the connecting address is a private/reserved range, preventing IP spoofing on standard hosting setups.

Appearance & Themes

The plugin ships with 6 ready-made frontend themes for the offer form and the My Account tab. All themes use CSS custom properties, so they adapt cleanly to your store's font sizing.

INHERIT
Inherit Adapts to your active theme. Zero visual footprint — uses your theme's own CSS variables.
Light Clean white cards, soft shadows, purple accent. Best for light-background stores.
Dark Deep navy/purple backdrop, luminous accents. Best for dark-mode or bold brands.
Professional Corporate B2B — sharp edges, serif type, deep navy accent. High-value markets.
Art Floral Botanical — warm ivory, dusty rose accent, soft serif voice, rounded edges.
Custom Pick your own palette using the built-in WordPress color picker.

Custom theme colors

When the Custom theme is selected, a second settings section appears where you can pick individual colors using the WordPress color picker (Iris). The available fields are:

FieldDefaultPurpose
Background#ffffffForm card background
Secondary background#f7f6fbSoft surface used inside the form
Border#e2dff0Card and input borders
Accent#7f54b3Primary action color — button, focus ring, links
Text#1a1a2ePrimary body text
Muted text#6b6880Secondary text, hints, helper labels
Hover states and accent text contrast are automatically derived from the chosen accent color using a luminance-based algorithm — you do not need to manually set all states.

Email Notifications

OptionDescription
Admin notification email One or more email addresses (comma-separated) that receive admin notifications. Defaults to the WordPress admin email if left blank.
Notify admin on new offer Send an email to the admin address(es) whenever a customer submits a new offer.
Notify customer on status change Send an email to the customer when their offer is accepted, rejected, or countered. The counter-offer email includes a secure one-click link to accept the counter.

Email triggers summary

EventRecipientControlled by
New offer submittedAdminNotify admin on new offer
Offer acceptedCustomerNotify customer on status change
Offer rejectedCustomerNotify customer on status change
Counter-offer proposedCustomerNotify customer on status change
Counter-offer accepted by customerAdminAlways sent (fixed)
All customer-facing action links (accept counter, add accepted offer to cart) are secured with HMAC-SHA256 tokens scoped to the specific offer, user, action, and expiry time. Tokens are server-side verified and cannot be reused across users.

Per-Product Setup

The offer form is opt-in on a product-by-product basis. Follow these steps for each product where you want to enable price negotiation.

1

Open the product editor

Go to Products → All Products and click Edit on the product you want to configure.

2

Find the Offer Pricing section

Scroll down to the Product Data meta box and click the Offer Pricing tab in the left column (it appears below the standard pricing tabs).

3

Enable Make an Offer

Tick the Enable "Make an Offer" checkbox. The form will become visible on the product's front-end page immediately after saving.

4

Set optional per-product bounds

Optionally fill in the Minimum offer price and/or Maximum offer price fields (absolute values in your store currency). These override the global percentage minimum for this product.

5

Variable products — per-variation bounds

For variable products, open each variation in the Variations tab. Each variation has its own Min offer and Max offer fields. The offer form updates live when the customer switches variations on the front end.

6

Save the product

Click Update (or Publish). The Make an Offer button appears below the standard Add to Cart row on the product page.

The standard WooCommerce Add to Cart button is always preserved. The offer form appears below it as a secondary option — customers see both paths side by side and choose freely. Minimum and maximum bounds are enforced server-side; the exact thresholds are never exposed to the customer.

Managing Offers

Go to Offer Pricing → Offers to access the full offer dashboard.

Offers list

The list is divided into status tabs at the top: Pending Accepted Rejected Countered Expired Converted. Each row shows the customer name, product, offered price, original price, offer percentage, date, and available actions.

Single offer actions

ActionResult
ViewOpens the full offer detail page with all data and action buttons.
AcceptStatus → Accepted. Customer is notified by email with a one-click Add-to-Cart link at the negotiated price.
RejectStatus → Rejected. Customer is notified by email.
CounterOpens a form to enter your counter-price. Status → Countered. Customer receives an email with a secure accept link.

Bulk actions

Tick the checkboxes on any number of offers, then choose Bulk Accept or Bulk Reject from the bulk action dropdown and click Apply. All selected offers are processed in one step and corresponding email notifications are sent.

CSV export

Use the Export CSV button on any filtered view of the offers list to download the visible rows as a spreadsheet-compatible CSV file. The export includes all key fields and is safe against CSV injection (leading special characters are prefixed automatically).

Counter-Offers

The counter-offer flow lets you propose a price back to the customer instead of outright accepting or rejecting their offer. It is the central negotiation feature of the plugin.

1

Admin: propose a counter price

In the offer detail view, click Counter and enter your counter-price. Click Send Counter-Offer to update the offer status to Countered.

2

Customer: receives email notification

The customer gets an email stating the counter-price, containing a secure, signed one-click link. The link is valid for a configurable period (tied to offer expiry) and is scoped specifically to that customer and offer.

3

Customer: accepts via email or My Account

Clicking the link in the email or using the My Offers tab in My Account transitions the offer to Accepted and adds the product to the cart at the counter price automatically.

4

Admin: notified of acceptance

Once the customer accepts the counter, the admin receives an automatic notification email confirming that the counter was accepted.

All customer action links use HMAC-SHA256 tokens. A logged-in customer cannot redeem another customer's offer link — server-side ownership is verified on every action.

Analytics

The Offer Pricing → Analytics page gives you an at-a-glance view of how price negotiation is performing across your store.

KPI tiles

Total offers received, accepted, conversion rate, and average offer percentage vs. listed price — for the last 30 days by default.

Status breakdown

Counts by status (pending, accepted, rejected, countered, expired, converted) for the selected period.

Top products

A ranked list of the products that attract the most offers, including their individual conversion rates.

Daily trend chart

A line chart of offer volume day-by-day across the selected date range, useful for spotting campaign peaks or seasonality.

Dashboard widget

A WordPress Dashboard widget (visible on the main Dashboard page) shows the 30-day KPIs summary and a direct link to pending offers requiring review — useful for quick daily check-ins without navigating to the full Analytics page.

CSV export

Both the Analytics page and the Offers list provide a Export CSV button. Use it to pull data into Excel, Google Sheets, or your reporting tool of choice for deeper analysis.

Customer My Account

Logged-in customers have a dedicated My Offers tab inside the standard WooCommerce My Account area (/my-account/). No shortcodes or template edits are needed — the tab is registered automatically.

What customers see

StatusCustomer action available
PendingView details. No action until admin reviews.
AcceptedAdd to Cart at offer price — one-click button adds the product at the negotiated price directly to cart.
CounteredAccept Counter-Offer — one-click button or use the secure email link.
RejectedView details. No further action.
ExpiredView details. Offer has passed its expiry date.
ConvertedOffer was accepted and added to cart. Order may have been placed.
Guest customers who submit offers (if guest offers are enabled) can still access their offer status via the signed links in their notification emails. They are prompted to create an account or log in when clicking to add an accepted offer to cart.

Offer Statuses

StatusMeaningNext possible states
Pending Newly submitted offer awaiting admin review. Accepted, Rejected, Countered, Expired
Accepted Admin accepted the offer. Customer can add to cart at the offer price. Converted (when added to cart)
Rejected Admin declined the offer. Terminal state.
Countered Admin proposed a counter-price. Awaiting customer decision. Accepted (customer accepts counter), Expired
Expired Offer exceeded its expiry date without resolution. Terminal state.
Converted Accepted offer was added to the cart at the negotiated price. Terminal state.

Uninstall & Data

By default, your offer data is preserved when the plugin is deleted. The database table wp_wop_offers and all settings remain in place, so a reinstall immediately restores full functionality.

Permanent data removal is irreversible. If you want a full clean-up, enable the Delete data on uninstall option under Offer Pricing → Settings → Uninstall before deleting the plugin. This will remove the offers table, all wop_* options, all per-product offer meta, all order-item offer meta, and the saved license state.

What is removed when "Delete data on uninstall" is enabled

  • Database table: wp_wop_offers
  • All WordPress options prefixed wop_
  • All post meta keys prefixed _wop_ (per-product settings)
  • All WooCommerce order item meta added by the plugin
  • Saved license state (encrypted key and verification cache)

Frequently Asked Questions

Does the plugin work without a license key?

Yes — for 14 days. A trial starts automatically on first activation. After the trial expires, new offer submissions are blocked until a valid license is activated; all stored offers, admin management, and analytics remain fully accessible.

Does it support variable products?

Yes. Each variation can have its own minimum and maximum offer bounds. The offer form updates live when the customer switches variations on the product page.

Is it compatible with HPOS (High-Performance Order Storage)?

Yes. The plugin declares custom_order_tables compatibility and stores all offer data in its own dedicated table (wp_wop_offers), separate from WooCommerce orders.

Will the plugin hide the Add to Cart button?

No. The standard WooCommerce Add to Cart button is always preserved. The Make an Offer form appears below it as a parallel option — customers can choose either path freely.

Can I bulk process offers?

Yes. The Offers list includes bulk Accept and Reject actions. Select multiple offers using the checkboxes, choose the action from the dropdown, and click Apply. Email notifications are sent for each offer processed.

What happens to my data if I deactivate the plugin?

Deactivation clears the plugin's scheduled cron job but does not remove any data. All offers, settings, and offer meta are preserved. Re-activating the plugin fully restores functionality.

Can guests submit offers?

Yes, if you enable Allow guest offers in Settings. Guests provide their email address with the offer. When an offer is accepted, they are prompted to log in or create an account before adding to cart.

Where can I get support or purchase a license?

Visit the product page on xaniacode.com to purchase, or use the XaniaCode contact page for pre-sales questions or support inquiries.


WooCommerce Offer Pricing Pro v1.0.0  ·  Released May 2026  ·  By XaniaCode
Product Page Contact & Support