プラグインWooCommerceのwoocommerce_email_format_string_replaceフィルタの使用方法・解説

概要

woocommerce_email_format_string_replaceは、WooCommerceが送信するメールの内容を変更する際に使用されるフィルターフックです。このフィルターは、メールテンプレート内のプレースホルダーや特定の文字列を置き換えることができます。具体的には、以下のような機能を実装する際によく使用されます。

  1. メール内の特定の文言をカスタマイズする
  2. 挨拶文や結び文をパーソナライズする
  3. 注文情報や顧客情報を動的に表示する
  4. 特定の条件に基づいてメール内容を変更する
  5. HTML形式のメールにカスタムスタイルを適用する
  6. 統計やトラッキング用のリンクを追加する

構文

add_filter('woocommerce_email_format_string_replace', 'your_custom_function', 10, 2);

パラメータ

  • $format_string(string): 置き換え前のフォーマット文字列
  • $order(object): 現在の注文オブジェクト

戻り値

  • 置き換え後のフォーマット文字列(string)

バージョン情報

  • WooCommerceバージョン: 2.6.0以降
  • WordPressバージョン: 4.0以降

この関数のアクションでの使用可能性

アクション 使用可能性
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

サンプルコード

サンプルコード1

add_filter('woocommerce_email_format_string_replace', 'custom_email_format_string', 10, 2);

function custom_email_format_string($format_string, $order) {
    // 注文IDを追加
    return str_replace('{order_id}', $order->get_id(), $format_string);
}
  • このコードは、メールテンプレート内の{order_id}を実際の注文IDに置き換えます。

サンプルコード2

add_filter('woocommerce_email_format_string_replace', 'personalized_greeting', 10, 2);

function personalized_greeting($format_string, $order) {
    $customer_name = $order->get_billing_first_name();
    return str_replace('{greeting}', 'こんにちは ' . $customer_name . ' 様', $format_string);
}
  • このコードは、メールの挨拶文を顧客の名前でパーソナライズします。

サンプルコード3

add_filter('woocommerce_email_format_string_replace', 'custom_order_summary', 10, 2);

function custom_order_summary($format_string, $order) {
    $order_summary = '合計金額: ' . $order->get_total() . '円';
    return str_replace('{order_summary}', $order_summary, $format_string);
}
  • このコードは、注文の合計金額をメールに埋め込みます。

サンプルコード4

add_filter('woocommerce_email_format_string_replace', 'add_thank_you_note', 10, 2);

function add_thank_you_note($format_string, $order) {
    return $format_string . "nnご利用いただきありがとうございます!";
}
  • このコードは、メールの最後に感謝のメッセージを追加します。

サンプルコード5

add_filter('woocommerce_email_format_string_replace', 'track_event_code', 10, 2);

function track_event_code($format_string, $order) {
    $tracking_url = 'https://tracking.example.com/?order_id=' . $order->get_id();
    return str_replace('{tracking}', '<a href="' . $tracking_url . '">こちらをクリックして注文を追跡</a>', $format_string);
}
  • このコードは、顧客が注文を追跡できるリンクをメールに追加します。

この関数について質問する


上の計算式の答えを入力してください