WordPressのプラグインであり、ネットショップ(ECサイト)が手軽に作れる「Welcart」(ウェルカート)。
純国産のプラグイン(基本プラグインは無料)ということもあり、弊社でも活用させていただいております。
※「Welcart パートナー制度」のパートナーにも認定されております。
そんな便利な「Welcart」ですが、使っていると、やはり何かと細かなカスタマイズが必要になってくるもの。
カスタマイズにも難易度が様々ですが、ある程度汎用的に使えるものについて、カスタマイズ方法を公開していこうと思います。
「Welcart」は国内シェアNo.1、28000以上のサイトで稼働中。(公式サイト発表)
多少であれ、使い勝手があがることで、日本にあるネットショップの利便性向上に繋がれば幸いです。
やりたいこと
Welcartに(お客様が)会員登録した時。登録情報を変更した時。退会した時。
Welcartからメールが送信されるようになっています。
しかし、システムで自動生成される内容が、結構素っ気ないものだったりします。。
【登録情報】 -------------------------------- 会員番号 : 9999 氏名 : テスト タロウ 様 メールアドレス : xxxx@xxxxxxxx.xxx --------------------------------
会員情報としては住所や電話番号などもありますが、入力情報を全てメールに出力したいケースもあると思います。
それを実現するカスタマイズ方法です。
- メールは「お客様向け」と「管理者向け」の2種類ありますが、どちらに対してもカスタマイズをすることが可能です。
(どちらか一方も可能) - Welcartの設定で会員登録時の項目を追加できますが(カスタム・メンバーフィールド)、そちらの内容も出力することが可能です。
検証環境
- WordPress 5.7.2(執筆時点最新)
- Welcart 2.2.4(執筆時点最新)
留意事項
当カスタマイズは「簡単」ですが、方法としては「禁じ手」です。
それは、Welcartプラグインを直接修正しているためです。
プラグイン直接修正は、プラグインをアップデートすると全て消えてしまいます。
そのため、アップデートの度に、再度コードを貼り付ける必要があります。
プラグインの直近化は、ECサイトにおける「セキュリティのきほんのき」です。
当カスタマイズを復元するのが面倒なのでアップデートしない、ということは絶対にないようにお願いいたします。
※繰り返しになりますが、アップデートしても、もう一度コードを貼り付ければ完了です。
(Welcartの仕様が大幅に変更されない限り)
注意!!(2022/01/27追記)
Welcart 2.3以降、コード内容に変更があり、以下に記載した内容そのままでの適用はできなくなっています。
(HTML形式メールへの対応に伴い、コード内容に見直しが入ったものと思われます)
なお、同様のカスタマイズ自体は可能です。
その際は、お気軽にお問い合わせください。
株式会社グロリア 代表 石黒直樹 弊社にご興味をお持ちいただきありがとうございます。 当サイトコンテンツ、サービスに関すること、製品レビュー依頼、書籍『情シスの定石』、書籍『図解即戦力 システム設計の教科書』、[…]
コード
Welcartプラグイン(Welcart e-Commerce) > functions > function.php
が、メール送信をコントロールしているコードになります。
該当する関数は下記。
usces_send_regmembermail():新規会員登録時のメール送信
usces_send_updmembermail():会員情報更新時のメール送信
usces_send_delmembermail():退会時のメール送信
それぞれの関数内で「お客様向け」と「管理者向け」の出力内容を生成しています。
カスタマイズしたい箇所に、出力したい項目を追加してやればOKです。(青字部分)
関数によって、若干「値」の取得方法が異なります。
追加項目については、項目名が以下のルールとなります。
設定されたフィールドキーの名称に変更してご利用ください。
新規登録時 → csmb_フィールドキー
更新、退会時 → フィードキー
なお、Welcartは「翻訳」処理をして出力する文言を決定していますが、
当カスタマイズは日本語でそのまま出力する形としています。(翻訳する必要性がないため)
■ functions > function.php function usces_send_regmembermail($user) { 〜中略〜 $message .= __('Registration contents', 'usces')."\r\n"; $message .= '--------------------------------'."\r\n"; $message .= __('Member ID', 'usces') . ' : ' . $user['ID'] . "\r\n"; $message .= __('Name', 'usces') . ' : ' . $name . "\r\n"; $message .= __('e-mail adress', 'usces') . ' : ' . $mailaddress1."\r\n"; // カスタマイズ // 会員登録新規(お客様宛) メール送信内容への項目追加 $message .= "フリガナ : " . $user['name3'] . " " . $user['name4'] . " 様\r\n"; $message .= "郵便番号 : " . $user['zipcode'] . "\r\n"; $message .= "都道府県 : " . $user['pref'] . "\r\n"; $message .= "市区郡町村 : " . $user['address1'] . "\r\n"; $message .= "番地 : " . $user['address2'] . "\r\n"; $message .= "ビル・マンション名 号室 : " . $user['address3'] . "\r\n"; $message .= "電話番号 : " . $user['tel'] . "\r\n"; $message .= "FAX番号 : " . $user['fax'] . "\r\n"; $message .= "追加項目1 : " . $user['csmb_add_column1'] . "\r\n"; // ここまで $message .= '--------------------------------'."\r\n\r\n"; $message .= $mail_data['footer']['membercomp']; 〜中略〜 if($newmem_admin_mail){ 〜中略〜 $message .= __('e-mail adress', 'usces') . ' : ' . $mailaddress1."\r\n"; // カスタマイズ // 会員登録新規(管理者宛) メール送信内容への項目追加 $message .= "フリガナ : " . $user['name3'] . " " . $user['name4'] . " 様\r\n"; $message .= "郵便番号 : " . $user['zipcode'] . "\r\n"; $message .= "都道府県 : " . $user['pref'] . "\r\n"; $message .= "市区郡町村 : " . $user['address1'] . "\r\n"; $message .= "番地 : " . $user['address2'] . "\r\n"; $message .= "ビル・マンション名 号室 : " . $user['address3'] . "\r\n"; $message .= "電話番号 : " . $user['tel'] . "\r\n"; $message .= "FAX番号 : " . $user['fax'] . "\r\n"; $message .= "追加項目1 : " . $user['csmb_add_column1'] . "\r\n"; // ここまで $message .= '--------------------------------'."\r\n\r\n"; 〜中略〜 } 〜中略〜 } function usces_send_updmembermail( $user ) { 〜中略〜 if( $updmem_customer_mail ) { 〜中略〜 $message .= __('e-mail adress', 'usces').' : '.$mailaddress1."\r\n"; // カスタマイズ // 会員登録更新(お客様宛) メール送信内容への項目追加 $message .= "フリガナ : " . $user['name3'] . " " . $user['name4'] . " 様\r\n"; $message .= "郵便番号 : " . $user['zipcode'] . "\r\n"; $message .= "都道府県 : " . $user['pref'] . "\r\n"; $message .= "市区郡町村 : " . $user['address1'] . "\r\n"; $message .= "番地 : " . $user['address2'] . "\r\n"; $message .= "ビル・マンション名 号室 : " . $user['address3'] . "\r\n"; $message .= "電話番号 : " . $user['tel'] . "\r\n"; $message .= "FAX番号 : " . $user['fax'] . "\r\n"; $message .= "追加項目1 : " . $_POST['custom_member']['add_column1'] . "\r\n"; // ここまで $message .= '--------------------------------'."\r\n\r\n"; $message .= $mail_data['footer']['membercomp']; 〜中略〜 } 〜中略〜 if( $updmem_admin_mail ) { 〜中略〜 $message .= __('e-mail adress', 'usces') . ' : '.$mailaddress1."\r\n"; // カスタマイズ // 会員登録更新(管理者宛) メール送信内容への項目追加 $message .= "フリガナ : " . $user['name3'] . " " . $user['name4'] . " 様\r\n"; $message .= "郵便番号 : " . $user['zipcode'] . "\r\n"; $message .= "都道府県 : " . $user['pref'] . "\r\n"; $message .= "市区郡町村 : " . $user['address1'] . "\r\n"; $message .= "番地 : " . $user['address2'] . "\r\n"; $message .= "ビル・マンション名 号室 : " . $user['address3'] . "\r\n"; $message .= "電話番号 : " . $user['tel'] . "\r\n"; $message .= "FAX番号 : " . $user['fax'] . "\r\n"; $message .= "追加項目1: " . $_POST['custom_member']['add_column1'] . "\r\n"; // ここまで $message .= '--------------------------------'."\r\n\r\n"; 〜中略〜 } 〜中略〜 } function usces_send_delmembermail( $user ) { 〜中略〜 if( $delmem_customer_mail ) { 〜中略〜 $message .= __('e-mail adress', 'usces').' : '.$mailaddress1."\r\n"; // カスタマイズ // 会員登録削除(お客様宛) メール送信内容への項目追加 $message .= "フリガナ : " . $user['name3'] . " " . $user['name4'] . " 様\r\n"; $message .= "郵便番号 : " . $user['zipcode'] . "\r\n"; $message .= "都道府県 : " . $user['pref'] . "\r\n"; $message .= "市区郡町村 : " . $user['address1'] . "\r\n"; $message .= "番地 : " . $user['address2'] . "\r\n"; $message .= "ビル・マンション名 号室 : " . $user['address3'] . "\r\n"; $message .= "電話番号 : " . $user['tel'] . "\r\n"; $message .= "FAX番号 : " . $user['fax'] . "\r\n"; $message .= "追加項目1 : " . $user['custom_member']['add_column1'] . "\r\n"; // ここまで $message .= '--------------------------------'."\r\n\r\n"; 〜中略〜 } 〜中略〜 if( $delmem_admin_mail ) { 〜中略〜 $message .= __('e-mail adress', 'usces') . ' : '.$mailaddress1."\r\n"; // カスタマイズ // 会員登録削除(管理者宛) メール送信内容への項目追加 $message .= "フリガナ : " . $user['name3'] . " " . $user['name4'] . " 様\r\n"; $message .= "郵便番号 : " . $user['zipcode'] . "\r\n"; $message .= "都道府県 : " . $user['pref'] . "\r\n"; $message .= "市区郡町村 : " . $user['address1'] . "\r\n"; $message .= "番地 : " . $user['address2'] . "\r\n"; $message .= "ビル・マンション名 号室 : " . $user['address3'] . "\r\n"; $message .= "電話番号 : " . $user['tel'] . "\r\n"; $message .= "FAX番号 : " . $user['fax'] . "\r\n"; $message .= "追加項目1: " . $user['custom_member']['add_column1'] . "\r\n"; // ここまで $message .= '--------------------------------'."\r\n\r\n"; 〜中略〜 } 〜中略〜 }
お断り
当カスタマイズは自己責任でお願いいたします。
また、当内容はWelcart公式との関係はありません。
ご利用されたことによるあらゆる損害について、弊社では一切の責任を負いません。
また、当記事内容に対する「無償サポート」はお断りしております。
ご質問やご相談、カスタマイズのお見積り、トラブルシューティング依頼などは、お問い合わせフォームよりご連絡ください。
株式会社グロリア 代表 石黒直樹 弊社にご興味をお持ちいただきありがとうございます。 当サイトコンテンツ、サービスに関すること、製品レビュー依頼、書籍『情シスの定石』、書籍『図解即戦力 システム設計の教科書』、[…]
絶賛配信中!
メルマガ詳細はこちら >>>
広告を含むご案内のメールをお送りする場合があります。
以下も、ぜひご活用ください^^