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 -965 1.3.92.12.4 View file →
@@ -1,965 +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 - <option value='#NONE#'><?php _e('-- Select --','usces'); ?></option>
212 - <?php
213 - foreach ($usces->payment_structure as $psk => $psv){
214 - $selected = ($psk == $settlement) ? ' selected="selected"' : '';
215 - ?>
216 - <option value='<?php echo $psk; ?>'<?php echo $selected; ?>><?php echo esc_html($psv); ?></option>
217 - <?php
218 - }
219 - ?>
220 - </select>
221 - </td>
222 - <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>
223 - </tr>
224 - <tr>
225 - <td colspan='4' class='submittd'>
226 - <div id='paymentsubmit-<?php echo $id; ?>' class='submit'>
227 - <input name='deletepayment' id='deletepayment[<?php echo $id; ?>]' type='button' value='<?php esc_attr_e(__( 'Delete' )); ?>' onclick="payment.post('del', <?php echo $id; ?>);" />
228 - <input name='updatepayment' id='updatepayment[<?php echo $id; ?>]' type='button' value='<?php esc_attr_e(__( 'Update' )); ?>' onclick="payment.post('update', <?php echo $id; ?>);" />
229 - <input name='payment[<?php echo $id; ?>][sort]' id='payment[<?php echo $id; ?>][sort]' type='hidden' value='<?php echo $sort; ?>' />
230 - </div>
231 - <div id='payment_loading-<?php echo $id; ?>' class='meta_submit_loading'></div>
232 - </td>
233 - </tr>
234 - </table>
235 - </td>
236 - </tr>
237 - <?php
238 - $r = ob_get_contents();
239 - ob_end_clean();
240 - return $r;
241 -}
242 -/**
243 - * payment_form
244 - */
245 -function payment_form() {
246 - global $usces;
247 - ?>
248 - <p><strong><?php _e('Add a new method forpayment ','usces') ?> : </strong></p>
249 - <table id="newmeta2">
250 - <thead>
251 - <tr>
252 - <th class="left"><?php _e('A payment method name','usces') ?></th>
253 - <th><?php _e('explanation','usces') ?></th>
254 - <th><?php _e('Type of payment','usces') ?></th>
255 - <th><?php _e('Payment module','usces') ?></th>
256 - </tr>
257 - </thead>
258 - <tbody>
259 - <tr>
260 - <td class='paymentname'><input type="text" id="newname" name="newname" class="metaboxfield" tabindex="7" value="" /></td>
261 - <td class='paymentexplanation'><textarea id="newexplanation" name="newexplanation" class='metaboxfield'></textarea></td>
262 - <td class='paymentsettlement'>
263 - <select name="newsettlement" id="newsettlement" class='metaboxfield'>
264 - <option value='#NONE#'><?php _e('-- Select --','usces'); ?></option>
265 - <?php foreach ($usces->payment_structure as $psk => $psv) { ?>
266 - <option value="<?php echo esc_attr($psk); ?>"><?php echo esc_html($psv); ?></option>
267 - <?php } ?>
268 - </select>
269 - </td>
270 - <td class='paymentmodule'><input type="text" id="newmodule" name="newmodule" class="metaboxfield" tabindex="9" value="" /></td>
271 - </tr>
272 -
273 - <tr>
274 - <td colspan="4" class="submittd">
275 - <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>
276 - <div id="newpayment_loading" class="meta_submit_loading"></div>
277 - </td>
278 - </tr>
279 - </tbody>
280 - </table>
281 - <?php
282 -}
283 -
284 -
285 -function payment_ajax()
286 -{
287 - global $usces;
288 -
289 - $id = NULL;
290 -
291 - if( $_POST['action'] != 'payment_ajax' ) die(0);
292 -
293 - if(isset($_POST['update'])){
294 - $id = up_payment_method();
295 -
296 - }else if(isset($_POST['delete'])){
297 - $id = del_payment_method();
298 -
299 - }else if(isset($_POST['sort'])){
300 - $res = sort_payment_method();
301 -
302 - }else{
303 - $id = add_payment_method();
304 -
305 - }
306 -
307 - $option_value = usces_get_system_option('usces_payment_method', 'sort');
308 - $r = '';
309 - foreach ( $option_value as $value )
310 - $r .= _payment_list_row( $value );
311 -
312 - $res = $r . '#usces#' . $id;
313 -
314 - die( $res );
315 -}
316 -/**
317 - * add_payment
318 - */
319 -function add_payment_method() {
320 -
321 - $newvalue['name'] = isset($_POST['newname']) ? trim( $_POST['newname'] ) : '';
322 - $newvalue['explanation'] = isset($_POST['newexplanation']) ? trim( $_POST['newexplanation'] ) : '';
323 - $newvalue['settlement'] = isset($_POST['newsettlement']) ? $_POST['newsettlement'] : '';
324 - $newvalue['module'] = isset($_POST['newmodule']) ? trim( $_POST['newmodule'] ) : '';
325 -
326 - if ( !empty( $newvalue['name'] ) ) {
327 - $lid = usces_add_system_option( 'usces_payment_method', $newvalue );
328 -
329 - return $lid;
330 - }
331 - return false;
332 -} // add_meta
333 -/**
334 - * update_payment
335 - */
336 -
337 -function up_payment_method() {
338 - global $usces;
339 -
340 - $value = array();
341 - //$id = isset($_POST['id']) ? (int)$_POST['id'] : '';
342 - $id = $_POST['id'];
343 - $value['name'] = isset($_POST['name']) ? trim( $_POST['name'] ) : '';
344 - $value['explanation'] = isset($_POST['explanation']) ? trim( $_POST['explanation'] ) : '';
345 - $value['settlement'] = isset($_POST['settlement']) ? $_POST['settlement'] : '';
346 - $value['module'] = isset($_POST['module']) ? trim( $_POST['module'] ) : '';
347 - $value['sort'] = isset($_POST['sort']) ?(int)$_POST['sort'] : 0;
348 -
349 - if ( !empty( $value['name'] ) && !WCUtils::is_blank($id) ) {
350 -
351 - $id = usces_update_system_option( 'usces_payment_method', $id, $value );
352 -
353 - return $id;
354 - }
355 - return -2;
356 -} // add_meta
357 -
358 -/**
359 - * delete_payment
360 - */
361 -function del_payment_method() {
362 - global $usces;
363 -
364 - $id = $_POST['id'];
365 -
366 - if ( !WCUtils::is_blank($id) ) {
367 -
368 - usces_del_system_option( 'usces_payment_method', $id );
369 -
370 - return $id;
371 - }
372 - return false;
373 -}
374 -
375 -function sort_payment_method(){
376 -
377 - return usces_sort_system_option( 'usces_payment_method', $_POST['idstr'] );
378 -}
379 -
380 -function add_delivery_method() {
381 - $options = get_option('usces');
382 - $name = trim($_POST['name']);
383 - foreach((array)$options['delivery_method'] as $deli){
384 - $ids[] = (int)$deli['id'];
385 - }
386 - if(isset($ids)){
387 - rsort($ids);
388 - $newid = $ids[0]+1;
389 - }else{
390 - $newid = 0;
391 - }
392 - $index = isset($options['delivery_method']) ? count($options['delivery_method']) : 0;
393 - $options['delivery_method'][$index]['id'] = $newid;
394 - $options['delivery_method'][$index]['name'] = $name;
395 - $options['delivery_method'][$index]['time'] = str_replace("\r\n", "\n", $_POST['time']);
396 - $options['delivery_method'][$index]['time'] = str_replace("\r", "\n", $options['delivery_method'][$index]['time']);
397 - $options['delivery_method'][$index]['charge'] = (int)$_POST['charge'];
398 -//20101208ysk start
399 - $options['delivery_method'][$index]['days'] = (int)$_POST['days'];
400 -//20101208ysk end
401 -//20101119ysk start
402 - $options['delivery_method'][$index]['nocod'] = $_POST['nocod'];
403 -//20101119ysk end
404 -//20110317ysk start
405 - $options['delivery_method'][$index]['intl'] = $_POST['intl'];
406 -//20110317ysk end
407 - update_option('usces', $options);
408 -
409 -//20101208ysk start
410 -//20101119ysk start
411 - //$res = $newid . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'];
412 - //$res = $newid . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['nocod'];
413 -//20101119ysk end
414 -//20110317ysk start
415 - //$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'];
416 - $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'];
417 -//20110317ysk end
418 -//20101208ysk end
419 - return $res;
420 -}
421 -
422 -function update_delivery_method() {
423 - $options = get_option('usces');
424 - $name = trim($_POST['name']);
425 - $id = (int)$_POST['id'];
426 - $charge = (int)$_POST['charge'];
427 - for($i=0; $i<count($options['delivery_method']); $i++){
428 - if($options['delivery_method'][$i]['id'] === $id){
429 - $index = $i;
430 - }
431 - }
432 - $options['delivery_method'][$index]['name'] = $name;
433 - $options['delivery_method'][$index]['charge'] = $charge;
434 - $options['delivery_method'][$index]['time'] = str_replace("\r\n", "\n", $_POST['time']);
435 - $options['delivery_method'][$index]['time'] = str_replace("\r", "\n", $options['delivery_method'][$index]['time']);
436 -//20101208ysk start
437 - $options['delivery_method'][$index]['days'] = (int)$_POST['days'];
438 -//20101208ysk end
439 -//20101119ysk start
440 - $options['delivery_method'][$index]['nocod'] = $_POST['nocod'];
441 -//20101119ysk end
442 -//20110317ysk start
443 - $options['delivery_method'][$index]['intl'] = $_POST['intl'];
444 -//20110317ysk end
445 - update_option('usces', $options);
446 -
447 -//20101208ysk start
448 -//20101119ysk start
449 - //$res = $id . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'];
450 - //$res = $id . '#usces#' . $name . '#usces#' . $options['delivery_method'][$index]['time'] . '#usces#' . $options['delivery_method'][$index]['charge'] . '#usces#' . $options['delivery_method'][$index]['nocod'];
451 -//20101119ysk end
452 -//20110317ysk start
453 - //$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'];
454 - $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'];
455 -//20110317ysk end
456 -//20101208ysk end
457 - return $res;
458 -}
459 -
460 -function delete_delivery_method() {
461 - $options = get_option('usces');
462 - $id = (int)$_POST['id'];
463 - for($i=0; $i<count($options['delivery_method']); $i++){
464 - if($options['delivery_method'][$i]['id'] === $id){
465 - $index = $i;
466 - }
467 - }
468 - array_splice($options['delivery_method'], $index, 1);
469 - update_option('usces', $options);
470 -
471 - $res = $id . '#usces#0';
472 - return $res;
473 -}
474 -
475 -function moveup_delivery_method() {
476 - $options = get_option('usces');
477 - $selected_id = (int)$_POST['id'];
478 - $ct = count($options['delivery_method']);
479 - for($i=0; $i<$ct; $i++){
480 - if($options['delivery_method'][$i]['id'] === $selected_id){
481 - $index = $i;
482 - }
483 - }
484 - if($index !== 0) {
485 - $from_index = $index;
486 - $to_index = $index - 1;
487 - $from_dm = $options['delivery_method'][$from_index];
488 - $to_dm = $options['delivery_method'][$to_index];
489 - for($i=0; $i<$ct; $i++){
490 - if($i === $to_index){
491 - $options['delivery_method'][$i] = $from_dm;
492 - }else if($i === $from_index){
493 - $options['delivery_method'][$i] = $to_dm;
494 - }
495 - }
496 - update_option('usces', $options);
497 - }
498 -
499 - $id = '';
500 - $name = '';
501 - $charge = '';
502 - $time = '';
503 -//20101208ysk start
504 - $days = '';
505 -//20101208ysk end
506 -//20101119ysk start
507 - $nocod = '';
508 -//20101119ysk end
509 -//20110317ysk start
510 - $intl = '';
511 -//20110317ysk end
512 - for($i=0; $i<$ct; $i++){
513 - $id .= $options['delivery_method'][$i]['id'] . ',';
514 - $name .= $options['delivery_method'][$i]['name'] . ',';
515 - $charge .= $options['delivery_method'][$i]['charge'] . ',';
516 - $time .= $options['delivery_method'][$i]['time'] . ',';
517 -//20101208ysk start
518 - $days .= $options['delivery_method'][$i]['days'] . ',';
519 -//20101208ysk end
520 -//20101119ysk start
521 - $nocod .= $options['delivery_method'][$i]['nocod'] . ',';
522 -//20101119ysk end
523 -//20110317ysk start
524 - $intl .= $options['delivery_method'][$i]['intl'] . ',';
525 -//20110317ysk end
526 - }
527 - $id = rtrim($id,',');
528 - $name = rtrim($name,',');
529 - $charge = rtrim($charge,',');
530 - $time = rtrim($time,',');
531 -//20101208ysk start
532 - $days = rtrim($days,',');
533 -//20101208ysk end
534 -//20101119ysk start
535 - $nocod = rtrim($nocod,',');
536 -//20101119ysk end
537 -//20110317ysk start
538 - $intl = rtrim($intl,',');
539 -//20110317ysk end
540 -
541 -//20101208ysk start
542 -//20101119ysk start
543 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $selected_id;
544 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $nocod . '#usces#' . $selected_id;
545 -//20101119ysk end
546 -//20110317ysk start
547 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $selected_id;
548 - $res = $id . '#usces#' . stripslashes($name) . '#usces#' . stripslashes($time) . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $intl . '#usces#' . $selected_id;
549 -//20110317ysk end
550 -//20101208ysk end
551 - return $res;
552 -}
553 -
554 -function movedown_delivery_method() {
555 - $options = get_option('usces');
556 - $selected_id = (int)$_POST['id'];
557 - $ct = count($options['delivery_method']);
558 - for($i=0; $i<$ct; $i++){
559 - if($options['delivery_method'][$i]['id'] === $selected_id){
560 - $index = $i;
561 - }
562 - }
563 - if($index < $ct-1) {
564 - $from_index = $index;
565 - $to_index = $index + 1;
566 - $from_dm = $options['delivery_method'][$from_index];
567 - $to_dm = $options['delivery_method'][$to_index];
568 - for($i=0; $i<$ct; $i++){
569 - if($i === $to_index){
570 - $options['delivery_method'][$i] = $from_dm;
571 - }else if($i === $from_index){
572 - $options['delivery_method'][$i] = $to_dm;
573 - }
574 - }
575 - update_option('usces', $options);
576 - }
577 -
578 - $id = '';
579 - $name = '';
580 - $charge = '';
581 - $time = '';
582 -//20101208ysk start
583 - $days = '';
584 -//20101208ysk end
585 -//20101119ysk start
586 - $nocod = '';
587 -//20101119ysk end
588 -//20110317ysk start
589 - $intl = '';
590 -//20110317ysk end
591 - for($i=0; $i<$ct; $i++){
592 - $id .= $options['delivery_method'][$i]['id'] . ',';
593 - $name .= $options['delivery_method'][$i]['name'] . ',';
594 - $charge .= $options['delivery_method'][$i]['charge'] . ',';
595 - $time .= $options['delivery_method'][$i]['time'] . ',';
596 -//20101208ysk start
597 - $days .= $options['delivery_method'][$i]['days'] . ',';
598 -//20101208ysk end
599 -//20101119ysk start
600 - $nocod .= $options['delivery_method'][$i]['nocod'] . ',';
601 -//20101119ysk end
602 -//20110317ysk start
603 - $intl .= $options['delivery_method'][$i]['intl'] . ',';
604 -//20110317ysk end
605 - }
606 - $id = rtrim($id,',');
607 - $name = rtrim($name,',');
608 - $charge = rtrim($charge,',');
609 - $time = rtrim($time,',');
610 -//20101208ysk start
611 - $days = rtrim($days,',');
612 -//20101208ysk end
613 -//20101119ysk start
614 - $nocod = rtrim($nocod,',');
615 -//20101119ysk end
616 -//20110317ysk start
617 - $intl = rtrim($intl,',');
618 -//20110317ysk end
619 -
620 -//20101208ysk start
621 -//20101119ysk start
622 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $selected_id;
623 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $nocod . '#usces#' . $selected_id;
624 -//20101119ysk end
625 -//20110317ysk start
626 - //$res = $id . '#usces#' . $name . '#usces#' . $time . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $selected_id;
627 - $res = $id . '#usces#' . stripslashes($name) . '#usces#' . stripslashes($time) . '#usces#' . $charge . '#usces#' . $days . '#usces#' . $nocod . '#usces#' . $intl . '#usces#' . $selected_id;
628 -//20110317ysk end
629 -//20101208ysk end
630 - return $res;
631 -}
632 -
633 -function add_shipping_charge() {
634 - global $usces;
635 -
636 - $options = get_option('usces');
637 - $name = trim($_POST['name']);
638 -//20110317ysk start
639 -//20120710ysk start 0000472
640 - //$country = trim($_POST['country']);
641 -//20110317ysk end
642 - //$value = $_POST['value'];
643 -//20120710ysk end
644 - foreach((array)$options['shipping_charge'] as $charge){
645 - $ids[] = (int)$charge['id'];
646 - }
647 - if(isset($ids)){
648 - rsort($ids);
649 - $newid = $ids[0]+1;
650 - }else{
651 - $newid = 0;
652 - }
653 - $index = isset($options['shipping_charge']) ? count($options['shipping_charge']) : 0;
654 -// $prefs = get_option('usces_pref');
655 -//20110317ysk start
656 - //$prefs = $usces->options['province'];
657 -//20110331ysk start
658 - //$prefs = $usces_states[$country];
659 -//20120710ysk start 0000472
660 - //$prefs = get_usces_states($country);
661 -//20110331ysk end
662 -//20110317ysk end
663 - //array_shift($prefs);
664 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
665 - foreach( (array)$target_market as $tm ) {
666 - $prefs = get_usces_states($tm);
667 - array_shift($prefs);
668 - $value = $_POST['value_'.$tm];
669 -//20120710ysk end
670 -
671 - $options['shipping_charge'][$index]['id'] = $newid;
672 - $options['shipping_charge'][$index]['name'] = $name;
673 -//20110317ysk start
674 -//20120710ysk start 0000472
675 - //$options['shipping_charge'][$index]['country'] = $country;
676 -//20110317ysk end
677 - //$options['shipping_charge'][$index]["value"] = array();
678 - //for($i=0; $i<count($prefs); $i++){
679 - // $pref = $prefs[$i];
680 - // $options['shipping_charge'][$index]['value'][$pref] = (int)$value[$i];
681 - //}
682 - for( $i = 0; $i < count($prefs); $i++ ) {
683 - $options['shipping_charge'][$index][$tm][$prefs[$i]] = (float)$value[$i];
684 - }
685 - }
686 -//20120710ysk end
687 - update_option('usces', $options);
688 -
689 -//20120710ysk start 0000472
690 - //$valuestr = implode(',', $options['shipping_charge'][$index]['value']);
691 -//20110317ysk start
692 - //$res = $newid . '#usces#' . $name . '#usces#' . $valuestr;
693 - //$res = $newid . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
694 - $res = (string)$newid;
695 -//20120710ysk end
696 -//20110317ysk end
697 - return $res;
698 -}
699 -
700 -function update_shipping_charge() {
701 - global $usces;
702 -
703 - $options = get_option('usces');
704 - $name = trim($_POST['name']);
705 -//20110317ysk start
706 -//20120710ysk start 0000472
707 - //$country = trim($_POST['country']);
708 -//20110317ysk end
709 - //$value = $_POST['value'];
710 -//20120710ysk end
711 - $id = (int)$_POST['id'];
712 -// $prefs = get_option('usces_pref');
713 -//20110317ysk start
714 - //$prefs = $usces->options['province'];
715 -//20110331ysk start
716 - //$prefs = $usces_states[$country];
717 -//20120710ysk start 0000472
718 - //$prefs = get_usces_states($country);
719 -//20110331ysk end
720 -//20110317ysk end
721 - //array_shift($prefs);
722 -//20120710ysk end
723 -
724 - for($i=0; $i<count($options['shipping_charge']); $i++){
725 - if($options['shipping_charge'][$i]['id'] === $id){
726 - $index = $i;
727 - }
728 - }
729 - $options['shipping_charge'][$index]["name"] = $name;
730 -//20110317ysk start
731 -//20120710ysk start 0000472
732 - //$options['shipping_charge'][$index]['country'] = $country;
733 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
734 - foreach( (array)$target_market as $tm ) {
735 - $prefs = get_usces_states($tm);
736 - array_shift($prefs);
737 - $value = $_POST['value_'.$tm];
738 -//20110317ysk end
739 - //$options['shipping_charge'][$index]["value"] = array();
740 - //for($i=0; $i<count($prefs); $i++){
741 - // $pref = $prefs[$i];
742 - // $options['shipping_charge'][$index]["value"][$pref] = (int)$value[$i];
743 - //}
744 - for( $i = 0; $i < count($prefs); $i++ ) {
745 - $options['shipping_charge'][$index][$tm][$prefs[$i]] = (float)$value[$i];
746 - }
747 -//20120710ysk end
748 - }
749 - update_option('usces', $options);
750 -
751 -//20120710ysk start 0000472
752 - //$valuestr = implode(',', $options['shipping_charge'][$index]["value"]);
753 -//20110317ysk start
754 - //$res = $id . '#usces#' . $name . '#usces#' . $valuestr;
755 - //$res = $id . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
756 - $res = (string)$id;
757 -//20120710ysk end
758 -//20110317ysk end
759 - return $res;
760 -}
761 -
762 -function delete_shipping_charge() {
763 - $options = get_option('usces');
764 - $id = (int)$_POST['id'];
765 - for($i=0; $i<count($options['shipping_charge']); $i++){
766 - if($options['shipping_charge'][$i]['id'] === $id){
767 - $index = $i;
768 - }
769 - }
770 - array_splice($options['shipping_charge'], $index, 1);
771 - update_option('usces', $options);
772 -
773 - $res = $id . '#usces#0';
774 - return $res;
775 -}
776 -//20101208ysk start
777 -function add_delivery_days() {
778 - global $usces;
779 -
780 - $options = get_option('usces');
781 - $name = trim($_POST['name']);
782 -//20110317ysk start
783 -//20120710ysk start 0000472
784 - //$country = trim($_POST['country']);
785 -//20110317ysk end
786 - //$value = $_POST['value'];
787 -//20120710ysk end
788 - foreach((array)$options['delivery_days'] as $charge){
789 - $ids[] = (int)$charge['id'];
790 - }
791 - if(isset($ids)){
792 - rsort($ids);
793 - $newid = $ids[0]+1;
794 - }else{
795 - $newid = 0;
796 - }
797 - $index = isset($options['delivery_days']) ? count($options['delivery_days']) : 0;
798 -//20110317ysk start
799 - //$prefs = $usces->options['province'];
800 -//20110331ysk start
801 - //$prefs = $usces_states[$country];
802 -//20120710ysk start 0000472
803 - //$prefs = get_usces_states($country);
804 -//20110331ysk end
805 -//20110317ysk end
806 - //array_shift($prefs);
807 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
808 - foreach( (array)$target_market as $tm ) {
809 - $prefs = get_usces_states($tm);
810 - array_shift($prefs);
811 - $value = $_POST['value_'.$tm];
812 -//20120710ysk end
813 -
814 - $options['delivery_days'][$index]['id'] = $newid;
815 - $options['delivery_days'][$index]['name'] = $name;
816 -//20110317ysk start
817 -//20120710ysk start 0000472
818 - //$options['delivery_days'][$index]['country'] = $country;
819 -//20110317ysk end
820 - //for($i=0; $i<count($prefs); $i++){
821 - // $pref = $prefs[$i];
822 - // $options['delivery_days'][$index]['value'][$pref] = (int)$value[$i];
823 - //}
824 - for( $i = 0; $i < count($prefs); $i++ ) {
825 - $options['delivery_days'][$index][$tm][$prefs[$i]] = (int)$value[$i];
826 - }
827 - }
828 -//20120710ysk end
829 - update_option('usces', $options);
830 -
831 -//20120710ysk start 0000472
832 - //$valuestr = implode(',', $options['delivery_days'][$index]['value']);
833 -//20110317ysk start
834 - //$res = $newid . '#usces#' . $name . '#usces#' . $valuestr;
835 - //$res = $newid . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
836 - $res = (string)$newid;
837 -//20120710ysk end
838 -//20110317ysk end
839 - return $res;
840 -}
841 -
842 -function update_delivery_days() {
843 - global $usces;
844 -
845 - $options = get_option('usces');
846 - $name = trim($_POST['name']);
847 -//20110317ysk start
848 -//20120710ysk start 0000472
849 - //$country = trim($_POST['country']);
850 -//20110317ysk end
851 - //$value = $_POST['value'];
852 -//20120710ysk end
853 - $id = (int)$_POST['id'];
854 -//20110317ysk start
855 - //$prefs = $usces->options['province'];
856 -//20110331ysk start
857 - //$prefs = $usces_states[$country];
858 -//20120710ysk start 0000472
859 - //$prefs = get_usces_states($country);
860 -//20110331ysk end
861 -//20110317ysk end
862 - //array_shift($prefs);
863 -//20120710ysk end
864 -
865 - for($i=0; $i<count($options['delivery_days']); $i++){
866 - if($options['delivery_days'][$i]['id'] === $id){
867 - $index = $i;
868 - }
869 - }
870 - $options['delivery_days'][$index]['name'] = $name;
871 -//20110317ysk start
872 -//20120710ysk start 0000472
873 - //$options['delivery_days'][$index]['country'] = $country;
874 - $target_market = ( isset($options['system']['target_market']) && !empty($options['system']['target_market']) ) ? $options['system']['target_market'] : usces_get_local_target_market();
875 - foreach( (array)$target_market as $tm ) {
876 - $prefs = get_usces_states($tm);
877 - array_shift($prefs);
878 - $value = $_POST['value_'.$tm];
879 -//20110317ysk end
880 - //for($i=0; $i<count($prefs); $i++){
881 - // $pref = $prefs[$i];
882 - // $options['delivery_days'][$index]['value'][$pref] = (int)$value[$i];
883 - //}
884 - for( $i = 0; $i < count($prefs); $i++ ) {
885 - $options['delivery_days'][$index][$tm][$prefs[$i]] = (int)$value[$i];
886 - }
887 - }
888 -//20120710ysk end
889 - update_option('usces', $options);
890 -
891 -//20120710ysk start 0000472
892 - //$valuestr = implode(',', $options['delivery_days'][$index]['value']);
893 -//20110317ysk start
894 - //$res = $id . '#usces#' . $name . '#usces#' . $valuestr;
895 - //$res = $id . '#usces#' . $name . '#usces#' . $country . '#usces#' . $valuestr;
896 - $res = (string)$id;
897 -//20120710ysk end
898 -//20110317ysk end
899 - return $res;
900 -}
901 -
902 -function delete_delivery_days() {
903 - $options = get_option('usces');
904 - $id = (int)$_POST['id'];
905 - for($i=0; $i<count($options['delivery_days']); $i++){
906 - if($options['delivery_days'][$i]['id'] === $id){
907 - $index = $i;
908 - }
909 - }
910 - array_splice($options['delivery_days'], $index, 1);
911 - update_option('usces', $options);
912 -
913 - $res = $id . '#usces#0';
914 - return $res;
915 -}
916 -
917 -/************************************************************************************************/
918 -function shop_options_ajax()
919 -{
920 - global $usces;
921 -
922 - if( $_POST['action'] != 'shop_options_ajax' ) die(0);
923 -
924 - switch ($_POST['mode']) {
925 - case 'add_delivery_method':
926 - $res = add_delivery_method();
927 - break;
928 - case 'update_delivery_method':
929 - $res = update_delivery_method();
930 - break;
931 - case 'delete_delivery_method':
932 - $res = delete_delivery_method();
933 - break;
934 - case 'moveup_delivery_method':
935 - $res = moveup_delivery_method();
936 - break;
937 - case 'movedown_delivery_method':
938 - $res = movedown_delivery_method();
939 - break;
940 - case 'add_shipping_charge':
941 - $res = add_shipping_charge();
942 - break;
943 - case 'update_shipping_charge':
944 - $res = update_shipping_charge();
945 - break;
946 - case 'delete_shipping_charge':
947 - $res = delete_shipping_charge();
948 - break;
949 -//20101208ysk start
950 - case 'add_delivery_days':
951 - $res = add_delivery_days();
952 - break;
953 - case 'update_delivery_days':
954 - $res = update_delivery_days();
955 - break;
956 - case 'delete_delivery_days':
957 - $res = delete_delivery_days();
958 - break;
959 -//20101208ysk end
960 - }
961 -
962 - die( $res );
963 -}
964 -
965 -?>
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 +}