Description
Harvify Checkout Manager lets you customise the WooCommerce checkout without touching code. Add your own fields, reorder them, hide or rename the built-in fields, and show a field only when it’s relevant — and it all works on both the classic shortcode checkout and the new WooCommerce Blocks checkout that ships on modern stores.
Every free field type renders natively on the Blocks checkout as well as the classic one, so a store using WooCommerce’s default checkout sees your fields exactly as a classic store does.
Free features:
- 12 field types: text, textarea, select, checkbox, radio, number, email,
phone, URL, date, plus content blocks (heading / paragraph) - Add fields to any checkout section: billing, shipping, order notes, or after
payment - Drag-and-drop reordering of your custom fields and of WooCommerce’s own
address fields - Hide, rename, reorder, or change which are required among the built-in
WooCommerce fields, on both checkouts, with a
safety guard that never lets you remove a field WooCommerce needs to complete
an order or calculate tax/shipping - Placeholder, default value, width (full / half) and CSS class per field
- Basic conditional logic — show a field only when another field has a given
value - Values saved to order meta and shown on the admin order screen, the
order-confirmation email (per-field toggle), and the customer’s My Account
Order details - Works on classic AND WooCommerce Blocks checkout
- WooCommerce HPOS compatible
Pro features (Harvify Pro Bundle):
- Advanced field types: file upload, time picker, multi-select, colour
picker, password, hidden, and HTML/section blocks - Advanced conditional logic — multiple conditions with AND/OR groups,
triggered by field value, product in cart, cart total, user role, shipping
method, or payment method - Conditional required — make a field required only when a condition is met
(e.g. VAT number required when country is in the EU) - Field fees — add a fixed or percentage fee to the order based on a field’s
value or selection, applied live on both classic and Blocks checkout - Advanced validation — regex pattern, min/max length, min/max number, and a
custom error message - Fields beyond the checkout — put a field on the registration form or
on My Account edit address. Those answers are saved against the
customer, so they follow them to every future order instead of one - Import / export — your entire field configuration as JSON to back it up or
move it between sites
Adding a checkout field
- Go to Harvify Checkout Manager. The Custom fields tab lists your fields.
- Click + Add field.
- Choose the Field type and type the Label customers will see. For a select
or radio field, enter the Options, one per line. - Choose the Section of the checkout it belongs in: billing, shipping, order
notes / additional, or after payment. On the Blocks checkout, billing fields
appear under Contact information (WooCommerce hides the billing address when it
matches shipping), shipping fields in the shipping address, and order-notes and
after-payment fields after the payment options. - Set Required, Placeholder, Default value, Width and an optional
CSS class as needed, and
tick Show in emails to include the answer in order emails. - To show the field only when another field has a given value, use Show this
field only when to pick that field and the value it must have. - Click Save field. Drag the ☰ handle to reorder fields.
The answer is saved on the order and shown on the admin order screen, in the
order-confirmation email (if you ticked Show in emails) and in the customer’s
My Account Order details.
Changing WooCommerce’s own fields
Open the Native fields tab. For each built-in field you can type a new label in
Rename…, tick Hide, or tick or untick Required; drag an address field by its
☰ handle (or use the arrows) to change the order. Then click Save native fields.
Each Required box starts as WooCommerce has it, and only what you change is saved.
Fields an order cannot complete without are marked required for checkout and
cannot be hidden.
WooCommerce uses one set of address fields for the billing and the shipping address,
so each is set once and applies to both. The changes apply on the classic and the
Blocks checkout. On the Blocks checkout the order note can be hidden; renaming it or
making it required applies to the classic checkout only, because WooCommerce’s block
offers no way to do either.
External services
This plugin connects to Freemius, the licensing and update service Harvify uses to
sell and deliver the Pro tier of its plugins.
Nothing is sent to Freemius unless you choose to send it. On activation you are shown
Freemius’s standard opt-in screen. Until you answer it a fresh install makes no
outbound request at all, and if you choose Skip the free tier stays fully usable
and still sends nothing. Data is transmitted only when you take one of these
actions:
- You click “Allow & Continue” on the Freemius opt-in screen. This sends your
site address, your administrator email address, and your WordPress, PHP and active
plugin/theme details, so Harvify can provide support and know which environments to
test against. Skipping that screen sends nothing and leaves the plugin working
normally. - You enter a Pro Bundle licence key. This sends the key together with your site
address so the licence can be activated for that site. While a licence is active the
site also re-checks periodically that it is still valid and whether a Pro update is
available.
Service provided by Freemius, Inc. – https://freemius.com/
Terms of service: https://freemius.com/terms/
Privacy policy: https://freemius.com/privacy/
Screenshots





