Beispiel #1
0
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;
}
Beispiel #2
0
	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);
 }
Beispiel #5
0
	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);
 }
Beispiel #7
0
    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);
 }