WordPressでオンラインショップが手軽に制作できるWelcartプラグイン。テーマカスタマイズの自由度が非常に高いのでよく利用しており、機能的なカスタマイズも少しずつ学んでいます。

今回のカスタマイズは、自動送信メールの差出人名を変更する方法です。Welcartが送信するメールの送信者名は、デフォルトではサイト名が入りますので、これを任意の文字列に変えてみます。

そもそも変更の理由なんですが、サイト名はSEOを意識して、ショップ名や会社名の前にキーワードやキャッチを盛り込んでいる場合があります。

「南フランス・ブルゴーニュのビンテージワインを送料無料でお届け おフランス屋」みたいな場合(これがSEO的にいいかどうかはビミョーとしても(笑))、注文後のサンキューメールや受注メールの送信者名までがこう長々となるのはやはり考え物ですよね。差出人はシンプルに「おフランス屋」でいいのではないかと。

ということで具体的な変更方法ですが、フィルターフックでカスタマイズしてfunctions.phpに記述を追加します。

送信メールの設定は、Welcartプラグイン本体内の「functions」フォルダ内の「function.php」に記載されています。各種メールごとに

'from_name' => get_option('blogname'),

という形で配列に格納しています。その配列に対してフィルターが用意されているので、そのフィルターをfunctions.phpでフックして書き直せばいい、ということになります。

ちなみにメールの送信準備をするための関数は、

  • usces_ajax_send_mail():管理画面から手動送信する各種メール
  • usces_send_ordermail():自動返信のサンキューメール
  • usces_send_regmembermail($user):入会完了後連絡メール
  • usces_send_delmembermail($user):退会完了連絡メール
  • usces_lostmail($url):パスワード再設定時の連絡メール

だと思います。これらの関数内で、’from_name’ => get_option(‘blogname’) で送信者名をサイト名にして配列に格納していますので、その後に出てくるフィルターをフック、str_replace関数でサイト名を置換して書き換えます。

ソースコードは以下のようになります。

// 管理画面から手動送信する各種メール
add_filter( 'usces_ajax_send_mail_para_to_customer', 'my_usces_ajax_send_mail_para_to_customer', 10, 3 );
function my_usces_ajax_send_mail_para_to_customer( $confirm_para ) {
  return str_replace( 'サイト名', '変更したい差出人名', $confirm_para );
}

// 自動返信のサンキューメール
add_filter( 'usces_send_ordermail_para_to_customer', 'my_usces_send_ordermail_para_to_customer', 10, 3 );
function my_usces_send_ordermail_para_to_customer( $confirm_para, $entry, $data ) {
  return str_replace( 'サイト名', '変更したい差出人名', $confirm_para );
}

// 入会完了後連絡メール
add_filter( 'usces_filter_send_regmembermail_para1', 'my_usces_filter_send_regmembermail_para1', 10, 3 );
function my_usces_filter_send_regmembermail_para1( $para1 ) {
  return str_replace( 'サイト名', '変更したい差出人名', $para1 );
}

// 退会完了連絡メール
add_filter( 'usces_filter_send_delmembermail_para1', 'my_usces_filter_send_delmembermail_para1', 10, 3 );
function my_usces_filter_send_delmembermail_para1( $para1 ) {
  return str_replace( 'サイト名', '変更したい差出人名', $para1 );
}

// パスワード再設定時の連絡メール
add_filter( 'usces_filter_send_lostmail_para1', 'my_usces_filter_send_lostmail_para1', 10, 3 );
function my_usces_filter_send_lostmail_para1( $para1 ) {
  return str_replace( 'サイト名', '変更したい差出人名', $para1 );
}

フィルター名と配列名を間違えないよう気をつけてください。元の配列には他に送信先のメールアドレスや名前、返信先等も含まれていますので、必要があればこれらも同様に書き換えることはできるかと思います。