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

概要

woocommerce_mail_callbackフィルタは、WooCommerceが送信するメールの内容を変更するために使用されるフックです。電子商取引サイトにおいて、顧客や管理者に送信されるメールは重要な要素であり、このフィルタを利用することでメールのタイトルや本文、さらには送信元アドレスなどを柔軟にカスタマイズできます。

よく使われる機能

  1. メールの件名を変更する
  2. メールの本文をカスタマイズする
  3. 特定の条件に基づいてメールを送信しないようにする
  4. メールに追加情報を含める
  5. メールの形式をHTMLに変更する
  6. 送信元のメールアドレスをカスタマイズする

構文

add_filter( 'woocommerce_mail_callback', 'your_function_name', 10, 3 );

パラメータ

  • $email_class: WooCommerceのメールクラスインスタンス。
  • $email_id: カスタマイズするメールのID。
  • $order: 注文オブジェクト(オプション)。

戻り値

通常、フィルタは変更されたメールの内容を返します。

対応バージョン

  • 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: メール件名の変更

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

add_filter( 'woocommerce_mail_callback', 'custom_change_order_email_subject', 10, 3 );
function custom_change_order_email_subject( $email_class, $email_id, $order ) {
    if ( 'new_order' === $email_id ) {
        return '新しい注文が入りました!ご確認ください。';
    }
    return $email_class->get_default_subject( $email_id );
}

引用元: https://woocommerce.com/

サンプル2: メール本文の追加

このコードは、注文確認メールにカスタムメッセージを追加します。

add_filter( 'woocommerce_mail_callback', 'append_custom_message_to_email', 10, 3 );
function append_custom_message_to_email( $email_class, $email_id, $order ) {
    if ( 'customer_invoice' === $email_id ) {
        $message = "この度はご注文ありがとうございます!";
        $email_class->body .= "nn" . $message;
    }
    return $email_class->body;
}

引用元: https://woocommerce.com/

サンプル3: 特定の条件でメールを送信しない

このサンプルでは、特定の条件が満たされない場合に新しい注文メールの送信を防ぎます。

add_filter( 'woocommerce_mail_callback', 'disable_new_order_email', 10, 3 );
function disable_new_order_email( $email_class, $email_id, $order ) {
    if ( 'new_order' === $email_id && ! $order->get_meta( 'address_verified' ) ) {
        return false; // メールを送信しない
    }
    return $email_class;
}

引用元: https://woocommerce.com/

サンプル4: メールの形式をHTMLに変更

このコードは、送信するメールの形式をHTMLに設定します。

add_filter( 'woocommerce_mail_callback', 'set_email_format_to_html', 10, 3 );
function set_email_format_to_html( $email_class, $email_id, $order ) {
    $email_class->is_html = true; // HTMLメールを適用
    return $email_class;
}

引用元: https://woocommerce.com/

サンプル5: 送信元メールアドレスの変更

このサンプルでは、メールの送信元アドレスをカスタマイズします。

add_filter( 'woocommerce_mail_callback', 'change_from_email_address', 10, 3 );
function change_from_email_address( $email_class, $email_id, $order ) {
    if ( 'customer_invoice' === $email_id ) {
        $email_class->from_email = 'custom@yourdomain.com'; // カスタムメールアドレス
    }
    return $email_class;
}

引用元: https://woocommerce.com/

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


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