tips

welcartの購入完了メールの振込先情報をフィルターする。

welcartの「基本設定」ページ内の「ショップ設定」には、「振込先口座情報」を書く欄があります。同じく「基本設定」ページ内の「支払方法」で決済種別「振込」を選ぶと購入完了時に送られるサンキューメールに挿入される情報ですね。しかしこれ、「銀行振込」「郵便振替」「後払い」等々複数の決済方法がある場合は、改行してだらだらと書き連ねることになるから、たいへん可読性が悪い。

ウェブショップの要は一にも二にもユーザビリティ!! というわけで、お客さんが「支払方法」で選んだ特定の「振込」方法と同じ「振込先口座情報」だけをメールに表示しよう、というわけです。

で、usces_filter_mail_transfereeというフックを使いまして、ちょっと無理くりなフィルタリングで実現したのが以下。

 

functions.phpにフィルターを設置

<?php
// 受注メール内容(振込先口座情報)のフィルタリング
add_filter('usces_filter_mail_transferee', 'my_filter_mail_transferee',10,2);
function my_filter_mail_transferee( $transferee, $payment ){
   $paymentname = preg_quote( $payment['name'] );
   $pattern = "/<$paymentname>(.*?)</$paymentname>/su";
   preg_match_all($pattern, $transferee, $matches, PREG_SET_ORDER);
   if ($matches):
       $new_transferee = '';
       foreach ($matches as $match) $new_transferee .= $match[1]."n";
       $transferee = $new_transferee;
   endif;
   return $transferee;
}
?>

※ もろもろ表記がまずかったのでエスケープや条件分岐などを加えて書き直しました。(2015/11/06)

 

振込先口座情報の内容を下記の方法で分割

「支払方法」と同じ名称をタグ括弧でくくり表示した情報をマークアップします。

<支払い名>
メールに出したい情報
</支払い名>

これでマークアップされている箇所のみがサンキューメールに記載されます。


以上です。何ぶんウェブショップの肝の箇所なので、ご使用の際は充分にテストを重ねてから自己責任でお試しください

Your Comment

コードの記述は<pre>または<code>タグで括って下さい。自動的にエスケープされます。

 

右の文字を入力して下さい captcha