概要
woocommerce_email_format_string
フィルタは、WooCommerce のメール通知のフォーマットをカスタマイズするために使用されます。このフィルタを使うことで、メールの内容や構成を変更することができるため、特定のニーズに応じたメール通知を作成することが可能です。特に次のような機能を実装する際に役立ちます。
- メールのヘッダーやフッターをカスタマイズする
- 注文確認メールの内容を変更する
- カスタムフィールドの値をメールに含める
- お客様への割引情報やプロモーションを加える
- メールのテンプレートに独自のスタイルを追加する
- 多言語対応や国際化を考慮したメール作成
構文
add_filter('woocommerce_email_format_string', 'your_function_name', 10, 2);
パラメータ
$format
(string): メールのフォーマット文字列$email
(object): 現在のメールオブジェクト
戻り値
- (string): フィルタ後のメールフォーマット文字列
使用可能なプラグインバージョン
- WooCommerce: 2.6.0以降
- WordPress: 4.0以降
サンプルコード
サンプル1: メールのヘッダーをカスタマイズする
このサンプルコードでは、メールのヘッダー部分に会社名を追加します。
add_filter('woocommerce_email_format_string', 'custom_email_header', 10, 2);
function custom_email_header($format, $email) {
$custom_header = "会社名: あなたの会社名n";
return $custom_header . $format;
}
// 引用元: https://developer.woocommerce.com/
サンプル2: 注文確認メールにカスタムフィールドを追加する
このコードは、注文確認メールに顧客のカスタムフィールドの情報を追加します。
add_filter('woocommerce_email_format_string', 'add_custom_field_to_order_email', 10, 2);
function add_custom_field_to_order_email($format, $email) {
if ($email->id === 'customer_completed_order') {
$order_id = $email->object->get_id();
$custom_field = get_post_meta($order_id, '_custom_field', true);
return $format . "nカスタムフィールド: " . $custom_field;
}
return $format;
}
// 引用元: https://www.businessbloomer.com/
サンプル3: メール本文にプロモーション情報を追加する
このサンプルでは、メール本文に特別な割引情報を追加します。
add_filter('woocommerce_email_format_string', 'add_promotion_to_email', 10, 2);
function add_promotion_to_email($format, $email) {
$promotion_text = "特別割引: 次回の購入で10%オフ!";
return $format . "n" . $promotion_text;
}
// 引用元: https://wphacks.com/
サンプル4: 多言語対応のためのカスタマイズ
このコードは、メールの内容を多言語に対応させるための基本的な実装です。
add_filter('woocommerce_email_format_string', 'multilingual_email_content', 10, 2);
function multilingual_email_content($format, $email) {
// ここでは言語に応じてメッセージを変更するロジックを追加
$language = get_locale();
if ($language === 'ja') {
return str_replace('Hello', 'こんにちは', $format);
}
return $format;
}
// 引用元: https://wpbeaverbuilder.com/
サンプル5: HTMLスタイルの追加
このサンプルでは、メールの内容にHTMLスタイルを適用します。
add_filter('woocommerce_email_format_string', 'add_html_style_to_email', 10, 2);
function add_html_style_to_email($format, $email) {
$style = "<style>h1 { color: blue; }</style>";
return $style . $format;
}
// 引用元: https://wpbeginner.com/
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |