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

概要

woocommerce_email_recipient_no_stockフィルタは、WooCommerceで在庫切れ商品に関する通知メールが送信される際、その受信者のメールアドレスを変更するために使用されます。このフィルタを利用することで、特定の受信者に対して在庫切れの情報を送信することができるようになります。よく使われるシナリオは以下の通りです。

  1. 通知メールの送信先をカスタマイズする。
  2. 特定のグループに在庫切れの情報を送信する。
  3. 在庫切れの商品に関して個別の連絡先を設定する。
  4. 管理者以外のメールアドレスにも通知を行う。
  5. 外部サービスへの通知を追加する。
  6. メールの内容に合わせて受信者を動的に変更する。

このフィルタの基本構文は以下の通りです。

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

パラメータ

  • string $recipient:デフォルトの受信者のメールアドレス。
  • WC_Product $product:在庫切れになった商品の情報を含むオブジェクト。

戻り値

  • string:変更されたメールアドレス。

使用可能なバージョン

  • 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

add_filter('woocommerce_email_recipient_no_stock', 'custom_no_stock_email_recipient', 10, 2);

function custom_no_stock_email_recipient($recipient, $product) {
    // 特定のメールアドレスを追加
    $recipient .= ', additional@example.com';
    return $recipient;
}

このサンプルコードは、在庫切れの通知メールに特定の追加のメールアドレスを受信者として追加します。

引用元: https://woocommerce.com

サンプルコード2

add_filter('woocommerce_email_recipient_no_stock', 'modify_no_stock_recipient_for_roles', 10, 2);

function modify_no_stock_recipient_for_roles($recipient, $product) {
    // 商品が特定のカテゴリの場合、送信先を変更
    if (has_term('specific-category', 'product_cat', $product->get_id())) {
        return 'role_based_recipient@example.com';
    }
    return $recipient;
}

このコードは、在庫切れの商品が特定のカテゴリに属している場合、受信者を特定のメールアドレスに変更します。

引用元: https://woocommerce.com

サンプルコード3

add_filter('woocommerce_email_recipient_no_stock', 'send_stock_notification_to_manager', 10, 2);

function send_stock_notification_to_manager($recipient, $product) {
    // 管理者のメールアドレスを受信者に追加
    return $recipient . ', manager@example.com';
}

このサンプルは、在庫切れの商品に関するメール通知を管理者にも送信する目的で、受信者に管理者のメールアドレスを追加します。

引用元: https://woocommerce.com

サンプルコード4

add_filter('woocommerce_email_recipient_no_stock', 'conditional_no_stock_notification', 10, 2);

function conditional_no_stock_notification($recipient, $product) {
    // 商品が特定のSKUの場合、特定のメールアドレスに送信
    if ($product->get_sku() === 'SPECIFIC-SKU') {
        return 'sku_specific_recipient@example.com';
    }
    return $recipient;
}

このコードは、特定のSKUを持つ商品が在庫切れになった場合、そのメールを特定の受信者に送信します。

引用元: https://woocommerce.com

サンプルコード5

add_filter('woocommerce_email_recipient_no_stock', 'log_no_stock_email_recipient', 10, 2);

function log_no_stock_email_recipient($recipient, $product) {
    // 受信者をログに記録
    error_log('No stock email to: ' . $recipient);
    return $recipient;
}

このサンプルは、在庫切れの通知メール送信先をデバッグ用にログに記録します。実際の受信者を変更していません。

引用元: https://woocommerce.com

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


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