HEX
Server: Apache
System: Linux 4485441ca2e2 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 11:03:07 UTC 2025 aarch64
User: (1000)
PHP: 8.2.24
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/ganryu_shop/model/Address.php
<?php

require_once dirname(__FILE__).'/Abstract.php';

class ganryu_shop_model_Address extends ganryu_shop_model_Abstract{

	function getAddressList($userid){
		$tbl = $this->tablename('user_address');
		
		$sql = "
			select
				addressid,
				userid,
				zip1,
				zip2,
				prefecture_code,
				address_1,
				address_2,
				address_3,
				tel1,
				tel2,
				tel3,
				address_name_sei,
				address_name_mei,
				address_name_kana_sei,
				address_name_kana_mei,
				company_name,
				ismain
			from
				$tbl
			where
				userid=  :userid
			and
				valid = 1
			order by ismain desc, lastuse_date desc, modify_date desc
		";
		$bind = array('userid'=>$userid);
		$res = $this->selectAll($sql, $bind);
		if ($res === false){
			return false;
		}
		return $res;
	}
	
	function getAddress($addressid){
		$tbl = $this->tablename('user_address');
		
		$sql = "
			select
				addressid,
				userid,
				zip1,
				zip2,
				prefecture_code,
				address_1,
				address_2,
				address_3,
				tel1,
				tel2,
				tel3,
				address_name_sei,
				address_name_mei,
				address_name_kana_sei,
				address_name_kana_mei,
				company_name
			from
				$tbl
			where
				addressid=  :addressid
			and
				valid = 1
		";
		$bind = array('addressid'=>$addressid);
		$res = $this->selectRow($sql, $bind);
		if ($res === false){
			return false;
		}
		return $res;
	}
	
	
	function getAddressCount($userid){
		$tbl = $this->tablename('user_address');
		
		$sql = "
			select
				count(*) ct
			from
				$tbl
			where
				userid=  :userid
			and
				valid = 1
		";
		$bind = array('userid'=>$userid);
		$res = $this->selectRow($sql, $bind);
		if ($res === false){
			return false;
		}
		return $res['ct'];
	}
	
	function updateLastUse($addressid){
		$tbl = $this->tablename('user_address');
		
		$sql = "
			update $tbl set
				lastuse_date = now()
			where
				addressid = :addressid
		";
		$bind = array('addressid'=>$addressid);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		
		return true;
	}

	function insertAddress($userid, $data){
		$tbl = $this->tablename('user_address');
		
		$sql = "
			insert into $tbl(
				userid,
				zip1,
				zip2,
				prefecture_code,
				address_1,
				address_2,
				address_3,
				tel1,
				tel2,
				tel3,
				address_name_sei,
				address_name_mei,
				address_name_kana_sei,
				address_name_kana_mei,
				company_name,
				valid,
				create_date,
				modify_date
			)
			values(
				:userid,
				:zip1,
				:zip2,
				:prefecture_code,
				:address_1,
				:address_2,
				:address_3,
				:tel1,
				:tel2,
				:tel3,
				:address_name_sei,
				:address_name_mei,
				:address_name_kana_sei,
				:address_name_kana_mei,
				:company_name,
				1,
				now(),
				now()
			)
		";
		$bind = array(
			'userid'=>$userid,
			'zip1'=>$data['zip1'],
			'zip2'=>$data['zip2'],
			'prefecture_code'=>$data['prefecture_code'],
			'address_1'=>$data['address_1'],
			'address_2'=>$data['address_2'],
			'address_3'=>$data['address_3'],
			'tel1'=>$data['tel1'],
			'tel2'=>$data['tel2'],
			'tel3'=>$data['tel3'],
			'address_name_sei'=>$data['address_name_sei'],
			'address_name_mei'=>$data['address_name_mei'],
			'address_name_kana_sei'=>$data['address_name_kana_sei'],
			'address_name_kana_mei'=>$data['address_name_kana_mei'],
			'company_name'=>$data['company_name'],
		);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		
		$res = $this->lastId();
		$addrid = $res;

		$res = $this->updateMain($userid);
		if (!$res){
			return false;
		}
		
		return $addrid;
	}


