From 117cfba0acf865eebfb1a41b8c933de34af80f62 Mon Sep 17 00:00:00 2001 From: champsupertramp Date: Fri, 27 May 2016 20:12:21 +0800 Subject: [PATCH] Add Generate dummies tool --- addons/generate_random_users.php | 203 +++++++++++++++++++++++++++++++ core/um-short-functions.php | 14 ++- um-init.php | 9 +- 3 files changed, 221 insertions(+), 5 deletions(-) create mode 100644 addons/generate_random_users.php diff --git a/addons/generate_random_users.php b/addons/generate_random_users.php new file mode 100644 index 00000000..af5f9ee2 --- /dev/null +++ b/addons/generate_random_users.php @@ -0,0 +1,203 @@ +addon = $ultimatemember->addons['generate_random_users']; + add_submenu_page('ultimatemember', $this->addon[0], $this->addon[0], 'manage_options', 'generate_random_users', array(&$this, 'content') ); + + } + + function um_admin_addon_hook( $hook ) { + global $ultimatemember; + + switch ( $hook ) { + case 'generate_random_users': + $json_url = "https://randomuser.me/api/"; + + $arr_post_header = array( ); + + if( isset( $_GET['gender'] ) ){ + $gender = $_GET['gender']; + if( $gender != 'both' ){ + $json_url = add_query_arg('gender', $gender, $json_url ); + $arr_post_header['gender'] = $gender; + } + } + + if( isset( $_GET['nationality'] ) ){ + $nationality = implode(",", $_GET['nationality']); + if( ! empty( $nationality ) ){ + $json_url = add_query_arg('nat', $nationality, $json_url ); + } + $arr_post_header['nat'] = $nationality; + } + + if( isset( $_GET['total_users'] ) ){ + $total_users = intval( $_GET['total_users'] ); + $json_url = add_query_arg('results', $total_users, $json_url ); + $arr_post_header['results'] = $total_users; + } + + $response = file_get_contents( $json_url ); + $json = json_decode( $response ); + + if( ! empty( $json ) && ! get_option('um_generated_dumies') ){ + + update_option('um_generated_dumies', $json ); + + foreach( $json->results as $dummy ){ + + if( isset( $_GET['password'] ) && ! empty( $_GET['password'] ) ){ + $password = $_GET['password']; + }else{ + $password = wp_generate_password( 8, false ); + } + + $userdata = array( + 'display_name' => ucfirst( $dummy->name->first )." ".ucfirst( $dummy->name->last ), + 'first_name' => ucfirst( $dummy->name->first ), + 'last_name' => ucfirst( $dummy->name->last ), + 'user_email' => $dummy->email, + 'user_login' => $dummy->login->username, + 'user_pass' => $password, + ); + + $user_id = wp_insert_user( $userdata ); + + $usermeta = array( + 'synced_profile_photo' => $dummy->picture->large, + 'gender' => ucfirst($dummy->gender), + 'birth_date' => $dummy->dob, + '_um_last_login' => date("Y/m/d", $dummy->registered), + 'mobile_number' => $dummy->cell, + 'phone_number' => $dummy->phone, + 'synced_gravatar_hashed_id' => md5( strtolower( trim( $dummy->email ) ) ), + 'account_status' => 'approved', + ); + + if( isset( $_GET['add_cover_photo'] ) && $_GET['add_cover_photo'] == 1 ){ + + $rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'); + $color = $rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)]; + + $usermeta['synced_cover_photo'] = 'http://placehold.it/650x350/'.$color.'/'.$color; + + } + + foreach ( $usermeta as $key => $value ) { + update_user_meta( $user_id, $key, $value ); + } + } + } + + break; + + case 'remove_random_users': + + $json = get_option('um_generated_dumies'); + + foreach ( $json->results as $dummy ) { + $user = get_user_by( 'email', $dummy->email ); + wp_delete_user( $user->ID ); + } + + delete_option('um_generated_dumies'); + break; + + default: + + break; + } + + } + + function admin_init() { + if ( isset( $_REQUEST['um-addon-hook'] ) ) { + $hook = $_REQUEST['um-addon-hook']; + do_action("um_admin_addon_hook", $hook ); + } + } + + function content() { + + ?> + +
+ +

Ultimate Member

+ +

addon[0]; ?>

+ + content ) ) { + echo $this->content; + } else { ?> + +

This tool allows you to add dummies as Ultimate Member users.

+
+ +
+ + '; + return ''; if ( !$avatar_uri ) return ''; @@ -1505,10 +1509,12 @@ function um_fetch_user( $user_id ) { case 'cover_photo': if ( um_profile('cover_photo') ) { $cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs ); - } else { + } else if( um_profile('synced_cover_photo') ) { + $cover_uri = um_profile('synced_cover_photo'); + }else{ $cover_uri = um_get_default_cover_uri(); } - + if ( $cover_uri ) return ''; diff --git a/um-init.php b/um-init.php index 39305320..20421568 100644 --- a/um-init.php +++ b/um-init.php @@ -58,6 +58,11 @@ class UM_API { __('This add-on enables you to link gravatar photos to user accounts with their email address.', 'ultimatemember'), ); + $this->addons['generate_random_users'] = array( + __('Generate Dummies', 'ultimatemember'), + __('This add-on enables you to generate dummies.', 'ultimatemember'), + ); + // include widgets require_once um_path . 'core/widgets/um-search-widget.php'; @@ -74,7 +79,9 @@ class UM_API { if (isset($ultimatemember->addons) && is_array($ultimatemember->addons)) { foreach ($ultimatemember->addons as $addon => $name) { if (um_get_option('addon_' . $addon) == 1) { - include_once um_path . 'addons/' . $addon . '.php'; + if( file_exists( um_path . 'addons/' . $addon . '.php' ) ){ + include_once um_path . 'addons/' . $addon . '.php'; + } } } }