custom_day_schedule_form.php
1 year ago
default_form_fields.php
1 year ago
general.php
1 year ago
get_pro.php
1 year ago
import_modal.php
1 year ago
notifications.php
1 year ago
pages.php
1 year ago
payments.php
1 year ago
steps_order_modal.php
1 year ago
version_5_intro.php
1 year ago
work_periods.php
1 year ago
general.php
515 lines
| 1 | <?php |
| 2 | if ( ! defined( 'ABSPATH' ) ) { |
| 3 | exit; // Exit if accessed directly |
| 4 | } |
| 5 | ?> |
| 6 | <div class="latepoint-settings-w os-form-w"> |
| 7 | <form action="" data-os-action="<?php echo esc_attr(OsRouterHelper::build_route_name( 'settings', 'update' )); ?>"> |
| 8 | <?php wp_nonce_field( 'update_settings' ); ?> |
| 9 | <div class="white-box section-anchor" id="stickySectionAppointment"> |
| 10 | <div class="white-box-header"> |
| 11 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Appointment Settings', 'latepoint' ); ?></h3></div> |
| 12 | </div> |
| 13 | <div class="white-box-content no-padding"> |
| 14 | <div class="sub-section-row"> |
| 15 | <div class="sub-section-label"> |
| 16 | <h3><?php esc_html_e( 'Statuses', 'latepoint' ) ?></h3> |
| 17 | </div> |
| 18 | <div class="sub-section-content"> |
| 19 | <div class="os-row os-mb-3"> |
| 20 | <div class="os-col-lg-6"> |
| 21 | <?php echo OsFormHelper::select_field( 'settings[default_booking_status]', __( 'Default status', 'latepoint' ), OsBookingHelper::get_statuses_list(), OsBookingHelper::get_default_booking_status() ); ?> |
| 22 | </div> |
| 23 | <div class="os-col-lg-6"> |
| 24 | <?php echo OsFormHelper::multi_select_field( 'settings[timeslot_blocking_statuses]', __( 'Statuses that block timeslot', 'latepoint' ), OsBookingHelper::get_statuses_list(), OsBookingHelper::get_timeslot_blocking_statuses() ); ?> |
| 25 | </div> |
| 26 | </div> |
| 27 | <div class="os-row os-mb-3"> |
| 28 | <div class="os-col-lg-6"> |
| 29 | <?php echo OsFormHelper::multi_select_field( 'settings[need_action_statuses]', __( 'Statuses that appear on pending page', 'latepoint' ), OsBookingHelper::get_statuses_list(), OsBookingHelper::get_booking_statuses_for_pending_page() ); ?> |
| 30 | </div> |
| 31 | <div class="os-col-lg-6"> |
| 32 | <?php echo OsFormHelper::multi_select_field( 'settings[calendar_hidden_statuses]', __( 'Statuses hidden on calendar', 'latepoint' ), OsBookingHelper::get_statuses_list(), OsCalendarHelper::get_booking_statuses_hidden_from_calendar() ); ?> |
| 33 | </div> |
| 34 | </div> |
| 35 | <div class="os-row"> |
| 36 | <div class="os-col-12"> |
| 37 | <?php echo OsFormHelper::text_field( 'settings[additional_booking_statuses]', __( 'Additional Statuses (comma separated)', 'latepoint' ), OsSettingsHelper::get_settings_value( 'additional_booking_statuses' ), [ 'theme' => 'simple' ] ); ?> |
| 38 | </div> |
| 39 | </div> |
| 40 | </div> |
| 41 | </div> |
| 42 | <div class="sub-section-row"> |
| 43 | <div class="sub-section-label"> |
| 44 | <h3><?php esc_html_e( 'Date and time', 'latepoint' ) ?></h3> |
| 45 | </div> |
| 46 | <div class="sub-section-content"> |
| 47 | <div class="os-row os-mb-3"> |
| 48 | <div class="os-col-6"> |
| 49 | <?php echo OsFormHelper::select_field( 'settings[time_system]', __( 'Time system', 'latepoint' ), OsTimeHelper::get_time_systems_list_for_select(), OsTimeHelper::get_time_system() ); ?> |
| 50 | </div> |
| 51 | <div class="os-col-6"> |
| 52 | <?php echo OsFormHelper::select_field( 'settings[date_format]', __( 'Date format', 'latepoint' ), OsTimeHelper::get_date_formats_list_for_select(), OsSettingsHelper::get_date_format() ); ?> |
| 53 | </div> |
| 54 | </div> |
| 55 | <?php echo OsFormHelper::text_field( 'settings[timeblock_interval]', __( 'Selectable intervals', 'latepoint' ), OsSettingsHelper::get_default_timeblock_interval(), [ |
| 56 | 'class' => 'os-mask-minutes', |
| 57 | 'theme' => 'simple' |
| 58 | ] ); ?> |
| 59 | <div class="os-row os-mb-3"> |
| 60 | <div class="os-col-lg-6"> |
| 61 | <?php echo OsFormHelper::toggler_field( 'settings[show_booking_end_time]', __( 'Show appointment end time', 'latepoint' ), OsSettingsHelper::is_on( 'show_booking_end_time' ), false, false, [ 'sub_label' => __( 'Show booking end time during booking process and on summary', 'latepoint' ) ] ); ?> |
| 62 | </div> |
| 63 | <div class="os-col-lg-6"> |
| 64 | <?php echo OsFormHelper::toggler_field( 'settings[disable_verbose_date_output]', __( 'Disable verbose date output', 'latepoint' ), OsSettingsHelper::is_on( 'disable_verbose_date_output' ), false, false, [ 'sub_label' => __( 'Use number instead of name of the month when outputting dates', 'latepoint' ) ] ); ?> |
| 65 | </div> |
| 66 | </div> |
| 67 | </div> |
| 68 | </div> |
| 69 | </div> |
| 70 | </div> |
| 71 | <div class="white-box section-anchor" id="stickySectionRestrictions"> |
| 72 | <div class="white-box-header"> |
| 73 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Restrictions', 'latepoint' ); ?></h3></div> |
| 74 | </div> |
| 75 | <div class="white-box-content no-padding"> |
| 76 | |
| 77 | <div class="sub-section-row"> |
| 78 | <div class="sub-section-label"> |
| 79 | <h3><?php esc_html_e( 'Time Restrictions', 'latepoint' ) ?></h3> |
| 80 | </div> |
| 81 | <div class="sub-section-content"> |
| 82 | <div class="latepoint-message latepoint-message-subtle"><?php esc_html_e( 'You can set restrictions on earliest/latest dates in the future when your customer can place an appointment. You can either use a relative values like for example "+1 month", "+2 weeks", "+5 days", "+3 hours", "+30 minutes" (entered without quotes), or you can use a fixed date in format YYYY-MM-DD. Leave blank to remove any limitations.', 'latepoint' ); ?></div> |
| 83 | <div class="os-row"> |
| 84 | <div class="os-col-lg-6"> |
| 85 | <?php echo OsFormHelper::text_field( 'settings[earliest_possible_booking]', __( 'Earliest Possible Booking', 'latepoint' ), OsSettingsHelper::get_settings_value( 'earliest_possible_booking' ), [ 'theme' => 'simple' ] ); ?> |
| 86 | </div> |
| 87 | <div class="os-col-lg-6"> |
| 88 | <?php echo OsFormHelper::text_field( 'settings[latest_possible_booking]', __( 'Latest Possible Booking', 'latepoint' ), OsSettingsHelper::get_settings_value( 'latest_possible_booking' ), [ 'theme' => 'simple' ] ); ?> |
| 89 | </div> |
| 90 | </div> |
| 91 | </div> |
| 92 | </div> |
| 93 | <div class="sub-section-row"> |
| 94 | <div class="sub-section-label"> |
| 95 | <h3><?php esc_html_e( 'Quantity Restrictions', 'latepoint' ) ?></h3> |
| 96 | </div> |
| 97 | <div class="sub-section-content"> |
| 98 | <?php echo OsFormHelper::text_field( 'settings[max_future_bookings_per_customer]', __( 'Maximum Number of Future Bookings per Customer', 'latepoint' ), OsSettingsHelper::get_settings_value( 'max_future_bookings_per_customer' ), [ 'theme' => 'simple' ] ); ?> |
| 99 | </div> |
| 100 | </div> |
| 101 | <?php |
| 102 | /** |
| 103 | * Plug after general settings section called restrictions |
| 104 | * |
| 105 | * @since 5.0.0 |
| 106 | * @hook latepoint_general_settings_section_restrictions_after |
| 107 | * |
| 108 | */ |
| 109 | do_action( 'latepoint_general_settings_section_restrictions_after' ); ?> |
| 110 | </div> |
| 111 | </div> |
| 112 | <div class="white-box section-anchor" id="stickySectionCurrency"> |
| 113 | <div class="white-box-header"> |
| 114 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Currency & Price', 'latepoint' ); ?></h3></div> |
| 115 | </div> |
| 116 | <div class="white-box-content no-padding"> |
| 117 | <div class="sub-section-row"> |
| 118 | <div class="sub-section-label"> |
| 119 | <h3><?php esc_html_e( 'Symbol', 'latepoint' ) ?></h3> |
| 120 | </div> |
| 121 | <div class="sub-section-content"> |
| 122 | <div class="os-row"> |
| 123 | <div class="os-col-lg-4"> |
| 124 | <?php echo OsFormHelper::text_field( 'settings[currency_symbol_before]', __( 'Symbol before the price', 'latepoint' ), OsSettingsHelper::get_settings_value( 'currency_symbol_before', '$' ), [ 'theme' => 'simple' ] ); ?> |
| 125 | </div> |
| 126 | <div class="os-col-lg-4"> |
| 127 | <?php echo OsFormHelper::text_field( 'settings[currency_symbol_after]', __( 'Symbol after the price', 'latepoint' ), OsSettingsHelper::get_settings_value( 'currency_symbol_after' ), [ 'theme' => 'simple' ] ); ?> |
| 128 | </div> |
| 129 | </div> |
| 130 | </div> |
| 131 | </div> |
| 132 | <div class="sub-section-row"> |
| 133 | <div class="sub-section-label"> |
| 134 | <h3><?php esc_html_e( 'Formatting', 'latepoint' ) ?></h3> |
| 135 | </div> |
| 136 | <div class="sub-section-content"> |
| 137 | <div class="os-row"> |
| 138 | <div class="os-col-lg-4"> |
| 139 | <?php echo OsFormHelper::select_field( 'settings[thousand_separator]', __( 'Thousand Separator', 'latepoint' ), [ |
| 140 | ',' => __( 'Comma', 'latepoint' ) . ' (1,000)', |
| 141 | '.' => __( 'Dot', 'latepoint' ) . ' (1.000)', |
| 142 | ' ' => __( 'Space', 'latepoint' ) . ' (1 000)', |
| 143 | '' => __( 'None', 'latepoint' ) . ' (1000)' |
| 144 | ], OsSettingsHelper::get_settings_value( 'thousand_separator', ',' ) ); ?> |
| 145 | </div> |
| 146 | <div class="os-col-lg-4"> |
| 147 | <?php echo OsFormHelper::select_field( 'settings[decimal_separator]', __( 'Decimal Separator', 'latepoint' ), [ |
| 148 | '.' => __( 'Dot', 'latepoint' ) . ' (0.99)', |
| 149 | ',' => __( 'Comma', 'latepoint' ) . ' (0,99)' |
| 150 | ], OsSettingsHelper::get_settings_value( 'decimal_separator', '.' ) ); ?> |
| 151 | </div> |
| 152 | <div class="os-col-lg-4"> |
| 153 | <?php echo OsFormHelper::select_field( 'settings[number_of_decimals]', __( 'Number of Decimals', 'latepoint' ), [ 0, 1, 2, 3, 4 ], OsSettingsHelper::get_settings_value( 'number_of_decimals', '2' ) ); ?> |
| 154 | </div> |
| 155 | </div> |
| 156 | </div> |
| 157 | </div> |
| 158 | <div class="sub-section-row"> |
| 159 | <div class="sub-section-label"> |
| 160 | <h3><?php esc_html_e( 'Prices', 'latepoint' ) ?></h3> |
| 161 | </div> |
| 162 | <div class="sub-section-content"> |
| 163 | <?php echo OsFormHelper::toggler_field( 'settings[hide_breakdown_if_subtotal_zero]', __( 'Do not show price breakdown, if service price is zero', 'latepoint' ), OsSettingsHelper::is_on( 'hide_breakdown_if_subtotal_zero' ) ); ?> |
| 164 | </div> |
| 165 | </div> |
| 166 | </div> |
| 167 | </div> |
| 168 | <div class="white-box section-anchor" id="stickySectionPhone"> |
| 169 | <div class="white-box-header"> |
| 170 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Phone Settings', 'latepoint' ); ?></h3></div> |
| 171 | </div> |
| 172 | <div class="white-box-content no-padding"> |
| 173 | <div class="sub-section-row phone-country-picker-settings"> |
| 174 | <div class="sub-section-label"> |
| 175 | <h3><?php esc_html_e( 'Countries', 'latepoint' ) ?></h3> |
| 176 | </div> |
| 177 | <div class="sub-section-content"> |
| 178 | <div class="phone-country-picker-settings"> |
| 179 | <div class="os-row os-mb-2"> |
| 180 | <div class="os-col-lg-4"> |
| 181 | <?php echo OsFormHelper::select_field( 'settings[list_of_phone_countries]', __( 'Countries shown in phone field', 'latepoint' ), [ |
| 182 | LATEPOINT_ALL => __( 'Show all countries', 'latepoint' ), |
| 183 | 'select' => __( 'Show selected countries', 'latepoint' ) |
| 184 | ], OsSettingsHelper::get_settings_value( 'list_of_phone_countries', LATEPOINT_ALL ) ); ?> |
| 185 | </div> |
| 186 | <div class="os-col-lg-8"> |
| 187 | <?php echo OsFormHelper::select_field( 'settings[default_phone_country]', __( 'Default Country (if not auto-detected)', 'latepoint' ), OsUtilHelper::get_countries_list(), OsSettingsHelper::get_default_phone_country() ); ?> |
| 188 | </div> |
| 189 | </div> |
| 190 | <div class="os-row"> |
| 191 | <div class="os-col-12 select-phone-countries-wrapper" |
| 192 | style="<?php echo ( OsSettingsHelper::get_settings_value( 'list_of_phone_countries', LATEPOINT_ALL ) == LATEPOINT_ALL ) ? 'display: none;' : ''; ?>"> |
| 193 | <?php echo OsFormHelper::multi_select_field( 'settings[included_phone_countries]', __( 'Select countries available for phone number field', 'latepoint' ), OsUtilHelper::get_countries_list(), OsSettingsHelper::get_included_phone_countries() ); ?> |
| 194 | </div> |
| 195 | </div> |
| 196 | </div> |
| 197 | </div> |
| 198 | </div> |
| 199 | <div class="sub-section-row phone-country-picker-settings"> |
| 200 | <div class="sub-section-label"> |
| 201 | <h3><?php esc_html_e( 'Validation', 'latepoint' ) ?></h3> |
| 202 | </div> |
| 203 | <div class="sub-section-content"> |
| 204 | <?php echo OsFormHelper::toggler_field( 'settings[validate_phone_number]', __( 'Validate phone typed fields if they are set as required', 'latepoint' ), OsSettingsHelper::is_on( 'validate_phone_number' ), false, false, [ 'sub_label' => __( 'Reject invalid phone for customers and agents if the phone field is set as required', 'latepoint' ) ] ); ?> |
| 205 | <?php echo OsFormHelper::toggler_field( 'settings[mask_phone_number_fields]', __( 'Format phone number on input', 'latepoint' ), OsSettingsHelper::is_on( 'mask_phone_number_fields', LATEPOINT_VALUE_ON ), false, false, [ 'sub_label' => __( 'Applies formatting on phone fields based on the country selected (not recommended for countries that have multiple NSN lengths)', 'latepoint' ) ] ); ?> |
| 206 | <?php echo OsFormHelper::toggler_field( 'settings[show_dial_code_with_flag]', __( 'Show country dial code next to flag', 'latepoint' ), OsSettingsHelper::is_enabled_show_dial_code_with_flag(), false, false, [ 'sub_label' => __( 'If enabled, will show a country code next to a flag, for example +1 for United States', 'latepoint' ) ] ); ?> |
| 207 | </div> |
| 208 | </div> |
| 209 | </div> |
| 210 | </div> |
| 211 | <div class="white-box section-anchor" id="stickySectionAgent"> |
| 212 | <div class="white-box-header"> |
| 213 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Timeslot Availability Logic', 'latepoint' ); ?></h3> |
| 214 | </div> |
| 215 | </div> |
| 216 | <div class="white-box-content no-padding"> |
| 217 | <div class="sub-section-row"> |
| 218 | <div class="sub-section-label"> |
| 219 | <h3><?php esc_html_e( 'Restrictions', 'latepoint' ) ?></h3> |
| 220 | </div> |
| 221 | <div class="sub-section-content"> |
| 222 | <?php echo OsFormHelper::toggler_field( 'settings[one_agent_at_location]', __( 'Location can only be used by one agent at a time', 'latepoint' ), OsSettingsHelper::is_on( 'one_agent_at_location' ), '', 'large', [ 'sub_label' => __( 'At any given location, only one agent can be booked at a time', 'latepoint' ) ] ); ?> |
| 223 | <?php echo OsFormHelper::toggler_field( 'settings[one_location_at_time]', __( 'Agents can only be present in one location at a time', 'latepoint' ), OsSettingsHelper::is_on( 'one_location_at_time' ), '', 'large', [ 'sub_label' => __( 'If an agent is booked at one location, he will not be able to accept any bookings for the same timeslot at other locations', 'latepoint' ) ] ); ?> |
| 224 | </div> |
| 225 | </div> |
| 226 | <div class="sub-section-row"> |
| 227 | <div class="sub-section-label"> |
| 228 | <h3><?php esc_html_e( 'Permissions', 'latepoint' ) ?></h3> |
| 229 | </div> |
| 230 | <div class="sub-section-content"> |
| 231 | <?php echo OsFormHelper::toggler_field( 'settings[multiple_services_at_time]', __( 'One agent can perform different services simultaneously', 'latepoint' ), OsSettingsHelper::is_on( 'multiple_services_at_time' ), '', 'large', [ 'sub_label' => __( 'Allows an agent to be booked for different services within the same timeslot', 'latepoint' ) ] ); ?> |
| 232 | </div> |
| 233 | </div> |
| 234 | </div> |
| 235 | </div> |
| 236 | <div class="white-box section-anchor" id="stickySectionCustomer"> |
| 237 | <div class="white-box-header"> |
| 238 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Customer Settings', 'latepoint' ); ?></h3></div> |
| 239 | </div> |
| 240 | <div class="white-box-content no-padding"> |
| 241 | <div class="sub-section-row"> |
| 242 | <div class="sub-section-label"> |
| 243 | <h3><?php esc_html_e( 'Rescheduling', 'latepoint' ) ?></h3> |
| 244 | </div> |
| 245 | <div class="sub-section-content"> |
| 246 | <?php echo OsFormHelper::toggler_field( 'settings[allow_customer_booking_reschedule]', __( 'Allow customers reschedule their bookings', 'latepoint' ), OsSettingsHelper::is_on( 'allow_customer_booking_reschedule' ), 'reschedule_settings', 'normal', [ 'sub_label' => __( 'If enable, shows a button on customer cabinet to reschedule an appointment', 'latepoint' ) ] ); ?> |
| 247 | <div class="os-mb-2" |
| 248 | id="reschedule_settings" <?php echo OsSettingsHelper::is_on( 'allow_customer_booking_reschedule' ) ? '' : 'style="display:none"' ?>> |
| 249 | <?php echo OsFormHelper::toggler_field( 'settings[limit_when_customer_can_reschedule]', __( 'Set restriction on when customer can reschedule', 'latepoint' ), OsSettingsHelper::is_on( 'limit_when_customer_can_reschedule' ), 'reschedule_limit_settings' ); ?> |
| 250 | <div class="os-mb-2" |
| 251 | id="reschedule_limit_settings" <?php echo OsSettingsHelper::is_on( 'limit_when_customer_can_reschedule' ) ? '' : 'style="display:none"' ?>> |
| 252 | <div class="merged-fields os-mt-1"> |
| 253 | <div class="merged-label"><?php esc_html_e( 'Can reschedule when it is at least', 'latepoint' ); ?></div> |
| 254 | <?php echo OsFormHelper::text_field( 'settings[reschedule_limit_value]', false, OsSettingsHelper::get_settings_value( 'reschedule_limit_value', 5 ), [ 'placeholder' => __( 'Value', 'latepoint' ) ] ); ?> |
| 255 | <?php echo OsFormHelper::select_field( 'settings[reschedule_limit_unit]', false, |
| 256 | array( |
| 257 | 'minute' => __( 'minutes', 'latepoint' ), |
| 258 | 'hour' => __( 'hours', 'latepoint' ), |
| 259 | 'day' => __( 'days', 'latepoint' ) |
| 260 | ), |
| 261 | OsSettingsHelper::get_settings_value( 'reschedule_limit_unit', 'hour' ) ); ?> |
| 262 | <div class="merged-label"><?php esc_html_e( 'before appointment start time', 'latepoint' ); ?></div> |
| 263 | </div> |
| 264 | </div> |
| 265 | <?php echo OsFormHelper::toggler_field( 'settings[change_status_on_customer_reschedule]', __( 'Change booking status when customer reschedules', 'latepoint' ), OsSettingsHelper::is_on( 'change_status_on_customer_reschedule' ), 'reschedule_change_status_settings' ); ?> |
| 266 | <div class="os-mb-2" |
| 267 | id="reschedule_change_status_settings" <?php echo OsSettingsHelper::is_on( 'change_status_on_customer_reschedule' ) ? '' : 'style="display:none"' ?>> |
| 268 | <div class="merged-fields os-mt-1"> |
| 269 | <div class="merged-label"><?php esc_html_e( 'Change status to:', 'latepoint' ); ?></div> |
| 270 | <?php echo OsFormHelper::select_field( 'settings[status_to_set_after_customer_reschedule]', false, |
| 271 | OsBookingHelper::get_statuses_list(), |
| 272 | OsSettingsHelper::get_settings_value( 'status_to_set_after_customer_reschedule', LATEPOINT_BOOKING_STATUS_PENDING ) ); ?> |
| 273 | </div> |
| 274 | </div> |
| 275 | </div> |
| 276 | </div> |
| 277 | </div> |
| 278 | <div class="sub-section-row"> |
| 279 | <div class="sub-section-label"> |
| 280 | <h3><?php esc_html_e( 'Cancellation', 'latepoint' ) ?></h3> |
| 281 | </div> |
| 282 | <div class="sub-section-content"> |
| 283 | <?php echo OsFormHelper::toggler_field( 'settings[allow_customer_booking_cancellation]', __( 'Allow customers cancel their bookings', 'latepoint' ), OsSettingsHelper::is_on( 'allow_customer_booking_cancellation' ), 'cancellation_settings', 'normal', [ 'sub_label' => __( 'If enable, shows a button on customer cabinet to cancel an appointment', 'latepoint' ) ] ); ?> |
| 284 | <div class="os-mb-2" |
| 285 | id="cancellation_settings" <?php echo OsSettingsHelper::is_on( 'allow_customer_booking_cancellation' ) ? '' : 'style="display:none"' ?>> |
| 286 | <?php echo OsFormHelper::toggler_field( 'settings[limit_when_customer_can_cancel]', __( 'Set restriction on when customer can cancel', 'latepoint' ), OsSettingsHelper::is_on( 'limit_when_customer_can_cancel' ), 'cancellation_limit_settings' ); ?> |
| 287 | <div class="os-mb-4" |
| 288 | id="cancellation_limit_settings" <?php echo OsSettingsHelper::is_on( 'limit_when_customer_can_cancel' ) ? '' : 'style="display:none"' ?>> |
| 289 | <div class="merged-fields os-mt-1"> |
| 290 | <div class="merged-label"><?php esc_html_e( 'Can cancel when it is at least', 'latepoint' ); ?></div> |
| 291 | <?php echo OsFormHelper::text_field( 'settings[cancellation_limit_value]', false, OsSettingsHelper::get_settings_value( 'cancellation_limit_value', 5 ), [ 'placeholder' => __( 'Value', 'latepoint' ) ] ); ?> |
| 292 | <?php echo OsFormHelper::select_field( 'settings[cancellation_limit_unit]', false, |
| 293 | array( |
| 294 | 'minute' => __( 'minutes', 'latepoint' ), |
| 295 | 'hour' => __( 'hours', 'latepoint' ), |
| 296 | 'day' => __( 'days', 'latepoint' ) |
| 297 | ), |
| 298 | OsSettingsHelper::get_settings_value( 'cancellation_limit_unit', 'hour' ) ); ?> |
| 299 | <div class="merged-label"><?php esc_html_e( 'before appointment start time', 'latepoint' ); ?></div> |
| 300 | </div> |
| 301 | </div> |
| 302 | </div> |
| 303 | </div> |
| 304 | </div> |
| 305 | <div class="sub-section-row"> |
| 306 | <div class="sub-section-label"> |
| 307 | <h3><?php esc_html_e( 'Customer Cabinet', 'latepoint' ) ?></h3> |
| 308 | </div> |
| 309 | <div class="sub-section-content"> |
| 310 | <div class="os-mt-2"> |
| 311 | <?php echo OsFormHelper::text_field( 'settings[customer_dashboard_book_shortcode]', __( 'Shortcode for contents of New Appointment tab', 'latepoint' ), OsSettingsHelper::get_settings_value( 'customer_dashboard_book_shortcode', '[latepoint_book_form]' ), [ 'theme' => 'simple' ] ); ?> |
| 312 | </div> |
| 313 | <div class="os-mt-2"> |
| 314 | <div class="latepoint-message latepoint-message-subtle"><?php esc_html_e( 'You can set attributes for a new appointment button tile in a format', 'latepoint' ); ?> |
| 315 | <strong>data-selected-agent="ID" data-selected-location="ID" etc...</strong></div> |
| 316 | <?php echo OsFormHelper::text_field( 'settings[customer_dashboard_book_button_attributes]', __( 'Attributes for New Appointment button', 'latepoint' ), OsSettingsHelper::get_settings_value( 'customer_dashboard_book_button_attributes', '' ), [ 'theme' => 'simple' ] ); ?> |
| 317 | </div> |
| 318 | </div> |
| 319 | </div> |
| 320 | <div class="sub-section-row"> |
| 321 | <div class="sub-section-label"> |
| 322 | <h3><?php esc_html_e( 'Authentication', 'latepoint' ) ?></h3> |
| 323 | </div> |
| 324 | <div class="sub-section-content"> |
| 325 | <?php echo OsFormHelper::toggler_field( 'settings[wp_users_as_customers]', __( 'Use WordPress users as customers', 'latepoint' ), OsSettingsHelper::is_on( 'wp_users_as_customers' ), false, false, [ 'sub_label' => __( 'Customers can login using their WordPress credentials', 'latepoint' ) ] ); ?> |
| 326 | <?php echo OsFormHelper::toggler_field( 'settings[steps_require_setting_password]', __( 'Require customers to set password', 'latepoint' ), OsSettingsHelper::is_on( 'steps_require_setting_password' ), false, false, [ 'sub_label' => __( 'Shows password field on registration step', 'latepoint' ) ] ); ?> |
| 327 | <?php echo OsFormHelper::toggler_field( 'settings[steps_hide_login_register_tabs]', __( 'Remove login and register tabs', 'latepoint' ), OsSettingsHelper::is_on( 'steps_hide_login_register_tabs' ), false, false, [ 'sub_label' => __( 'This will disable ability for customers to login or register on booking form', 'latepoint' ) ] ); ?> |
| 328 | <?php echo OsFormHelper::toggler_field( 'settings[steps_hide_registration_prompt]', __( 'Hide "Create Account" prompt on confirmation step', 'latepoint' ), OsSettingsHelper::is_on( 'steps_hide_registration_prompt' ) ); ?> |
| 329 | </div> |
| 330 | </div> |
| 331 | |
| 332 | <?php |
| 333 | /** |
| 334 | * Plug after customer general settings output |
| 335 | * |
| 336 | * @since 5.1.0 |
| 337 | * @hook latepoint_settings_general_customer_after |
| 338 | * |
| 339 | */ |
| 340 | do_action( 'latepoint_settings_general_customer_after' ); ?> |
| 341 | </div> |
| 342 | </div> |
| 343 | <div class="white-box section-anchor" id="stickySectionSetup"> |
| 344 | <div class="white-box-header"> |
| 345 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Setup Pages', 'latepoint' ); ?></h3></div> |
| 346 | </div> |
| 347 | <div class="white-box-content no-padding"> |
| 348 | <div class="sub-section-row"> |
| 349 | <div class="sub-section-label"> |
| 350 | <h3><?php esc_html_e( 'Set Page URLs', 'latepoint' ) ?></h3> |
| 351 | </div> |
| 352 | <div class="sub-section-content"> |
| 353 | <?php echo OsFormHelper::text_field( 'settings[page_url_customer_dashboard]', __( 'Customer Dashboard Page URL', 'latepoint' ), OsSettingsHelper::get_customer_dashboard_url( false ), [ 'theme' => 'simple' ] ); ?> |
| 354 | <?php echo OsFormHelper::text_field( 'settings[page_url_customer_login]', __( 'Customer Login Page URL', 'latepoint' ), OsSettingsHelper::get_customer_login_url( false ), [ 'theme' => 'simple' ] ); ?> |
| 355 | </div> |
| 356 | </div> |
| 357 | </div> |
| 358 | </div> |
| 359 | <?php |
| 360 | /** |
| 361 | * Plug before "Other Settings" section in general settings |
| 362 | * |
| 363 | * @since 5.1.0 |
| 364 | * @hook latepoint_settings_general_before_other |
| 365 | * |
| 366 | */ |
| 367 | do_action( 'latepoint_settings_general_before_other' ); ?> |
| 368 | <div class="white-box section-anchor" id="stickySectionOther"> |
| 369 | <div class="white-box-header"> |
| 370 | <div class="os-form-sub-header"><h3><?php esc_html_e( 'Other Settings', 'latepoint' ); ?></h3></div> |
| 371 | </div> |
| 372 | <div class="white-box-content no-padding"> |
| 373 | <div class="sub-section-row"> |
| 374 | <div class="sub-section-label"> |
| 375 | <h3><?php esc_html_e( 'Business Information', 'latepoint' ) ?></h3> |
| 376 | </div> |
| 377 | <div class="sub-section-content"> |
| 378 | <div class="os-row os-mb-2"> |
| 379 | <div class="os-col-lg-12"> |
| 380 | <?php echo OsFormHelper::media_uploader_field( 'settings[business_logo]', 0, __( 'Company Logo', 'latepoint' ), __( 'Remove Image', 'latepoint' ), OsSettingsHelper::get_settings_value( 'business_logo' ) ); ?> |
| 381 | </div> |
| 382 | </div> |
| 383 | <div class="os-row"> |
| 384 | <div class="os-col-lg-3"> |
| 385 | <?php echo OsFormHelper::text_field( 'settings[business_name]', __( 'Company Name', 'latepoint' ), OsSettingsHelper::get_settings_value( 'business_name' ), [ 'theme' => 'simple' ] ); ?> |
| 386 | </div> |
| 387 | <div class="os-col-lg-3"> |
| 388 | <?php echo OsFormHelper::text_field( 'settings[business_phone]', __( 'Business Phone', 'latepoint' ), OsSettingsHelper::get_settings_value( 'business_phone' ), [ 'theme' => 'simple' ] ); ?> |
| 389 | </div> |
| 390 | <div class="os-col-lg-6"> |
| 391 | <?php echo OsFormHelper::text_field( 'settings[business_address]', __( 'Business Address', 'latepoint' ), OsSettingsHelper::get_settings_value( 'business_address' ), [ 'theme' => 'simple' ] ); ?> |
| 392 | </div> |
| 393 | </div> |
| 394 | </div> |
| 395 | </div> |
| 396 | <div class="sub-section-row"> |
| 397 | <div class="sub-section-label"> |
| 398 | <h3><?php esc_html_e( 'Calendar Settings', 'latepoint' ) ?></h3> |
| 399 | </div> |
| 400 | <div class="sub-section-content"> |
| 401 | <?php echo OsFormHelper::text_field( 'settings[day_calendar_min_height]', __( 'Minimum height of a daily calendar (in pixels)', 'latepoint' ), OsSettingsHelper::get_day_calendar_min_height(), [ 'theme' => 'simple' ] ); ?> |
| 402 | |
| 403 | |
| 404 | <div class="latepoint-message latepoint-message-subtle"><?php esc_html_e( 'You can use variables in your booking template, they will be replaced with a value for the booking. ', 'latepoint' ) ?><?php echo OsUtilHelper::template_variables_link_html(); ?></div> |
| 405 | <?php echo OsFormHelper::text_field( 'settings[booking_template_for_calendar]', __( 'Booking tile information to display on calendar', 'latepoint' ), OsSettingsHelper::get_booking_template_for_calendar(), [ 'theme' => 'simple' ] ); ?> |
| 406 | </div> |
| 407 | </div> |
| 408 | <div class="sub-section-row"> |
| 409 | <div class="sub-section-label"> |
| 410 | <h3><?php esc_html_e( 'Conversion Tracking', 'latepoint' ) ?></h3> |
| 411 | </div> |
| 412 | <div class="sub-section-content"> |
| 413 | <div class="latepoint-message latepoint-message-subtle"> |
| 414 | <div><?php esc_html_e( 'You can include some javascript or html that will be appended to the confirmation step. For example you can track ad conversions by triggering a tracking code or a facebook pixel. You can use these variables within your code. Click on the variable to copy.', 'latepoint' ); ?></div> |
| 415 | </div> |
| 416 | <div class="tracking-info-w"> |
| 417 | <div class="available-vars-w"> |
| 418 | <div class="available-vars-i"> |
| 419 | <div class="available-vars-block"> |
| 420 | <ul> |
| 421 | <li> |
| 422 | <span class="var-label"><?php esc_html_e( 'Order ID#:', 'latepoint' ); ?></span> |
| 423 | <span class="var-code os-click-to-copy">{{order_id}}</span> |
| 424 | </li> |
| 425 | <li> |
| 426 | <span class="var-label"><?php esc_html_e( 'Customer ID#:', 'latepoint' ); ?></span> |
| 427 | <span class="var-code os-click-to-copy">{{customer_id}}</span> |
| 428 | </li> |
| 429 | <li> |
| 430 | <span class="var-label"><?php esc_html_e( 'Order Total:', 'latepoint' ); ?></span> |
| 431 | <span class="var-code os-click-to-copy">{{order_total}}</span> |
| 432 | </li> |
| 433 | <li> |
| 434 | <span class="var-label"><?php esc_html_e( 'Service IDs#:', 'latepoint' ); ?></span> |
| 435 | <span class="var-code os-click-to-copy">{{service_ids}}</span> |
| 436 | </li> |
| 437 | <li> |
| 438 | <span class="var-label"><?php esc_html_e( 'Agent IDs#:', 'latepoint' ); ?></span> |
| 439 | <span class="var-code os-click-to-copy">{{agent_ids}}</span> |
| 440 | </li> |
| 441 | <li> |
| 442 | <span class="var-label"><?php esc_html_e( 'Bundle IDs#:', 'latepoint' ); ?></span> |
| 443 | <span class="var-code os-click-to-copy">{{bundle_ids}}</span> |
| 444 | </li> |
| 445 | <li> |
| 446 | <span class="var-label"><?php esc_html_e( 'Location IDs#:', 'latepoint' ); ?></span> |
| 447 | <span class="var-code os-click-to-copy">{{location_ids}}</span> |
| 448 | </li> |
| 449 | </ul> |
| 450 | </div> |
| 451 | </div> |
| 452 | </div> |
| 453 | <?php echo OsFormHelper::textarea_field( 'settings[confirmation_step_tracking_code]', false, OsSettingsHelper::get_settings_value( 'confirmation_step_tracking_code', '' ), array( |
| 454 | 'theme' => 'bordered', |
| 455 | 'rows' => 9, |
| 456 | 'placeholder' => __( 'Enter Tracking code here', 'latepoint' ) |
| 457 | ), [ 'class' => 'tracking-code-input-w' ] ); ?> |
| 458 | </div> |
| 459 | </div> |
| 460 | </div> |
| 461 | |
| 462 | <div class="sub-section-row"> |
| 463 | <div class="sub-section-label"> |
| 464 | <h3><?php esc_html_e( 'Data Tables', 'latepoint' ) ?></h3> |
| 465 | </div> |
| 466 | <div class="sub-section-content"> |
| 467 | <div class="os-row"> |
| 468 | <div class="os-col-lg-6"> |
| 469 | <?php echo OsFormHelper::toggler_field( 'settings[allow_non_admins_download_csv]', __( 'Allow non admins to download table data as csv', 'latepoint' ), OsSettingsHelper::is_on( 'allow_non_admins_download_csv' ), false, false, [ 'sub_label' => __( 'Only admins will be able to download table data as csv', 'latepoint' ) ] ); ?> |
| 470 | </div> |
| 471 | |
| 472 | <div class="os-col-lg-3"> |
| 473 | <?php echo OsFormHelper::select_field( 'settings[number_of_records_per_page]', __( 'Number of records per page', 'latepoint' ), [ 20, 50, 100, 200 ], OsSettingsHelper::get_settings_value( 'number_of_records_per_page', 20 ) ); ?> |
| 474 | </div> |
| 475 | </div> |
| 476 | </div> |
| 477 | </div> |
| 478 | <div class="sub-section-row"> |
| 479 | <div class="sub-section-label"> |
| 480 | <h3><?php esc_html_e( 'Export/Import', 'latepoint' ) ?></h3> |
| 481 | </div> |
| 482 | <div class="sub-section-content"> |
| 483 | <a class="latepoint-btn latepoint-btn-grey latepoint-btn-outline" target="_blank" href="<?php echo OsRouterHelper::build_admin_post_link( [ 'settings', 'export_data' ]); ?>"> |
| 484 | <i class="latepoint-icon latepoint-icon-external-link"></i> |
| 485 | <span><?php esc_html_e('Export Data'); ?></span> |
| 486 | </a> |
| 487 | <a data-os-lightbox-classes="width-700" data-os-action="<?php echo esc_attr(OsRouterHelper::build_route_name('settings', 'import_modal')); ?>" href="#" data-os-output-target="lightbox" class="latepoint-btn latepoint-btn-grey latepoint-btn-outline"><i class="latepoint-icon latepoint-icon-download"></i><span><?php esc_html_e('Import Data', 'latepoint'); ?></span></a> |
| 488 | </div> |
| 489 | </div> |
| 490 | |
| 491 | <?php |
| 492 | /** |
| 493 | * Plug after other general settings output |
| 494 | * |
| 495 | * @since 4.7.0 |
| 496 | * @hook latepoint_settings_general_other_after |
| 497 | * |
| 498 | */ |
| 499 | do_action( 'latepoint_settings_general_other_after' ); ?> |
| 500 | </div> |
| 501 | </div> |
| 502 | <?php |
| 503 | /** |
| 504 | * Plug after general settings output, before buttons |
| 505 | * |
| 506 | * @since 4.7.8 |
| 507 | * @hook latepoint_settings_general_after |
| 508 | * |
| 509 | */ |
| 510 | do_action( 'latepoint_settings_general_after' ); ?> |
| 511 | <div class="os-form-buttons"> |
| 512 | <?php echo OsFormHelper::button( 'submit', __( 'Save Settings', 'latepoint' ), 'submit', [ 'class' => 'latepoint-btn' ] ); ?> |
| 513 | </div> |
| 514 | </form> |
| 515 | </div> |