SOY CMS / SOY Shop

ブログトップ

SOY Shopプラグインの解説 メールの文面に追加

2014年02月14日

今回は拡張ポイントのsoyshop.order.mail.phpを見ていきたいと思います。

拡張ポイントの詳しい説明は下記の記事をご覧ください。

SOY Shopプラグインの解説 拡張ポイントについて




soyshop.order.mail.phpはSOY Shopから出力される送信メールの文面に、

プラグインからの情報を追加できる拡張ポイントです。


先に商品オプションプラグインのsoyshop.order.mail.phpを見ると

他の拡張ポイントと異なり、

SOYShopPlugin::extension("soyshop.order.mail.user", "common_item_option", "CommonItemOptionMail");

SOYShopPlugin::extension("soyshop.order.mail.confirm", "common_item_option", "CommonItemOptionMail");

SOYShopPlugin::extension("soyshop.order.mail.admin", "common_item_option", "CommonItemOptionMail");

extensionで3種類登録しています。


soyshop.order.mail.phpでは、

SOY Shopから送信される各種メールで、どのメールでこのプラグインを有効にするか?をextensionで決めることができます。


では、具体的に見てみると、

/soyshop/webapp/src/logic/extensions/soyshop.order.mail.phpを開くと

ファイルの末尾にあるregisterPluginが6種類あります。


上から順に

soyshop.order.mail : すべてのメール

soyshop.order.mail.user : お客様宛てメール

soyshop.order.mail.admin : 管理者宛てメール

soyshop.order.mail.confirm : 受付確認メール(未実装)

soyshop.order.mail.payment : 支払い確認メール(未実装)

soyshop.order.mail.delivery : 配送確認メール(未実装)

となっており、


商品オプションプラグインではお客様宛てと管理者宛てとなっている。




拡張ポイントのコードを見ると


class SOYShopOrderMail implements SOY2PluginAction{

	/* 注文内容 SOYShop_Order */
	protected $order;

	/**
	 * メール本文を取得
	 * @return string
	 */
	function getMailBody(SOYShop_Order $order){

	}

	/**
	 * 表示順序
	 * @return number
	 */
	function getDisplayOrder(){
		return 1;
	}

	private $isUse = false;

	function setIsUse($flag){
		$this->isUse = (boolean)$flag;
	}

	function isUse(){
		return $this->isUse;
	}
	
	public function setOrder($order){
		$this->order = $order;
	}
}

ここでよく使うのは本文を出力するgetMailBody関数と、

メール文面での表示順に関するgetDisplayOrder関数で、


getMailBody関数では文字列を返し、

getDisplayOrder関数では数字を返すことになっています。