PluginProbe
Welcart e-Commerce / 2.12.4
Welcart e-Commerce v2.12.4
2.12.4 2.12.3 2.11.35 2.12.2 2.12.1 2.11.34 2.11.33 2.11.32 2.11.31 2.11.30 1.3.16 1.3.17 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 All 292 releases
← All changes | functions/system_post.php +972 -963 1.3.52.12.4 View file →
@@ -1,963 +1,972 @@
1 -<?php
2 -/**
3 - * system_option
4 - */
5 -function usces_add_system_option( $option_name, $newvalue ){
6 - global $usces;
7 - $newvalue = $usces->stripslashes_deep_post($newvalue);
8 - $option_value = get_option($option_name);
9 -
10 - if( !empty($option_value) ){
11 - $option_num = count($option_value);
12 - $unique = true;
13 - $sortnull = true;
14 - foreach( (array)$option_value as $value ){
15 - if( $value['name'] == $newvalue['name'] )
16 - $unique = false;
17 - if( !isset($value['sort']) )
18 - $sortnull = false;
19 - $sort[] = $value['sort'];
20 - }
21 - if( !$unique )
22 - return -1;
23 -
24 - rsort($sort);
25 - $next_number = reset($sort) + 1;
26 - $unique_sort = array_unique($sort);
27 - if( $option_num !== count($unique_sort) || $option_num !== $next_number || !$sortnull){
28 - //To repair the sort data
29 - $i = 0;
30 - foreach( $option_value as $opkey => $opvalue ){
31 - $option_value[$opkey]['sort'] = $i;
32 - $i++;
33 - }
34 - }
35 - }
36 - $newvalue['sort'] = !empty($option_num) ? $option_num : 0;
37 - $option_value[] = $newvalue;
38 - update_option($option_name, $option_value);
39 - krsort($option_value);
40 - $key_arr = each($option_value);
41 - $last_index = $key_arr['key'];
42 -
43 - return $last_index;
44 -}
45 -
46 -function usces_update_system_option( $option_name, $index, $newvalue ){
47 - global $usces;
48 - $newvalue = $usces->stripslashes_deep_post($newvalue);
49 - $option_value = get_option($option_name);
50 -
51 - if( !empty($option_value) ){
52 - $unique = true;
53 - foreach( (array)$option_value as $value_id => $value ){
54 - if( $value['name'] == $newvalue['name'] && $value_id != $index ){
55 - $unique = false;
56 - break;
57 - }
58 - }
59 - if( !$unique )
60 - return -1;
61 -
62 - $option_value[$index] = $newvalue;
63 - update_option($option_name, $option_value);
64 - $lid = $index;
65 - }else{
66 - $lid = -1;
67 - }
68 -
69 - return $lid;
70 -}
71 -function usces_get_system_option( $option_name, $keyflag = 'sort' ) {
72 - $sysopts = array();
73 - $option_value = get_option($option_name);
74 -
75 - if( !is_array($option_value) ) return $sysopts;
76 -
77 - foreach( $option_value as $id => $value ){
78 - $key = isset($value[$keyflag]) ? $value[$keyflag] : $value['sort'];
79 - switch( $option_name ){
80 - case 'usces_payment_method':
81 - $sysopts[$key] = array(
82 - 'id' => $id,
83 - 'name' => $value['name'],
84 - 'explanation' => $value['explanation'],
85 - 'settlement' => $value['settlement'],
86 - 'module' => $value['module'],
87 - 'sort' => $value['sort']
88 - );
89 - break;
90 - }
91 - }
92 - ksort($sysopts);
93 -
94 - return $sysopts;
95 -}
96 -
97 -function usces_sort_system_option( $option_name, $idstr ) {
98 - global $usces;
99 - $option_value = get_option($option_name);
100 -
101 - if( !empty($option_value) ){
102 - $ids = explode(',', $idstr);
103 - $c = 0;
104 - foreach( (array)$ids as $id ){
105 -// usces_log('ids : '.$id.$c, 'acting_transaction.log');
106 - $option_value[$id]['sort'] = $c;
107 - $c++;
108 -// usces_log('options : '.print_r($option_value,true), 'acting_transaction.log');
109 - }
110 - update_option( $option_name, $option_value );
111 - }
112 - return;
113 -}
114 -
115 -function usces_del_system_option( $option_name, $id ) {
116 - global $usces;
117 - $option_value = get_option($option_name);
118 -
119 - if( !empty($option_value) && isset($option_value[$id]) && !empty($option_value)){
120 - unset($option_value[$id]);
121 - $op = array();
122 - foreach( (array)$option_value as $opkey => $opvalue ){
123 - $op[$opvalue['sort']] = $opkey;
124 - }
125 -
126 - ksort($op);
127 -
128 - $c = 0;
129 - foreach( $op as $opid ){
130 - $option_value[$opid]['sort'] = $c;
131 - $c++;
132 - }
133 - update_option( $option_name, $option_value );
134 - }
135 - return;
136 -}
137 -
138 -/**
139 - * payment_list
140 - */
141 -function payment_list( $option_value ) {
142 - // Exit if no meta
143 - if ( empty($option_value) ) {
144 - ?>
145 - <table id="payment-table" class="list" style="display: none;">
146 - <thead>
147 - <tr>
148 - <th class="hanldh"> </th>
149 - <th class="left"><?php _e('A payment method name','usces'); ?></th>
150 - <th><?php _e('explanation','usces'); ?></th>
151 - <th><?php _e('Type of payment','usces'); ?></th>
152 - <th><?php _e('Payment module','usces'); ?></th>
153 - </tr>
154 - </thead>
155 - <tbody id="payment-list">
156 - <tr><td></td><td></td><td></td></tr>
157 - </tbody>
158 - </table>
159 - <?php
160 - }else{
161 - ?>
162 - <table id="payment-table" class="list">
163 - <thead>
164 - <tr>
165 - <th class="hanldh"> </th>
166 - <th class="paymentname"><?php _e('A payment method name','usces') ?></th>
167 - <th class="paymentexplanation"><?php _e('explanation','usces') ?></th>
168 - <th class="paymentsettlement"><?php _e('Type of payment','usces') ?></th>
169 - <th class="paymentmodule"><?php _e('Payment module','usces') ?></th>
170 - </tr>
171 - </thead>
172 - <tbody id="payment-list">
173 - <?php
174 - foreach ( $option_value as $value )
175 - echo _payment_list_row( $value );
176 - ?>
177 - </tbody>
178 - </table>
179 - <div id="payment_ajax-response"></div>
180 - <?php
181 - }
182 -}
183 -
184 -/**
185 - * payment_list_row
186 - */
187 -function _payment_list_row( $value ) {
188 - global $usces;
189 - $r = '';
190 - $style = '';
191 -
192 - if ( empty($value) ) return;
193 - $id = (int) $value['id'];
194 - $name = esc_attr($value['name']);
195 - $explanation = esc_attr($value['explanation']);
196 - $settlement = $value['settlement'];
197 - $module = esc_attr($value['module']);
198 - $sort = (int) $value['sort'];
199 -
200 - ob_start();
201 - ?>
202 - <tr class='metastuffrow'>
203 - <td colspan='5'>
204 - <table id='payment-<?php echo $id; ?>' class='metastufftable'>
205 - <tr>
206 - <th class='handlb' rowspan='2'> </th>
207 - <td class='paymentname'><div><input name='payment[<?php echo $id; ?>][name]' id='payment[<?php echo $id; ?>][name]' class='metaboxfield' type='text' value='<?php echo $name; ?>' /></div></td>
208 - <td class='paymentexplanation'><textarea name='payment[<?php echo $id; ?>][explanation]' id='payment[<?php echo $id; ?>][explanation]' class='metaboxfield'><?php echo $explanation; ?></textarea></td>
209 - <td class='paymentsettlement'>
210 - <select name='payment[<?php echo $id; ?>][settlement]' id='payment[<?php echo $id; ?>][settlement]' class='metaboxfield'>
211 - <?php
212 - foreach ($usces->payment_structure as $psk => $psv){
213 - $selected = ($psk == $settlement) ? ' selected="selected"' : '';
214 - ?>
215 - <option value='<?php echo $psk; ?>'<?php echo $selected; ?>><?php echo esc_html($psv); ?></option>
216 - <?php
217 - }
218 - ?>
219 - </select>
220 - </td>
221 - <td class='paymentmodule'><div><input name='payment[<?php echo $id; ?>][module]' id='payment[<?php echo $id; ?>][module]' class='metaboxfield' type='text' value='<?php echo $module; ?>' /></div></td>
222 - </tr>
223 - <tr>
224 - <td colspan='4' class='submittd'>
225 - <div id='paymentsubmit-<?php echo $id; ?>' class='submit'>
226 - <input name='deletepayment' id='deletepayment[<?php echo $id; ?>]' type='button' value='<?php esc_attr_e(__( 'Delete' )); ?>' onclick="payment.post('del', <?php echo $id; ?>);" />
227 - <input name='updatepayment' id='updatepayment[<?php echo $id; ?>]' type='button' value='<?php esc_attr_e(__( 'Update' )); ?>' onclick="payment.post('update', <?php echo $id; ?>);" />
228 - <input name='payment[<?php echo $id; ?>][sort]' id='payment[<?php echo $id; ?>][sort]' type='hidden' value='<?php echo $sort; ?>' />
229 - </div>
230 - <div id='payment_loading-<?php echo $id; ?>' class='meta_submit_loading'></div>
231 - </td>
232 - </tr>
233 - </table>
234 - </td>
235 - </tr>
236 - <?php
237 - $r = ob_get_contents();
238 - ob_end_clean();
239 - return $r;
240 -}
241 -/**
242 - * payment_form
243 - */
244 -function payment_form() {
245 - global $usces;
246 - ?>
247 - <p><strong><?php _e('Add a new method forpayment ','usces') ?> : </strong></p>
248 - <table id="newmeta2">
249 - <thead>
250 - <tr>
251 - <th class="left"><?php _e('A payment method name','usces') ?></th>
252 - <th><?php _e('explanation','usces') ?></th>
253 - <th><?php _e('Type of payment','usces') ?></th>
254 - <th><?php _e('Payment module','usces') ?></th>
255 - </tr>
256 - </thead>
257 - <tbody>
258 - <tr>
259 - <td class='paymentname'><input type="text" id="newname" name="newname" class="metaboxfield" tabindex="7" value="" /></td>
260 - <td class='paymentexplanation'><textarea id="newexplanation" name="newexplanation" class='metaboxfield'></textarea></td>
261 - <td class='paymentsettlement'>
262 - <select name="newsettlement" id="newsettlement" class='metaboxfield'>
263 - <?php foreach ($usces->payment_structure as $psk => $psv) { ?>
264 - <option value="<?php echo esc_attr($psk); ?>"><?php echo esc_html($psv); ?></option>
265 - <?php } ?>
266 - </select>
267 - </td>
268 - <td class='paymentmodule'><input type="text" id="newmodule" name="newmodule" class="metaboxfield" tabindex="9" value="" /></td>
269 - </tr>
270 -
271 - <tr>
272 - <td colspan="4" class="submittd">
273 - <div id='newpaymentsubmit' class='submit'><input name="add_payment" type="button" id="add_payment" tabindex="9" value="<?php _e('Add a new method forpayment ','usces') ?>" onclick="payment.post('add', 0);" /></div>
274 - <div id="newpayment_loading" class="meta_submit_loading"></div>
275 - </td>
276 - </tr>
277 - </tbody>
278 - </table>
279 - <?php
280 -}
281 -
282 -
283 -function payment_ajax()
284 -{
285 - global $usces;
286 -
287 - $id = NULL;
288 -
289 - if( $_POST['action'] != 'payment_ajax' ) die(0);
290 -
291 - if(isset($_POST['update'])){
292 - $id = up_payment_method();
293 -
294 - }else if(isset($_POST['delete'])){
295 - $id = del_payment_method();
296 -
297 - }else if(isset($_POST['sort'])){
298 - $res = sort_payment_method();
299 -
300 - }else{
301 - $id = add_payment_method();
302 -
303 - }
304 -
305 - $option_value = usces_get_system_option('usces_payment_method', 'sort');
306 - $r = '';
307 - foreach ( $option_value as $value )
308 - $r .= _payment_list_row( $value );
309 -
310 - $res = $r . '#usces#' . $id;
311 -
312 - die( $res );
313 -}
314 -/**
315 - * add_payment
316 - */
317 -function add_payment_method() {
318 -
319 - $newvalue['name'] = isset($_POST['newname']) ? trim( $_POST['newname'] ) : '';
320 - $newvalue['explanation'] = isset($_POST['newexplanation']) ? trim( $_POST['newexplanation'] ) : '';
321 - $newvalue['settlement'] = isset($_POST['newsettlement']) ? $_POST['newsettlement'] : '';
322 - $newvalue['module'] = isset($_POST['newmodule']) ? trim( $_POST['newmodule'] ) : '';
323 -
324 - if ( !empty( $newvalue['name'] ) ) {
325 - $lid = usces_add_system_option( 'usces_payment_method', $newvalue );
326 -
327 - return $lid;
328 - }
329 - return false;
330 -} // add_meta
331 -/**
332 - * update_payment
333 - */
334 -
335 -function up_payment_method() {
336 - global $usces;
337 -
338 - $value = array();
339 - //$id = isset($_POST['id']) ? (int)$_POST['id'] : '';
340 - $id = $_POST['id'];
341 - $value['name'] = isset($_POST['name']) ? trim( $_POST['name'] ) : '';
342 - $value['explanation'] = isset($_POST['explanation']) ? trim( $_POST['explanation'] ) : '';
343 - $value['settlement'] = isset($_POST['settlement']) ? $_POST['settlement'] : '';
344 - $value['module'] = isset($_POST['module']) ? trim( $_POST['module'] ) : '';
345 - $value['sort'] = isset($_POST['sort']) ?(int)$_POST['sort'] : 0;
346 -
347 - if ( !empty( $value['name'] ) && !WCUtils::is_blank($id) ) {
348 -
349 - $id = usces_update_system_option( 'usces_payment_method', $id, $value );
350 -
351 - return $id;
352 - }
353 - return -2;
354 -} // add_meta
355 -
356 -/**
357 - * delete_payment
358 - */
359 -function del_payment_method() {
360 - global $usces;
361 -
362 - $id = $_POST['id'];
363 -
364 - if ( !WCUtils::is_blank($id) ) {
365 -
366 - usces_del_system_option( 'usces_payment_method', $id );
367 -
368 - return $id;
369 - }
370 - return false;
371 -}
372 -
373 -function sort_payment_method(){
374 -
375 - return usces_sort_system_option( 'usces_payment_method', $_POST['idstr'] );
376 -}
377 -
378 -function add_delivery_method() {
379 - $options = get_option('usces');
380 - $name = trim($_POST['name']);
381 - foreach((array)$options['delivery_method'] as $deli){
382 - $ids[] = (int)$deli['id'];
383 - }
384 - if(isset($ids)){
385 - rsort($ids);
386 - $newid = $ids[0]+1;
387 - }else{
388 - $newid = 0;
389 - }
390 - $index = isset($options['delivery_method']) ? count($options['delivery_method']) : 0;
391 - $options['delivery_method'][$index]['id'] = $newid;
392 - $options['delivery_method'][$index]['name'] = $name;
393 - $options['delivery_method'][$index]['time'] = str_replace("\r\n", "\n", $_POST['time']);
394 - $options['delivery_method'][$index]['time'] = str_replace("\r", "\n", $options['delivery_method'][$index]['time']);
395 - $options['delivery_method'][$index]['charge'] = (int)$_POST['charge'];
396 -//20101208ysk start
397 - $options['delivery_method'][$index]['days'] = (int)$_POST['days'];
398 -//20101208ysk end
399 -//20101119ysk start
400 - $options['delivery_method'][$index]['nocod'] = $_POST['nocod'];
401 -//20101119ysk end
402 -//20110317ysk start
403 - $options['delivery_method'][$index]['intl'] = $_POST['intl'];
404 -//20110317ysk end
405 - update_option('usces', $options);
406 -
407 -//20101208ysk start
408 -//20101119ysk start
409 - //$res = $newid . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'];
410 - //$res = $newid . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['nocod'];
411 -//20101119ysk end
412 -//20110317ysk start
413 - //$res = $newid . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['days'] . '#usces#' . $options['delivery_method'][$index]['nocod'];
414 - $res = $newid . '#usces#' . stripslashes($name) . '#usces#' . stripslashes($options['delivery_method'][$index]['time']) . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['days'] . '#usces#' . $options['delivery_method'][$index]['nocod'] . '#usces#' . $options['delivery_method'][$index]['intl'];
415 -//20110317ysk end
416 -//20101208ysk end
417 - return $res;
418 -}
419 -
420 -function update_delivery_method() {
421 - $options = get_option('usces');
422 - $name = trim($_POST['name']);
423 - $id = (int)$_POST['id'];
424 - $charge = (int)$_POST['charge'];
425 - for($i=0; $i<count($options['delivery_method']); $i++){
426 - if($options['delivery_method'][$i]['id'] === $id){
427 - $index = $i;
428 - }
429 - }
430 - $options['delivery_method'][$index]['name'] = $name;
431 - $options['delivery_method'][$index]['charge'] = $charge;
432 - $options['delivery_method'][$index]['time'] = str_replace("\r\n", "\n", $_POST['time']);
433 - $options['delivery_method'][$index]['time'] = str_replace("\r", "\n", $options['delivery_method'][$index]['time']);
434 -//20101208ysk start
435 - $options['delivery_method'][$index]['days'] = (int)$_POST['days'];
436 -//20101208ysk end
437 -//20101119ysk start
438 - $options['delivery_method'][$index]['nocod'] = $_POST['nocod'];
439 -//20101119ysk end
440 -//20110317ysk start
441 - $options['delivery_method'][$index]['intl'] = $_POST['intl'];
442 -//20110317ysk end
443 - update_option('usces', $options);
444 -
445 -//20101208ysk start
446 -//20101119ysk start
447 - //$res = $id . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'];
448 - //$res = $id . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['nocod'];
449 -//20101119ysk end
450 -//20110317ysk start
451 - //$res = $id . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['days'] . '#usces#' . $options['delivery_method'][$index]['nocod'];
452 - $res = $id . '#usces#' . stripslashes($name) . '#usces#' . stripslashes($options['delivery_method'][$index]['time']) . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['days'] . '#usces#' . $options['delivery_method'][$index]['nocod'] . '#usces#' . $options['delivery_method'][$index]['intl'];
453 -//20110317ysk end
454 -//20101208ysk end
455 - return $res;
456 -}
457 -
458 -function delete_delivery_method() {
459 - $options = get_option('usces');
460 - $id = (int)$_POST['id'];
461 - for($i=0; $i<count($options['delivery_method']); $i++){
462 - if($options['delivery_method'][$i]['id'] === $id){
463 - $index = $i;
464 - }
465 - }
466 - array_splice($options['delivery_method'], $index, 1);
467 - update_option('usces', $options);
468 -
469 - $res = $id . '#usces#0';
470 - return $res;
471 -}
472 -
473 -function moveup_delivery_method() {
474 - $options = get_option('usces');
475 - $selected_id = (int)$_POST['id'];
476 - $ct = count($options['delivery_method']);
477 - for($i=0; $i<$ct; $i++){
478 - if($options['delivery_method'][$i]['id'] === $selected_id){
479 - $index = $i;
480 - }
481 - }
482 - if($index !== 0) {
483 - $from_index = $index;
484 - $to_index = $index - 1;
485 - $from_dm = $options['delivery_method'][$from_index];
486 - $to_dm = $options['delivery_method'][$to_index];
487 - for($i=0; $i<$ct; $i++){
488 - if($i === $to_index){
489 - $options['delivery_method'][$i] = $from_dm;
490 - }else if($i === $from_index){
491 - $options['delivery_method'][$i] = $to_dm;
492 - }
493 - }
494 - update_option('usces', $options);
495 - }
496 -
497 - $id = '';
498 - $name = '';
499 - $charge = '';
500 - $time = '';
501 -//20101208ysk start
502 - $days = '';
503 -//20101208ysk end
504 -//20101119ysk start
505 - $nocod = '';
506 -//20101119ysk end
507 -//20110317ysk start
508 - $intl = '';
509 -//20110317ysk end
510 - for($i=0; $i<$ct; $i++){
511 - $id .= $options['delivery_method'][$i]['id'] . ',';
512 - $name .= $options['delivery_method'][$i]['name'] . ',';
513 - $charge .= $options['delivery_method'][$i]['charge'] . ',';
514 - $time .= $options['delivery_method'][$i]['time'] . ',';
515 -//20101208ysk start
516 - $days .= $options['delivery_method'][$i]['days'] . ',';
517 -//20101208ysk end
518 -//20101119ysk start
519 - $nocod .= $options['delivery_method'][$i]['nocod'] . ',';
520 -//20101119ysk end
521 -//20110317ysk start
522 - $intl .= $options['delivery_method'][$i]['intl'] . ',';
523 -//20110317ysk end
524 - }
525 - $id = rtrim($id,',');
526 - $name = rtrim($name,',');
527 - $charge = rtrim($charge,',');
528 - $time = rtrim($time,',');
529 -//20101208ysk start
530 - $days = rtrim($days,',');
531 -//20101208ysk end
532 -//20101119ysk start
533 - $nocod = rtrim($nocod,',');
534 -//20101119ysk end
535 -//20110317ysk start
536 - $intl = rtrim($intl,',');
537 -//20110317ysk end
538 -
539 -//20101208ysk start
540 -//20101119ysk start
541 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $selected_id;
542 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $nocod . '#usces#' . $selected_id;
543 -//20101119ysk end
544 -//20110317ysk start
545 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $selected_id;
546 - $res = $id . '#usces#' . stripslashes($name) . '#usces#' . stripslashes($time) . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $intl . '#usces#' . $selected_id;
547 -//20110317ysk end
548 -//20101208ysk end
549 - return $res;
550 -}
551 -
552 -function movedown_delivery_method() {
553 - $options = get_option('usces');
554 - $selected_id = (int)$_POST['id'];
555 - $ct = count($options['delivery_method']);
556 - for($i=0; $i<$ct; $i++){
557 - if($options['delivery_method'][$i]['id'] === $selected_id){
558 - $index = $i;
559 - }
560 - }
561 - if($index < $ct-1) {
562 - $from_index = $index;
563 - $to_index = $index + 1;
564 - $from_dm = $options['delivery_method'][$from_index];
565 - $to_dm = $options['delivery_method'][$to_index];
566 - for($i=0; $i<$ct; $i++){
567 - if($i === $to_index){
568 - $options['delivery_method'][$i] = $from_dm;
569 - }else if($i === $from_index){
570 - $options['delivery_method'][$i] = $to_dm;
571 - }
572 - }
573 - update_option('usces', $options);
574 - }
575 -
576 - $id = '';
577 - $name = '';
578 - $charge = '';
579 - $time = '';
580 -//20101208ysk start
581 - $days = '';
582 -//20101208ysk end
583 -//20101119ysk start
584 - $nocod = '';
585 -//20101119ysk end
586 -//20110317ysk start
587 - $intl = '';
588 -//20110317ysk end
589 - for($i=0; $i<$ct; $i++){
590 - $id .= $options['delivery_method'][$i]['id'] . ',';
591 - $name .= $options['delivery_method'][$i]['name'] . ',';
592 - $charge .= $options['delivery_method'][$i]['charge'] . ',';
593 - $time .= $options['delivery_method'][$i]['time'] . ',';
594 -//20101208ysk start
595 - $days .= $options['delivery_method'][$i]['days'] . ',';
596 -//20101208ysk end
597 -//20101119ysk start
598 - $nocod .= $options['delivery_method'][$i]['nocod'] . ',';
599 -//20101119ysk end
600 -//20110317ysk start
601 - $intl .= $options['delivery_method'][$i]['intl'] . ',';
602 -//20110317ysk end
603 - }
604 - $id = rtrim($id,',');
605 - $name = rtrim($name,',');
606 - $charge = rtrim($charge,',');
607 - $time = rtrim($time,',');
608 -//20101208ysk start
609 - $days = rtrim($days,',');
610 -//20101208ysk end
611 -//20101119ysk start
612 - $nocod = rtrim($nocod,',');
613 -//20101119ysk end
614 -//20110317ysk start
615 - $intl = rtrim($intl,',');
616 -//20110317ysk end
617 -
618 -//20101208ysk start
619 -//20101119ysk start
620 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $selected_id;
621 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $nocod . '#usces#' . $selected_id;
622 -//20101119ysk end
623 -//20110317ysk start
624 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $selected_id;
625 - $res = $id . '#usces#' . stripslashes($name) . '#usces#' . stripslashes($time) . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $intl . '#usces#' . $selected_id;
626 -//20110317ysk end
627 -//20101208ysk end
628 - return $res;
629 -}
630 -
631 -function add_shipping_charge() {
632 - global $usces;
633 -
634 - $options = get_option('usces');
635 - $name = trim($_POST['name']);
636 -//20110317ysk start
637 -//20120710ysk start 0000472
638 - //$country = trim($_POST['country']);
639 -//20110317ysk end
640 - //$value = $_POST['value'];
641 -//20120710ysk end
642 - foreach((array)$options['shipping_charge'] as $charge){
643 - $ids[] = (int)$charge['id'];
644 - }
645 - if(isset($ids)){
646 - rsort($ids);
647 - $newid = $ids[0]+1;
648 - }else{
649 - $newid = 0;
650 - }
651 - $index = isset($options['shipping_charge']) ? count($options['shipping_charge']) : 0;
652 -// $prefs = get_option('usces_pref');
653 -//20110317ysk start
654 - //$prefs = $usces->options['province'];
655 -//20110331ysk start
656 - //$prefs = $usces_states[$country];
657 -//20120710ysk start 0000472
658 - //$prefs = get_usces_states($country);
659 -//20110331ysk end
660 -//20110317ysk end
661 - //array_shift($prefs);
662 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
663 - foreach( (array)$target_market as $tm ) {
664 - $prefs = get_usces_states($tm);
665 - array_shift($prefs);
666 - $value = $_POST['value_'.$tm];
667 -//20120710ysk end
668 -
669 - $options['shipping_charge'][$index]['id'] = $newid;
670 - $options['shipping_charge'][$index]['name'] = $name;
671 -//20110317ysk start
672 -//20120710ysk start 0000472
673 - //$options['shipping_charge'][$index]['country'] = $country;
674 -//20110317ysk end
675 - //$options['shipping_charge'][$index]["value"] = array();
676 - //for($i=0; $i<count($prefs); $i++){
677 - // $pref = $prefs[$i];
678 - // $options['shipping_charge'][$index]['value'][$pref] = (int)$value[$i];
679 - //}
680 - for( $i = 0; $i < count($prefs); $i++ ) {
681 - $options['shipping_charge'][$index][$tm][$prefs[$i]] = (float)$value[$i];
682 - }
683 - }
684 -//20120710ysk end
685 - update_option('usces', $options);
686 -
687 -//20120710ysk start 0000472
688 - //$valuestr = implode(',', $options['shipping_charge'][$index]['value']);
689 -//20110317ysk start
690 - //$res = $newid . '#usces#' . $name . '#usces#' . $valuestr;
691 - //$res = $newid . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
692 - $res = (string)$newid;
693 -//20120710ysk end
694 -//20110317ysk end
695 - return $res;
696 -}
697 -
698 -function update_shipping_charge() {
699 - global $usces;
700 -
701 - $options = get_option('usces');
702 - $name = trim($_POST['name']);
703 -//20110317ysk start
704 -//20120710ysk start 0000472
705 - //$country = trim($_POST['country']);
706 -//20110317ysk end
707 - //$value = $_POST['value'];
708 -//20120710ysk end
709 - $id = (int)$_POST['id'];
710 -// $prefs = get_option('usces_pref');
711 -//20110317ysk start
712 - //$prefs = $usces->options['province'];
713 -//20110331ysk start
714 - //$prefs = $usces_states[$country];
715 -//20120710ysk start 0000472
716 - //$prefs = get_usces_states($country);
717 -//20110331ysk end
718 -//20110317ysk end
719 - //array_shift($prefs);
720 -//20120710ysk end
721 -
722 - for($i=0; $i<count($options['shipping_charge']); $i++){
723 - if($options['shipping_charge'][$i]['id'] === $id){
724 - $index = $i;
725 - }
726 - }
727 - $options['shipping_charge'][$index]["name"] = $name;
728 -//20110317ysk start
729 -//20120710ysk start 0000472
730 - //$options['shipping_charge'][$index]['country'] = $country;
731 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
732 - foreach( (array)$target_market as $tm ) {
733 - $prefs = get_usces_states($tm);
734 - array_shift($prefs);
735 - $value = $_POST['value_'.$tm];
736 -//20110317ysk end
737 - //$options['shipping_charge'][$index]["value"] = array();
738 - //for($i=0; $i<count($prefs); $i++){
739 - // $pref = $prefs[$i];
740 - // $options['shipping_charge'][$index]["value"][$pref] = (int)$value[$i];
741 - //}
742 - for( $i = 0; $i < count($prefs); $i++ ) {
743 - $options['shipping_charge'][$index][$tm][$prefs[$i]] = (float)$value[$i];
744 - }
745 -//20120710ysk end
746 - }
747 - update_option('usces', $options);
748 -
749 -//20120710ysk start 0000472
750 - //$valuestr = implode(',', $options['shipping_charge'][$index]["value"]);
751 -//20110317ysk start
752 - //$res = $id . '#usces#' . $name . '#usces#' . $valuestr;
753 - //$res = $id . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
754 - $res = (string)$id;
755 -//20120710ysk end
756 -//20110317ysk end
757 - return $res;
758 -}
759 -
760 -function delete_shipping_charge() {
761 - $options = get_option('usces');
762 - $id = (int)$_POST['id'];
763 - for($i=0; $i<count($options['shipping_charge']); $i++){
764 - if($options['shipping_charge'][$i]['id'] === $id){
765 - $index = $i;
766 - }
767 - }
768 - array_splice($options['shipping_charge'], $index, 1);
769 - update_option('usces', $options);
770 -
771 - $res = $id . '#usces#0';
772 - return $res;
773 -}
774 -//20101208ysk start
775 -function add_delivery_days() {
776 - global $usces;
777 -
778 - $options = get_option('usces');
779 - $name = trim($_POST['name']);
780 -//20110317ysk start
781 -//20120710ysk start 0000472
782 - //$country = trim($_POST['country']);
783 -//20110317ysk end
784 - //$value = $_POST['value'];
785 -//20120710ysk end
786 - foreach((array)$options['delivery_days'] as $charge){
787 - $ids[] = (int)$charge['id'];
788 - }
789 - if(isset($ids)){
790 - rsort($ids);
791 - $newid = $ids[0]+1;
792 - }else{
793 - $newid = 0;
794 - }
795 - $index = isset($options['delivery_days']) ? count($options['delivery_days']) : 0;
796 -//20110317ysk start
797 - //$prefs = $usces->options['province'];
798 -//20110331ysk start
799 - //$prefs = $usces_states[$country];
800 -//20120710ysk start 0000472
801 - //$prefs = get_usces_states($country);
802 -//20110331ysk end
803 -//20110317ysk end
804 - //array_shift($prefs);
805 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
806 - foreach( (array)$target_market as $tm ) {
807 - $prefs = get_usces_states($tm);
808 - array_shift($prefs);
809 - $value = $_POST['value_'.$tm];
810 -//20120710ysk end
811 -
812 - $options['delivery_days'][$index]['id'] = $newid;
813 - $options['delivery_days'][$index]['name'] = $name;
814 -//20110317ysk start
815 -//20120710ysk start 0000472
816 - //$options['delivery_days'][$index]['country'] = $country;
817 -//20110317ysk end
818 - //for($i=0; $i<count($prefs); $i++){
819 - // $pref = $prefs[$i];
820 - // $options['delivery_days'][$index]['value'][$pref] = (int)$value[$i];
821 - //}
822 - for( $i = 0; $i < count($prefs); $i++ ) {
823 - $options['delivery_days'][$index][$tm][$prefs[$i]] = (int)$value[$i];
824 - }
825 - }
826 -//20120710ysk end
827 - update_option('usces', $options);
828 -
829 -//20120710ysk start 0000472
830 - //$valuestr = implode(',', $options['delivery_days'][$index]['value']);
831 -//20110317ysk start
832 - //$res = $newid . '#usces#' . $name . '#usces#' . $valuestr;
833 - //$res = $newid . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
834 - $res = (string)$newid;
835 -//20120710ysk end
836 -//20110317ysk end
837 - return $res;
838 -}
839 -
840 -function update_delivery_days() {
841 - global $usces;
842 -
843 - $options = get_option('usces');
844 - $name = trim($_POST['name']);
845 -//20110317ysk start
846 -//20120710ysk start 0000472
847 - //$country = trim($_POST['country']);
848 -//20110317ysk end
849 - //$value = $_POST['value'];
850 -//20120710ysk end
851 - $id = (int)$_POST['id'];
852 -//20110317ysk start
853 - //$prefs = $usces->options['province'];
854 -//20110331ysk start
855 - //$prefs = $usces_states[$country];
856 -//20120710ysk start 0000472
857 - //$prefs = get_usces_states($country);
858 -//20110331ysk end
859 -//20110317ysk end
860 - //array_shift($prefs);
861 -//20120710ysk end
862 -
863 - for($i=0; $i<count($options['delivery_days']); $i++){
864 - if($options['delivery_days'][$i]['id'] === $id){
865 - $index = $i;
866 - }
867 - }
868 - $options['delivery_days'][$index]['name'] = $name;
869 -//20110317ysk start
870 -//20120710ysk start 0000472
871 - //$options['delivery_days'][$index]['country'] = $country;
872 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
873 - foreach( (array)$target_market as $tm ) {
874 - $prefs = get_usces_states($tm);
875 - array_shift($prefs);
876 - $value = $_POST['value_'.$tm];
877 -//20110317ysk end
878 - //for($i=0; $i<count($prefs); $i++){
879 - // $pref = $prefs[$i];
880 - // $options['delivery_days'][$index]['value'][$pref] = (int)$value[$i];
881 - //}
882 - for( $i = 0; $i < count($prefs); $i++ ) {
883 - $options['delivery_days'][$index][$tm][$prefs[$i]] = (int)$value[$i];
884 - }
885 - }
886 -//20120710ysk end
887 - update_option('usces', $options);
888 -
889 -//20120710ysk start 0000472
890 - //$valuestr = implode(',', $options['delivery_days'][$index]['value']);
891 -//20110317ysk start
892 - //$res = $id . '#usces#' . $name . '#usces#' . $valuestr;
893 - //$res = $id . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
894 - $res = (string)$id;
895 -//20120710ysk end
896 -//20110317ysk end
897 - return $res;
898 -}
899 -
900 -function delete_delivery_days() {
901 - $options = get_option('usces');
902 - $id = (int)$_POST['id'];
903 - for($i=0; $i<count($options['delivery_days']); $i++){
904 - if($options['delivery_days'][$i]['id'] === $id){
905 - $index = $i;
906 - }
907 - }
908 - array_splice($options['delivery_days'], $index, 1);
909 - update_option('usces', $options);
910 -
911 - $res = $id . '#usces#0';
912 - return $res;
913 -}
914 -
915 -/************************************************************************************************/
916 -function shop_options_ajax()
917 -{
918 - global $usces;
919 -
920 - if( $_POST['action'] != 'shop_options_ajax' ) die(0);
921 -
922 - switch ($_POST['mode']) {
923 - case 'add_delivery_method':
924 - $res = add_delivery_method();
925 - break;
926 - case 'update_delivery_method':
927 - $res = update_delivery_method();
928 - break;
929 - case 'delete_delivery_method':
930 - $res = delete_delivery_method();
931 - break;
932 - case 'moveup_delivery_method':
933 - $res = moveup_delivery_method();
934 - break;
935 - case 'movedown_delivery_method':
936 - $res = movedown_delivery_method();
937 - break;
938 - case 'add_shipping_charge':
939 - $res = add_shipping_charge();
940 - break;
941 - case 'update_shipping_charge':
942 - $res = update_shipping_charge();
943 - break;
944 - case 'delete_shipping_charge':
945 - $res = delete_shipping_charge();
946 - break;
947 -//20101208ysk start
948 - case 'add_delivery_days':
949 - $res = add_delivery_days();
950 - break;
951 - case 'update_delivery_days':
952 - $res = update_delivery_days();
953 - break;
954 - case 'delete_delivery_days':
955 - $res = delete_delivery_days();
956 - break;
957 -//20101208ysk end
958 - }
959 -
960 - die( $res );
961 -}
962 -
963 -?>
1 +<?php
2 +/**
3 + * Welcart System Options
4 + *
5 + * Functions for system option operations.
6 + *
7 + * @package Welcart
8 + */
9 +
10 +defined( 'ABSPATH' ) || exit;
11 +
12 +/**
13 + * Add system option
14 + *
15 + * @param string $option_name Option name.
16 + * @param mixed $newvalue New value.
17 + * @return int
18 + */
19 +function usces_add_system_option( $option_name, $newvalue ) {
20 + global $usces;
21 +
22 + $newvalue = $usces->stripslashes_deep_post( $newvalue );
23 + $option_value = get_option( $option_name, array() );
24 +
25 + if ( ! empty( $option_value ) && is_array( $option_value ) ) {
26 + $option_num = count( $option_value );
27 + $unique = true;
28 + $sortnull = true;
29 + $sort = array();
30 + foreach ( (array) $option_value as $value ) {
31 + if ( $value['name'] == $newvalue['name'] ) {
32 + $unique = false;
33 + }
34 + if ( ! isset( $value['sort'] ) ) {
35 + $sortnull = false;
36 + }
37 + $sort[] = $value['sort'];
38 + }
39 + if ( ! $unique ) {
40 + return -1;
41 + }
42 + rsort( $sort );
43 + $next_number = reset( $sort ) + 1;
44 + $unique_sort = array_unique( $sort );
45 + $unique_sort_count = count( $unique_sort );
46 + if ( $option_num !== $unique_sort_count || $option_num !== $next_number || ! $sortnull ) {
47 + // To repair the sort data.
48 + $i = 0;
49 + foreach ( $option_value as $opkey => $opvalue ) {
50 + $option_value[ $opkey ]['sort'] = $i;
51 + $i++;
52 + }
53 + }
54 + }
55 + $newvalue['sort'] = ! empty( $option_num ) ? $option_num : 0;
56 + $option_value[] = $newvalue;
57 + update_option( $option_name, $option_value );
58 + krsort( $option_value );
59 + reset( $option_value );
60 + $last_index = key( $option_value );
61 +
62 + return $last_index;
63 +}
64 +
65 +/**
66 + * Update system option
67 + *
68 + * @param string $option_name Option name.
69 + * @param int $index Index.
70 + * @param mixed $newvalue New value.
71 + * @return int
72 + */
73 +function usces_update_system_option( $option_name, $index, $newvalue ) {
74 + global $usces;
75 +
76 + $newvalue = $usces->stripslashes_deep_post( $newvalue );
77 + $option_value = get_option( $option_name );
78 +
79 + if ( ! empty( $option_value ) ) {
80 + $unique = true;
81 + foreach ( (array) $option_value as $value_id => $value ) {
82 + if ( $value['name'] == $newvalue['name'] && $value_id != $index ) {
83 + $unique = false;
84 + break;
85 + }
86 + }
87 + if ( ! $unique ) {
88 + return -1;
89 + }
90 + $option_value[ $index ] = $newvalue;
91 + update_option( $option_name, $option_value );
92 + $lid = $index;
93 + } else {
94 + $lid = -1;
95 + }
96 +
97 + return $lid;
98 +}
99 +
100 +/**
101 + * Get system option
102 + *
103 + * @param string $option_name Option name.
104 + * @param string $keyflag Key.
105 + * @return array
106 + */
107 +function usces_get_system_option( $option_name, $keyflag = 'sort' ) {
108 + $sysopts = array();
109 + $option_value = get_option( $option_name );
110 +
111 + if ( ! is_array( $option_value ) ) {
112 + return $sysopts;
113 + }
114 +
115 + foreach ( $option_value as $id => $value ) {
116 + $key = isset( $value[ $keyflag ] ) ? $value[ $keyflag ] : $value['sort'];
117 + switch ( $option_name ) {
118 + case 'usces_payment_method':
119 + $sysopts[ $key ] = array(
120 + 'id' => $id,
121 + 'name' => esc_js( $value['name'] ),
122 + 'explanation' => wel_esc_script( $value['explanation'] ),
123 + 'settlement' => $value['settlement'],
124 + 'module' => $value['module'],
125 + 'sort' => $value['sort'],
126 + 'use' => isset( $value['use'] ) ? $value['use'] : 'activate',
127 + );
128 + break;
129 + }
130 + }
131 + ksort( $sysopts );
132 +
133 + return $sysopts;
134 +}
135 +
136 +/**
137 + * Sort system option
138 + *
139 + * @param string $option_name Option name.
140 + * @param string $idstr Ids.
141 + * @return void
142 + */
143 +function usces_sort_system_option( $option_name, $idstr ) {
144 + $option_value = get_option( $option_name );
145 +
146 + if ( ! empty( $option_value ) ) {
147 + $ids = explode( ',', $idstr );
148 + $c = 0;
149 + foreach ( (array) $ids as $id ) {
150 + $option_value[ $id ]['sort'] = $c;
151 + $c++;
152 + }
153 + update_option( $option_name, $option_value );
154 + }
155 + return;
156 +}
157 +
158 +/**
159 + * Delete system option
160 + *
161 + * @param string $option_name Option name.
162 + * @param string $id Id.
163 + * @return void
164 + */
165 +function usces_del_system_option( $option_name, $id ) {
166 + $option_value = get_option( $option_name );
167 +
168 + if ( ! empty( $option_value ) && isset( $option_value[ $id ] ) && ! empty( $option_value ) ) {
169 + unset( $option_value[ $id ] );
170 + $op = array();
171 + foreach ( (array) $option_value as $opkey => $opvalue ) {
172 + $op[ $opvalue['sort'] ] = $opkey;
173 + }
174 + ksort( $op );
175 + $c = 0;
176 + foreach ( $op as $opid ) {
177 + $option_value[ $opid ]['sort'] = $c;
178 + $c++;
179 + }
180 + update_option( $option_name, $option_value );
181 + }
182 + return;
183 +}
184 +
185 +/**
186 + * Payment list
187 + *
188 + * @param array $option_value Payment values.
189 + */
190 +function payment_list( $option_value ) {
191 + // Exit if no meta.
192 + if ( empty( $option_value ) ) :
193 + ?>
194 + <table id="payment-table" class="list" style="display: none;">
195 + <thead>
196 + <tr>
197 + <th class="hanldh">&emsp;</th>
198 + <th class="left"><?php esc_html_e( 'A payment method name', 'usces' ); ?></th>
199 + <th><?php esc_html_e( 'explanation', 'usces' ); ?></th>
200 + <th><?php esc_html_e( 'Type of payment', 'usces' ); ?></th>
201 + <th><?php esc_html_e( 'Payment module', 'usces' ); ?></th>
202 + </tr>
203 + </thead>
204 + <tbody id="payment-list">
205 + <tr><td></td><td></td><td></td></tr>
206 + </tbody>
207 + </table>
208 + <?php
209 + else :
210 + ?>
211 + <table id="payment-table" class="list">
212 + <thead>
213 + <tr>
214 + <th class="hanldh">&emsp;</th>
215 + <th class="paymentname"><?php esc_html_e( 'A payment method name', 'usces' ); ?></th>
216 + <th class="paymentexplanation"><?php esc_html_e( 'explanation', 'usces' ); ?></th>
217 + <th class="paymentsettlement"><?php esc_html_e( 'Type of payment', 'usces' ); ?></th>
218 + <th class="paymentmodule"><?php esc_html_e( 'Payment module', 'usces' ); ?></th>
219 + </tr>
220 + </thead>
221 + <tbody id="payment-list">
222 + <?php
223 + foreach ( $option_value as $value ) {
224 + echo _payment_list_row( $value );
225 + }
226 + ?>
227 + </tbody>
228 + </table>
229 + <div id="payment_ajax-response"></div>
230 + <?php
231 + endif;
232 +}
233 +
234 +/**
235 + * Payment list row
236 + *
237 + * @param array $value Payment value.
238 + */
239 +function _payment_list_row( $value ) {
240 +
241 + if ( empty( $value ) ) {
242 + return;
243 + }
244 +
245 + $r = '';
246 + $style = '';
247 + $id = (int) $value['id'];
248 + $name = $value['name'];
249 + $explanation = ( ! empty( $value['explanation'] ) ) ? $value['explanation'] : '';
250 + $settlement = $value['settlement'];
251 + $module = ( ! empty( $value['module'] ) ) ? $value['module'] : '';
252 + $sort = (int) $value['sort'];
253 + $use = ( isset( $value['use'] ) ) ? $value['use'] : 'activate';
254 +
255 + $payment_type = wel_get_payment_type();
256 +
257 + ob_start();
258 + ?>
259 + <tr class="metastuffrow">
260 + <td colspan="5">
261 + <table id="payment-<?php echo esc_attr( $id ); ?>" class="metastufftable">
262 + <tr>
263 + <th class="handlb" rowspan="2">&emsp;</th>
264 + <td class="paymentname">
265 + <div><input name="payment[<?php echo esc_attr( $id ); ?>][name]" id="payment[<?php echo esc_attr( $id ); ?>][name]" class="metaboxfield" type="text" value="<?php echo esc_attr( $name ); ?>" /></div>
266 + <div><input name="payment[<?php echo esc_attr( $id ); ?>][use]" id="payment[<?php echo esc_attr( $id ); ?>][use_activate]" type="radio" value="activate"<?php checked( 'deactivate' !== $use, true ); ?> /><label for="payment[<?php echo esc_attr( $id ); ?>][use_activate]"><?php esc_html_e( 'Activate', 'usces' ); ?></label>&emsp;
267 + <input name="payment[<?php echo esc_attr( $id ); ?>][use]" id="payment[<?php echo esc_attr( $id ); ?>][use_deactivate]" type="radio" value="deactivate"<?php checked( 'deactivate' === $use, true ); ?> /><label for="payment[<?php echo esc_attr( $id ); ?>][use_deactivate]"><?php esc_html_e( 'Deactivate', 'usces' ); ?></label></div>
268 + </td>
269 + <td class="paymentexplanation"><textarea name="payment[<?php echo esc_attr( $id ); ?>][explanation]" id="payment[<?php echo esc_attr( $id ); ?>][explanation]" class="metaboxfield"><?php echo esc_attr( $explanation ); ?></textarea></td>
270 + <td class="paymentsettlement">
271 + <select name="payment[<?php echo esc_attr( $id ); ?>][settlement]" id="payment[<?php echo esc_attr( $id ); ?>][settlement]" class="metaboxfield">
272 + <option value="#NONE#"><?php esc_html_e( '-- Select --', 'usces' ); ?></option>
273 + <?php
274 + foreach ( $payment_type as $psk => $psv ) :
275 + ?>
276 + <option value="<?php echo esc_attr( $psk ); ?>"<?php selected( $settlement, $psk ); ?>><?php echo esc_html( $psv ); ?></option>
277 + <?php
278 + endforeach;
279 + ?>
280 + </select>
281 + </td>
282 + <td class="paymentmodule"><div><input name="payment[<?php echo esc_attr( $id ); ?>][module]" id="payment[<?php echo esc_attr( $id ); ?>][module]" class="metaboxfield" type="text" value="<?php echo esc_attr( $module ); ?>" /></div></td>
283 + </tr>
284 + <tr>
285 + <td colspan="4" class="submittd">
286 + <div id="paymentsubmit-<?php echo esc_attr( $id ); ?>" class="submit">
287 + <input name="deletepayment" id="deletepayment[<?php echo esc_attr( $id ); ?>]" type="button" class="button" value="<?php esc_attr_e( 'Delete' ); ?>" onclick="payment.post('del', <?php echo esc_attr( $id ); ?>);" />
288 + <input name="updatepayment" id="updatepayment[<?php echo esc_attr( $id ); ?>]" type="button" class="button" value="<?php esc_attr_e( 'Update' ); ?>" onclick="payment.post('update', <?php echo esc_attr( $id ); ?>);" />
289 + <input name="payment[<?php echo esc_attr( $id ); ?>][sort]" id="payment[<?php echo esc_attr( $id ); ?>][sort]" type="hidden" value="<?php echo esc_attr( $sort ); ?>" />
290 + </div>
291 + <div id="payment_loading-<?php echo esc_attr( $id ); ?>" class="meta_submit_loading"></div>
292 + </td>
293 + </tr>
294 + </table>
295 + </td>
296 + </tr>
297 + <?php
298 + $r = ob_get_contents();
299 + ob_end_clean();
300 + return $r;
301 +}
302 +
303 +/**
304 + * Add payment form
305 + */
306 +function payment_form() {
307 + $payment_type = wel_get_payment_type();
308 + ?>
309 + <p><strong><?php esc_html_e( 'Add a new method forpayment ', 'usces' ); ?> : </strong></p>
310 + <table id="newmeta2">
311 + <thead>
312 + <tr>
313 + <th class="left"><?php esc_html_e( 'A payment method name', 'usces' ); ?></th>
314 + <th><?php esc_html_e( 'explanation', 'usces' ); ?></th>
315 + <th><?php esc_html_e( 'Type of payment', 'usces' ); ?></th>
316 + <th><?php esc_html_e( 'Payment module', 'usces' ); ?></th>
317 + </tr>
318 + </thead>
319 + <tbody>
320 + <tr>
321 + <td class="paymentname"><input type="text" id="newname" name="newname" class="metaboxfield" tabindex="7" value="" /></td>
322 + <td class="paymentexplanation"><textarea id="newexplanation" name="newexplanation" class="metaboxfield"></textarea></td>
323 + <td class="paymentsettlement">
324 + <select name="newsettlement" id="newsettlement" class="metaboxfield">
325 + <option value="#NONE#"><?php esc_html_e( '-- Select --', 'usces' ); ?></option>
326 + <?php foreach ( $payment_type as $psk => $psv ) : ?>
327 + <option value="<?php echo esc_attr( $psk ); ?>"><?php echo esc_html( $psv ); ?></option>
328 + <?php endforeach; ?>
329 + </select>
330 + </td>
331 + <td class="paymentmodule"><input type="text" id="newmodule" name="newmodule" class="metaboxfield" tabindex="9" value="" /></td>
332 + </tr>
333 + <tr>
334 + <td colspan="4" class="submittd">
335 + <div id="newpaymentsubmit" class="submit"><input name="add_payment" type="button" class="button" id="add_payment" tabindex="9" value="<?php esc_attr_e( 'Add a new method forpayment ', 'usces' ); ?>" onclick="payment.post('add', 0);" /></div>
336 + <div id="newpayment_loading" class="meta_submit_loading"></div>
337 + </td>
338 + </tr>
339 + </tbody>
340 + </table>
341 + <?php
342 +}
343 +
344 +/**
345 + * Payment Type
346 + *
347 + * @return array
348 + */
349 +function wel_get_payment_type() {
350 + global $usces, $payment_structure;
351 +
352 + $payment_type = $usces->payment_structure;
353 + foreach ( $payment_structure as $key => $value ) {
354 + if ( ! array_key_exists( $key, $payment_type ) ) {
355 + $payment_type[ $key ] = $value;
356 + }
357 + }
358 + return $payment_type;
359 +}
360 +
361 +/**
362 + * Payment Method Ajax
363 + */
364 +function payment_ajax() {
365 +
366 + check_admin_referer( 'admin_setup', 'wc_nonce' );
367 + if ( ! current_user_can( 'wel_manage_setting' ) ) {
368 + wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
369 + }
370 +
371 + $id = null;
372 +
373 + if ( 'payment_ajax' !== wp_unslash( $_POST['action'] ) ) {
374 + die(0);
375 + }
376 +
377 + if ( isset( $_POST['update'] ) ) {
378 + $id = up_payment_method();
379 + } elseif ( isset( $_POST['delete'] ) ) {
380 + $id = del_payment_method();
381 + } elseif ( isset( $_POST['sort'] ) ) {
382 + sort_payment_method();
383 + } else {
384 + $id = add_payment_method();
385 + }
386 +
387 + $option_value = usces_get_system_option( 'usces_payment_method', 'sort' );
388 + $r = '';
389 + foreach ( $option_value as $value ) {
390 + $r .= _payment_list_row( $value );
391 + }
392 + $response = array(
393 + 'meta_id' => $id,
394 + 'meta_row' => $r,
395 + );
396 +
397 + wp_send_json( $response );
398 +}
399 +
400 +/**
401 + * Add payment
402 + *
403 + * @return mixed
404 + */
405 +function add_payment_method() {
406 + $newvalue['name'] = isset( $_POST['newname'] ) ? trim( wp_unslash( $_POST['newname'] ) ) : '';
407 + $newvalue['explanation'] = isset( $_POST['newexplanation'] ) ? trim( wp_unslash( $_POST['newexplanation'] ) ) : '';
408 + $newvalue['settlement'] = isset( $_POST['newsettlement'] ) ? wp_unslash( $_POST['newsettlement'] ) : '';
409 + $newvalue['module'] = isset( $_POST['newmodule'] ) ? trim( wp_unslash( $_POST['newmodule'] ) ) : '';
410 + $newvalue = apply_filters( 'usces_filter_add_payment_method', $newvalue );
411 + // if ( 'acting_paypal_ec' == $newvalue['settlement'] ) {
412 + // $newvalue = usces_add_payment_method_paypal_explanation( $newvalue );
413 + // }
414 + if ( ! empty( $newvalue['name'] ) ) {
415 + $lid = usces_add_system_option( 'usces_payment_method', $newvalue );
416 + // if ( USCES_JP && 0 <= $lid && 'acting_paypal_ec' == $newvalue['settlement'] ) {
417 + // $lid = usces_add_payment_method_paypal_bank( $newvalue );
418 + // }
419 + return $lid;
420 + }
421 + return false;
422 +}
423 +
424 +/**
425 + * Update payment
426 + *
427 + * @return mixed
428 + */
429 +function up_payment_method() {
430 + $value = array();
431 + $id = wp_unslash( $_POST['id'] );
432 + $value['name'] = isset( $_POST['name'] ) ? trim( wp_unslash( $_POST['name'] ) ) : '';
433 + $value['explanation'] = isset( $_POST['explanation'] ) ? trim( wp_unslash( $_POST['explanation'] ) ) : '';
434 + $value['settlement'] = isset( $_POST['settlement'] ) ? wp_unslash( $_POST['settlement'] ) : '';
435 + $value['module'] = isset( $_POST['module'] ) ? trim( wp_unslash( $_POST['module'] ) ) : '';
436 + $value['sort'] = isset( $_POST['sort'] ) ? (int) wp_unslash( $_POST['sort'] ) : 0;
437 + $value['use'] = isset( $_POST['use'] ) ? wp_unslash( $_POST['use'] ) : 'activate';
438 + $value = apply_filters( 'usces_filter_up_payment_method', $value );
439 +
440 + if ( ! empty( $value['name'] ) && ! WCUtils::is_blank( $id ) ) {
441 +
442 + $id = usces_update_system_option( 'usces_payment_method', $id, $value );
443 +
444 + return $id;
445 + }
446 + return -2;
447 +}
448 +
449 +/**
450 + * Delete payment
451 + *
452 + * @return mixed
453 + */
454 +function del_payment_method() {
455 +
456 + $id = wp_unslash( $_POST['id'] );
457 +
458 + if ( ! WCUtils::is_blank( $id ) ) {
459 +
460 + usces_del_system_option( 'usces_payment_method', $id );
461 +
462 + return $id;
463 + }
464 + return false;
465 +}
466 +
467 +/**
468 + * Sort payment method
469 + *
470 + * @return mixed
471 + */
472 +function sort_payment_method() {
473 +
474 + return usces_sort_system_option( 'usces_payment_method', wp_unslash( $_POST['idstr'] ) );
475 +}
476 +
477 +/**
478 + * Add delivery method
479 + *
480 + * @return mixed
481 + */
482 +function add_delivery_method() {
483 + $options = get_option( 'usces', array() );
484 + $name = trim( esc_js( $_POST['name'] ) );
485 + $ids = array();
486 + foreach ( (array) $options['delivery_method'] as $deli ) {
487 + $ids[] = (int) $deli['id'];
488 + }
489 + if ( ! empty( $ids ) ) {
490 + rsort( $ids );
491 + $newid = $ids[0] + 1;
492 + } else {
493 + $newid = 0;
494 + }
495 + $index = ( isset( $options['delivery_method'] ) && is_array( $options['delivery_method'] ) ) ? count( $options['delivery_method'] ) : 0;
496 +
497 + $time = wel_esc_script( str_replace( "\r\n", "\n", wp_unslash( $_POST['timeband'] ) ) );
498 + $time = str_replace( "\r", "\n", $time );
499 + $time_array = explode( "\n", $time );
500 + $times = array();
501 + foreach ( (array) $time_array as $val ) {
502 + $times[] = esc_js( stripslashes( $val ) );
503 + }
504 +
505 + $options['delivery_method'][ $index ]['id'] = $newid;
506 + $options['delivery_method'][ $index ]['name'] = esc_js( $name );
507 + $options['delivery_method'][ $index ]['time'] = implode( "\n", $times );
508 + $options['delivery_method'][ $index ]['charge'] = (int) esc_js( $_POST['charge'] );
509 + $options['delivery_method'][ $index ]['days'] = (int) esc_js( $_POST['days'] );
510 + $options['delivery_method'][ $index ]['nocod'] = esc_js( $_POST['nocod'] );
511 + $options['delivery_method'][ $index ]['intl'] = esc_js( $_POST['intl'] );
512 + $options['delivery_method'][ $index ]['cool_category'] = (int) esc_js( $_POST['cool_category'] );
513 + update_option( 'usces', $options );
514 +
515 + $response = array(
516 + 'id' => $newid,
517 + 'name' => esc_js( stripslashes( $name ) ),
518 + 'time' => implode( "\n", $times ),
519 + 'charge' => $options['delivery_method'][ $index ]['charge'],
520 + 'days' => $options['delivery_method'][ $index ]['days'],
521 + 'nocod' => $options['delivery_method'][ $index ]['nocod'],
522 + 'intl' => $options['delivery_method'][ $index ]['intl'],
523 + 'cool_category' => $options['delivery_method'][ $index ]['cool_category'],
524 + );
525 +
526 + return json_encode( $response );
527 +}
528 +
529 +/**
530 + * Update delivery method
531 + *
532 + * @return mixed
533 + */
534 +function update_delivery_method() {
535 + $options = get_option( 'usces', array() );
536 + $name = trim( esc_js( $_POST['name'] ) );
537 + $id = (int) esc_js( $_POST['id'] );
538 + $charge = (int) esc_js( $_POST['charge'] );
539 + $index = 0;
540 + $ct = ( isset( $options['delivery_method'] ) && is_array( $options['delivery_method'] ) ) ? count( $options['delivery_method'] ) : 0;
541 + for ( $i = 0; $i < $ct; $i++ ) {
542 + if ( $options['delivery_method'][ $i ]['id'] === $id ) {
543 + $index = $i;
544 + }
545 + }
546 + $time = wel_esc_script( str_replace( "\r\n", "\n", wp_unslash( $_POST['timeband'] ) ) );
547 + $time = str_replace( "\r", "\n", $time );
548 + $time_array = explode( "\n", $time );
549 + $times = array();
550 + foreach ( (array) $time_array as $val ) {
551 + $times[] = esc_js( stripslashes( $val ) );
552 + }
553 +
554 + $options['delivery_method'][ $index ]['name'] = esc_js( $name );
555 + $options['delivery_method'][ $index ]['charge'] = $charge;
556 + $options['delivery_method'][ $index ]['time'] = implode( "\n", $times );
557 + $options['delivery_method'][ $index ]['days'] = (int) esc_js( $_POST['days'] );
558 + $options['delivery_method'][ $index ]['nocod'] = esc_js( $_POST['nocod'] );
559 + $options['delivery_method'][ $index ]['intl'] = esc_js( $_POST['intl'] );
560 + $options['delivery_method'][ $index ]['cool_category'] = (int) esc_js( $_POST['cool_category'] );
561 + update_option( 'usces', $options );
562 +
563 + $response = array(
564 + 'id' => $id,
565 + 'name' => esc_js( stripslashes( $name ) ),
566 + 'time' => implode( "\n", $times ),
567 + 'charge' => $options['delivery_method'][ $index ]['charge'],
568 + 'days' => $options['delivery_method'][ $index ]['days'],
569 + 'nocod' => $options['delivery_method'][ $index ]['nocod'],
570 + 'intl' => $options['delivery_method'][ $index ]['intl'],
571 + 'cool_category' => $options['delivery_method'][ $index ]['cool_category'],
572 + );
573 +
574 + return json_encode( $response );
575 +}
576 +
577 +/**
578 + * Delete delivery method
579 + *
580 + * @return mixed
581 + */
582 +function delete_delivery_method() {
583 + $options = get_option( 'usces', array() );
584 + $id = (int) wp_unslash( $_POST['id'] );
585 + $index = 0;
586 + $ct = ( isset( $options['delivery_method'] ) && is_array( $options['delivery_method'] ) ) ? count( $options['delivery_method'] ) : 0;
587 + for ( $i = 0; $i < $ct; $i++ ) {
588 + if ( $options['delivery_method'][ $i ]['id'] === $id ) {
589 + $index = $i;
590 + }
591 + }
592 + array_splice( $options['delivery_method'], $index, 1 );
593 + update_option( 'usces', $options );
594 +
595 + $response = array( 'id' => $id );
596 +
597 + return json_encode( $response );
598 +}
599 +
600 +/**
601 + * Moveup delivery method
602 + *
603 + * @return mixed
604 + */
605 +function moveup_delivery_method() {
606 + $options = get_option( 'usces', array() );
607 + $selected_id = (int) wp_unslash( $_POST['id'] );
608 + $index = 0;
609 + $ct = ( isset( $options['delivery_method'] ) && is_array( $options['delivery_method'] ) ) ? count( $options['delivery_method'] ) : 0;
610 + for ( $i = 0; $i < $ct; $i++ ) {
611 + if ( $options['delivery_method'][ $i ]['id'] === $selected_id ) {
612 + $index = $i;
613 + }
614 + }
615 + if ( 0 !== $index ) {
616 + $from_index = $index;
617 + $to_index = $index - 1;
618 + $from_dm = $options['delivery_method'][ $from_index ];
619 + $to_dm = $options['delivery_method'][ $to_index ];
620 + for ( $i = 0; $i < $ct; $i++ ) {
621 + if ( $i === $to_index ) {
622 + $options['delivery_method'][ $i ] = $from_dm;
623 + } elseif ( $i === $from_index ) {
624 + $options['delivery_method'][ $i ] = $to_dm;
625 + }
626 + }
627 + update_option( 'usces', $options );
628 + }
629 +
630 + $id = '';
631 + $name = '';
632 + $charge = '';
633 + $time = '';
634 + $days = '';
635 + $nocod = '';
636 + $intl = '';
637 + $cool_category = '';
638 + for ( $i = 0; $i < $ct; $i++ ) {
639 + $id .= $options['delivery_method'][ $i ]['id'] . ',';
640 + $name .= $options['delivery_method'][ $i ]['name'] . ',';
641 + $charge .= $options['delivery_method'][ $i ]['charge'] . ',';
642 + $time .= $options['delivery_method'][ $i ]['time'] . ',';
643 + $days .= $options['delivery_method'][ $i ]['days'] . ',';
644 + $nocod .= $options['delivery_method'][ $i ]['nocod'] . ',';
645 + $intl .= $options['delivery_method'][ $i ]['intl'] . ',';
646 + $cool_category .= isset( $options['delivery_method'][ $i ]['cool_category'] ) ? ( $options['delivery_method'][ $i ]['cool_category'] . ',' ) : '0,';
647 + }
648 +
649 + $response = array(
650 + 'id' => rtrim( $id, ',' ),
651 + 'name' => rtrim( $name, ',' ),
652 + 'time' => rtrim( $time, ',' ),
653 + 'charge' => rtrim( $charge, ',' ),
654 + 'days' => rtrim( $days, ',' ),
655 + 'nocod' => rtrim( $nocod, ',' ),
656 + 'intl' => rtrim( $intl, ',' ),
657 + 'cool_category' => rtrim( $cool_category, ',' ),
658 + 'selected' => $selected_id,
659 + );
660 +
661 + return json_encode( $response );
662 +}
663 +
664 +/**
665 + * Movedown delivery method
666 + *
667 + * @return mixed
668 + */
669 +function movedown_delivery_method() {
670 + $options = get_option( 'usces', array() );
671 + $selected_id = (int) wp_unslash( $_POST['id'] );
672 + $index = 0;
673 + $ct = ( isset( $options['delivery_method'] ) && is_array( $options['delivery_method'] ) ) ? count( $options['delivery_method'] ) : 0;
674 + for ( $i = 0; $i < $ct; $i++ ) {
675 + if ( $options['delivery_method'][ $i ]['id'] === $selected_id ) {
676 + $index = $i;
677 + }
678 + }
679 + if ( $index < $ct - 1 ) {
680 + $from_index = $index;
681 + $to_index = $index + 1;
682 + $from_dm = $options['delivery_method'][ $from_index ];
683 + $to_dm = $options['delivery_method'][ $to_index ];
684 + for ( $i = 0; $i < $ct; $i++ ) {
685 + if ( $i === $to_index ) {
686 + $options['delivery_method'][ $i ] = $from_dm;
687 + } elseif ( $i === $from_index ) {
688 + $options['delivery_method'][ $i ] = $to_dm;
689 + }
690 + }
691 + update_option( 'usces', $options );
692 + }
693 +
694 + $id = '';
695 + $name = '';
696 + $charge = '';
697 + $time = '';
698 + $days = '';
699 + $nocod = '';
700 + $intl = '';
701 + $cool_category = '';
702 + for ( $i = 0; $i < $ct; $i++ ) {
703 + $id .= $options['delivery_method'][ $i ]['id'] . ',';
704 + $name .= $options['delivery_method'][ $i ]['name'] . ',';
705 + $charge .= $options['delivery_method'][ $i ]['charge'] . ',';
706 + $time .= $options['delivery_method'][ $i ]['time'] . ',';
707 + $days .= $options['delivery_method'][ $i ]['days'] . ',';
708 + $nocod .= $options['delivery_method'][ $i ]['nocod'] . ',';
709 + $intl .= $options['delivery_method'][ $i ]['intl'] . ',';
710 + $cool_category .= isset( $options['delivery_method'][ $i ]['cool_category'] ) ? ( $options['delivery_method'][ $i ]['cool_category'] . ',' ) : '0,';
711 + }
712 + $response = array(
713 + 'id' => rtrim( $id, ',' ),
714 + 'name' => rtrim( $name, ',' ),
715 + 'time' => rtrim( $time, ',' ),
716 + 'charge' => rtrim( $charge, ',' ),
717 + 'days' => rtrim( $days, ',' ),
718 + 'nocod' => rtrim( $nocod, ',' ),
719 + 'intl' => rtrim( $intl, ',' ),
720 + 'cool_category' => rtrim( $cool_category, ',' ),
721 + 'selected' => $selected_id,
722 + );
723 +
724 + return json_encode( $response );
725 +}
726 +
727 +/**
728 + * Add shipping charge
729 + *
730 + * @return string
731 + */
732 +function add_shipping_charge() {
733 + $options = get_option( 'usces', array() );
734 + $name = trim( wp_unslash( $_POST['name'] ) );
735 + $ids = array();
736 + foreach ( (array) $options['shipping_charge'] as $charge ) {
737 + $ids[] = (int) $charge['id'];
738 + }
739 + if ( ! empty( $ids ) ) {
740 + rsort( $ids );
741 + $newid = $ids[0] + 1;
742 + } else {
743 + $newid = 0;
744 + }
745 + $index = ( isset( $options['shipping_charge'] ) && is_array( $options['shipping_charge'] ) ) ? count( $options['shipping_charge'] ) : 0;
746 + $target_market = ( isset( $options['system']['target_market'] ) && ! empty( $options['system']['target_market'] ) ) ? $options['system']['target_market'] : usces_get_local_target_market();
747 + foreach ( (array) $target_market as $tm ) {
748 + $prefs = get_usces_states( $tm );
749 + array_shift( $prefs );
750 + $value = wp_unslash( $_POST[ 'value_' . $tm ] );
751 +
752 + $options['shipping_charge'][ $index ]['id'] = $newid;
753 + $options['shipping_charge'][ $index ]['name'] = esc_js( $name );
754 + $prefs_count = count( $prefs );
755 + for ( $i = 0; $i < $prefs_count; $i++ ) {
756 + $options['shipping_charge'][ $index ][ $tm ][ $prefs[ $i ] ] = (float) $value[ $i ];
757 + }
758 + }
759 + update_option( 'usces', $options );
760 +
761 + $res = (string) $newid;
762 + return $res;
763 +}
764 +
765 +/**
766 + * Update shipping charge
767 + *
768 + * @return string
769 + */
770 +function update_shipping_charge() {
771 + $options = get_option( 'usces', array() );
772 + $name = trim( wp_unslash( $_POST['name'] ) );
773 + $id = (int) wp_unslash( $_POST['id'] );
774 + $index = 0;
775 +
776 + $shipping_charge_count = ( isset( $options['shipping_charge'] ) && is_array( $options['shipping_charge'] ) ) ? count( $options['shipping_charge'] ) : 0;
777 + for ( $i = 0; $i < $shipping_charge_count; $i++ ) {
778 + if ( $options['shipping_charge'][ $i ]['id'] === $id ) {
779 + $index = $i;
780 + }
781 + }
782 + $options['shipping_charge'][ $index ]['name'] = esc_js( $name );
783 + $target_market = ( isset( $options['system']['target_market'] ) && ! empty( $options['system']['target_market'] ) ) ? $options['system']['target_market'] : usces_get_local_target_market();
784 + foreach ( (array) $target_market as $tm ) {
785 + $prefs = get_usces_states( $tm );
786 + array_shift( $prefs );
787 + $value = wp_unslash( $_POST[ 'value_' . $tm ] );
788 + $prefs_count = count( $prefs );
789 + for ( $i = 0; $i < $prefs_count; $i++ ) {
790 + $options['shipping_charge'][ $index ][ $tm ][ $prefs[ $i ] ] = (float) $value[ $i ];
791 + }
792 + }
793 + $options = apply_filters( 'usces_filter_update_shipping_charge', $options, $index, $name, $id );
794 +
795 + update_option( 'usces', $options );
796 +
797 + $res = (string) $id;
798 + return $res;
799 +}
800 +
801 +/**
802 + * Delete shipping charge
803 + *
804 + * @return string
805 + */
806 +function delete_shipping_charge() {
807 + $options = get_option( 'usces', array() );
808 + $id = (int) wp_unslash( $_POST['id'] );
809 + $index = 0;
810 +
811 + $shipping_charge_count = ( isset( $options['shipping_charge'] ) && is_array( $options['shipping_charge'] ) ) ? count( $options['shipping_charge'] ) : 0;
812 + for ( $i = 0; $i < $shipping_charge_count; $i++ ) {
813 + if ( $options['shipping_charge'][ $i ]['id'] === $id ) {
814 + $index = $i;
815 + }
816 + }
817 + array_splice( $options['shipping_charge'], $index, 1 );
818 + update_option( 'usces', $options );
819 +
820 + $res = (string) $id;
821 + return $res;
822 +}
823 +
824 +/**
825 + * Add delivery days
826 + *
827 + * @return string
828 + */
829 +function add_delivery_days() {
830 + $options = get_option( 'usces', array() );
831 + $name = trim( wp_unslash( $_POST['name'] ) );
832 + $ids = array();
833 + foreach ( (array) $options['delivery_days'] as $charge ) {
834 + $ids[] = (int) $charge['id'];
835 + }
836 + if ( ! empty( $ids ) ) {
837 + rsort( $ids );
838 + $newid = $ids[0] + 1;
839 + } else {
840 + $newid = 0;
841 + }
842 + $index = ( isset( $options['delivery_days'] ) && is_array( $options['delivery_days'] ) ) ? count( $options['delivery_days'] ) : 0;
843 + $target_market = ( isset( $options['system']['target_market'] ) && ! empty( $options['system']['target_market'] ) ) ? $options['system']['target_market'] : usces_get_local_target_market();
844 + foreach ( (array) $target_market as $tm ) {
845 + $prefs = get_usces_states( $tm );
846 + array_shift( $prefs );
847 + $value = wp_unslash( $_POST[ 'value_' . $tm ] );
848 +
849 + $options['delivery_days'][ $index ]['id'] = $newid;
850 + $options['delivery_days'][ $index ]['name'] = esc_js( $name );
851 + $prefs_count = count( $prefs );
852 + for ( $i = 0; $i < $prefs_count; $i++ ) {
853 + $options['delivery_days'][ $index ][ $tm ][ $prefs[ $i ] ] = (int) $value[ $i ];
854 + }
855 + }
856 + update_option( 'usces', $options );
857 +
858 + $res = (string) $newid;
859 + return $res;
860 +}
861 +
862 +/**
863 + * Update delivery days
864 + *
865 + * @return string
866 + */
867 +function update_delivery_days() {
868 + $options = get_option( 'usces', array() );
869 + $name = trim( wp_unslash( $_POST['name'] ) );
870 + $id = (int) wp_unslash( $_POST['id'] );
871 + $index = 0;
872 +
873 + $delivery_days_count = ( isset( $options['delivery_days'] ) && is_array( $options['delivery_days'] ) ) ? count( $options['delivery_days'] ) : 0;
874 + for ( $i = 0; $i < $delivery_days_count; $i++ ) {
875 + if ( $options['delivery_days'][ $i ]['id'] === $id ) {
876 + $index = $i;
877 + }
878 + }
879 + $options['delivery_days'][ $index ]['name'] = esc_js( $name );
880 + $target_market = ( isset( $options['system']['target_market'] ) && ! empty( $options['system']['target_market'] ) ) ? $options['system']['target_market'] : usces_get_local_target_market();
881 + foreach ( (array) $target_market as $tm ) {
882 + $prefs = get_usces_states( $tm );
883 + array_shift( $prefs );
884 + $value = wp_unslash( $_POST[ 'value_' . $tm ] );
885 + $prefs_count = count( $prefs );
886 + for ( $i = 0; $i < $prefs_count; $i++ ) {
887 + $options['delivery_days'][ $index ][ $tm ][ $prefs[ $i ] ] = (int) $value[ $i ];
888 + }
889 + }
890 + update_option( 'usces', $options );
891 +
892 + $res = (string) $id;
893 + return $res;
894 +}
895 +
896 +/**
897 + * Delete delivery days
898 + *
899 + * @return string
900 + */
901 +function delete_delivery_days() {
902 + $options = get_option( 'usces', array() );
903 + $id = (int) wp_unslash( $_POST['id'] );
904 + $index = 0;
905 + $delivery_days_count = ( isset( $options['delivery_days'] ) && is_array( $options['delivery_days'] ) ) ? count( $options['delivery_days'] ) : 0;
906 + for ( $i = 0; $i < $delivery_days_count; $i++ ) {
907 + if ( $options['delivery_days'][ $i ]['id'] === $id ) {
908 + $index = $i;
909 + }
910 + }
911 + array_splice( $options['delivery_days'], $index, 1 );
912 + update_option( 'usces', $options );
913 +
914 + $res = (string) $id;
915 + return $res;
916 +}
917 +
918 +/**
919 + * Shop Options Ajax
920 + *
921 + * @return void
922 + */
923 +function shop_options_ajax() {
924 +
925 + check_admin_referer( 'admin_delivery', 'wc_nonce' );
926 + if ( ! current_user_can( 'wel_manage_setting' ) ) {
927 + wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
928 + }
929 +
930 + if ( isset( $_POST['action'] ) && 'shop_options_ajax' !== wp_unslash( $_POST['action'] ) ) {
931 + die(0);
932 + }
933 +
934 + $mode = ( isset( $_POST['mode'] ) ) ? wp_unslash( $_POST['mode'] ) : '';
935 + switch ( $mode ) {
936 + case 'add_delivery_method':
937 + $res = add_delivery_method();
938 + break;
939 + case 'update_delivery_method':
940 + $res = update_delivery_method();
941 + break;
942 + case 'delete_delivery_method':
943 + $res = delete_delivery_method();
944 + break;
945 + case 'moveup_delivery_method':
946 + $res = moveup_delivery_method();
947 + break;
948 + case 'movedown_delivery_method':
949 + $res = movedown_delivery_method();
950 + break;
951 + case 'add_shipping_charge':
952 + $res = add_shipping_charge();
953 + break;
954 + case 'update_shipping_charge':
955 + $res = update_shipping_charge();
956 + break;
957 + case 'delete_shipping_charge':
958 + $res = delete_shipping_charge();
959 + break;
960 + case 'add_delivery_days':
961 + $res = add_delivery_days();
962 + break;
963 + case 'update_delivery_days':
964 + $res = update_delivery_days();
965 + break;
966 + case 'delete_delivery_days':
967 + $res = delete_delivery_days();
968 + break;
969 + }
970 +
971 + die( $res );
972 +}