Charge for registrations through your shop
Fifteen minutes, once per site. If this site already runs WooCommerce, you have already chosen a payment processor, agreed its fees and taught somebody where the money lands. LocalForm can use it. At the end of this, registrations are charged as ordinary WooCommerce orders - and you can accept a bank transfer or an invoice paid later, which no hosted checkout can do.
This needs LocalForm Pro with an active license, and WooCommerce active with at least one payment method switched on.
If the site does not run WooCommerce, do not install it for this. Connect Mollie or Stripe instead - they are a shorter route and there is nothing about registrations that needs a shop.
1. Switch the connection on
Go to LocalForm → Settings → Integrations. Because WooCommerce is active, a WooCommerce card is already sitting in the Payments group. There is nothing to paste - no API key, no account, no secret.
- Open the card.
- Turn on Take payments through WooCommerce.
- Read the line saying Registrants can pay with. That is the list your registrants will actually be offered, straight from your shop. If it is missing something, fix it under WooCommerce → Settings → Payments - it is your shop's setting, not LocalForm's.
- Press Test the connection. It tells you what it found.
- Save Changes.
2. Decide what "paid" means
On the same card, Count a registration as paid when the order is decides the moment a registration stops being provisional - when a held confirmation email is sent, and when the second webhook fires.
Processing and Completed are ticked to start with, and that is right for most shops: a completed card payment lands on Processing, and a shop that auto-completes virtual orders lands on Completed.
Leave On hold unticked. It is where an unpaid bank transfer waits, and ticking it would confirm registrations nobody has paid for yet - which is the opposite of what step 6 sets up.
3. Let guests check out
This is the one that catches people.
If your shop requires an account before checkout, so will your registration form - and a registration form that demands an account is a registration form people abandon.
Go to WooCommerce → Settings → Accounts & Privacy and make sure Allow customers to place orders without an account is on.
4. Put a price on the form
Edit the form, open the Settings tab, and find Event Details. Set the Payment Price.
If different people pay different amounts, use multiple event prices instead - adults, students, members - and LocalForm can ask registrants which rate they fall under.
5. Turn payments on for that form
Still in Settings → Event Details, scroll to Payments.
- Tick Charge for a registration on this form.
- If you have more than one provider connected, pick WooCommerce as the Payment provider. With WooCommerce as your only connected provider, there is no choice to make.
- Leave Amount to charge on The Payment Price above.
- Save the form.
6. Rehearse one
There is no test mode here - that belongs to your shop's own payment plugins, which have their own. So rehearse with a real one you can undo:
- Enable Cash on delivery or Direct bank transfer under WooCommerce → Settings → Payments, temporarily if you like.
- Open your form, fill it in, submit.
- You should land on that order's payment page: one line, your payment methods, no cart and no product page.
- Pay, or place the order.
- You should come back to your form's own confirmation - not WooCommerce's order-received page.
- Check LocalForm → Responses: the registration is there with a Payment column. Check WooCommerce → Orders: an ordinary order is there too.
Delete the test order and the test response when you are done.
7. Take an invoice, not a card
This is the part worth having WooCommerce for, and the reason to choose it over Mollie or Stripe even on a site that could use either.
A hosted checkout can only take money now. An order can wait.
Say a municipality wants twelve places and pays on thirty-day terms:
- Enable Direct bank transfer under WooCommerce → Settings → Payments, with your account details in its instructions.
- They register and choose bank transfer. The order lands on On hold, and because On hold is not in your paid list, the registration stays unconfirmed.
- WooCommerce emails them the payment instructions. Your invoicing plugin, if you run one, makes the invoice from the same order.
- Weeks later the transfer arrives. Open the order and mark it Processing or Completed.
- At that moment LocalForm sends the held confirmation email and fires the second webhook - exactly as it would have for a card payment thirty days earlier. You do nothing in LocalForm at all.
Pay at the door is the same shape: take the registration now, mark the order paid at check-in.
8. Tell whoever does the books
Nothing new to learn. These are ordinary WooCommerce orders:
- They appear in WooCommerce → Orders and in Woo's own reports.
- Whatever accounting or invoicing plugin the shop runs picks them up.
- Refunds are made in the order, one click, with a record.
- Coupons work, so early-bird and member discounts need no new feature.
Orders LocalForm created are marked as coming from localform, so they can be told apart from shop sales.
:::note A refund does not cancel the registration Refunding an order records the refund where it belongs and leaves the response marked paid - because it was. Whether somebody keeps their place is a decision for a person, not a side effect of a bookkeeping action. Cancel the registration yourself in Responses if that is what you meant. :::
What this does not do
- No product is created. Your catalogue is untouched. The only thing LocalForm puts in your shop is one order per payment, carrying one line.
- WooCommerce never counts seats. The form's maximum registrations stays LocalForm's own setting, and stock is not used.
- Deleting a form touches no order, and tidying your shop stops no form charging.
- No tax is added. Registrants are charged exactly the amount the form showed them. A developer can change that on the
localform_pro_woocommerce_orderaction - see the hooks reference.
If something is wrong
See Payments → When something is not right, which covers the WooCommerce card not appearing, registrations that stay unpaid, and registrants being asked to create an account.