PluginProbe
Welcart e-Commerce / 1.4.10
Welcart e-Commerce v1.4.10
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 / filters.php

filters.php in Welcart e-Commerce 1.4.10, at functions/filters.php

654 lines 18.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 function usces_filter_get_post_metadata( $null, $object_id, $meta_key, $single){
4 global $wpdb;
5 $query = $wpdb->prepare("SELECT meta_value FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_key = %s", $object_id, $meta_key);
6 $metas = $wpdb->get_col($query);
7 if ( !empty($metas) ) {
8 return array_map('maybe_unserialize', $metas);
9 }
10
11 if ($single)
12 return '';
13 else
14 return array();
15 }
16
17 function usces_action_reg_orderdata( $args ){
18 global $wpdb, $usces;
19 $options = get_option('usces');
20 extract($args);
21
22 /* Register decorated order id ***************************************************/
23 $olimit = 0;
24 if( ! $options['system']['dec_orderID_flag'] ){
25 $dec_order_id = str_pad($order_id, $options['system']['dec_orderID_digit'], "0", STR_PAD_LEFT);
26 }else{
27 $otable = $wpdb->prefix . 'usces_order_meta';
28 while( $ukey = usces_get_key( $options['system']['dec_orderID_digit'] ) ){
29 $ores = $wpdb->get_var($wpdb->prepare("SELECT meta_key FROM $otable WHERE meta_key = %s AND meta_value = %s LIMIT 1", 'dec_order_id', $ukey));
30 if( !$ores || 100 < $olimit )
31 break;
32 $olimit++;
33 }
34 $dec_order_id = $ukey;
35 }
36 $dec_order_id = apply_filters( 'usces_filter_dec_order_id_prefix', $options['system']['dec_orderID_prefix'], $args ) . apply_filters( 'usces_filter_dec_order_id', $dec_order_id, $args );
37
38 if( 100 < $olimit ){
39 $usces->set_order_meta_value('dec_order_id', uniqid(), $order_id);
40 }else{
41 $usces->set_order_meta_value('dec_order_id', $dec_order_id, $order_id);
42 }
43 unset($dec_order_id, $otable, $olimit, $ukey, $ores);
44 /***********************************************************************************/
45 }
46
47 function usces_action_reg_orderdata_stocks($args){
48 global $usces;
49 extract($args);
50
51 foreach($cart as $cartrow){
52 $sku = urldecode($cartrow['sku']);
53 $zaikonum = $usces->getItemZaikoNum( $cartrow['post_id'], $sku );
54 if($zaikonum == '') continue;
55 $zaikonum = $zaikonum - $cartrow['quantity'];
56 $usces->updateItemZaikoNum( $cartrow['post_id'], $sku, $zaikonum );
57 if($zaikonum <= 0) $usces->updateItemZaiko( $cartrow['post_id'], $sku, 2 );
58 }
59 }
60
61 function usces_action_ogp_meta(){
62 global $usces, $post;
63 if( empty($post) || !$usces->is_item($post) || !is_single() )
64 return;
65
66 $item = $usces->get_item( $post->ID );
67 $pictid = $usces->get_mainpictid($item['itemCode']);
68 $image_info = wp_get_attachment_image_src( $pictid, 'thumbnail' );
69
70 $ogs['title'] = $item['itemName'];
71 $ogs['type'] = 'product';
72 $ogs['description'] = strip_tags( get_the_title($post->ID) );
73 $ogs['url'] = get_permalink($post->ID);
74 $ogs['image'] = $image_info[0];
75 $ogs['site_name'] = get_option('blogname');
76 $ogs = apply_filters( 'usces_filter_ogp_meta', $ogs, $post->ID );
77
78 foreach( $ogs as $key => $value ){
79 echo "\n" . '<meta property="og:' . $key . '" content="' . $value . '">';
80 }
81
82 }
83
84 function wc_purchase_nonce($html, $payments, $acting_flag, $rand, $purchase_disabled){
85 if( strpos($html, 'wc_nonce') || !in_array( $payments['settlement'], array('COD', 'installment', 'transferAdvance', 'transferDeferred', 'acting_zeus_card')) )
86 return $html;
87 $wc_nonce = wp_create_nonce('wc_purchase_nonce');
88 $html .= wp_nonce_field( 'wc_purchase_nonce', 'wc_nonce', false, false )."\n";
89 return $html;
90 }
91
92 function wc_purchase_nonce_check(){
93 global $usces;
94 $entry = $usces->cart->get_entry();
95 if( !isset($entry['order']['payment_name']) || empty($entry['order']['payment_name']) ){
96 wp_redirect( home_url() );
97 exit;
98 }
99
100 $payments = usces_get_payments_by_name($entry['order']['payment_name']);
101 if( !in_array( $payments['settlement'], array('COD', 'installment', 'transferAdvance', 'transferDeferred' )) )
102 return true;
103
104 $nonce = isset($_REQUEST['wc_nonce']) ? $_REQUEST['wc_nonce'] : '';
105 if( wp_verify_nonce($nonce, 'wc_purchase_nonce') )
106 return true;
107
108 wp_redirect( home_url() );
109 exit;
110 }
111
112 function wc_mkdir(){
113 global $usces;
114 if( is_admin() && !WCUtils::is_blank($usces->options['logs_path']) && false !== strpos($_SERVER['SERVER_SOFTWARE'],'Apache')){
115 $welcart_file_dir = $usces->options['logs_path'] . '/welcart';
116 $logs_dir = $welcart_file_dir . '/logs';
117 if( !file_exists($welcart_file_dir) ){
118 $res = @mkdir($welcart_file_dir, 0700);
119 if(!$res){
120 $msg = '<div class="error"><p>下記のディレクトリーを、所有�
121 ' . get_current_user() . '、パーミッション:700 で作成してください。 <br />' . $welcart_file_dir . '</p></div>';
122 add_action('admin_notices', $c = create_function('', 'echo "' . addcslashes($msg,'"') . '";'));
123 }
124 }
125 $stat = stat($welcart_file_dir);
126 print_r($stat);
127 die();
128 if( is_writable($welcart_file_dir) ){
129 $res = @mkdir($logs_dir, 0700);
130 if(!$res){
131 $msg = '<div class="error"><p>下記のディレクトリーを、所有�
132 :' . get_current_user() . '、パーミッション:700 で作成してください。 <br />' . $welcart_file_dir . '</p></div>';
133 add_action('admin_notices', $c = create_function('', 'echo "' . addcslashes($msg,'"') . '";'));
134 }
135 }
136 }
137 }
138
139 function usces_reg_ordercartdata( $args ){
140 global $usces, $wpdb;
141 /*
142 $args = array(
143 'cart'=>$cart, 'entry'=>$entry, 'order_id'=>$order_id, 'member_id'=>$member['ID'],
144 'payments'=>$set, 'charging_type'=>$charging_type);
145 */
146 extract($args);
147
148 if( !$order_id )
149 return;
150
151 $cart_table = $wpdb->prefix . "usces_ordercart";
152 $cart_meta_table = $wpdb->prefix . "usces_ordercart_meta";
153 foreach( $cart as $row_index => $value ){
154 $item_code = get_post_meta( $value['post_id'], '_itemCode', true);
155 $item_name = get_post_meta( $value['post_id'], '_itemName', true);
156 $skus = $usces->get_skus($value['post_id'], 'code');
157 $sku_encoded = $value['sku'];
158 $skucode = urldecode($value['sku']);
159 $sku = $skus[$skucode];
160 if( empty($usces->option['tax_rate']) ){
161 $tax = 0;
162
163 }else{
164 $tax = ($value['price'] * $value['quantity']) * $usces->options['tax_rate'] / 100;
165 $cr = $usces->options['system']['currency'];
166 $decimal = $usces_settings['currency'][$cr][1];
167 $decipad = (int)str_pad( '1', $decimal+1, '0', STR_PAD_RIGHT );
168 switch( $usces->options['tax_method'] ){
169 case 'cutting':
170 $tax = floor($tax*$decipad)/$decipad;
171 break;
172 case 'bring':
173 $tax = ceil($tax*$decipad)/$decipad;
174 break;
175 case 'rounding':
176 if( 0 < $decimal ){
177 $tax = round($tax, (int)$decimal);
178 }else{
179 $tax = round($tax);
180 }
181 break;
182 }
183 }
184 $query = $wpdb->prepare("INSERT INTO $cart_table
185 (
186 order_id, row_index, post_id, item_code, item_name,
187 sku_code, sku_name, cprice, price, quantity,
188 unit, tax, destination_id, cart_serial
189 ) VALUES (
190 %d, %d, %d, %s, %s,
191 %s, %s, %f, %f, %d,
192 %s, %d, %d, %s
193 )",
194 $order_id, $row_index, $value['post_id'], $item_code, $item_name,
195 $skucode, $sku['name'], $sku['cprice'], $value['price'], $value['quantity'],
196 $sku['unit'], $tax, NULL, $value['serial']
197 );
198 $wpdb->query($query);
199
200 $cart_id = $wpdb->insert_id ;
201 $opt_fields = usces_get_opts($value['post_id'], 'name');
202 if($value['options']){
203
204 foreach((array)$value['options'] as $okey => $ovalue){
205
206 $okey = urldecode($okey);
207 $means = $opt_fields[$okey]['means'];
208
209 if( 3 == $means ){
210
211 if( '' == $ovalue ) {
212 $ovalue = $ovalue;
213 } else {
214 $ovalue = urldecode($ovalue);
215 }
216
217 }elseif( 4 == $means ){
218
219 if(is_array($ovalue)) {
220
221 $temp = array();
222 foreach( $ovalue as $v ){
223 $temp[] = urldecode($v);
224 }
225 $ovalue = serialize($temp);
226
227 } elseif( '' == $ovalue ) {
228
229 $ovalue = $ovalue;
230
231 } else {
232
233 $ovalue = urldecode($ovalue);
234
235 }
236
237 }else{
238
239 if(is_array($ovalue)) {
240 $temp = array();
241 foreach( $ovalue as $k => $v ){
242 $temp[$k] = urldecode($v);
243 }
244 $ovalue = serialize($temp);
245 } else {
246 $ovalue = urldecode($ovalue);
247 }
248
249 }
250 $oquery = $wpdb->prepare("INSERT INTO $cart_meta_table
251 ( cart_id, meta_type, meta_key, meta_value ) VALUES (%d, %s, %s, %s)",
252 $cart_id, 'option', $okey, $ovalue
253 );
254 $wpdb->query($oquery);
255 }
256 }
257
258 if( $value['advance'] ) {
259 foreach( (array)$value['advance'] as $akey => $avalue ) {
260 $advance = maybe_unserialize( $avalue );
261 if( is_array($advance) ) {
262 $post_id = $value['post_id'];
263 if( is_array( $advance[$post_id][$sku_encoded] ) ) {
264 $akeys = array_keys( $advance[$post_id][$sku_encoded] );
265 foreach( (array)$akeys as $akey ) {
266 $avalue = serialize( $advance[$post_id][$sku_encoded][$akey] );
267 $aquery = $wpdb->prepare("INSERT INTO $cart_meta_table
268 ( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, 'advance', %s, %s )",
269 $cart_id, $akey, $avalue
270 );
271 $wpdb->query( $aquery );
272 }
273 } else {
274 $akeys = array_keys( $advance );
275 $akey = ( empty($akeys[0]) ) ? 'advance' : $akeys[0];
276 $avalue = serialize( $advance );
277 $aquery = $wpdb->prepare("INSERT INTO $cart_meta_table
278 ( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, 'advance', %s, %s )",
279 $cart_id, $akey, $avalue
280 );
281 $wpdb->query( $aquery );
282 }
283 } else {
284 $avalue = urldecode( $avalue );
285 $aquery = $wpdb->prepare("INSERT INTO $cart_meta_table
286 ( cart_id, meta_type, meta_key, meta_value ) VALUES ( %d, 'advance', 'advance', %s )",
287 $cart_id, $avalue
288 );
289 $wpdb->query( $aquery );
290 }
291 }
292 }
293
294 do_action( 'usces_action_reg_ordercart_row', $cart_id, $row_index, $value, $args );
295 }
296 }
297 function fiter_mainTitle($title, $sep){
298 global $usces;
299
300 if( empty($title) ){
301 $newtitle = $title;
302 }else{
303 $title = trim( str_replace( $sep, '', $title ) );
304 switch($usces->page){
305 case 'cart':
306 $newtitle = apply_filters('usces_filter_title_cart', __('In the cart', 'usces'));
307 break;
308
309 case 'customer':
310 $newtitle = apply_filters('usces_filter_title_customer', __('Customer Information', 'usces'));
311 break;
312
313 case 'delivery':
314 $newtitle = apply_filters('usces_filter_title_delivery', __('Shipping / Payment options', 'usces'));
315 break;
316
317 case 'confirm':
318 $newtitle = apply_filters('usces_filter_title_confirm', __('Confirmation', 'usces'));
319 break;
320
321 case 'ordercompletion':
322 $newtitle = apply_filters('usces_filter_title_ordercompletion', __('Order Complete', 'usces'));
323 break;
324
325 case 'error':
326 $newtitle = apply_filters('usces_filter_title_error', __('Error', 'usces')); //new fitler name
327 break;
328
329 case 'search_item':
330 $newtitle = apply_filters('usces_filter_title_search_item', __("'AND' search by categories", 'usces'));
331 break;
332
333 case 'maintenance':
334 $newtitle = apply_filters('usces_filter_title_maintenance', __('Under Maintenance', 'usces'));
335 break;
336
337 case 'login':
338 $newtitle = apply_filters('usces_filter_title_login', __('Log-in for members', 'usces'));
339 break;
340
341 case 'member':
342 $newtitle = apply_filters('usces_filter_title_member', __('Membership information', 'usces'));
343 break;
344
345 case 'newmemberform':
346 $newtitle = apply_filters('usces_filter_title_newmemberform', __('New enrollment form', 'usces'));
347 break;
348
349 case 'newcompletion':
350 $newtitle = apply_filters('usces_filter_title_newcompletion', __('New enrollment complete', 'usces'));//new fitler name
351 break;
352
353 case 'editmemberform':
354 $newtitle = apply_filters('usces_filter_title_editmemberform', __('Member information editing', 'usces'));//new fitler name
355 break;
356
357 case 'editcompletion':
358 $newtitle = apply_filters('usces_filter_title_editcompletion', __('Membership information change is completed', 'usces'));//new fitler name
359 break;
360
361 case 'lostmemberpassword':
362 $newtitle = apply_filters('usces_filter_title_lostmemberpassword', __('The new password acquisition', 'usces'));
363 break;
364
365 case 'lostcompletion':
366 $newtitle = apply_filters('usces_filter_title_lostcompletion', __('New password procedures for obtaining complete', 'usces'));//new fitler name
367 break;
368
369 case 'changepassword':
370 $newtitle = apply_filters('usces_filter_title_changepassword', __('Change password', 'usces'));
371 break;
372
373 case 'changepasscompletion':
374 $newtitle = apply_filters('usces_filter_title_changepasscompletion', __('Password change is completed', 'usces'));
375 break;
376
377 default:
378 $newtitle = apply_filters('usces_filter_title_main_default', $title);//new fitler name
379 }
380 $newtitle = $newtitle .' '.$sep.' ';
381 }
382 return $newtitle;
383 }
384
385 //Univarsal Analytics
386 function usces_Universal_trackPageview(){
387 global $usces;
388
389 switch($usces->page){
390 case 'cart':
391 $push = array();
392 $push[] = "'page' : '/wc_cart'";
393 break;
394
395 case 'customer':
396 $push = array();
397 $push[] = "'page' : '/wc_customer'";
398 break;
399
400 case 'delivery':
401 $push = array();
402 $push[] = "'page' : '/wc_delivery'";
403 break;
404
405 case 'confirm':
406 $push = array();
407 $push[] = "'page' : '/wc_confirm'";
408 break;
409
410 case 'ordercompletion':
411 $sesdata = $usces->cart->get_entry();
412 $order_id = $sesdata['order']['ID'];
413 $data = $usces->get_order_data($order_id, 'direct');
414 $cart = unserialize($data['order_cart']);
415 $total_price = $usces->get_total_price( $cart ) + $data['order_discount'] - $data['order_usedpoint'];
416 $push =array();
417 $push[] = "'page' : '/wc_ordercompletion'";
418 $push[] = "'require', 'ecommerce', 'ecommerce.js'";
419 $push[] = "'ecommerce:addTransaction', {
420 id: '". $order_id ."',
421 affiliation: '". get_option('blogname') ."',
422 revenue: '". $total_price ."',
423 shipping: '". $data['order_shipping_charge'] ."',
424 tax: '". $data['order_tax'] ."' }";
425 for( $i=0; $i<count($cart); $i++ ){
426 $cart_row = $cart[$i];
427 $post_id = $cart_row['post_id'];
428 $sku = urldecode($cart_row['sku']);
429 $quantity = $cart_row['quantity'];
430 $itemName = $usces->getItemName($post_id);
431 $skuPrice = $cart_row['price'];
432 $cats = $usces->get_item_cat_genre_ids( $post_id );
433 if( is_array($cats) )
434 sort($cats);
435 $category = ( isset($cats[0]) ) ? get_cat_name($cats[0]): '';
436
437 $push[] = "'ecommerce:addItem', {
438 id: '". $order_id ."',
439 sku: '". $sku ."',
440 name: '". $itemName."',
441 category: '". $category."',
442 price: '". $skuPrice."',
443 quantity: '". $quantity."' }";
444 }
445 $push[] = "'ecommerce:send'";
446 break;
447
448 case 'error':
449 $push = array();
450 $push[] = "'page' : '/wc_error'";
451 break;
452
453 case 'search_item':
454 $push = array();
455 $push[] = "'page' : '/wc_search_item'";
456 break;
457
458 case 'maintenance':
459 $push = array();
460 $push[] = "'page' : '/wc_maintenance'";
461 break;
462
463 case 'login':
464 $push = array();
465 $push[] = "'page' : '/wc_login'";
466 break;
467
468 case 'member':
469 $push = array();
470 $push[] = "'page' : '/wc_member'";
471 break;
472
473 case 'newmemberform':
474 $push = array();
475 $push[] = "'page' : '/wc_newmemberform'";
476 break;
477
478 case 'newcompletion':
479 $push = array();
480 $push[] = "'page' : '/wc_newcompletion'";
481 break;
482
483 case 'editmemberform':
484 $push = array();
485 $push[] = "'page' : '/wc_editmemberform'";
486 break;
487
488 case 'editcompletion':
489 $push = array();
490 $push[] = "'page' : '/wc_editcompletion'";
491 break;
492
493 case 'lostmemberpassword':
494 $push = array();
495 $push[] = "'page' : '/wc_lostmemberpassword'";
496 break;
497
498 case 'lostcompletion':
499 $push = array();
500 $push[] = "'page' : '/wc_lostcompletion'";
501 break;
502
503 case 'changepassword':
504 $push = array();
505 $push[] = "'page' : '/wc_changepassword'";
506 break;
507
508 case 'changepasscompletion':
509 $push = array();
510 $push[] = "'page' : '/wc_changepasscompletion'";
511 break;
512
513 default:
514 $push = array();
515 break;
516 }
517 return $push;
518 }
519
520 //Classic Analytics
521 function usces_Classic_trackPageview(){
522 global $usces;
523
524 switch($usces->page){
525 case 'cart':
526 $push = array();
527 $push = usces_trackPageview_cart($push);
528 break;
529
530 case 'customer':
531 $push = array();
532 $push = usces_trackPageview_customer($push);
533 break;
534
535 case 'delivery':
536 $push = array();
537 $push = usces_trackPageview_delivery($push);
538 break;
539
540 case 'confirm':
541 $push = array();
542 $push = usces_trackPageview_confirm($push);
543 break;
544
545 case 'ordercompletion':
546 $push =array();
547 $push = usces_trackPageview_ordercompletion($push);
548 break;
549
550 case 'error':
551 $push = array();
552 $push = usces_trackPageview_error($push);
553 break;
554
555 case 'login':
556 $push = array();
557 $push = usces_trackPageview_login($push);
558 break;
559
560 case 'member':
561 $push = array();
562 $push = usces_trackPageview_member($push);
563 break;
564
565 case 'newmemberform':
566 $push = array();
567 $push = usces_trackPageview_newmemberform($push);
568 break;
569
570 case 'newcompletion':
571 $push = array();
572 $push = usces_trackPageview_newcompletion($push);
573 break;
574
575 case 'editmemberform':
576 $push = array();
577 $push = usces_trackPageview_editmemberform($push);
578 break;
579
580 case 'search_item':
581 $push = array();
582 $push = usces_trackPageview_search_item($push);
583 break;
584
585 case 'maintenance':
586 case 'editcompletion':
587 case 'lostmemberpassword':
588 case 'lostcompletion':
589 case 'changepassword':
590 case 'changepasscompletion':
591 default:
592 $push = array();
593 break;
594 }
595 return $push;
596 }
597
598 function usces_use_point_nonce(){
599 wp_nonce_field( 'use_point', 'wc_nonce');
600 }
601
602 function usces_post_member_nonce(){
603 wp_nonce_field( 'post_member', 'wc_nonce');
604 }
605
606 function usces_order_memo_form_detail_top( $data, $csod_meta ){
607 global $usces;
608
609 $order_memo = '';
610 if( !empty($data['ID']) ){
611 $order_memo = $usces->get_order_meta_value('order_memo', $data['ID']);
612 }
613 $res = '<tr>
614 <td class="label border">'. __('Administrator Note', 'usces') .'</td>
615 <td colspan="5" class="col1 border memo">
616 <textarea name="order_memo" class="order_memo">'.esc_html($order_memo).'</textarea>
617 </td>
618 </tr>';
619 echo $res;
620 }
621
622 function usces_update_order_memo($new_orderdata){
623 global $usces;
624
625 $usces->set_order_meta_value('order_memo', $_POST['order_memo'], $new_orderdata->ID);
626 }
627
628 function usces_action_lostmail_inform(){
629 $mem_mail = urldecode($_REQUEST['mem']);
630 $lostkey = urldecode($_REQUEST['key']);
631 $html = '
632 <input type="hidden" name="lostmail" value="' . esc_attr($mem_mail) . '" />
633 <input type="hidden" name="lostkey" value="' . esc_attr($lostkey) . '" />' . "\n";
634 echo $html;
635 }
636 function usces_filter_lostmail_inform($html){
637 $mem_mail = urldecode($_REQUEST['mem']);
638 $lostkey = urldecode($_REQUEST['key']);
639 $html .= '
640 <input type="hidden" name="lostmail" value="' . esc_attr($mem_mail) . '" />
641 <input type="hidden" name="lostkey" value="' . esc_attr($lostkey) . '" />' . "\n";
642 return $html;
643 }
644
645 function usces_admin_enqueue_scripts( $hook_suffix ){
646 if( false !== strpos($hook_suffix, 'usc-e-shop')
647 || false !== strpos($hook_suffix, 'welcart')
648 || false !== strpos($hook_suffix, 'usces')
649 ){
650 $style_jqueryuiUrl = USCES_FRONT_PLUGIN_URL.'/css/jquery/jquery-ui-1.10.3.custom.min.css';
651 wp_enqueue_style( 'jquery-ui-welcart', $style_jqueryuiUrl, array(), '1.10.3', 'all' );
652 }
653
654 }