PluginProbe ʕ •ᴥ•ʔ
PiWeb Delivery & Pickup Date Time for WooCommerce / 3.0.49.27
PiWeb Delivery & Pickup Date Time for WooCommerce v3.0.49.27
3.0.63 3.0.62 3.0.61 3.0.60 3.0.49.49 3.0.49.6 3.0.49.60 3.0.49.61 3.0.49.62 3.0.49.63 3.0.49.64 3.0.49.66 3.0.49.67 3.0.49.69 3.0.49.7 3.0.49.70 3.0.49.72 3.0.49.73 3.0.49.74 3.0.49.76 3.0.49.77 3.0.49.79 3.0.49.9 3.0.49.90 3.0.49.91 3.0.49.92 3.0.49.93 3.0.49.94 3.0.49.96 3.0.49.97 3.0.49.99 trunk 1.0 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 2.9.17 3.0.47 3.0.49 3.0.49.1 3.0.49.10 3.0.49.11 3.0.49.12 3.0.49.13 3.0.49.16 3.0.49.17 3.0.49.19 3.0.49.2 3.0.49.20 3.0.49.21 3.0.49.22 3.0.49.23 3.0.49.24 3.0.49.26 3.0.49.27 3.0.49.29 3.0.49.3 3.0.49.30 3.0.49.31 3.0.49.32 3.0.49.33 3.0.49.34 3.0.49.36 3.0.49.37 3.0.49.39 3.0.49.4 3.0.49.40 3.0.49.41 3.0.49.42 3.0.49.43 3.0.49.44 3.0.49.46 3.0.49.47
pi-woocommerce-order-date-time-and-type / admin / options-time-slot.php
pi-woocommerce-order-date-time-and-type / admin Last commit date
css 1 year ago img 1 year ago js 1 year ago class-adv-order-filter.php 1 year ago class-pi-dtt-labels.php 1 year ago class-pi-dtt-order-table.php 1 year ago conflict-fixer.php 1 year ago menu.php 1 year ago options-addons.php 1 year ago options-date.php 1 year ago options-limit.php 1 year ago options-pickup.php 1 year ago options-time-slot.php 1 year ago options-time.php 1 year ago options.php 1 year ago
options-time-slot.php
233 lines
1 <?php
2
3 class pisol_dtt_option_time_slot{
4
5 private $settings = array();
6
7 private $active_tab;
8
9 private $this_tab = 'pi_time_slot';
10
11 private $tab_name = "Time Slot";
12
13 private $setting_key = 'pisol_time_slot';
14
15 private $pro_version = false;
16
17 public $tab;
18
19
20 function __construct(){
21
22 $this->pro_version = pi_dtt_pro_check();
23
24 $this->tab = sanitize_text_field(filter_input( INPUT_GET, 'tab'));
25 $this->active_tab = $this->tab != "" ? $this->tab : 'default';
26
27 $this->settings = array(
28
29 array('field'=>'pi_general_time_slot_delivery', 'sanitize_callback'=> [__CLASS__,'sanitize_time_slot']),
30 array('field'=>'pi_general_time_slot_pickup', 'sanitize_callback'=> [__CLASS__,'sanitize_time_slot'])
31
32 );
33
34
35 if($this->this_tab == $this->active_tab){
36 add_action('pisol_dtt_tab_content', array($this,'tab_content'));
37 }
38
39 add_action('pisol_dtt_tab', array($this,'tab'),3);
40
41 $this->register_settings();
42
43
44 }
45
46 function register_settings(){
47
48 foreach($this->settings as $setting){
49 pisol_class_form::register_setting( $this->setting_key, $setting);
50 }
51
52 }
53
54 function tab(){
55 $page = sanitize_text_field(filter_input( INPUT_GET, 'page'));
56 $this->tab_name = __('Time Slot','pisol-dtt');
57 ?>
58 <a class=" pi-side-menu <?php echo ($this->active_tab == $this->this_tab ? 'bg-primary' : 'bg-secondary'); ?> " href="<?php echo esc_url( admin_url( 'admin.php?page='.$page.'&tab='.$this->this_tab ) ); ?>">
59 <span class="dashicons dashicons-dashboard"></span> <?php echo esc_html($this->tab_name); ?>
60 </a>
61 <?php
62 }
63
64 function tab_content(){
65 ?>
66 <form method="post" action="options.php" class="pisol-setting-form">
67 <?php settings_fields( $this->setting_key ); ?>
68 <?php
69 echo '<script>';
70 foreach($this->settings as $setting){
71 $val = pisol_dtt_get_setting($setting['field'], array());
72 if(!is_array($val) || count($val) < 1){
73 $val = array();
74 }
75 ?>
76 var <?php echo esc_js( $setting['field'] ); ?> = <?php echo json_encode(array_values($val)); ?>;
77 <?php
78 }
79 echo '</script>';
80 ?>
81 <?php
82 foreach($this->settings as $setting){
83 new pisol_class_form($setting, $this->setting_key);
84 }
85
86 $this->timesForm(__('General Time Slot (this will be applied for all days of the week)', 'pisol-dtt' ), 'pi_general_time_slot_delivery', 'pi_general_time_slot_pickup');
87
88 $this->proFeatureRow(__('Monday (Set different time slot for Monday)', 'pisol-dtt' ), 'pi_monday_time_slot_delivery', 'pi_monday_time_slot_pickup','monday1');
89 $this->proFeatureRow(__('Tuesday (Set different time slot for Tuesday)', 'pisol-dtt' ), 'pi_tuesday_time_slot_delivery', 'pi_tuesday_time_slot_pickup','tuesday1');
90 $this->proFeatureRow(__('Wednesday (Set different time slot for Wednesday)', 'pisol-dtt' ), 'pi_wednesday_time_slot_delivery', 'pi_wednesday_time_slot_pickup','wednesday1');
91 $this->proFeatureRow(__('Thursday (Set different time slot for Thursday)', 'pisol-dtt' ), 'pi_Thursday_time_slot_delivery', 'pi_Thursday_time_slot_pickup','Thursday1');
92 $this->proFeatureRow(__('Friday (Set different time slot for Friday)', 'pisol-dtt' ), 'pi_Friday_time_slot_delivery', 'pi_Friday_time_slot_pickup','Friday1');
93 $this->proFeatureRow(__('Saturday (Set different time slot for Saturday)', 'pisol-dtt' ), 'pi_Saturday_time_slot_delivery', 'pi_Saturday_time_slot_pickup','Saturday1');
94 $this->proFeatureRow(__('Sunday (Set different time slot for Sunday)', 'pisol-dtt' ), 'pi_Sunday_time_slot_delivery', 'pi_Sunday_time_slot_pickup','Sunday1');
95
96
97 ?>
98 <input type="submit" name="submit" id="submit" class="btn btn-primary btn-md my-3" value="<?php echo esc_attr__('Save Changes','pisol-dtt'); ?>">
99 </form>
100 <?php
101 }
102
103 function timesForm($label, $field_delivery, $field_pickup, $overwrite_day = ""){
104 if(empty($overwrite_day)){
105 $bg = 'bg-primary';
106 $hide="";
107 }else{
108 $bg = 'bg-dark';
109 $overwrite_value = pisol_dtt_get_setting('pi_different_slot_for_'.$overwrite_day, "");
110 $checked = false;
111 $hide ='display:none;';
112 if(!empty($overwrite_value)){
113 $checked = true;
114 $hide="";
115 }
116 }
117 ?>
118 <div id="row_sunday" class="row py-2 border-bottom align-items-center <?php echo esc_attr( $bg ); ?> text-light">
119 <div class="col-9">
120 <?php if(empty($overwrite_day)){ ?>
121 <h5 class="mt-0 mb-0 py-2 text-light font-weight-light h4"><label for="pi_different_slot_for_<?php echo esc_attr( $overwrite_day ); ?>"><?php echo esc_html( $label ); ?></label></h5>
122 <?php }else{ ?>
123 <h5 class="mt-0 mb-0 text-light font-weight-light h5"><label for="pi_different_slot_for_<?php echo esc_attr( $overwrite_day ); ?>"><?php echo esc_html( $label ); ?></label></h5>
124 <?php } ?>
125 </div>
126 <?php if(!empty($overwrite_day)): ?>
127 <div class="col-3 text-right">
128 <div class="custom-control custom-switch">
129 <input type="checkbox" class="custom-control-input" name="pi_different_slot_for_<?php echo esc_attr( $overwrite_day ); ?>" id="pi_different_slot_for_<?php echo esc_attr( $overwrite_day ); ?>" <?php checked(true, $checked); ?>>
130 <label class="custom-control-label" for="pi_different_slot_for_<?php echo esc_attr( $overwrite_day ); ?>"></label>
131 </div>
132 </div>
133 <?php endif; ?>
134 </div>
135
136 <div class="row mb-2 pt-2" id="pi_slots_for_<?php echo esc_attr( $overwrite_day ); ?>" style="<?php echo esc_attr($hide); ?>">
137 <div class="col-12 col-md-6">
138 <div class="row align-items-center">
139 <div class="col-7 mt-2">
140 <strong><?php esc_html_e('Delivery Time slots', 'pisol-dtt' ); ?></strong>
141 </div>
142 <div class="col">
143 <a class="btn btn-primary btn-sm pi_add_time_slot text-light" data-slot="<?php echo esc_attr( $field_delivery ); ?>" ><?php esc_html_e('Add Time Slot', 'pisol-dtt' ); ?></a>
144 </div>
145 </div>
146 <div class="row align-items-center">
147 <div class="col-12 mt-2">
148 <div id="<?php echo esc_attr( $field_delivery ); ?>_container">
149
150 </div>
151 </div>
152 </div>
153 </div>
154
155
156 <div class="col-12 col-md-6">
157 <div class="row align-items-center">
158 <div class="col-7 mt-2">
159 <strong><?php esc_html_e('Pickup Time slots', 'pisol-dtt' ); ?></strong>
160 </div>
161 <div class="col">
162 <a class="btn btn-primary btn-sm pi_add_time_slot text-light" data-slot="<?php echo esc_attr( $field_pickup ); ?>" ><?php esc_html_e('Add Time Slot', 'pisol-dtt' ); ?></a>
163 </div>
164 </div>
165 <div class="row align-items-center">
166 <div class="col-12 mt-2">
167 <div id="<?php echo esc_attr( $field_pickup ); ?>_container">
168
169 </div>
170 </div>
171 </div>
172 </div>
173 </div>
174 <?php
175 }
176
177 function proFeatureRow($label, $field_delivery, $field_pickup, $overwrite_day = ""){
178 if(empty($overwrite_day)){
179 $bg = 'bg-primary';
180 $hide="";
181 }else{
182 $bg = 'bg-dark';
183 $overwrite_value = pisol_dtt_get_setting('pi_different_slot_for_'.$overwrite_day, "");
184 $checked = false;
185 $hide =' style="display:none;" ';
186 if(!empty($overwrite_value)){
187 $checked = true;
188 $hide="";
189 }
190 }
191 ?>
192 <div id="row_sunday" class="row py-2 border-bottom align-items-center free-version <?php echo esc_attr($bg); ?> text-light">
193 <div class="col-9">
194 <?php if(empty($overwrite_day)){ ?>
195 <h5 class="mt-0 mb-0 py-2 text-light font-weight-light h4"><label for="pi_different_slot_for_<?php echo esc_attr($overwrite_day); ?>"><?php echo esc_html($label); ?></label></h5>
196 <?php }else{ ?>
197 <h5 class="mt-0 mb-0 text-light font-weight-light h5"><label for="pi_different_slot_for_<?php echo esc_attr($overwrite_day); ?>"><?php echo esc_html($label); ?></label></h5>
198 <?php } ?>
199 </div>
200 <?php if(!empty($overwrite_day)): ?>
201 <div class="col-3 text-right">
202 <div class="custom-control custom-switch">
203 <input type="checkbox" class="custom-control-input" name="pi_different_slot_for_<?php echo esc_attr($overwrite_day); ?>" id="pi_different_slot_for_<?php echo esc_attr($overwrite_day); ?>" <?php checked(true, $checked); ?>>
204 <label class="custom-control-label" for="pi_different_slot_for_<?php echo esc_attr($overwrite_day); ?>"></label>
205 </div>
206 </div>
207 <?php endif; ?>
208 </div>
209 <?php
210 }
211
212 static function sanitize_time_slot($inputs){
213 if(!is_array($inputs) || empty($inputs)){
214 return array();
215 }
216
217 foreach($inputs as $key => $values){
218 $inputs[$key]['from'] = isset($values['from']) ? sanitize_text_field($values['from']) : "";
219 $inputs[$key]['to'] = isset($values['to']) ? sanitize_text_field($values['to']) : "";
220 $inputs[$key]['order_limit'] = !empty($values['order_limit']) ? abs(intval($values['order_limit'])) : "";
221
222 if(empty($values['from']) && empty($values['to'])){
223 unset($inputs[$key]);
224 }
225
226 }
227
228 return array_values($inputs);
229 }
230 }
231
232 new pisol_dtt_option_time_slot();
233