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

概要

woocommerce_email_headers フィルタは、WooCommerceが送信するメールのヘッダーをカスタマイズするために使用されます。このフィルタを利用することで、送信元メールアドレスやメールの件名、その他のカスタムヘッダーを追加することが可能です。主に次のような機能を実装する際によく使用されます。

  1. メールの送信元アドレスを変更する
  2. メールの件名をカスタマイズする
  3. カスタムヘッダーを追加する(例: CCやBCC)
  4. 特定の条件下でヘッダーの内容を調整する
  5. トラッキング用のヘッダーを追加する
  6. スパムフィルタ対策のためのヘッダーを設定する

構文

add_filter( 'woocommerce_email_headers', 'custom_email_headers', 10, 3 );

パラメータ

  • woocommerce_email_headers:フィルターフックの名前
  • custom_email_headers:カスタマイズする関数名
  • 10:優先度(低い数値ほど優先される)
  • 3:渡される引数の数

戻り値

  • 変更されたメールヘッダーの内容(文字列)

使用可能なバージョン

  • 使用可能なプラグインWooCommerceのバージョン:3.0.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_headers', 'change_sender_email', 10, 3 );
function change_sender_email( $headers, $email_id, $order ) {
    $headers .= 'From: Your Name <your-email@example.com>' . "rn";
    return $headers;
}

このサンプルコードは、WooCommerceから送信されるメールの送信元アドレスを変更します。

サンプルコード 2: カスタムヘッダーを追加する

add_filter( 'woocommerce_email_headers', 'add_custom_email_header', 10, 3 );
function add_custom_email_header( $headers, $email_id, $order ) {
    $headers .= 'X-Custom-Header: CustomValue' . "rn";
    return $headers;
}

ここでは、WooCommerceメールにカスタムヘッダー「X-Custom-Header」を追加します。

サンプルコード 3: BCCヘッダーを追加する

add_filter( 'woocommerce_email_headers', 'add_bcc_to_email_headers', 10, 3 );
function add_bcc_to_email_headers( $headers, $email_id, $order ) {
    $headers .= 'Bcc: bcc-recipient@example.com' . "rn";
    return $headers;
}

このサンプルは、BCCとして別の受信者のメールアドレスを追加する方法を示しています。

サンプルコード 4: メールの件名を変更する

add_filter( 'woocommerce_email_subject_new_order', 'custom_new_order_subject', 10, 2 );
function custom_new_order_subject( $subject, $order ) {
    return '新しい注文がありました: ' . $subject;
}

このコードは、新しい注文メールの件名をカスタマイズしています。

サンプルコード 5: 特定のメールタイプのヘッダーを条件付きで変更する

add_filter( 'woocommerce_email_headers', 'conditional_email_headers', 10, 3 );
function conditional_email_headers( $headers, $email_id, $order ) {
    if ( $email_id == 'customer_completed_order' ) {
        $headers .= 'From: Completed Order <completed@example.com>' . "rn";
    }
    return $headers;
}

このサンプルでは、特定のメールタイプ(完了した注文)のヘッダーを条件に応じて変更しています。

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


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