function wppb_front_end_profile_info($atts)
{
    // get value set in the shortcode as parameter, still need to default to something else than empty string
    extract(shortcode_atts(array('form_name' => 'unspecified', 'redirect_url' => '', 'redirect_priority' => 'normal'), $atts, 'wppb-edit-profile'));
    if (PROFILE_BUILDER == 'Profile Builder Pro') {
        $wppb_module_settings = get_option('wppb_module_settings');
        if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && $redirect_priority != 'top' && function_exists('wppb_custom_redirect_url')) {
            $redirect_url = wppb_custom_redirect_url('after_edit_profile', $redirect_url);
        }
    }
    $redirect_url = apply_filters('wppb_after_edit_profile_redirect_url', $redirect_url);
    global ${$form_name};
    ${$form_name} = new Profile_Builder_Form_Creator(array('form_type' => 'edit_profile', 'form_name' => $form_name, 'redirect_url' => $redirect_url, 'redirect_priority' => $redirect_priority));
    return ${$form_name};
}
Example #2
0
function wppb_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. ', 'profile-builder'), $current_user->user_login), 'redirect' => wppb_curpageurl(), 'redirect_priority' => 'normal', 'link_text' => __('Log out »', 'profile-builder')), $atts));
    if (PROFILE_BUILDER == 'Profile Builder Pro') {
        $wppb_module_settings = get_option('wppb_module_settings');
        if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && $redirect_priority != 'top' && function_exists('wppb_custom_redirect_url')) {
            $redirect = wppb_custom_redirect_url('after_logout', $redirect);
        }
    }
    $redirect = apply_filters('wppb_after_logout_redirect_url', $redirect);
    $logout_link = '<a href="' . wp_logout_url($redirect) . '" class="wppb-logout-url" title="' . __('Log out of this account', 'profile-builder') . '">' . $link_text . '</a>';
    $meta_tags = apply_filters('wppb_front_end_logout_meta_tags', array('{{meta_user_name}}', '{{meta_first_name}}', '{{meta_last_name}}', '{{meta_display_name}}'));
    $meta_tags_values = apply_filters('wppb_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('wppb_front_end_logout_text', str_replace($meta_tags, $meta_tags_values, $text), $current_user);
    return '<p class="wppb-front-end-logout"><span>' . $text . '</span>' . $logout_link . '</p>';
}
Example #3
0
/**
 * The function for the recover password shortcode
 *
 */
