最近测试 WooCommerce,发现当有新用户注册时没有管理员通知,感觉这是个很实用的功能,不明白为什么没有。找了一些方案,发现下面这个可用。

在主题的 functions.php 中放如下代码

//New user notification to admin
// WooCommerce New Customer Admin Notification Email
add_action('WooCommerce_created_customer', 'admin_email_on_registration');
function admin_email_on_registration( $customer_id ) {
    wp_new_user_notification( $customer_id );
}

邮件通知会发送到设置 » 常规 » 电子邮件地址中填写的 Email 。

代码来自:WooCommerce new registration not sending email to admin

该 action 在 wc_create_new_customer() 函数总调用,原型如下

do_action( 'WooCommerce_created_customer', $customer_id, $new_customer_data, $password_generated );

$new_customer_data 的数据类似下面这样

Array
(
    [user_login] => test3
    [user_pass] => 111111
    [user_email] => test3@email.com
    [role] => customer
)

如果想发送定制化的邮件,包含更多信息,可以自己用 wp_mail() 函数直接发邮件。