Get in touch
  • WordPress
  • Sales and conversion
  • v1.1.0

One-Click Order — Quick Order for WooCommerce

Free ‘One-Click Order’ plugin for WooCommerce: a ‘name + phone’ modal creates a real order. Pro adds a phone mask, entire-cart ordering, UTM tags and Telegram.

Download Free
Pro · one-year licence The more sites, the less each one costs
Compatibility
WooCommerce 6.0+ · WordPress 6.2+
PHP
7.4 or newer
Licence
two sites, annual
Trial
7 days, no card, one per site
Updated
12 August 2026
Or all 173 Pro modules with All Access — 4 990 ₴ / year

The module in action — 45 sec

Clear even without sound: Ukrainian subtitles

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
“Order in 1 click” button on the product page ✔ ✔
Button in the catalogue, search and archive pages ✔ ✔
Modal with “Name” + “Phone” fields ✔ ✔
Validation and normalisation of a Ukrainian number to +380XXXXXXXXX ✔ ✔
A real order with a status and a payment method name from the settings ✔ ✔
An email to the manager with the order contents ✔ ✔
A request log with the processing result ✔ ✔
Anti-spam: nonce, honeypot, a time trap, an hourly limit per IP ✔ ✔
All button, modal and thank-you texts are editable ✔ ✔
Extra fields — e-mail, city, comment (each switched on separately) — ✔
Phone mask in the input field — ✔
“Entire cart in 1 click” — a button on the cart page — ✔
UTM tags and referrer in the order meta — ✔
A per-minute limit per IP and a phone-number blacklist — ✔
Duplicating the request to Telegram and several e-mail addresses — ✔

What it looks like

Quick order modal on a WooCommerce product page: name, phone, e-mail, city, comment
The modal in WooCommerce. At the top is the name of the product being ordered, then two required fields (name and phone) and three optional Pro fields: e-mail, city, comment. The phone number is entered under the mask +380 (__) ___-__-__, but is also accepted in the 0XXXXXXXXX format — the module normalises it itself to +380XXXXXXXXX.
One-Click Order settings in WooCommerce: where to show the button and its texts
Settings in WooCommerce: where to show the button (product page, catalogue, hide when out of stock) and the full set of texts — from the button label to the message shown after submission. An empty field means the text from the language file is used, so nothing has to be filled in.
Quick Order Pro settings greyed out, marked Pro, with a ‘what this gives you’ line
The Pro features aren’t hidden or replaced with a banner: they sit in place, greyed out, marked Pro, with one line about what exactly they give you.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — two sites

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • WooCommerce 6.0+ on WordPress 6.2+ — build quick-order-for-woocommerce v1.1.0
  • PHP 7.4+ (tested on 8.1–8.3)
  • Compatibility with HPOS (custom order tables) and the cart block is explicitly declared
  • No third-party services: handling requests happens entirely inside your own store. The only external request is a licence-key check on catcode.com.ua, and only when Pro is enabled (plus Telegram, if you turn on Pro duplication there)

Version history

v1.1.0 Current 12 August 2026

The trial no longer starts on its own.

v1.0.4 27 July 2026

The order admin showed the payment method’s technical identifier instead of the name from the settings.

v1.0.3 27 July 2026

The “Entire cart in 1 click” button didn’t appear on the block-based cart page (Cart Block).

All versions (5)
v1.0.2 27 July 2026

The modal wouldn’t open on themes that print footer scripts before the modal’s markup.

v1.0.0 First release 26 July 2026

A button on the product page and in the catalogue, the modal, UA phone validation, anti-spam, a manager email, a request log, Pro fields, the mask, UTM, an “entire cart” mode, Telegram duplication.

Frequently bought with One-Click Order

4 modules in one order — 40% cheaper than separately

“Store starter” bundle One-Click Order Nova Poshta Premium Mono Acquiring Telegram notifications and Viber/SMS for customers Need more — all 173 modules in All Access for 4 990 ₴.
2 490 ₴ / year instead of 4 160 UAH bought separately
Buy the bundle →

Full module description

One-Click Order is a module that places a second button next to “Add to cart”: the customer enters just their name and phone number, clicks “Order”, and a real order appears in the store straight away, which the manager confirms by phone. No registration, no address, no choosing shipping or a payment method.

