对于以下代码:
add_action( 'user_register', 'my_user_register', 10, 1 );
function my_user_register($user_id){
// how do i get user activation url
// todo: send user an activation email
}
我想向用户发送激活电子邮件, 但是我不知道如何获取激活URL。请指教。
#1你可以像这样发送电子邮件激活链接。
global $theme_settings;
$hidDiv="none";
$login_page_url = get_permalink($theme_settings['userlogin_page']);
$home_url = get_option('siteurl');
;
$firstname=sanitize_text_field($_POST['firstname']);
$username=sanitize_text_field($_POST['email']);
$password=sanitize_text_field($_POST['password']);
$email=sanitize_text_field($_POST['email']);
$lastname=$_POST['lastname'];
$company=$_POST['company'];
$city=$_POST['city'];
$state=$_POST['state'];
$zipcode=$_POST['zipcode'];
$mailemail= $_POST['mailingaddress'];
$user_id=wp_create_user( $username, $password, $email );
if ( is_wp_error( $user_id ) ) {
$error_string = $user_id->
get_error_message();
}else
{
theme_user_register($user_id);
$thanks_msg_page_url = get_permalink($theme_settings['userthanks_page']);
$trackcode = get_user_meta($user_id, 'p_user_registration_code', true);
$site_name = get_option('blogname');
$track_url = get_option('siteurl').'/confirmation?trackid='.$user_id.'&
trackcode='.$trackcode;
$headers = "MIME-Version: 1.0";
$headers .= "Content-Type: text/html;
charset=UTF-8";
$headers .= "From: $site_name <
$from >
" . "\r\n";
$message = "<
p>
Hello ".$username;
$message.="<
p>
Thank you for registering with us. Please click on the below link or copy and paste to the browser to activate your account.<
/p>
";
$message.="<
p>
$track_url<
/p>
<
br>
Best Regards, <
br>
Support Team";
// Need to change this
$from = get_option('admin_email');
$site_name = get_option('blogname');
wp_mail($email, 'Registration Confirmation', $message, $headers, '');
$thanks_msg_page_url = get_permalink(theme_settings['userthanks_page']);
wp_redirect($thanks_msg_page_url);
exit;
}
#2我不确定我是否理解为什么要通过编码获取激活URL, 除非你当然要自定义WordPress发送的默认新用户通知电子邮件。
如果你只想自定义在成功注册用户后发送给新用户的通知电子邮件, 则应使用过滤器wp_new_user_notification_email-自定义发送给用户的电子邮件和/或wp_new_user_notification_email_admin-自定义发送给管理员的电子邮件。
这两个功能都在” wp-includes / pluggable.php” 中。过滤器定义如下…
/**
* Filters the contents of the new user notification email sent to the site admin.
*
* @since 4.9.0
*
* @param array$wp_new_user_notification_email {
*Used to build wp_mail().
*
*@type string $toThe intended recipient - site admin email address.
*@type string $subject The subject of the email.
*@type string $message The body of the email.
*@type string $headers The headers of the email.
* }
* @param WP_User $userUser object for new user.
* @param string$blogname The site title.
*/
$wp_new_user_notification_email_admin = apply_filters( 'wp_new_user_notification_email_admin', $wp_new_user_notification_email_admin, $user, $blogname );
… 和…
/**
* Filters the contents of the new user notification email sent to the new user.
*
* @since 4.9.0
*
* @param array$wp_new_user_notification_email {
*Used to build wp_mail().
*
*@type string $toThe intended recipient - New user email address.
*@type string $subject The subject of the email.
*@type string $message The body of the email.
*@type string $headers The headers of the email.
* }
* @param WP_User $userUser object for new user.
* @param string$blogname The site title.
*/
$wp_new_user_notification_email = apply_filters( 'wp_new_user_notification_email', $wp_new_user_notification_email, $user, $blogname );
典型的过滤器功能代码块如下所示:
function custom_wp_new_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
$wp_new_user_notification_email['subject'] = 'Your Subject';
$wp_new_user_notification_email['message'] = 'Your Email Message';
return $wp_new_user_notification_email;
}
在这些过滤器的add_filter函数内部, 你可以使用传递给过滤器函数的$ user获取特定于用户的信息, 例如…
$user_name = $user->
user_login;
$user_email = $user->
user_email;
使用$ user对象, 你可以获得用户信息并建立自己的激活链接。
【如何在WordPress中获取用户激活URL()】同样, 我不确定我是否正确地遵循了这个问题的动机。但这是我从事这类工作的道路。
推荐阅读
- 如果将它们导出到PHP,如何使WordPress高级自定义字段显示在WordPress仪表板上
- 美信科技通过CMMI3级认证,研发能力获国际认可
- ??一起谈一谈js中的宏任务和微任务!??
- 怎么通过命令的形式列出各个linux系统已经安装的软件包()
- 带你全面的了解二叉树
- psm_job缺库,程序无法正常启动
- BPF BTF 详细介绍
- 9.文本处理工具
- Spring Cloud Gateway 没有链路信息,我 TM 人傻了(上)