【Welcart】【カスタマイズ】「会員登録メール」に住所などの項目を追加する方法

WordPressのプラグインであり、ネットショップ(ECサイト)が手軽に作れる「Welcart」(ウェルカート)。

純国産のプラグイン(基本プラグインは無料)ということもあり、弊社でも活用させていただいております。
※「Welcart パートナー制度」のパートナーにも認定されております。

【公式】Welcart |SEOに強い!初めてでも安心の無料ネットショップ作成ツール

そんな便利な「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公式との関係はありません。
ご利用されたことによるあらゆる損害について、弊社では一切の責任を負いません。

また、当記事内容に対する「無償サポート」はお断りしております。

ご質問やご相談、カスタマイズのお見積り、トラブルシューティング依頼などは、お問い合わせフォームよりご連絡ください。

お問い合わせ

株式会社グロリア 代表 石黒直樹 弊社にご興味をお持ちいただきありがとうございます。 当サイトコンテンツ、サービスに関すること、製品レビュー依頼、書籍『情シスの定石』、書籍『図解即戦力 システム設計の教科書』、[…]

※ご回答希望の場合は、ご連絡先も記入ください
"意見が持てる" デジタルコラム
絶賛配信中!

メルマガ詳細はこちら >>>

送信時点で「Privacy Policy」に同意したものとみなします。
広告を含むご案内のメールをお送りする場合があります。
   
         
最後までお読みいただき、ありがとうございました。
以下も、ぜひご活用ください^^
出版物
ITmedia
メルマガ
Site Access Log by HTTP Header
>情報システムの

情報システムの"教科書"本を発売中!


■ 情シス、システムコンサルタント、システムエンジニアの方へ
情シスの定石(技術評論社)

■ システムエンジニア、情シスの方へ
システム設計の教科書(技術評論社)

CTR IMG

株式会社グロリア ご紹介