web-dev-qa-db-ja.com

WooCommerce新しい顧客のEメールフック?

アカウントを作成するための新規顧客用のサインアップページを作成しました。

これはうまく機能していますが、ウェルカムメールを送信するためにcustomer_new_account内のWooCommerce WooCommerce/Classes/Emails/class-wc-emails.phpにフックしたいと思います。

私が使用できる既存のフックはありますか、またはこれを行うための最良の方法は何ですか。

別のウェルカムメール機能を作成したくありません。

ありがとう。

答え

do_action('woocommerce_created_customer', $user_id, $new_customer_data, false);
1
user742736

フックするアクション/フィルタはありません。標準のWC_Email_Customer_New_Accountクラスをオーバーライドして独自のロジックを実装する必要があります。それを行うには、そのクラスを継承して登録する独自のクラスを作成する必要があります。

class WPSE8170_Email_Customer_New_Account extends WC_Email_Customer_New_Account {

    function trigger( $user_id, $user_pass = '', $password_generated = false ) {
        // do what you need here and then call parent method
        parent::trigger( $user_id, $user_pass, $password_generated );
    }

}

今、あなたはこのクラスを登録する必要があります:

add_filter( 'woocommerce_email_classes', 'wpse8170_update_email_classes' );
function wpse8170_update_email_classes( $emails ) {
    $emails['WC_Email_Customer_New_Account'] = new WPSE8170_Email_Customer_New_Account();
    return $emails;
}
3
Eugene Manuilov