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