WPでECサイトを制作する際に無料で使えるプラグインwoocommerce。
非常に高機能なプラグインであるものの、ファイル数が多くフックも様々な部分にかかっているので、どの部分を触ればカスタマイズができるのかが分からないこともしばしば。
今回は注文の際にお客さんに送られる自動返信メールの文面を編集する場合、どのようにすればいいのかをご紹介します。
2020年7月21日に大幅に内容を更新しました。
お客さんのステータスとメールに関係するファイル名
メールに関係するファイルは、/インストールディレクトリ/wp-content/plugins/woocommerce/templates/emails の中に入っています。
届く人 | ファイル名 | |
新規注文 | 管理者 | admin-new-order.php |
キャンセル注文 | 管理者 | admin-cancelled-order.php |
失敗注文 | 管理者 | admin-failed-order.php |
注文保留 | お客さん | customer-on-hold-order.php |
処理中の注文 | お客さん | customer-processing-order.php |
完了済みの注文 | お客さん | customer-completed-order.php |
払い戻し注文 | お客さん | customer-refunded-order.php |
お客様へのインボイス 注文の詳細 |
お客さん | customer-invoice.php |
注文メモ | お客さん | customer-note.php |
パスワードをリセット | お客さん | customer-reset-password.php |
新しいアカウント | お客さん | customer-new-account.php |
お客さんに送られるメール
特にトラブルがなければ、
- 注文保留(銀行振込、店頭渡しなど):customer-on-hold-order.php
- 処理中(代金引換、クレジットカード決済):customer-processing-order.php
- 完了:customer-completed-order.php
という流れになります。
銀行振込や店頭渡しなどは「保留中」のステータスで入ってきます。
店舗としては入金待ちの状態ですね。
通販のみの場合は、自動返信メールに振込先などが掲載されていると親切でしょう。
「処理中」は既に代金を受け取った状態なので、店舗側では発送待ちの状態です。
店舗が発送したら「完了」へステータスを変更します。
店舗側が真面目にステータスを変更する場合は、最大3通お客さんへメールが届くことになりますね。
それぞれ適切な文面を掲載したいものです。
編集したり追記したりするのは、お手軽にできる方法、少し難しいカスタマイズ、自由にカスタマイズする方法といった3つの方法があります。
お手軽にできる方法と少し難しい方法の2点のみを紹介して、自由にカスタマイズするのは手順のみを掲載します。プログラミングの知識が必須です。時間を見つけて検証しますが、できたら公開します。
お手軽に編集、追記ができるメールの部分と編集する方法
例として掲載するのは新しいアカウントのメールについて
カスタマイズ前
ヘッダー:ようこそ{サイト名}へ
本文:adoc.biz様
コトウリでアカウントを作成していただき、ありがとうございます。ユーザー名はadoc.bizです。アカウントエリアから注文の表示、パスワードの変更などが可能です:URL
またのご利用をお待ちしております。
フッター:コトウリーBuilt With Woocommerce
となっていますね。
カスタマイズ後
ヘッダー:ご登録ありがとうございます。
本文:adoc.biz様
コトウリでアカウントを作成していただき、ありがとうございます。ユーザー名はadoc.bizです。アカウントエリアから注文の表示、パスワードの変更などが可能です:URL
----------------------------------------------
ショップ名:Adoc
Tel:06-0000-0000
Fax:06-0000-0000
H.P.:https://adoc.biz
Mail:info@adoc.biz
----------------------------------------------
フッター:コトウリ
としました。
カスタマイズ前に比べて、ずいぶんすっきりしたと思いませんか。
どこを編集すればカスタマイズできるの?
woocommerce→メール→管理ボタンで入れます。
ヘッダー・追加コンテンツのカスタマイズ
管理ボタンをクリックすると詳細に入れます。
この画面で件名、メールヘッダーのテキスト、追加コンテンツのテキストを設定できます。
件名に{site_title}アカウントが作成されました
と書かれていますが、{site_title}というのはプレースホルダーとして登録されているショートコードみたいなものです。
自由にカスタマイズする方法は、必要な情報(顧客情報など)をプレースホルダーに登録して、自由にカスタマイズするという方法です。
何となく手順はイメージできるのですが、書いてみないと分からないので検証待ちです。
フッター
ヘッダー・追加コンテンツのカスタマイズはwoocommerce→メールをスクロールするとEメールテンプレートというメニューがあります。
フッターテキスト以外にもベースカラーや背景色などが変更できます。
こちらでもプレースホルダーが掲載されていますね。
残るは本文ですが、この部分が少しややこしいです。
少し難しいカスタマイズ
赤で囲んだ部分が少しややこしいです。
この部分を出力しているのはテンプレートファイルcustomer-new-account.phpのこの部分です。
コード
<?php /* translators: %s: Customer username */ ?>
<p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $user_login ) ); ?></p>
<?php /* translators: %1$s: Site title, %2$s: Username, %3$s: My account link */ ?>
<p><?php printf( esc_html__( 'Thanks for creating an account on %1$s. Your username is %2$s. You can access your account area to view orders, change your password, and more at: %3$s', 'woocommerce' ), esc_html( $blogname ), '<strong>' . esc_html( $user_login ) . '</strong>', make_clickable( esc_url( wc_get_page_permalink( 'myaccount' ) ) ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>
この部分を
adoc.biz様
コトウリでアカウントを作成していただき、ありがとうございます。ユーザー名はadoc.bizです。アカウントエリアから注文の表示、パスワードの変更などが可能です:URL
という日本語に翻訳してくれているファイルがあります。
日本語に翻訳してくれているファイル
こういったwoocommerceの注文ステータスごとにメールに掲載する文章を決めているのがwoocommerce-ja.poというファイルです。
#. translators: %1$s: Site title, %2$s: Username, %3$s: My account link
#: templates/emails/customer-new-account.php:25
#: templates/emails/plain/customer-new-account.php:27
msgid "Thanks for creating an account on %1$s. Your username is %2$s. You can access your account area to view orders, change your password, and more at: %3$s"
msgstr "%1$s でアカウントを作成していただき、ありがとうございます。ユーザー名は %2$s です。アカウントエリアから注文の表示、パスワードの変更などが可能です: %3$s"
msgid(デフォルトのメッセージ)に書かれている文字列をmsgstr(地域の言葉、この場合は日本語)へ変換しています。
translators: %1$s: Site title, %2$s: Username, %3$s: My account link
でサイト名を%1$s...といった引数にしています。
"%1$s でアカウントを作成していただき、ありがとうございます。ユーザー名は %2$s です。アカウントエリアから注文の表示、パスワードの変更などが可能です: %3$s"
コトウリでアカウントを作成していただき、ありがとうございます。ユーザー名はadoc.bizです。アカウントエリアから注文の表示、パスワードの変更などが可能です:URL
この部分""で囲まれた部分を編集すると、好きなメッセージを掲載することができます。
引数を増やせばなんでもできるのかもしれませんが、どのファイルに定義すればいいのかが分からないので検証中です。
woocommerce-ja.poはどこにある?
/インストールしたディレクトリ/wp-content/languages/pluginsに入っています。
FTPソフトでファイルをダウンロードして下さい。
テキストエディタで開くことができるので、編集は簡単ですが2020年7月21日現在で40232行あるので、お目当ての部分を探すのは結構大変です。
ここで、コピーしたテンプレートファイルが意味を持ってきます。
テンプレートファイルに書いてあるmsgidで検索しよう
<?php printf( esc_html__( 'Thanks for creating an account on
.poファイルは、msgidで出力するメッセージを決めています。
.poファイルをテキストエディタで開いて、"Thanks for"とかで検索すると早めに見つかります。
メールの本文の編集が必要なファイルのmsgidを全て揃えた状態で、編集して上書き保存しましょう。
上書き保存した.poファイルを.moに変換(コンパイル)して、指定された場所にアップロードすれば設定したメールにできます。
.moに変換はどうするの?
.poから.moへ変換するにはPoedeitというテキストエディタを使います。
.poファイルをPoeditで開いて、ファイル→Moへコンパイルします。
後は、.poファイルと.moファイルを保存しましょう。
woocommerce-ja.poとwoocommerce-ja.poはどこにアップロード?
元々あった場所からひとつ上の階層へアップロードして下さい。
また、アップロードする前にwoocommerceフォルダを作ってpoとmoを格納してからアップロードして下さい。
元々あった場所
/インストールしたディレクトリ/wp-content/languages/plugins
アップロードする場所
/インストールしたディレクトリ/wp-content/languages
テンプレートファイルを編集する場合
テンプレートファイルは/wp-content/plugins/woocommerce/templates/emails
にあります。
これらを編集する場合は、emailsの中身を丸ごとダウンロードして、/wp-content/themes/子テーマ/woocommerce/emailsの中にアップロード。
個別にフォルダを作らなくても、子テーマを作っておけば、管理画面→woocommerce→設定→上部タブ「メール」から入れる画面で編集したい項目で「管理」をクリックすればコピーできます。
注文保留の項目の詳細部分が出てきます。
テーマファイルをコピーをクリックすると、使用しているテーマ(現状だとstorefront、実際に運用する場合はstorefront_childのような子テーマ)にコピーされるので簡単です。
テーマファイルをコピーすると、FTPソフトでテーマにもコピーされているのが分かります。
HTMLメール
メールの件名とメールヘッダーに書いてある文言は、メールの各項目で修正が可能です。
デフォルトは
メールの件名:サイトタイトル 注文日時 注文を受け付けいたしました。
メールヘッダー:ご注文ありがとうございます。
といった形です。
テキストメールだと
こんな感じになります。
HTMLメールの方が見栄えがいいですね。
難しい方法
2種類の方法を考えています。
理論上はどちらかでできるはずなのですが、こちらは検証中です。
functions.phpへ必要な情報を取得する関数を作る。
テンプレートファイルとpoファイルへ定義した関数を記載する。
または、必要な情報を出力できるようにプレースホルダーを使えるようにする。
メール→管理でプレースホルダーを使ったメッセージを記載する。
二つ目の方が管理側が使いやすいので、こっちができるように頑張ります。
poファイルやテンプレートファイルを編集する場合は、必ずバックアップを取った上で作業を行ってください。