PluginProbe
Welcart e-Commerce / 1.3.2
Welcart e-Commerce v1.3.2
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
usc-e-shop / functions / item_post.php

item_post.php in Welcart e-Commerce 1.3.2, at functions/item_post.php

2,059 lines 72.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 function usces_get_post_meta_by_metaid( $meta_id ) {
3 global $wpdb;
4 $res = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE meta_id = %d", $meta_id), ARRAY_A);
5 return $res;
6 }
7 function usces_get_post_meta( $post_id, $key ) {
8 global $wpdb;
9 $res = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", $post_id, $key), ARRAY_A);
10 return $res;
11 }
12 function usces_sort_post_meta( $post_id, $metastr ) {
13 global $wpdb;
14 $meta_ids = explode(',', $metastr);
15 if( !empty($meta_ids) ){
16 $i = 0;
17 foreach( $meta_ids as $meta_id ){
18
19 $rows = usces_get_post_meta_by_metaid( $meta_id );
20 $values = unserialize($rows['meta_value']);
21 $values['sort'] = $i;
22 $serialized_values = serialize($values);
23 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $rows['meta_id']) );
24 $i++;
25 }
26 }
27 return;
28 }
29
30 /**
31 * item option
32 */
33 //function has_item_option_meta( $postid ) {
34 function usces_get_opts( $post_id, $keyflag = 'sort' ) {
35 $opts = array();
36 $metas = usces_get_post_meta($post_id, '_iopt_');
37
38 if( empty($metas) ) return $opts;
39
40 foreach( $metas as $rows ){
41 $values = unserialize($rows['meta_value']);
42 $key = isset($values[$keyflag]) ? $values[$keyflag] : $values['sort'];
43 $opts[$key] = array(
44 'meta_id' => $rows['meta_id'],
45 'name' => $values['name'],
46 'means' => $values['means'],
47 'essential' => $values['essential'],
48 'value' => $values['value'],
49 'sort' => $values['sort']
50 );
51 }
52 ksort($opts);
53
54 return $opts;
55 }
56 function usces_add_opt( $post_id, $newvalue, $check = true ) {
57 global $wpdb, $usces;
58 if( $check ){
59 $metas = usces_get_post_meta($post_id, '_iopt_');
60 if( !empty($metas) ){
61 $meta_num = count($metas);
62 $unique = true;
63 $sortnull = true;
64 foreach( $metas as $meta ){
65 $values = unserialize($meta['meta_value']);
66 if( $values['name'] == $newvalue['name'] )
67 $unique = false;
68 if( !isset($values['sort']) )
69 $sortnull = false;
70 $sort[] = $values['sort'];
71 }
72 if( !$unique )
73 return -1;
74
75 rsort($sort);
76 $next_number = reset($sort) + 1;
77 $unique_sort = array_unique($sort);
78 if( $meta_num !== count($unique_sort) || $meta_num !== $next_number || !$sortnull){
79 //To repair the sort data
80 $i = 0;
81 foreach( $metas as $rows ){
82 $values = unserialize($rows['meta_value']);
83 $values['sort'] = $i;
84 $serialized_values = serialize($values);
85 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $rows['meta_id']) );
86 $i++;
87 }
88 }
89 }
90 $newvalue['sort'] = !empty($meta_num) ? $meta_num : 0;
91 }
92 $serialized_newvalue = serialize($newvalue);
93 $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value ) VALUES (%d, '_iopt_', %s)", $post_id, $serialized_newvalue) );
94 $id = $wpdb->insert_id;
95 return $id;
96 }
97
98 /**
99 * item sku
100 */
101 function usces_add_sku( $post_id, $newvalue, $check = true ) {
102 global $wpdb, $usces;
103 if( $check ){
104 $metas = usces_get_post_meta($post_id, '_isku_');
105 if( !empty($metas) ){
106 $meta_num = count($metas);
107 $unique = true;
108 $sortnull = true;
109 foreach( $metas as $rows ){
110 $values = unserialize($rows['meta_value']);
111 if( $values['code'] == $newvalue['code'] )
112 $unique = false;
113 if( !isset($values['sort']) )
114 $sortnull = false;
115 $sort[] = $values['sort'];
116 }
117 if( !$unique )
118 return -1;
119
120 rsort($sort);
121 $next_number = $sort[0] + 1;
122 $unique_sort = array_unique($sort);
123 if( $meta_num != count($unique_sort) || $meta_num != $next_number || !$sortnull){
124 //To repair the sort data
125 $i = 0;
126 foreach( $metas as $rows ){
127 $values = unserialize($rows['meta_value']);
128 $values['sort'] = $i;
129 $serialized_values = serialize($values);
130 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $rows['meta_id']) );
131 $i++;
132 }
133 }
134 }
135 $newvalue['sort'] = !empty($meta_num) ? $meta_num : 0;
136 }
137 $newvalue = $usces->stripslashes_deep_post($newvalue);
138 $serialized_newvalue = serialize($newvalue);
139 $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value ) VALUES (%d, '_isku_', %s)", $post_id, $serialized_newvalue) );
140 $id = $wpdb->insert_id;
141 return $id;
142 }
143
144
145 /**
146 * list_item_option
147 */
148 function list_item_option_meta( $opts ) {
149 // Exit if no meta
150 if ( ! $opts ) {
151 ?>
152 <table id="optlist-table" class="list" style="display: none;">
153 <thead>
154 <tr>
155 <th class="hanldh"> </th>
156 <th class="item-opt-key"><?php _e('option name','usces') ?></th>
157 <th class="item-opt-value"><?php _e('selected amount','usces') ?></th>
158 </tr>
159 </thead>
160 <tbody id="item-opt-list">
161 <tr><td></td></tr>
162 </tbody>
163 </table>
164 <?php
165 }else{
166 ?>
167 <table id="optlist-table" class="list">
168 <thead>
169 <tr>
170 <th class="hanldh"> </th>
171 <th class="item-opt-key"><?php _e('option name','usces') ?></th>
172 <th class="item-opt-value"><?php _e('selected amount','usces') ?></th>
173 </tr>
174 </thead>
175 <tbody id="item-opt-list">
176 <?php
177 foreach ( $opts as $opt )
178 echo _list_item_option_meta_row( $opt );
179 ?>
180 </tbody>
181 </table>
182 <?php
183 }
184 }
185
186 /**
187 * list_item_sku
188 */
189 function list_item_sku_meta( $skus ) {
190 // Exit if no meta
191 if ( empty( $skus ) ) {
192 ?>
193 <table id="skulist-table" class="list" style="display: none;">
194 <thead>
195 <tr>
196 <th class="hanldh" rowspan="2"> </th>
197 <th><?php _e('SKU code','usces'); ?></th>
198 <th><?php echo apply_filters('usces_filter_listprice_label', __('normal price','usces'), NULL, NULL); ?>(<?php usces_crcode(); ?>)</th>
199 <th><?php echo apply_filters('usces_filter_sellingprice_label', __('Sale price','usces'), NULL, NULL); ?>(<?php usces_crcode(); ?>)</th>
200 <th><?php _e('stock','usces'); ?></th>
201 <th><?php _e('stock status', 'usces'); ?></th>
202 </tr>
203 </thead>
204 <tbody id="item-sku-list">
205 <tr><td></td><td></td><td></td><td></td><td></td></tr>
206 </tbody>
207 </table>
208 <?php
209 }else{
210 ?>
211 <table id="skulist-table" class="list">
212 <thead>
213 <tr>
214 <th class="hanldh" rowspan="2"> </th>
215 <th class="item-sku-key"><?php _e('SKU code','usces'); ?></th>
216 <th class="item-sku-cprice"><?php echo apply_filters('usces_filter_listprice_label', __('normal price','usces'), NULL, NULL); ?>(<?php usces_crcode(); ?>)</th>
217 <th class="item-sku-price"><?php echo apply_filters('usces_filter_sellingprice_label', __('Sale price','usces'), NULL, NULL); ?>(<?php usces_crcode(); ?>)</th>
218 <th class="item-sku-zaikonum"><?php _e('stock','usces'); ?></th>
219 <th class="item-sku-zaiko"><?php _e('stock status','usces'); ?></th>
220 </tr>
221 <tr>
222 <th><?php _e('SKU display name ','usces'); ?></th>
223 <th><?php _e('unit','usces'); ?></th>
224 <?php
225 $advance_title = '<th colspan="2">&nbsp;</th>';
226 echo apply_filters('usces_filter_sku_meta_form_advance_title', $advance_title);
227 ?>
228 <th><?php _e('Apply business package','usces'); ?></th>
229 </tr>
230 </thead>
231 <tbody id="item-sku-list">
232 <?php
233 foreach ( $skus as $sku )
234 echo _list_item_sku_meta_row( $sku );
235 ?>
236 </tbody>
237 </table>
238 <?php
239 }
240 }
241
242
243
244 /**
245 * option meta row
246 */
247 function _list_item_option_meta_row( $opt ) {
248 $r = '';
249 $style = '';
250 $means = get_option('usces_item_option_select');
251
252 // $opt['meta_value'] = unserialize( $opt['meta_value'] );
253
254 $readonly = " readonly='true'";
255 $name = esc_attr($opt['name']);
256 $meansoption = '';
257 foreach($means as $meankey => $meanvalue){
258 if($meankey == $opt['means']) {
259 $selected = ' selected="selected"';
260 }else{
261 $selected = '';
262 }
263 $meansoption .= '<option value="' . esc_attr($meankey) . '"' . $selected . '>' . esc_html($meanvalue) . "</option>\n";
264 }
265 $essential = $opt['essential'] == 1 ? " checked='checked'" : "";
266 $value = '';
267 if(is_array($opt['value'])){
268 foreach($opt['value'] as $k => $v){
269 $value .= $v . "\n";
270 }
271 }else{
272 //$value = esc_attr(trim($opt['value']));
273 $value = $opt['value'];
274 }
275 $value = trim($value);
276 $id = (int) $opt['meta_id'];
277 $sort = (int) $opt['sort'];
278
279 ob_start();
280 ?>
281 <tr class="metastuffrow"><td colspan="3">
282 <table id="itemopt-<?php echo $id; ?>" class="metastufftable">
283 <tr>
284 <th class='handlb' rowspan='2'> </th>
285 <td class='item-opt-key'>
286 <div><input name='itemopt[<?php echo $id; ?>][name]' id='itemopt[<?php echo $id; ?>][name]' class='metaboxfield' type='text' size='20' value='<?php echo $name; ?>'{$readonly} /></div>
287 <div class='optcheck'>
288 <select name='itemopt[<?php echo $id; ?>][means]' id='itemopt[<?php echo $id; ?>][means]'><?php echo $meansoption; ?></select>
289 <label for='itemopt[<?php echo $id; ?>][essential]'><input name='itemopt[<?php echo $id; ?>][essential]' id='itemopt[<?php echo $id; ?>][essential]' type='checkbox' value='1'<?php echo $essential; ?> class='metaboxcheckfield' /><?php _e('Required','usces'); ?></label>
290 </div>
291 </td>
292 <td class='item-opt-value'>
293 <textarea name='itemopt[<?php echo $id; ?>][value]' id='itemopt[<?php echo $id; ?>][value]' class='metaboxfield'><?php echo esc_html($value); ?></textarea>
294 </td>
295 </tr>
296 <tr>
297 <td colspan='2' class='submittd'>
298 <div id='itemoptsubmit-<?php echo $id; ?>' class='submit'>
299 <input name='deleteitemopt[<?php echo $id; ?>]' id='deleteitemopt[<?php echo $id; ?>]' type='button' value='<?php esc_attr_e(__( 'Delete' )); ?>' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemOpt.post('deleteitemopt', <?php echo $id; ?>);" />
300 <input name='updateitemopt[<?php echo $id; ?>]' id='updateitemopt[<?php echo $id; ?>]' type='button' value='<?php esc_attr_e(__( 'Update' )); ?>' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemOpt.post('updateitemopt', <?php echo $id; ?>);" />
301 <input name='itemopt[<?php echo $id; ?>][sort]' id='itemopt[<?php echo $id; ?>][sort]' type='hidden' value='<?php echo $sort; ?>' />
302 </div>
303 <div id='itemopt_loading-<?php echo $id; ?>' class='meta_submit_loading'></div>
304 </td>
305 </tr>
306 </table>
307 </td></tr>
308 <?php
309 $r = ob_get_contents();
310 ob_end_clean();
311 return $r;
312 }
313
314 /**
315 * sku meta row
316 */
317 function _list_item_sku_meta_row( $sku ) {
318 $r = '';
319 $style = '';
320
321 $readonly = "";
322 $key = esc_attr($sku['code']);
323 $cprice = $sku['cprice'];
324 $price = $sku['price'];
325 $zaikonum = $sku['stocknum'];
326 $zaiko = $sku['stock'];
327 $skudisp = esc_attr($sku['name']);
328 $skuunit = esc_attr($sku['unit']);
329 $skugptekiyo = $sku['gp'];
330 //$charging_type = $sku['meta_value']['charging_type'];
331 $id = (int)$sku['meta_id'];
332 $zaikoselectarray = get_option('usces_zaiko_status');
333 $sort = (int) $sku['sort'];
334
335 ob_start();
336 ?>
337 <tr class='metastuffrow'><td colspan='6'>
338 <table id='itemsku-<?php echo $id; ?>' class='metastufftable'>
339 <tr>
340 <th class='handlb' rowspan='<?php echo apply_filters( 'usces_filter_sku_meta_rowspan', '3' ); ?>'> </th>
341 <td class='item-sku-key'><input name='itemsku[<?php echo $id; ?>][key]' id='itemsku[<?php echo $id; ?>][key]' class='skuname metaboxfield' type='text' value='<?php echo $key; ?>'{$readonly} /></td>
342 <td class='item-sku-cprice'><input name='itemsku[<?php echo $id; ?>][cprice]' id='itemsku[<?php echo $id; ?>][cprice]' class='skuprice metaboxfield' type='text' value='<?php echo $cprice; ?>' /></td>
343 <td class='item-sku-price'><input name='itemsku[<?php echo $id; ?>][price]' id='itemsku[<?php echo $id; ?>][price]' class='skuprice metaboxfield' type='text' value='<?php echo $price; ?>' /></td>
344 <td class='item-sku-zaikonum'><input name='itemsku[<?php echo $id; ?>][zaikonum]' id='itemsku[<?php echo $id; ?>][zaikonum]' class='skuzaikonum metaboxfield' type='text' value='<?php echo $zaikonum; ?>' /></td>
345 <td class='item-sku-zaiko'>
346 <select id='itemsku[<?php echo $id; ?>][zaiko]' name='itemsku[<?php echo $id; ?>][zaiko]' class='skuzaiko metaboxfield'>
347 <?php
348 for ( $i=0; $i<count($zaikoselectarray); $i++ ) {
349 $selected = ( $i == $zaiko ) ? " selected='selected'" : '';
350 ?>
351 <option value='<?php echo $i; ?>'<?php echo $selected; ?>><?php echo $zaikoselectarray[$i]; ?></option>
352 <?php
353 }
354 ?>
355 </select>
356 </td>
357 </tr>
358 <tr>
359 <td class='item-sku-key'><input name='itemsku[<?php echo $id; ?>][skudisp]' id='itemsku[<?php echo $id; ?>][skudisp]' class='skudisp metaboxfield' type='text' value='<?php echo $skudisp; ?>' />
360 </td>
361 <td class='item-sku-cprice'><input name='itemsku[<?php echo $id; ?>][skuunit]' id='itemsku[<?php echo $id; ?>][skuunit]' class='skuunit metaboxfield' type='text' value='<?php echo $skuunit; ?>' /></td>
362 <?php
363 $default_field = "\n\t\t<td colspan='2'>&nbsp;</td>";
364 echo apply_filters('usces_filter_sku_meta_row_advance', $default_field, $sku);
365 ?>
366 <td class='item-sku-zaiko'>
367 <select id='itemsku[<?php echo $id; ?>][skugptekiyo]' name='itemsku[<?php echo $id; ?>][skugptekiyo]' class='skugptekiyo metaboxfield'>
368 <option value='0' <?php echo ($skugptekiyo == 0 ? " selected='selected'" : ""); ?>><?php _e('Not apply','usces'); ?></option>
369 <option value='1' <?php echo ($skugptekiyo == 1 ? " selected='selected'" : ""); ?>><?php _e('Apply','usces'); ?></option>
370 </select>
371 </td>
372 </tr>
373 <?php echo apply_filters( 'usces_filter_sku_meta_row', '', $sku ); ?>
374 <tr>
375 <td colspan='5' class='submittd'>
376 <div id='skusubmit-<?php echo $id; ?>' class='submit'>
377 <input name='deleteitemsku[<?php echo $id; ?>]' id='deleteitemsku[<?php echo $id; ?>]' type='button' value='<?php esc_attr_e(__( 'Delete' )) ?>' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemSku.post('deleteitemsku', <?php echo $id; ?>);" />
378 <input name='updateitemsku[<?php echo $id; ?>]' id='updateitemsku[<?php echo $style; ?>]' type='button' value='<?php esc_attr_e(__( 'Update' )); ?>' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemSku.post('updateitemsku', <?php echo $id; ?>);" />
379 <input name='itemsku[<?php echo $id; ?>][sort]' id='itemsku[<?php echo $id; ?>][sort]' type='hidden' value='<?php echo $sort; ?>' />
380 </div>
381 <div id='itemsku_loading-<?php echo $id; ?>' class='meta_submit_loading'></div>
382 </td>
383 </tr>
384 </table>
385 </td></tr>
386 <?php
387 $r = ob_get_contents();
388 ob_end_clean();
389 return $r;
390 }
391
392
393 /**
394 * common_option_meta_form
395 */
396 function common_option_meta_form() {
397 $means = get_option('usces_item_option_select');
398 $meansoption = '';
399 foreach($means as $meankey => $meanvalue){
400 $meansoption .= '<option value="' . esc_attr($meankey) . '">' . esc_html($meanvalue) . "</option>\n";
401 }
402 ?>
403 <div id="itemopt_ajax-response"></div>
404 <p><strong><?php _e('Add a new option','usces') ?> : </strong></p>
405 <table id="newmeta2">
406 <thead>
407 <tr>
408 <th class="left"><label for="metakeyselect"><?php _e('option name','usces') ?></label></th>
409 <th><label for="metavalue"><?php _e('selected amount','usces') ?></label></th>
410 </tr>
411 </thead>
412
413 <tbody>
414 <tr>
415 <td class='item-opt-key'>
416 <input type="text" id="newoptname" name="newoptname" class="metaboxfield" tabindex="7" value="" />
417 <div class="optcheck">
418 <select name='newoptmeans' id='newoptmeans' class="metaboxfield long"><?php echo $meansoption; ?></select>
419 <label for='newoptessential'><input name="newoptessential" type="checkbox" id="newoptessential" class="metaboxcheckfield" /><?php _e('Required','usces') ?></label>
420 </div>
421 </td>
422 <td class='item-opt-value'><textarea id="newoptvalue" name="newoptvalue" class='metaboxfield'></textarea></td>
423 </tr>
424
425 <tr>
426 <td colspan="2" class="submittd">
427 <div id='newcomoptsubmit' class='submit'>
428 <input name="add_comopt" type="button" id="add_comopt" tabindex="9" value="<?php _e('Add common options','usces') ?>" onclick="itemOpt.post('addcommonopt', 0);" />
429 </div>
430 <div id="newcomopt_loading" class="meta_submit_loading"></div>
431 </td>
432 </tr>
433 </tbody>
434 </table>
435 <?php
436 }
437
438 /**
439 * item_option_meta_form
440 */
441 function item_option_meta_form() {
442 global $wpdb;
443 $usces_options = get_option('usces');
444 $limit = (int) apply_filters( 'postmeta_form_limit', 30 );
445 $cart_number = (int)get_option('usces_cart_number');
446 $opts = usces_get_opts($cart_number);
447 $means = get_option('usces_item_option_select');
448 $meansoption = '';
449 foreach($means as $meankey => $meanvalue){
450 $meansoption .= '<option value="' . esc_attr($meankey) . '">' . esc_html($meanvalue) . "</option>\n";
451 }
452 ?>
453 <div id="itemopt_ajax-response"></div>
454 <p><strong><?php _e('Applicable product options','usces') ?> : </strong></p>
455 <table id="newmeta2">
456 <thead>
457 <tr>
458 <th class="item-opt-key"><label for="metakeyselect"><?php _e('option name','usces') ?></label></th>
459 <th class="item-opt-value"><label for="metavalue"><?php _e('selected amount','usces') ?></label></th>
460 </tr>
461 </thead>
462
463 <tbody>
464 <tr>
465 <td class='item-opt-key'>
466 <?php if ( !empty($opts) ) { ?>
467 <select id="optkeyselect" name="optkeyselect" class="optkeyselect metaboxfield" tabindex="7" onchange="if( jQuery('#post_ID').val() < 0 ) return; itemOpt.post('keyselect', this.value);">
468 <option value="#NONE#"><?php _e( '-- Select --','usces' ); ?></option>
469 <?php foreach ( $opts as $opt ){ ?>
470 <option value='<?php echo $opt['meta_id']; ?>'><?php esc_attr_e($opt['name']); ?></option>
471 <?php } ?>
472 </select>
473 <input type="hidden" id="newoptname" name="newoptname" class="metaboxfield" />
474 <div class="optcheck">
475 <select name='newoptmeans' id='newoptmeans'><?php echo $meansoption; ?></select>
476 <label for='newoptessential'><input name="newoptessential" type="checkbox" id="newoptessential" class="metaboxcheckfield" /><?php _e('Required','usces') ?></label>
477 </div>
478 <?php } else { ?>
479 <p><?php _e('Please create a common option.','usces') ?></p>
480 <?php } ?>
481 </td>
482 <td class='item-opt-value'><textarea id="newoptvalue" name="newoptvalue" class='metaboxfield'></textarea></td>
483 </tr>
484
485 <tr>
486 <td colspan="2" class="submittd">
487 <?php if( is_array($opts) ) { ?>
488 <div id='newitemoptsubmit' class='submit'>
489 <input name="add_itemopt" type="button" id="add_itemopt" tabindex="9" value="<?php _e('Apply an option','usces') ?>" onclick="if( jQuery('#post_ID').val() < 0 ) return; itemOpt.post('additemopt', 0);" />
490 </div>
491 <div id="newitemopt_loading" class="meta_submit_loading"></div>
492 <?php } ?>
493 </td>
494 </tr>
495 </tbody>
496 </table>
497 <?php
498 }
499
500 /**
501 * item_sku_meta_form
502 */
503 function item_sku_meta_form() {
504 ?>
505 <div id="sku_ajax-response"></div>
506 <p><strong><?php _e('Add new SKU','usces') ?> : </strong></p>
507 <table id="newsku">
508 <thead>
509 <tr>
510 <th class="left"><?php _e('SKU code','usces') ?></th>
511 <th><?php echo apply_filters('usces_filter_listprice_label', __('normal price','usces'), NULL, NULL); ?>(<?php usces_crcode(); ?>)</th>
512 <th><?php echo apply_filters('usces_filter_sellingprice_label', __('Sale price','usces'), NULL, NULL); ?>(<?php usces_crcode(); ?>)</th>
513 <th><?php _e('stock','usces') ?></th>
514 <th><?php _e('stock status','usces') ?></th>
515 </tr>
516 <tr>
517 <th><?php _e('SKU display name ','usces') ?></th>
518 <th><?php _e('unit','usces') ?></th>
519 <?php
520 $advance_title = '<th colspan="2">&nbsp;</th>';
521 echo apply_filters('usces_filter_sku_meta_form_advance_title', $advance_title);
522 ?>
523 <th><?php _e('Apply business package','usces') ?></th>
524 </tr>
525 </thead>
526
527 <tbody>
528 <tr>
529 <td id="newskuleft" class='item-sku-key'><input type="text" id="newskuname" name="newskuname" class="newskuname metaboxfield"value="" /></td>
530 <td class='item-sku-cprice'><input type="text" id="newskucprice" name="newskucprice" class='newskuprice metaboxfield' /></td>
531 <td class='item-sku-price'><input type="text" id="newskuprice" name="newskuprice" class='newskuprice metaboxfield' /></td>
532 <td class='item-sku-zaikonum'><input type="text" id="newskuzaikonum" name="newskuzaikonum" class='newskuzaikonum metaboxfield' /></td>
533 <td class='item-sku-zaiko'>
534 <select id="newskuzaikoselect" name="newskuzaikoselect" class="newskuzaikoselect metaboxfield">
535 <?php
536 $zaikoselectarray = get_option('usces_zaiko_status');
537 foreach ( $zaikoselectarray as $v => $l ) {
538 echo "\n<option value='" . esc_attr($v) . "'>" . esc_html($l) . "</option>";
539 }
540 ?>
541 </select>
542 </td>
543 </tr>
544 <tr>
545 <td class='item-sku-key'><input type="text" id="newskudisp" name="newskudisp" class="newskudisp metaboxfield" /></td>
546 <td class='item-sku-cprice'><input type="text" id="newskuunit" name="newskuunit" class='newskuunit metaboxfield' /></td>
547 <?php
548 $advance_field = '<td class="item-sku-price">&nbsp;</td><td class="item-sku-zaikonum">&nbsp;</td>';
549 echo apply_filters('usces_filter_sku_meta_form_advance_field', $advance_field );
550 ?>
551 <td class='item-sku-zaiko'>
552 <select id="newskugptekiyo" name="newskugptekiyo" class="newskugptekiyo metaboxfield">
553 <option value="0"><?php _e('Not apply','usces') ?></option>
554 <option value="1"><?php _e('Apply','usces') ?></option>
555 </select>
556 </td>
557 </tr>
558 <?php echo apply_filters( 'usces_filter_newsku_meta_row', '' ); ?>
559 <tr>
560 <td colspan="5" class="submittd">
561 <div id='newskusubmit' class='submit'><input name="add_itemsku" type="button" id="add_itemsku" tabindex="9" value="<?php _e('Add SKU','usces') ?>" onclick="if( jQuery('#post_ID').val() < 0 ) return; itemSku.post('additemsku', 0);" /></div>
562 <div id="newitemsku_loading" class="meta_submit_loading"></div>
563 </td>
564 </tr>
565 </tbody>
566 </table>
567 <?php
568 }
569
570
571 //
572 // Post Meta
573 //
574
575 /**
576 * add_item_option_meta
577 */
578 function add_item_option_meta( $post_ID ) {
579 global $usces;
580
581 $post_ID = (int) $post_ID;
582 $value = array();
583 $opts = array();
584 $protected = array( '#NONE#', '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' );
585
586 $newoptname = isset($_POST['newoptname']) ? trim( $_POST['newoptname'] ) : '';
587 $newoptmeans = isset($_POST['newoptmeans']) ? (int)$_POST['newoptmeans']: 0;
588 $newoptessential = isset($_POST['newoptessential']) ? $_POST['newoptessential']: 0;
589 $newoptvalue = isset($_POST['newoptvalue']) ? trim($_POST['newoptvalue']) : '';
590
591 if ( ($newoptmeans >= 2 || WCUtils::is_zero($newoptvalue) || !empty ( $newoptvalue )) && !empty ( $newoptname) ) {
592
593 if ( $newoptname )
594 $metakey = $newoptname; // default
595
596 if ( in_array($metakey, $protected) )
597 return false;
598
599 wp_cache_delete($post_ID, 'post_meta');
600
601 $value['name'] = str_replace("\\",'',$newoptname);
602 $value['means'] = $newoptmeans;
603 $value['essential'] = $newoptessential;
604 $value['value'] = str_replace("\\",'',$newoptvalue);
605 $value = $usces->stripslashes_deep_post($value);
606
607 $id = usces_add_opt($post_ID, $value);
608
609 return $id;
610 }
611 return false;
612 } // add_meta
613
614 /**
615 * add_item_sku_meta
616 */
617 function add_item_sku_meta( $post_ID ) {
618 global $usces;
619
620 $post_ID = (int) $post_ID;
621 $value = array();
622 $skus = array();
623 $protected = array( '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' );
624
625 $newskuname = isset($_POST['newskuname']) ? trim( $_POST['newskuname'] ) : '';
626 $newskucprice = isset($_POST['newskucprice']) ? $_POST['newskucprice']: '';
627 $newskuprice = isset($_POST['newskuprice']) ? $_POST['newskuprice']: '';
628 $newskuzaikonum = isset($_POST['newskuzaikonum']) ? $_POST['newskuzaikonum']: '';
629 $newskuzaikoselect = isset($_POST['newskuzaikoselect']) ? $_POST['newskuzaikoselect'] : '';
630 $newskudisp = isset($_POST['newskudisp']) ? trim( $_POST['newskudisp'] ) : '';
631 $newskuunit = isset($_POST['newskuunit']) ? trim( $_POST['newskuunit'] ) : '';
632 $newskugptekiyo = isset($_POST['newskugptekiyo']) ? $_POST['newskugptekiyo'] : '';
633
634 if ( !WCUtils::is_blank($newskuname) && !WCUtils::is_blank($newskuprice) && !WCUtils::is_blank($newskuzaikoselect) ) {
635
636 if ( in_array($newskuname, $protected) )
637 return false;
638
639 wp_cache_delete($post_ID, 'post_meta');
640
641 $value['code'] = $newskuname;
642 $value['name'] = $newskudisp;
643 $value['cprice'] = $newskucprice;
644 $value['price'] = $newskuprice;
645 $value['unit'] = $newskuunit;
646 $value['stocknum'] = $newskuzaikonum;
647 $value['stock'] = $newskuzaikoselect;
648 $value['gp'] = $newskugptekiyo;
649 $value = apply_filters('usces_filter_add_item_sku_meta_value', $value);
650
651 $id = usces_add_sku($post_ID, $value);
652 return $id;
653 }
654 return false;
655 } // add_meta
656
657
658
659 /**
660 * up_item_option_meta
661 */
662 function up_item_option_meta( $post_ID ) {
663 global $wpdb, $usces;
664
665 $post_ID = (int) $post_ID;
666 $value = array();
667
668 $optmetaid = isset($_POST['optmetaid']) ? (int)$_POST['optmetaid'] : '';
669 $optname = isset($_POST['optname']) ? $_POST['optname'] : '';
670 $optmeans = isset($_POST['optmeans']) ? (int)$_POST['optmeans']: 0;
671 $optessential = isset($_POST['optessential']) ? $_POST['optessential']: 0;
672 $optsort = isset($_POST['sort']) ? $_POST['sort']: 0;
673 $optvalue = isset($_POST['optvalue']) ? trim($_POST['optvalue']) : '';
674
675 $metakey = '_iopt_';
676 $value['name'] = str_replace("\\",'',$optname);
677 $value['means'] = $optmeans;
678 $value['essential'] = $optessential;
679 $value['value'] = str_replace("\\",'',$optvalue);
680 $value['sort'] = $optsort;
681 $value = $usces->stripslashes_deep_post($value);
682 $valueserialized = serialize($value);
683
684 wp_cache_delete($post_ID, 'post_meta');
685
686 $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $optmetaid) );
687 return $res;
688 } // update_meta
689
690 /**
691 * up_item_sku_meta
692 */
693 function up_item_sku_meta( $post_ID ) {
694 global $wpdb, $usces;
695
696 $post_ID = (int) $post_ID;
697 $value = array();
698
699 $skuname = isset($_POST['skuname']) ? trim( $_POST['skuname'] ) : '';
700 $skumetaid = isset($_POST['skumetaid']) ? (int)$_POST['skumetaid'] : '';
701 $skucprice = isset($_POST['skucprice']) ? trim( $_POST['skucprice'] ): 0;
702 $skuprice = isset($_POST['skuprice']) ? trim( $_POST['skuprice'] ): 0;
703 $skuzaikonum = isset($_POST['skuzaikonum']) ? trim( $_POST['skuzaikonum'] ): 0;
704 $skuzaiko = isset($_POST['skuzaiko']) ? (int)$_POST['skuzaiko'] : '';
705 $skudisp = isset($_POST['skudisp']) ? trim( $_POST['skudisp'] ): '';
706 $skuunit = isset($_POST['skuunit']) ? trim( $_POST['skuunit'] ): '';
707 $skugptekiyo = isset($_POST['skugptekiyo']) ? (int)$_POST['skugptekiyo'] : 0;
708 $skusort = isset($_POST['sort']) ? $_POST['sort']: 0;
709
710 $value['code'] = $skuname;
711 $value['name'] = $skudisp;
712 $value['cprice'] = $skucprice;
713 $value['price'] = $skuprice;
714 $value['unit'] = $skuunit;
715 $value['stocknum'] = $skuzaikonum;
716 $value['stock'] = $skuzaiko;
717 $value['gp'] = $skugptekiyo;
718 $value['sort'] = $skusort;
719 $value = $usces->stripslashes_deep_post($value);
720
721 $skus = $usces->get_skus($post_ID);
722 foreach( $skus as $sku ){
723 if( $sku['code'] == $skuname && $sku['meta_id'] != $skumetaid){
724 return -1;
725 break;
726 }
727 }
728
729 $value = apply_filters('usces_filter_up_item_sku_meta_value', $value);
730
731 $valueserialized = serialize($value);
732
733 if ( !WCUtils::is_blank($skumetaid) && !WCUtils::is_blank($skuname) && !WCUtils::is_blank($skuprice) ) {
734
735 wp_cache_delete($post_ID, 'post_meta');
736
737 $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $skumetaid) );
738 return $res;
739 }
740 return false;
741 } // update_meta
742
743
744
745 /**
746 * del_item_option_meta
747 */
748 function del_item_option_meta( $post_ID ) {
749 global $wpdb;
750
751 $post_ID = (int) $post_ID;
752 $optmetaid = isset($_POST['optmetaid']) ? (int)$_POST['optmetaid'] : '';
753
754 wp_cache_delete($post_ID, 'post_meta');
755
756 $res = $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id = %d", $optmetaid) );
757
758 $opts = usces_get_opts($post_ID);
759 if( !empty($opts) ){
760 $i = 0;
761 foreach( $opts as $opt ){
762 $opt['sort'] = $i;
763 $meta_id = $opt['meta_id'];
764 unset($opt['meta_id']);
765 $serialized_values = serialize($opt);
766 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $meta_id) );
767 $i++;
768 }
769 }
770 return ;
771 } // delete_meta
772
773 /**
774 * del_item_sku_meta
775 */
776 function del_item_sku_meta( $post_ID ) {
777 global $wpdb, $usces;
778
779 $post_ID = (int) $post_ID;
780 $skumetaid = isset($_POST['skumetaid']) ? (int)$_POST['skumetaid'] : '';
781
782 wp_cache_delete($post_ID, 'post_meta');
783
784 $res = $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id = %d", $skumetaid) );
785
786 $skus = $usces->get_skus($post_ID);
787 if( !empty($skus) ){
788 $i = 0;
789 foreach( $skus as $sku ){
790 $sku['sort'] = $i;
791 $meta_id = $sku['meta_id'];
792 unset($sku['meta_id']);
793 $serialized_values = serialize($sku);
794 $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $meta_id) );
795 $i++;
796 }
797 }
798 return ;
799 } // delete_meta
800
801
802
803 function select_common_option( $post_ID ) {
804 global $wpdb;
805
806 $meta_id = isset($_POST['meta_id']) ? $_POST['meta_id'] : '';
807 if(!$meta_id) return ;
808
809 $meta_value = $wpdb->get_var( $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta WHERE meta_id = %d ", $meta_id) );
810 $array_val = unserialize( $meta_value );
811
812 $means = $array_val['means'];
813 $essential = $array_val['essential'];
814 $value = $array_val['value'];
815 $res = $means . '#usces#' . $essential . '#usces#' . $value;
816 return $res;
817 } // select_common_option
818
819
820
821
822 function order_item2cart_ajax(){
823 global $usces;
824
825 if( $_POST['action'] != 'order_item2cart_ajax' ) die(0);
826
827 $_POST = $usces->stripslashes_deep_post($_POST);
828 $res = order_item2cart();
829
830 //if( $res === false ) die(0);//20120613ysk 0000500
831
832 //REGEX BUG: but it'll return info
833 // Compose JavaScript for return
834 die( $res );
835 }
836
837 function order_item_ajax(){
838 global $usces;
839
840 if( $_POST['action'] != 'order_item_ajax' ) die(0);
841
842 $_POST = $usces->stripslashes_deep_post($_POST);
843
844 switch ( $_POST['mode'] ) {
845 case 'completionMail':
846 case 'orderConfirmMail':
847 case 'changeConfirmMail':
848 case 'receiptConfirmMail':
849 case 'mitumoriConfirmMail':
850 case 'cancelConfirmMail':
851 case 'otherConfirmMail':
852 $res = usces_order_confirm_message( $_POST['order_id'] );
853 break;
854 case 'sendmail':
855 $res = usces_ajax_send_mail();
856 break;
857 case 'get_order_item':
858 $res = get_order_item( $_POST['itemcode'] );
859 break;
860 case 'ordercheckpost':
861 $res = usces_update_ordercheck();
862 break;
863 case 'getmember':
864 $res = usces_get_member_neworder();
865 break;
866 case 'recalculation':
867 $res = usces_order_recalculation( $_POST['order_id'], $_POST['mem_id'], $_POST['post_ids'], $_POST['skus'], $_POST['prices'], $_POST['quants'], $_POST['use_point'], $_POST['shipping_charge'], $_POST['cod_fee'] );
868 break;
869 }
870
871 if( $res === false ) die(0);
872
873 //REGEX BUG: but it'll return info
874 // Compose JavaScript for return
875 die( $res );
876 }
877
878 /**
879 * order Item html
880 */
881 function usces_get_member_neworder() {
882 global $wpdb;
883 $wpdb->show_errors();
884 $res = '';
885 $member_table = $wpdb->prefix . "usces_member";
886 $query = $wpdb->prepare("SELECT * FROM $member_table WHERE mem_email = %s", trim($_POST['email']));
887 $value = $wpdb->get_row( $query, ARRAY_A );
888 if( !$value ){
889 die( 'none#usces#1' );
890 }else{
891 $res .= 'ok#usces#member_id=' . $value['ID'];
892 $res .= '#usces#customer[name1]=' . $value['mem_name1'];
893 $res .= '#usces#customer[name2]=' . $value['mem_name2'];
894 $res .= '#usces#customer[name3]=' . $value['mem_name3'];
895 $res .= '#usces#customer[name4]=' . $value['mem_name4'];
896 $res .= '#usces#customer[zipcode]=' . $value['mem_zip'];
897 $res .= '#usces#customer[pref]=' . $value['mem_pref'];
898 $res .= '#usces#customer[address1]=' . $value['mem_address1'];
899 $res .= '#usces#customer[address2]=' . $value['mem_address2'];
900 $res .= '#usces#customer[address3]=' . $value['mem_address3'];
901 $res .= '#usces#customer[tel]=' . $value['mem_tel'];
902 $res .= '#usces#customer[fax]=' . $value['mem_fax'];
903 $res .= '#usces#delivery[name1]=' . $value['mem_name1'];
904 $res .= '#usces#delivery[name2]=' . $value['mem_name2'];
905 $res .= '#usces#delivery[name3]=' . $value['mem_name3'];
906 $res .= '#usces#delivery[name4]=' . $value['mem_name4'];
907 $res .= '#usces#delivery[zipcode]=' . $value['mem_zip'];
908 $res .= '#usces#delivery[pref]=' . $value['mem_pref'];
909 $res .= '#usces#delivery[address1]=' . $value['mem_address1'];
910 $res .= '#usces#delivery[address2]=' . $value['mem_address2'];
911 $res .= '#usces#delivery[address3]=' . $value['mem_address3'];
912 $res .= '#usces#delivery[tel]=' . $value['mem_tel'];
913 $res .= '#usces#delivery[fax]=' . $value['mem_fax'];
914
915 $member_metetable = $wpdb->prefix . "usces_member_meta";
916 $query = $wpdb->prepare("SELECT * FROM $member_metetable WHERE meta_key LIKE %s AND member_id = %d", 'csmb_%', $value['ID']);
917 $customs = $wpdb->get_results( $query, ARRAY_A );
918 if( !empty($customs) ){
919 foreach( $customs as $cusv ){
920 $res .= '#usces#custom_customer[' . substr($cusv['meta_key'], 5) . ']=' . $cusv['meta_value'];
921 $res .= '#usces#custom_delivery[' . substr($cusv['meta_key'], 5) . ']=' . $cusv['meta_value'];
922 }
923 }
924 //die( urlencode($res) );
925 }
926
927 die( $res );
928 }
929
930 function order_item2cart() {
931 global $usces;
932
933 if( $_POST['action'] != 'order_item2cart_ajax' ) die(0);
934
935 $res = usces_update_ordercart();
936
937 //20120613ysk start 0000500
938 //if( $res === false ) die(0);
939 //if( $res === 0 ) die('nodata');
940
941 //die( $res );
942 return $res;
943 //20120613ysk end
944 }
945
946 function get_order_item( $item_code ) {
947 global $usces, $post;
948
949 $post_id = $usces->get_postIDbyCode( $item_code );
950 if( $post_id == NULL ) return false;
951 $post = get_post($post_id);
952
953 $pict_id = $usces->get_mainpictid( $item_code );
954 $pict_link = wp_get_attachment_image($pict_id, array(150, 150), true);
955 preg_match("/^\<a .+\>(\<img .+\/\>)\<\/a\>$/", $pict_link, $match);
956 $pict = isset($match[1]) ? $match[1] : '';
957 $skus = $usces->get_skus( $post_id );
958 $optkeys = $usces->get_itemOptionKey( $post_id );
959 $itemName = esc_html($usces->getItemName($post_id));
960
961 $r = '';
962 $r .= $pict_link . "\n";
963 $r .= "<h3>" . $itemName . "</h3>\n";
964 $r .= "<div class='skuform'>\n";
965
966 $r .= "<table class='skumulti'>\n";
967 $r .= "<thead>\n";
968 $r .= "<tr>\n";
969 $r .= "<th>" . __('SKU code','usces') . "</th>\n";
970 $r .= "<th>" . __('SKU display name ','usces') . "</th>\n";
971 $usces_listprice = __('List price', 'usces') . usces_guid_tax('return');
972 $r .= "<th>" . apply_filters('usces_filter_listprice_label', $usces_listprice, __('List price', 'usces'), usces_guid_tax('return')) . "</th>\n";
973 $usces_sellingprice = __('Sale price','usces') . usces_guid_tax('return');
974 $r .= "<th>" . apply_filters('usces_filter_sellingprice_label', $usces_sellingprice, __('Sale price', 'usces'), usces_guid_tax('return')) . "</th>\n";
975 $r .= "<th>" . __('stock','usces') . "</th>\n";
976 $r .= "<th>" . __('stock','usces') . "</th>\n";
977 $r .= "<th>" . __('unit','usces') . "</th>\n";
978 $r .= "<th>&nbsp;</th>\n";
979 $r .= "</tr>\n";
980 $r .= "</thead>\n";
981 $r .= "<tbody>\n";
982 //for ($i=0; $i<count($skus['code']); $i++) :
983 // $sku = esc_attr($skus['code'][$i]);
984 // $cprice = esc_attr($skus['cprice'][$i]);
985 // $price = esc_attr($skus['price'][$i]);
986 // $zaiko = esc_attr($usces->zaiko_status[$skus['stock'][$i]]);
987 // $zaikonum = esc_attr($skus['stocknum'][$i]);
988 // $disp = esc_attr($skus['name'][$i]);
989 // $unit = esc_attr($skus['unit'][$i]);
990 // $gptekiyo = $skus['gp'][$i];
991 foreach($skus as $sku) :
992 $key = esc_attr($sku['code']);
993 $cprice = esc_attr($sku['cprice']);
994 $price = esc_attr($sku['price']);
995 $zaiko = esc_attr($usces->zaiko_status[$sku['stock']]);
996 $zaikonum = esc_attr($sku['stocknum']);
997 $disp = esc_attr($sku['name']);
998 $unit = esc_attr($sku['unit']);
999 $gptekiyo = $sku['gp'];
1000 $sort = (int)$sku['sort'];
1001 $r .= "<tr>\n";
1002 $r .= "<td rowspan='2'>" . $key . "</td>\n";
1003 $r .= "<td>" . $disp . "</td>\n";
1004 $r .= "<td><span class='cprice'>" . ( ( !empty($cprice) ) ? usces_crform( $cprice, true, false, 'return' ) : '' ) . "</span></td>\n";
1005 $r .= "<td><span class='price'>" . usces_crform( $price, true, false, 'return' ) . "</span></td>\n";
1006 $r .= "<td>" . $zaiko . "</td>\n";
1007 $r .= "<td>" . $zaikonum . "</td>\n";
1008 // $r .= "<td>" . usces_the_itemQuant() . "</td>\n";
1009 $r .= "<td>" . $unit . "</td>\n";
1010 $r .= "<td>\n";
1011 $r .= "<input name=\"itemNEWName[{$post_id}][{$key}]\" type=\"hidden\" id=\"itemNEWName[{$post_id}][{$key}]\" value=\"{$itemName}\" />\n";
1012 $r .= "<input name=\"itemNEWCode[{$post_id}][{$key}]\" type=\"hidden\" id=\"itemNEWCode[{$post_id}][{$key}]\" value=\"{$item_code}\" />\n";
1013 $r .= "<input name=\"skuNEWName[{$post_id}][{$key}]\" type=\"hidden\" id=\"skuNEWName[{$post_id}][{$key}]\" value=\"{$key}\" />\n";
1014 $r .= "<input name=\"skuNEWCprice[{$post_id}][{$key}]\" type=\"hidden\" id=\"skuNEWCprice[{$post_id}][{$key}]\" value=\"{$cprice}\" />\n";
1015 $r .= "<input name=\"skuNEWDisp[{$post_id}][{$key}]\" type=\"hidden\" id=\"skuNEWDisp[{$post_id}][{$key}]\" value=\"{$disp}\" />\n";
1016 $r .= "<input name=\"zaikoNEWnum[{$post_id}][{$key}]\" type=\"hidden\" id=\"zaikoNEWnum[{$post_id}][{$key}]\" value=\"{$zaikonum}\" />\n";
1017 $r .= "<input name=\"zaiNEWko[{$post_id}][{$key}]\" type=\"hidden\" id=\"zaiNEWko[{$post_id}][{$key}]\" value=\"{$zaiko}\" />\n";
1018 $r .= "<input name=\"uniNEWt[{$post_id}][{$key}]\" type=\"hidden\" id=\"uniNEWt[{$post_id}][{$key}]\" value=\"{$unit}\" />\n";
1019 $r .= "<input name=\"gpNEWtekiyo[{$post_id}][{$key}]\" type=\"hidden\" id=\"gpNEWtekiyo[{$post_id}][{$key}]\" value=\"{$gptekiyo}\" />\n";
1020 $r .= "<input name=\"skuNEWPrice[{$post_id}][{$key}]\" type=\"hidden\" id=\"skuNEWPrice[{$post_id}][{$key}]\" value=\"{$price}\" />\n";
1021 $r .= "<input name=\"inNEWCart[{$post_id}][{$key}]\" type=\"button\" id=\"inNEWCart[{$post_id}][{$key}]\" class=\"skubutton\" value=\"" . __('Add to Whish List','usces') . "\" onclick=\"orderItem.add2cart('{$post_id}', '{$key}');\" />";
1022 $r .= "</td>\n";
1023 $r .= "</tr>\n";
1024 $r .= "<tr>\n";
1025 if($optkeys) :
1026 $r .= "<td colspan='7'>\n";
1027 foreach($optkeys as $optkey => $optvalue) :
1028 $r .= "<div>\n";
1029 $name = esc_attr($optvalue);
1030 $optcode = esc_attr(urlencode($name));
1031 $opts = usces_get_opts($post_id, 'name');
1032 $opt = $opts[$optvalue];
1033 //20110715ysk start 0000202
1034 $means = (int)$opt['means'];
1035 $essential = (int)$opt['essential'];
1036 $r .= "\n<label for='itemNEWOption[{$post_id}][{$key}][{$optcode}]' class='iopt_label'>{$name}</label>\n";
1037 switch($means) {
1038 case 0://Single-select
1039 case 1://Multi-select
1040 $selects = explode("\n", $opt['value']);
1041 $multiple = ($means === 0) ? '' : ' multiple';
1042 $multiple_array = ($means === 0) ? '' : '_multiple';
1043
1044 $r .= "\n<select name='itemNEWOption[{$post_id}][{$key}][{$optcode}]' id='itemNEWOption[{$post_id}][{$key}][{$optcode}]' class='iopt_select{$multiple_array}'{$multiple}>\n";
1045 if($essential == 1)
1046 $r .= "\t<option value='#NONE#' selected='selected'>" . __('Choose','usces') . "</option>\n";
1047 $s=0;
1048 foreach($selects as $v) {
1049 if($s == 0 && $essential == 0)
1050 $selected = ' selected="selected"';
1051 else
1052 $selected = '';
1053 $r .= "\t<option value='{$v}'{$selected}>{$v}</option>\n";
1054 $s++;
1055 }
1056 $r .= "</select>\n";
1057 break;
1058 case 2://Text
1059 $r .= "\n<input name='itemNEWOption[{$post_id}][{$key}][{$optcode}]' type='text' id='itemNEWOption[{$post_id}][{$key}][{$optcode}]' class='iopt_text' onKeyDown=\"if (event.keyCode == 13) {return false;}\" value=\"\" />\n";
1060 break;
1061 case 5://Text-area
1062 $r .= "\n<textarea name='itemNEWOption[{$post_id}][{$key}][{$optcode}]' id='itemNEWOption[{$post_id}][{$key}][{$optcode}]' class='iopt_textarea'></textarea>\n";
1063 break;
1064 }
1065 //20110715ysk end
1066 $r .= "<input name=\"optNEWCode[{$post_id}][{$key}][{$optcode}]\" type=\"hidden\" id=\"optNEWCode[{$post_id}][{$key}][{$optcode}]\" value=\"{$optcode}\" />\n";
1067 $r .= "<input name=\"optNEWEssential[{$post_id}][{$key}][{$optcode}]\" type=\"hidden\" id=\"optNEWEssential[{$post_id}][{$key}][{$optcode}]\" value=\"{$essential}\" />\n";
1068 $r .= "</div>\n";
1069 endforeach;
1070 $r .= "</td>\n";
1071 endif;
1072 $r .= "</tr>\n";
1073 //endfor;
1074 endforeach;
1075 $r .= "</tbody>\n";
1076 $r .= "</table>\n";
1077
1078
1079 $r .= "</div>\n";
1080
1081 return $r;
1082 }
1083
1084 function item_option_ajax()
1085 {
1086
1087 if( $_POST['action'] != 'item_option_ajax' ) die(0);
1088
1089 if(isset($_POST['update'])){
1090 $id = up_item_option_meta( $_POST['ID'] );
1091
1092 }else if(isset($_POST['delete'])){
1093 $id = del_item_option_meta( $_POST['ID'] );
1094
1095 }else if(isset($_POST['select'])){
1096 $res = select_common_option( $_POST['ID'] );
1097 die( $res );
1098
1099 }else if(isset($_POST['sort'])){
1100 $id = usces_sort_post_meta( $_POST['ID'], $_POST['meta'] );
1101 //die( $res );
1102
1103 }else{
1104 $id = add_item_option_meta( $_POST['ID'] );
1105
1106 }
1107
1108 $opts = usces_get_opts( $_POST['ID'] );
1109
1110 $r = '';
1111 foreach ( $opts as $opt )
1112 $r .= _list_item_option_meta_row( $opt );
1113
1114 $res = $r . '#usces#' . $id;
1115 //REGEX BUG: but it'll return info
1116 // Compose JavaScript for return
1117 die( $res );
1118 }
1119
1120 function item_sku_ajax(){
1121 global $usces;
1122
1123 $id = '';
1124 if( $_POST['action'] != 'item_sku_ajax' ) die(0);
1125
1126 if(isset($_POST['update'])){
1127 $id = up_item_sku_meta( $_POST['ID'] );
1128
1129 }else if(isset($_POST['delete'])){
1130 $id = del_item_sku_meta( $_POST['ID'] );
1131
1132 }else if(isset($_POST['select'])){
1133 $res = select_item_sku( $_POST['ID'] );
1134 die( $res );
1135
1136 }else if(isset($_POST['sort'])){
1137 $id = usces_sort_post_meta( $_POST['ID'], $_POST['meta'] );
1138 //die( $res );
1139
1140 }else{
1141 $id = add_item_sku_meta( $_POST['ID'] );
1142
1143 }
1144
1145 $skus = $usces->get_skus( $_POST['ID'] );
1146
1147 $r = '';
1148
1149 foreach ( (array)$skus as $sku )
1150 $r .= _list_item_sku_meta_row( $sku );
1151
1152 //$list = has_item_sku_list();
1153
1154 $res = $r . '#usces#' . $id;
1155
1156 die( $res );
1157 }
1158
1159 function item_save_metadata( $post_id, $post ) {
1160 global $usces, $wpdb;
1161
1162 $message = '';
1163
1164 // usces_log('item_save_metadata : '.print_r($post_id,true), 'acting_transaction.log');
1165 // usces_log('item_save_metadata : '.print_r($_POST['post_ID'],true), 'acting_transaction.log');
1166 // パーミッションチェック
1167 if ( isset($_POST['page']) && 'usces_itemedit' == $_POST['page']) {
1168 if ( !current_user_can( 'edit_post', $post_id ) ){
1169 $usces->set_action_status('error', 'ERROR : '.__('Sorry, you do not have the right to edit this post.'));
1170 return $post_id;
1171 }
1172 } else {
1173 return $post_id;
1174 }
1175
1176 if ( !wp_verify_nonce( $_POST['usces_nonce'], 'usc-e-shop' )) {
1177 return $post_id;
1178 }
1179
1180 // $post_id = $_POST['post_ID'];
1181 // if( $post_id < 0 ){
1182 // return $post_id;
1183 // }
1184
1185
1186
1187 // 自動保存ルーチンかどうかチェック。そうだった場合はフォームを送信しない(何もしない)
1188 if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
1189 return $post_id;
1190
1191 $usces->set_item_mime($post_id, 'item');
1192
1193 $itemCode = trim($_POST['itemCode' ]);
1194 if( preg_match('/[^0-9a-zA-Z\-_]/', $itemCode) ){
1195 // $itemCode = '';
1196 // $usces->action_message = '商品コードは半角英数(-_を含む)で�
1197 �力して下さい。' . "<br />";
1198 }
1199 if( empty($itemCode) ){
1200 $itemCode = '';
1201 $message .= __('商品コードが�
1202 �力されていません。', 'usces') . "<br />";
1203 }elseif( $res = usces_is_same_itemcode($post->ID, $itemCode)) {
1204 $message .= 'post_ID ';
1205 foreach( $res as $postid )
1206 $message .= $postid . ', ';
1207 $message .= 'に同じ商品コードが登録されています。' . "<br />";
1208 $usces->set_action_status('error', 'ERROR : '.$message);
1209 }
1210 update_post_meta($post_id, '_itemCode', $itemCode);
1211
1212
1213 if(isset($_POST['itemName'])){
1214 $itemName = trim($_POST['itemName']);
1215 update_post_meta($post_id, '_itemName', $itemName);
1216 }
1217 // if(isset($_POST['itemCode'])){
1218 // $itemCode = trim($_POST['itemCode']);
1219 // update_post_meta($post_id, '_itemCode', $itemCode);
1220 // }
1221 if(isset($_POST['itemRestriction'])){
1222 $itemRestriction = trim($_POST['itemRestriction']);
1223 update_post_meta($post_id, '_itemRestriction', $itemRestriction);
1224 }
1225 if(isset($_POST['itemPointrate'])){
1226 $itemPointrate = (int)$_POST['itemPointrate'];
1227 update_post_meta($post_id, '_itemPointrate', $itemPointrate);
1228 }
1229 if(isset($_POST['itemGpNum1'])){
1230 $itemGpNum1 = (int)$_POST['itemGpNum1'];
1231 update_post_meta($post_id, '_itemGpNum1', $itemGpNum1);
1232 }
1233 if(isset($_POST['itemGpNum2'])){
1234 $itemGpNum2 = (int)$_POST['itemGpNum2'];
1235 update_post_meta($post_id, '_itemGpNum2', $itemGpNum2);
1236 }
1237 if(isset($_POST['itemGpNum3'])){
1238 $itemGpNum3 = (int)$_POST['itemGpNum3'];
1239 update_post_meta($post_id, '_itemGpNum3', $itemGpNum3);
1240 }
1241 if(isset($_POST['itemGpDis1'])){
1242 $itemGpDis1 = (int)$_POST['itemGpDis1'];
1243 update_post_meta($post_id, '_itemGpDis1', $itemGpDis1);
1244 }
1245 if(isset($_POST['itemGpDis2'])){
1246 $itemGpDis2 = (int)$_POST['itemGpDis2'];
1247 update_post_meta($post_id, '_itemGpDis2', $itemGpDis2);
1248 }
1249 if(isset($_POST['itemGpDis3'])){
1250 $itemGpDis3 = (int)$_POST['itemGpDis3'];
1251 update_post_meta($post_id, '_itemGpDis3', $itemGpDis3);
1252 }
1253
1254 if(isset($_POST['itemShipping'])){
1255 $itemShipping = (int)$_POST['itemShipping'];
1256 update_post_meta($post_id, '_itemShipping', $itemShipping);
1257 }
1258 if(isset($_POST['itemDeliveryMethod'])){
1259 $itemDeliveryMethod = array();
1260 foreach( (array)$_POST["itemDeliveryMethod"] as $dmid){
1261 $itemDeliveryMethod[] = $dmid;
1262 }
1263 update_post_meta($post_id, '_itemDeliveryMethod', $itemDeliveryMethod);
1264 }
1265 if(isset($_POST['itemShippingCharge'])){
1266 $itemShippingCharge = (int)$_POST['itemShippingCharge'];
1267 update_post_meta($post_id, '_itemShippingCharge', $itemShippingCharge);
1268 }
1269 $itemIndividualSCharge = isset($_POST['itemIndividualSCharge']) ? 1 : 0;
1270 update_post_meta($post_id, '_itemIndividualSCharge', $itemIndividualSCharge);
1271
1272 if(isset($_POST['wcexp'])){
1273 $wcexp = serialize($_POST['wcexp']);
1274 update_post_meta($post_id, '_wcexp', $wcexp);
1275 }
1276
1277 //SKU
1278 if( isset($_POST['itemsku']) ){
1279 $meta_ids = array();
1280 $codes = array();
1281 $uniq_code = false;
1282 $irreg_code = false;
1283 $irreg_price = false;
1284
1285 foreach($_POST['itemsku'] as $mid => $temp){
1286 $meta_ids[] = $mid;
1287 }
1288 $meta_ids = array_unique($meta_ids);
1289 foreach( $meta_ids as $meta_id ){
1290
1291 $skucode = isset($_POST['itemsku'][$meta_id]['key']) ? trim( $_POST['itemsku'][$meta_id]['key'] ) : '';
1292 $skucprice = isset($_POST['itemsku'][$meta_id]['cprice']) ? trim( $_POST['itemsku'][$meta_id]['cprice'] ): 0;
1293 $skuprice = isset($_POST['itemsku'][$meta_id]['price']) ? trim( $_POST['itemsku'][$meta_id]['price'] ): 0;
1294 $skustocknum = isset($_POST['itemsku'][$meta_id]['zaikonum']) ? trim( $_POST['itemsku'][$meta_id]['zaikonum'] ): 0;
1295 $skustock = isset($_POST['itemsku'][$meta_id]['zaiko']) ? (int)$_POST['itemsku'][$meta_id]['zaiko'] : '';
1296 $skuname = isset($_POST['itemsku'][$meta_id]['skudisp']) ? trim( $_POST['itemsku'][$meta_id]['skudisp'] ): '';
1297 $skuunit = isset($_POST['itemsku'][$meta_id]['skuunit']) ? trim( $_POST['itemsku'][$meta_id]['skuunit'] ): '';
1298 $skugp = isset($_POST['itemsku'][$meta_id]['skugptekiyo']) ? (int)$_POST['itemsku'][$meta_id]['skugptekiyo'] : 0;
1299 $skusort = isset($_POST['itemsku'][$meta_id]['sort']) ? $_POST['itemsku'][$meta_id]['sort']: 0;
1300
1301 $skus['code'] = $skucode;
1302 $skus['name'] = $skuname;
1303 $skus['cprice'] = $skucprice;
1304 $skus['price'] = $skuprice;
1305 $skus['unit'] = $skuunit;
1306 $skus['stocknum'] = $skustocknum;
1307 $skus['stock'] = $skustock;
1308 $skus['gp'] = $skugp;
1309 $skus['sort'] = $skusort;
1310 $skus = $usces->stripslashes_deep_post($skus);
1311 $skus = apply_filters( 'usces_filter_item_save_sku_metadata', $skus, $meta_id );
1312
1313 $valueserialized = serialize($skus);
1314 $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $meta_id) );
1315
1316 if( in_array( $skucode, $codes ) )
1317 $uniq_code = true;
1318
1319 if( WCUtils::is_blank($skucode) )
1320 $irreg_code = true;
1321
1322 if( WCUtils::is_blank($skuprice) || preg_match('/[^0-9.]/', $skuprice) || 1 < substr_count($skuprice, '.' ) )
1323 $irreg_price = true;
1324
1325 $codes[] = $skucode;
1326 }
1327
1328 if( $uniq_code ){
1329 $message .= 'SKUコードが重複しています。' . "<br />";
1330 }
1331 if( $irreg_code ){
1332 $message .= 'SKUコードの値が不正です。' . "<br />";
1333 }
1334 if( $irreg_price ){
1335 $message .= '売価の値が不正なSKUが存在します。' . "<br />";
1336 }
1337 }
1338 //OPT
1339 if( isset($_POST['itemopt']) ){
1340 $meta_ids = array();
1341 $names = array();
1342 $uniq_name = false;
1343 $irreg_name = false;
1344 $irreg_value = false;
1345
1346 foreach($_POST['itemopt'] as $mid => $temp){
1347 $meta_ids[] = $mid;
1348 }
1349 $meta_ids = array_unique($meta_ids);
1350 foreach( $meta_ids as $meta_id ){
1351
1352 $optname = isset($_POST['itemopt'][$meta_id]['name']) ? $_POST['itemopt'][$meta_id]['name'] : '';
1353 $optmeans = isset($_POST['itemopt'][$meta_id]['means']) ? (int)$_POST['itemopt'][$meta_id]['means']: 0;
1354 $optessential = isset($_POST['itemopt'][$meta_id]['essential']) ? $_POST['itemopt'][$meta_id]['essential']: 0;
1355 $optsort = isset($_POST['itemopt'][$meta_id]['sort']) ? $_POST['itemopt'][$meta_id]['sort']: 0;
1356 $optvalue = isset($_POST['itemopt'][$meta_id]['value']) ? trim($_POST['itemopt'][$meta_id]['value']) : '';
1357
1358 $opts['name'] = str_replace("\\",'',$optname);
1359 $opts['value'] = str_replace("\\",'',$optvalue);
1360 $opts['means'] = $optmeans;
1361 $opts['essential'] = $optessential;
1362 $opts['sort'] = $optsort;
1363 $opts = $usces->stripslashes_deep_post($opts);
1364
1365 $valueserialized = serialize($opts);
1366 $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $meta_id) );
1367
1368 if( in_array( $optname, $names ) )
1369 $uniq_name = true;
1370
1371 if( WCUtils::is_blank($optname) )
1372 $irreg_name = true;
1373
1374 if( WCUtils::is_blank($optvalue) && 1 >= $optmeans )
1375 $irreg_value = true;
1376
1377 $names[] = $optname;
1378 }
1379
1380
1381 if( $uniq_name ){
1382 $message .= 'オプション名が重複している商品オプションが存在します。' . "<br />";
1383 }
1384 if( $irreg_name ){
1385 $message .= 'オプション名が未�
1386 �力の商品オプションが存在します。' . "<br />";
1387 }
1388 if( $irreg_value ){
1389 $message .= '商品オプションで「シングルセレクト」、「マルチセレクト」を選択した場合は、セレクト値を�
1390 �力してください。' . "<br />";
1391 }
1392 }
1393
1394 do_action('usces_action_save_product', $post_id, $post);
1395 $message = apply_filters( 'usces_filter_save_product_message', $message, $post_id );
1396
1397 // $usces->action_status = 'none';
1398 // $usces->action_message = '';
1399 if( $message ){
1400 $usces->set_action_status('error', 'ERROR : '.$message);
1401 }else{
1402 $usces->set_action_status('success', '商品の登録が完了しました。 ');
1403 }
1404
1405 wp_cache_delete($post_id, 'post_meta');
1406 }
1407
1408 function usces_link_replace($para) {
1409 //$str = 'admin.php?page=' . USCES_PLUGIN_BASENAME . '&';
1410 $str = 'admin.php?page=usces_itemedit&';
1411 $url = preg_replace('|post\.php\?|i', $str, $para);
1412 return $url;
1413
1414 }
1415
1416 function usces_count_posts( $type = 'post', $perm = '' ) {
1417 global $wpdb;
1418
1419 $user = wp_get_current_user();
1420
1421 $cache_key = $type;
1422
1423 $query = "SELECT post_status, COUNT( * ) AS num_posts FROM {$wpdb->posts} WHERE post_type = %s AND post_mime_type = 'item'";
1424 //$query = "SELECT post_status, COUNT( * ) AS num_posts FROM {$wpdb->posts} WHERE post_type = %s";
1425 if ( 'readable' == $perm && is_user_logged_in() ) {
1426 if ( !current_user_can("read_private_{$type}s") ) {
1427 $cache_key .= '_' . $perm . '_' . $user->ID;
1428 $query .= " AND (post_status != 'private' OR ( post_author = '$user->ID' AND post_status = 'private' ))";
1429 }
1430 }
1431 $query .= ' GROUP BY post_status';
1432
1433 $count = wp_cache_get($cache_key, 'counts');
1434 if ( false !== $count )
1435 // return $count;
1436
1437 $count = $wpdb->get_results( $wpdb->prepare( $query, $type ), ARRAY_A );
1438
1439 $stats = array( );
1440 foreach( (array) $count as $row_num => $row ) {
1441 $stats[$row['post_status']] = $row['num_posts'];
1442 }
1443
1444 $stats = (object) $stats;
1445 wp_cache_set($cache_key, $stats, 'counts');
1446
1447 return $stats;
1448 }
1449
1450 //20100809ysk start
1451 /**
1452 * custom order meta row
1453 */
1454 function _list_custom_order_meta_row($key, $entry) {
1455 $r = '';
1456 $style = '';
1457 $key = esc_attr($key);
1458
1459 $name = esc_attr($entry['name']);
1460 $means = get_option('usces_custom_order_select');
1461 $meansoption = '';
1462 foreach($means as $meankey => $meanvalue) {
1463 if($meankey == $entry['means']) {
1464 $selected = ' selected="selected"';
1465 } else {
1466 $selected = '';
1467 }
1468 $meansoption .= '<option value="'.esc_attr($meankey).'"'.$selected.'>'.esc_html($meanvalue)."</option>\n";
1469 }
1470 $essential = $entry['essential'] == 1 ? " checked='checked'" : "";
1471 $value = '';
1472 if(is_array($entry['value'])) {
1473 foreach($entry['value'] as $k => $v) {
1474 $value .= $v."\n";
1475 }
1476 }
1477 $value = esc_attr(trim($value));
1478
1479 $r .= "\n\t<tr id='csod-{$key}' class='{$style}'>";
1480 $r .= "\n\t\t<td class='left'><div><input type='text' name='csod[{$key}][key]' id='csod[{$key}][key]' class='optname' size='20' value='{$key}' readonly /></div>";
1481 $r .= "\n\t\t<div><input type='text' name='csod[{$key}][name]' id='csod[{$key}][name]' class='optname' size='20' value='{$name}' /></div>";
1482 $r .= "\n\t\t<div class='optcheck'><select name='csod[{$key}][means]' id='csod[{$key}][means]'>".$meansoption."</select>\n";
1483 $r .= "<input type='checkbox' name='csod[{$key}][essential]' id='csod[{$key}][essential]' value='1'{$essential} /><label for='csod[{$key}][essential]'>".__('Required','usces')."</label></div>";
1484 //20100818ysk start
1485 //$r .= "\n\t\t<div class='submit'><input type='button' name='deletecsod[{$key}]' id='deletecsod[{$key}]' value='".esc_attr(__( 'Delete' ))."' onclick='customOrder.del(\"{$key}\");' />";
1486 //$r .= "\n\t\t<input type='button' name='updatecsod' id='updatecsod[{$key}]' value='".esc_attr(__( 'Update' ))."' onclick='customOrder.upd(\"{$key}\");' /></div>";
1487 $r .= "\n\t\t<div class='submit'><input type='button' name='del_csod[{$key}]' id='del_csod[{$key}]' value='".esc_attr(__( 'Delete' ))."' onclick='customField.delOrder(\"{$key}\");' />";
1488 $r .= "\n\t\t<input type='button' name='upd_csod[{$key}]' id='upd_csod[{$key}]' value='".esc_attr(__( 'Update' ))."' onclick='customField.updOrder(\"{$key}\");' /></div>";
1489 //20100818ysk end
1490 $r .= "\n\t\t<div id='csod_loading-{$key}' class='meta_submit_loading'></div>";
1491 $r .= "</td>";
1492 $r .= "\n\t\t<td class='item-opt-value'><textarea name='csod[{$key}][value]' id='csod[{$key}][value]' class='optvalue'>{$value}</textarea></td>\n\t</tr>";
1493 return $r;
1494 }
1495 //20100809ysk end
1496
1497 //20100818ysk start
1498 /**
1499 * has custom field meta
1500 */
1501 function usces_has_custom_field_meta($fieldname) {
1502 switch($fieldname) {
1503 case 'order':
1504 $field = 'usces_custom_order_field';
1505 break;
1506 case 'customer':
1507 $field = 'usces_custom_customer_field';
1508 break;
1509 case 'delivery':
1510 $field = 'usces_custom_delivery_field';
1511 break;
1512 case 'member':
1513 $field = 'usces_custom_member_field';
1514 break;
1515 default:
1516 return array();
1517 }
1518 $fields = get_option($field);
1519 if( empty($fields) ){
1520 $meta = array();
1521 }elseif( is_array($fields) ){
1522 $meta = $fields;
1523 }else{
1524 $meta = unserialize($fields);
1525 }
1526 return $meta;
1527 }
1528
1529 function usces_getinfo_ajax(){
1530 global $wp_version;
1531 $wcex_str = '';
1532 $res = '';
1533 $wcex = usces_get_wcex();
1534 foreach ( (array)$wcex as $key => $values ) {
1535 $wcex_str .= $key . "-" . $values['version'] . ",";
1536 }
1537 $wcex_str = rtrim($wcex_str, ',');
1538 if ( version_compare($wp_version, '3.4', '>=') ){
1539 $theme_ob = wp_get_theme();
1540 $themedata['Name'] = $theme_ob->get('Name');
1541 $themedata['Version'] = $theme_ob->get('Version');
1542 }else{
1543 $themedata = get_theme_data( get_stylesheet_directory().'/style.css' );
1544 }
1545
1546
1547 $v = urlencode(USCES_VERSION);
1548 $wcid = urlencode(get_option('usces_wcid'));
1549 $locale = urlencode(get_locale());
1550 $theme = urlencode($themedata['Name'] . '-' . $themedata['Version']);
1551 $wcex = urlencode($wcex_str);
1552 $interface_url = 'http://www.welcart.com/util/welcart_information2.php';
1553 $wcurl = urlencode(get_home_url());
1554 $interface = parse_url($interface_url);
1555
1556 $vars ="v=$v&wcid=$wcid&locale=$locale&theme=$theme&wcex=$wcex&wcurl=$wcurl";
1557 $header = "POST " . $interface_url . " HTTP/1.1\r\n";
1558 $header .= "Host: " . $_SERVER['HTTP_HOST'] . "\r\n";
1559 $header .= "User-Agent: " . $_SERVER['HTTP_USER_AGENT'] . "\r\n";
1560 $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
1561 $header .= "Content-Length: " . strlen($vars) . "\r\n";
1562 $header .= "Connection: close\r\n\r\n";
1563 $header .= $vars;
1564 $fp = fsockopen($interface['host'],80,$errno,$errstr,30);
1565 if( $fp ){
1566 fwrite($fp, $header);
1567 $i=0;
1568 while ( !feof($fp) ) {
1569 $scr = fgets($fp, 10240);
1570 preg_match("/<(title|data)>(.*)<(\/title|\/data)>$/", $scr, $match);
1571
1572 if(!empty($match[2])){
1573 switch( $match[1] ){
1574 case'title':
1575 $res .= '<div style="text-align: center;border-bottom: 1px dotted #CCCCCC;width: 80%;margin-bottom: 10px;padding-bottom: 3px; margin-right: auto; margin-left: auto;"><stlong>' . $match[2] . '</strong></div><ul>';
1576 break;
1577 case 'data':
1578 $res .= '<li>' . $match[2] . '</li>';
1579 break;
1580 }
1581 }
1582 $i++;
1583 if($i>50) {
1584 $res = 'ERROR';
1585 break;
1586 }
1587 }
1588
1589 $res .= '</ul>';
1590 fclose($fp);
1591
1592 }else{
1593 $res = 'ERROR';
1594 }
1595 die($res);
1596 }
1597
1598 /**
1599 * custom field ajax
1600 */
1601 function custom_field_ajax() {
1602 global $usces;
1603 $_POST = $usces->stripslashes_deep_post($_POST);
1604
1605 if($_POST['action'] != 'custom_field_ajax') die(0);
1606 switch($_POST['field']) {
1607 case 'order':
1608 $field = 'usces_custom_order_field';
1609 break;
1610 case 'customer':
1611 $field = 'usces_custom_customer_field';
1612 break;
1613 case 'delivery':
1614 $field = 'usces_custom_delivery_field';
1615 break;
1616 case 'member':
1617 $field = 'usces_custom_member_field';
1618 break;
1619 default:
1620 die(0);
1621 }
1622
1623 $meta = usces_has_custom_field_meta($_POST['field']);
1624 $dupkey = 0;
1625
1626 if(isset($_POST['add'])) {
1627 $newkey = isset($_POST['newkey']) ? trim($_POST['newkey']) : '';
1628 $newname = isset($_POST['newname']) ? trim($_POST['newname']) : '';
1629 $newmeans = isset($_POST['newmeans']) ? $_POST['newmeans'] : 0;
1630 $newessential = isset($_POST['newessential']) ? $_POST['newessential'] : 0;
1631 $newposition = isset($_POST['newposition']) ? trim($_POST['newposition']) : '';
1632
1633 if($newmeans == 2) {//Text
1634 $newvalue = isset($_POST['newvalue']) ? trim($_POST['newvalue']) : '';
1635 $nv = $newvalue;
1636
1637 } else {
1638 $newvalue = isset($_POST['newvalue']) ? explode('\n', trim($_POST['newvalue'])) : '';
1639 foreach((array)$newvalue as $v) {
1640 if( !WCUtils::is_blank($v) )
1641 $nv[] = trim($v);
1642 }
1643 }
1644
1645 if(!array_key_exists($newkey, $meta)) {
1646 if(($newmeans >= 2 || WCUtils::is_zero($newvalue) || !empty($newvalue)) && !empty($newkey) && !empty($newname)) {
1647 $meta[$newkey]['name'] = $newname;
1648 $meta[$newkey]['means'] = $newmeans;
1649 $meta[$newkey]['essential'] = $newessential;
1650 $meta[$newkey]['value'] = $nv;
1651 if( !WCUtils::is_blank($newposition) ) $meta[$newkey]['position'] = $newposition;
1652 update_option($field, $meta);
1653 }
1654 } else {
1655 $dupkey = 1;
1656 }
1657
1658 } elseif(isset($_POST['update'])) {
1659 $key = isset($_POST['key']) ? trim($_POST['key']) : '';
1660 $name = isset($_POST['name']) ? trim($_POST['name']) : '';
1661 $means = isset($_POST['means']) ? $_POST['means'] : 0;
1662 $essential = isset($_POST['essential']) ? $_POST['essential'] : 0;
1663 $position = isset($_POST['position']) ? trim($_POST['position']) : '';
1664
1665 if($means == 2) {//Text
1666 $value = isset($_POST['value']) ? trim($_POST['value']) : '';
1667 $nv = $value;
1668
1669 } else {
1670 $value = isset($_POST['value']) ? explode('\n', trim($_POST['value'])) : '';
1671 foreach((array)$value as $v) {
1672 if( !WCUtils::is_blank($v) )
1673 $nv[] = trim($v);
1674 }
1675 }
1676
1677 if($means >= 2 || WCUtils::is_zero($value) || !empty($value)) {
1678 $meta[$key]['name'] = $name;
1679 $meta[$key]['means'] = $means;
1680 $meta[$key]['essential'] = $essential;
1681 $meta[$key]['value'] = $nv;
1682 if( !WCUtils::is_blank($position) ) $meta[$key]['position'] = $position;
1683 update_option($field, $meta);
1684 }
1685
1686 } elseif(isset($_POST['delete'])) {
1687 $key = isset($_POST['key']) ? trim($_POST['key']) : '';
1688 unset($meta[$key]);
1689 update_option($field, $meta);
1690 }
1691
1692 $r = '';
1693 switch($_POST['field']) {
1694 case 'order':
1695 foreach($meta as $key => $entry)
1696 $r .= _list_custom_order_meta_row($key, $entry);
1697 break;
1698 case 'customer':
1699 foreach($meta as $key => $entry)
1700 $r .= _list_custom_customer_meta_row($key, $entry);
1701 break;
1702 case 'delivery':
1703 foreach($meta as $key => $entry)
1704 $r .= _list_custom_delivery_meta_row($key, $entry);
1705 break;
1706 case 'member':
1707 foreach($meta as $key => $entry)
1708 $r .= _list_custom_member_meta_row($key, $entry);
1709 break;
1710 }
1711
1712 $res = $r . '#usces#' . $dupkey;
1713 //REGEX BUG: but it'll return info
1714 // Compose JavaScript for return
1715 die($res);
1716 }
1717
1718 /**
1719 * list custom customer meta row
1720 */
1721 function _list_custom_customer_meta_row($key, $entry) {
1722 $r = '';
1723 $style = '';
1724 $key = esc_attr($key);
1725
1726 $name = esc_attr($entry['name']);
1727 $means = get_option('usces_custom_customer_select');
1728 $meansoption = '';
1729 foreach($means as $meankey => $meanvalue) {
1730 $selected = ($meankey == $entry['means']) ? " selected='selected'" : "";
1731 $meansoption .= "<option value='".esc_attr($meankey)."'".$selected.">".esc_html($meanvalue)."</option>\n";
1732 }
1733 $essential = $entry['essential'] == 1 ? " checked='checked'" : "";
1734 $value = '';
1735 if(is_array($entry['value'])) {
1736 foreach($entry['value'] as $k => $v) {
1737 $value .= $v."\n";
1738 }
1739 }
1740 $value = esc_attr(trim($value));
1741 $positions = get_option('usces_custom_field_position_select');
1742 $positionsoption = '';
1743 foreach($positions as $poskey => $posvalue) {
1744 $selected = ($poskey == $entry['position']) ? " selected='selected'" : "";
1745 $positionsoption .= "<option value='".esc_attr($poskey)."'".$selected.">".esc_html($posvalue)."</option>\n";
1746 }
1747
1748 $r .= "\n\t<tr id='cscs-{$key}' class='{$style}'>";
1749 $r .= "\n\t\t<td class='left'><div><input type='text' name='cscs[{$key}][key]' id='cscs[{$key}][key]' class='optname' size='20' value='{$key}' readonly /></div>";
1750 $r .= "\n\t\t<div><input type='text' name='cscs[{$key}][name]' id='cscs[{$key}][name]' class='optname' size='20' value='{$name}' /></div>";
1751 $r .= "\n\t\t<div class='optcheck'><select name='cscs[{$key}][means]' id='cscs[{$key}][means]'>".$meansoption."</select>\n";
1752 $r .= "<input type='checkbox' name='cscs[{$key}][essential]' id='cscs[{$key}][essential]' value='1'{$essential} /><label for='cscs[{$key}][essential]'>".__('Required','usces')."</label>\n";
1753 $r .= "<select name='cscs[{$key}][position]' id='cscs[{$key}][position]'>".$positionsoption."</select></div>";
1754 $r .= "\n\t\t<div class='submit'><input type='button' name='del_cscs[{$key}]' id='del_cscs[{$key}]' value='".esc_attr(__( 'Delete' ))."' onclick='customField.delCustomer(\"{$key}\");' />";
1755 $r .= "\n\t\t<input type='button' name='upd_cscs[{$key}]' id='upd_cscs[{$key}]' value='".esc_attr(__( 'Update' ))."' onclick='customField.updCustomer(\"{$key}\");' /></div>";
1756 $r .= "\n\t\t<div id='cscs_loading-{$key}' class='meta_submit_loading'></div>";
1757 $r .= "</td>";
1758 $r .= "\n\t\t<td class='item-opt-value'><textarea name='cscs[{$key}][value]' id='cscs[{$key}][value]' class='optvalue'>{$value}</textarea></td>\n\t</tr>";
1759 return $r;
1760 }
1761
1762 /**
1763 * list custom delivery meta row
1764 */
1765 function _list_custom_delivery_meta_row($key, $entry) {
1766 $r = '';
1767 $style = '';
1768 $key = esc_attr($key);
1769
1770 $name = esc_attr($entry['name']);
1771 $means = get_option('usces_custom_delivery_select');
1772 $meansoption = '';
1773 foreach($means as $meankey => $meanvalue) {
1774 $selected = ($meankey == $entry['means']) ? " selected='selected'" : "";
1775 $meansoption .= "<option value='".esc_attr($meankey)."'".$selected.">".esc_html($meanvalue)."</option>\n";
1776 }
1777 $essential = $entry['essential'] == 1 ? " checked='checked'" : "";
1778 $value = '';
1779 if(is_array($entry['value'])) {
1780 foreach($entry['value'] as $k => $v) {
1781 $value .= $v."\n";
1782 }
1783 }
1784 $value = esc_attr(trim($value));
1785 $positions = get_option('usces_custom_field_position_select');
1786 $positionsoption = '';
1787 foreach($positions as $poskey => $posvalue) {
1788 $selected = ($poskey == $entry['position']) ? " selected='selected'" : "";
1789 $positionsoption .= "<option value='".esc_attr($poskey)."'".$selected.">".esc_html($posvalue)."</option>\n";
1790 }
1791
1792 $r .= "\n\t<tr id='csde-{$key}' class='{$style}'>";
1793 $r .= "\n\t\t<td class='left'><div><input type='text' name='csde[{$key}][key]' id='csde[{$key}][key]' class='optname' size='20' value='{$key}' readonly /></div>";
1794 $r .= "\n\t\t<div><input type='text' name='csde[{$key}][name]' id='csde[{$key}][name]' class='optname' size='20' value='{$name}' /></div>";
1795 $r .= "\n\t\t<div class='optcheck'><select name='csde[{$key}][means]' id='csde[{$key}][means]'>".$meansoption."</select>\n";
1796 $r .= "<input type='checkbox' name='csde[{$key}][essential]' id='csde[{$key}][essential]' value='1'{$essential} /><label for='csde[{$key}][essential]'>".__('Required','usces')."</label>\n";
1797 $r .= "<select name='csde[{$key}][position]' id='csde[{$key}][position]'>".$positionsoption."</select></div>";
1798 $r .= "\n\t\t<div class='submit'><input type='button' name='del_csde[{$key}]' id='del_csde[{$key}]' value='".esc_attr(__( 'Delete' ))."' onclick='customField.delDelivery(\"{$key}\");' />";
1799 $r .= "\n\t\t<input type='button' name='upd_csde[{$key}]' id='upd_csde[{$key}]' value='".esc_attr(__( 'Update' ))."' onclick='customField.updDelivery(\"{$key}\");' /></div>";
1800 $r .= "\n\t\t<div id='csde_loading-{$key}' class='meta_submit_loading'></div>";
1801 $r .= "</td>";
1802 $r .= "\n\t\t<td class='item-opt-value'><textarea name='csde[{$key}][value]' id='csde[{$key}][value]' class='optvalue'>{$value}</textarea></td>\n\t</tr>";
1803 return $r;
1804 }
1805
1806 /**
1807 * list custom member meta row
1808 */
1809 function _list_custom_member_meta_row($key, $entry) {
1810 $r = '';
1811 $style = '';
1812 $key = esc_attr($key);
1813
1814 $name = esc_attr($entry['name']);
1815 $means = get_option('usces_custom_member_select');
1816 $meansoption = '';
1817 foreach($means as $meankey => $meanvalue) {
1818 $selected = ($meankey == $entry['means']) ? " selected='selected'" : "";
1819 $meansoption .= "<option value='".esc_attr($meankey)."'".$selected.">".esc_html($meanvalue)."</option>\n";
1820 }
1821 $essential = $entry['essential'] == 1 ? " checked='checked'" : "";
1822 $value = '';
1823 if(is_array($entry['value'])) {
1824 foreach($entry['value'] as $k => $v) {
1825 $value .= $v."\n";
1826 }
1827 }
1828 $value = esc_attr(trim($value));
1829 $positions = get_option('usces_custom_field_position_select');
1830 $positionsoption = '';
1831 foreach($positions as $poskey => $posvalue) {
1832 $selected = ($poskey == $entry['position']) ? " selected='selected'" : "";
1833 $positionsoption .= "<option value='".esc_attr($poskey)."'".$selected.">".esc_attr($posvalue)."</option>\n";
1834 }
1835 $r .= "\n\t<tr id='csmb-{$key}' class='{$style}'>";
1836 $r .= "\n\t\t<td class='left'><div><input type='text' name='csmb[{$key}][key]' id='csmb[{$key}][key]' class='optname' size='20' value='{$key}' readonly /></div>";
1837 $r .= "\n\t\t<div><input type='text' name='csmb[{$key}][name]' id='csmb[{$key}][name]' class='optname' size='20' value='{$name}' /></div>";
1838 $r .= "\n\t\t<div class='optcheck'><select name='csmb[{$key}][means]' id='csmb[{$key}][means]'>".$meansoption."</select>\n";
1839 $r .= "<input type='checkbox' name='csmb[{$key}][essential]' id='csmb[{$key}][essential]' value='1'{$essential} /><label for='csmb[{$key}][essential]'>".__('Required','usces')."</label>\n";
1840 $r .= "<select name='csmb[{$key}][position]' id='csmb[{$key}][position]'>".$positionsoption."</select></div>";
1841 $r .= "\n\t\t<div class='submit'><input type='button' name='del_csmb[{$key}]' id='del_csmb[{$key}]' value='".esc_attr(__( 'Delete' ))."' onclick='customField.delMember(\"{$key}\");' />";
1842 $r .= "\n\t\t<input type='button' name='upd_csmb[{$key}]' id='upd_csmb[{$key}]' value='".esc_attr(__( 'Update' ))."' onclick='customField.updMember(\"{$key}\");' /></div>";
1843 $r .= "\n\t\t<div id='csmb_loading-{$key}' class='meta_submit_loading'></div>";
1844 $r .= "</td>";
1845 $r .= "\n\t\t<td class='item-opt-value'><textarea name='csmb[{$key}][value]' id='csmb[{$key}][value]' class='optvalue'>{$value}</textarea></td>\n\t</tr>";
1846 return $r;
1847 }
1848 //20100818ysk end
1849
1850 function change_states_ajax(){
1851 global $usces, $usces_states;
1852 $_POST = $usces->stripslashes_deep_post($_POST);
1853
1854 $c = $_POST['country'];
1855 $res = '';
1856 //20110331ysk start
1857 /* if( !isset($usces_states[$c]) || empty($usces_states[$c]) )
1858 die('error');
1859
1860 foreach( (array)$usces_states[$c] as $state ){
1861 $res .= '<option value="' . $state . '">' . $state . '</option>';
1862 }*/
1863 $prefs = get_usces_states($c);
1864 if(is_array($prefs) and 0 < count($prefs)) {
1865 foreach((array)$prefs as $state) {
1866 $res .= '<option value="' . $state . '">' . $state . '</option>';
1867 }
1868 } else {
1869 die('error');
1870 }
1871 //20110331ysk end
1872 die($res);
1873 }
1874
1875 //20110331ysk start
1876 function get_usces_states($country) {
1877 global $usces, $usces_states;
1878
1879 $states = array();
1880 $prefs = maybe_unserialize($usces->options['province']);
1881 if( !isset($prefs[$country]) || empty($prefs[$country]) ) {
1882 if($country == $usces->options['system']['base_country']) {
1883 foreach((array)$prefs as $state) {
1884 if(!is_array($state))
1885 array_push($states, $state);
1886 }
1887 if(count($states) == 0) {
1888 if( !empty($usces_states[$country]) ) {
1889 $prefs = $usces_states[$country];
1890 if(is_array($prefs)) {
1891 $states = $prefs;
1892 }
1893 }
1894 }
1895 } else {
1896 if( !empty($usces_states[$country]) ) {
1897 $prefs = $usces_states[$country];
1898 if(is_array($prefs)) {
1899 $states = $prefs;
1900 }
1901 }
1902 }
1903 } else {
1904 $states = $prefs[$country];
1905 }
1906 return $states;
1907 }
1908
1909 function target_market_ajax() {
1910 global $usces;
1911 $_POST = $usces->stripslashes_deep_post($_POST);
1912 $res = "";
1913 $target = explode(",", $_POST['target']);
1914 foreach((array)$target as $country) {
1915 $prefs = get_usces_states($country);
1916 if(is_array($prefs) and 0 < count($prefs)) {
1917 $pos = strpos($prefs[0], '--');
1918 if($pos !== false) array_shift($prefs);
1919 $res .= $country.",";
1920 foreach((array)$prefs as $state) {
1921 $res .= $state."\n";
1922 }
1923 $res = rtrim($res, "\n")."#usces#";
1924 //20110430ysk start
1925 } else {
1926 $res .= $country.",#usces#";
1927 //20110430ysk end
1928 }
1929 }
1930 $res = rtrim($res, "#usces#");
1931 die($res);
1932 }
1933 //20110331ysk end
1934 //20120309ysk start 0000430
1935 function usces_admin_ajax() {
1936 switch($_POST['mode']) {
1937 case 'options_backup':
1938 $options = get_option('usces');
1939 $res = true;
1940 if( is_array($options) ) {
1941 $usces_backup_date = current_time('mysql');
1942 update_option('usces_backup', $options);
1943 update_option('usces_backup_date', $usces_backup_date);
1944 $res = $usces_backup_date;
1945 } else {
1946 $res = false;
1947 }
1948 die($res);
1949 break;
1950 case 'options_restore':
1951 $options = get_option('usces_backup');
1952 $res = true;
1953 if( is_array($options) ) {
1954 update_option('usces', $options);
1955 } else {
1956 $res = false;
1957 }
1958 die($res);
1959 break;
1960 }
1961 do_action('usces_action_admin_ajax');
1962 }
1963 //20120309ysk end
1964 function usces_order_recalculation( $order_id, $mem_id, $post_ids, $skus, $prices, $quants, $use_point, $shipping_charge, $cod_fee ) {
1965 global $usces;
1966
1967 $res = 'ok';
1968 if( !empty($order_id) ) {
1969 $data = $usces->get_order_data( $order_id, 'direct' );
1970 $condition = unserialize( $data['order_condition'] );
1971 } else {
1972 $condition = $usces->get_condition();
1973 }
1974 //usces_log('condition : '.print_r($condition,true), 'acting_transaction.log');
1975
1976 $post_id = explode("#usces#", $post_ids);
1977 $sku = explode("#usces#", $skus);
1978 $price = explode("#usces#", $prices);
1979 $quant = explode("#usces#", $quants);
1980 $cart = array();
1981 for( $i = 0; $i < count($post_id); $i++ ) {
1982 if( $post_id[$i] )
1983 $cart[] = array( "post_id"=>$post_id[$i], "sku"=>$sku[$i], "price"=>$price[$i], "quantity"=>$quant[$i] );
1984 }
1985
1986 $total_items_price = 0;
1987 foreach( $cart as $cart_row ) {
1988 $total_items_price += $cart_row['price'] * $cart_row['quantity'];
1989 }
1990 $meminfo = $usces->get_member_info( $mem_id );
1991
1992 $discount = 0;
1993 if( $condition['display_mode'] == 'Promotionsale' ) {
1994 if( $condition['campaign_privilege'] == 'discount' ) {
1995 if ( 0 === (int)$condition['campaign_category'] ) {
1996 $discount = $total_items_price * $condition['privilege_discount'] / 100;
1997 } else {
1998 foreach( $cart as $cart_row ) {
1999 if( in_category( (int)$condition['campaign_category'], $cart_row['post_id']) ) {
2000 $discount += $cart_row['price'] * $cart_row['quantity'] * $condition['privilege_discount'] / 100;
2001 }
2002 }
2003 }
2004 }
2005 }
2006 if( 0 < $discount ) $discount = ceil($discount * -1);
2007
2008 $point = 0;
2009 if( 'activate' == $usces->options['membersystem_state'] && 'activate' == $usces->options['membersystem_point'] && !empty($meminfo['ID']) ) {
2010 if( $condition['display_mode'] == 'Promotionsale' ) {
2011 if( $condition['campaign_privilege'] == 'discount' ) {
2012 foreach( $cart as $cart_row ) {
2013 $cats = $usces->get_post_term_ids( $cart_row['post_id'], 'category' );
2014 if( !in_array( $condition['campaign_category'], $cats ) ) {
2015 $rate = get_post_meta( $cart_row['post_id'], '_itemPointrate', true );
2016 $price = $cart_row['price'] * $cart_row['quantity'];
2017 $point += $price * $rate / 100;
2018 }
2019 }
2020 } elseif( $condition['campaign_privilege'] == 'point' ) {
2021 foreach( $cart as $cart_row ) {
2022 $rate = get_post_meta( $cart_row['post_id'], '_itemPointrate', true );
2023 $price = $cart_row['price'] * $cart_row['quantity'];
2024 $cats = $usces->get_post_term_ids( $cart_row['post_id'], 'category' );
2025 if( in_array( $condition['campaign_category'], $cats ) ) {
2026 $point += $price * $rate / 100 * $condition['privilege_point'];
2027 } else {
2028 $point += $price * $rate / 100;
2029 }
2030 }
2031 }
2032 } else {
2033 foreach( $cart as $cart_row ) {
2034 $rate = get_post_meta( $cart_row['post_id'], '_itemPointrate', true );
2035 $price = $cart_row['price'] * $cart_row['quantity'];
2036 $point += $price * $rate / 100;
2037 }
2038 }
2039 }
2040
2041 if( 0 < $point ) $point = ceil($point);
2042 //20130425ysk start 0000699
2043 if( 0 < $use_point ) {
2044 $point = ceil( $point - ( $point * $use_point / $total_items_price ) );
2045 if( 0 > $point )
2046 $point = 0;
2047 }
2048 //20130425ysk end
2049 $point = apply_filters( 'usces_filter_set_point_recalculation', $point, $condition, $cart, $meminfo, $use_point );
2050 $total_price = $total_items_price - $use_point + $discount + $shipping_charge + $cod_fee;
2051 $total_price = apply_filters('usces_filter_set_cart_fees_total_price', $total_price, $total_items_price, $use_point, $discount, $shipping_charge, $cod_fee);
2052 $tax = $usces->getTax( $total_price );
2053 $total_full_price = $total_price + $tax;
2054 $total_full_price = apply_filters('usces_filter_set_cart_fees_total_full_price', $total_full_price, $total_items_price, $use_point, $discount, $shipping_charge, $cod_fee);
2055
2056 return $res."#usces#".$discount."#usces#".usces_crform( $tax, false, false, 'return', false )."#usces#".$point."#usces#".usces_crform( $total_full_price, false, false, 'return', false );
2057 }
2058 ?>
2059