File: /var/www/html/wp-content/plugins/ganryu_shop/action/Abstract.php
<?php
class ganryu_shop_action_Abstract{
var $method;
var $inTransaction = false;
function initialize(){
$this->method = getenv('REQUEST_METHOD');
}
function isPost(){
return $this->method == "POST";
}
function g($nm){
if (!array_key_exists($nm, $_GET)){
return null;
}
return $_GET[$nm];
}
function p($nm){
if (!array_key_exists($nm, $_POST)){
return null;
}
return $_POST[$nm];
}
function p_list($prefix){
$vals = $this->p_vals($prefix);
return array_keys($vals);
}
function p_vals($prefix){
$res = array();
foreach ($_POST as $k=>$v){
if (strlen($k) < $prefix) continue;
if (substr($k, 0, strlen($prefix)) != $prefix) continue;
$res[substr($k, strlen($prefix))] = $v;
}
return $res;
}
function f($nm){
$f = new grys_upload_file();
$res = $f->inputFile($nm);
return $f;
}
function createFile($bin){
$f = new grys_upload_file();
$res = $f->inputFromBinary($bin);
return $f;
}
function loadModel($model){
require_once GANRYU_SHOP_ROOT.'/model/'.$model.'.php';
$cls = "ganryu_shop_model_".$model;
return new $cls();
}
function begin(){
global $wpdb;
$wpdb->query('begin');
$this->inTransaction = true;
}
function finish($flg=false){
global $wpdb;
$this->inTransaction = false;
if ($flg){
$wpdb->query('commit');
}
else{
$wpdb->query('rollback');
}
}
function error($msg="Server Error"){
if ($this->inTransaction){
$this->finish();
}
echo "ERROR:".$msg;
}
function redirect($act, $sub, $param){
$url = admin_url().'admin.php?page='.$act.'&page_action='.$sub;
if ($param){
$url .= '&'.http_build_query($param);
}
echo '<script>window.location.href=\''.$url.'\'</script>';
}
function js_output($data){
print json_encode($data);
exit;
}
function attachTemplate($path, $_data){
$_file = GANRYU_SHOP_ROOT.'/template/'.$path.'.php';
if (!is_readable($_file)){
print "$_file not found";
return;
}
foreach ($_data as $_k=>$_v){
if ($_k[0] == "_") continue;
$$_k = $_v;
}
require $_file;
}
function needsFrontLogin(){
if (!is_user_logged_in()){
/*
$afterlogin = grys_request_path(true);
$this->frontTemplate('ganryu_shop/login', array('afterlogin'=>$afterlogin));
return true;
*/
echo do_shortcode('[wp-members page="user-profile"]');
return true;
}
return false;
}
function frontTemplate($path, $_data){
$_file = get_template_directory().'/'.$path.'.php';
if (is_readable($_file)){
foreach ($_data as $_k=>$_v){
if ($_k[0] == "_") continue;
$$_k = $_v;
}
$_currentUser = $this->currentUser();
$_islogin = ($_currentUser->get('ID') > 0);
require $_file;
}
}
function currentUser(){
return wp_get_current_user();
}
function forMail($type, $opt){
$cf = $this->loadModel('Config');
$res = $cf->getMailTemplate($type);
if (!$res){
return false;
}
$mtp = $res;
if ($type == "cart_complete" ||$type == "cart_complete_bank" || $type == "cart_complete_admin" || $type == "deliv_complete"){
$pid = $opt;
$pur = $this->loadModel('Purchase');
$res = $pur->getPurchase($pid);
if (!$res){
return false;
}
$pdata = $res;
$res = $pur->getPurchaseItem($pid);
if (!$res){
return false;
}
$items = $res;
$res = $pur->getPurchaseDeliv($pid);
if (!$res){
return false;
}
$address = $res;
$maddr = $address[0];
$mid = "";
$mid .= "-----------------------------------------------\n";
$itm = $this->loadModel('Item');
foreach ($items as $pitem){
$res = $itm->getSubItem($pitem['subitemid']);
if (!$res){
return false;
}
$subitem = $res;
$res = $itm->getItem($subitem['itemid']);
if (!$res){
return false;
}
$item = $res;
$labels = $itm->getCategorySetupLabels($item['itemid']);
$cate = array();
if ($subitem['category1']){
$cate[] = $itm->getItemCategory($subitem['category1']);
}
if ($subitem['category2']){
$cate[] = $itm->getItemCategory($subitem['category2']);
}
$sztxt = "";
for ($i = 0; $i < count($labels); $i++){
$sztxt .= $labels[$i]." : ".$cate[$i]['catelabel']." ";
}
$mid .= $item['itemname'];
if ($sztxt) $mid .= "(".$sztxt.")";
$mid .= "\n";
$mid .= $pitem['price_unit']."円(税別) x".$pitem['num']."\n";
$mid .= "\n";
}
$mid .= "商品合計:".number_format($pdata['price_sum'])."円\n";
$mid .= "税込価格:".number_format($pdata['price_tax_sum'])."円\n";
$mid .= "送料:".number_format($pdata['deliv_cost'])."円\n";
//$mid .= "ポイント利用:".number_format($pdata['pay_point'])."pt\n\n";
$mid .= "ご請求金額:".number_format($pdata['pay_money'])."円\n\n";
if ($pdata['delivcost_separate_ticket']){
$mid .= "※チケット以外の商品の通常配送を選択されております。\n";
}
$mid .= "お届け先\n";
$mid .= "〒".$maddr['zip1']."-".$maddr['zip2']."\n";
$mid .= grys_prefecture_name($maddr['prefecture_code']).$maddr['address_1'].$maddr['address_2']."\n";
$mid .= "TEL:".$maddr['tel1']."-".$maddr['tel2']."-".$maddr['tel3']."\n";
$mid .= "\n";
if ($maddr['company_name']){
$mid .= $maddr['company_name']."\n";
}
$mid .= $maddr['address_name_sei']." ".$maddr['address_name_mei'];
$mid .= "(".$maddr['address_name_kana_sei']." ".$maddr['address_name_kana_mei'].")\n";
$mid .= "\n";
$mid .= "お届け日:";
$mid .= ($maddr['wish_day'])?grys_ymd($maddr['wish_day']):"指定なし";
$mid .= "\n";
$wishtime_txt = "指定なし";
if ($maddr['wish_time'] == "am") $wishtime_txt = "午前";
else if ($maddr['wish_time'] == "pm") $wishtime_txt = "午後";
else if (isset($maddr['wish_time'])) $wishtime_txt = str_replace('pm', '', $maddr['wish_time']).'時';
$wishtime_txt = str_replace('_', '~', $wishtime_txt);
$mid .= "お届け時間:".$wishtime_txt."\n";
$paytxt = "";
if ($pdata['paytype'] == 1) $paytxt = "クレジットカード";
if ($pdata['paytype'] == 2) $paytxt = "銀行振込";
if ($pdata['paytype'] == 3) $paytxt = "代金引換";
if ($pdata['paytype'] == 11) $paytxt = "ジャパンネット銀行";
if ($pdata['paytype'] == 12) $paytxt = "楽天銀行";
if ($paytxt){
$mid .= "お支払方法:".$paytxt."\n";
}
$mid .= "-----------------------------------------------\n";
$email = "";
if ($pdata['userid']){
$user = get_userdata($pdata['userid']);
$email = $user->get('user_email');
}
else{
$email = $pdata['email'];
}
$adminurl = "";
if ($type == "cart_complete_admin"){
$adminurl = admin_url().'admin.php?page=ganryu_shop_purchase&page_action=detail&pid='.$pdata['purchaseid'];
}
$replacedata = array(
'name_sei'=>$maddr['address_name_sei'],
'name_mei'=>$maddr['address_name_mei'],
'email'=>$email,
'purchasecode'=>$pdata['purchasecode'],
'admin_url'=>$adminurl,
'pay_money'=>number_format($pdata['pay_money'])
);
foreach ($mtp as $nm=>$val){
$val = grys_text_replace($val, $replacedata);
$mtp[$nm] = $val;
}
$senddata = array(
'to'=>$mtp['mailto'],
'subject'=>$mtp['mailtitle'],
'body'=>$mtp['mailheader'].$mid.$mtp['mailfooter'],
'headers'=>array('From'=>$mtp['mailfrom'])
);
$adminuser = get_userdata(1);
$adminto = $adminuser->get('display_name').'<'.$adminuser->get('user_email').'>';
if (!$senddata['to']){
$senddata['to'] = $adminto;
}
if (!$senddata['headers']['From']){
$senddata['headers']['From'] = $adminto;
}
return $senddata;
}
return false;
}
}