How do I accept payments for bookings in WordPress?
To accept payments for bookings in WordPress, you need three things: pricing for the booking (so the system can calculate a total), a payment method (such as Stripe, PayPal, bank transfer, or pay on arrival), and a booking form that includes a payment field so visitors can pay during checkout. In WP Booking System, you typically enable the payment settings, configure your preferred payment method, then add the payment field to your booking form and test a full booking from the front-end to confirm payments and emails work.
On this page
- What you’ll need
- Step 1: Decide what “payment” means in your workflow
- Step 2: Configure your payment method
- Step 3: Enable pricing and set your rates
- Step 4: Add a payment field to your booking form
- Step 5: Embed the calendar + form and test payment
- Optional: deposits, security deposits, and refunds
- Common issues (and quick fixes)
- Best practices
- Mini FAQ
What you’ll need
- WP Booking System installed and activated
- A calendar and a booking form
- A payment method you can connect (for example: Stripe/PayPal) or an offline method (bank transfer/pay on arrival)
- Pricing enabled for your booking flow (so a total amount can be calculated)
Step 1: Decide what “payment” means in your workflow
Before setting up payments, decide when and how you want customers to pay. This impacts which payment method and booking status flow you should use.
- Full payment upfront: customers pay the total during booking.
- Deposit / part payment: customers pay a percentage upfront and the rest later.
- Pay on arrival: customers book online and pay offline at check-in.
- Bank transfer: customers book online and receive payment instructions by email.
Tip: If preventing double bookings is critical, configure your workflow so dates block immediately when a booking is placed, even if payment is pending.
Step 2: Configure your payment method
Configure at least one payment method so customers have a way to pay (or a clear offline option). If you use online payments, make sure you complete any connection steps required by the gateway.
- Go to your WP Booking System payment settings and enable the payment method you want to offer.
- For online gateways, add required credentials/keys and confirm the connection is active.
- For offline methods, write clear instructions (for example: bank details or “pay on arrival”).
Tip: Use test mode (if available) during setup so you can simulate payments without charging real money.
Step 3: Enable pricing and set your rates
Payments only work properly if the system can calculate a price total. Set your base price and any additional pricing rules you need (seasonal rates, weekend rates, or extra options).
- Set a base price for the calendar/resource.
- If you use nights bookings, confirm your selection style is aligned with nights (split selection) so the calculation matches your check-in/check-out logic.
- If you have seasonal pricing, configure it before you start testing payments.
Tip: Keep the first setup simple (one base price) and add advanced pricing only after the basic payment flow works.
Step 4: Add a payment field to your booking form
Even if payments are configured in settings, visitors will not pay unless the booking form includes a payment field. Add the payment field to the form, choose which methods are available, and save.
- Go to WP Booking System → Forms.
- Edit the form used on your booking page.
- Add the payment field (or select the payment option field provided by your setup).
- Choose which payment methods should appear (online/offline).
- Save the form.
Tip: If you offer both online payment and pay on arrival, clearly label them so users understand the difference.
Step 5: Embed the calendar + form and test payment
Once pricing and payments are configured, embed the calendar with the booking form and run a full test from the front-end.
[wpbs id="1" form_id="1"]
- Open the booking page in an incognito/private window.
- Select dates and fill out the booking form.
- Choose a payment method and complete the payment (use test mode if available).
- Confirm you receive the correct emails and the booking status updates as expected.
Tip: Test both a successful payment and a cancelled/failed payment so you understand how the booking status behaves in each case.
Optional: deposits, security deposits, and refunds
Many booking businesses do not charge 100% upfront. If you need deposits, part payments, or a separate security deposit, configure these features after the basic payment flow works.
- Deposit / part payment: charge a percentage upfront and collect the rest later.
- Security deposit: charge a refundable amount for damage protection (common for rentals).
- Refund process: define your cancellation policy and confirm how refunds are handled for your payment method.
Tip: Add your cancellation policy near the booking form so customers see it before paying.
Common issues (and quick fixes)
The form does not show payment options
- Confirm you added a payment field to the form, not only enabled payments in settings.
- Confirm pricing is enabled and the booking total is greater than zero.
- Check that the payment method is enabled and configured correctly.
Payments fail or do not complete
- Use test mode to confirm the gateway connection and form flow are correct.
- Check for JavaScript errors caused by theme or optimization plugins and temporarily disable minification to test.
- Confirm your site uses HTTPS, because many gateways require SSL.
The booking is created but the payment status is confusing
- Decide whether dates should block on pending payments or only after payment is completed, then configure your booking status workflow accordingly.
- Make sure your email templates clearly explain what the customer needs to do next.
The price shown to the customer is wrong
- Confirm you are using the correct selection style (days vs nights) and that pricing is aligned with it.
- Check seasonal/weekend pricing rules for overlapping ranges.
- Test a few different date ranges to confirm your pricing logic is consistent.
Best practices
- Start with one payment method and one base price, test everything, then add advanced options.
- Use clear labels for payment methods and explain what happens after payment (confirmation time, refund policy).
- If you allow manual approval, keep response time short so customers do not abandon after paying.
- After enabling payments, test after any theme, plugin, or optimization change.
Mini FAQ
Do I need a booking form to accept payments?
Yes. Payments are collected through the booking form, so you need a form and it must include a payment field.
Can I accept payments and still approve bookings manually?
Yes. You can collect payment upfront and still review/accept bookings, but you should clearly communicate expected confirmation time to avoid customer confusion.
Can I offer pay on arrival or bank transfer instead of online payments?
Yes. Offline payment methods work well when you want customers to reserve dates online but pay later, as long as your confirmation emails clearly explain the next steps.