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

概要

woocommerce_allow_send_queued_transactional_email フィルタは、WooCommerceにおけるトランザクショナルメールの送信についての制御を行います。このフィルタを使用することで、特定の条件に基づいてメールの送信を許可または拒否することができ、メール配信のロジックをカスタマイズする際に役立ちます。

このフィルタがよく使われる機能には以下のようなものがあります。
1. 注文確認メールの送信制御
2. 顧客によるアカウント登録時の確認メールの制御
3. パスワードリセットメールの送信の制御
4. 商品レビュー後の自動通知メールの制御
5. 配送完了通知の条件付き送信
6. カスタムトランザクションメールのスムーズな統合

構文

add_filter('woocommerce_allow_send_queued_transactional_email', 'your_function_name', 10, 2);

パラメータ

  • $allow_send (bool): メール送信を許可するかどうかを示すブール値。
  • $email (WC_Email): 送信されるメールのインスタンス。

戻り値

  • bool: メール送信を許可する場合は true、拒否する場合は false を返します。

使用可能なプラグイン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_allow_send_queued_transactional_email', 'conditionally_allow_order_email', 10, 2);

function conditionally_allow_order_email($allow_send, $email) {
    if ($email instanceof WC_Email_New_Order) {
        // メール送信条件を設定
        $allow_send = some_custom_condition_check();
    }
    return $allow_send;
}

このサンプルコードは、新しい注文に対するメールを送信する際に、条件によってメール送信の許可を制御します。

サンプル2: アカウント作成メールの制御

add_filter('woocommerce_allow_send_queued_transactional_email', 'restrict_registration_email', 10, 2);

function restrict_registration_email($allow_send, $email) {
    if ($email instanceof WC_Email_Customer_New_Account) {
        // 特定の条件に基づいて送信を拒否
        if (user_has_special_role()) {
            $allow_send = false;
        }
    }
    return $allow_send;
}

このコードは、特定のユーザー役割を持つユーザーに対して、新しいアカウント作成メールの送信を制限します。

サンプル3: パスワードリセットメールの制御

add_filter('woocommerce_allow_send_queued_transactional_email', 'disable_password_reset_email', 10, 2);

function disable_password_reset_email($allow_send, $email) {
    if ($email instanceof WC_Email_Customer_Reset_Password) {
        // パスワードリセットメールを常に拒否
        $allow_send = false;
    }
    return $allow_send;
}

このサンプルでは、パスワードリセットメールの送信を恒久的に拒否します。

サンプル4: 商品レビュー通知のカスタマイズ

add_filter('woocommerce_allow_send_queued_transactional_email', 'customize_review_notification_email', 10, 2);

function customize_review_notification_email($allow_send, $email) {
    if ($email instanceof WC_Email_Customer_Completed_Order) {
        // 商品レビューが新しくない場合に送信を拒否
        if (!recent_review_exists()) {
            $allow_send = false;
        }
    }
    return $allow_send;
}

このコードは、顧客が最近の商品レビューを投稿しなかった場合、注文完了通知メールを送信しないように制御します。

サンプル5: 配送完了通知の条件付き制御

add_filter('woocommerce_allow_send_queued_transactional_email', 'control_shipping_notification', 10, 2);

function control_shipping_notification($allow_send, $email) {
    if ($email instanceof WC_Email_Customer_Completed_Order) {
        // 特定のショップには配送通知を送信しない
        if (is_special_shop()) {
            $allow_send = false;
        }
    }
    return $allow_send;
}

このサンプルは、特定のショップからの注文に対する配送完了通知の送信を制限します。

それぞれのサンプルはWooCommerceの機能拡張やカスタマイズにおいて非常に役立ちます。

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


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