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;
}
}