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

概要

woocommerce_mail_callback_params フィルタは、WooCommerceが送信するメールのパラメータを変更するために使用されるフックです。このフィルタを使用することで、メールの送信時に特定の情報を追加したり、変更したりすることができます。主に次のような機能を実装する際によく使われます。

  1. メールの件名をカスタマイズする
  2. メールの送信先を変更する
  3. メールの本文に追加情報を含める
  4. 添付ファイルを追加する
  5. メールの形式を変更する(テキストまたはHTML)
  6. メールのカスタムヘッダーを追加する

構文

add_filter('woocommerce_mail_callback_params', 'your_custom_function', 10, 2);

パラメータ

  • $params (array) – メールのパラメータ
  • $order (WC_Order) – 関連する注文オブジェクト

戻り値

  • array – 修正されたメールのパラメータが含まれる配列

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

  • WooCommerce: 3.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_params', function($params, $order) {
    $params['subject'] = '新しい注文 - 注文番号: ' . $order->get_order_number();
    return $params;
}, 10, 2);

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

サンプル2: メール送信先の変更

このコードは、顧客が購入していない場合に管理者にメールを送信しないようにします。

add_filter('woocommerce_mail_callback_params', function($params, $order) {
    if (!$order->has_status('completed')) {
        $params['to'] = 'admin@example.com';
    }
    return $params;
}, 10, 2);

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

サンプル3: メール本文への追加情報

このサンプルは、メールの本文にカスタムメッセージを追加します。

add_filter('woocommerce_mail_callback_params', function($params, $order) {
    $params['message'] .= "nn特別なメッセージ: 注文をありがとうございます!";
    return $params;
}, 10, 2);

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

サンプル4: 添付ファイルの追加

このコードは、特定のファイルをメールに添付します。

add_filter('woocommerce_mail_callback_params', function($params, $order) {
    $params['attachments'][] = '/path/to/your/file.pdf';
    return $params;
}, 10, 2);

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

サンプル5: カスタムヘッダーの追加

このサンプルは、送信するメールにカスタムヘッダーを追加します。

add_filter('woocommerce_mail_callback_params', function($params, $order) {
    $params['headers'][] = 'X-Custom-Header: MyValue';
    return $params;
}, 10, 2);

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

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


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