One-Click Order — Quick Order for WooCommerce
Кнопка «Купити в 1 клік» на товарі та в каталозі: покупець залишає лише ім’я й телефон — у магазині створюється справжнє замовлення зі статусом із налаштувань і методом оплати «Дзвінок менеджера». Безкоштовна версія дає модалку, валідацію українського номера, чотири рівні антиспаму, лист менеджеру та журнал заявок. Pro додає поля e-mail/місто/коментар, маску телефону, режим «весь кошик у 1 клік», UTM-мітки в замовленні, чорний список номерів і дублювання заявки в Telegram.
What each licence includes
| 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 | — | ✔ |
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.
The basic version is free and has no time limit: a button on the product and in the catalogue, a modal with two fields, Ukrainian phone number validation, four layers of spam protection, an email to the manager and a request log. Pro features are shown in place in the settings — greyed out, marked Pro; Pro never switches itself on. Want to try it? Click “Try Pro for 7 days” on the module screen. The download link is in the “How to install” section.
What the customer sees

+380 (__) ___-__-__, but is also accepted in the 0XXXXXXXXX format — the module normalises it itself to +380XXXXXXXXX.What the admin gets

How it works, step by step
- 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.
- The modal opens with the product name and the fields. Only name and phone are required.
- 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.
- 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. - 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.
- 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.
Pricing
990 UAH — a one-year licence. A year of updates, technical support and access to all Pro features. No auto-billing: renewal is always manual, and we don’t store card details.
You can take a longer term straight away — the longer the term, the cheaper per year:
- 1 year — 990 UAH
- 2 years — 1,880 UAH (−5%, 940 UAH per year)
- 3 years — 2,610 UAH (−12%, 870 UAH per year)
- 4 years — 3,250 UAH (−18%, 813 UAH per year)
- 5 years — 3,710 UAH (−25%, 742 UAH per year)
When the term expires, only updates and new features stop — the Pro features keep working, the free version keeps working, and your settings, log and already-created orders stay exactly where they are. We’ll remind you by email 14, 7, 3 and 1 day before expiry. One key covers one domain; if you move the store, deactivate the licence on the old domain and activate it on the new one yourself.
Trial first, payment later. A 7-day Pro trial is available any time — but it only starts on your click: “Try Pro for 7 days” → e-mail → we issue a genuine 7-day key straight away and send it to you by email. No card required, nothing is charged, one trial per installation. You can test the extra fields, the phone mask, UTM and the “entire cart” button on your own store before buying — which is exactly why refunds aren’t offered after payment.
Technical requirements
- WooCommerce 6.0+ on WordPress 6.2+ — build
quick-order-for-woocommercev1.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 (once a day), and only when Pro is enabled
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. Each can be switched off independently; a limit of
0means no limit. - Phone normalisation.
0XXXXXXXXX,380XXXXXXXXXand+380XXXXXXXXXare accepted, with spaces, dashes and brackets. Stores that sell abroad can turn off strict mode or extend the rule with theccqo_normalize_phonefilter. - A dependency-free front end: its own CSS and plain JavaScript, no jQuery and no external CDNs. The modal is only rendered after the click, so it has no effect on the product page’s speed.
- HPOS and the cart block. Compatibility with
custom_order_tablesandcart_checkout_blocksis declared — the “entire cart” button works in both the classic and the block-based cart.
The trial only starts on your click
The free version is a free version: the button, the “name + phone” modal, a real order, anti-spam, the manager email and the request log. Nothing fades out after a week, because nothing switched on without you.

Pro, with one line about what exactly they give you.

How to install
- Download quick-order-for-woocommerce-1.1.0.zip, upload it via “Plugins → Add New → Upload Plugin” and activate it.
- Open WooCommerce → One-Click Order, enable the module’s status, 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.
- Edit the button and modal texts if needed, and enable display in the catalogue.
- 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.
Version history
- 1.1.0 — 12 August 2026
- The trial no longer starts on its own. A fresh install is simply the free version; 7 days of Pro switch on only via the “Try Pro for 7 days” button, which issues a genuine key to your email. Keys are now checked against catcode.com.ua (activation, release, a daily check, 14 days of offline grace), and a key from a different CatCode module is now rejected instead of silently unlocking Pro. The Pro settings stay on screen, greyed out, marked
Prowith a “what this gives you” line. Instead of a set of banners there’s a single notice, and it only appears after the first one-click order has actually been created; once dismissed it never comes back. Fixed: the Pro phone mask also worked at the free tier (the flag arrived in JS as the string “0”, which is truthy). - 1.0.4 — 27 July 2026
- The order admin showed the payment method’s technical identifier instead of the name from the settings — a hidden “Manager callback” gateway was added, which isn’t offered to the customer at checkout. Fixed the hryvnia sign: in the manager email and the Telegram message it arrived as an HTML entity instead of
₴. - 1.0.3 — 27 July 2026
- The “Entire cart in 1 click” button didn’t appear on the block-based cart page (Cart Block) — it now works in both the classic shortcode and the block-based cart.
- 1.0.2 — 27 July 2026
- The modal wouldn’t open on themes that print footer scripts before the modal’s markup — a
DOMContentLoadedguard was added and the output priority was changed. The phone mask broke the national0XX…format (it produced+380 (38) 050-12-34, and validation rejected the number), and the caret could jump ahead of the+380prefix. - 1.0.0 — 26 July 2026
- First release: 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 asked questions
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?
Only the Pro features switch off — the extra fields, the mask, UTM and the “entire cart” button. The free version keeps working with no time limit, and the settings, log and created orders remain.
Questions about the module?
Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.
No reviews yet. Be the first — right below.
Leave a review
Reviews are moderated before publication, which usually takes up to 24 hours.
No questions yet. Ask one — we answer within 24 hours.
Ask a question
We usually reply within 24 hours during working hours.
Buying the module
—