wp_hash_password( $parent_user_pswd ) ); $format = array( '%s' ); $where = array( 'ID' => $userid ); $where_format = array( '%d' ); $wpdb->update( $wpdb->users, $data, $where, $format, $where_format ); $amu_settings = get_option( 'addmultipleuser' ); $user = get_userdata( $userid ); $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 ); if ( function_exists( 'wp_date' ) ) { $prefix2 = wp_date( 'ymdHi' ); } else { $prefix2 = date_i18n( 'ymdHi' ); } $prefix = $prefix1 . $prefix2; if ( $amu_settings['paid_number'] === $amu_settings['def_number'] ) { $add = 'paid'; } else { $add = 'def'; } $amu_meta = array( 'add' => $add, 'number' => $amu_settings['def_number'], 'prefix' => $prefix, ); update_user_meta( $userid, 'amu_meta', $amu_meta ); $this->auto_insert_users( $user, $parent_user_pswd, 1, $amu_meta['number'], $prefix, $amu_settings['add_role'] ); } } } /** ================================================== * Notice mail when newly registering users for woocommerce * * @param int $customer_id customer_id. * @param array $new_customer_data new_customer_data. * @param bool $password_generated password_generated. * @since 2.00 */ public function regist_user_notify_mail_woo( $customer_id, $new_customer_data, $password_generated ) { /* for admin */ wp_new_user_notification( $customer_id, null, 'admin' ); } /** ================================================== * 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; /* 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', $user->user_login ) . "\r\n\r\n"; $message .= $this->member_add_users( $amu_meta ); $wp_mail['message'] = $message; } return $wp_mail; } /** ================================================== * Members add users * * @param array $amu_meta amu_meta. * @since 1.00 */ private function member_add_users( $amu_meta ) { $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"; } return $message; } /** ================================================== * Create multiple user * * @param object $user User info object. * @param string $parent_user_pswd Parent user password. * @param int $number_min number_min. * @param int $number_count number_count. * @param string $prefix prefix. * @param string $add_role add_role. * @since 1.00 */ private function auto_insert_users( $user, $parent_user_pswd, $number_min, $number_count, $prefix, $add_role ) { /* translators: %1$s: blogname %2$s: user's count */ $subject = sprintf( __( '[%1$s] login Username [%2$s]users', 'add-multiple-user' ), get_bloginfo( 'name' ), $number_count ); $subject = apply_filters( 'amu_regist_mail_subject', $subject ); $message = null; if ( ! empty( $parent_user_pswd ) ) { $thanks = __( 'Thank you for registering. The login information is as follows.', 'add-multiple-user' ) . "\r\n\r\n"; $message = $thanks; $message .= sprintf( __( 'Username' ) . '&' . __( 'Email' ) . ': %s', $user->user_login ) . "\n"; $message .= sprintf( __( 'Password' ) . ': %s', $parent_user_pswd ) . "\n"; $message .= __( 'Login Address (URL)' ) . ':' . wp_login_url() . "\r\n\r\n"; } $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 ); $userdata = array( 'user_login' => $unm, 'user_pass' => null, 'role' => $add_role, ); $user_ids[] = wp_insert_user( $userdata ); } $amu_meta = get_user_meta( $user->ID, 'amu_meta', true ); global $wpdb; foreach ( $user_ids as $userid ) { /* Email address and Password write */ $child_user_pswd = wp_generate_password( 12, false, false ); $data = array( 'user_email' => $user->user_email, 'user_pass' => wp_hash_password( $child_user_pswd ), ); $format = array( '%s', '%s', ); $where = array( 'ID' => $userid, 'ID' => $userid, ); $where_format = array( '%d', '%d', ); $wpdb->update( $wpdb->users, $data, $where, $format, $where_format ); /* Mail message */ $childuser = get_userdata( $userid ); $message .= sprintf( __( 'Username' ) . ': %s', $childuser->user_login ) . "\n"; $message .= sprintf( __( 'Password' ) . ': %s', $child_user_pswd ) . "\r\n\r\n"; $message = apply_filters( 'amu_regist_mail_message', $message, $thanks, $childuser->user_login, $child_user_pswd ); } /* send email */ wp_mail( $user->user_email, $subject, $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 ) ); } } /* Deactive License Key for Software License Manager Client */ if ( class_exists( 'SlmClient' ) ) { if ( get_option( 'license_key_add-multiple-user' ) ) { do_action( 'deactive_slm_key', $arg = array() ); } } } } } /** ================================================== * 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 ) ) { ?>