PluginProbe ʕ •ᴥ•ʔ
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress / 5.2.10
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress v5.2.10
5.6.10 5.6.9 5.6.8 5.6.7 5.6.6 5.6.5 5.6.4 5.6.3 5.6.2 5.6.1 5.6.0 5.5.2 5.5.1 5.5.0 5.4.2 trunk 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.1.91 5.1.92 5.1.93 5.1.94 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1
latepoint / lib / controllers / booking_form_settings_controller.php
latepoint / lib / controllers Last commit date
activities_controller.php 6 months ago auth_controller.php 6 months ago booking_form_settings_controller.php 6 months ago bookings_controller.php 1 year ago calendars_controller.php 11 months ago carts_controller.php 1 year ago controller.php 11 months ago customer_cabinet_controller.php 6 months ago customers_controller.php 6 months ago dashboard_controller.php 11 months ago default_agent_controller.php 1 year ago events_controller.php 1 year ago form_fields_controller.php 11 months ago integrations_controller.php 11 months ago invoices_controller.php 6 months ago manage_booking_by_key_controller.php 6 months ago manage_order_by_key_controller.php 1 year ago notifications_controller.php 1 year ago orders_controller.php 6 months ago pro_controller.php 1 year ago process_jobs_controller.php 6 months ago processes_controller.php 6 months ago search_controller.php 1 year ago services_controller.php 11 months ago settings_controller.php 6 months ago steps_controller.php 11 months ago stripe_connect_controller.php 11 months ago support_topics_controller.php 1 year ago todos_controller.php 1 year ago transactions_controller.php 6 months ago wizard_controller.php 6 months ago
booking_form_settings_controller.php
123 lines
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit; // Exit if accessed directly.
4 }
5
6
7 if ( ! class_exists( 'OsBookingFormSettingsController' ) ) :
8
9
10 class OsBookingFormSettingsController extends OsController {
11
12
13 function __construct() {
14 parent::__construct();
15
16 $this->views_folder = LATEPOINT_VIEWS_ABSPATH . 'booking_form_settings/';
17 $this->vars['page_header'] = OsMenuHelper::get_menu_items_by_id( 'settings' );
18 $this->vars['pre_page_header'] = OsMenuHelper::get_label_by_id( 'settings' );
19 $this->vars['breadcrumbs'][] = array(
20 'label' => __( 'Booking Form Settings', 'latepoint' ),
21 'link' => OsRouterHelper::build_link( OsRouterHelper::build_route_name( 'booking_form_settings', 'preview' ) )
22 );
23 }
24
25 public function reload_preview() {
26 // Verify nonce.
27 $this->check_nonce( 'reload_preview' );
28
29 OsStepsHelper::set_cart_object();
30 OsStepsHelper::set_booking_object();
31 OsStepsHelper::set_restrictions();
32 OsStepsHelper::set_presets();
33 OsStepsHelper::set_active_cart_item_object();
34 $steps_settings = OsStepsHelper::get_steps_settings();
35 $steps = OsStepsHelper::get_step_codes_in_order();
36 foreach ( $steps as $step_code ) {
37 if ( ! empty( $this->params['steps_settings'][ $step_code ] ) ) {
38 foreach ( $this->params['steps_settings'][ $step_code ] as $step_setting_key => $step_setting_value ) {
39 // remove empty content for text content settings
40 if ( in_array( $step_setting_value, [ '<p><br></p>', '<br>', '<br/>' ] ) ) {
41 $step_setting_value = '';
42 }
43 if(in_array($step_setting_key, ['side_panel_heading', 'main_panel_heading'])) $step_setting_value = wp_strip_all_tags($step_setting_value);
44 if(in_array($step_setting_key, ['side_panel_description'])) $step_setting_value = strip_tags($step_setting_value, ['a', 'i', 'u', 'b', 'br']);
45 $steps_settings[ $step_code ][ $step_setting_key ] = trim( $step_setting_value );
46 }
47 }
48 }
49 // shared settings also needs to be cleaned
50 if ( ! empty( $this->params['steps_settings']['shared'] ) ) {
51 foreach ( $this->params['steps_settings']['shared'] as $step_setting_key => $step_setting_value ) {
52 // remove empty content for text content settings
53 if ( in_array( $step_setting_value, [ '<p><br></p>', '<br>', '<br/>' ] ) ) {
54 $step_setting_value = '';
55 }
56 if(in_array($step_setting_key, ['steps_support_text'])) $step_setting_value = strip_tags($step_setting_value, ['a', 'i', 'u', 'b', 'h3', 'h4', 'h5', 'br']);
57 // shared settings are saved in general settings
58 OsSettingsHelper::save_setting_by_name( $step_setting_key, trim( $step_setting_value ) );
59 }
60 }
61 OsStepsHelper::save_steps_settings( $steps_settings );
62 $steps_for_select = OsStepsHelper::get_steps_for_select();
63
64 $selected_step_code = $this->params['selected_step_code'];
65
66 $errors = array();
67
68 if ( $this->params['settings'] ) {
69 foreach ( $this->params['settings'] as $setting_name => $setting_value ) {
70 $setting = new OsSettingsModel();
71 $setting = $setting->load_by_name( $setting_name );
72 $is_new_record = $setting->is_new_record();
73 if ( ! $is_new_record ) {
74 $old_setting_value = $setting->value;
75 }
76 $setting->name = $setting_name;
77 $setting->value = OsSettingsHelper::prepare_value( $setting_name, $setting_value );
78 OsSettingsHelper::reset_loaded_value( $setting_name );
79
80 if ( $setting->save() ) {
81 if ( $is_new_record ) {
82 do_action( 'latepoint_setting_created', $setting );
83 } else {
84 do_action( 'latepoint_setting_updated', $setting, $old_setting_value );
85 }
86 } else {
87 $errors[] = $setting->get_error_messages();
88 }
89 }
90
91 do_action( 'latepoint_settings_updated', $this->params['settings'] );
92 }
93
94 $this->vars['selected_step_code'] = $selected_step_code;
95 $this->vars['steps_for_select'] = $steps_for_select;
96 $this->vars['booking'] = OsStepsHelper::build_booking_object_for_current_step_preview( $selected_step_code );
97
98 $data['step_settings_html'] = OsStepsHelper::get_step_settings_edit_form_html( $this->params['selected_step_code'] );
99 $data['booking_form_html'] = $this->render( $this->views_folder . '_booking_form_preview' );
100 $data['css_variables'] = OsStylesHelper::generate_css_variables();
101 $data['status'] = LATEPOINT_STATUS_SUCCESS;
102
103
104 if ( $this->get_return_format() == 'json' ) {
105 $this->send_json( $data );
106 }
107 }
108
109
110 public function show() {
111 $steps = OsStepsHelper::get_step_codes_in_order();
112 $steps_for_select = OsStepsHelper::get_steps_for_select();
113 $selected_step_code = array_key_first( $steps_for_select );
114 $this->vars['steps_for_select'] = $steps_for_select;
115 $this->vars['steps'] = $steps;
116 $this->vars['selected_step_code'] = $selected_step_code;
117 $this->vars['booking'] = OsStepsHelper::build_booking_object_for_current_step_preview( $selected_step_code );
118
119 $this->format_render( __FUNCTION__ );
120 }
121
122 }
123 endif;