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

概要

woocommerce_email_get_option フィルタは、WooCommerce が送信するメール(注文確認メール、顧客への通知メールなど)のオプション設定を取得・変更する際に使用されます。このフィルタを利用することで、特定のメールオプションをカスタマイズすることができます。

よく使われる機能

  1. メールの件名の変更
  2. メールの送信者名やメールアドレスの変更
  3. 特定のメールテンプレートのカスタマイズ
  4. メール本文にカスタムメッセージを追加
  5. メールのコンテンツタイプの変更
  6. メール送信の条件を追加・変更

構文

add_filter( 'woocommerce_email_get_option', 'custom_function_name', 10, 2 );

パラメータ

  • $option: 取得されるオプションの名前。
  • $email_id: 対象のメールのID。

戻り値

カスタマイズされたオプションの値。

使用可能なプラグインのバージョン

  • WooCommerce バージョン: 2.6 以降
  • 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_get_option', 'custom_sender_name', 10, 2 );

function custom_sender_name( $option, $email_id ) {
    if ( 'from_name' === $option && 'new_order' === $email_id ) {
        return '新しい送信者名';
    }
    return $option;
}

このコードは、新しい注文の際に送信されるメールの送信者名を変更します。

サンプル2: 注文確認メールの件名を変更する

add_filter( 'woocommerce_email_get_option', 'custom_order_confirmation_subject', 10, 2 );

function custom_order_confirmation_subject( $option, $email_id ) {
    if ( 'subject' === $option && 'customer_processing_order' === $email_id ) {
        return 'あなたの注文が処理中です!';
    }
    return $option;
}

このコードは、顧客に送信される処理中の注文メールの件名をカスタマイズします。

サンプル3: メールテンプレートをカスタマイズ

add_filter( 'woocommerce_email_get_option', 'custom_email_template', 10, 2 );

function custom_email_template( $option, $email_id ) {
    if ( 'email_type' === $option && 'customer_completed_order' === $email_id ) {
        return 'plain';
    }
    return $option;
}

このコードは、顧客へ送信される完了した注文メールのテンプレートタイプを変更します。

サンプル4: メール本文にカスタムメッセージを追加

add_filter( 'woocommerce_email_get_option', 'custom_email_message', 10, 2 );

function custom_email_message( $option, $email_id ) {
    if ( 'heading' === $option && 'customer_invoice' === $email_id ) {
        return 'カスタムメッセージを追加します';
    }
    return $option;
}

このコードは、請求書メールの見出しにカスタムメッセージを追加します。

サンプル5: メール送信条件の追加

add_filter( 'woocommerce_email_get_option', 'custom_email_condition', 10, 2 );

function custom_email_condition( $option, $email_id ) {
    if ( 'enabled' === $option && 'customer_invoice' === $email_id ) {
        return 'yes'; // メールを有効にする
    }
    return $option;
}

このコードは、請求書メールの送信条件を有効にします。

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


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