Blocks
This plugin provides 1 block.
- Harvify Checkout Fields Renders your Harvify custom checkout fields (advanced types + conditional logic) on the block checkout.
Installation
- Upload the plugin to
/wp-content/plugins/harvify-checkout-manager/ - Activate via Plugins Installed Plugins
- Go to Harvify Checkout Manager to add fields and manage the native WooCommerce fields
- Ensure WooCommerce is active
FAQ
-
Do custom fields work on the new Blocks checkout?
-
Yes. Every free field type renders natively inside the WooCommerce Blocks checkout as well as the classic checkout, so your fields are never silently missing on a modern store.
-
Can I break my checkout by hiding a field?
-
No. Fields WooCommerce needs to complete an order or compute tax and shipping — billing email, country, name, address, city, postcode (and the shipping equivalents when shipping to a different address) — are guarded and cannot be hidden or removed from the plugin’s UI.
-
Are uploaded files safe?
-
Yes. Pro file uploads are validated by real file content (not just the extension) against an allow-list of safe types, capped in size, stored with a randomised filename in a directory that blocks direct and PHP execution, and are only downloadable by store managers.
-
Is customer input escaped?
-
Every custom field value is sanitised when saved and escaped on every output path — order meta, admin order screen, confirmation email, My Account order details, and both Blocks and classic checkout.
-
Where are field values stored?
-
Each field value is saved as order meta on the order it was submitted with, so it travels with the order everywhere WooCommerce shows order data.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Harvify Checkout Manager” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Harvify Checkout Manager” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.17
- Fixed: plain text, select and checkbox fields now appear on the classic checkout. They were
left to WooCommerce to draw, and WooCommerce only draws such fields on the Blocks checkout. Every
field is now drawn by this plugin on both checkouts. Answers on existing orders are still shown. - Fixed: placeholder, default value and width now apply to every field type on both checkouts.
They were ignored for plain text, select and checkbox fields, and the default value was never
applied on the Blocks checkout. - Fixed: changes on the Native fields tab now reach the shopper on both checkouts. Rename and
Required were undone in the browser on the classic checkout for most address fields, and nothing
on that tab applied to the Blocks checkout. Address fields are now set once and used for the
billing and the shipping address, which is how WooCommerce itself defines them. - Fixed: saving the Native fields tab no longer makes optional fields required. Every
Required box was shown ticked and saved that way, so a Save that only renamed a label made
Address line 2, Company, Phone and Order notes mandatory at the checkout. Each box now starts
as WooCommerce has it, and only what you change is saved. If you saved that tab on an earlier
version, open it once and untick anything you did not mean to require. - Fixed: a field shown “only when” a plain select or one of WooCommerce’s own fields has a
value now appears on the Blocks checkout. - New: reorder WooCommerce’s address fields, with the arrows or by dragging.
- New: dragging a field by its handle now reorders it. The handle was there but only the
arrows worked. - New: a CSS class per field.
- On the Blocks checkout your fields now sit in the step their section names: billing fields under
Contact information, shipping fields in the shipping address, the rest after payment.
1.0.16
- Fixed: on a site running only this plugin, the Upgrade tab and the Plan screen now show
what the free version includes and what a licence adds. They showed a single line: the
plugin shipped the feature catalogue but did not load it, so it only worked where another
Harvify plugin was also active.
1.0.15
- Fixed: deleting the plugin with “delete data” switched on left one option behind
(hckm_upload_names, the original names of files customers uploaded to a Pro
file field). It is now removed with the rest. The uploaded files themselves are
kept, because the orders they belong to still refer to them. - Freemius now asks before connecting. On activation you see Freemius’s standard
opt-in screen with a Skip button; skipping sends nothing and the plugin works as
before. The External services section is updated to match. - The Pro field types (file upload, time, multi-select, colour, password, hidden and
HTML section) are now built only into the Pro version. The free version no longer
contains their code, and the field builder shows a short note about them instead of
greyed-out options. A stored field of one of those types is marked Pro, paused
in the field list while no licence is active. - Fixed: a lapsed licence could move fields. Pressing Save in the field builder
while a licence was lapsed moved every registration-form and My Account field onto
the checkout. Those fields now stay where they are, and their Pro field types are
kept unchanged, until the licence is renewed. - Fixed: a Pro colour field showed nothing on the classic checkout. WooCommerce’s
form builder has no colour input, so the field was silently dropped; it now renders. - Fixed: radio options were printed on top of each other on the block checkout.
WooCommerce’s floating-label style caught every option label, so a two-option radio
field showed both labels in the same spot. Options now sit side by side (the Pro
multi-select had the same problem and is fixed too). - On the block checkout, Pro time, colour and password fields now use the matching
input (colour as a swatch), and a hidden field is no longer shown as a text box. - Readme: step-by-step instructions for adding fields and changing WooCommerce’s own
fields.
1.0.13
- Added: a single Support entry in the Harvify menu, so you can reach us from
inside WordPress. Until now no plugin offered a contact route at all. One entry for
the whole suite rather than one per plugin. - No behaviour changes.
1.0.12
- Added: an External services section to this readme, naming every third-party
service the plugin can contact, exactly what is sent, when, and each provider’s terms
and privacy policy. Required for WordPress.org submission. - Changed: the
Contributorsfield now names the correct WordPress.org account. - No behaviour changes.
1.0.11
- Performance: the custom checkout field configuration is no longer loaded into
memory on every page request. It is only read where it is used — the checkout,
order processing and the settings screen — which is how every other Harvify
plugin already stores its settings.
1.0.10
- Fixed: on the block checkout a custom field’s label printed on top of its
placeholder. The field wrapper carries WooCommerce’s text-input class, whose
label is positioned inside the input and only floats clear when WooCommerce’s
own component marks it active — which never happened for our fields.
1.0.9
- Added: a single Manage licence link on the Plan screen, so an active customer can
deactivate this site, change their licence key or re-check their licence without
needing a URL from support. No per-plugin Account tab is added.
1.0.8
- One upgrade link instead of one per plugin. With several Harvify plugins active the
menu showed a row called “Upgrade” for each of them, all identically labelled, and it kept
saying Upgrade to people who had already bought. They are replaced by a single Plan
screen that says what the bundle costs, what it covers, and whether your licence is active. - The dashboard is quiet again. Each plugin used to add its own “opt in to make this
better” notice to the main WordPress dashboard, so five plugins meant five notices. Harvify
plugins now share one queue: promotional notices appear only on Harvify’s own screens, and
only one at a time. Licence and account messages are never held back. - Fixed: the “Data & uninstall” box covered the page. It was being drawn into the admin
footer, which WordPress pins to the bottom of the screen, so it floated on top of whatever was
underneath it. It now sits in the page like any other card. Saving it also tells you what it
saved, instead of just reloading. - Fixed: the upgrade screen advertised the wrong number of sites. Several plugins listed
the Freelancer and Agency plans as covering 5 and 25 sites. They cover 3 and 10.
1.0.7
- Uninstall no longer destroys your data by default. Deleting the plugin used to remove
everything it had stored, with no way to stop it — so deleting it to troubleshoot took the lot
with it. Now the default is to KEEP your data, and a new Data & uninstall control on the
plugin’s own screen lets you opt in to a full wipe if that is what you want.
1.0.6
- Fixed: the Delete button next to Edit was a different size and had the browser’s default
chrome. It carried only the “button-link-delete” class, which nothing styles — so it fell
back to an unstyled 23px control beside a 40px Edit. Both are now the same size, with Delete
in red.
1.0.5
- Fixed: the branded admin header and cards were completely unstyled. The shared design
system is scoped to a CSS class the app never applied, so the header and card chrome
rendered as plain text instead of the Harvify admin design used by the rest of the suite. - Fixed: the Free/Pro badge in the header never appeared. The plan pill was passed to the
shared admin header under the wrong key, so nothing said which tier you were on. - Fixed: the “Upgrade to Pro Bundle” button went nowhere — built with the wrong argument
names, so the link fell back to “#” and no “Compare plans” link rendered. - The Upgrade screen now states what the free tier keeps — all 12 field types on BOTH classic
and Blocks checkout, drag-and-drop reorder, native-field management and basic conditional
logic — and lists the Pro additions including fields on registration and My Account.
1.0.4
- Documentation: the free tier was described as having 11 field types when it has 12 — the two
content blocks (heading and paragraph) were being counted as one. Undercounting is the safer
direction to be wrong in, but it is still wrong. No code changed.
1.0.3
- Fixed: saving your fields on a lapsed licence used to delete them. With the Pro build
installed and no valid licence, opening the field builder and pressing Save — without changing
anything — removed every Pro-type field (file upload, time, multi-select, colour, password)
outright, and stripped the fee, validation and conditional-logic settings from the rest. It was
silent and there was no undo. Your configuration is now carried through a lapse untouched: it
simply stops taking effect until the licence is renewed. An unlicensed site still cannot create
new paid configuration — keeping what you had is not the same as adding something new. - Pro features now stop when a licence lapses rather than continuing on the installed premium
build: field fees, advanced conditional logic, validation rules, file uploads, the extra field
locations, and config import/export. Fees are the important one — a stored fee is no longer
charged to your customers while a licence is lapsed. - Files your customers already uploaded stay downloadable from the order screen. They belong to
real orders you still have to fulfil.
1.0.2
- New (Pro): fields on additional locations — a field can now live on the registration form
or on My Account edit address instead of the checkout. Pick it from Where it appears on the
field editor. Required fields block registration and address saving with a message naming the field,
and a blank required field never wipes a value that was already stored. - Account-location answers are saved against the customer (user meta), not an order — they belong
to the shopper and follow them to every future order. - A field now belongs to exactly one place: the nine internal callers that walk the field list are
scoped to the checkout by default, so a registration field can never reach an order, a confirmation
email or the Blocks checkout schema.
1.0.1
- Your licence is now manageable from the plugin itself. The Account screen was previously
hidden, which also hid Deactivate License — so a licence could not be released from one
site to move it to another without contacting support. It is visible again, along with the
licence key, plan, Sync and Change License. - Harvify Tools now opens with a Your licences table: every installed Harvify plugin,
the plan it is on, whether Pro features are actually running, and a link to its Account screen.
Freemius gives each product its own separate Account page, so this is the one place that
answers “what am I on” across the whole bundle. - The repeated “Opt in to make … better!” admin notice no longer appears. Licence, plan and
update notices are unaffected — only the opt-in prompt is suppressed.
1.0.0
- Initial release: 11 free field types on classic + Blocks checkout, drag-drop reorder, native-field management with a checkout-safety guard, basic conditional logic, and order/email/My-Account display.
- Pro: advanced field types (file upload, time, multiselect, colour, password, hidden, HTML), advanced AND/OR conditional logic, conditional-required, field fees, advanced validation, fields on the registration form and My Account edit-address, and configuration import/export.