function wppb_front_end_password_recovery()
{
    global $wppb_shortcode_on_front;
    $wppb_shortcode_on_front = true;
    $message = $messageNo = $message2 = $messageNo2 = $linkLoginName = $linkKey = '';
    global $wpdb;
    ob_start();
    //Get general settings
    $wppb_generalSettings = get_option('wppb_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!', 'profile-builder') . '<br/>' . __('Please check that you entered the correct username.', 'profile-builder');
                $message = apply_filters('wppb_recover_password_sent_message4', $message);
                $messageNo = '4';
            }
        }
        // we should have an email by this point
        if (is_email($postedData)) {
            if (email_exists($postedData)) {
                $retVal = wppb_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.', 'profile-builder'), $postedData);
                    $message = apply_filters('wppb_recover_password_sent_message1', $message, $postedData);
                    $messageNo = '1';
                }
            } elseif (!email_exists($postedData)) {
                $message = __('The email address entered wasn\'t found in the database!', 'profile-builder') . '<br/>' . __('Please check that you entered the correct email address.', 'profile-builder');
                $message = apply_filters('wppb_recover_password_sent_message2', $message);
                $messageNo = '2';
            }
        }
        // For some extra validations you can filter messageNo
        $messageNo = apply_filters('wppb_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;
                $requestedUserNicename = $query[0]->user_nicename;
                if ($wppb_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 = wppb_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', 'profile-builder'), $display_username_email, '<a href="' . esc_url(add_query_arg(array('loginName' => $requestedUserNicename, 'key' => $key), wppb_curpageurl())) . '">' . esc_url(add_query_arg(array('loginName' => $requestedUserNicename, 'key' => $key), wppb_curpageurl())) . '</a>');
                $recoveruserMailMessage1 = apply_filters('wppb_recover_password_message_content_sent_to_user1', $recoveruserMailMessage1, $requestedUserID, $requestedUserLogin, $requestedUserEmail);
                $recoveruserMailMessageTitle1 = sprintf(__('Password Reset from "%1$s"', 'profile-builder'), $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES));
                $recoveruserMailMessageTitle1 = apply_filters('wppb_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', 'profile-builder') . ': </b>' . sprintf(__('There was an error while trying to send the activation link to %1$s!', 'profile-builder'), $postedData);
                        $message = apply_filters('wppb_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($wppb_generalSettings['minimum_password_length']) || isset($_POST['wppb_password_strength']) && !empty($wppb_generalSettings['minimum_password_strength'])) {
                $message2 = '';
                if (wppb_check_password_length($_POST['passw1'])) {
                    $message2 .= '<br/>' . sprintf(__("The password must have the minimum length of %s characters", "profile-builder"), $wppb_generalSettings['minimum_password_length']) . '<br/>';
                    $messageNo2 = '2';
                }
                if (wppb_check_password_strength()) {
                    $message2 .= '<br/>' . sprintf(__("The password must have a minimum strength of %s", "profile-builder"), wppb_check_password_strength());
                    $messageNo2 = '2';
                }
            }
            if ($messageNo2 != 2) {
                $message2 = __('Your password has been successfully changed!', 'profile-builder');
                $messageNo2 = '1';
                $userID = $_POST['userData'];
                $new_pass = $_POST['passw1'];
                //update the new password and delete the key
                do_action('wppb_password_reset', $userID, $new_pass);
                wp_set_password($new_pass, $userID);
                $user_info = get_userdata($userID);
                if ($wppb_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', 'profile-builder'), $new_pass);
                $recoveruserMailMessage2 = apply_filters('wppb_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"', 'profile-builder'), $display_username_email, $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES));
                $recoveruserMailMessageTitle2 = apply_filters('wppb_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', 'profile-builder'), $display_username_email, $_POST['passw1']);
                $recoveradminMailMessage = apply_filters('wppb_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"', 'profile-builder'), $display_username_email, $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES));
                $recoveradminMailMessageTitle = apply_filters('wppb_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('wppb_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!', 'profile-builder');
            $messageNo2 = '2';
        }
    }
    ?>

	<div class="wppb_holder" id="wppb-recover-password">

