function wc2_update_admin_option($option_name, $id, $data) { $data = wc2_stripslashes_deep_post($data); $option_value = wc2_get_option($option_name); $upd_id = -1; if (!empty($option_value) and array_key_exists($id, $option_value)) { $unique = true; foreach ((array) $option_value as $key => $value) { if ($value['name'] == $data['name'] && $key != $id) { $unique = false; break; } } if (!$unique) { return $upd_id; } $option_value[$id]['name'] = $data['name']; $option_value[$id]['explanation'] = $data['explanation']; $option_value[$id]['settlement'] = $data['settlement']; $option_value[$id]['charge'] = $data['charge']; $option_value[$id]['charge_price'] = $data['charge_price']; $option_value[$id]['use'] = $data['use']; wc2_update_option($option_name, $option_value); $upd_id = $id; } return $upd_id; }
public function set_entry() { $_POST = wc2_stripslashes_deep_post( $_POST ); if( isset($_SESSION[WC2]['member']['ID']) && !empty($_SESSION[WC2]['member']['ID']) ) { if( $_REQUEST['cart'] != 'confirm' ) { foreach( $_SESSION[WC2]['member'] as $key => $value ) { switch( $key ) { case 'ID': case 'passwd': case 'rank': case 'point': case 'registered': break; case WC2_CUSTOM_MEMBER: foreach( $value as $mbkey => $mbvalue ) { if( empty($_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER][$mbkey]) ) { if( is_array($mbvalue) ) { foreach( $mbvalue as $k => $v ) { $_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER][$mbkey][$v] = $v; } } else { $_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER][$mbkey] = $mbvalue; } } } break; case 'country': $_SESSION[WC2]['entry']['customer'][$key] = ( empty($value) ) ? wc2_get_base_country() : $value; break; default: if( is_array($value) ) { foreach( $value as $k => $v ) { $_SESSION[WC2]['entry']['customer'][$k] = $v; } } else { $_SESSION[WC2]['entry']['customer'][$key] = $value; } } } } } if( isset($_POST['customer']) ) { foreach( $_POST['customer'] as $key => $value ) { if( 'passwd' == $key || 'passwd2' == $key ){ continue; } if( 'country' == $key && empty($value) ) { $_SESSION[WC2]['entry']['customer'][$key] = wc2_get_base_country(); } else { $_SESSION[WC2]['entry']['customer'][$key] = $value; } } } if( isset($_POST['delivery']) ) { foreach( $_POST['delivery'] as $key => $value ) { if( 'country' == $key && empty($value) ){ $_SESSION[WC2]['entry']['delivery'][$key] = wc2_get_base_country(); } else{ $_SESSION[WC2]['entry']['delivery'][$key] = $value; } } } if( isset($_POST['delivery']['delivery_flag']) && $_POST['delivery']['delivery_flag'] == 0 ) { foreach( $_SESSION[WC2]['entry']['customer'] as $key => $value ) { if( 'country' == $key && empty($value) ) { $_SESSION[WC2]['entry']['delivery'][$key] = wc2_get_base_country(); } else { $_SESSION[WC2]['entry']['delivery'][$key] = $value; } } } if( isset($_POST['offer']) ) { foreach( $_POST['offer'] as $key => $value ) { $_SESSION[WC2]['entry']['order'][$key] = $value; } } if( isset($_SESSION[WC2]['entry']['delivery']['delivery_flag']) && $_SESSION[WC2]['entry']['delivery']['delivery_flag'] == 0 ) { self::set_custom_customer_delivery(); } /* if( isset($_POST[WC2_CUSTOM_ORDER]) ) { unset($_SESSION[WC2]['entry'][WC2_CUSTOM_ORDER]); foreach( $_POST[WC2_CUSTOM_ORDER] as $key => $value ) { if( is_array($value) ) { foreach( $value as $k => $v ) { $_SESSION[WC2]['entry'][WC2_CUSTOM_ORDER][$key][$v] = $v; } } else { $_SESSION[WC2]['entry'][WC2_CUSTOM_ORDER][$key] = $value; } } } if( isset($_POST[WC2_CUSTOM_CUSTOMER]) ) { unset($_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER]); foreach( $_POST[WC2_CUSTOM_CUSTOMER] as $key => $value ) { if( is_array($value) ) { foreach( $value as $k => $v ) { $_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER][$key][$v] = $v; } } else { $_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER][$key] = $value; } } } if( isset($_POST[WC2_CUSTOM_DELIVERY]) ) { unset($_SESSION[WC2]['entry'][WC2_CUSTOM_DELIVERY]); foreach( $_POST[WC2_CUSTOM_DELIVERY] as $key => $value ) { if( is_array($value) ) { foreach( $value as $k => $v ) { $_SESSION[WC2]['entry'][WC2_CUSTOM_DELIVERY][$key][$v] = $v; } } else { $_SESSION[WC2]['entry'][WC2_CUSTOM_DELIVERY][$key] = $value; } } } */ if( isset($_POST['wcaction']) && 'delivery_process' == $_POST['wcaction'] ){ //csod if( isset( $_SESSION[WC2]['entry'][WC2_CUSTOM_ORDER] ) ){ unset($_SESSION[WC2]['entry'][WC2_CUSTOM_ORDER]); } $csod_keys = wc2_get_custom_field_keys(WC2_CSOD); if( !empty($csod_keys) && is_array($csod_keys) ){ foreach($csod_keys as $key){ list( $pfx, $csod_key ) = explode('_', $key, 2); $csod_val = ( isset( $_POST[WC2_CUSTOM_ORDER][$csod_key] ) ) ? $_POST[WC2_CUSTOM_ORDER][$csod_key]: ''; $_SESSION[WC2]['entry'][WC2_CUSTOM_ORDER][$csod_key] = $csod_val; } } //csde if( isset( $_SESSION[WC2]['entry'][WC2_CUSTOM_DELIVERY] ) ){ unset($_SESSION[WC2]['entry'][WC2_CUSTOM_DELIVERY]); } $csde_keys = wc2_get_custom_field_keys(WC2_CSDE); if( !empty($csde_keys) && is_array($csde_keys) ){ foreach($csde_keys as $key){ list( $pfx, $csde_key ) = explode('_', $key, 2); $csde_val = ( isset( $_POST[WC2_CUSTOM_DELIVERY][$csde_key] ) ) ? $_POST[WC2_CUSTOM_DELIVERY][$csde_key]: ''; $_SESSION[WC2]['entry'][WC2_CUSTOM_DELIVERY][$csde_key] = $csde_val; } } }elseif( isset($_POST['wcaction']) && 'customer_process' == $_POST['wcaction'] ) { //cscs if( isset( $_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER] ) ){ unset($_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER]); } $cscs_keys = wc2_get_custom_field_keys(WC2_CSCS); if( !empty($cscs_keys) && is_array($cscs_keys) ){ foreach($cscs_keys as $key){ list( $pfx, $cscs_key ) = explode('_', $key, 2); $cscs_val = ( isset( $_POST[WC2_CUSTOM_CUSTOMER][$cscs_key] ) ) ? $_POST[WC2_CUSTOM_CUSTOMER][$cscs_key]: ''; $_SESSION[WC2]['entry'][WC2_CUSTOM_CUSTOMER][$cscs_key] = $cscs_val; } } } if( ( isset($_SESSION[WC2]['entry']['delivery']['delivery_flag']) && $_SESSION[WC2]['entry']['delivery']['delivery_flag'] == 0 ) || ( isset($_POST['delivery']['delivery_flag']) && $_POST['delivery']['delivery_flag'] == 0 ) ) { self::set_custom_customer_delivery(); } do_action( 'wc2_action_set_entry' ); }
function update_delivery_days() { $data = wc2_stripslashes_deep_post($_POST); $delivery_days = wc2_get_option('delivery_days'); $system_ops = wc2_get_option('system'); $name = trim($data['name']); $id = (int) $data['id']; for ($i = 0; $i < count($delivery_days); $i++) { if ($delivery_days[$i]['id'] === $id) { $index = $i; } } $delivery_days[$index]['name'] = $name; $target_market = isset($system_ops['target_market']) && !empty($system_ops['target_market']) ? $system_ops['target_market'] : WC2_Funcs::get_local_target_market(); $query = explode('&', $data['query']); foreach ((array) $query as $query_val) { list($key, $val) = explode('=', $query_val); $data[$key][] = $val; } foreach ((array) $target_market as $tm) { $prefs = $system_ops['province'][$tm]; $value = $data['value_' . $tm]; for ($i = 0; $i < count($prefs); $i++) { $delivery_days[$index][$tm][$prefs[$i]] = (int) $value[$i]; } } $res = wc2_update_option('delivery_days', $delivery_days); if ($res !== NULL) { //success $new_delivery_days = wc2_get_option('delivery_days'); $data_val = $new_delivery_days[$index]; $data = array('message' => __('Updated!'), 'value' => $data_val); wp_send_json_success($data); } else { //error $data = array('message' => __('Update Failed')); wp_send_json_error($data); } }
public function phrase_ajax() { //if( !check_ajax_referer( 'wc2_setting_phrase', 'wc2_nonce', false ) ) die(); if (!isset($_POST['action']) or !isset($_POST['mode'])) { die; } if ($_POST['action'] != 'phrase_ajax') { die; } $res = ''; switch ($_POST['mode']) { case 'select': $phrase = $_POST['phrase']; $phrase_options = wc2_get_option('phrase'); $phrase_default = wc2_get_option('phrase_default'); $title = WC2_Utils::is_blank($phrase_options['title'][$phrase]) ? $phrase_default['title'][$phrase] : $phrase_options['title'][$phrase]; $header = WC2_Utils::is_blank($phrase_options['header'][$phrase]) ? $phrase_default['header'][$phrase] : $phrase_options['header'][$phrase]; $footer = WC2_Utils::is_blank($phrase_options['footer'][$phrase]) ? $phrase_default['footer'][$phrase] : $phrase_options['footer'][$phrase]; $res = 'OK' . WC2_SPLIT . $title . WC2_SPLIT . $header . WC2_SPLIT . $footer; break; case 'update': if (!check_ajax_referer('wc2_setting_phrase', 'wc2_nonce', false)) { $res = 'NG' . WC2_SPLIT . __('Security error.'); } else { $_POST = wc2_stripslashes_deep_post($_POST); $phrase = $_POST['phrase']; $phrase_options = wc2_get_option('phrase'); $phrase_options['title'][$phrase] = urldecode(trim($_POST['title'])); $phrase_options['header'][$phrase] = urldecode(trim($_POST['header'])); $phrase_options['footer'][$phrase] = urldecode(trim($_POST['footer'])); $phrase_options = apply_filters('wc2_filter_admin_phrase_update', $phrase_options, $phrase); wc2_update_option('phrase', $phrase_options); $res = 'OK' . WC2_SPLIT . $phrase_options['footer'][$phrase]; } break; } $res = apply_filters('wc2_filter_admin_phrase_ajax', $res); die($res); }
public function member_login_process() { //global $wpdb; $wc2_db_member = WC2_DB_Member::get_instance(); $_POST = wc2_stripslashes_deep_post($_POST); $cookie = wc2_get_cookie(); $this->error_message = array(); //cookieあり・記憶checkなし・ログインキー(アカウント又はメールアドレス)項目なし if ( isset($cookie['rme']) && $cookie['rme'] == 'forever' && !isset($_POST['rememberme']) && !isset($_POST['loginkey'])) { $account = $cookie['name']; $id = $wc2_db_member->get_member_id_by_account($account); //cookie['name']のアカウントが会員にいない if ( !$id ) { $this->current_member['account'] = htmlspecialchars($account); $this->error_message[] = __('アカウントが違います。', 'wc2'); return false; //cookie['name']のアカウントが会員にいる } else { $member = $wc2_db_member->get_member_data($id); if ( empty($member) ) { $this->current_member['account'] = htmlspecialchars($account); $this->error_message[] = __('パスワードが違います。', 'wc2'); return false; } else { //セッションに会員情報をセット $this->set_session_current_member($member); do_action( 'wc2_action_after_login' ); return apply_filters( 'wc2_filter_member_login', true, $member ); } } //ログインキーとパスワードが入力されておらず、クッキーに記憶情報がない } else if ( isset($_POST['loginkey']) && WC2_Utils::is_blank($_POST['loginkey']) && isset($_POST['loginpass']) && WC2_Utils::is_blank($_POST['loginpass']) && isset($cookie['rme']) && $cookie['rme'] != 'forever' ) { $this->error_message[] = __('アカウント又はメールアドレスを入力してください。', 'wc2'); $this->error_message[] = __('パスワードを入力してください。', 'wc2'); return false; } else if ( isset($_POST['loginkey']) && WC2_Utils::is_blank($_POST['loginpass']) && isset($cookie['rme']) && $cookie['rme'] != 'forever' ) { $this->current_member['account'] = trim($_POST['loginkey']); $this->error_message[] = __('パスワードを入力してください。', 'wc2'); return false; } else if ( !isset($_POST['loginkey']) ){ return false; } else { $loginkey = isset($_POST['loginkey']) ? trim($_POST['loginkey']) : ''; $pass = isset($_POST['loginpass']) ? md5(trim($_POST['loginpass'])) : ''; $pos = strpos($loginkey, '@'); $pos = apply_filters('wc2_filter_select_loginkey_check', $pos); if( false === $pos ){ //アカウント $account = $loginkey; $id = $wc2_db_member->get_member_id_by_account($account); if ( !$id ) { $this->current_member['account'] = htmlspecialchars($account); $this->error_message[] = __('アカウントが違います。', 'wc2'); return false; } $id = $wc2_db_member->login_check_by_account($account, $pass); if ( !$id ) { $this->current_member['account'] = htmlspecialchars($account); $this->error_message[] = __('パスワードが違います。', 'wc2'); return false; } }else{ //メールアドレス $email = $loginkey; $id = $wc2_db_member->get_member_id_by_email($email); if ( !$id ) { $this->current_member['email'] = htmlspecialchars($email); $this->error_message[] = __('メールアドレスが違います。', 'wc2'); return false; } $id = $wc2_db_member->login_check_by_email($email, $pass); if ( !$id ) { $this->current_member['account'] = htmlspecialchars($account); $this->error_message[] = __('パスワードが違います。', 'wc2'); return false; } } $member = $wc2_db_member->get_member_data($id); //セッションに会員情報をセット $this->set_session_current_member($member); if( isset($_POST['rememberme']) ){ $cookie['name'] = $member['account']; $cookie['rme'] = 'forever'; wc2_set_cookie($cookie); }else{ $cookie['name'] = ''; $cookie['rme'] = ''; wc2_set_cookie($cookie); } do_action( 'wc2_action_after_login' ); return apply_filters( 'wc2_filter_member_login_process', true, $member ); } }
public function bank_ajax() { if (!check_ajax_referer('wc2_setting_payment', 'wc2_nonce', false)) { die; } if (!isset($_POST['action']) or !isset($_POST['mode'])) { die; } if ($_POST['action'] != 'bank_ajax') { die; } $res = ''; switch ($_POST['mode']) { case 'update': $_POST = wc2_stripslashes_deep_post($_POST); $transferee = urldecode(trim($_POST['transferee'])); wc2_update_option('transferee_info', $transferee); $res = 'OK'; break; } $res = apply_filters('wc2_filter_admin_bank_ajax', $res); die($res); }
static function get_addressform($data, $type) { if (empty($data)) { return; } $system_options = wc2_get_option('system'); $applyform = wc2_get_apply_addressform($system_options['addressform']); if (is_admin()) { switch ($type) { case 'member': case 'customer': $values = $data; break; case 'delivery': $values = $data['delivery'][0]; break; } $essential_mark_off = $type == 'member' ? false : true; } else { switch ($type) { case 'member': $values = $data; break; case 'customer': $values = $data['customer']; break; case 'delivery': $values = $data['delivery']; break; } $essential_mark_off = false; } $values['country'] = !empty($values['country']) ? $values['country'] : wc2_get_local_addressform(); $values = wc2_stripslashes_deep_post($values); $essential_mark = wc2_get_option('essential_mark'); if ($essential_mark_off) { foreach ($essential_mark as $key => $value) { $essential_mark[$key] = ''; } } $formtag = ''; switch ($applyform) { case 'JP': $formtag .= self::get_custom_field_input($values, $type, 'head'); if (is_admin() && ($type == 'member' || $type == 'customer')) { $get_member = $type == 'customer' ? '<input type="button" id="get-member" class="button" value="' . __('会員情報取込', 'wc2') . '" />' : ''; $formtag .= ' <tr class="' . $type . '-mail"> <th>' . $essential_mark['email'] . 'e-mail</th> <td><input name="' . $type . '[email]" type="text" class="text long" value="' . esc_attr($values['email']) . '" />' . $get_member . apply_filters('wc2_filter_after_email', NULL, $values, $type) . '</td> </tr>'; } $formtag .= self::get_custom_field_input($values, $type, 'beforename'); $formtag .= ' <tr class="' . $type . '-name"> <th>' . $essential_mark['name1'] . __('Name', 'wc2') . '</th> <td> <input name="' . $type . '[name1]" type="text" class="text short" value="' . esc_attr($values['name1']) . '" placeholder="' . __('Last name', 'wc2') . '" /> <input name="' . $type . '[name2]" type="text" class="text short" value="' . esc_attr($values['name2']) . '" placeholder="' . __('First name', 'wc2') . '" />' . apply_filters('wc2_filter_after_name2', NULL, $values, $type) . ' </td> </tr> <tr class="' . $type . '-phonetic"> <th>' . $essential_mark['name3'] . __('Kana', 'wc2') . '</th> <td> <input name="' . $type . '[name3]" type="text" class="text short" value="' . esc_attr($values['name3']) . '" placeholder="' . __('セイ', 'wc2') . '" /> <input name="' . $type . '[name4]" type="text" class="text short" value="' . esc_attr($values['name4']) . '" placeholder="' . __('メイ', 'wc2') . '" />' . apply_filters('wc2_filter_after_name4', NULL, $values, $type) . ' </td> </tr>'; $formtag .= self::get_custom_field_input($values, $type, 'aftername'); if (count($system_options['target_market']) == 1) { $formtag .= '<input name="' . $type . '[country]" type="hidden" value="' . $system_options['target_market'][0] . '" />'; } else { $formtag .= ' <tr class="' . $type . '-country"> <th>' . $essential_mark['country'] . __('国', 'wc2') . '</th> <td>' . wc2_get_target_market_form($type, $values['country']) . apply_filters('wc2_filter_after_country', NULL, $values, $type) . '</td> </tr>'; } $formtag .= ' <tr class="' . $type . '-zipcode"> <th>' . $essential_mark['zipcode'] . __('郵便番号', 'wc2') . '</th> <td> <input name="' . $type . '[zipcode]" type="text" class="text short" value="' . esc_attr($values['zipcode']) . '" /> <input id="search-zipcode-' . $type . '" type="button" class="search-zipcode button" value="住所検索" />' . apply_filters('wc2_filter_after_zipcode', NULL, $values, $type) . ' </td> </tr> <tr class="' . $type . '-pref"> <th>' . $essential_mark['pref'] . __('都道府県', 'wc2') . '</th> <td>' . wc2_get_pref_select($type, $values) . apply_filters('wc2_filter_after_pref', NULL, $values, $type) . '</td> </tr> <tr class="' . $type . '-address1"> <th>' . $essential_mark['address1'] . __('City/Ward/Town/Village/Street name, street number', 'wc2') . '</th> <td><input name="' . $type . '[address1]" type="text" class="text long" value="' . esc_attr($values['address1']) . '" />' . apply_filters('wc2_filter_after_address1', NULL, $values, $type) . '</td> </tr> <tr class="' . $type . '-address2"> <th>' . $essential_mark['address2'] . __('Building name, floor, room number', 'wc2') . '</th> <td><input name="' . $type . '[address2]" type="text" class="text long" value="' . esc_attr($values['address2']) . '" />' . apply_filters('wc2_filter_after_address2', NULL, $values, $type) . '</td> </tr> <tr class="' . $type . '-tel"> <th>' . $essential_mark['tel'] . __('電話番号', 'wc2') . '</th> <td><input name="' . $type . '[tel]" type="text" class="text short" value="' . esc_attr($values['tel']) . '" />' . apply_filters('wc2_filter_after_tel', NULL, $values, $type) . '</td>'; $formtag .= ' </td> </tr> <tr class="' . $type . '-fax"> <th>' . $essential_mark['fax'] . __('FAX番号', 'wc2') . '</th> <td><input name="' . $type . '[fax]" type="text" class="text short" value="' . esc_attr($values['fax']) . '" />' . apply_filters('wc2_filter_after_fax', NULL, $values, $type) . '</td> </tr>'; $formtag .= self::get_custom_field_input($values, $type, 'bottom'); break; } return $formtag; }
public function system_ajax() { if (!check_ajax_referer('wc2_setting_system', 'wc2_nonce', false)) { die; } if (!isset($_POST['action']) or !isset($_POST['mode'])) { die; } if ($_POST['action'] != 'system_ajax') { die; } $res = ''; switch ($_POST['mode']) { case 'target_market': $states = wc2_get_option('states_options'); $data = wc2_stripslashes_deep_post($_POST); $target = explode(',', $data['target']); foreach ((array) $target as $country) { $prefs = $states[$country]; if (is_array($prefs) and 0 < count($prefs)) { $res .= $country . ","; foreach ((array) $prefs as $state) { $res .= $state . "\n"; } $res = rtrim($res, "\n") . WC2_SPLIT; } else { $res .= $country . ',' . WC2_SPLIT; } } $res = rtrim($res, WC2_SPLIT); } $res = apply_filters('wc2_filter_admin_system_ajax', $res); die($res); }