user_login; $key = get_password_reset_key( $user ); $useremail = $user->user_email; $role = implode( ', ', $user->roles ); if ( $role === $amu_settings['def_role'] ) { $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( empty( $amu_meta ) ) { $prefix1 = substr( $useremail, 0, 3 ); $prefix2 = date_i18n( 'ymdHi' ); $prefix = $prefix1 . $prefix2; $amu_meta = array( 'add' => 'def', 'number' => $amu_settings['def_number'], 'prefix' => $prefix, ); update_user_meta( $userid, 'amu_meta', $amu_meta ); $this->message = $this->auto_insert_users( $useremail, 1, $amu_meta['number'], $prefix, $amu_settings['add_role'] ); } } } /** ================================================== * Notice mail when newly registering users * * @param array $wp_mail wp_mail. * @param object $user user. * @param string $blogname blogname. * @since 1.00 */ public function regist_user_notify_mail( $wp_mail, $user, $blogname ) { $amu_meta = get_user_meta( $user->ID, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'number', $amu_meta ) ) { /* translators: %1$s: blogname %2$s: user's count */ $subject = sprintf( __( '[%1$s] login Username [%2$s]users', 'add-multiple-user' ), $blogname, $amu_meta['number'] ); $wp_mail['subject'] = $subject; $unm = $user->user_login; $key = get_password_reset_key( $user ); $message = __( 'Thank you for registering. The login information is as follows.', 'add-multiple-user' ) . "\r\n\r\n"; $message .= __( 'Login Address (URL)' ) . ':' . wp_login_url() . "\r\n\r\n"; $message .= sprintf( __( 'Username' ) . '&' . __( 'Email' ) . ': %s', $unm ) . "\n"; $message .= __( 'To reset your password, visit the following address:' ) . ': <' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $unm ), 'login' ) . ">\r\n\r\n"; $wp_mail['message'] = $message . $this->message; } return $wp_mail; } /** ================================================== * Notice mail when newly registering users for admin * * @param array $wp_mail wp_mail. * @param object $user user. * @param string $blogname blogname. * @since 1.00 */ public function regist_user_notify_mail_admin( $wp_mail, $user, $blogname ) { $amu_meta = get_user_meta( $user->ID, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'number', $amu_meta ) ) { /* translators: %1$s: blogname %2$s: user's count */ $subject = sprintf( __( '[%1$s] New User Registration [%2$s]users', 'add-multiple-user' ), $blogname, $amu_meta['number'] ); $wp_mail['subject'] = $subject; $unm = $user->user_login; /* translators: %s: blogname */ $message = sprintf( __( 'New user registration on your site %s:' ), $blogname ) . "\r\n\r\n"; /* translators: %s: username */ $message .= sprintf( __( 'Username' ) . '&' . __( 'Email' ) . ': %s', $unm ) . "\r\n\r\n"; $amu_settings = get_option( 'addmultipleuser' ); if ( 'def' === $amu_meta['add'] ) { $min = 1; $max = $amu_meta['number']; } else { /* paid */ $min = $amu_settings['def_number'] + 1; $max = $amu_meta['number']; } $message .= __( 'Multiple users added as follows.', 'add-multiple-user' ) . "\r\n\r\n"; for ( $i = $min; $i <= $max; $i++ ) { $message .= sprintf( __( 'Username' ) . ': %s', $amu_meta['prefix'] . sprintf( '%02d', $i ) ) . "\n"; } $wp_mail['message'] = $message; } return $wp_mail; } /** ================================================== * Create multiple user * * @param string $e_mail e_mail. * @param int $number_min number_min. * @param int $number_count number_count. * @param string $prefix prefix. * @param string $add_role add_role. * @return string $messgae messgae. * @since 1.00 */ private function auto_insert_users( $e_mail, $number_min, $number_count, $prefix, $add_role ) { $message = __( 'Multiple users added as follows.', 'add-multiple-user' ) . "\r\n\r\n"; $user_ids = array(); for ( $i = $number_min; $i <= $number_count; $i++ ) { $unm = $prefix . sprintf( '%02d', $i ); $pswd = wp_generate_password( 8, false, false ); $userdata = array( 'user_login' => $unm, 'user_pass' => $pswd, 'role' => $add_role, ); $user_ids[] = wp_insert_user( $userdata ); } global $wpdb; foreach ( $user_ids as $userid ) { $result = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->users SET user_email = %s WHERE ID = %d", $e_mail, $userid ) ); $user_info = get_userdata( $userid ); $unm = $user_info->user_login; $key = get_password_reset_key( $user_info ); $message .= sprintf( __( 'Username' ) . ': %s', $unm ) . "\n"; $message .= __( 'To reset your password, visit the following address:' ) . ': <' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $unm ), 'login' ) . ">\r\n\r\n"; } return $message; } /** ================================================== * Delete User Hook * * @param int $userid The user ID. * @since 1.00 */ public function action_delete_user( $userid ) { $amu_settings = get_option( 'addmultipleuser' ); $user = get_userdata( $userid ); $useremail = $user->user_email; $role = implode( ', ', $user->roles ); $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( ! empty( $amu_meta ) ) { if ( array_key_exists( 'prefix', $amu_meta ) && array_key_exists( 'number', $amu_meta ) ) { /* translators: %1s: blogname */ $subject = sprintf( __( '[%s] Delete Acount', 'add-multiple-user' ), get_option( 'blogname' ) ); $message = __( 'The created account has been deleted. Thank you for using.', 'add-multiple-user' ) . "\r\n\r\n"; /* translators: %s: useremail */ $message_admin = sprintf( __( 'The created account[%s] has been deleted.', 'add-multiple-user' ), $useremail ) . "\r\n\r\n"; wp_mail( $useremail, $subject, $message ); @wp_mail( get_option( 'admin_email' ), $subject, $message_admin ); /* Delete users */ $user_prefix = $amu_meta['prefix']; for ( $i = 1; $i <= $amu_meta['number']; $i++ ) { $unm = $user_prefix . sprintf( '%02d', $i ); if ( username_exists( $unm ) ) { wp_delete_user( username_exists( $unm ) ); } } } } } /** ================================================== * Pay form * * @param bool $bool bool. * @since 1.00 */ public function pay_form( $bool ) { $screen = get_current_screen(); global $profileuser; if ( 'profile' === $screen->id || 'user-edit' === $screen->id ) { if ( current_user_can( 'administrator' ) ) { if ( isset( $_GET['user_id'] ) && ! empty( $_GET['user_id'] ) ) { $userid = intval( $_GET['user_id'] ); $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'add', $amu_meta ) ) { ?>

ID; $useremail = $user->user_email; $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'add', $amu_meta ) ) { ?>

' . __( 'Paid', 'add-multiple-user' ) . ' ' . ( 'User' ) . '" remove=".tempregist" remove2="#SPPcustomButton" payname="add-multiple-user"]' ); } if ( class_exists( 'SimpleStripePayment' ) ) { echo do_shortcode( '[simplestripepayment email="' . $useremail . '" after="

' . __( 'Paid', 'add-multiple-user' ) . ' ' . ( 'User' ) . '

" remove=".tempregist" remove2="#simple_paypal_payment_paypal-button" payname="add-multiple-user"]' ); } } ?> ID; $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'add', $amu_meta ) ) { global $wp_meta_boxes; wp_add_dashboard_widget( 'custom_help_widget', 'Add Multiple User ' . __( 'Status' ), array( $this, 'dashboard_text' ) ); } } /** ================================================== * Dashboard text * * @since 1.00 */ public function dashboard_text() { $screen = get_current_screen(); if ( 'dashboard' === $screen->id ) { if ( current_user_can( 'administrator' ) ) { if ( isset( $_GET['user_id'] ) && ! empty( $_GET['user_id'] ) ) { $userid = intval( $_GET['user_id'] ); $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'add', $amu_meta ) ) { if ( 'paid' === $amu_meta['add'] ) { ?>

ID; $amu_meta = get_user_meta( $userid, 'amu_meta', true ); $useremail = $user->user_email; if ( ! empty( $amu_meta ) && array_key_exists( 'add', $amu_meta ) ) { if ( 'paid' === $amu_meta['add'] ) { ?>

' . __( 'Paid', 'add-multiple-user' ) . ' ' . ( 'User' ) . '" remove=".tempregist" remove2="#SPPcustomButton" payname="add-multiple-user"]' ); } if ( class_exists( 'SimpleStripePayment' ) ) { echo do_shortcode( '[simplestripepayment email="' . $useremail . '" after="

' . __( 'Paid', 'add-multiple-user' ) . ' ' . ( 'User' ) . '

" remove=".tempregist" remove2="#simple_paypal_payment_paypal-button" payname="add-multiple-user"]' ); } } } } } } /** ================================================== * PayPal Charge * * @param string $data data. * @param string $payment_data payment_data. * @param string $email email. * @param int $amount amount. * @param string $currency currency. * @param string $payname payname. * @since 1.00 */ public function paypal_charge( $data, $payment_data, $email, $amount, $currency, $payname ) { do_action( 'amu_paid_add_user', $payname ); } /** ================================================== * Stripe Charge * * @param string $token token. * @param string $email email. * @param int $amount amount. * @param string $currency currency. * @param string $name name. * @param string $description description. * @param string $payname payname. * @since 1.00 */ public function stripe_charge( $token, $email, $amount, $currency, $name, $description, $payname ) { do_action( 'amu_paid_add_user', $payname ); } /** ================================================== * Paid * * @param string $payname payname. * @since 1.00 */ public function paid( $payname ) { if ( is_admin() && 'add-multiple-user' === $payname ) { $amu_settings = get_option( 'addmultipleuser' ); $user = wp_get_current_user(); $unm = $user->user_login; $key = get_password_reset_key( $user ); $userid = $user->ID; $useremail = $user->user_email; $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'add', $amu_meta ) ) { if ( 'def' === $amu_meta['add'] ) { $def_number = $amu_meta['number']; $amu_meta['add'] = 'paid'; $amu_meta['number'] = $amu_settings['paid_number']; update_user_meta( $userid, 'amu_meta', $amu_meta ); /* translators: %1$s: blogname %2$s: number for user */ $subject = sprintf( __( '[%1$s] login Username [%2$s]users', 'add-multiple-user' ), get_option( 'blogname' ), $amu_meta['number'] ); $message = $this->auto_insert_users( $useremail, $def_number + 1, $amu_meta['number'], $amu_meta['prefix'], $amu_settings['add_role'] ); /* translators: %1$s: blogname %2$s: number for admin */ $subject_admin = sprintf( __( '[%1$s] New User Registration [%2$s]users', 'add-multiple-user' ), get_option( 'blogname' ), $amu_meta['number'] ); $unm = $user->user_login; /* translators: %s: blogname */ $message_admin = sprintf( __( 'New user registration on your site %s:' ), get_option( 'blogname' ) ) . "\r\n\r\n"; /* translators: %s: username */ $message_admin .= sprintf( __( 'Username' ) . '&' . __( 'Email' ) . ': %s', $unm ) . "\r\n\r\n"; $min = $def_number + 1; $max = $amu_meta['number']; $message_admin .= __( 'Multiple users added as follows.', 'add-multiple-user' ) . "\r\n\r\n"; for ( $i = $min; $i <= $max; $i++ ) { $message_admin .= sprintf( __( 'Username' ) . ': %s', $amu_meta['prefix'] . sprintf( '%02d', $i ) ) . "\n"; } wp_mail( $useremail, $subject, $message ); @wp_mail( get_option( 'admin_email' ), $subject_admin, $message_admin ); } } } } /** ================================================== * Paid * * @param string $payname payname. * @param int $userid userid. * @since 1.00 */ public function paid_admin( $payname, $userid ) { if ( is_admin() && 'add-multiple-user' === $payname ) { $amu_settings = get_option( 'addmultipleuser' ); $user = get_userdata( $userid ); $unm = $user->user_login; $key = get_password_reset_key( $user ); $useremail = $user->user_email; $amu_meta = get_user_meta( $userid, 'amu_meta', true ); if ( ! empty( $amu_meta ) && array_key_exists( 'add', $amu_meta ) ) { if ( 'def' === $amu_meta['add'] ) { $def_number = $amu_meta['number']; $amu_meta['add'] = 'paid'; $amu_meta['number'] = $amu_settings['paid_number']; update_user_meta( $userid, 'amu_meta', $amu_meta ); /* translators: %1$s: blogname %2$s: number for user */ $subject = sprintf( __( '[%1$s] login Username [%2$s]users', 'add-multiple-user' ), get_option( 'blogname' ), $amu_meta['number'] ); $message = $this->auto_insert_users( $useremail, $def_number + 1, $amu_meta['number'], $amu_meta['prefix'], $amu_settings['add_role'] ); /* translators: %1$s: blogname %2$s: number for admin */ $subject_admin = sprintf( __( '[%1$s] New User Registration [%2$s]users', 'add-multiple-user' ), get_option( 'blogname' ), $amu_meta['number'] ); $unm = $user->user_login; /* translators: %s: blogname */ $message_admin = sprintf( __( 'New user registration on your site %s:' ), get_option( 'blogname' ) ) . "\r\n\r\n"; /* translators: %s: username */ $message_admin .= sprintf( __( 'Username' ) . '&' . __( 'Email' ) . ': %s', $unm ) . "\r\n\r\n"; $min = $def_number + 1; $max = $amu_meta['number']; $message_admin .= __( 'Multiple users added as follows.', 'add-multiple-user' ) . "\r\n\r\n"; for ( $i = $min; $i <= $max; $i++ ) { $message_admin .= sprintf( __( 'Username' ) . ': %s', $amu_meta['prefix'] . sprintf( '%02d', $i ) ) . "\n"; } wp_mail( $useremail, $subject, $message ); @wp_mail( get_option( 'admin_email' ), $subject_admin, $message_admin ); } } } } /** ================================================== * Update user profile * * @param int $userid userid. * @param object $old_user_data old_user_data. * @since 1.00 */ public function update_user_profile( $userid, $old_user_data ) { if ( isset( $_POST['amu_paid_admin'] ) && ! empty( $_POST['amu_paid_admin'] ) ) { if ( check_admin_referer( 'update-user_' . $userid ) ) { $amu_paid_admin = intval( $_POST['amu_paid_admin'] ); if ( $old_user_data->amu_paid_admin !== $amu_paid_admin ) { do_action( 'amu_paid_add_user_admin', 'add-multiple-user', $userid ); } } } } } ?>