概要
woocommerce_mail_callback
フィルタは、WooCommerceが送信するメールの内容を変更するために使用されるフックです。電子商取引サイトにおいて、顧客や管理者に送信されるメールは重要な要素であり、このフィルタを利用することでメールのタイトルや本文、さらには送信元アドレスなどを柔軟にカスタマイズできます。
よく使われる機能
- メールの件名を変更する
- メールの本文をカスタマイズする
- 特定の条件に基づいてメールを送信しないようにする
- メールに追加情報を含める
- メールの形式をHTMLに変更する
- 送信元のメールアドレスをカスタマイズする
構文
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/