最近测试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()函数直接发邮件。
你好
那如果說我想要新註冊的會員
導向一個歡迎註冊的頁面
不知道該如何修改呢
謝謝
先创建一个欢迎注册的页面,然后用下面链接里的脚本做重定向。
http://wordpress.stackexchange.com/questions/19692/how-to-redirect-a-sucessful-registration-to-a-page-template
你好 我嘗試了好幾次
function wpse_19692_registration_redirect() {
return home_url( ‘/my-page’ );
}
add_filter( ‘registration_redirect’, ‘wpse_19692_registration_redirect’ );
不知道是不是我輸入錯誤
程式碼中my-page,是要輸入什麼格式呢
因為我隨便打了一個網址測試
比如註冊完畢 會跳至google首頁
我打return home_url( ‘http://www.google.com.tw’ );
沒有作用
我也是依據文章所寫 將程式碼加在主題的functions.php中
首先要确认你的函数是真的执行了,可以在函数里强制exit试试看。
另外检查一下你的注册表单里是否有redirect_to这个字段,以及这个字段的的值是否是你写的那个,因为注册表单的源代码里有这么一段
而$redirect_to是这么来的
你好
那這樣的話
是否要在$redirect_to = apply_filters( ‘registration_redirect’, $registration_redirect );
更改registration_redirect’單引號內的字串 變為想要連結的網址就可以了
另外我在我的註冊表單(/wp-content/plugins/woocommerce/templates/myaccount/form-login.php)
中,並沒看看到<input type="hidden" name="redirect_to" value="” />
實在不知道如何去修改
謝謝
好吧,你没说清是在woocommerce里做重定向。woocommerce已经接管了注册重定向这个过程,因此更改wordpress注册重定向的代码不会管用。
你可以看看我之前写的文章https://www.solagirl.net/woocommerce-login-register-redirect.html
代码有没有用我不知道,因为woocommerce更新了好几版了,但思路大概就是那样。
如果这个太麻烦,你可以直接在myaccount页面模板里加欢迎注册的内容。
我用了这个代码,成功了,不过内容里面的用户名和邮箱都为空。
貌似没有获取到user_id,这样改一下
add_action(‘woocommerce_created_customer’, ‘admin_email_on_registration’);
function admin_email_on_registration( $customer_id ) {
wp_new_user_notification( $customer_id );
}