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

}