Yes. In EverWeb 4.6 and later, a Contact Form Advanced form can take a session booking and a deposit in one go: clients choose a session, pick a preferred date and time, agree to your booking terms and pay the deposit by card or PayPal. The date and time pickers and the payment need the Contact Forms Enhanced add-on. The form doesn't look at your diary, so you confirm each booking yourself by email.
- A newborn photographer takes a 150 deposit with each booking and asks for the baby's due date.
- A family photographer runs autumn mini sessions on two Saturdays, in 20-minute slots.
- A wedding photographer asks couples to enquire first, and sends a retainer form once the date is confirmed free.
- A real estate photographer lets agents book a shoot, type the property address and tick extras such as twilight photos or a floor plan.
What you need
- EverWeb 4.6 or later and the Contact Forms Enhanced add-on: see What is the Contact Forms Enhanced Add-on?.
- A Stripe account, or a PayPal Business account.
- The padlock (HTTPS), and a host that runs PHP with cURL, as EverWeb + Hosting does: see My site says 'Not Secure': how to get HTTPS (SSL) on your website.
- Three pages: your Booking terms, a thank-you page and a payment unsuccessful page. For the last two, untick Include page in navigation menu in Inspector > Page Settings.
Choose how clients book
| Your sessions | Best way to book |
|---|---|
| Portraits, newborn, pets, headshots | One form: choose a session and a date, and pay the deposit |
| Weddings and events (booked months ahead) | An enquiry form first, with no payment (no add-on needed). Once the date is confirmed, send the couple to a retainer form on a page that isn't in your menu |
| Mini sessions with fixed slots that sell out | The form below works for a few slots. If clients need to see which slots are left, use a booking service: see Add a booking calendar, Instagram feed or other outside code with the HTML Snippet widget |
| Real estate and commercial | Address plus Choice Chips for extras. Take payment, or leave it off and invoice |
Build the booking form
- Drag Contact Form Advanced from Widgets onto your Book page and open Inspector > Widget Settings.
- At the top, choose your add-on in Contact Form Enhanced Add-on and type a Contact Form Name, such as Smith Photography Booking Deposit. Clients see it at checkout. Fill in Email Address to Send Form to.
- In Payments, tick Accept Payments, then Accept Cards (Stripe) with your Stripe Secret Key, and/or Accept PayPal with your PayPal Client ID and PayPal Secret. Choose the Currency, set Total Label to Deposit and choose your Payment Unsuccessful Page.
- Add the fields from the plan below. Each Option List now has a Price column. Write prices with a full stop, such as 75.00.
- Set Forward To Page to your thank-you page. Choose a Captcha Provider and tick Send Confirmation Email so the client gets a copy.
- Test with Stripe's test card 4242 4242 4242 4242 and a test key, or tick PayPal Sandbox (testing). Then paste your live details and go to File > Publish Entire Site.
Sample form plan: a portrait session with a deposit
| Field label | Control Type | Settings / Price |
|---|---|---|
| Choose your session | Card Select | Mini session, 20 minutes: 50. Family portrait, 1 hour: 100. Newborn at home: 150. Pet portrait: 75. Required field |
| Preferred date | Calendar | Set an Earliest Date and Latest Date for your season, and tick Sunday under Block Days if you don't work Sundays. Required |
| Second choice date | Calendar | Not required |
| Preferred start time | Select Time | Interval (Minutes) 30, Start Time H:M 9:00, End Time H:M 16:00 |
| Location | Radio Button | Studio: 0. Outdoors: 0. Your home (travel): 30 |
| Who's in the photos? | Text Area | Placeholder Text: 2 adults, 2 children and our dog Max |
| Your details | Step Break | Starts page 2 |
| Your name | TextBox | Required |
| Required | ||
| Phone | Phone Number | |
| Booking terms | Consent | Statement I have read and agree to the booking terms, Link Text booking terms, Link URL the full https:// address of your terms page |
These prices are deposits: say so in a Description field, for example Deposit today, balance due on the day.
For a wedding enquiry, leave payments off and use Date, TextBox fields for the venues, Segmented Buttons for hours of coverage (4, 6, 8, Full day) and a Text Area for "Tell us about your day". When the date is free, send the couple a link to a retainer page with a Card Select of your packages, a Consent box for your contract, and payments on.
What happens when a client books
- The client sees a running total, clicks Submit and pays on Stripe's or PayPal's own secure page, then comes back to your thank-you page. Card details never touch your website.
- Once payment is confirmed, you get the booking email marked Paid, with a Payment Reference, and it's stored in your Client Area. A booking that's never paid reaches you a few hours later marked Unpaid order, so you can follow it up.
- Check your diary and reply to confirm. If the date is taken, offer another date, or return the deposit from your Stripe or PayPal account.
Good to know
- No live availability. The form can't block a date once it's booked, so two clients can ask for the same slot. Your confirmation email makes the booking final. Say so on the page.
- The Calendar starts on today's date until the client picks one. Add a Control Instructions/Tip such as Choose your preferred date.
- One-off payments only, one currency per form. For the balance, send an invoice from Stripe or PayPal. Payments don't work in Preview.
