当サイトには広告が含まれております

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

この記事は最終更新日から9年経過しています。内容が古い可能性があります。

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”]

この記事が気に入ったら
いいね または フォローしてね!

あなたのシェアが励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントを残す

記事をざっと見る