概要
woocommerce_email_recipient_no_stock
フィルタは、WooCommerceで在庫切れ商品に関する通知メールが送信される際、その受信者のメールアドレスを変更するために使用されます。このフィルタを利用することで、特定の受信者に対して在庫切れの情報を送信することができるようになります。よく使われるシナリオは以下の通りです。
- 通知メールの送信先をカスタマイズする。
- 特定のグループに在庫切れの情報を送信する。
- 在庫切れの商品に関して個別の連絡先を設定する。
- 管理者以外のメールアドレスにも通知を行う。
- 外部サービスへの通知を追加する。
- メールの内容に合わせて受信者を動的に変更する。
このフィルタの基本構文は以下の通りです。
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