<?php 
    // use this action hook to add extra content before the password recovery form
    do_action('wppb_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_nicename = $_GET['loginName'];
        $user = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->users} WHERE user_activation_key = %s AND user_nicename = %s", $key, $login_nicename));
        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('wppb_recover_password_password_changed_message2', '<p class="wppb-error">' . $message2 . '</p>', $message2);
                    wppb_create_recover_password_form($user, $_POST);
                } elseif ($messageNo2 == '1') {
                    echo apply_filters('wppb_recover_password_password_changed_message1', '<p class="wppb-success">' . $message2 . '</p>', $message2);
                }
            } else {
                wppb_create_recover_password_form($user, $_POST);
            }
        } else {
            if ($messageNo2 == '1') {
                if (PROFILE_BUILDER == 'Profile Builder Pro') {
                    $wppb_module_settings = get_option('wppb_module_settings');
                    if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                        $redirect_url = wppb_custom_redirect_url('after_success_password_reset', '', $_GET['loginName']);
                        $redirect_url = apply_filters('wppb_after_success_password_reset_redirect_url', $redirect_url);
                        if (isset($redirect_url) && !empty($redirect_url)) {
                            $redirect_after_seconds = 3;
                            echo apply_filters('wppb_after_success_password_reset_redirect_after_seconds', '<meta http-equiv="refresh" content="' . $redirect_after_seconds . '; url=' . $redirect_url . '">', $redirect_after_seconds);
                            $before_redirect_message = 'You will soon be redirected automatically. If you see this page for more than ' . $redirect_after_seconds . ' seconds, please click <a href="' . $redirect_url . '">here</a>.';
                            $before_redirect_message = apply_filters('wppb_after_success_password_reset_before_redirect_message', $before_redirect_message);
                        }
                    }
                }
                echo apply_filters('wppb_recover_password_password_changed_message1', '<p class="wppb-success">' . $message2 . '</p>', $message2);
                if (isset($before_redirect_message) && !empty($before_redirect_message)) {
                    echo '<p>' . $before_redirect_message . '</p>';
                }
            } elseif ($messageNo2 == '2') {
                echo apply_filters('wppb_recover_password_password_changed_message2', '<p class="wppb-error">' . $message2 . '</p>', $message2);
            } else {
                echo apply_filters('wppb_recover_password_invalid_key_message', '<p class="wppb-warning"><b>' . __('ERROR:', 'profile-builder') . '</b>' . __('Invalid key!', 'profile-builder') . '</p>');
            }
        }
    } else {
        //display error message and the form
        if ($messageNo == '' || $messageNo == '2' || $messageNo == '4') {
            if (!empty($message)) {
                echo apply_filters('wppb_recover_password_displayed_message1', '<p class="wppb-warning">' . $message . '</p>');
            }
            wppb_create_generate_password_form($_POST);
        } elseif ($messageNo == '5' || $messageNo == '6') {
            echo apply_filters('wppb_recover_password_displayed_message1', '<p class="wppb-warning">' . $message . '</p>');
        } else {
            echo apply_filters('wppb_recover_password_displayed_message2', '<p class="wppb-success">' . $message . '</p>');
        }
        //display success message
    }
    // use this action hook to add extra content after the password recovery form.
    do_action('wppb_after_recover_password_fields');
    ?>
	</div>

<?php 
    $output = ob_get_contents();
    ob_end_clean();
    return $output;
}
Example #4
0
 function wppb_register_user($global_request, $userdata)
 {
     $wppb_general_settings = get_option('wppb_general_settings');
     $user_id = null;
     $new_user_signup = false;
     if (isset($wppb_general_settings['loginWith']) && $wppb_general_settings['loginWith'] == 'email') {
         $userdata['user_login'] = apply_filters('wppb_generated_random_username', Wordpress_Creation_Kit_PB::wck_generate_slug(trim($userdata['user_email'])), $userdata['user_email']);
     }
     if (isset($wppb_general_settings['emailConfirmation']) && $wppb_general_settings['emailConfirmation'] == 'yes') {
         $new_user_signup = true;
         $userdata = $this->wppb_add_custom_field_values($global_request, $userdata, $this->args['form_fields']);
         if (!isset($userdata['role'])) {
             $userdata['role'] = $this->args['role'];
         } else {
             if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                 $this->args['redirect_url'] = wppb_custom_redirect_url('after_registration', $this->args['redirect_url'], $userdata["user_login"], $userdata['role']);
             }
         }
         $userdata['user_pass'] = wp_hash_password($userdata['user_pass']);
         if (is_multisite()) {
             /* since version 2.0.7 add this meta so we know on what blog the user registered */
             $userdata['registered_for_blog_id'] = get_current_blog_id();
             $userdata = wp_unslash($userdata);
         }
         wppb_signup_user($userdata['user_login'], $userdata['user_email'], $userdata);
     } else {
         if (!isset($userdata['role'])) {
             $userdata['role'] = $this->args['role'];
         } else {
             if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                 $this->args['redirect_url'] = wppb_custom_redirect_url('after_registration', $this->args['redirect_url'], $userdata["user_login"], $userdata['role']);
             }
         }
         $userdata = wp_unslash($userdata);
         // change User Registered date and time according to timezone selected in WordPress settings
         $wppb_get_date = wppb_get_date_by_timezone();
         if (isset($wppb_get_date)) {
             $userdata['user_registered'] = $wppb_get_date;
         }
         // insert user to database
         $user_id = wp_insert_user($userdata);
     }
     return array('userdata' => $userdata, 'user_id' => $user_id, 'new_user_signup' => $new_user_signup);
 }
