function qum_front_end_logout($atts) { if (!is_user_logged_in()) { return; } $current_user = get_userdata(get_current_user_id()); extract(shortcode_atts(array('text' => sprintf(__('You are currently logged in as %s. ', 'quickusermanager'), $current_user->user_login), 'redirect' => qum_curpageurl(), 'link_text' => __('Log out »', 'quickusermanager')), $atts)); $logout_link = '<a href="' . wp_logout_url($redirect) . '" class="qum-logout-url" title="' . __('Log out of this account', 'quickusermanager') . '">' . $link_text . '</a>'; $meta_tags = apply_filters('qum_front_end_logout_meta_tags', array('{{meta_user_name}}', '{{meta_first_name}}', '{{meta_last_name}}', '{{meta_display_name}}')); $meta_tags_values = apply_filters('qum_front_end_logout_meta_tags_values', array($current_user->user_login, $current_user->first_name, $current_user->last_name, $current_user->display_name)); $text = apply_filters('qum_front_end_logout_text', str_replace($meta_tags, $meta_tags_values, $text), $current_user); return '<p class="qum-front-end-logout"><span>' . $text . '</span>' . $logout_link . '</p>'; }
function qum_get_redirect() { if ($this->args['login_after_register'] == 'Yes') { return $this->qum_log_in_user(); } if ($this->args['redirect_activated'] == 'No' || $this->args['form_type'] == 'edit_profile' && $this->args['form_name'] == 'unspecified' && qum_curpageurl() == $this->args['redirect_url'] || $this->args['form_type'] == 'register' && $this->args['form_name'] == 'unspecified' && qum_curpageurl() == $this->args['redirect_url']) { return ''; } /* if we don't have a preference on the form for redirect then if we have a custom redirect "after register redirect" option redirect to that if not don't do anything */ if ($this->args['redirect_activated'] == '-') { if (!empty($this->args['custom_redirect_after_register_url'])) { $this->args['redirect_url'] = $this->args['custom_redirect_after_register_url']; } else { return ''; } } $redirect_location = qum_check_missing_http($this->args['redirect_url']) ? 'http://' . $this->args['redirect_url'] : $this->args['redirect_url']; $redirect_url = apply_filters('qum_redirect_url', '<a href="' . $redirect_location . '">' . __('here', 'quickusermanager') . '</a>'); return apply_filters('qum_redirect_message_before_returning', '<p class="redirect_message">' . sprintf(__('You will soon be redirected automatically. If you see this page for more than %1$d seconds, please click %2$s.%3$s', 'quickusermanager'), $this->args['redirect_delay'], $redirect_url, '<meta http-equiv="Refresh" content="' . $this->args['redirect_delay'] . ';url=' . $redirect_location . '" />') . '</p>', $this->args); }
function qum_front_end_login($atts) { extract(shortcode_atts(array('display' => true, 'redirect' => '', 'redirect_url' => '', 'register_url' => '', 'lostpassword_url' => ''), $atts)); $qum_generalSettings = get_option('qum_general_settings'); if (!is_user_logged_in()) { // set up the form arguments $form_args = array('echo' => false, 'id_submit' => 'qum-submit'); //Add support for "redirect_url" parameter for Login shortcode (will do the same thing as "redirect" - for consistency with Register, Edit Profile shortcodes) if (!empty($redirect_url)) { $redirect = $redirect_url; } // maybe set up the redirect argument if (empty($redirect)) { if (QUICK_USER_MANAGER == 'Quick User Manager Pro') { $qum_module_settings = get_option('qum_module_settings'); if ($qum_module_settings['qum_customRedirect'] == 'show') { //check to see if the redirect location is not an empty string and is activated $login_redirect_settings = get_option('customRedirectSettings'); // set up the redirect argument to our redirect page if (trim($login_redirect_settings['afterLoginTarget']) != '' && $login_redirect_settings['afterLogin'] == 'yes') { $redirect_to = trim($login_redirect_settings['afterLoginTarget']); if (qum_check_missing_http($redirect_to)) { $redirect_to = 'http://' . $redirect_to; } $form_args['redirect'] = $redirect_to; } } } } else { $form_args['redirect'] = trim($redirect); } // change the label argument for username is login with email is enabled if (isset($qum_generalSettings['loginWith']) && $qum_generalSettings['loginWith'] == 'email') { $form_args['label_username'] = __('Email', 'quickusermanager'); } // change the label argument for username on login with username or email when Username and Email is enabled if (isset($qum_generalSettings['loginWith']) && $qum_generalSettings['loginWith'] == 'usernameemail') { $form_args['label_username'] = __('Username or Email', 'quickusermanager'); } // initialize our form variable $login_form = ''; // display our login errors if (isset($_GET['loginerror']) || isset($_POST['loginerror'])) { $loginerror = isset($_GET['loginerror']) ? $_GET['loginerror'] : $_POST['loginerror']; $loginerror = '<p class="qum-error">' . urldecode(base64_decode($loginerror)) . '</p><!-- .error -->'; if (isset($_GET['request_form_location'])) { if ($_GET['request_form_location'] == 'widget' && !in_the_loop()) { $login_form .= $loginerror; } elseif ($_GET['request_form_location'] == 'page' && in_the_loop()) { $login_form .= $loginerror; } } } // build our form $login_form .= '<div id="qum-login-wrap" class="qum-user-forms">'; $form_args['lostpassword_url'] = $lostpassword_url; $login_form .= wp_login_form(apply_filters('qum_login_form_args', $form_args)); if (!empty($register_url) || !empty($lostpassword_url)) { $login_form .= '<p class="login-register-lost-password">'; $i = 0; if (!empty($register_url)) { if (qum_check_missing_http($register_url)) { $register_url = "http://" . $register_url; } $login_form .= '<a href="' . esc_url($register_url) . '">' . apply_filters('qum_login_register_text', __('Register', 'quickusermanager')) . '</a>'; $i++; } if (!empty($lostpassword_url)) { if ($i != 0) { $login_form .= ' | '; } if (qum_check_missing_http($lostpassword_url)) { $lostpassword_url = "http://" . $lostpassword_url; } $login_form .= '<a href="' . esc_url($lostpassword_url) . '">' . apply_filters('qum_login_lostpass_text', __('Lost your password?', 'quickusermanager')) . '</a>'; } $login_form .= '</p>'; } $login_form .= '</div>'; return $login_form; } else { $user_ID = get_current_user_id(); $qum_user = get_userdata($user_ID); if (isset($qum_generalSettings['loginWith']) && $qum_generalSettings['loginWith'] == 'email') { $display_name = $qum_user->user_email; } elseif ($qum_user->display_name !== '') { $display_name = $qum_user->user_login; } else { $display_name = $qum_user->display_name; } if (isset($qum_generalSettings['loginWith']) && $qum_generalSettings['loginWith'] == 'usernameemail') { if ($qum_user->user_login == Wordpress_Creation_Kit_QUM::wck_generate_slug(trim($qum_user->user_email))) { $display_name = $qum_user->user_email; } elseif ($qum_user->display_name !== '') { $display_name = $qum_user->user_login; } else { $display_name = $qum_user->display_name; } } $logged_in_message = '<p class="qum-alert">'; $user_url = '<a href="' . ($authorPostsUrl = get_author_posts_url($qum_user->ID) . '" class="qum-author-url" title="' . $display_name . '">' . $display_name . '</a>'); $logout_url = '<a href="' . wp_logout_url($redirectTo = qum_curpageurl()) . '" class="qum-logout-url" title="' . __('Log out of this account', 'quickusermanager') . '">' . __('Log out', 'quickusermanager') . ' »</a>'; $logged_in_message .= sprintf(__('%1$s', 'quickusermanager'), $logout_url); $logged_in_message .= '</p><!-- .qum-alert-->'; return apply_filters('qum_login_message', $logged_in_message, $qum_user->ID, $display_name); } }
/** * The function for the recover password shortcode * */ function qum_front_end_password_recovery() { global $qum_shortcode_on_front; $qum_shortcode_on_front = true; $message = $messageNo = $message2 = $messageNo2 = $linkLoginName = $linkKey = ''; global $wpdb; ob_start(); //Get general settings $qum_generalSettings = get_option('qum_general_settings'); // If the user entered an email/username, process the request if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'recover_password' && wp_verify_nonce($_POST['password_recovery_nonce_field'], 'verify_true_password_recovery')) { $postedData = $_POST['username_email']; //we get the raw data //check to see if it's an e-mail (and if this is valid/present in the database) or is a username // if we do not have an email in the posted date we try to get the email for that user if (!is_email($postedData)) { if (username_exists($postedData)) { $query = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE user_login= %s", $postedData)); if (!empty($query[0])) { $postedData = $query[0]->user_email; } } else { $message = __('The username entered wasn\'t found in the database!', 'quickusermanager') . '<br/>' . __('Please check that you entered the correct username.', 'quickusermanager'); $message = apply_filters('qum_recover_password_sent_message4', $message); $messageNo = '4'; } } // we should have an email by this point if (is_email($postedData)) { if (email_exists($postedData)) { $retVal = qum_check_for_unapproved_user($postedData, 'user_email'); if ($retVal[0] != '') { $message = $retVal[0]; $messageNo = $retVal[1]; } else { $message = sprintf(__('Check your e-mail for the confirmation link.', 'quickusermanager'), $postedData); $message = apply_filters('qum_recover_password_sent_message1', $message, $postedData); $messageNo = '1'; } } elseif (!email_exists($postedData)) { $message = __('The email address entered wasn\'t found in the database!', 'quickusermanager') . '<br/>' . __('Please check that you entered the correct email address.', 'quickusermanager'); $message = apply_filters('qum_recover_password_sent_message2', $message); $messageNo = '2'; } } // For some extra validations you can filter messageNo $messageNo = apply_filters('qum_recover_password_message_no', $messageNo); if ($messageNo == '1') { //verify e-mail validity $query = $wpdb->get_results($wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE user_email= %s", $postedData)); if (!empty($query[0])) { $requestedUserID = $query[0]->ID; $requestedUserLogin = $query[0]->user_login; $requestedUserEmail = $query[0]->user_email; if ($qum_generalSettings['loginWith'] == 'username') { $display_username_email = $query[0]->user_login; } else { $display_username_email = $query[0]->user_email; } //search if there is already an activation key present, if not create one $key = qum_retrieve_activation_key($requestedUserLogin); //send primary email message $recoveruserMailMessage1 = sprintf(__('Someone requested that the password be reset for the following account: <b>%1$s</b><br/>If this was a mistake, just ignore this email and nothing will happen.<br/>To reset your password, visit the following link:%2$s', 'quickusermanager'), $display_username_email, '<a href="' . esc_url(add_query_arg(array('loginName' => $requestedUserLogin, 'key' => $key), qum_curpageurl())) . '">' . esc_url(add_query_arg(array('loginName' => $requestedUserLogin, 'key' => $key), qum_curpageurl())) . '</a>'); $recoveruserMailMessage1 = apply_filters('qum_recover_password_message_content_sent_to_user1', $recoveruserMailMessage1, $requestedUserID, $requestedUserLogin, $requestedUserEmail); $recoveruserMailMessageTitle1 = sprintf(__('Password Reset from "%1$s"', 'quickusermanager'), $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES)); $recoveruserMailMessageTitle1 = apply_filters('qum_recover_password_message_title_sent_to_user1', $recoveruserMailMessageTitle1, $requestedUserLogin); //we add this filter to enable html encoding add_filter('wp_mail_content_type', create_function('', 'return "text/html"; ')); //send mail to the user notifying him of the reset request if (trim($recoveruserMailMessageTitle1) != '') { $sent = wp_mail($requestedUserEmail, $recoveruserMailMessageTitle1, $recoveruserMailMessage1); if ($sent === false) { $message = '<b>' . __('ERROR', 'quickusermanager') . ': </b>' . sprintf(__('There was an error while trying to send the activation link to %1$s!', 'quickusermanager'), $postedData); $message = apply_filters('qum_recover_password_sent_message_error_sending', $message); $messageNo = '5'; } } } } } elseif ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action2']) && $_POST['action2'] == 'recover_password2' && wp_verify_nonce($_POST['password_recovery_nonce_field2'], 'verify_true_password_recovery2_' . $_POST['userData'])) { if ($_POST['passw1'] == $_POST['passw2'] && (!empty($_POST['passw1']) && !empty($_POST['passw2']))) { if (!empty($qum_generalSettings['minimum_password_length']) || isset($_POST['qum_password_strength']) && !empty($qum_generalSettings['minimum_password_strength'])) { $message2 = ''; if (qum_check_password_length($_POST['passw1'])) { $message2 .= '<br/>' . sprintf(__("The password must have the minimum length of %s characters", "quickusermanager"), $qum_generalSettings['minimum_password_length']) . '<br/>'; $messageNo2 = '2'; } if (qum_check_password_strength()) { $message2 .= '<br/>' . sprintf(__("The password must have a minimum strength of %s", "quickusermanager"), qum_check_password_strength()); $messageNo2 = '2'; } } if ($messageNo2 != 2) { $message2 = __('Your password has been successfully changed!', 'quickusermanager'); $messageNo2 = '1'; $userID = $_POST['userData']; $new_pass = $_POST['passw1']; //update the new password and delete the key do_action('qum_password_reset', $userID, $new_pass); wp_set_password($new_pass, $userID); $user_info = get_userdata($userID); if ($qum_generalSettings['loginWith'] == 'username') { $display_username_email = $user_info->user_login; } else { $display_username_email = $user_info->user_email; } //send secondary mail to the user containing the username and the new password $recoveruserMailMessage2 = sprintf(__('You have successfully reset your password to: %1$s', 'quickusermanager'), $new_pass); $recoveruserMailMessage2 = apply_filters('qum_recover_password_message_content_sent_to_user2', $recoveruserMailMessage2, $display_username_email, $new_pass, $userID); $recoveruserMailMessageTitle2 = sprintf(__('Password Successfully Reset for %1$s on "%2$s"', 'quickusermanager'), $display_username_email, $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES)); $recoveruserMailMessageTitle2 = apply_filters('qum_recover_password_message_title_sent_to_user2', $recoveruserMailMessageTitle2, $display_username_email); //we add this filter to enable html encoding add_filter('wp_mail_content_type', create_function('', 'return "text/html"; ')); //send mail to the user notifying him of the reset request if (trim($recoveruserMailMessageTitle2) != '') { wp_mail($user_info->user_email, $recoveruserMailMessageTitle2, $recoveruserMailMessage2); } //send email to admin $recoveradminMailMessage = sprintf(__('%1$s has requested a password change via the password reset feature.<br/>His/her new password is:%2$s', 'quickusermanager'), $display_username_email, $_POST['passw1']); $recoveradminMailMessage = apply_filters('qum_recover_password_message_content_sent_to_admin', $recoveradminMailMessage, $display_username_email, $_POST['passw1'], $userID); $recoveradminMailMessageTitle = sprintf(__('Password Successfully Reset for %1$s on "%2$s"', 'quickusermanager'), $display_username_email, $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES)); $recoveradminMailMessageTitle = apply_filters('qum_recover_password_message_title_sent_to_admin', $recoveradminMailMessageTitle, $display_username_email); //we disable the feature to send the admin a notification mail but can be still used using filters $recoveradminMailMessageTitle = ''; $recoveradminMailMessageTitle = apply_filters('qum_recover_password_message_title_sent_to_admin', $recoveradminMailMessageTitle, $display_username_email); //we add this filter to enable html encoding add_filter('wp_mail_content_type', create_function('', 'return "text/html"; ')); //send mail to the admin notifying him of of a user with a password reset request if (trim($recoveradminMailMessageTitle) != '') { wp_mail(get_option('admin_email'), $recoveradminMailMessageTitle, $recoveradminMailMessage); } } } else { $message2 = __('The entered passwords don\'t match!', 'quickusermanager'); $messageNo2 = '2'; } } ?> <div class="qum_holder" id="qum-recover-password"> <?php // use this action hook to add extra content before the password recovery form do_action('qum_before_recover_password_fields'); //this is the part that handles the actual recovery if (isset($_GET['submitted']) && isset($_GET['loginName']) && isset($_GET['key'])) { //get the login name and key and verify if they match the ones in the database $key = $_GET['key']; $login = $_GET['loginName']; $user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE user_activation_key = %s AND user_login = %s", $key, $login)); if (!empty($user)) { //check if the "finalAction" variable is not in the address bar, if it is, don't display the form anymore if (isset($_GET['finalAction']) && $_GET['finalAction'] == 'yes') { if ($messageNo2 == '2') { echo apply_filters('qum_recover_password_password_changed_message2', '<p class="qum-error">' . $message2 . '</p>', $message2); qum_create_recover_password_form($user, $_POST); } elseif ($messageNo2 == '1') { echo apply_filters('qum_recover_password_password_changed_message1', '<p class="qum-success">' . $message2 . '</p>', $message2); } } else { qum_create_recover_password_form($user, $_POST); } } else { if ($messageNo2 == '1') { echo apply_filters('qum_recover_password_password_changed_message1', '<p class="qum-success">' . $message2 . '</p>', $message2); } elseif ($messageNo2 == '2') { echo apply_filters('qum_recover_password_password_changed_message2', '<p class="qum-error">' . $message2 . '</p>', $message2); } else { echo apply_filters('qum_recover_password_invalid_key_message', '<p class="qum-warning"><b>' . __('ERROR:', 'quickusermanager') . '</b>' . __('Invalid key!', 'quickusermanager') . '</p>'); } } } else { //display error message and the form if ($messageNo == '' || $messageNo == '2' || $messageNo == '4') { if (!empty($message)) { echo apply_filters('qum_recover_password_displayed_message1', '<p class="qum-warning">' . $message . '</p>'); } qum_create_generate_password_form($_POST); } elseif ($messageNo == '5' || $messageNo == '6') { echo apply_filters('qum_recover_password_displayed_message1', '<p class="qum-warning">' . $message . '</p>'); } else { echo apply_filters('qum_recover_password_displayed_message2', '<p class="qum-success">' . $message . '</p>'); } //display success message } // use this action hook to add extra content after the password recovery form. do_action('qum_after_recover_password_fields'); ?> </div> <?php $output = ob_get_contents(); ob_end_clean(); return $output; }
/** ************************************************************************ * Recommended. This is a custom column method and is responsible for what * is rendered in any column with a name/slug of 'username'. Every time the class * needs to render a column, it first looks for a method named * column_{$column_title} - if it exists, that method is run. If it doesn't * exist, column_default() is called instead. * * This example also illustrates how to implement rollover actions. Actions * should be an associative array formatted as 'slug'=>'link html' - and you * will need to generate the URLs yourself. You could even ensure the links * * * @see qum_WP_List_Table::::single_row_columns() * @param array $item A singular item (one full row's worth of data) * @return string Text to be placed inside the column <td> **************************************************************************/ function column_username($item) { $GRavatar = get_avatar($item['email'], 32, ''); //Build row actions $actions = array('delete' => sprintf('<a href="javascript:confirmECAction( \'%s\', \'%s\', \'%s\', \'' . addslashes(__('delete this user from the _signups table?', 'quickusermanager')) . '\' )">' . __('Delete', 'quickusermanager') . '</a>', qum_curpageurl(), 'delete', $item['ID']), 'confirm' => sprintf('<a href="javascript:confirmECAction( \'%s\', \'%s\', \'%s\', \'' . addslashes(__('confirm this email yourself?', 'quickusermanager')) . '\' )">' . __('Confirm Email', 'quickusermanager') . '</a>', qum_curpageurl(), 'confirm', $item['ID']), 'resend' => sprintf('<a href="javascript:confirmECAction( \'%s\', \'%s\', \'%s\', \'' . addslashes(__('resend the activation link?', 'quickusermanager')) . '\' )">' . __('Resend Activation Email', 'quickusermanager') . '</a>', qum_curpageurl(), 'resend', $item['ID'])); //Return the user row return sprintf('%1$s <strong>%2$s</strong> %3$s', $GRavatar, $item['username'], $this->row_actions($actions)); }