Skip to content

Instantly share code, notes, and snippets.

@sunriseweb
Last active December 25, 2015 00:09
Show Gist options
  • Save sunriseweb/6885917 to your computer and use it in GitHub Desktop.
Save sunriseweb/6885917 to your computer and use it in GitHub Desktop.
Profile Builder Pro changes to /wp-content/plugins/profile-builder-pro/front-end/wppb.register.php changes to support AutoChimp integration.
<?php
/* Hook to change auto generated password */
add_filter('random_password', 'signup_password_random_password_filter');
/**
* Function that changes the auto generated password with the one selected by the user.
*/
function signup_password_random_password_filter($password) {
global $wpdb;
if ( ! empty($_GET['key']) ) {
$key = $_GET['key'];
} else {
$key = $_POST['key'];
}
if ( !empty($_POST['user_pass']) ) {
$password = $_POST['user_pass'];
} else if ( !empty( $key ) ) {
if ( is_multisite() )
$signup = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $wpdb->signups . " WHERE activation_key = %s", $key ) );
else
$signup = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM " . $wpdb->prefix . "signups WHERE activation_key = %s", $key ) );
if ( empty($signup) || $signup->active ) {
//bad key or already active
} else {
//check for password in signup meta
$meta = unserialize($signup->meta);
$password = $meta['user_pass'];
}
}
return $password;
}
function wppb_generate_random_username($sentEmail){
$email = '';
for($i=0; $i<strlen($sentEmail); $i++){
if (($sentEmail[$i] === '@') || ($sentEmail[$i] === '_') || ($sentEmail[$i] === '-') || ($sentEmail[$i] === '.'))
break;
else
$email .= $sentEmail[$i];
}
$username = 'pbUser'.$email.mktime(date("H"), date("i"), date("s"), date("n"), date("j"), date("Y"));
while (username_exists($username)){
$username = 'pbUser'.$email.mktime(date("H"), date("i"), date("s"), date("n"), date("j"), date("Y"));
}
return $username;
}
function wppb_add_custom_field_values($POST, $meta){
/* add the extra profile information */
$wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
if (file_exists ( $wppb_premium.'extra.fields.php' )){
$wppbFetchArray = get_option('wppb_custom_fields');
$randomUserNumber = rand(); //we need a random number to identify file uploads since we don't have a user ID yet
foreach ( $wppbFetchArray as $key => $value){
switch ($value['item_type']) {
case "input":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_input', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "hiddenInput":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_hidden_input', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "checkbox":{
$checkboxOption = '';
$checkboxValue = explode(',', $value['item_options']);
foreach($checkboxValue as $thisValue){
$thisValue = str_replace(' ', '#@space@#', $thisValue); //we need to escape the space-codification we sent earlier in the post
if (isset($POST[$thisValue.$value['id']])){
$localValue = str_replace('#@space@#', ' ', $POST[$thisValue.$value['id']]);
$checkboxOption = $checkboxOption.$localValue.',';
}
}
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_checkbox', $checkboxOption);
break;
}
case "radio":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_radio', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "select":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_select', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "countrySelect":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_country_select', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "timeZone":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_timezone_select', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "datepicker":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_datepicker', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "textarea":{
$meta[$value['item_type'].$value['id']] = apply_filters('wppb_register_wpmu_textarea', esc_attr($POST[$value['item_type'].$value['id']]));
break;
}
case "upload":{
$uploadedfile = $value['item_type'].$value['id'];
//first we need to verify if we don't try to upload a 0b or 0 length file
if ( ( basename( $_FILES[$uploadedfile]['name'] ) != '' ) ){
//second we need to verify if the uploaded file size is less then the set file size in php.ini
if ( ( $_FILES[$uploadedfile]['size'] < WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE ) && ( $_FILES[$uploadedfile]['size'] !=0 ) ){
//we need to prepare the basename of the file, so that ' becomes ` as ' gives an error
$fileName = basename( $_FILES[$uploadedfile]['name']);
$finalFileName = '';
for ($i=0; $i < strlen($fileName); $i++){
if ($fileName[$i] == "'")
$finalFileName .= '`';
else $finalFileName .= $fileName[$i];
}
//create the target path for uploading
$wp_upload_array = wp_upload_dir(); // Array of key => value pairs
$target_path = $wp_upload_array['basedir']."/profile_builder/attachments/";
$target_path = $target_path . 'wpmuRandomID_' . $randomUserNumber . '_attachment_' . $finalFileName;
if ( move_uploaded_file( $_FILES[$uploadedfile]['tmp_name'], $target_path ) ){
$upFile = $wp_upload_array['baseurl'].'/profile_builder/attachments/wpmuRandomID_'.$randomUserNumber.'_attachment_'. $finalFileName;
$meta[$value['item_type'].$value['id']] = apply_filters( 'wppb_register_wpmu_upload', $upFile );
$meta[$value['item_type'].$value['id'].'_radomUserNumber'] = apply_filters( 'wppb_register_wpmu_upload_random_user_number', $randomUserNumber );
$pictureUpload = 'yes';
}
}
}
break;
}
case "avatar":{
$avatarUpload = 'no';
$uploaded_file = $value['item_type'].$value['id'];
// If we have a file then: sanatize file name, remove extra spaces/convert to _, remove non 0-9a-Z._- characters, remove leading/trailing spaces check if under allowed upload size, check file extension for legal file types
if ( is_uploaded_file( $_FILES[$uploaded_file]['tmp_name'] ) ){
$wp_upload_array = wp_upload_dir(); // Array of key => value pairs
$safe_filename = preg_replace( array( "/\s+/", "/[^-\.\w]+/" ), array( "_", "" ), trim( $_FILES[$uploaded_file]['name'] ) );
$target_path = $wp_upload_array['basedir'].'/profile_builder/avatars/wpmuRandomID_'.$randomUserNumber.'_originalAvatar_'. $safe_filename;
$allowed_filetypes = "/^\.(jpg|jpeg|gif|png){1}$/i"; //"/^\.(jpg|jpeg|gif|png|doc|docx|txt|rtf|pdf|xls|xlsx|ppt|pptx){1}$/i";
if ( $_FILES[$uploaded_file]['size'] <= WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE && preg_match( $allowed_filetypes, strrchr( $safe_filename, '.' ) ) ){
if ( move_uploaded_file( $_FILES[$uploaded_file]['tmp_name'], $target_path ) ){
$avatarUpload = 'yes';
$meta[$value['item_type'].$value['id']] = apply_filters( 'wppb_register_wpmu_avatar', str_replace( $wp_upload_array['basedir'], $wp_upload_array['baseurl'], $target_path ) );
$meta[$value['item_type'].$value['id'].'avatar_directory_path'] = apply_filters( 'wppb_register_wpmu_avatar_directory_path', $target_path );
$meta[$value['item_type'].$value['id'].'_radomUserNumber'] = apply_filters( 'wppb_register_wpmu_avatar_random_user_number', $randomUserNumber );
}else
$avatarUpload = 'no';
}
}
break;
}
}
}
}
return $meta;
}
/**
* 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_generalSettings = get_option('wppb_general_settings');
if ( is_multisite() )
$signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->signups WHERE activation_key = %s", $key) );
else
$signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM ".$wpdb->prefix."signups WHERE activation_key = %s", $key) );
if ( empty( $signup ) )
return $activateUserErrorMessage1 = apply_filters('wppb_register_activate_user_error_message1', '<p class="error">'. __('Invalid activation key!', 'profilebuilder') .'</p>');
if ( $signup->active )
if ( empty( $signup->domain ) )
return $activateUserErrorMessage2 = apply_filters('wppb_register_activate_user_error_message2', '<p class="error">'. __('The user is already active!', 'profilebuilder') .'</p>');
$meta = unserialize($signup->meta);
if (isset($wppb_generalSettings['loginWith']) && ($wppb_generalSettings['loginWith'] == 'email'))
$user_login = $wpdb->escape($signup->user_email);
else
$user_login = $wpdb->escape($signup->user_login);
$user_email = $wpdb->escape($signup->user_email);
$password = base64_decode($meta['user_pass']);
$user_id = username_exists($user_login);
if ( ! $user_id ) {
$user_id = wppb_create_user($user_login, $password, $user_email);
/* Added by Brad Trivers to ensure that AutoChimp is kicked off on user activation */
wp_update_user( array( 'ID' => $user_id, 'user_email' => $user_email ) );
} else {
$user_already_exists = true;
}
if ( ! $user_id )
return $activateUserErrorMessage4 = apply_filters('wppb_register_activate_user_error_message4', '<p class="error">'. __('Could not create user!', 'profilebuilder') .'</p>');
elseif ( isset( $user_already_exists ) )
return $activateUserErrorMessage5 = apply_filters('wppb_register_activate_user_error_message5', '<p class="error">'. __('That username is already activated!', 'profilebuilder') .'</p>');
else{
$now = current_time('mysql', true);
if ( is_multisite() )
$retVal = $wpdb->update( $wpdb->signups, array('active' => 1, 'activated' => $now), array('activation_key' => $key) );
else
$retVal = $wpdb->update( $wpdb->prefix.'signups', array('active' => 1, 'activated' => $now), 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($wppb_generalSettings['adminApproval'] == 'yes'){
wp_set_object_terms( $user_id, array( 'unapproved' ), 'user_status', false);
clean_object_term_cache( $user_id, 'user_status' );
}
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 ($retVal) {
/* Added by Brad Trivers to ensure that AutoChimp is kicked off on user activation */
wp_update_user( array( 'ID' => $user_id, 'user_email' => $user_email ) );
return $registerFilterArray['successfullUserActivation'] = apply_filters('wppb_register_successfull_user_activation', '<p class="success">'. __('The user was successfully activated.', 'profilebuilder') .'</p><!-- .success -->');
} else {
return $registerFilterArray['successfullUserActivationFail'] = apply_filters('wppb_register_failed_user_activation', '<p class="error">'. __('There was an error while trying to activate the user.', 'profilebuilder') .'</p><!-- .error -->');
}
}
}
//function to display the registration page
function wppb_front_end_register($atts){
ob_start();
global $current_user;
global $wp_roles;
global $wpdb;
global $error;
global $wppb_shortcode_on_front;
//get required and shown fields
$wppb_defaultOptions = get_option('wppb_default_settings');
//get "login with" setting
$wppb_generalSettings = get_option('wppb_general_settings');
$wppb_shortcode_on_front = true;
$agreed = true;
$new_user = 'no';
$multisite_message = false;
$registerFilterArray = array();
$registerFilterArray2 = array();
$uploadExt = array();
$extraFieldsErrorHolder = array(); //we will use this array to store the ID's of the extra-fields left uncompleted
get_currentuserinfo();
/* variables used to verify if all required fields were submitted*/
$firstnameComplete = 'yes';
$lastnameComplete = 'yes';
$nicknameComplete = 'yes';
$websiteComplete = 'yes';
$aimComplete = 'yes';
$yahooComplete = 'yes';
$jabberComplete = 'yes';
$bioComplete = 'yes';
/* END variables used to verify if all required fields were submitted*/
/* Check if users can register. */
$registration = get_option( 'users_can_register' );
$registration = apply_filters ( 'wppb_register_setting_override', $registration);
//fallback if the file was largen then post_max_size, case in which no errors can be saved in $_FILES[fileName]['error']
if (empty($_FILES) && empty($_POST) && isset($_SERVER['REQUEST_METHOD']) && strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
$registerFilterArray['noPostError'] = '<p class="error">' . sprintf(__( 'The information size you were trying to submit was larger than %1$sb!<br/>This is usually caused by a large file(s) trying to be uploaded.<br/>Since it was also larger than %2$sb no additional information is available.<br/>The user was NOT created!', 'profilebuilder'), WPPB_SERVER_MAX_UPLOAD_SIZE_MEGA, WPPB_SERVER_MAX_POST_SIZE_MEGA) . '</p>';
echo $registerFilterArray['noPostError'] = apply_filters('wppb_register_no_post_error_message', $registerFilterArray['noPostError'], WPPB_SERVER_MAX_UPLOAD_SIZE_MEGA, WPPB_SERVER_MAX_POST_SIZE_MEGA);
}
/* If user registered, input info. */
if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'adduser' && wp_verify_nonce($_POST['register_nonce_field'],'verify_true_registration') && ($_POST['formName'] == 'register') ) {
//global $wp_roles;
//get value sent in the shortcode as parameter, use default if not set
$default_role = get_option( 'default_role' );
extract(shortcode_atts(array('role' => $default_role), $atts));
//check if the specified role exists in the database, else fall back to the "safe-zone"
$aprovedRole = ( ($role == $default_role) || get_role($role) ) ? $role : $default_role;
/* preset the values in case some are not submitted */
$user_pass = '';
if (isset($_POST['passw1']))
$user_pass = $_POST['passw1'];
$email = '';
if (isset($_POST['email']))
$email = trim ($_POST['email']);
if (isset($wppb_generalSettings['loginWith']) && ($wppb_generalSettings['loginWith'] == 'email')){
$user_name = wppb_generate_random_username($email);
}else{
$user_name = '';
if (isset($_POST['user_name']))
$user_name = trim ($_POST['user_name']);
}
$first_name = '';
if (isset($_POST['first_name']))
$first_name = trim ($_POST['first_name']);
$last_name = '';
if (isset($_POST['last_name']))
$last_name = trim ($_POST['last_name']);
$nickname = '';
if (isset($_POST['nickname'])){
//the field is filled by the user upon registration
$nickname = trim ($_POST['nickname']);
}elseif (isset($wppb_generalSettings['loginWith']) && ($wppb_generalSettings['loginWith'] == 'email')){
//in case the nickname field is hidden, and the login with email is active
$nickname = $email;
}else{
//in case the nickname field is hidden, but login is done with username
$nickname = $user_name;
}
$website = '';
if (isset($_POST['website']))
$website = trim ($_POST['website']);
$aim = '';
if (isset($_POST['aim']))
$aim = trim ($_POST['aim']);
$yim = '';
if (isset($_POST['yim']))
$yim = trim ($_POST['yim']);
$jabber = '';
if (isset($_POST['jabber']))
$jabber = trim ($_POST['jabber']);
$description = '';
if (isset($_POST['description']))
$description = trim ($_POST['description']);
/* use filters to modify (if needed) the posted data before creating the user-data */
$user_pass = apply_filters('wppb_register_posted_password', $user_pass);
$user_name = apply_filters('wppb_register_posted_username', $user_name);
$first_name = apply_filters('wppb_register_posted_first_name', $first_name);
$last_name = apply_filters('wppb_register_posted_last_name', $last_name);
$nickname = apply_filters('wppb_register_posted_nickname', $nickname);
$email = apply_filters('wppb_register_posted_email', $email);
$website = apply_filters('wppb_register_posted_website', $website);
$aim = apply_filters('wppb_register_posted_aim', $aim);
$yim = apply_filters('wppb_register_posted_yahoo', $yim);
$jabber = apply_filters('wppb_register_posted_jabber', $jabber);
$description = apply_filters('wppb_register_posted_bio', $description);
/* END use filters to modify (if needed) the posted data before creating the user-data */
$userdata = array(
'user_pass' => $user_pass,
'user_login' => esc_attr( $user_name ),
'first_name' => esc_attr( $first_name ),
'last_name' => esc_attr( $last_name ),
'nickname' => esc_attr( $nickname ),
'user_email' => esc_attr( $email ),
'user_url' => esc_attr( $website ),
'aim' => esc_attr( $aim ),
'yim' => esc_attr( $yim ),
'jabber' => esc_attr( $jabber ),
'description' => esc_attr( $description ),
'role' => $aprovedRole);
$userdata = apply_filters('wppb_register_userdata', $userdata);
//check if the user agreed to the terms and conditions (if it was set)
$wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
if (file_exists ( $wppb_premium.'extra.fields.php' )){
$wppbFetchArray = get_option('wppb_custom_fields');
foreach ( $wppbFetchArray as $key => $value){
switch ($value['item_type']) {
case "agreeToTerms":{
$agreed = false;
if ( (isset($_POST[$value['item_type'].$value['id']] )) && ($_POST[$value['item_type'].$value['id']] == 'agree'))
$agreed = true;
break;
}
}
// add filters for all the custom fields
$_POST[$value['item_type'].$value['id']] = apply_filters('wppb_register_'.$value['item_type'].$value['id'].'_general_filter', $_POST[$value['item_type'].$value['id']]);
}
}
$registerFilterArray['extraError'] = ''; //this is for creating extra error message and bypassing registration
$registerFilterArray['extraError'] = apply_filters('wppb_register_extra_error', $registerFilterArray['extraError']);
/* check if all the required fields were completed */
if($wppb_defaultOptions['firstname'] == 'show'){
if (($wppb_defaultOptions['firstnameRequired'] == 'yes') && (trim($_POST['first_name']) == ''))
$firstnameComplete = 'no';
}
if($wppb_defaultOptions['lastname'] == 'show'){
if (($wppb_defaultOptions['lastnameRequired'] == 'yes') && (trim($_POST['last_name']) == ''))
$lastnameComplete = 'no';
}
if($wppb_defaultOptions['nickname'] == 'show'){
if (($wppb_defaultOptions['nicknameRequired'] == 'yes') && (trim($_POST['nickname']) == ''))
$nicknameComplete = 'no';
}
if($wppb_defaultOptions['website'] == 'show'){
if (($wppb_defaultOptions['websiteRequired'] == 'yes') && (trim($_POST['website']) == ''))
$websiteComplete = 'no';
}
if($wppb_defaultOptions['aim'] == 'show'){
if (($wppb_defaultOptions['aimRequired'] == 'yes') && (trim($_POST['aim']) == ''))
$aimComplete = 'no';
}
if($wppb_defaultOptions['yahoo'] == 'show'){
if (($wppb_defaultOptions['yahooRequired'] == 'yes') && (trim($_POST['yahoo']) == ''))
$yahooComplete = 'no';
}
if($wppb_defaultOptions['jabber'] == 'show'){
if (($wppb_defaultOptions['jabberRequired'] == 'yes') && (trim($_POST['jabber']) == ''))
$jabberComplete = 'no';
}
if($wppb_defaultOptions['bio'] == 'show'){
if (($wppb_defaultOptions['bioRequired'] == 'yes') && (trim($_POST['description']) == ''))
$bioComplete = 'no';
}
// check the extra fields also
$wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
if (file_exists ( $wppb_premium.'extra.fields.php' )){
$wppbFetchArray = get_option('wppb_custom_fields');
foreach ( $wppbFetchArray as $key => $value){
switch ($value['item_type']) {
case "input":{
$_POST[$value['item_type'].$value['id']] = apply_filters('wppb_register_input_custom_field_'.$value['id'], $_POST[$value['item_type'].$value['id']]);
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($_POST[$value['item_type'].$value['id']]) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "checkbox":{
$checkboxOption = '';
$checkboxValue = explode(',', $value['item_options']);
foreach($checkboxValue as $thisValue){
$thisValue = str_replace(' ', '#@space@#', $thisValue); //we need to escape the space-codification we sent earlier in the post
if (isset($_POST[$thisValue.$value['id']])){
$localValue = str_replace('#@space@#', ' ', $_POST[$thisValue.$value['id']]);
$checkboxOption = $checkboxOption.$localValue.',';
}
}
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($checkboxOption) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "radio":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($_POST[$value['item_type'].$value['id']]) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "select":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($_POST[$value['item_type'].$value['id']]) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "countrySelect":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($_POST[$value['item_type'].$value['id']]) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "timeZone":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($_POST[$value['item_type'].$value['id']]) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "datepicker":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($_POST[$value['item_type'].$value['id']]) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "textarea":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if (trim($_POST[$value['item_type'].$value['id']]) == '')
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
case "upload":{
$uploadedfile = $value['item_type'].$value['id'];
if ( (basename( $_FILES[$uploadedfile]['name']) == '')){
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes')
array_push($extraFieldsErrorHolder, $value['id']);
}
}elseif ( (basename( $_FILES[$uploadedfile]['name']) != '')){
//get allowed file types
if (($value['item_options'] != NULL) || ($value['item_options'] != '')){
$allFiles = false;
$extensions = explode(',', $value['item_options']);
foreach($extensions as $key2 => $value2)
$extensions[$key2] = trim($value2);
}else
$allFiles = true;
$thisFileExtStart = strrpos($_FILES[$uploadedfile]['name'], '.');
$thisFileExt = substr($_FILES[$uploadedfile]['name'], $thisFileExtStart);
if (($allFiles == false) && (!in_array($thisFileExt, $extensions))){
array_push($uploadExt, basename( $_FILES[$uploadedfile]['name']));
$allowedExtensions = '';
(int)$nrOfExt = count($extensions)-2;
foreach($extensions as $key2 => $value2){
$allowedExtensions .= $value2;
if ($key2 <= $nrOfExt)
$allowedExtensions .= ', ';
}
}
}
break;
}
case "avatar":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
$uploadedfile = $value['item_type'].$value['id'];
if (basename( $_FILES[$uploadedfile]['name']) == ''){
array_push($extraFieldsErrorHolder, $value['id']);
}elseif ($_FILES[$uploadedfile]['type'] == 'image/bmp'){
array_push($extraFieldsErrorHolder, $value['id']);
$failReason = apply_filters('wppb_avatar_upload_bad_filetype_register', __('The following image extensions are NOT supported: bmp', 'profilebuilder'));
}
}
}
break;
}
case "agreeToTerms":{
if (isset($value['item_required'])){
if ($value['item_required'] == 'yes'){
if ($_POST[$value['item_type'].$value['id']] == NULL)
array_push($extraFieldsErrorHolder, $value['id']);
}
}
break;
}
}
}
}
/* END check if all the required fields were completed */
if ($registerFilterArray['extraError'] != '')
$error = $registerFilterArray['extraError'];
elseif ( !$userdata['user_login'] ){
if (isset($wppb_generalSettings['loginWith']) && ($wppb_generalSettings['loginWith'] == 'email')){
}else
$error = apply_filters('wppb_register_userlogin_error1', __('A username is required for registration.', 'profilebuilder'));
}elseif ( username_exists($userdata['user_login']) ){
if (isset($wppb_generalSettings['loginWith']) && ($wppb_generalSettings['loginWith'] == 'email')){
}else
$error = apply_filters('wppb_register_userlogin_error2', __('Sorry, that username already exists!', 'profilebuilder'));
}elseif ( !is_email($userdata['user_email'], true) )
$error = apply_filters('wppb_register_useremail_error1', __('You must enter a valid email address.', 'profilebuilder'));
elseif ( email_exists($userdata['user_email']) )
$error = apply_filters('wppb_register_useremail_error2', __('Sorry, that email address is already used!', 'profilebuilder'));
elseif (( empty($_POST['passw1'] ) || empty( $_POST['passw2'] )) || ( $_POST['passw1'] != $_POST['passw2'] )){
if ( empty($_POST['passw1'] ) || empty( $_POST['passw2'] )) //verify if the user has completed both password fields
$error = apply_filters('wppb_register_userpass_error1', __('You didn\'t complete one of the password-fields!', 'profilebuilder'));
elseif ( $_POST['passw1'] != $_POST['passw2'] ) //verify if the the password and the retyped password are a match
$error = apply_filters('wppb_register_userpass_error2', __('The entered passwords don\'t match!', 'profilebuilder'));
}elseif(count($uploadExt) > 0){
$error ='<p class="semi-saved">'.
__('There was an error while trying to upload the following attachment(s)', 'profilebuilder') .': <span class="error">';
foreach ($uploadExt as $key5 => $name5){
$lastOne++;
$error .= $name5;
if (count($uploadExt)-$lastOne > 0)
$error .= ';<span style="padding-left:10px"></span>';
}
$error .= '</span><br/>'. __('Only files with the following extension(s) can be uploaded:', 'profilebuilder') .' <span class="error">'.$allowedExtensions.'</span><br/><span class="error">'. __('The account was NOT created!', 'profilebuilder') .'</span>
</p>';
}
elseif ( $agreed == false )
$error = __('You must agree to the terms and conditions before registering!', 'profilebuilder');
elseif(isset($failReason))
$error = __('The account was NOT created!', 'profilebuilder') .'<br/>'. $failReason;
elseif(($firstnameComplete == 'no' || $lastnameComplete == 'no' || $nicknameComplete == 'no' || $websiteComplete == 'no' || $aimComplete == 'no' || $yahooComplete == 'no' || $jabberComplete == 'no' || $bioComplete == 'no' ) || !empty($extraFieldsErrorHolder))
$error = __('The account was NOT created!', 'profilebuilder') .'<br/>'. __('(Several required fields were left uncompleted)', 'profilebuilder');
else{
$registered_name = $_POST['user_name'];
//register the user normally if it is not a multi-site installation
if ( !is_multisite() ){
$wppb_generalSettings = get_option('wppb_general_settings');
if ($wppb_generalSettings['emailConfirmation'] == 'yes'){
$foundError = false;
if ( is_multisite() )
$userSignup = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->signups WHERE user_login = %s OR user_email= %s", $userdata['user_login'], $userdata['user_email'] ) );
else
$userSignup = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM ".$wpdb->prefix."signups WHERE user_login = %s OR user_email= %s", $userdata['user_login'], $userdata['user_email'] ) );
if (trim($userSignup[0]->user_login) == $userdata['user_login']){
$foundError = true;
$error = __('This username is already reserved to be used soon.', 'profilebuilder') .'<br/>'. __('Please try a different one!', 'profilebuilder');
}elseif (trim($userSignup[0]->user_email) == $userdata['user_email']){
$foundError = true;
$error = __('This email address is already reserved to be used soon.', 'profilebuilder') .'<br/>'. __('Please try a different one!', 'profilebuilder');
}
if ( $foundError ){
}else{
$new_user = 'yes';
$multisite_message = true;
$meta = array(
'user_pass' => base64_encode($userdata['user_pass']),
'first_name' => $userdata['first_name'],
'last_name' => $userdata['last_name'],
'nickname' => $userdata['nickname'],
'user_url' => $userdata['user_url'],
'aim' => $userdata['aim'],
'yim' => $userdata['yim'],
'jabber' => $userdata['jabber'],
'description' => $userdata['description'],
'role' => $userdata['role']
);
$meta = wppb_add_custom_field_values($_POST, $meta);
wppb_signup_user( $userdata['user_login'], $userdata['user_email'], $meta );
}
}else{
$new_user = wp_insert_user( $userdata );
/* add the extra profile information */
$wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
if (file_exists ( $wppb_premium.'extra.fields.php' )){
$wppbFetchArray = get_option('wppb_custom_fields');
foreach ( $wppbFetchArray as $key => $value){
switch ($value['item_type']) {
case "input":{
add_user_meta( $new_user, $value['item_metaName'], esc_attr($_POST[$value['item_type'].$value['id']]) );
break;
}
case "hiddenInput":{
add_user_meta( $new_user, $value['item_metaName'], esc_attr($_POST[$value['item_type'].$value['id']]) );
break;
}
case "checkbox":{
$checkboxOption = '';
$checkboxValue = explode(',', $value['item_options']);
foreach($checkboxValue as $thisValue){
$thisValue = str_replace(' ', '#@space@#', $thisValue); //we need to escape the space-codification we sent earlier in the post
if (isset($_POST[$thisValue.$value['id']])){
$localValue = str_replace('#@space@#', ' ', $_POST[$thisValue.$value['id']]);
$checkboxOption = $checkboxOption.$localValue.',';
}
}
add_user_meta( $new_user, $value['item_metaName'], $checkboxOption );
break;
}
case "radio":{
add_user_meta( $new_user, $value['item_metaName'], $_POST[$value['item_type'].$value['id']] );
break;
}
case "select":{
add_user_meta( $new_user, $value['item_metaName'], $_POST[$value['item_type'].$value['id']] );
break;
}
case "countrySelect":{
update_user_meta( $new_user, $value['item_metaName'], $_POST[$value['item_type'].$value['id']] );
break;
}
case "timeZone":{
update_user_meta( $new_user, $value['item_metaName'], $_POST[$value['item_type'].$value['id']] );
break;
}
case "datepicker":{
update_user_meta( $new_user, $value['item_metaName'], $_POST[$value['item_type'].$value['id']] );
break;
}
case "textarea":{
add_user_meta( $new_user, $value['item_metaName'], esc_attr($_POST[$value['item_type'].$value['id']]) );
break;
}
case "upload":{
$uploadedfile = $value['item_type'].$value['id'];
//first we need to verify if we don't try to upload a 0b or 0 length file
if ( (basename( $_FILES[$uploadedfile]['name']) != '')){
//second we need to verify if the uploaded file size is less then the set file size in php.ini
if (($_FILES[$uploadedfile]['size'] < WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE) && ($_FILES[$uploadedfile]['size'] !=0)){
//we need to prepare the basename of the file, so that ' becomes ` as ' gives an error
$fileName = basename( $_FILES[$uploadedfile]['name']);
$finalFileName = '';
for ($i=0; $i < strlen($fileName); $i++){
if ($fileName[$i] == "'")
$finalFileName .= '`';
else $finalFileName .= $fileName[$i];
}
//create the target path for uploading
$wp_upload_array = wp_upload_dir(); // Array of key => value pairs
$target_path = $wp_upload_array['basedir']."/profile_builder/attachments/";
$target_path = $target_path . 'userID_'.$new_user.'_attachment_'. $finalFileName;
if (move_uploaded_file($_FILES[$uploadedfile]['tmp_name'], $target_path)){
//$upFile = get_bloginfo('home').'/'.$target_path;
$upFile = $wp_upload_array['baseurl'].'/profile_builder/attachments/userID_'.$new_user.'_attachment_'. $finalFileName;
add_user_meta( $new_user, $value['item_metaName'], $upFile );
$pictureUpload = 'yes';
}
}
}
break;
}
case "avatar":{
$avatarUpload = 'no';
$uploaded_file = $value['item_type'].$value['id'];
// If we have a file then: sanatize file name, remove extra spaces/convert to _, remove non 0-9a-Z._- characters, remove leading/trailing spaces check if under allowed upload size, check file extension for legal file types
if ( is_uploaded_file( $_FILES[$uploaded_file]['tmp_name'] ) ){
$wp_upload_array = wp_upload_dir(); // Array of key => value pairs
$safe_filename = preg_replace( array( "/\s+/", "/[^-\.\w]+/" ), array( "_", "" ), trim( $_FILES[$uploaded_file]['name'] ) );
$target_path = $wp_upload_array['basedir'].'/profile_builder/avatars/userID_'.$new_user.'_originalAvatar_'. $safe_filename;
if ( PHP_OS == "WIN32" || PHP_OS == "WINNT" )
$target_path = str_replace( '\\', '/', $target_path );
$allowed_filetypes = "/^\.(jpg|jpeg|gif|png){1}$/i"; //"/^\.(jpg|jpeg|gif|png|doc|docx|txt|rtf|pdf|xls|xlsx|ppt|pptx){1}$/i";
if ( $_FILES[$uploaded_file]['size'] <= WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE && preg_match( $allowed_filetypes, strrchr( $safe_filename, '.' ) ) ){
if ( move_uploaded_file( $_FILES[$uploaded_file]['tmp_name'], $target_path ) ){
$avatarUpload = 'yes';
$wp_filetype = wp_check_filetype(basename( $_FILES[$uploaded_file]['name']), null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => $safe_filename,
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment( $attachment, $target_path );
$upFile = image_downsize( $attach_id, 'thumbnail' );
$upFile = $upFile[0];
add_user_meta( $new_user, $value['item_metaName'], $upFile );
add_user_meta( $new_user, 'avatar_directory_path_'.$value['id'], $target_path );
add_user_meta( $new_user, 'resized_avatar_'.$value['id'], '' );
wppb_resize_avatar($new_user);
}
}
}else
$avatarUpload = 'yes';
break;
}
}
}
}
// if admin approval is activated, then block the user untill he gets approved
$wppb_generalSettings = get_option('wppb_general_settings', 'not_found');
if ($wppb_generalSettings != 'not_found')
if($wppb_generalSettings['adminApproval'] == 'yes'){
wp_set_object_terms( $new_user, array( 'unapproved' ), 'user_status', false);
clean_object_term_cache( $new_user, 'user_status' );
}
// send an email to the admin, and - if selected - to the user also.
$bloginfo = get_bloginfo( 'name' );
$sentEmailStatus = wppb_notify_user_registration_email($bloginfo, esc_attr($_POST['user_name']), esc_attr($_POST['email']), $_POST['send_credentials_via_email'], $_POST['passw1'], $wppb_generalSettings['adminApproval']);
/* Added by Brad Trivers to force 'profile_update' action to fire AFTER update_user_meta statements
* so that plugins that use this to process profile updates can access the new user meta
*/
wp_update_user( array( 'ID' => $new_user, 'first_name' => $first_name ));
// add_user_meta( $new_user, $value['item_metaName'], $_POST[$value['item_type'].$value['id']] );
}
}elseif ( is_multisite() ){
//validate username and email
$validationRes = wpmu_validate_user_signup($userdata['user_login'], $userdata['user_email']);
$error = apply_filters('wppb_register_wpmu_registration_error', $validationRes['errors']->get_error_message());
if ( trim($error) != '' ){
}else{
$new_user = 'yes';
$multisite_message = true;
$meta = array(
'user_pass' => base64_encode($userdata['user_pass']),
'first_name' => $userdata['first_name'],
'last_name' => $userdata['last_name'],
'nickname' => $userdata['nickname'],
'user_url' => $userdata['user_url'],
'aim' => $userdata['aim'],
'yim' => $userdata['yim'],
'jabber' => $userdata['jabber'],
'description' => $userdata['description'],
'role' => $userdata['role']
);
$meta = wppb_add_custom_field_values($_POST, $meta);
wppb_signup_user( $userdata['user_login'], $userdata['user_email'], $meta );
}
}
}
}
?>
<div class="wppb_holder" id="wppb_register">
<?php
if ( is_user_logged_in() && !current_user_can( 'create_users' ) ) :
global $user_ID;
$login = get_userdata( $user_ID );
if($login->display_name == ''){
$login->display_name = $login->user_login;
}
$registerFilterArray['loginLogoutError'] = '
<p class="log-in-out alert">'. __('You are logged in as', 'profilebuilder') .' <a href="'.get_author_posts_url( $login->ID ).'" title="'.$login->display_name.'">'.$login->display_name.'</a>. '. __('You don\'t need another account.', 'profilebuilder') .' <a href="'.wp_logout_url(get_permalink()).'" title="'. __('Log out of this account.', 'profilebuilder') .'">'. __('Logout', 'profilebuilder') .' &raquo;</a></p><!-- .log-in-out .alert -->';
$registerFilterArray['loginLogoutError'] = apply_filters('wppb_register_have_account_alert', $registerFilterArray['loginLogoutError'], $login->ID);
echo $registerFilterArray['loginLogoutError'];
elseif ( $new_user != 'no' ) :
if ( current_user_can( 'create_users' ) ){
if ($multisite_message){
$registerFilterArray['wpmuRegistrationMessage1'] = '<p class="success">' . sprintf(__( 'An email has been sent to %1$s with information on how to activate his/her account.', 'profilebuilder'), $userdata['user_email']) . '</p><!-- .success -->';
echo $registerFilterArray['registrationMessage1'] = apply_filters('wppb_wpmu_register_account_created1', $registerFilterArray['wpmuRegistrationMessage1'], $registered_name, $userdata['user_email']);
}else{
$registerFilterArray['registrationMessage1'] = '<p class="success">' . sprintf(__( 'A user account has been created for %1$s.', 'profilebuilder'), $registered_name) . '</p><!-- .success -->';
echo $registerFilterArray['registrationMessage1'] = apply_filters('wppb_register_account_created1', $registerFilterArray['registrationMessage1'], $registered_name);
}
$redirectLink = wppb_curpageurl();
if (file_exists ( WPPB_PLUGIN_DIR . '/premium/addons/addon.php' )){
//check to see if the redirecting addon is present and activated
$wppb_addon_settings = get_option('wppb_addon_settings');
if ($wppb_addon_settings['wppb_customRedirect'] == 'show'){
//check to see if the redirect location is not an empty string and is activated
$customRedirectSettings = get_option('customRedirectSettings');
if ((trim($customRedirectSettings['afterRegisterTarget']) != '') && ($customRedirectSettings['afterRegister'] == 'yes')){
$redirectLink = trim($customRedirectSettings['afterRegisterTarget']);
if (wppb_check_missing_http($redirectLink))
$redirectLink = 'http://'. $redirectLink;
}
}
}
$registerFilterArray['redirectMessage1'] = '<font id="messageTextColor">' . sprintf(__( 'You will soon be redirected automatically. If you see this page for more than 3 seconds, please click %1$s.%2$s', 'profilebuilder'), '<a href="'.$redirectLink.'">'.__('here', 'profilebuilder').'</a>', '<meta http-equiv="Refresh" content="3;url='.$redirectLink.'" />') . '</font><br/><br/>';
echo $registerFilterArray['redirectMessage1'] = apply_filters('wppb_register_redirect_after_creation1', $registerFilterArray['redirectMessage1'], $redirectLink);
}else{
if ($multisite_message){
$registerFilterArray['wpmuRegistrationMessage2'] = '<p class="success">'. __('An email has been sent to you with information on how to activate your account.', 'profilebuilder') .'</p><!-- .success -->';
echo $registerFilterArray['wpmuRegistrationMessage2'] = apply_filters('wppb_register_account_created2', $registerFilterArray['wpmuRegistrationMessage2'], $registered_name);
}else{
$registerFilterArray['registrationMessage2'] = '<p class="success">' . sprintf(__( 'Thank you for registering %1$s.', 'profilebuilder'), $registered_name) .'</p><!-- .success -->';
echo $registerFilterArray['registrationMessage2'] = apply_filters('wppb_register_account_created2', $registerFilterArray['registrationMessage2'], $registered_name);
}
$redirectLink = wppb_curpageurl();
if (file_exists ( WPPB_PLUGIN_DIR . '/premium/addons/addon.php' )){
//check to see if the redirecting addon is present and activated
$wppb_addon_settings = get_option('wppb_addon_settings');
if ($wppb_addon_settings['wppb_customRedirect'] == 'show'){
//check to see if the redirect location is not an empty string and is activated
$customRedirectSettings = get_option('customRedirectSettings');
if ((trim($customRedirectSettings['afterRegisterTarget']) != '') && ($customRedirectSettings['afterRegister'] == 'yes')){
$redirectLink = trim($customRedirectSettings['afterRegisterTarget']);
if (wppb_check_missing_http($redirectLink))
$redirectLink = 'http://'. $redirectLink;
}
}
}
$registerFilterArray['redirectMessage2'] = '<font id="messageTextColor">' . sprintf(__( 'You will soon be redirected automatically. If you see this page for more than 3 seconds, please click %1$s.%2$s', 'profilebuilder'), '<a href="'.$redirectLink.'">'.__('here', 'profilebuilder').'</a>', '<meta http-equiv="Refresh" content="3;url='.$redirectLink.'" />') . '</font><br/><br/>';
echo $registerFilterArray['redirectMessage2'] = apply_filters('wppb_register_redirect_after_creation2', $registerFilterArray['redirectMessage2'], $redirectLink);
}
if(isset($_POST['send_credentials_via_email'])){
if ($sentEmailStatus == 1){
$registerFilterArray['emailMessage1'] = '<p class="error">'. __('An error occured while trying to send the notification email.', 'profilebuilder') .'</p><!-- .error -->';
$registerFilterArray['emailMessage1'] = apply_filters('wppb_register_send_notification_email_fail', $registerFilterArray['emailMessage1']);
echo $registerFilterArray['emailMessage1'];
}elseif ($sentEmailStatus == 2){
if ($multisite_message){
$registerFilterArray['wpmuEmailMessage2'] = '<p class="success">'. __('An email containing activation instructions was successfully sent.', 'profilebuilder') .'</p><!-- .success -->';
$registerFilterArray['wpmuEmailMessage2'] = apply_filters('wppb_register_send_notification_email_success', $registerFilterArray['wpmuEmailMessage2']);
echo $registerFilterArray['wpmuEmailMessage2'];
}else{
$registerFilterArray['emailMessage2'] = '<p class="success">'. __('An email containing the username and password was successfully sent.', 'profilebuilder') .'</p><!-- .success -->';
$registerFilterArray['emailMessage2'] = apply_filters('wppb_register_send_notification_email_success', $registerFilterArray['emailMessage2']);
echo $registerFilterArray['emailMessage2'];
}
}
}
?>
<?php
else :
if ( $error ) :
$registerFilterArray['errorMessage'] = '<p class="error">'. $error .'</p><!-- .error -->';
$registerFilterArray['errorMessage'] = apply_filters('wppb_register_error_messaging', $registerFilterArray['errorMessage'], $error);
echo $registerFilterArray['errorMessage'];
endif;
if ( current_user_can( 'create_users' ) && $registration ) :
$registerFilterArray['alertMessage1'] = '<p class="alert">'. __('Users can register themselves or you can manually create users here.', 'profilebuilder') .'</p><!-- .alert -->';
$registerFilterArray['alertMessage1'] = apply_filters('wppb_register_alert_messaging1', $registerFilterArray['alertMessage1']);
echo $registerFilterArray['alertMessage1'];
elseif ( current_user_can( 'create_users' ) ) :
$registerFilterArray['alertMessage2'] = '<p class="alert">'. __('Users cannot currently register themselves, but you can manually create users here.', 'profilebuilder') .'</p><!-- .alert -->';
$registerFilterArray['alertMessage2'] = apply_filters('wppb_register_alert_messaging2', $registerFilterArray['alertMessage2']);
echo $registerFilterArray['alertMessage2'];
elseif ( !current_user_can( 'create_users' ) && !$registration) :
$registerFilterArray['alertMessage3'] = '<p class="alert">'. __('Only an administrator can add new users.', 'profilebuilder') .'</p><!-- .alert -->';
$registerFilterArray['alertMessage3'] = apply_filters('wppb_register_alert_messaging3', $registerFilterArray['alertMessage3']);
echo $registerFilterArray['alertMessage3'];
endif;
if ( $registration || current_user_can( 'create_users' ) ) :
/* use this action hook to add extra content before the register form. */
do_action( 'wppb_before_register_fields' );
?>
<form enctype="multipart/form-data" method="post" id="adduser" class="user-forms" action="<?php wppb_curpageurl(); ?>">
<?php
echo '<input type="hidden" name="MAX_FILE_SIZE" value="'.WPPB_SERVER_MAX_UPLOAD_SIZE_BYTE.'" /><!-- set the MAX_FILE_SIZE to the server\'s current max upload size in bytes -->';
$registerFilterArray2['name1'] = '<p class="registerNameHeading"><strong>'. __('Name', 'profilebuilder') .'</strong></p>';
$registerFilterArray2['name1'] = apply_filters('wppb_register_content_name1', $registerFilterArray2['name1']);
if ($wppb_defaultOptions['username'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['usernameRequired'] == 'yes'){
$errorMark = '<font color="red" title="This field is required for registration.">*</font>';
if (isset($_POST['user_name'])){
if (trim($_POST['user_name']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
if (isset($wppb_generalSettings['loginWith']) && ($wppb_generalSettings['loginWith'] == 'email')){
if ($wppb_defaultOptions['email'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['emailRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['email'])){
if ( (trim($_POST['email']) == '') || (!is_email(trim($_POST['email']))) ){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['email']))
$localVar = $_POST['email'];
$registerFilterArray2['name2'] = '
<p class="form-email'.$errorVar.'">
<label for="email">'. __('E-mail', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="email" type="text" id="email" value="'.trim($localVar).'" />
</p><!-- .form-email -->';
$registerFilterArray2['name2'] = apply_filters('wppb_register_content_name2_with_email', $registerFilterArray2['name2'], trim($localVar), $errorVar, $errorMark);
}
}else{
$localVar = '';
if (isset($_POST['user_name']))
$localVar = $_POST['user_name'];
$registerFilterArray2['name2'] = '
<p class="form-username'.$errorVar.'">
<label for="user_name">'. __('Username', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="user_name" type="text" id="user_name" value="'.trim($localVar).'" />
</p><!-- .form-username -->';
$registerFilterArray2['name2'] = apply_filters('wppb_register_content_name2', $registerFilterArray2['name2'], trim($localVar), $errorVar, $errorMark);
}
}
if ($wppb_defaultOptions['firstname'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['firstnameRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['first_name'])){
if (trim($_POST['first_name']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['first_name']))
$localVar = $_POST['first_name'];
$registerFilterArray2['name3'] = '
<p class="first_name'.$errorVar.'">
<label for="first_name">'. __('First Name', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="first_name" type="text" id="first_name" value="'.trim($localVar).'" />
</p><!-- .first_name -->';
$registerFilterArray2['name3'] = apply_filters('wppb_register_content_name3', $registerFilterArray2['name3'], trim($localVar), $errorVar, $errorMark);
}
if ($wppb_defaultOptions['lastname'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['lastnameRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['last_name'])){
if (trim($_POST['last_name']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['last_name']))
$localVar = $_POST['last_name'];
$registerFilterArray2['name4'] = '
<p class="last_name'.$errorVar.'">
<label for="last_name">'. __('Last Name', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="last_name" type="text" id="last_name" value="'.trim($localVar).'" />
</p><!-- .last_name -->';
$registerFilterArray2['name4'] = apply_filters('wppb_register_content_name4', $registerFilterArray2['name4'], trim($localVar), $errorVar, $errorMark);
}
if ($wppb_defaultOptions['nickname'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['nicknameRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['nickname'])){
if (trim($_POST['nickname']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['nickname']))
$localVar = $_POST['nickname'];
$registerFilterArray2['name5'] = '
<p class="nickname'.$errorVar.'">
<label for="nickname">'. __('Nickname', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="nickname" type="text" id="nickname" value="'.trim($localVar).'" />
</p><!-- .nickname -->';
$registerFilterArray2['name5'] = apply_filters('wppb_register_content_name5', $registerFilterArray2['name5'], trim($localVar), $errorVar, $errorMark);
}
$registerFilterArray2['info1'] = '<p class="registerContactInfoHeading"><strong>'. __('Contact Info', 'profilebuilder') .'</strong></p>';
$registerFilterArray2['info1'] = apply_filters('wppb_register_content_info1', $registerFilterArray2['info1']);
if (isset($wppb_generalSettings['loginWith']) && ($wppb_generalSettings['loginWith'] == 'email')){
}else{
if ($wppb_defaultOptions['email'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['emailRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['email'])){
if ( (trim($_POST['email']) == '') || (!is_email(trim($_POST['email']))) ){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['email']))
$localVar = $_POST['email'];
$registerFilterArray2['info2'] = '
<p class="form-email'.$errorVar.'">
<label for="email">'. __('E-mail', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="email" type="text" id="email" value="'.trim($localVar).'" />
</p><!-- .form-email -->';
$registerFilterArray2['info2'] = apply_filters('wppb_register_content_info2', $registerFilterArray2['info2'], trim($localVar), $errorVar, $errorMark);
}
}
if ($wppb_defaultOptions['website'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['websiteRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['website'])){
if (trim($_POST['website']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['website']))
$localVar = $_POST['website'];
$registerFilterArray2['info3'] = '
<p class="form-website'.$errorVar.'">
<label for="website">'. __('Website', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="website" type="text" id="website" value="'.trim($localVar).'" />
</p><!-- .form-website -->';
$registerFilterArray2['info3'] = apply_filters('wppb_register_content_info3', $registerFilterArray2['info3'], trim($localVar), $errorVar, $errorMark);
}
if ($wppb_defaultOptions['aim'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['aimRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['aim'])){
if (trim($_POST['aim']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['aim']))
$localVar = $_POST['aim'];
$registerFilterArray2['info4'] = '
<p class="form-aim'.$errorVar.'">
<label for="aim">'. __('AIM', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="aim" type="text" id="aim" value="'.trim($localVar).'" />
</p><!-- .form-aim -->';
$registerFilterArray2['info4'] = apply_filters('wppb_register_content_info4', $registerFilterArray2['info4'], trim($localVar), $errorVar, $errorMark);
}
if ($wppb_defaultOptions['yahoo'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['yahooRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['yim'])){
if (trim($_POST['yim']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['yim']))
$localVar = $_POST['yim'];
$registerFilterArray2['info5'] = '
<p class="form-yim'.$errorVar.'">
<label for="yim">'. __('Yahoo IM', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="yim" type="text" id="yim" value="'.trim($localVar).'" />
</p><!-- .form-yim -->';
$registerFilterArray2['info5'] = apply_filters('wppb_register_content_info5', $registerFilterArray2['info5'], trim($localVar), $errorVar, $errorMark);
}
if ($wppb_defaultOptions['jabber'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['jabberRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['jabber'])){
if (trim($_POST['jabber']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['jabber']))
$localVar = $_POST['jabber'];
$registerFilterArray2['info6'] = '
<p class="form-jabber'.$errorVar.'">
<label for="jabber">'. __('Jabber / Google Talk', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="jabber" type="text" id="jabber" value="'.trim($localVar).'" />
</p><!-- .form-jabber -->';
$registerFilterArray2['info6'] = apply_filters('wppb_register_content_info6', $registerFilterArray2['info6'], trim($localVar), $errorVar, $errorMark);
}
$registerFilterArray2['ay1'] = '<p class="registerAboutYourselfHeader"><strong>'. __('About Yourself', 'profilebuilder') .'</strong></p>';
$registerFilterArray2['ay1'] = apply_filters('wppb_register_content_about_yourself1', $registerFilterArray2['ay1']);
if ($wppb_defaultOptions['bio'] == 'show'){
$errorVar = '';
$errorMark = '';
if ($wppb_defaultOptions['bioRequired'] == 'yes'){
$errorMark = '<font color="red" title="'.__('This field is marked as required by the administrator', 'profilebuilder').'">*</font>';
if (isset($_POST['description'])){
if (trim($_POST['description']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="'.__('This field must be filled out before registering (It was marked as required by the administrator)', 'profilebuilder').'"/>';
$errorVar = ' errorHolder';
}
}
}
$localVar = '';
if (isset($_POST['description']))
$localVar = $_POST['description'];
$registerFilterArray2['ay2'] = '
<p class="form-description'.$errorVar.'">
<label for="description">'. __('Biographical Info', 'profilebuilder') .$errorMark.'</label>
<textarea class="text-input" name="description" id="description" rows="5" cols="30">'.trim($localVar).'</textarea>
</p><!-- .form-description -->';
$registerFilterArray2['ay2'] = apply_filters('wppb_register_content_about_yourself2', $registerFilterArray2['ay2'], trim($localVar), $errorVar, $errorMark);
}
if ($wppb_defaultOptions['password'] == 'show'){
$errorMark = '';
$errorMark2 = '';
$errorVar = '';
$errorVar2 = '';
if ($wppb_defaultOptions['passwordRequired'] == 'yes'){
$errorMark = '<font color="red" title="This field is required for registration.">*</font>';
$errorMark2 = '<font color="red" title="This field is required for registration.">*</font>';
if (isset ($_POST['passw1']))
if (trim($_POST['passw1']) == ''){
$errorMark = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
$errorVar = ' errorHolder';
}
if (isset ($_POST['passw2']))
if (trim($_POST['passw2']) == ''){
$errorMark2 = '<img src="'.WPPB_PLUGIN_URL . '/assets/images/pencil_delete.png" title="This field is required for registration."/>';
$errorVar2 = ' errorHolder';
}
}
$localVar1 = '';
if (isset($_POST['passw1']))
$localVar1 = $_POST['passw1'];
$localVar2 = '';
if (isset($_POST['passw2']))
$localVar2 = $_POST['passw2'];
$registerFilterArray2['ay3'] = '
<p class="form-password'.$errorVar.'">
<label for="pass1">'. __('Password', 'profilebuilder') .$errorMark.'</label>
<input class="text-input" name="passw1" type="password" id="pass1" value="'.trim($localVar1).'" />
</p><!-- .form-password -->
<p class="form-password'.$errorVar2.'">
<label for="pass2">'. __('Repeat Password', 'profilebuilder') .$errorMark2.'</label>
<input class="text-input" name="passw2" type="password" id="pass2" value="'.trim($localVar2).'" />
</p><!-- .form-password -->';
$registerFilterArray2['ay3'] = apply_filters('wppb_register_content_about_yourself3', $registerFilterArray2['ay3'], trim($localVar1), trim($localVar2), $errorVar, $errorMark, $errorVar2, $errorMark2);
}
$wppb_premium = WPPB_PLUGIN_DIR . '/premium/functions/';
if (file_exists ( $wppb_premium.'extra.fields.php' )){
require_once($wppb_premium.'extra.fields.php');
//register_user_extra_fields($error, $_POST, $extraFieldsErrorHolder);
$page = 'register';
$returnedValue = wppb_extra_fields($current_user->id, $extraFieldsErrorHolder, $registerFilterArray, $page, $error, $_POST);
//copy over extra fields to the rest of the fieldso on the edit profile
foreach($returnedValue as $key => $value)
$registerFilterArray2[$key] = apply_filters('wppb_register_content_'.$key, $value);
}
if(function_exists('wppb_add_recaptcha_to_registration_form')){
$wppb_addon_settings = get_option('wppb_addon_settings');
if ($wppb_addon_settings['wppb_reCaptcha'] == 'show'){
$reCAPTCHAForm = wppb_add_recaptcha_to_registration_form();
$labelName = apply_filters('wppb_register_anti_spam_title', __('Anti-Spam', 'profilebuilder'));
$registerFilterArray2['reCAPTCHAForm'] = '<div class="form-reCAPTCHA"><label class="form-reCAPTCHA-label" for="'.$labelName.'">'.$labelName.'</label>'.$reCAPTCHAForm.'</div><!-- .form-reCAPTCHA -->';
}
}
// additional filter, just in case it is needed
$registerFilterArray2['extraRegistrationFilter'] = '';
$registerFilterArray2['extraRegistrationFilter'] = apply_filters('extraRegistrationField', $registerFilterArray2['extraRegistrationFilter']);
// END additional filter, just in case it is needed
$wppb_generalSettings = get_option('wppb_general_settings');
if ($wppb_generalSettings['emailConfirmation'] != 'yes'){
if (!is_multisite()){
if (isset($_POST['send_credentials_via_email']))
$checkedVar = ' checked';
else $checkedVar = '';
$registerFilterArray2['confirmationEmailForm'] = '
<p class="send-confirmation-email">
<label for="send-confirmation-email">
<input id="send_credentials_via_email" type="checkbox" name="send_credentials_via_email" value="sending"'. $checkedVar .'/>
'. __('Send these credentials via email.', 'profilebuilder') . '
</label>
</p><!-- .send-confirmation-email -->';
$registerFilterArray2['confirmationEmailForm'] = apply_filters('wppb_register_confirmation_email_form', $registerFilterArray2['confirmationEmailForm'], $checkedVar);
}
}
$registerFilterArray2 = apply_filters('wppb_register', $registerFilterArray2);
foreach ($registerFilterArray2 as $key => $value)
echo $value;
?>
<p class="form-submit">
<?php
if ( current_user_can( 'create_users' ) )
$button_name = __('Add User', 'profilebuilder');
else
$button_name = __('Register', 'profilebuilder');
?>
<input name="adduser" type="submit" id="addusersub" class="submit button" value="<?php echo apply_filters('wppb_register_button_name', $button_name, $current_user); ?>" />
<input name="action" type="hidden" id="action" value="adduser" />
<input type="hidden" name="formName" value="register" />
</p><!-- .form-submit -->
<?php
wp_nonce_field('verify_true_registration','register_nonce_field');
?>
</form><!-- #adduser -->
<?php
endif;
endif;
/* use this action hook to add extra content after the register form. */
do_action( 'wppb_after_register_fields' );
?>
</div>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
// function to choose whether to display the registration page or the key-validating function
function wppb_front_end_register_handler($atts){
if (isset($_GET['key'])){
$res = wppb_activate_signup ($_GET['key']);
}else
$res = wppb_front_end_register($atts);
return $res;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment