function um_get_avatar($avatar = '', $id_or_email = '', $size = '96', $avatar_class = '', $default = '', $alt = '') { if (is_numeric($id_or_email)) { $user_id = (int) $id_or_email; } elseif (is_string($id_or_email) && ($user = get_user_by('email', $id_or_email))) { $user_id = $user->ID; } elseif (is_object($id_or_email) && !empty($id_or_email->user_id)) { $user_id = (int) $id_or_email->user_id; } if (empty($user_id)) { return $avatar; } um_fetch_user($user_id); $avatar = um_user('profile_photo', $size); if (!$avatar && um_get_option('use_gravatars')) { $default = get_option('avatar_default', 'mystery'); if ($default == 'gravatar_default') { $default = ''; } $rating = get_option('avatar_rating'); if (!empty($rating)) { $rating = "&r={$rating}"; } $avatar_url = um_get_domain_protocol() . 'gravatar.com/avatar/' . um_user('synced_gravatar_hashed_id'); $avatar = '<img src="' . $avatar_url . '?d=' . $default . '&s=' . $size . $rating . '" class="func-um_get_avatar gravatar avatar avatar-' . $size . ' um-avatar" width="' . $size . '" height="' . $size . '" alt="" />'; } else { if (empty($avatar)) { $default_avatar_uri = um_get_default_avatar_uri(); $avatar = '<img src="' . $default_avatar_uri . '" class="gravatar avatar avatar-' . $size . ' um-avatar" width="' . $size . '" height="' . $size . '" alt="" />'; } } return $avatar; }
function um_get_avatar($avatar = '', $id_or_email = '', $size = '96', $avatar_class = '', $default = '', $alt = '') { if (is_numeric($id_or_email)) { $user_id = (int) $id_or_email; } elseif (is_string($id_or_email) && ($user = get_user_by('email', $id_or_email))) { $user_id = $user->ID; } elseif (is_object($id_or_email) && !empty($id_or_email->user_id)) { $user_id = (int) $id_or_email->user_id; } if (empty($user_id)) { return $avatar; } um_fetch_user($user_id); $avatar = um_user('profile_photo', $size); if (!um_profile('profile_photo') && um_get_option('use_gravatars')) { if (is_ssl()) { $protocol = 'https://'; } else { $protocol = 'http://'; } $default = get_option('avatar_default', 'mystery'); if ($default == 'gravatar_default') { $default = ''; } $rating = get_option('avatar_rating'); if (!empty($rating)) { $rating = "&r={$rating}"; } $avatar = '<img src="' . $protocol . 'gravatar.com/avatar/' . md5(um_user('user_email')) . '?d=' . $default . '&s=' . $size . $rating . '" class="gravatar avatar avatar-' . $size . ' um-avatar" width="' . $size . '" height="' . $size . '" alt="" />'; } return $avatar; }
function um_submit_form_errors_hook_logincheck($args) { global $ultimatemember; // Logout if logged in if (is_user_logged_in()) { wp_logout(); } $user_id = isset($ultimatemember->login->auth_id) ? $ultimatemember->login->auth_id : ''; um_fetch_user($user_id); $status = um_user('account_status'); // account status switch ($status) { // If user can't login to site... case 'inactive': case 'awaiting_admin_review': case 'awaiting_email_confirmation': case 'rejected': um_reset_user(); exit(wp_redirect(add_query_arg('err', esc_attr($status), $ultimatemember->permalinks->get_current_url()))); break; } if (isset($args['form_id']) && $args['form_id'] == $ultimatemember->shortcodes->core_login_form() && $ultimatemember->form->errors && !isset($_POST[$ultimatemember->honeypot])) { exit(wp_redirect(um_get_core_page('login'))); } }
function um_after_changing_user_password($user_id) { global $ultimatemember; um_fetch_user($user_id); $ultimatemember->mail->send(um_user('user_email'), 'changedpw_email'); um_reset_user(); }
function um_admin_user_actions_hook($actions) { $actions = null; if (!um_user('super_admin')) { if (um_user('account_status') == 'awaiting_admin_review') { $actions['um_approve_membership'] = array('label' => __('Approve Membership', 'ultimatemember')); $actions['um_reject_membership'] = array('label' => __('Reject Membership', 'ultimatemember')); } if (um_user('account_status') == 'rejected') { $actions['um_approve_membership'] = array('label' => __('Approve Membership', 'ultimatemember')); } if (um_user('account_status') == 'approved') { $actions['um_put_as_pending'] = array('label' => __('Put as Pending Review', 'ultimatemember')); } if (um_user('account_status') == 'awaiting_email_confirmation') { $actions['um_resend_activation'] = array('label' => __('Resend Activation E-mail', 'ultimatemember')); } if (um_user('account_status') != 'inactive') { $actions['um_deactivate'] = array('label' => __('Deactivate this account', 'ultimatemember')); } if (um_user('account_status') == 'inactive') { $actions['um_reenable'] = array('label' => __('Reactivate this account', 'ultimatemember')); } if (um_current_user_can('delete', um_profile_id())) { $actions['um_delete'] = array('label' => __('Delete this user', 'ultimatemember')); } } if (current_user_can('delete_users')) { $actions['um_switch_user'] = array('label' => __('Login as this user', 'ultimatemember')); } um_fetch_user(um_profile_id()); return $actions; }
function um_admin_user_actions_hook($actions) { $actions = null; if (!um_user('super_admin')) { if (um_user('account_status') == 'awaiting_admin_review') { $actions['um_approve_membership'] = array('label' => __('Утвердить Пользователя', 'ultimatemember')); $actions['um_reject_membership'] = array('label' => __('Отклонить Пользователя', 'ultimatemember')); } if (um_user('account_status') == 'rejected') { $actions['um_approve_membership'] = array('label' => __('Одобрить Пользователя', 'ultimatemember')); } if (um_user('account_status') == 'approved') { $actions['um_put_as_pending'] = array('label' => __('Положите в ожидании пересмотра', 'ultimatemember')); } if (um_user('account_status') == 'awaiting_email_confirmation') { $actions['um_resend_activation'] = array('label' => __('Отправить повторно письмо для активации', 'ultimatemember')); } if (um_user('account_status') != 'inactive') { $actions['um_deactivate'] = array('label' => __('Отключить эту учетную запись', 'ultimatemember')); } if (um_user('account_status') == 'inactive') { $actions['um_reenable'] = array('label' => __('Активируйте эту учетную запись', 'ultimatemember')); } if (um_current_user_can('delete', um_profile_id())) { $actions['um_delete'] = array('label' => __('Удалить этого пользователя', 'ultimatemember')); } } if (current_user_can('delete_users')) { $actions['um_switch_user'] = array('label' => __('Войдите в систему как этот пользователь', 'ultimatemember')); } um_fetch_user(um_profile_id()); return $actions; }
function redirect_author_page() { if (um_get_option('author_redirect') && is_author()) { $id = get_query_var('author'); um_fetch_user($id); exit(wp_redirect(um_user_profile_url())); } }
/** * Overrides password changed notification * */ function um_send_password_change_email($args) { global $ultimatemember; um_fetch_user($user_id); $ultimatemember->user->password_changed(); um_reset_user(); return false; }
function check_for_querystrings() { global $ultimatemember; if (isset($_REQUEST['message'])) { $ultimatemember->shortcodes->message_mode = true; } if (isset($_REQUEST['message']) && isset($_REQUEST['uid'])) { um_fetch_user($_REQUEST['uid']); } }
function um_display_logout_form($args) { global $ultimatemember; if (is_user_logged_in() && isset($args['mode']) && $args['mode'] == 'login') { if (get_current_user_id() != um_user('ID')) { um_fetch_user(get_current_user_id()); } $args['template'] = 'logout'; } return $args; }
function um_dynamic_user_profile_pagetitle($title, $sep = '') { global $paged, $page, $ultimatemember; $profile_title = um_get_option('profile_title'); if (um_is_core_page('user') && um_get_requested_user()) { um_fetch_user(um_get_requested_user()); $profile_title = $ultimatemember->mail->convert_tags($profile_title); $title = $profile_title; um_reset_user(); } return $title; }
function um_control_admin_bar() { if (um_user('can_not_see_adminbar')) { return false; } if (!is_admin() && !um_user('can_access_wpadmin')) { return false; } else { um_fetch_user(get_current_user_id()); return true; } }
function um_add_custom_message_to_menu($items, $args) { global $ultimatemember; // this feature required logged in user if (!is_user_logged_in()) { return $items; } um_fetch_user(get_current_user_id()); $items = $ultimatemember->shortcodes->convert_user_tags($items); um_reset_user(); return $items; }
function listen_to_password_reset_uri() { global $ultimatemember; if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'reset_password' && isset($_REQUEST['hash']) && strlen($_REQUEST['hash']) == 40 && isset($_REQUEST['user_id']) && is_numeric($_REQUEST['user_id'])) { um_fetch_user($_REQUEST['user_id']); if ($_REQUEST['hash'] != um_user('reset_pass_hash')) { wp_die(__('This is not a valid hash, or it has expired.', 'ultimatemember')); } $ultimatemember->user->profile['reset_pass_hash_token'] = current_time('timestamp'); $ultimatemember->user->update_usermeta_info('reset_pass_hash_token'); $this->change_password = true; um_reset_user(); } }
function um_comment_link_to_profile($return) { global $comment, $ultimatemember; if (isset($comment->user_id) && !empty($comment->user_id)) { if (isset($ultimatemember->user->cached_user[$comment->user_id]) && $ultimatemember->user->cached_user[$comment->user_id]) { $return = '<a href="' . $ultimatemember->user->cached_user[$comment->user_id]['url'] . '">' . $ultimatemember->user->cached_user[$comment->user_id]['name'] . '</a>'; } else { um_fetch_user($comment->user_id); $ultimatemember->user->cached_user[$comment->user_id] = array('url' => um_user_profile_url(), 'name' => um_user('display_name')); $return = '<a href="' . $ultimatemember->user->cached_user[$comment->user_id]['url'] . '">' . $ultimatemember->user->cached_user[$comment->user_id]['name'] . '</a>'; um_reset_user(); } } return $return; }
function um_remove_unused_uploads($user_id) { global $ultimatemember; um_fetch_user($user_id); $array = $ultimatemember->user->profile; $files = glob(um_user_uploads_dir() . '*', GLOB_BRACE); if (file_exists(um_user_uploads_dir()) && $files && isset($array) && is_array($array)) { foreach ($files as $file) { $str = basename($file); if (!strstr($str, 'profile_photo') && !strstr($str, 'cover_photo') && !strstr($str, 'stream_photo') && !preg_grep('/' . $str . '/', $array)) { unlink($file); } } } }
function um_after_new_user_register($user_id, $args) { global $ultimatemember; extract($args); um_fetch_user($user_id); if (!isset($args['role'])) { $role = um_get_option('default_role'); } $ultimatemember->user->is_secure_role($user_id, $role); $ultimatemember->user->set_role($role); $ultimatemember->user->set_registration_details($args['submitted']); $ultimatemember->user->set_plain_password($args['user_password']); do_action('um_post_registration_save', $user_id, $args); do_action('um_post_registration_listener', $user_id, $args); do_action('um_post_registration', $user_id, $args); }
/** * Allow changing community role */ function community_role_edit($user) { global $ultimatemember; if (current_user_can('edit_users') && current_user_can('edit_user', $user->ID)) { um_fetch_user($user->ID); ?> <table class="form-table"> <tbody> <tr> <th> <label for="um_role"><?php _e('Community Role', 'ultimatemember'); ?> </label> </th> <td> <select name="um_role" id="um_role"> <?php foreach ($ultimatemember->query->get_roles() as $key => $value) { ?> <option value="<?php echo $key; ?> " <?php selected(um_user('role'), $key); ?> ><?php echo $value; ?> </option> <?php } ?> </select> <span class="description"><?php _e('Assign or change the community role for this user', 'ultimatemember'); ?> </span> </td> </tr> </tbody> </table> <?php } }
function um_shortcode_args_filter($args) { global $ultimatemember; if ($ultimatemember->shortcodes->message_mode == true) { $args['template'] = 'message'; um_fetch_user($_REQUEST['uid']); $ultimatemember->shortcodes->custom_message = um_user(um_user('status') . '_message'); um_reset_user(); } foreach ($args as $k => $v) { if ($ultimatemember->validation->is_serialized($args[$k])) { if (!empty($args[$k])) { $args[$k] = unserialize($args[$k]); } } } return $args; }
function activate_account_via_email_link() { global $ultimatemember; if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'activate_via_email' && isset($_REQUEST['hash']) && strlen($_REQUEST['hash']) == 40 && isset($_REQUEST['user_id']) && is_numeric($_REQUEST['user_id'])) { // valid token $user_id = absint($_REQUEST['user_id']); delete_option("um_cache_userdata_{$user_id}"); um_fetch_user($user_id); if (um_user('account_status') != 'awaiting_email_confirmation') { wp_die('The activation link you used is invalid or has expired.'); } if ($_REQUEST['hash'] != um_user('account_secret_hash')) { wp_die('The secret key provided does not match this one for the user.'); } $ultimatemember->user->approve(); $redirect = um_user('url_email_activate') ? um_user('url_email_activate') : um_get_core_page('login', 'account_active'); um_reset_user(); exit(wp_redirect($redirect)); } }
function um_submit_form_errors_hook_logincheck($args) { global $ultimatemember; // Logout if logged in if (is_user_logged_in()) { wp_logout(); } $user_id = isset($ultimatemember->login->auth_id) ? $ultimatemember->login->auth_id : ''; um_fetch_user($user_id); $status = um_user('account_status'); // account status switch ($status) { // If user can't login to site... case 'inactive': case 'awaiting_admin_review': case 'awaiting_email_confirmation': case 'rejected': um_reset_user(); exit(wp_redirect(add_query_arg('err', $status, $ultimatemember->permalinks->get_current_url()))); break; } }
function um_wp_form_errors_hook_logincheck($user, $username, $password) { remove_filter('authenticate', 'wp_authenticate_username_password', 20, 3); if (isset($user->ID)) { um_fetch_user($user->ID); $status = um_user('account_status'); switch ($status) { case 'inactive': return new WP_Error($status, __('Ваш аккаунт был отключен.', 'ultimatemember')); break; case 'awaiting_admin_review': return new WP_Error($status, __('Ваш аккаунт не был одобрен еще.', 'ultimatemember')); break; case 'awaiting_email_confirmation': return new WP_Error($status, __('Ваша учетная запись ожидает проверки электронной почты.', 'ultimatemember')); break; case 'rejected': return new WP_Error($status, __('Ваш запрос на вступление была отклонена.', 'ultimatemember')); break; } } return wp_authenticate_username_password(null, $username, $password); }
function um_wp_form_errors_hook_logincheck($user, $username, $password) { remove_filter('authenticate', 'wp_authenticate_username_password', 20, 3); if (isset($user->ID)) { um_fetch_user($user->ID); $status = um_user('account_status'); switch ($status) { case 'inactive': return new WP_Error($status, __('Your account has been disabled.', 'ultimatemember')); break; case 'awaiting_admin_review': return new WP_Error($status, __('Your account has not been approved yet.', 'ultimatemember')); break; case 'awaiting_email_confirmation': return new WP_Error($status, __('Your account is awaiting e-mail verification.', 'ultimatemember')); break; case 'rejected': return new WP_Error($status, __('Your membership request has been rejected.', 'ultimatemember')); break; } } return wp_authenticate_username_password($user, $username, $password); }
function manage_users_custom_column($value, $column_name, $user_id) { global $ultimatemember; if ($this->custom_role == $column_name) { if (get_option("um_cache_userdata_{$user_id}")) { delete_option("um_cache_userdata_{$user_id}"); } um_fetch_user($user_id); return um_user('role_name'); } return $value; }
function init_loyalty_stats($user_id) { global $ultimatemember; um_fetch_user($user_id); update_user_meta($user_id, 'loyalty_status', 'Green'); update_user_meta($user_id, 'loyalty_points', 0); update_user_meta($user_id, 'loyalty_date', date('Y-m-d', strtotime("+30 days"))); }
function activate_account_via_email_link() { global $ultimatemember; if (isset($_REQUEST['act']) && $_REQUEST['act'] == 'activate_via_email' && isset($_REQUEST['hash']) && strlen($_REQUEST['hash']) == 40 && isset($_REQUEST['user_id']) && is_numeric($_REQUEST['user_id'])) { // valid token $user_id = absint($_REQUEST['user_id']); delete_option("um_cache_userdata_{$user_id}"); um_fetch_user($user_id); if (um_user('account_status') != 'awaiting_email_confirmation') { wp_die('The activation link you used is invalid or has expired.'); } if (strtolower($_REQUEST['hash']) !== strtolower(um_user('account_secret_hash'))) { wp_die('The secret key provided does not match this one for the user.'); } $ultimatemember->user->approve(); $redirect = um_user('url_email_activate') ? um_user('url_email_activate') : um_get_core_page('login', 'account_active'); $login = (bool) um_user('login_email_activate'); // log in automatically if (!is_user_logged_in() && $login) { $user = get_userdata($user_id); $user_id = $user->ID; // update wp user wp_set_current_user($user_id, $user_login); wp_set_auth_cookie($user_id); ob_start(); do_action('wp_login', $user_login); ob_end_clean(); } um_reset_user(); do_action('um_after_email_confirmation', $user_id); exit(wp_redirect($redirect)); } }
function um_after_new_user_register($user_id, $args) { global $ultimatemember, $pagenow; extract($args); um_fetch_user($user_id); if (!isset($args['role'])) { $role = um_get_option('default_role'); } if ($pagenow != 'user-new.php' && !array_key_exists($role, $ultimatemember->query->get_roles(false, array('admin')))) { $role = um_get_option('default_role'); } $ultimatemember->user->set_role($role); $ultimatemember->user->set_registration_details($args['submitted']); $ultimatemember->user->set_last_login(); do_action('um_new_user_registration_plain'); do_action('um_post_registration_save', $user_id, $args); do_action('um_post_registration_listener', $user_id, $args); do_action('um_post_registration', $user_id, $args); }
function um_members_directory_display($args) { global $ultimatemember; extract($args); if (isset($args['search']) && $args['search'] == 1 && isset($args['must_search']) && $args['must_search'] == 1 && !isset($_REQUEST['um_search'])) { return; } if (um_members('no_users')) { ?> <div class="um-members-none"> <p><?php echo $args['no_users']; ?> </p> </div> <?php } if (um_members('users_per_page')) { ?> <div class="um-members"> <div class="um-gutter-sizer"></div> <?php $i = 0; foreach (um_members('users_per_page') as $member) { $i++; um_fetch_user($member); ?> <div class="um-member <?php echo um_user('account_status'); ?> <?php if ($cover_photos) { echo 'with-cover'; } ?> "> <span class="um-member-status <?php echo um_user('account_status'); ?> "><?php echo um_user('account_status_name'); ?> </span> <?php if ($cover_photos) { if ($ultimatemember->mobile->isTablet()) { $cover_size = 600; } else { $cover_size = 300; } ?> <div class="um-member-cover" data-ratio="<?php echo um_get_option('profile_cover_ratio'); ?> "> <div class="um-member-cover-e"><?php echo um_user('cover_photo', $cover_size); ?> </div> </div> <?php } ?> <?php if ($profile_photo) { $default_size = str_replace('px', '', um_get_option('profile_photosize')); $corner = um_get_option('profile_photocorner'); ?> <div class="um-member-photo radius-<?php echo $corner; ?> "><a href="<?php echo um_user_profile_url(); ?> " title="<?php echo um_user('display_name'); ?> "><?php echo get_avatar(um_user('ID'), $default_size); ?> </a></div> <?php } ?> <div class="um-member-card <?php if (!$profile_photo) { echo 'no-photo'; } ?> "> <?php if ($show_name) { ?> <div class="um-member-name"><a href="<?php echo um_user_profile_url(); ?> " title="<?php echo um_user('display_name'); ?> "><?php echo um_user('display_name', 'html'); ?> </a></div> <?php } ?> <?php do_action('um_members_just_after_name', um_user('ID'), $args); ?> <?php do_action('um_members_after_user_name', um_user('ID'), $args); ?> <?php if ($show_tagline && is_array($tagline_fields)) { foreach ($tagline_fields as $key) { if ($key && um_filtered_value($key)) { $value = um_filtered_value($key); ?> <div class="um-member-tagline"><?php echo $value; ?> </div> <?php } } } ?> <?php if ($show_userinfo) { ?> <div class="um-member-meta-main"> <?php if ($userinfo_animate) { ?> <div class="um-member-more"><a href="#"><i class="um-faicon-angle-down"></i></a></div> <?php } ?> <div class="um-member-meta <?php if (!$userinfo_animate) { echo 'no-animate'; } ?> "> <?php foreach ($reveal_fields as $key) { if ($key && um_filtered_value($key)) { $value = um_filtered_value($key); ?> <div class="um-member-metaline um-member-metaline-<?php echo $key; ?> "><span><strong><?php echo $ultimatemember->fields->get_label($key); ?> :</strong> <?php echo $value; ?> </span></div> <?php } } ?> <?php if ($show_social) { ?> <div class="um-member-connect"> <?php $ultimatemember->fields->show_social_urls(); ?> </div> <?php } ?> </div> <div class="um-member-less"><a href="#"><i class="um-faicon-angle-up"></i></a></div> </div> <?php } ?> </div> </div> <?php um_reset_user_clean(); } // end foreach um_reset_user(); ?> <div class="um-clear"></div> </div> <?php } }
function um_current_user_can($cap, $user_id) { global $ultimatemember; if (!is_user_logged_in()) { return false; } $return = 1; um_fetch_user(get_current_user_id()); switch ($cap) { case 'edit': if (get_current_user_id() == $user_id && um_user('can_edit_profile')) { $return = 1; } elseif (!um_user('can_edit_everyone')) { $return = 0; } elseif (get_current_user_id() == $user_id && !um_user('can_edit_profile')) { $return = 0; } elseif (um_user('can_edit_roles') && !in_array($ultimatemember->query->get_role_by_userid($user_id), um_user('can_edit_roles'))) { $return = 0; } break; case 'delete': if (!um_user('can_delete_everyone')) { $return = 0; } elseif (um_user('can_delete_roles') && !in_array($ultimatemember->query->get_role_by_userid($user_id), um_user('can_delete_roles'))) { $return = 0; } break; } um_fetch_user($user_id); return $return; }
function um_admin_do_action__user_action($action) { global $ultimatemember; if (!is_admin() || !current_user_can('edit_users')) { die; } if (!isset($_REQUEST['sub'])) { die; } if (!isset($_REQUEST['user_id'])) { die; } um_fetch_user($_REQUEST['user_id']); $subaction = $_REQUEST['sub']; do_action("um_admin_user_action_hook", $subaction); do_action("um_admin_user_action_{$subaction}_hook"); um_reset_user(); wp_redirect(add_query_arg('update', 'user_updated', admin_url('?page=ultimatemember'))); exit; }