baserCMSでお問い合わせのfromをカスタマイズする方法

この記事は約6分で読めます。

RYUSのコーポレートサイトはbaserCMSで作っています。お盆明け休みの今日はお問い合わせをいただいていて返信作業などしていましたが、Fromが自社のメールアドレスになっているためメーラーによっては返信の時に宛先が自社になってしまいます。
Fromをお問い合わせいただいたお客様のメールアドレスにすればいいのでその部分をカスタマイズしてみました。

スポンサーリンク

カスタマイズするソースはすぐに見つかりました

カスタマイズしようとgrepでソースを検索したところ、該当するところは

lib\Baser\Plugin\Mail\Controller\MailController.php

    protected function _sendEmail() {

        // 管理者に送信
        if (!empty($adminMail)) {
            $data['other']['mode'] = 'admin';
            $options = array(
                'fromName' => $mailContent['sender_name'],
                'replyTo' => $userMail,
                'from' => $fromAdmin,
                'template' => 'Mail.' . $mailContent['mail_template'],
                'bcc' => $mailContent['sender_2'],
                'agentTemplate' => false,
                'attachments'    => $attachments
            );
            $this->sendMail($adminMail, $mailContent['subject_admin'], $data, $options);
        }
    }

この部分だと言うことが分かりました。‘fromName’と’from’を変更すれば良さそうです。

        if (!empty($adminMail)) {
            $data['other']['mode'] = 'admin';
            // fromNameとfromを修正 20150817umoto
            $userName = '';
            if(isset($data['message']['name'])){
                $userName = $data['message']['name'];
            }
            $options = array(
                'fromName' => $userName,
                'replyTo' => $userMail,
                'from' => $userMail,
                'template' => 'Mail.' . $mailContent['mail_template'],
                'bcc' => $mailContent['sender_2'],
                'agentTemplate' => false,
                'attachments'    => $attachments
            );

fromの名前をformで入力してもらう名前(name)にして、fromメールアドレスを$userMailというユーザーが入力したメールアドレスにします。

しかしこの部分はいわゆるコア部分なので、baserCMS本体がアップデートされると上書きされます。ということでなるべくならこのソースはは直したくないです。

つまずいたポイント1 コピーしてアップロードする場所がわかりにくかった

今回は2つつまずいポイントがありました。そのうちの一番目はどこにコピーすればいいか分からないということでした。

この方法について、サイトを立ち上げた頃に誰かに教えてもらった気がするのですが忘れちゃっていました。たしかどこか別の所に書けばいいはずというぐらいはおぼえていたのですが。

そしてこちらのページを発見しました


カスタマイズ・機能追加について

の baserCMSの機能を上書きする という部分です。

baserCMSのクラスファイルや、テンプレートファイルは、全て {baserCMSの設置フォルダ}/lib/Baser フォルダに分離されており、app フォルダの同階層に、同じファイル名で配置するとそちらのファイルが読み込まれるようになっています。

とあります。baserCMSのルートフォルダには libフォルダappフォルダが存在しています。

こんな感じに、ちょっとわかりにくかったのですがここで言っているのは

ルート\lib\Baser\
 にあるものを修正したかったら
ルート\app\ に同じ構成で置けばいい ということのようです。

ということは今回は ルート\lib\Baser\Plugin\Mail\Controller にある MailController.php を修正したかったので

ルート\app\Plugin\Mail\Controller の下に 修正した MailController.php を置けばいいということのようでした。

つまずいたポイント2 コピーするファイルはすべてだった

上記のように修正したいファイルだけをコピーしてアップロードしました(後で考えてみるとこれはWordPressの子テーマのやり方と同じようにしちゃったみたいでした)。

そしてお問い合わせをクリックすると

エラー!404エラーになってしまいました(>_<)。

以前教えてもらって同じようにカスタマイズした \app\Plugin\Feed フォルダがあったので、中を見てみるとフォルダがいっぱいあってどうやら該当プラグインのすべてのフォルダとファイルをコピーしないとダメなんじゃ?という事に気づきました。

ということで ルート\lib\Baser\Plugin\Mail にあるすべてのフォルダとファイルをルート\app\Plugin\Mailにアップロードした上で、先ほど修正した MailController.php をルート\app\Plugin\Mail\Controllerにアップロードして再度動かしたところエラーがなくなりました。

思ったように修正できました

ということで、紆余曲折はしましたが思ったようにbaserCMSのお問い合わせフォームのfromメールアドレスと名前入力してもらったメールアドレスと名前にする修正ができました。

baserCMSのlibsにある部分の修正はこの方法で直せばいいようです。

やっと直したお問い合わせフォームはこちら(^^)/

[amazon_searchlink search=”CMS”]

兎本美佳

ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/
無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

ゆうそうとITブログの更新通知が受け取れます!
スポンサー広告

全般 プラグイン baserCMS
スポンサーリンク
ゆうそうとITブログの更新通知が受け取れます!
ゆうそうとITブログ

コメント

トップへ戻る

ゆうそうとについての説明

ゆうそうと とは東京都八王子市を中心として、WordPressによるWEBサイトの作成や、スポットでのIT相談を行ったり、年間契約でのIT顧問をなりわいとして活動しています。

特徴としては30年以上IT業界でプログラムを中心として仕事をしてきたものと、美大出身のデザイナーがワンストップで対応するため、幅広い対応が可能であることです。

IT相談は直接お会いしてのご相談の他、ZOOMによるオンライン相談も可能です。