	function updateAddress($addressid, $data){
		$tbl = $this->tablename('user_address');
		
		$sql = "
			update $tbl set
				zip1 = :zip1,
				zip2 = :zip2,
				prefecture_code = :prefecture_code,
				address_1 = :address_1,
				address_2 = :address_2,
				address_3 = :address_3,
				tel1 = :tel1,
				tel2 = :tel2,
				tel3 = :tel3,
				address_name_sei = :address_name_sei,
				address_name_mei = :address_name_mei,
				address_name_kana_sei = :address_name_kana_sei,
				address_name_kana_mei = :address_name_kana_mei,
				company_name = :company_name,
				modify_date = now()
			where
				addressid = :addressid
		";
		$bind = array(
			'addressid'=>$addressid,
			'zip1'=>$data['zip1'],
			'zip2'=>$data['zip2'],
			'prefecture_code'=>$data['prefecture_code'],
			'address_1'=>$data['address_1'],
			'address_2'=>$data['address_2'],
			'address_3'=>$data['address_3'],
			'tel1'=>$data['tel1'],
			'tel2'=>$data['tel2'],
			'tel3'=>$data['tel3'],
			'address_name_sei'=>$data['address_name_sei'],
			'address_name_mei'=>$data['address_name_mei'],
			'address_name_kana_sei'=>$data['address_name_kana_sei'],
			'address_name_kana_mei'=>$data['address_name_kana_mei'],
			'company_name'=>$data['company_name'],
		);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		return true;
	}
	
	
	function deleteAddress($addressid){
		$res = $this->getAddress($addressid);
		if (!$res){
			return false;
		}
		$baseaddr = $res;
		
		$tbl = $this->tablename('user_address');
		
		$sql = "
			update $tbl set
				valid = 0,
				ismain = null
			where
				addressid = :addressid
		";
		$bind = array('addressid'=>$addressid);
		$res = $this->query($sql, $bind);
		if (!$res){
			return false;
		}
		
		$res = $this->updateMain($baseaddr['userid']);
		if (!$res){
			return false;
		}
		return true;
	
	}
	
	function getAddressMain($userid){
		$tbl = $this->tablename('user_address');
		$sql = "
			select
				addressid
			from
				$tbl
			where
				userid = :userid
			and
				valid = 1
			and
				ismain = 1
		";
		$bind = array('userid'=>$userid);
		$res = $this->selectRow($sql, $bind);
		if ($res === false){
			return false;
		}
		if (!$res){
			return null;
		}
		$mainaddrid = $res['addressid'];
		return $this->getAddress($mainaddrid);
	}
	
	function updateMain($userid, $addrid=null){
		$tbl = $this->tablename('user_address');
		$res = $this->getAddressMain($userid);
		if ($res === false){
			return false;
		}
		$mainaddr = $res;
		
		if (!$addrid){
			if ($mainaddr){
				return true;
			}

			$sql = "
				select
					addressid
				from
					$tbl
				where
					userid = :userid
				and
					valid = 1
				order by addressid
			";
			$bind = array('userid'=>$userid);
			$res = $this->selectRow($sql, $bind);
			if ($res === false){
				return false;
			}
			if (!$res){
				return true;
			}
			
			$addrid = $res['addressid'];
		}
		else{
			if ($mainaddr){
				if ($mainaddr['addressid'] == $addrid){
					return true;
				}
				$sql = "
					update $tbl set
						ismain = null
					where
						addressid = :addressid
				";
				$bind = array('addressid'=>$mainaddr['addressid']);
				$res = $this->query($sql, $bind);
				if ($res === false){
					return false;
				}
			}
			
			$res = $this->getAddress($addrid);
			if (!$res){
				return false;
			}
			if ($res['userid'] != $userid){
				return false;
			}
		}
		$sql = "
			update $tbl set
				ismain = 1
			where
				addressid = :addressid
		";
		$bind = array('addressid'=>$addrid);
		$res = $this->query($sql, $bind);
		if ($res === false){
			return false;
		}
		
		return true;
	}

}