The challenge
A private club sells on trust and on feel. The site had to look expensive, explain membership and storage clearly, and send every inquiry to the right person.
There was also a practical problem. Plenty of details, like some facts and prices, were still being confirmed while I was building, and none of those placeholders could be allowed to reach the live site.
The solution
The theme runs on 13 ACF Pro blocks with their field groups saved as JSON in the theme, so fields travel with the code. Address, hours and other business details live in one Theme Settings screen.
Events are their own post type. The team adds an event once and it appears on the home page and the calendar, then drops off by itself the day after it runs.
There are five Contact Form 7 forms, one for each kind of inquiry. Membership goes to the club team, storage goes to the storage team, and if someone ticks that they are interested in both, the other team is copied in. CFDB7 keeps a copy of every submission.
For the unconfirmed content, I added a preview mode. Anything still waiting on a decision carries a CONFIRM tag that shows only while preview mode is on, and the schema never outputs a value that is not confirmed yet.
Results
- Past events take themselves off the site
- Each inquiry reaches the right team, with a copy where it matters
- Unconfirmed details cannot slip into the live pages or the schema
- Event, FAQ and local business schema generated from the club's own data