If you want to offer different prices based on the day of the week and time of day (e.g., weekday mornings, weekend full days, etc.), follow these steps using the WP Booking Calendar.
Example Pricing Goals
- Full Day (Monday–Thursday): €220
- Morning or Evening (Monday–Thursday): €140
- Full Day (Friday–Sunday): €360
- Morning or Evening (Friday–Sunday): €260
Book one day of the week for the full day or two time slots, which would be from 10:00 a.m. to 2:00 p.m. and from 6:00 p.m. to 10:00 p.m.
Step 1: Add Time-Slot Selection to Your Booking Form
Go to: WP Booking Calendar > Settings > Booking Form > Booking Form Fields
Use this conditional setup to define different time-slot options for weekdays and weekends:
[condition name="weekday-condition" type="weekday" value="1,2,3,4"]
[selectbox rangetime "Full Day@@00:00 - 23:59" "Morning@@10:00 - 14:00" "Evening@@18:00 - 22:00"]
[/condition]
[condition name="weekday-condition" type="weekday" value="5,6,0"]
[selectbox rangetime "Full Day@@00:00 - 23:58" "Morning@@10:00 - 13:59" "Evening@@18:00 - 21:59"]
[/condition]
[condition name="weekday-condition" type="weekday" value="*"]
[selectbox rangetime
"Full Day@@00:00 - 23:59"
"Morning@@10:00 - 14:00"
"Evening@@18:00 - 22:00"
"Full Day@@00:00 - 23:58"
"Morning@@10:00 - 13:59"
"Evening@@18:00 - 21:59"]
[/condition]
In this example, weekdays have time slots like `[selectbox rangetime "Full Day@@00:00 - 23:59" "Morning@@10:00 - 14:00" "Evening@@18:00 - 22:00" ]` and weekends have time slots like `[selectbox rangetime "Full Day@@00:00 - 23:58" "Morning@@10:00 - 13:59" "Evening@@18:00 - 21:59" ]`.
Please note the slight difference in end times between weekdays (e.g., 14:00) and weekends (e.g., 13:59). This allows for different options and cost settings later on.
The last section in the configuration (`[condition name="weekday-condition" type="weekday" value="*"]`) is the default section. It must include all different time selection options as shown in the example: `[selectbox rangetime "Full Day@@00:00 - 23:59" "Morning@@10:00 - 14:00" "Evening@@18:00 - 22:00" "Full Day@@00:00 - 23:58" "Morning@@10:00 - 13:59" "Evening@@18:00 - 21:59"]`. This last section will be visible on the `WP Booking Calendar > Prices > Form Options Costs` page.
Step 2: Set Daily Costs to 0.
Go to: WP Booking Calendar > Prices > Daily Costs
Set the daily cost for the resource to 0, so the actual price will depend entirely on the selected time slot.
Step 3: Define Pricing for Time Options
Navigate to: WP Booking Calendar > Prices > Form Options Costs
Here you’ll assign specific prices to each time slot depending on the day (weekday or weekend). Use the labels from the form field (like "Morning", "Evening", "Full Day") and match them with the corresponding weekday group.
Step 4: Save and Test
After saving, test the form by selecting different weekdays and time ranges. You should see the correct price update according to your configuration.
Summary: Sample Booking Form Snippet
<div class="wpbc_wizard__border_container">
<div class="wpbc_wizard_step wpbc__form__div wpbc_wizard_step1">
<r>
<c style="flex: 1 1 74%;">
<r style="gap: 30px;">
<c style="flex: 1 1 220px;"> <l>Select Date *</l><br /><spacer>height:18px;</spacer> [calendar] </c>
<c style="flex: 1 1 190px;"> <l>Select Times *</l><br /><spacer>height:20px;</spacer>
[condition name="weekday-condition" type="weekday" value="1,2,3,4"]
[selectbox rangetime "Full Day@@00:00 - 23:59" "Morning@@10:00 - 14:00" "Evening@@18:00 - 22:00" ]
[/condition]
[condition name="weekday-condition" type="weekday" value="5,6,0"]
[selectbox rangetime "Full Day@@00:00 - 23:58" "Morning@@10:00 - 13:59" "Evening@@18:00 - 21:59" ]
[/condition]
[condition name="weekday-condition" type="weekday" value="*"]
[selectbox rangetime "Full Day@@00:00 - 23:59" "Morning@@10:00 - 14:00" "Evening@@18:00 - 22:00" "Full Day@@00:00 - 23:58" "Morning@@10:00 - 13:59" "Evening@@18:00 - 21:59"]
[/condition]
</c>
</r>
</c>
</r>
<r> <c>
<div class="form-hints">
Date: <strong>[selected_dates_hint]</strong><spacer>width:2em;</spacer>
Time: <strong>[start_time_hint] - [end_time_hint]</strong>
</div>
</c>
<c>Total Cost: <strong>[cost_hint]</strong></c>
</r>
<hr>
<r>
<c class="wpbc_aling_right" >
<a class="wpbc_button_light wpbc_wizard_step_button wpbc_wizard_step_2" >
Next</a>
</c>
</r>
</div>
<div class="wpbc_wizard_step wpbc__form__div wpbc_wizard_step2 wpbc_wizard_step_hidden" style="display:none;clear:both;">
<r>
<c> <l>First Name *</l><br />[text* name] </c>
<c> <l>Last Name *</l><br />[text* secondname] </c>
</r>
<r>
<c> <l>Email *</l><br />[email* email] </c>
<c> <l>Phone</l><br />[text phone] </c>
</r>
<r>
<c> <l>Details</l><spacer></spacer>
[textarea details] </c>
</r>
<spacer>height:10px;</spacer>
<r>
<c> [checkbox* term_and_condition use_label_element "I Accept term and conditions"] </c>
<c> [captcha] </c>
</r>
<r> <c>
<div class="form-hints">
Date: <strong>[selected_dates_hint]</strong><spacer>width:2em;</spacer>
Time: <strong>[start_time_hint] - [end_time_hint]</strong>
</div>
</c>
<c>Total Cost: <strong>[cost_hint]</strong></c>
</r>
<hr>
<r>
<c class="wpbc_aling_right" >
<a class="wpbc_button_light wpbc_wizard_step_button wpbc_wizard_step_1">
Back</a><spacer>width:20px;</spacer>
[submit "Send"]
</c>
</r>
</div>
</div>