我想创建具有用户角色的wordpress用户,并为1000万用户按cron文件向用户发送邮件

时间:2019-01-31 13:10:45

标签: php wordpress

通过cron文件创建wordpress用户的正确过程是什么?

我需要使用已经具有数据库表的电子邮件ID创建wordpress用户。 我想使用cron文件创建wordpress用户,将密码设置为我已经拥有的数据库,并在将密码设置为“密码”列后向所有用户发送邮件。

因为我有数百万个带有电子邮件ID的业务数据。我想将所有业务与wordpress用户联系起来。

1 个答案:

答案 0 :(得分:1)

  1. 在代码下方创建一个cron_create_user.php文件

require( '/path/to/wp-load.php' );

$password = wp_generate_password( 12, true );

 // get user details from DB

$WP_array = array (
    'user_login'    =>  $username,
    'user_email'    =>  $email,
    'user_pass'     =>  $password,
    'user_url'      =>  $website,
    'first_name'    =>  $first_name,
    'last_name'     =>  $last_name,
    'nickname'      =>  $nickname,
    'description'   =>  $bio,
) ;

$user_id = wp_insert_user( $WP_array ) ;

if ( ! is_wp_error( $user_id ) ) {
   wp_new_user_notification( $user_id, null, both ); 
}
  1. 从主机上为此文件cron_create_user.php

  2. 设置cron
  3. 添加此代码functions.php

    add_filter( 'wp_new_user_notification_email' , 'edit_user_notification_email', 10, 3 );
    
    function edit_user_notification_email( $wp_new_user_notification_email, $user, $blogname ) {
    
        $message = sprintf(__( "Welcome to %s! Here's how to log in:" ), $blogname ) . "\r\n";
        $message .= wp_login_url() . "\r\n";
        $message .= sprintf(__( 'Username: %s' ), $user->user_login ) . "\r\n";
        $message .= sprintf(__( 'Password: %s' ), $user->user_pass ) . "\r\n\r\n";
        $message .= sprintf(__( 'If you have any problems, please contact me at %s.'), get_option( 'admin_email' ) ) . "\r\n";
        $message .= __('Adios!');
    
        $wp_new_user_notification_email['message'] = $message;
        $user_email = stripslashes($user->user_email);
        wp_mail($user_email, sprintf(__('[%s] Your username and password'), get_option('blogname')), $message);
    
        return $wp_new_user_notification_email;
    
    }