Harvify Checkout Manager

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

  1. Go to Harvify Checkout Manager. The Custom fields tab lists your fields.
  2. Click + Add field.
  3. Choose the Field type and type the Label customers will see. For a select
    or radio field, enter the Options, one per line.
  4. 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.
  5. 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.
  6. 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.
  7. 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

  1. Upload the plugin to /wp-content/plugins/harvify-checkout-manager/
  2. Activate via Plugins Installed Plugins
  3. Go to Harvify Checkout Manager to add fields and manage the native WooCommerce fields
  4. 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.

Contributors

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 Contributors field 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.