概要
woocommerce_email_recipient_low_stock
フィルタは、WooCommerceで在庫が低下した際に送信されるメールの受信者をカスタマイズするために使用されます。このフィルタを使用することで、さまざまな条件に基づいて受信者アドレスを変更することができます。このフィルタは、特に以下のような機能を実装する際によく使われます:
- 特定のユーザーやグループにのみ在庫警告を送信する。
- 複数の受信者に同時に在庫警告を送信する。
- 条件により受信者アドレスを動的に変更する。
- 在庫警告に対して特定のメールアドレスを追加または削除する。
- エラーメッセージを除外し特定の受信者に通知する。
- 受信者リストにカスタム変数を追加する。
構文
add_filter('woocommerce_email_recipient_low_stock', 'custom_low_stock_email_recipient', 10, 2);
パラメータ
$recipient
: 受信者アドレス(カンマ区切りの文字列)。$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;
}
このサンプルコードは、現在のユーザーが管理者でない場合、受信者を空にして、通知メールを送信しないようにします。