Hair salon · Möllevången, Malmö

Book at Saxen & Sol

Open Tuesday to SaturdayMöllevångstorget

What would you like?

One page, one post type

The booking system is one WordPress page. Every booking is a post.

Every Dreamformer page is real HTML, CSS and JavaScript, stored in WordPress. This one also works with PHP: each booking is saved as a post of its own type, so the salon finds it in wp-admin and every visitor sees the time as taken.

  • Times that fitA balayage only shows three-hour gaps, and never runs past closing
  • Any stylistOr the first free chair, whoever it is
  • Saved in WordPressA Bookings post type, checked by PHP before anything is saved
  • The salon's viewEvery chair's day, the takings, and bookings moved by dragging
The Bookings screen in wp-admin: each booking with its reference and first name, the day and time, the treatment, the stylist and the price.
The Bookings screen in wp-admin. Bookings from the page land here, and the salon can add one taken over the phone.

An excerpt from the theme's PHP

register_post_type( 'dfx_booking', array(
    'labels'    => array(
        'name'          => 'Bookings',
        'singular_name' => 'Booking',
        // …
    ),
    'public'    => false,
    'show_ui'   => true,
    'menu_icon' => 'dashicons-calendar-alt',
    // …
) );

The page talks to endpoints under /wp-json/dfx/v1/bookings to read the diary, book, move and cancel. Before anything is saved, PHP checks the booking against the salon's hours, the stylists' lunches and every other booking, and works out the price itself.

With Dreamformer Pro, ask the chat for content you keep adding yourself, like events or team members, and it writes a post type like this into your theme's PHP.