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

概要

woocommerce_email_recipient_low_stockフィルタは、WooCommerceで在庫が低下した際に送信されるメールの受信者をカスタマイズするために使用されます。このフィルタを使用することで、さまざまな条件に基づいて受信者アドレスを変更することができます。このフィルタは、特に以下のような機能を実装する際によく使われます:

  1. 特定のユーザーやグループにのみ在庫警告を送信する。
  2. 複数の受信者に同時に在庫警告を送信する。
  3. 条件により受信者アドレスを動的に変更する。
  4. 在庫警告に対して特定のメールアドレスを追加または削除する。
  5. エラーメッセージを除外し特定の受信者に通知する。
  6. 受信者リストにカスタム変数を追加する。

構文

add_filter('woocommerce_email_recipient_low_stock', 'custom_low_stock_email_recipient', 10, 2);

パラメータ

  1. $recipient: 受信者アドレス(カンマ区切りの文字列)。
  2. $product: 商品オブジェクト。

戻り値

フィルタを通じて変更された受信者アドレスの文字列。

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

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_low_stock', 'add_custom_recipient', 10, 2);
function add_custom_recipient($recipient, $product) {
    $additional_recipient = 'manager@example.com';
    return $recipient . ', ' . $additional_recipient;
}

このサンプルコードは、在庫が低下した商品に関する通知メールの受信者に、追加の受信者アドレス(manager@example.com)を追加します。

サンプルコード2

add_filter('woocommerce_email_recipient_low_stock', 'filter_low_stock_email_recipient', 10, 2);
function filter_low_stock_email_recipient($recipient, $product) {
    if ($product->get_id() == 123) {
        return 'specialteam@example.com';
    }
    return $recipient;
}

このサンプルコードは、特定の商品のID(123)の在庫が低下した場合にのみ、特別なチームにメールを送信するように受信者を変更します。

サンプルコード3

add_filter('woocommerce_email_recipient_low_stock', 'dynamic_recipient_based_on_stock', 10, 2);
function dynamic_recipient_based_on_stock($recipient, $product) {
    if ($product->get_stock_quantity() < 5) {
        return 'stock_alert@example.com';
    }
    return $recipient;
}

このサンプルコードは、商品の在庫数量が5未満の場合、受信者をstock_alert@example.comに変更します。

サンプルコード4

add_filter('woocommerce_email_recipient_low_stock', 'conditional_recipient_low_stock', 10, 2);
function conditional_recipient_low_stock($recipient, $product) {
    $user = wp_get_current_user();
    if ($user->roles[0] === 'administrator') {
        return 'admin_alert@example.com';
    }
    return $recipient;
}

このサンプルコードは、現在のユーザーが管理者である場合、受信者をadmin_alert@example.comに変更します。

サンプルコード5

add_filter('woocommerce_email_recipient_low_stock', 'remove_recipient_if_not_admin', 10, 2);
function remove_recipient_if_not_admin($recipient, $product) {
    $user = wp_get_current_user();
    if ($user->roles[0] !== 'administrator') {
        return ''; // 非管理者にはメールを送信しない
    }
    return $recipient;
}

このサンプルコードは、現在のユーザーが管理者でない場合、受信者を空にして、通知メールを送信しないようにします。

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


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