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

概要

woocommerce_email_from_addressは、WooCommerceで送信されるメールの送信元アドレスをカスタマイズするためのフィルタです。このフックは、特に次のような機能を実装する際によく使用されます。

  1. 特定のメール送信に異なるメールアドレスを設定する。
  2. 各種トランザクションメール(注文確認、出荷通知など)で送信元アドレスを変更する。
  3. メールの送信元を会社名や担当者名に基づいて動的に変更する。
  4. 環境(テストや本番)に応じて異なる送信元アドレスを設定する。
  5. ブランドやマーケティング戦略に基づいて統一された送信元アドレスを使用する。
  6. 顧客への信頼感を向上させるために、特定のドメインのメールアドレスを使用する。

構文

add_filter( 'woocommerce_email_from_address', 'function_name' );

パラメータ

  • string $email_address 変更される送信元のメールアドレス。

戻り値

  • string 変更された送信元のメールアドレス。

使用可能なバージョン

  • WooCommerce バージョン: 2.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_from_address', function( $email_address ) {
    return 'orders@yourdomain.com';
});

このコードは、WooCommerceから送信される全てのメールの送信元アドレスを orders@yourdomain.com に設定します。

サンプルコード 2

add_filter( 'woocommerce_email_from_address', function( $email_address, $email_id ) {
    if ( $email_id === 'customer_processing_order' ) {
        return 'support@yourcompany.com';
    }
    return $email_address;
}, 10, 2 );

このコードは、処理中の注文(customer_processing_order)のメールだけを support@yourcompany.com のアドレスで送信します。

サンプルコード 3

add_filter( 'woocommerce_email_from_address', function( $email_address ) {
    $current_user = wp_get_current_user();
    return $current_user->user_email ? $current_user->user_email : $email_address;
});

このコードは、もし現在のユーザーがログインしている場合、そのユーザーのメールアドレスを送信元アドレスとして使用します。それ以外の場合は元のアドレスを返します。

サンプルコード 4

add_filter( 'woocommerce_email_from_address', function( $email_address ) {
    if ( is_admin() ) {
        return 'admin@yourdomain.com';
    }
    return $email_address;
});

このコードは、管理画面からメールが送信される場合、送信元アドレスを admin@yourdomain.com に変更します。

サンプルコード 5

add_filter( 'woocommerce_email_from_address', function( $email_address ) {
    $day_of_week = date( 'l' );
    if ( $day_of_week === 'Monday' ) {
        return 'monday_mail@yourdomain.com';
    }
    return $email_address;
});

このコードは、月曜日に送信されるメールの送信元アドレスを monday_mail@yourdomain.com に設定し、それ以外の日は元のアドレスを使用します。

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


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