概要
woocommerce_email_actions
は、WooCommerceで送信されるメールに関連するフックです。このアクションは、さまざまなイベントに基づいてカスタムメールアクションを追加または変更するために使用されます。具体的には、次のような機能を実装する際によく使われます。
- 新しいメール通知の追加
- 既存のメールテンプレートの変更
- メールの送信条件のカスタマイズ
- 特定のイベントに基づくメールの作成
- 通知メールのタイトルや内容の変更
- メールの送信前にプロセスをフックして処理する
構文
add_filter('woocommerce_email_actions', 'your_function_name');
パラメータ
array $email_actions
: 追加または変更したいメールアクションの配列。
戻り値
array
: 変更後のメールアクションの配列。
WooCommerceのバージョン
- 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_actions', function($email_actions) {
$email_actions[] = 'woocommerce_new_order_notification';
return $email_actions;
});
このコードは、新しい注文通知のメールアクションを追加します。
サンプル2: 特定のメールの件名を変更
add_filter('woocommerce_email_subject_customer_completed_order', function($subject, $order) {
return 'ご注文ありがとうございます - 注文番号: ' . $order->get_order_number();
}, 10, 2);
このコードは、注文完了メールの件名をカスタマイズします。
サンプル3: カスタムメールテンプレートの使用
add_filter('woocommerce_email_actions', function($email_actions) {
if (isset($email_actions) && !in_array('woocommerce_order_status_on-hold', $email_actions)) {
$email_actions[] = 'woocommerce_order_status_on-hold';
}
return $email_actions;
});
このコードは、注文保留状態のメールアクションを追加します。
サンプル4: メール送信条件の追加
add_filter('woocommerce_email_is_enabled', function($enabled, $email_id) {
if ($email_id === 'customer_completed_order') {
$enabled = false; // 完了メールを無効にする
}
return $enabled;
}, 10, 2);
このコードは、顧客への完了メールを送信しないよう設定します。
サンプル5: 送信元アドレスの変更
add_filter('woocommerce_email_from_address', function($email) {
return 'custom@example.com';
});
このコードは、すべてのWooCommerceメールの送信元アドレスをカスタムアドレスに変更します。
これらのコードは、WooCommerceメールの動作をカスタマイズするためのフックの具体的な使用例です。引用元は、WordPressの公式文書やWooCommerceのリファレンスを参照してください。