PluginProbe ʕ •ᴥ•ʔ
LatePoint – Calendar Booking Plugin for Appointments and Events / 5.6.6
LatePoint – Calendar Booking Plugin for Appointments and Events v5.6.6
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 2 months ago auth_controller.php 3 months ago booking_form_settings_controller.php 3 months ago bookings_controller.php 4 days ago calendars_controller.php 3 months ago carts_controller.php 4 days ago controller.php 3 months ago customer_cabinet_controller.php 2 months ago customers_controller.php 4 days ago dashboard_controller.php 2 months ago default_agent_controller.php 3 months ago events_controller.php 3 months ago form_fields_controller.php 1 week ago integrations_controller.php 3 months ago invoices_controller.php 4 days ago manage_booking_by_key_controller.php 3 months ago manage_order_by_key_controller.php 3 months ago notifications_controller.php 3 months ago orders_controller.php 4 days ago pro_controller.php 3 weeks ago process_jobs_controller.php 3 months ago processes_controller.php 1 month ago razorpay_connect_controller.php 1 week ago search_controller.php 3 months ago services_controller.php 3 months ago settings_controller.php 2 months ago steps_controller.php 3 weeks ago stripe_connect_controller.php 1 week ago support_topics_controller.php 3 months ago todos_controller.php 3 months ago transactions_controller.php 4 days ago wizard_controller.php 1 week ago
booking_form_settings_controller.php
129 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' ] ) ) {
44 $step_setting_value = wp_strip_all_tags( $step_setting_value );
45 }
46 if ( in_array( $step_setting_key, [ 'side_panel_description' ] ) ) {
47 $step_setting_value = strip_tags( $step_setting_value, [ 'a', 'i', 'u', 'b', 'br' ] );
48 }
49 $steps_settings[ $step_code ][ $step_setting_key ] = trim( $step_setting_value );
50 }
51 }
52 }
53 // shared settings also needs to be cleaned
54 if ( ! empty( $this->params['steps_settings']['shared'] ) ) {
55 foreach ( $this->params['steps_settings']['shared'] as $step_setting_key => $step_setting_value ) {
56 // remove empty content for text content settings
57 if ( in_array( $step_setting_value, [ '<p><br></p>', '<br>', '<br/>' ] ) ) {
58 $step_setting_value = '';
59 }
60 if ( in_array( $step_setting_key, [ 'steps_support_text' ] ) ) {
61 $step_setting_value = strip_tags( $step_setting_value, [ 'a', 'i', 'u', 'b', 'h3', 'h4', 'h5', 'br' ] );
62 }
63 // shared settings are saved in general settings
64 OsSettingsHelper::save_setting_by_name( $step_setting_key, trim( $step_setting_value ) );
65 }
66 }
67 OsStepsHelper::save_steps_settings( $steps_settings );
68 $steps_for_select = OsStepsHelper::get_steps_for_select();
69
70 $selected_step_code = $this->params['selected_step_code'];
71
72 $errors = array();
73
74 if ( $this->params['settings'] ) {
75 foreach ( $this->params['settings'] as $setting_name => $setting_value ) {
76 $setting = new OsSettingsModel();
77 $setting = $setting->load_by_name( $setting_name );
78 $is_new_record = $setting->is_new_record();
79 if ( ! $is_new_record ) {
80 $old_setting_value = $setting->value;
81 }
82 $setting->name = $setting_name;
83 $setting->value = OsSettingsHelper::prepare_value( $setting_name, $setting_value );
84 OsSettingsHelper::reset_loaded_value( $setting_name );
85
86 if ( $setting->save() ) {
87 if ( $is_new_record ) {
88 do_action( 'latepoint_setting_created', $setting );
89 } else {
90 do_action( 'latepoint_setting_updated', $setting, $old_setting_value );
91 }
92 } else {
93 $errors[] = $setting->get_error_messages();
94 }
95 }
96
97 do_action( 'latepoint_settings_updated', $this->params['settings'] );
98 }
99
100 $this->vars['selected_step_code'] = $selected_step_code;
101 $this->vars['steps_for_select'] = $steps_for_select;
102 $this->vars['booking'] = OsStepsHelper::build_booking_object_for_current_step_preview( $selected_step_code );
103
104 $data['step_settings_html'] = OsStepsHelper::get_step_settings_edit_form_html( $this->params['selected_step_code'] );
105 $data['booking_form_html'] = $this->render( $this->views_folder . '_booking_form_preview' );
106 $data['css_variables'] = OsStylesHelper::generate_css_variables();
107 $data['status'] = LATEPOINT_STATUS_SUCCESS;
108
109
110 if ( $this->get_return_format() == 'json' ) {
111 $this->send_json( $data );
112 }
113 }
114
115
116 public function show() {
117 $steps = OsStepsHelper::get_step_codes_in_order();
118 $steps_for_select = OsStepsHelper::get_steps_for_select();
119 $selected_step_code = array_key_first( $steps_for_select );
120 $this->vars['steps_for_select'] = $steps_for_select;
121 $this->vars['steps'] = $steps;
122 $this->vars['selected_step_code'] = $selected_step_code;
123 $this->vars['booking'] = OsStepsHelper::build_booking_object_for_current_step_preview( $selected_step_code );
124
125 $this->format_render( __FUNCTION__ );
126 }
127 }
128 endif;
129