How it works, step by step

  1. The customer clicks “Order in 1 click” on the product page or directly in the catalogue. In the catalogue the button only appears for simple products — variable products require choosing options.
  2. The modal opens with the product name and the fields. Only name and phone are required.
  3. The form is checked: a nonce, a hidden honeypot trap, a minimum fill-in time, a request limit per IP, and in Pro also a phone-number blacklist.
  4. A real order is created via wc_create_order() — with the product line item, the name in the billing fields and the number in the billing phone. The payment method is a pseudo-method, “Manager callback”, with no payment gateway involved.
  5. The manager gets an email with the contact details and order contents, and the request is logged. The customer sees a thank-you message in the modal or is taken to a “Thank you” page, depending on the setting.
  6. With Pro, UTM tags and the referrer are additionally written into the order, the request is duplicated to Telegram and extra e-mail addresses, and an “entire cart in 1 click” button appears on the cart page, turning every line item into a single order.

Under the hood

  • A real order, not a request in a separate table. It goes through the standard wc_create_order() path — with stock deduction, status emails and a normal entry in “Orders”, so it lands in every report and CRM integration.
  • A hidden payment method. So the technical identifier doesn’t show up in the order admin, the module registers a pseudo-gateway, “Manager callback”. It isn’t offered to the customer at checkout — it only tags quick orders.
  • Four independent layers of anti-spam: a one-time nonce, a honeypot field, a minimum form-fill time and a request counter per IP within a set window. The nonce, honeypot and timing trap are always on; the per-IP limit is configurable, and 0 means no limit.
  • Phone normalisation. 0XXXXXXXXX, 380XXXXXXXXX and +380XXXXXXXXX are accepted, with spaces, dashes and brackets. Numbers from other countries are not accepted; the ccqo_normalize_phone filter lets you adjust an already normalised number.
  • A dependency-free front end: its own CSS and plain JavaScript, no jQuery and no external CDNs. There is one modal per page, and its markup is printed only where a button is shown.
  • HPOS and the cart block. Compatibility with custom_order_tables and cart_checkout_blocks is declared — the “entire cart” button works in both the classic and the block-based cart.

How to install

  1. Download quick-order-for-woocommerce-1.1.0.zip, upload it via “Plugins → Add New → Upload Plugin” and activate it.
  2. Open WooCommerce → One-Click Order, choose a status for new orders and enter the manager’s e-mail. If the field is empty, the email goes to the store’s address.
  3. Edit the button and modal texts if needed, and enable display in the catalogue.
  4. For Pro: paste the key from the email you received after payment into the “Licence key” field and click “Activate key” — the module checks it against catcode.com.ua and unlocks Pro straight away. Want to look first? Click “Try Pro for 7 days” on the same screen.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
Is this a real order or just a request?

A real one. It's created via wc_create_order() — with the product line item, the name in the billing fields, the number in the billing phone, stock deduction and status emails, so it lands in your reports and your CRM integrations.

Which phone formats are accepted?

0XXXXXXXXX, 380XXXXXXXXX and +380XXXXXXXXX — with spaces, dashes and brackets. Everything is reduced to +380XXXXXXXXX. If you sell abroad, turn off “Ukrainian numbers only” mode or extend the rule with the ccqo_normalize_phone filter.

Does the button work with variable products?

On the product page, yes — the module picks up the variation the customer selected. In the catalogue the button only shows for simple products, since a variation can't be chosen there.

How is the module protected from spam?

Four independent layers: a one-time nonce, a hidden honeypot field, a minimum form-fill time and a request counter per IP. Pro adds a per-minute limit and a phone-number blacklist.

Does it work with the block-based cart and HPOS?

Yes. Compatibility with custom_order_tables and cart_checkout_blocks is declared — the Pro “entire cart in 1 click” button works in both the classic shortcode and the block-based cart.

Does the module change the store's theme?

No. The button is added via a hook, and the modal is rendered in the footer only after the click. Theme files aren't touched, so once the module is removed the product page stays exactly as it was.

What happens when the licence expires?

Nothing switches off: the Pro features (the extra fields, the mask, UTM and the “entire cart” button) keep working; only updates and support stop. The free version keeps working with no time limit, and the settings, log and created orders remain.

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.

Order a custom module