Example #5
0
/**
 * Activate a signup.
 *
 *
 * @param string $key The activation key provided to the user.
 * @return array An array containing information about the activated user and/or blog
 */
function wppb_activate_signup($key)
{
    global $wpdb;
    $bloginfo = get_bloginfo('name');
    $wppb_general_settings = get_option('wppb_general_settings');
    $signup = is_multisite() ? $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->signups} WHERE activation_key = %s", $key)) : $wpdb->get_row($wpdb->prepare("SELECT * FROM " . $wpdb->base_prefix . "signups WHERE activation_key = %s", $key));
    if (empty($signup)) {
        return apply_filters('wppb_register_activate_user_error_message1', '<p class="error">' . __('Invalid activation key!', 'profile-builder') . '</p>');
    }
    if ($signup->active) {
        if (empty($signup->domain)) {
            return apply_filters('wppb_register_activate_user_error_message2', '<p class="error">' . __('This username is now active!', 'profile-builder') . '</p>');
        }
    }
    $meta = unserialize($signup->meta);
    $user_login = isset($wppb_general_settings['loginWith']) && $wppb_general_settings['loginWith'] == 'email' ? trim($signup->user_email) : trim($signup->user_login);
    $user_email = esc_sql($signup->user_email);
    /* the password is in hashed form in the signup table so we will add it later */
    $password = NULL;
    $user_id = username_exists($user_login);
    if (!$user_id) {
        $user_id = wppb_create_user($user_login, $password, $user_email);
    } else {
        $user_already_exists = true;
    }
    if (!$user_id) {
        return apply_filters('wppb_register_activate_user_error_message4', '<p class="error">' . __('Could not create user!', 'profile-builder') . '</p>');
    } elseif (isset($user_already_exists) && $user_already_exists == true) {
        return apply_filters('wppb_register_activate_user_error_message5', '<p class="error">' . __('This username is already activated!', 'profile-builder') . '</p>');
    } else {
        $inserted_user = is_multisite() ? $wpdb->update($wpdb->signups, array('active' => 1, 'activated' => current_time('mysql', true)), array('activation_key' => $key)) : $wpdb->update($wpdb->base_prefix . 'signups', array('active' => 1, 'activated' => current_time('mysql', true)), array('activation_key' => $key));
        wppb_add_meta_to_user_on_activation($user_id, '', $meta);
        // if admin approval is activated, then block the user untill he gets approved
        $wppb_generalSettings = get_option('wppb_general_settings');
        if (isset($wppb_generalSettings['adminApproval']) && $wppb_generalSettings['adminApproval'] == 'yes') {
            $user_data = get_userdata($user_id);
            if ($wppb_generalSettings != 'not_found' && !empty($wppb_generalSettings['adminApprovalOnUserRole'])) {
                foreach ($user_data->roles as $role) {
                    if (in_array($role, $wppb_generalSettings['adminApprovalOnUserRole'])) {
                        wp_set_object_terms($user_id, array('unapproved'), 'user_status', false);
                        clean_object_term_cache($user_id, 'user_status');
                    } else {
                        add_filter('wppb_register_success_message', 'wppb_noAdminApproval_successMessage');
                    }
                }
            } else {
                wp_set_object_terms($user_id, array('unapproved'), 'user_status', false);
                clean_object_term_cache($user_id, 'user_status');
            }
        }
        if (!isset($wppb_generalSettings['adminApproval'])) {
            $wppb_generalSettings['adminApproval'] = 'no';
        }
        /* copy the hashed password from signup meta to wp user table */
        if (!empty($meta['user_pass'])) {
            /* we might still have the base64 encoded password in signups and not the hash */
            if (base64_encode(base64_decode($meta['user_pass'], true)) === $meta['user_pass']) {
                $meta['user_pass'] = wp_hash_password($meta['user_pass']);
            }
            $wpdb->update($wpdb->users, array('user_pass' => $meta['user_pass']), array('ID' => $user_id));
        }
        wppb_notify_user_registration_email($bloginfo, $user_login, $user_email, 'sending', $password, $wppb_generalSettings['adminApproval']);
        do_action('wppb_activate_user', $user_id, $password, $meta);
        if ($inserted_user) {
            $redirect_url = NULL;
            if (PROFILE_BUILDER == 'Profile Builder Pro') {
                $wppb_module_settings = get_option('wppb_module_settings');
                if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                    $redirect_url = wppb_custom_redirect_url('after_success_email_confirmation', '', $user_login);
                }
            }
            $redirect_url = apply_filters('wppb_success_email_confirmation_redirect_url', $redirect_url);
            $wppb_cr_delay = apply_filters('wppb_success_email_confirmation_redirect_delay', $wppb_cr_delay = 5);
            $success_message = apply_filters('wppb_success_email_confirmation', '<p class="wppb-success">' . __('Your email was successfully confirmed.', 'profile-builder') . '</p><!-- .success -->');
            $admin_approval_message = apply_filters('wppb_email_confirmation_with_admin_approval', '<p class="alert">' . __('Before you can access your account, an administrator needs to approve it. You will be notified via email.', 'profile-builder') . '</p>');
            if (!empty($redirect_url)) {
                $wppb_cr_success_message = apply_filters('wppb_success_email_confirmation_redirect_message', '<p class="wppb-success">' . __('You will soon be redirected automatically.', 'profile-builder') . '</p>') . '<meta http-equiv="Refresh" content="' . $wppb_cr_delay . ';url=' . $redirect_url . '" />';
            }
            $wppb_general_settings = get_option('wppb_general_settings', 'false');
            if (!empty($wppb_general_settings['adminApproval']) && $wppb_general_settings['adminApproval'] == 'yes') {
                $user_data = get_userdata($user_id);
                if ($wppb_general_settings != 'not_found' && !empty($wppb_general_settings['adminApprovalOnUserRole'])) {
                    foreach ($user_data->roles as $role) {
                        if (in_array($role, $wppb_general_settings['adminApprovalOnUserRole'])) {
                            return $success_message . $admin_approval_message . (!empty($wppb_cr_success_message) ? $wppb_cr_success_message : '');
                        } else {
                            wp_set_object_terms($user_id, NULL, 'user_status');
                            clean_object_term_cache($user_id, 'user_status');
                            return $success_message . (!empty($wppb_cr_success_message) ? $wppb_cr_success_message : '');
                        }
                    }
                } else {
                    return $success_message . $admin_approval_message . (!empty($wppb_cr_success_message) ? $wppb_cr_success_message : '');
                }
            } else {
                wp_set_object_terms($user_id, NULL, 'user_status');
                clean_object_term_cache($user_id, 'user_status');
                return $success_message . (!empty($wppb_cr_success_message) ? $wppb_cr_success_message : '');
            }
        } else {
            return apply_filters('wppb_register_failed_user_activation', '<p class="error">' . __('There was an error while trying to activate the user.', 'profile-builder') . '</p><!-- .error -->');
        }
    }
}
Example #6
0
function wppb_front_end_login($atts)
{
    extract(shortcode_atts(array('display' => true, 'redirect' => '', 'redirect_url' => '', 'register_url' => '', 'lostpassword_url' => '', 'redirect_priority' => 'normal'), $atts));
    $wppb_generalSettings = get_option('wppb_general_settings');
    if (!is_user_logged_in()) {
        // set up the form arguments
        $form_args = array('echo' => false, 'id_submit' => 'wppb-submit');
        // maybe set up the redirect argument
        if (!empty($redirect_url)) {
            if ($redirect_priority == 'top') {
                $form_args['redirect_priority'] = 'top';
            } else {
                $form_args['redirect_priority'] = 'normal';
            }
            $form_args['redirect'] = trim($redirect_url);
        }
        // change the label argument for username is login with email is enabled
        if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
            $form_args['label_username'] = __('Email', 'profile-builder');
        }
        // change the label argument for username on login with username or email when Username and Email is enabled
        if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'usernameemail') {
            $form_args['label_username'] = __('Username or Email', 'profile-builder');
        }
        // 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="wppb-error">' . preg_replace('#<(.*?)script(.*?)>(.*?)</(.*?)script(.*?)>#is', '', 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="wppb-login-wrap" class="wppb-user-forms">';
        $form_args['lostpassword_url'] = $lostpassword_url;
        $login_form .= wp_login_form(apply_filters('wppb_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 (wppb_check_missing_http($register_url)) {
                    $register_url = "http://" . $register_url;
                }
                $login_form .= '<a href="' . esc_url($register_url) . '">' . apply_filters('wppb_login_register_text', __('Register', 'profile-builder')) . '</a>';
                $i++;
            }
            if (!empty($lostpassword_url)) {
                if ($i != 0) {
                    $login_form .= ' | ';
                }
                if (wppb_check_missing_http($lostpassword_url)) {
                    $lostpassword_url = "http://" . $lostpassword_url;
                }
                $login_form .= '<a href="' . esc_url($lostpassword_url) . '">' . apply_filters('wppb_login_lostpass_text', __('Lost your password?', 'profile-builder')) . '</a>';
            }
            $login_form .= '</p>';
        }
        $login_form .= '</div>';
        return $login_form;
    } else {
        $user_ID = get_current_user_id();
        $wppb_user = get_userdata($user_ID);
        if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'email') {
            $display_name = $wppb_user->user_email;
        } elseif ($wppb_user->display_name !== '') {
            $display_name = $wppb_user->user_login;
        } else {
            $display_name = $wppb_user->display_name;
        }
        if (isset($wppb_generalSettings['loginWith']) && $wppb_generalSettings['loginWith'] == 'usernameemail') {
            if ($wppb_user->user_login == Wordpress_Creation_Kit_PB::wck_generate_slug(trim($wppb_user->user_email))) {
                $display_name = $wppb_user->user_email;
            } elseif ($wppb_user->display_name !== '') {
                $display_name = $wppb_user->user_login;
            } else {
                $display_name = $wppb_user->display_name;
            }
        }
        $logged_in_message = '<p class="wppb-alert">';
        $redirect_after_logout_url = wppb_curpageurl();
        if (PROFILE_BUILDER == 'Profile Builder Pro') {
            $wppb_module_settings = get_option('wppb_module_settings');
            if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                $redirect_after_logout_url = wppb_custom_redirect_url('after_logout', $redirect_after_logout_url);
            }
        }
        $redirect_after_logout_url = apply_filters('wppb_after_logout_redirect_url', $redirect_after_logout_url);
        $logout_url = '<a href="' . wp_logout_url($redirect_after_logout_url) . '" class="wppb-logout-url" title="' . __('Log out of this account', 'profile-builder') . '">' . __('Log out', 'profile-builder') . ' &raquo;</a>';
        $logged_in_message .= sprintf(__('You are currently logged in as %1$s. %2$s', 'profile-builder'), $display_name, $logout_url);
        $logged_in_message .= '</p><!-- .wppb-alert-->';
        return apply_filters('wppb_login_message', $logged_in_message, $wppb_user->ID, $display_name);
    }
}
 function wppb_form_logic()
 {
     if ($this->args['form_type'] == 'register') {
         $registration = apply_filters('wppb_register_setting_override', get_option('users_can_register'));
         if (!is_user_logged_in()) {
             if (!$registration) {
                 echo apply_filters('wppb_register_pre_form_message', '<p class="alert" id="wppb_register_pre_form_message">' . __('Only an administrator can add new users.', 'profile-builder') . '</p>');
             } elseif ($registration) {
                 $this->wppb_form_content(apply_filters('wppb_register_pre_form_message', ''));
             }
         } else {
             $current_user_capability = apply_filters('wppb_registration_user_capability', 'create_users');
             if (current_user_can($current_user_capability) && $registration) {
                 $this->wppb_form_content(apply_filters('wppb_register_pre_form_message', '<p class="alert" id="wppb_register_pre_form_message">' . __('Users can register themselves or you can manually create users here.', 'profile-builder') . '<img src="' . WPPB_PLUGIN_URL . 'assets/images/pencil_delete.png" title="' . __('This message is only visible by administrators', 'profile-builder') . '"/>' . '</p>'));
             } elseif (current_user_can($current_user_capability) && !$registration) {
                 $this->wppb_form_content(apply_filters('wppb_register_pre_form_message', '<p class="alert" id="wppb_register_pre_form_message">' . __('Users cannot currently register themselves, but you can manually create users here.', 'profile-builder') . '<img src="' . WPPB_PLUGIN_URL . 'assets/images/pencil_delete.png" title="' . __('This message is only visible by administrators', 'profile-builder') . '"/>' . '</p>'));
             } elseif (!current_user_can($current_user_capability)) {
                 global $user_ID;
                 $userdata = get_userdata($user_ID);
                 $display_name = $userdata->data->display_name == '' ? $userdata->data->user_login : $userdata->data->display_name;
                 $wppb_general_settings = get_option('wppb_general_settings');
                 if (isset($wppb_general_settings['loginWith']) && $wppb_general_settings['loginWith'] == 'email') {
                     $display_name = $userdata->data->user_email;
                 }
                 $redirect_after_logout_url = get_permalink();
                 if (PROFILE_BUILDER == 'Profile Builder Pro') {
                     $wppb_module_settings = get_option('wppb_module_settings');
                     if (isset($wppb_module_settings['wppb_customRedirect']) && $wppb_module_settings['wppb_customRedirect'] == 'show' && function_exists('wppb_custom_redirect_url')) {
                         $redirect_after_logout_url = wppb_custom_redirect_url('after_logout', $redirect_after_logout_url);
                     }
                 }
                 $redirect_after_logout_url = apply_filters('wppb_after_logout_redirect_url', $redirect_after_logout_url);
                 echo apply_filters('wppb_register_pre_form_message', '<p class="alert" id="wppb_register_pre_form_message">' . sprintf(__("You are currently logged in as %1s. You don't need another account. %2s", 'profile-builder'), '<a href="' . get_author_posts_url($user_ID) . '" title="' . $display_name . '">' . $display_name . '</a>', '<a href="' . wp_logout_url($redirect_after_logout_url) . '" title="' . __('Log out of this account.', 'profile-builder') . '">' . __('Logout', 'profile-builder') . '  &raquo;</a>') . '</p>', $user_ID);
             }
         }
     } elseif ($this->args['form_type'] == 'edit_profile') {
         if (!is_user_logged_in()) {
             echo apply_filters('wppb_edit_profile_user_not_logged_in_message', '<p class="warning" id="wppb_edit_profile_user_not_logged_in_message">' . __('You must be logged in to edit your profile.', 'profile-builder') . '</p>');
         } elseif (is_user_logged_in()) {
             $this->wppb_form_content(apply_filters('wppb_edit_profile_logged_in_user_message', ''));
         }
     }
 }