get_row( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE meta_id = %d", $meta_id), ARRAY_A); return $res; } function usces_get_post_meta( $post_id, $key ) { global $wpdb; $res = $wpdb->get_results( $wpdb->prepare("SELECT * FROM $wpdb->postmeta WHERE post_id = %d AND meta_key = %s", $post_id, $key), ARRAY_A); return $res; } function usces_sort_post_meta( $post_id, $metastr ) { global $wpdb; $meta_ids = explode(',', $metastr); if( !empty($meta_ids) ){ $i = 0; foreach( $meta_ids as $meta_id ){ $rows = usces_get_post_meta_by_metaid( $meta_id ); $values = unserialize($rows['meta_value']); $values['sort'] = $i; $serialized_values = serialize($values); $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $rows['meta_id']) ); $i++; } } return; } /** * item option */ //function has_item_option_meta( $postid ) { function usces_get_opts( $post_id, $keyflag = 'sort' ) { $opts = array(); $metas = usces_get_post_meta($post_id, '_iopt_'); if( empty($metas) ) return $opts; foreach( $metas as $rows ){ $values = unserialize($rows['meta_value']); $key = isset($values[$keyflag]) ? $values[$keyflag] : $values['sort']; $opts[$key] = array( 'meta_id' => $rows['meta_id'], 'name' => $values['name'], 'means' => $values['means'], 'essential' => $values['essential'], 'value' => $values['value'], 'sort' => $values['sort'] ); } ksort($opts); return $opts; } function usces_add_opt( $post_id, $newvalue, $check = true ) { global $wpdb, $usces; if( $check ){ $metas = usces_get_post_meta($post_id, '_iopt_'); if( !empty($metas) ){ $meta_num = count($metas); $unique = true; $sortnull = true; foreach( $metas as $meta ){ $values = unserialize($meta['meta_value']); if( $values['name'] == $newvalue['name'] ) $unique = false; if( !isset($values['sort']) ) $sortnull = false; $sort[] = $values['sort']; } if( !$unique ) return -1; rsort($sort); $next_number = reset($sort) + 1; $unique_sort = array_unique($sort); if( $meta_num !== count($unique_sort) || $meta_num !== $next_number || !$sortnull){ //To repair the sort data $i = 0; foreach( $metas as $rows ){ $values = unserialize($rows['meta_value']); $values['sort'] = $i; $serialized_values = serialize($values); $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $rows['meta_id']) ); $i++; } } } $newvalue['sort'] = !empty($meta_num) ? $meta_num : 0; } $serialized_newvalue = serialize($newvalue); $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value ) VALUES (%d, '_iopt_', %s)", $post_id, $serialized_newvalue) ); $id = $wpdb->insert_id; return $id; } /** * item sku */ function usces_add_sku( $post_id, $newvalue, $check = true ) { global $wpdb, $usces; if( $check ){ $metas = usces_get_post_meta($post_id, '_isku_'); if( !empty($metas) ){ $meta_num = count($metas); $unique = true; $sortnull = true; foreach( $metas as $rows ){ $values = unserialize($rows['meta_value']); if( $values['code'] == $newvalue['code'] ) $unique = false; if( !isset($values['sort']) ) $sortnull = false; $sort[] = $values['sort']; } if( !$unique ) return -1; rsort($sort); $next_number = $sort[0] + 1; $unique_sort = array_unique($sort); if( $meta_num != count($unique_sort) || $meta_num != $next_number || !$sortnull){ //To repair the sort data $i = 0; foreach( $metas as $rows ){ $values = unserialize($rows['meta_value']); $values['sort'] = $i; $serialized_values = serialize($values); $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $rows['meta_id']) ); $i++; } } } $newvalue['sort'] = !empty($meta_num) ? $meta_num : 0; } $newvalue = $usces->stripslashes_deep_post($newvalue); $serialized_newvalue = serialize($newvalue); $wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value ) VALUES (%d, '_isku_', %s)", $post_id, $serialized_newvalue) ); $id = $wpdb->insert_id; return $id; } /** * list_item_option */ function list_item_option_meta( $opts ) { // Exit if no meta if ( ! $opts ) { ?>
 
 '; echo apply_filters('usces_filter_sku_meta_form_advance_title', $advance_title); ?>
  () ()
$meanvalue){ if($meankey == $opt['means']) { $selected = ' selected="selected"'; }else{ $selected = ''; } $meansoption .= '\n"; } $essential = $opt['essential'] == 1 ? " checked='checked'" : ""; $value = ''; if(is_array($opt['value'])){ foreach($opt['value'] as $k => $v){ $value .= $v . "\n"; } }else{ //$value = esc_attr(trim($opt['value'])); $value = $opt['value']; } $value = trim($value); $id = (int) $opt['meta_id']; $sort = (int) $opt['sort']; ob_start(); ?>
 
' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemOpt.post('deleteitemopt', );" /> ' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemOpt.post('updateitemopt', );" />
 "; echo apply_filters('usces_filter_sku_meta_row_advance', $default_field, $sku); ?>
'> 
' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemSku.post('deleteitemsku', );" /> ' onclick="if( jQuery('#post_ID').val() < 0 ) return; itemSku.post('updateitemsku', );" />
$meanvalue){ $meansoption .= '\n"; } ?>

:

$meanvalue){ $meansoption .= '\n"; } ?>

:

:

 '; echo apply_filters('usces_filter_sku_meta_form_advance_title', $advance_title); ?>  '; echo apply_filters('usces_filter_sku_meta_form_advance_field', $advance_field ); ?>
() ()
 
= 2 || WCUtils::is_zero($newoptvalue) || !empty ( $newoptvalue )) && !empty ( $newoptname) ) { if ( $newoptname ) $metakey = $newoptname; // default if ( in_array($metakey, $protected) ) return false; wp_cache_delete($post_ID, 'post_meta'); $value['name'] = str_replace("\\",'',$newoptname); $value['means'] = $newoptmeans; $value['essential'] = $newoptessential; $value['value'] = str_replace("\\",'',$newoptvalue); $value = $usces->stripslashes_deep_post($value); $id = usces_add_opt($post_ID, $value); return $id; } return false; } // add_meta /** * add_item_sku_meta */ function add_item_sku_meta( $post_ID ) { global $usces; $post_ID = (int) $post_ID; $value = array(); $skus = array(); $protected = array( '_wp_attached_file', '_wp_attachment_metadata', '_wp_old_slug', '_wp_page_template' ); $newskuname = isset($_POST['newskuname']) ? trim( $_POST['newskuname'] ) : ''; $newskucprice = isset($_POST['newskucprice']) ? $_POST['newskucprice']: ''; $newskuprice = isset($_POST['newskuprice']) ? $_POST['newskuprice']: ''; $newskuzaikonum = isset($_POST['newskuzaikonum']) ? $_POST['newskuzaikonum']: ''; $newskuzaikoselect = isset($_POST['newskuzaikoselect']) ? $_POST['newskuzaikoselect'] : ''; $newskudisp = isset($_POST['newskudisp']) ? trim( $_POST['newskudisp'] ) : ''; $newskuunit = isset($_POST['newskuunit']) ? trim( $_POST['newskuunit'] ) : ''; $newskugptekiyo = isset($_POST['newskugptekiyo']) ? $_POST['newskugptekiyo'] : ''; if ( !WCUtils::is_blank($newskuname) && !WCUtils::is_blank($newskuprice) && !WCUtils::is_blank($newskuzaikoselect) ) { if ( in_array($newskuname, $protected) ) return false; wp_cache_delete($post_ID, 'post_meta'); $value['code'] = $newskuname; $value['name'] = $newskudisp; $value['cprice'] = $newskucprice; $value['price'] = $newskuprice; $value['unit'] = $newskuunit; $value['stocknum'] = $newskuzaikonum; $value['stock'] = $newskuzaikoselect; $value['gp'] = $newskugptekiyo; $value = apply_filters('usces_filter_add_item_sku_meta_value', $value); $id = usces_add_sku($post_ID, $value); return $id; } return false; } // add_meta /** * up_item_option_meta */ function up_item_option_meta( $post_ID ) { global $wpdb, $usces; $post_ID = (int) $post_ID; $value = array(); $optmetaid = isset($_POST['optmetaid']) ? (int)$_POST['optmetaid'] : ''; $optname = isset($_POST['optname']) ? $_POST['optname'] : ''; $optmeans = isset($_POST['optmeans']) ? (int)$_POST['optmeans']: 0; $optessential = isset($_POST['optessential']) ? $_POST['optessential']: 0; $optsort = isset($_POST['sort']) ? $_POST['sort']: 0; $optvalue = isset($_POST['optvalue']) ? trim($_POST['optvalue']) : ''; $metakey = '_iopt_'; $value['name'] = str_replace("\\",'',$optname); $value['means'] = $optmeans; $value['essential'] = $optessential; $value['value'] = str_replace("\\",'',$optvalue); $value['sort'] = $optsort; $value = $usces->stripslashes_deep_post($value); $valueserialized = serialize($value); wp_cache_delete($post_ID, 'post_meta'); $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $optmetaid) ); return $res; } // update_meta /** * up_item_sku_meta */ function up_item_sku_meta( $post_ID ) { global $wpdb, $usces; $post_ID = (int) $post_ID; $value = array(); $skuname = isset($_POST['skuname']) ? trim( $_POST['skuname'] ) : ''; $skumetaid = isset($_POST['skumetaid']) ? (int)$_POST['skumetaid'] : ''; $skucprice = isset($_POST['skucprice']) ? trim( $_POST['skucprice'] ): 0; $skuprice = isset($_POST['skuprice']) ? trim( $_POST['skuprice'] ): 0; $skuzaikonum = isset($_POST['skuzaikonum']) ? trim( $_POST['skuzaikonum'] ): 0; $skuzaiko = isset($_POST['skuzaiko']) ? (int)$_POST['skuzaiko'] : ''; $skudisp = isset($_POST['skudisp']) ? trim( $_POST['skudisp'] ): ''; $skuunit = isset($_POST['skuunit']) ? trim( $_POST['skuunit'] ): ''; $skugptekiyo = isset($_POST['skugptekiyo']) ? (int)$_POST['skugptekiyo'] : 0; $skusort = isset($_POST['sort']) ? $_POST['sort']: 0; $value['code'] = $skuname; $value['name'] = $skudisp; $value['cprice'] = $skucprice; $value['price'] = $skuprice; $value['unit'] = $skuunit; $value['stocknum'] = $skuzaikonum; $value['stock'] = $skuzaiko; $value['gp'] = $skugptekiyo; $value['sort'] = $skusort; $value = $usces->stripslashes_deep_post($value); $skus = $usces->get_skus($post_ID); foreach( $skus as $sku ){ if( $sku['code'] == $skuname && $sku['meta_id'] != $skumetaid){ return -1; break; } } $value = apply_filters('usces_filter_up_item_sku_meta_value', $value); $valueserialized = serialize($value); if ( !WCUtils::is_blank($skumetaid) && !WCUtils::is_blank($skuname) && !WCUtils::is_blank($skuprice) ) { wp_cache_delete($post_ID, 'post_meta'); $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $skumetaid) ); return $res; } return false; } // update_meta /** * del_item_option_meta */ function del_item_option_meta( $post_ID ) { global $wpdb; $post_ID = (int) $post_ID; $optmetaid = isset($_POST['optmetaid']) ? (int)$_POST['optmetaid'] : ''; wp_cache_delete($post_ID, 'post_meta'); $res = $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id = %d", $optmetaid) ); $opts = usces_get_opts($post_ID); if( !empty($opts) ){ $i = 0; foreach( $opts as $opt ){ $opt['sort'] = $i; $meta_id = $opt['meta_id']; unset($opt['meta_id']); $serialized_values = serialize($opt); $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $meta_id) ); $i++; } } return ; } // delete_meta /** * del_item_sku_meta */ function del_item_sku_meta( $post_ID ) { global $wpdb, $usces; $post_ID = (int) $post_ID; $skumetaid = isset($_POST['skumetaid']) ? (int)$_POST['skumetaid'] : ''; wp_cache_delete($post_ID, 'post_meta'); $res = $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->postmeta WHERE meta_id = %d", $skumetaid) ); $skus = $usces->get_skus($post_ID); if( !empty($skus) ){ $i = 0; foreach( $skus as $sku ){ $sku['sort'] = $i; $meta_id = $sku['meta_id']; unset($sku['meta_id']); $serialized_values = serialize($sku); $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $serialized_values, $meta_id) ); $i++; } } return ; } // delete_meta function select_common_option( $post_ID ) { global $wpdb; $meta_id = isset($_POST['meta_id']) ? $_POST['meta_id'] : ''; if(!$meta_id) return ; $meta_value = $wpdb->get_var( $wpdb->prepare("SELECT meta_value FROM $wpdb->postmeta WHERE meta_id = %d ", $meta_id) ); $array_val = unserialize( $meta_value ); $means = $array_val['means']; $essential = $array_val['essential']; $value = $array_val['value']; $res = $means . '#usces#' . $essential . '#usces#' . $value; return $res; } // select_common_option function order_item2cart_ajax(){ global $usces; if( $_POST['action'] != 'order_item2cart_ajax' ) die(0); $_POST = $usces->stripslashes_deep_post($_POST); $res = order_item2cart(); //if( $res === false ) die(0);//20120613ysk 0000500 //REGEX BUG: but it'll return info // Compose JavaScript for return die( $res ); } function order_item_ajax(){ global $usces; if( $_POST['action'] != 'order_item_ajax' ) die(0); $res = false; $_POST = $usces->stripslashes_deep_post($_POST); switch ( $_POST['mode'] ) { case 'completionMail': case 'orderConfirmMail': case 'changeConfirmMail': case 'receiptConfirmMail': case 'mitumoriConfirmMail': case 'cancelConfirmMail': case 'otherConfirmMail': $res = usces_order_confirm_message( $_POST['order_id'] ); break; case 'sendmail': $res = usces_ajax_send_mail(); break; case 'get_order_item': $res = get_order_item( $_POST['itemcode'] ); break; case 'ordercheckpost': $res = usces_update_ordercheck(); break; case 'getmember': $res = usces_get_member_neworder(); break; case 'recalculation': $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'] ); break; } $res = apply_filters( 'usces_filter_order_item_ajax', $res ); if( $res === false ) die(0); //REGEX BUG: but it'll return info // Compose JavaScript for return die( $res ); } /** * order Item html */ function usces_get_member_neworder() { global $wpdb; $wpdb->show_errors(); $res = ''; $member_table = $wpdb->prefix . "usces_member"; $query = $wpdb->prepare("SELECT * FROM $member_table WHERE mem_email = %s", trim($_POST['email'])); $value = $wpdb->get_row( $query, ARRAY_A ); if( !$value ){ die( 'none#usces#1' ); }else{ $res .= 'ok#usces#member_id=' . $value['ID']; $res .= '#usces#customer[name1]=' . $value['mem_name1']; $res .= '#usces#customer[name2]=' . $value['mem_name2']; $res .= '#usces#customer[name3]=' . $value['mem_name3']; $res .= '#usces#customer[name4]=' . $value['mem_name4']; $res .= '#usces#customer[zipcode]=' . $value['mem_zip']; $res .= '#usces#customer[pref]=' . $value['mem_pref']; $res .= '#usces#customer[address1]=' . $value['mem_address1']; $res .= '#usces#customer[address2]=' . $value['mem_address2']; $res .= '#usces#customer[address3]=' . $value['mem_address3']; $res .= '#usces#customer[tel]=' . $value['mem_tel']; $res .= '#usces#customer[fax]=' . $value['mem_fax']; $res .= '#usces#delivery[name1]=' . $value['mem_name1']; $res .= '#usces#delivery[name2]=' . $value['mem_name2']; $res .= '#usces#delivery[name3]=' . $value['mem_name3']; $res .= '#usces#delivery[name4]=' . $value['mem_name4']; $res .= '#usces#delivery[zipcode]=' . $value['mem_zip']; $res .= '#usces#delivery[pref]=' . $value['mem_pref']; $res .= '#usces#delivery[address1]=' . $value['mem_address1']; $res .= '#usces#delivery[address2]=' . $value['mem_address2']; $res .= '#usces#delivery[address3]=' . $value['mem_address3']; $res .= '#usces#delivery[tel]=' . $value['mem_tel']; $res .= '#usces#delivery[fax]=' . $value['mem_fax']; $member_metetable = $wpdb->prefix . "usces_member_meta"; $query = $wpdb->prepare("SELECT * FROM $member_metetable WHERE meta_key LIKE %s AND member_id = %d", 'csmb_%', $value['ID']); $customs = $wpdb->get_results( $query, ARRAY_A ); if( !empty($customs) ){ foreach( $customs as $cusv ){ $res .= '#usces#custom_customer[' . substr($cusv['meta_key'], 5) . ']=' . $cusv['meta_value']; $res .= '#usces#custom_delivery[' . substr($cusv['meta_key'], 5) . ']=' . $cusv['meta_value']; } } //die( urlencode($res) ); } die( $res ); } function order_item2cart() { global $usces; if( $_POST['action'] != 'order_item2cart_ajax' ) die(0); $res = usces_update_ordercart(); //20120613ysk start 0000500 //if( $res === false ) die(0); //if( $res === 0 ) die('nodata'); //die( $res ); return $res; //20120613ysk end } function get_order_item( $item_code ) { global $usces, $post; $post_id = $usces->get_postIDbyCode( $item_code ); if( $post_id == NULL ) return false; $post = get_post($post_id); $pict_id = $usces->get_mainpictid( $item_code ); $pict_link = wp_get_attachment_image($pict_id, array(150, 150), true); preg_match("/^\(\)\<\/a\>$/", $pict_link, $match); $pict = isset($match[1]) ? $match[1] : ''; $skus = $usces->get_skus( $post_id ); $optkeys = $usces->get_itemOptionKey( $post_id ); $itemName = esc_html($usces->getItemName($post_id)); $r = ''; $r .= $pict_link . "\n"; $r .= "

" . $itemName . "

\n"; $r .= "
\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $usces_listprice = __('List price', 'usces') . usces_guid_tax('return'); $r .= "\n"; $usces_sellingprice = __('Sale price','usces') . usces_guid_tax('return'); $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; //for ($i=0; $izaiko_status[$skus['stock'][$i]]); // $zaikonum = esc_attr($skus['stocknum'][$i]); // $disp = esc_attr($skus['name'][$i]); // $unit = esc_attr($skus['unit'][$i]); // $gptekiyo = $skus['gp'][$i]; foreach($skus as $sku) : $key = esc_attr($sku['code']); $cprice = esc_attr($sku['cprice']); $price = esc_attr($sku['price']); $zaiko = esc_attr($usces->zaiko_status[$sku['stock']]); $zaikonum = esc_attr($sku['stocknum']); $disp = esc_attr($sku['name']); $unit = esc_attr($sku['unit']); $gptekiyo = $sku['gp']; $sort = (int)$sku['sort']; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; // $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; if($optkeys) : $r .= "\n"; endif; $r .= "\n"; //endfor; endforeach; $r .= "\n"; $r .= "
" . __('SKU code','usces') . "" . __('SKU display name ','usces') . "" . apply_filters('usces_filter_listprice_label', $usces_listprice, __('List price', 'usces'), usces_guid_tax('return')) . "" . apply_filters('usces_filter_sellingprice_label', $usces_sellingprice, __('Sale price', 'usces'), usces_guid_tax('return')) . "" . __('stock','usces') . "" . __('stock','usces') . "" . __('unit','usces') . " 
" . $key . "" . $disp . "" . ( ( !empty($cprice) ) ? usces_crform( $cprice, true, false, 'return' ) : '' ) . "" . usces_crform( $price, true, false, 'return' ) . "" . $zaiko . "" . $zaikonum . "" . usces_the_itemQuant() . "" . $unit . "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= "\n"; $r .= ""; $r .= "
\n"; foreach($optkeys as $optkey => $optvalue) : $r .= "
\n"; $name = esc_attr($optvalue); $optcode = esc_attr(urlencode($name)); $opts = usces_get_opts($post_id, 'name'); $opt = $opts[$optvalue]; //20110715ysk start 0000202 $means = (int)$opt['means']; $essential = (int)$opt['essential']; $r .= "\n\n"; switch($means) { case 0://Single-select case 1://Multi-select $selects = explode("\n", $opt['value']); $multiple = ($means === 0) ? '' : ' multiple'; $multiple_array = ($means === 0) ? '' : '_multiple'; $r .= "\n\n"; break; case 2://Text $r .= "\n\n"; break; case 5://Text-area $r .= "\n\n"; break; } //20110715ysk end $r .= "\n"; $r .= "\n"; $r .= "
\n"; endforeach; $r .= "
\n"; $r .= "
\n"; return $r; } function item_option_ajax() { if( $_POST['action'] != 'item_option_ajax' ) die(0); if(isset($_POST['update'])){ $id = up_item_option_meta( $_POST['ID'] ); }else if(isset($_POST['delete'])){ $id = del_item_option_meta( $_POST['ID'] ); }else if(isset($_POST['select'])){ $res = select_common_option( $_POST['ID'] ); die( $res ); }else if(isset($_POST['sort'])){ $id = usces_sort_post_meta( $_POST['ID'], $_POST['meta'] ); //die( $res ); }else{ $id = add_item_option_meta( $_POST['ID'] ); } $opts = usces_get_opts( $_POST['ID'] ); $r = ''; foreach ( $opts as $opt ) $r .= _list_item_option_meta_row( $opt ); $res = $r . '#usces#' . $id; //REGEX BUG: but it'll return info // Compose JavaScript for return die( $res ); } function item_sku_ajax(){ global $usces; $id = ''; if( $_POST['action'] != 'item_sku_ajax' ) die(0); if(isset($_POST['update'])){ $id = up_item_sku_meta( $_POST['ID'] ); }else if(isset($_POST['delete'])){ $id = del_item_sku_meta( $_POST['ID'] ); }else if(isset($_POST['select'])){ $res = select_item_sku( $_POST['ID'] ); die( $res ); }else if(isset($_POST['sort'])){ $id = usces_sort_post_meta( $_POST['ID'], $_POST['meta'] ); //die( $res ); }else{ $id = add_item_sku_meta( $_POST['ID'] ); } $skus = $usces->get_skus( $_POST['ID'] ); $r = ''; foreach ( (array)$skus as $sku ) $r .= _list_item_sku_meta_row( $sku ); //$list = has_item_sku_list(); $res = $r . '#usces#' . $id; die( $res ); } function item_save_metadata( $post_id, $post ) { global $usces, $wpdb; $message = ''; // usces_log('item_save_metadata : '.print_r($post_id,true), 'acting_transaction.log'); // usces_log('item_save_metadata : '.print_r($_POST['post_ID'],true), 'acting_transaction.log'); // パーミッションチェック if ( isset($_POST['page']) && 'usces_itemedit' == $_POST['page']) { if ( !current_user_can( 'edit_post', $post_id ) ){ $usces->set_action_status('error', 'ERROR : '.__('Sorry, you do not have the right to edit this post.')); return $post_id; } } else { return $post_id; } if ( !wp_verify_nonce( $_POST['usces_nonce'], 'usc-e-shop' )) { return $post_id; } // $post_id = $_POST['post_ID']; // if( $post_id < 0 ){ // return $post_id; // } // 自動保存ルーチンかどうかチェック。そうだった場合はフォームを送信しない(何もしない) if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; $usces->set_item_mime($post_id, 'item'); $itemCode = trim($_POST['itemCode' ]); if( preg_match('/[^0-9a-zA-Z\-_]/', $itemCode) ){ // $itemCode = ''; // $usces->action_message = '商品コードは半角英数(-_を含む)で入力して下さい。' . "
"; } if( empty($itemCode) ){ $itemCode = ''; $message .= __('商品コードが入力されていません。', 'usces') . "
"; }elseif( $res = usces_is_same_itemcode($post->ID, $itemCode)) { $message .= 'post_ID '; foreach( $res as $postid ) $message .= $postid . ', '; $message .= 'に同じ商品コードが登録されています。' . "
"; $usces->set_action_status('error', 'ERROR : '.$message); } update_post_meta($post_id, '_itemCode', $itemCode); if(isset($_POST['itemName'])){ $itemName = trim($_POST['itemName']); update_post_meta($post_id, '_itemName', $itemName); } // if(isset($_POST['itemCode'])){ // $itemCode = trim($_POST['itemCode']); // update_post_meta($post_id, '_itemCode', $itemCode); // } if(isset($_POST['itemRestriction'])){ $itemRestriction = trim($_POST['itemRestriction']); update_post_meta($post_id, '_itemRestriction', $itemRestriction); } if(isset($_POST['itemPointrate'])){ $itemPointrate = (int)$_POST['itemPointrate']; update_post_meta($post_id, '_itemPointrate', $itemPointrate); } if(isset($_POST['itemGpNum1'])){ $itemGpNum1 = (int)$_POST['itemGpNum1']; update_post_meta($post_id, '_itemGpNum1', $itemGpNum1); } if(isset($_POST['itemGpNum2'])){ $itemGpNum2 = (int)$_POST['itemGpNum2']; update_post_meta($post_id, '_itemGpNum2', $itemGpNum2); } if(isset($_POST['itemGpNum3'])){ $itemGpNum3 = (int)$_POST['itemGpNum3']; update_post_meta($post_id, '_itemGpNum3', $itemGpNum3); } if(isset($_POST['itemGpDis1'])){ $itemGpDis1 = (int)$_POST['itemGpDis1']; update_post_meta($post_id, '_itemGpDis1', $itemGpDis1); } if(isset($_POST['itemGpDis2'])){ $itemGpDis2 = (int)$_POST['itemGpDis2']; update_post_meta($post_id, '_itemGpDis2', $itemGpDis2); } if(isset($_POST['itemGpDis3'])){ $itemGpDis3 = (int)$_POST['itemGpDis3']; update_post_meta($post_id, '_itemGpDis3', $itemGpDis3); } if(isset($_POST['itemShipping'])){ $itemShipping = (int)$_POST['itemShipping']; update_post_meta($post_id, '_itemShipping', $itemShipping); } if(isset($_POST['itemDeliveryMethod'])){ $itemDeliveryMethod = array(); foreach( (array)$_POST["itemDeliveryMethod"] as $dmid){ $itemDeliveryMethod[] = $dmid; } update_post_meta($post_id, '_itemDeliveryMethod', $itemDeliveryMethod); } if(isset($_POST['itemShippingCharge'])){ $itemShippingCharge = (int)$_POST['itemShippingCharge']; update_post_meta($post_id, '_itemShippingCharge', $itemShippingCharge); } $itemIndividualSCharge = isset($_POST['itemIndividualSCharge']) ? 1 : 0; update_post_meta($post_id, '_itemIndividualSCharge', $itemIndividualSCharge); if(isset($_POST['wcexp'])){ $wcexp = serialize($_POST['wcexp']); update_post_meta($post_id, '_wcexp', $wcexp); } //SKU if( isset($_POST['itemsku']) ){ $meta_ids = array(); $codes = array(); $uniq_code = false; $irreg_code = false; $irreg_price = false; foreach($_POST['itemsku'] as $mid => $temp){ $meta_ids[] = $mid; } $meta_ids = array_unique($meta_ids); foreach( $meta_ids as $meta_id ){ $skucode = isset($_POST['itemsku'][$meta_id]['key']) ? trim( $_POST['itemsku'][$meta_id]['key'] ) : ''; $skucprice = isset($_POST['itemsku'][$meta_id]['cprice']) ? trim( $_POST['itemsku'][$meta_id]['cprice'] ): 0; $skuprice = isset($_POST['itemsku'][$meta_id]['price']) ? trim( $_POST['itemsku'][$meta_id]['price'] ): 0; $skustocknum = isset($_POST['itemsku'][$meta_id]['zaikonum']) ? trim( $_POST['itemsku'][$meta_id]['zaikonum'] ): 0; $skustock = isset($_POST['itemsku'][$meta_id]['zaiko']) ? (int)$_POST['itemsku'][$meta_id]['zaiko'] : ''; $skuname = isset($_POST['itemsku'][$meta_id]['skudisp']) ? trim( $_POST['itemsku'][$meta_id]['skudisp'] ): ''; $skuunit = isset($_POST['itemsku'][$meta_id]['skuunit']) ? trim( $_POST['itemsku'][$meta_id]['skuunit'] ): ''; $skugp = isset($_POST['itemsku'][$meta_id]['skugptekiyo']) ? (int)$_POST['itemsku'][$meta_id]['skugptekiyo'] : 0; $skusort = isset($_POST['itemsku'][$meta_id]['sort']) ? $_POST['itemsku'][$meta_id]['sort']: 0; $skus['code'] = $skucode; $skus['name'] = $skuname; $skus['cprice'] = $skucprice; $skus['price'] = $skuprice; $skus['unit'] = $skuunit; $skus['stocknum'] = $skustocknum; $skus['stock'] = $skustock; $skus['gp'] = $skugp; $skus['sort'] = $skusort; $skus = $usces->stripslashes_deep_post($skus); $skus = apply_filters( 'usces_filter_item_save_sku_metadata', $skus, $meta_id ); $valueserialized = serialize($skus); $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $meta_id) ); if( in_array( $skucode, $codes ) ) $uniq_code = true; if( WCUtils::is_blank($skucode) ) $irreg_code = true; if( WCUtils::is_blank($skuprice) || preg_match('/[^0-9.]/', $skuprice) || 1 < substr_count($skuprice, '.' ) ) $irreg_price = true; $codes[] = $skucode; } if( $uniq_code ){ $message .= __('SKU code is duplicated.','usces') . "
"; } if( $irreg_code ){ $message .= __('SKU code is invalid.','usces') . "
"; } if( $irreg_price ){ $message .= __('SKU of invalid selling price exists.','usces') . "
"; } } //OPT if( isset($_POST['itemopt']) ){ $meta_ids = array(); $names = array(); $uniq_name = false; $irreg_name = false; $irreg_value = false; foreach($_POST['itemopt'] as $mid => $temp){ $meta_ids[] = $mid; } $meta_ids = array_unique($meta_ids); foreach( $meta_ids as $meta_id ){ $optname = isset($_POST['itemopt'][$meta_id]['name']) ? $_POST['itemopt'][$meta_id]['name'] : ''; $optmeans = isset($_POST['itemopt'][$meta_id]['means']) ? (int)$_POST['itemopt'][$meta_id]['means']: 0; $optessential = isset($_POST['itemopt'][$meta_id]['essential']) ? $_POST['itemopt'][$meta_id]['essential']: 0; $optsort = isset($_POST['itemopt'][$meta_id]['sort']) ? $_POST['itemopt'][$meta_id]['sort']: 0; $optvalue = isset($_POST['itemopt'][$meta_id]['value']) ? trim($_POST['itemopt'][$meta_id]['value']) : ''; $opts['name'] = str_replace("\\",'',$optname); $opts['value'] = str_replace("\\",'',$optvalue); $opts['means'] = $optmeans; $opts['essential'] = $optessential; $opts['sort'] = $optsort; $opts = $usces->stripslashes_deep_post($opts); $valueserialized = serialize($opts); $res = $wpdb->query( $wpdb->prepare("UPDATE $wpdb->postmeta SET meta_value = %s WHERE meta_id = %d", $valueserialized, $meta_id) ); if( in_array( $optname, $names ) ) $uniq_name = true; if( WCUtils::is_blank($optname) ) $irreg_name = true; if( WCUtils::is_blank($optvalue) && 1 >= $optmeans ) $irreg_value = true; $names[] = $optname; } if( $uniq_name ){ $message .= 'オプション名が重複している商品オプションが存在します。' . "
"; } if( $irreg_name ){ $message .= 'オプション名が未入力の商品オプションが存在します。' . "
"; } if( $irreg_value ){ $message .= '商品オプションで「シングルセレクト」、「マルチセレクト」を選択した場合は、セレクト値を入力してください。' . "
"; } } do_action('usces_action_save_product', $post_id, $post); $message = apply_filters( 'usces_filter_save_product_message', $message, $post_id ); // $usces->action_status = 'none'; // $usces->action_message = ''; if( $message ){ $usces->set_action_status('error', 'ERROR : '.$message); }else{ $usces->set_action_status('success', __('Registration of the product is complete.','usces')); } wp_cache_delete($post_id, 'post_meta'); } function usces_link_replace($para) { //$str = 'admin.php?page=' . USCES_PLUGIN_BASENAME . '&'; $str = 'admin.php?page=usces_itemedit&'; $url = preg_replace('|post\.php\?|i', $str, $para); return $url; } function usces_count_posts( $type = 'post', $perm = '' ) { global $wpdb; $user = wp_get_current_user(); $cache_key = $type; $query = "SELECT post_status, COUNT( * ) AS num_posts FROM {$wpdb->posts} WHERE post_type = %s AND post_mime_type = 'item'"; //$query = "SELECT post_status, COUNT( * ) AS num_posts FROM {$wpdb->posts} WHERE post_type = %s"; if ( 'readable' == $perm && is_user_logged_in() ) { if ( !current_user_can("read_private_{$type}s") ) { $cache_key .= '_' . $perm . '_' . $user->ID; $query .= " AND (post_status != 'private' OR ( post_author = '$user->ID' AND post_status = 'private' ))"; } } $query .= ' GROUP BY post_status'; $count = wp_cache_get($cache_key, 'counts'); if ( false !== $count ) // return $count; $count = $wpdb->get_results( $wpdb->prepare( $query, $type ), ARRAY_A ); $stats = array( ); foreach( (array) $count as $row_num => $row ) { $stats[$row['post_status']] = $row['num_posts']; } $stats = (object) $stats; wp_cache_set($cache_key, $stats, 'counts'); return $stats; } //20100809ysk start /** * custom order meta row */ function _list_custom_order_meta_row($key, $entry) { $r = ''; $style = ''; $key = esc_attr($key); $name = esc_attr($entry['name']); $means = get_option('usces_custom_order_select'); $meansoption = ''; foreach($means as $meankey => $meanvalue) { if($meankey == $entry['means']) { $selected = ' selected="selected"'; } else { $selected = ''; } $meansoption .= '\n"; } $essential = $entry['essential'] == 1 ? " checked='checked'" : ""; $value = ''; if(is_array($entry['value'])) { foreach($entry['value'] as $k => $v) { $value .= $v."\n"; } } $value = esc_attr(trim($value)); $r .= "\n\t"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
\n"; $r .= "
"; //20100818ysk start //$r .= "\n\t\t
"; //$r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; //20100818ysk end $r .= "\n\t\t
"; $r .= ""; $r .= "\n\t\t\n\t"; return $r; } //20100809ysk end //20100818ysk start /** * has custom field meta */ function usces_has_custom_field_meta($fieldname) { switch($fieldname) { case 'order': $field = 'usces_custom_order_field'; break; case 'customer': $field = 'usces_custom_customer_field'; break; case 'delivery': $field = 'usces_custom_delivery_field'; break; case 'member': $field = 'usces_custom_member_field'; break; default: return array(); } $fields = get_option($field); if( empty($fields) ){ $meta = array(); }elseif( is_array($fields) ){ $meta = $fields; }else{ $meta = unserialize($fields); } return $meta; } function usces_getinfo_ajax(){ global $wp_version; $wcex_str = ''; $res = ''; $wcex = usces_get_wcex(); foreach ( (array)$wcex as $key => $values ) { $wcex_str .= $key . "-" . $values['version'] . ","; } $wcex_str = rtrim($wcex_str, ','); if ( version_compare($wp_version, '3.4', '>=') ){ $theme_ob = wp_get_theme(); $themedata['Name'] = $theme_ob->get('Name'); $themedata['Version'] = $theme_ob->get('Version'); }else{ $themedata = get_theme_data( get_stylesheet_directory().'/style.css' ); } $v = urlencode(USCES_VERSION); $wcid = urlencode(get_option('usces_wcid')); $locale = urlencode(get_locale()); $theme = urlencode($themedata['Name'] . '-' . $themedata['Version']); $wcex = urlencode($wcex_str); $interface_url = 'http://www.welcart.com/util/welcart_information2.php'; $wcurl = urlencode(get_home_url()); $interface = parse_url($interface_url); $vars ="v=$v&wcid=$wcid&locale=$locale&theme=$theme&wcex=$wcex&wcurl=$wcurl"; $header = "POST " . $interface_url . " HTTP/1.1\r\n"; $header .= "Host: " . $_SERVER['HTTP_HOST'] . "\r\n"; $header .= "User-Agent: " . $_SERVER['HTTP_USER_AGENT'] . "\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($vars) . "\r\n"; $header .= "Connection: close\r\n\r\n"; $header .= $vars; $fp = fsockopen($interface['host'],80,$errno,$errstr,30); if( $fp ){ fwrite($fp, $header); $i=0; while ( !feof($fp) ) { $scr = fgets($fp, 10240); preg_match("/<(title|data)>(.*)<(\/title|\/data)>$/", $scr, $match); if(!empty($match[2])){ switch( $match[1] ){ case'title': $res .= '
' . $match[2] . '
'; fclose($fp); }else{ $res = 'ERROR'; } die($res); } /** * custom field ajax */ function custom_field_ajax() { global $usces; $_POST = $usces->stripslashes_deep_post($_POST); if($_POST['action'] != 'custom_field_ajax') die(0); switch($_POST['field']) { case 'order': $field = 'usces_custom_order_field'; break; case 'customer': $field = 'usces_custom_customer_field'; break; case 'delivery': $field = 'usces_custom_delivery_field'; break; case 'member': $field = 'usces_custom_member_field'; break; default: die(0); } $meta = usces_has_custom_field_meta($_POST['field']); $dupkey = 0; if(isset($_POST['add'])) { $newkey = isset($_POST['newkey']) ? trim($_POST['newkey']) : ''; $newname = isset($_POST['newname']) ? trim($_POST['newname']) : ''; $newmeans = isset($_POST['newmeans']) ? $_POST['newmeans'] : 0; $newessential = isset($_POST['newessential']) ? $_POST['newessential'] : 0; $newposition = isset($_POST['newposition']) ? trim($_POST['newposition']) : ''; if($newmeans == 2) {//Text $newvalue = isset($_POST['newvalue']) ? trim($_POST['newvalue']) : ''; $nv = $newvalue; } else { $newvalue = isset($_POST['newvalue']) ? explode('\n', trim($_POST['newvalue'])) : ''; foreach((array)$newvalue as $v) { if( !WCUtils::is_blank($v) ) $nv[] = trim($v); } } if(!array_key_exists($newkey, $meta)) { if(($newmeans >= 2 || WCUtils::is_zero($newvalue) || !empty($newvalue)) && !empty($newkey) && !empty($newname)) { $meta[$newkey]['name'] = $newname; $meta[$newkey]['means'] = $newmeans; $meta[$newkey]['essential'] = $newessential; $meta[$newkey]['value'] = $nv; if( !WCUtils::is_blank($newposition) ) $meta[$newkey]['position'] = $newposition; update_option($field, $meta); } } else { $dupkey = 1; } } elseif(isset($_POST['update'])) { $key = isset($_POST['key']) ? trim($_POST['key']) : ''; $name = isset($_POST['name']) ? trim($_POST['name']) : ''; $means = isset($_POST['means']) ? $_POST['means'] : 0; $essential = isset($_POST['essential']) ? $_POST['essential'] : 0; $position = isset($_POST['position']) ? trim($_POST['position']) : ''; if($means == 2) {//Text $value = isset($_POST['value']) ? trim($_POST['value']) : ''; $nv = $value; } else { $value = isset($_POST['value']) ? explode('\n', trim($_POST['value'])) : ''; foreach((array)$value as $v) { if( !WCUtils::is_blank($v) ) $nv[] = trim($v); } } if($means >= 2 || WCUtils::is_zero($value) || !empty($value)) { $meta[$key]['name'] = $name; $meta[$key]['means'] = $means; $meta[$key]['essential'] = $essential; $meta[$key]['value'] = $nv; if( !WCUtils::is_blank($position) ) $meta[$key]['position'] = $position; update_option($field, $meta); } } elseif(isset($_POST['delete'])) { $key = isset($_POST['key']) ? trim($_POST['key']) : ''; unset($meta[$key]); update_option($field, $meta); } $r = ''; switch($_POST['field']) { case 'order': foreach($meta as $key => $entry) $r .= _list_custom_order_meta_row($key, $entry); break; case 'customer': foreach($meta as $key => $entry) $r .= _list_custom_customer_meta_row($key, $entry); break; case 'delivery': foreach($meta as $key => $entry) $r .= _list_custom_delivery_meta_row($key, $entry); break; case 'member': foreach($meta as $key => $entry) $r .= _list_custom_member_meta_row($key, $entry); break; } $res = $r . '#usces#' . $dupkey; //REGEX BUG: but it'll return info // Compose JavaScript for return die($res); } /** * list custom customer meta row */ function _list_custom_customer_meta_row($key, $entry) { $r = ''; $style = ''; $key = esc_attr($key); $name = esc_attr($entry['name']); $means = get_option('usces_custom_customer_select'); $meansoption = ''; foreach($means as $meankey => $meanvalue) { $selected = ($meankey == $entry['means']) ? " selected='selected'" : ""; $meansoption .= "\n"; } $essential = $entry['essential'] == 1 ? " checked='checked'" : ""; $value = ''; if(is_array($entry['value'])) { foreach($entry['value'] as $k => $v) { $value .= $v."\n"; } } $value = esc_attr(trim($value)); $positions = get_option('usces_custom_field_position_select'); $positionsoption = ''; foreach($positions as $poskey => $posvalue) { $selected = ($poskey == $entry['position']) ? " selected='selected'" : ""; $positionsoption .= "\n"; } $r .= "\n\t"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
\n"; $r .= "\n"; $r .= "
"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= ""; $r .= "\n\t\t\n\t"; return $r; } /** * list custom delivery meta row */ function _list_custom_delivery_meta_row($key, $entry) { $r = ''; $style = ''; $key = esc_attr($key); $name = esc_attr($entry['name']); $means = get_option('usces_custom_delivery_select'); $meansoption = ''; foreach($means as $meankey => $meanvalue) { $selected = ($meankey == $entry['means']) ? " selected='selected'" : ""; $meansoption .= "\n"; } $essential = $entry['essential'] == 1 ? " checked='checked'" : ""; $value = ''; if(is_array($entry['value'])) { foreach($entry['value'] as $k => $v) { $value .= $v."\n"; } } $value = esc_attr(trim($value)); $positions = get_option('usces_custom_field_position_select'); $positionsoption = ''; foreach($positions as $poskey => $posvalue) { $selected = ($poskey == $entry['position']) ? " selected='selected'" : ""; $positionsoption .= "\n"; } $r .= "\n\t"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
\n"; $r .= "\n"; $r .= "
"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= ""; $r .= "\n\t\t\n\t"; return $r; } /** * list custom member meta row */ function _list_custom_member_meta_row($key, $entry) { $r = ''; $style = ''; $key = esc_attr($key); $name = esc_attr($entry['name']); $means = get_option('usces_custom_member_select'); $meansoption = ''; foreach($means as $meankey => $meanvalue) { $selected = ($meankey == $entry['means']) ? " selected='selected'" : ""; $meansoption .= "\n"; } $essential = $entry['essential'] == 1 ? " checked='checked'" : ""; $value = ''; if(is_array($entry['value'])) { foreach($entry['value'] as $k => $v) { $value .= $v."\n"; } } $value = esc_attr(trim($value)); $positions = get_option('usces_custom_field_position_select'); $positionsoption = ''; foreach($positions as $poskey => $posvalue) { $selected = ($poskey == $entry['position']) ? " selected='selected'" : ""; $positionsoption .= "\n"; } $r .= "\n\t"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
\n"; $r .= "\n"; $r .= "
"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= "\n\t\t
"; $r .= ""; $r .= "\n\t\t\n\t"; return $r; } //20100818ysk end function change_states_ajax(){ global $usces, $usces_states; $_POST = $usces->stripslashes_deep_post($_POST); $c = $_POST['country']; $res = ''; //20110331ysk start /* if( !isset($usces_states[$c]) || empty($usces_states[$c]) ) die('error'); foreach( (array)$usces_states[$c] as $state ){ $res .= ''; }*/ $prefs = get_usces_states($c); if(is_array($prefs) and 0 < count($prefs)) { foreach((array)$prefs as $state) { $res .= ''; } } else { die('error'); } //20110331ysk end die($res); } //20110331ysk start function get_usces_states($country) { global $usces, $usces_states; $states = array(); $prefs = maybe_unserialize($usces->options['province']); if( !isset($prefs[$country]) || empty($prefs[$country]) ) { if($country == $usces->options['system']['base_country']) { foreach((array)$prefs as $state) { if(!is_array($state)) array_push($states, $state); } if(count($states) == 0) { if( !empty($usces_states[$country]) ) { $prefs = $usces_states[$country]; if(is_array($prefs)) { $states = $prefs; } } } } else { if( !empty($usces_states[$country]) ) { $prefs = $usces_states[$country]; if(is_array($prefs)) { $states = $prefs; } } } } else { $states = $prefs[$country]; } return $states; } function target_market_ajax() { global $usces; $_POST = $usces->stripslashes_deep_post($_POST); $res = ""; $target = explode(",", $_POST['target']); foreach((array)$target as $country) { $prefs = get_usces_states($country); if(is_array($prefs) and 0 < count($prefs)) { $pos = strpos($prefs[0], '--'); if($pos !== false) array_shift($prefs); $res .= $country.","; foreach((array)$prefs as $state) { $res .= $state."\n"; } $res = rtrim($res, "\n")."#usces#"; //20110430ysk start } else { $res .= $country.",#usces#"; //20110430ysk end } } $res = rtrim($res, "#usces#"); die($res); } //20110331ysk end //20120309ysk start 0000430 function usces_admin_ajax() { switch($_POST['mode']) { case 'options_backup': $options = get_option('usces'); $res = true; if( is_array($options) ) { $usces_backup_date = current_time('mysql'); update_option('usces_backup', $options); update_option('usces_backup_date', $usces_backup_date); $res = $usces_backup_date; } else { $res = false; } die($res); break; case 'options_restore': $options = get_option('usces_backup'); $res = true; if( is_array($options) ) { update_option('usces', $options); } else { $res = false; } die($res); break; } do_action('usces_action_admin_ajax'); } //20120309ysk end function usces_order_recalculation( $order_id, $mem_id, $post_ids, $skus, $prices, $quants, $use_point, $shipping_charge, $cod_fee ) { global $usces; $res = 'ok'; if( !empty($order_id) ) { $data = $usces->get_order_data( $order_id, 'direct' ); $condition = unserialize( $data['order_condition'] ); } else { $condition = $usces->get_condition(); } //usces_log('condition : '.print_r($condition,true), 'acting_transaction.log'); $post_id = explode("#usces#", $post_ids); $sku = explode("#usces#", $skus); $price = explode("#usces#", $prices); $quant = explode("#usces#", $quants); $cart = array(); for( $i = 0; $i < count($post_id); $i++ ) { if( $post_id[$i] ) $cart[] = array( "post_id"=>$post_id[$i], "sku"=>$sku[$i], "price"=>$price[$i], "quantity"=>$quant[$i] ); } $total_items_price = 0; foreach( $cart as $cart_row ) { $total_items_price += $cart_row['price'] * $cart_row['quantity']; } $meminfo = $usces->get_member_info( $mem_id ); $discount = 0; if( $condition['display_mode'] == 'Promotionsale' ) { if( $condition['campaign_privilege'] == 'discount' ) { if ( 0 === (int)$condition['campaign_category'] ) { $discount = $total_items_price * $condition['privilege_discount'] / 100; } else { foreach( $cart as $cart_row ) { if( in_category( (int)$condition['campaign_category'], $cart_row['post_id']) ) { $discount += $cart_row['price'] * $cart_row['quantity'] * $condition['privilege_discount'] / 100; } } } } } if( 0 < $discount ) $discount = ceil($discount * -1); $point = 0; if( 'activate' == $usces->options['membersystem_state'] && 'activate' == $usces->options['membersystem_point'] && !empty($meminfo['ID']) ) { if( $condition['display_mode'] == 'Promotionsale' ) { if( $condition['campaign_privilege'] == 'discount' ) { foreach( $cart as $cart_row ) { $cats = $usces->get_post_term_ids( $cart_row['post_id'], 'category' ); if( !in_array( $condition['campaign_category'], $cats ) ) { $rate = get_post_meta( $cart_row['post_id'], '_itemPointrate', true ); $price = $cart_row['price'] * $cart_row['quantity']; $point += $price * $rate / 100; } } } elseif( $condition['campaign_privilege'] == 'point' ) { foreach( $cart as $cart_row ) { $rate = get_post_meta( $cart_row['post_id'], '_itemPointrate', true ); $price = $cart_row['price'] * $cart_row['quantity']; $cats = $usces->get_post_term_ids( $cart_row['post_id'], 'category' ); if( in_array( $condition['campaign_category'], $cats ) ) { $point += $price * $rate / 100 * $condition['privilege_point']; } else { $point += $price * $rate / 100; } } } } else { foreach( $cart as $cart_row ) { $rate = get_post_meta( $cart_row['post_id'], '_itemPointrate', true ); $price = $cart_row['price'] * $cart_row['quantity']; $point += $price * $rate / 100; } } } if( 0 < $point ) $point = ceil($point); //20130425ysk start 0000699 if( 0 < $use_point ) { $point = ceil( $point - ( $point * $use_point / $total_items_price ) ); if( 0 > $point ) $point = 0; } //20130425ysk end $point = apply_filters( 'usces_filter_set_point_recalculation', $point, $condition, $cart, $meminfo, $use_point ); $total_price = $total_items_price - $use_point + $discount + $shipping_charge + $cod_fee; $total_price = apply_filters('usces_filter_set_cart_fees_total_price', $total_price, $total_items_price, $use_point, $discount, $shipping_charge, $cod_fee); $tax = $usces->getTax( $total_price ); $total_full_price = $total_price + $tax; $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); return $res."#usces#".$discount."#usces#".usces_crform( $tax, false, false, 'return', false )."#usces#".$point."#usces#".usces_crform( $total_full_price, false, false, 'return', false ); } ?>