function upme_update_custom_field($field_options, $type) { foreach ($field_options as $key => $value) { $field_options[$key] = wp_unslash($field_options[$key]); if ($key != 'submit') { if (strpos($key, 'upme') !== false) { /* Save new fields */ $array_key = filter_var($key, FILTER_SANITIZE_NUMBER_INT); $new_pos = filter_var($field_options['upme_' . $array_key . '_position'], FILTER_SANITIZE_NUMBER_INT); $plain_key = str_replace('upme_' . $array_key . '_', '', $key); if (!is_array($value)) { $form_fields[$new_pos][$plain_key] = upme_stripslashes_deep($value); } else { $form_fields[$new_pos][$plain_key] = $value; } if ($plain_key == 'name' && $value != '') { $form_fields[$new_pos][$plain_key] = wp_unslash(esc_html($value)); } if ($plain_key == 'meta_custom' && $value != '') { $form_fields[$new_pos]['meta'] = esc_html($value); } if ($plain_key == 'icon' && $value != '') { $form_fields[$new_pos]['icon'] = $value; } else { $form_fields[$new_pos]['icon'] = 0; } if ($plain_key == 'private' && $value == 1) { $form_fields[$new_pos]['can_hide'] = 0; } if ($plain_key == 'show_to_user_role_list') { $form_fields[$new_pos]['show_to_user_role_list'] = implode(',', $value); } if ($plain_key == 'edit_by_user_role_list') { $form_fields[$new_pos]['edit_by_user_role_list'] = implode(',', $value); } } else { if (strpos($key, 'html_') !== false) { $this->options[$key] = stripslashes($value); } else { $this->options[$key] = esc_attr($value); } } } } if (isset($form_fields) && is_array($form_fields)) { ksort($form_fields); update_option('upme_profile_fields', $form_fields); } if ('ajax' == $type) { echo json_encode(array('status' => 'success')); exit; } }
echo $pos; ?> _choices" style="display: block"><?php _e('Available Choices', 'upme'); ?> </label> <textarea name="upme_<?php echo $pos; ?> _choices" type="text" id="upme_<?php echo $pos; ?> _choices" class="large-text"><?php if (isset($array['choices'])) { echo upme_stripslashes_deep(trim($choices)); } ?> </textarea> <i class="upme-icon upme-icon-question-circle upme-tooltip2" title="<?php _e('Enter one choice per line please. The choices will be available for front end user to choose from.', 'upme'); ?> "></i> </p> <?php if (!isset($array['predefined_loop'])) { $predefined_loop = 0; } ?> <p class="upme-choices <?php
function show_register_form($sidebar_class = null, $redirect_to = null, $user_role = null, $registration_form_name = null, $display_login = null) { global $upme_register, $predefined, $upme_captcha_loader, $upme_options; $display = null; /* Get end of array */ $array = $upme_options->upme_profile_fields; $current_option = $upme_options->upme_settings; $allow_user_role_registration = $current_option['select_user_role_in_registration']; // Check the status of enabling/disabling collapsible tabs $profile_collapsible_tabs = isset($current_option['profile_collapsible_tabs']) ? $current_option['profile_collapsible_tabs'] : '0'; $profile_collapsible_tabs_display = isset($current_option['profile_collapsible_tabs_display']) ? $current_option['profile_collapsible_tabs_display'] : '0'; // Optimized condition and added strict conditions if (!isset($upme_register->registered) || $upme_register->registered != 1) { $display .= '<form action="" method="post" id="upme-registration-form" enctype="multipart/form-data" >'; $display .= '<div class="upme-field upme-separator upme-edit upme-edit-show upme-clearfix upme-account_info_separator">' . __('Account Info', 'upme') . '</div>'; /* UPME Filters for customizing registration fields */ $registration_fields_params = array('user_role' => $user_role, 'form_name' => $registration_form_name, 'sidebar_class' => $sidebar_class); $this->registration_fields = apply_filters('upme_registration_fields', $this->registration_fields, $registration_fields_params); // End Filters /* Add Account Information Fields to top of Registration fields */ foreach ($this->registration_fields as $key => $field) { /* Remove user role selection when user role is forced */ if ($user_role && isset($field['meta']) && $field['meta'] == 'user_role') { continue; } extract($field); if ($type == 'usermeta') { if (!('user_role' == $meta && !$allow_user_role_registration)) { if (!isset($required)) { $required = 0; } $required_class = ''; $required_sign = ''; if ($required == 1 && in_array($field, $this->include_for_validation)) { $required_class = ' required'; $required_sign = '<span class="upme-required"> *</span>'; } $display .= '<div class="upme-field upme-edit upme-edit-show upme-' . $meta . '">'; /* Show the label */ if (isset($this->registration_fields[$key]['name']) && $name) { $display .= '<label class="upme-field-type" for="' . $meta . '">'; if (isset($this->registration_fields[$key]['icon']) && $icon) { $display_icon = '<i class="upme-icon upme-icon-' . $icon . '"></i>'; } else { $display_icon = '<i class="upme-icon upme-icon-none"></i>'; } /* UPME Filters for customizing registration fields icons */ $registration_field_icon_params = array('meta' => $meta, 'name' => $name, 'field' => $field); $display .= apply_filters('upme_registration_field_icon', $display_icon, $registration_field_icon_params); // End Filters $display .= '<span>' . apply_filters('upme_registration_label_' . $meta, $name) . '</span>' . $required_sign . '</label>'; } else { $display .= '<label class="upme-field-type"> ' . $required_sign . '</label>'; } $display .= '<div class="upme-field-value">'; switch ($field) { case 'textarea': $params = array('meta' => $meta, 'name' => $name); $custom_editor_styles = apply_filters('upme_text_editor_styles', '', $params); $display .= '<textarea class="upme-input' . $required_class . ' ' . $custom_editor_styles . ' " name="' . $meta . '" id="reg_' . $meta . '" title="' . $name . '">' . $this->post_value($meta) . '</textarea>'; break; case 'text': $display .= '<input type="text" class="upme-input' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; //if (isset($this->registration_fields[$key]['help']) && $help != '') { //$display .= '<div class="upme-help">' . $help . '</div><div class="upme-clear"></div>'; //} break; case 'datetime': $display .= '<input type="text" readonly="readonly" class="upme-input' . $required_class . ' upme-datepicker" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; $display .= '<input type="button" class="upme-button-alt upme-datepicker-reset" value="' . __('Clear Date', 'upme') . '" />'; //if (isset($this->registration_fields[$key]['help']) && $help != '') { //$display .= '<div class="upme-help">' . $help . '</div><div class="upme-clear"></div>'; //} break; case 'password': $display .= '<input type="password" class="upme-input password' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="" autocomplete="off" title="' . $name . '" />'; //if (isset($this->registration_fields[$key]['help']) && $help != '') { //$display .= '<div class="upme-help">' . $help . '</div><div class="upme-clear"></div>'; //} break; case 'password_indicator': $display .= '<div class="password-meter"><div class="password-meter-message" id="password-meter-message">' . __('Strength Indicator', 'upme') . '</div></div>'; break; case 'video': $display .= '<input type="text" class="upme-input' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; //if (isset($this->registration_fields[$key]['help']) && $help != '') { //$display .= '<div class="upme-help">' . $help . '</div><div class="upme-clear"></div>'; //} break; case 'soundcloud': $display .= '<input type="text" class="upme-input' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; break; case 'select': if ('user_role' == $meta) { global $upme_roles; $allowed_user_roles = $upme_roles->upme_allowed_user_roles_registration(); $display .= '<select class="upme-input' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" >'; $display .= '<option value="">' . $current_option['label_for_registration_user_role'] . '</option>'; foreach ($allowed_user_roles as $key => $val) { $display .= '<option value="' . $key . '">' . $val . '</option>'; } $display .= '</select>'; } break; } if (isset($help_text) && !empty($help_text)) { /* Display help text based on HTML content status */ $help_text_html_status = isset($current_option['help_text_html']) ? $current_option['help_text_html'] : '0'; if ($help_text_html_status == '1') { $display .= '<div class="upme-help-text upme-help">' . $help_text . '</div>'; } else { if ($help_text_html_status == '2') { $display .= '<div class="upme-help-text upme-help">' . strip_tags($help_text, '<p><a><b><strong><i><span>') . '</div>'; } else { $display .= '<div class="upme-help-text upme-help">' . esc_html($help_text) . '</div>'; } } } /* User can hide this from public */ if (isset($this->registration_fields[$key]['can_hide']) && $can_hide == 1) { foreach ($array as $key => $meta_field) { if ('user_email' == $meta_field['meta'] && 1 == $meta_field['can_hide']) { $display .= '<div class="upme-hide-from-public"> <i class="upme-icon upme-icon-square-o"></i>' . __('Hide from Public', 'upme') . ' <input type="hidden" name="hide_' . $meta . '" id="hide_' . $meta . '" value="" /> </div>'; } } } $display .= '</div>'; $display .= '</div><div class="upme-clear"></div>'; } } } $upme_fields_meta_value_array = array(); foreach ($array as $key => $field) { // Optimized condition and added strict conditions $exclude_array = array('user_pass', 'user_pass_confirm', 'user_email'); if (isset($field['meta']) && in_array($field['meta'], $exclude_array)) { unset($array[$key]); } /* Filter the fields for regiistration */ if (!(isset($array[$key]['show_in_register']) && $array[$key]['show_in_register'] == 1)) { unset($array[$key]); } $upme_fields_meta_value_array[$field['meta']] = $field['name']; } $i_array_end = end($array); if (isset($i_array_end['position'])) { $array_end = $i_array_end['position']; if ($array[$array_end]['type'] == 'separator') { unset($array[$array_end]); } } /* UPME Filters for customizing registration fields */ $custom_registration_fields_params = array('user_role' => $user_role, 'form_name' => $registration_form_name, 'sidebar_class' => $sidebar_class, 'fields_meta_values' => $upme_fields_meta_value_array); $array = apply_filters('upme_custom_registration_fields', $array, $custom_registration_fields_params); // End Filters // echo "<pre>";print_r($array);exit; /* Show the fields that user added to customizer */ foreach ($array as $key => $field) { extract($field); // WP 3.6 Fix if (!isset($deleted)) { $deleted = 0; } if (!isset($private)) { $private = 0; } if (!isset($required)) { $required = 0; } $required_class = ''; $required_sign = ''; if ($required == 1 && in_array($field, $this->include_for_validation)) { $required_class = ' required'; $required_sign = '<span class="upme-required"> *</span>'; } /* separator */ if ($type == 'separator' && $deleted == 0 && $private == 0 && isset($array[$key]['show_in_register']) && $array[$key]['show_in_register'] == 1) { $profile_collapsible_tabs_class = ''; $profile_collapsible_tabs_icon = ''; if ($profile_collapsible_tabs == '0') { $profile_collapsible_tabs_class = 'upme-collapsible-separator'; $collapse_icon = 'upme-icon-arrow-up'; if ($profile_collapsible_tabs_display == '1') { $collapse_icon = 'upme-icon-arrow-down'; } $profile_collapsible_tabs_icon = '<span id="upme-separator-icon-' . $meta . '" class="upme-icon upme-separator-collapse-icon ' . $collapse_icon . '"> </span>'; } $display .= '<div class="upme-field upme-separator upme-edit upme-edit-show upme-clearfix ' . $profile_collapsible_tabs_class . ' ">' . $name . $profile_collapsible_tabs_icon . '</div>'; } /* UPME filter for customizing registration fields on individual forms */ $custom_registration_field_status_params = array('meta' => $meta, 'user_role' => $user_role, 'form_name' => $registration_form_name, 'sidebar_class' => $sidebar_class); $custom_registration_field_status = apply_filters('upme_custom_registration_field_status', true, $custom_registration_field_status_params); /* END filter */ /* user meta - registration fields */ if ($type == 'usermeta' && $deleted == 0 && $private == 0 && isset($array[$key]['show_in_register']) && $array[$key]['show_in_register'] == 1 && $custom_registration_field_status) { $profile_collapsible_sep_class = ''; $sep_meta_key = isset($this->separator_group_fields[$meta]) ? $this->separator_group_fields[$meta] : ''; if ($profile_collapsible_tabs == '0' && $sep_meta_key != '') { $profile_collapsible_sep_class = 'upme-separator-icon-' . $sep_meta_key . '-field'; } $display .= '<div class="upme-field upme-edit upme-edit-show ' . $profile_collapsible_sep_class . '">'; /* Show the label */ if (isset($array[$key]['name']) && $name) { $display .= '<label class="upme-field-type" for="' . $meta . '">'; if (isset($array[$key]['icon']) && $icon) { $display_icon = '<i class="upme-icon upme-icon-' . $icon . '"></i>'; } else { $display_icon = '<i class="upme-icon upme-icon-none"></i>'; } /* UPME Filters for customizing registration fields icons */ $registration_custom_field_icon_params = array('meta' => $meta, 'name' => $name, 'field' => $field); $display .= apply_filters('upme_registration_custom_field_icon', $display_icon, $registration_custom_field_icon_params); // End Filters $display .= '<span>' . $name . '</span>' . $required_sign . '</label>'; } else { $display .= '<label class="upme-field-type"> ' . $required_sign . '</label>'; } $display .= '<div class="upme-field-value">'; switch ($field) { case 'textarea': $params = array('meta' => $meta, 'name' => $name); $custom_editor_styles = apply_filters('upme_text_editor_styles', '', $params); $display .= '<textarea class="upme-input' . $required_class . ' ' . $custom_editor_styles . ' " name="' . $meta . '" id="' . $meta . '" title="' . $name . '">' . $this->post_value($meta) . '</textarea>'; break; case 'text': $display .= '<input type="text" class="upme-input' . $required_class . '" name="' . $meta . '" id="' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; break; case 'datetime': $display .= '<input type="text" readonly="readonly" class="upme-input' . $required_class . ' upme-datepicker" name="' . $meta . '" id="' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; $display .= '<input type="button" class="upme-button-alt upme-datepicker-reset" value="' . __('Clear Date', 'upme') . '" />'; break; case 'select': $loop = array(); if (isset($array[$key]['predefined_loop']) && $array[$key]['predefined_loop'] != '' && $array[$key]['predefined_loop'] != '0') { $loop = $predefined->get_array($array[$key]['predefined_loop']); if ('countries' == $array[$key]['predefined_loop']) { array_shift($loop); } } else { if (isset($array[$key]['choices']) && $array[$key]['choices'] != '') { $loop = explode(PHP_EOL, $choices); } } /* UPME filter for customizing select field values */ $reg_select_field_custom_values_params = array('meta' => $meta, 'name' => $name); $loop = apply_filters('upme_reg_select_field_custom_values', $loop, $reg_select_field_custom_values_params); /* End filter */ if (isset($loop)) { // Check for country loop $country_loop_status = isset($array[$key]['predefined_loop']) ? $array[$key]['predefined_loop'] : ''; $selected_value = $this->post_value($meta); if ('' == $this->post_value($meta) && '' != $country_loop_status && 'countries' == $country_loop_status) { $upme_settings = $upme_options->upme_settings; $selected_value = isset($loop[$upme_settings['default_predefined_country']]) ? $loop[$upme_settings['default_predefined_country']] : '0'; } $display .= '<select class="upme-input' . $required_class . '" name="' . $meta . '" id="' . $meta . '" title="' . $name . '">'; $display .= '<option value="" >' . __('Please Select', 'upme') . '</option>'; foreach ($loop as $option) { // Added as per http://codecanyon.net/item/user-profiles-made-easy-wordpress-plugin/discussion/4109874?filter=All+Discussion&page=27#comment_4352415 $option = upme_stripslashes_deep(trim($option)); $display .= '<option value="' . $option . '" ' . selected($selected_value, $option, 0) . '>' . $option . '</option>'; } $display .= '</select>'; } $display .= '<div class="upme-clear"></div>'; break; case 'radio': if (isset($array[$key]['choices'])) { $loop = explode(PHP_EOL, $choices); } /* UPME filter for customizing radio field values */ $reg_radio_field_custom_values_params = array('meta' => $meta, 'name' => $name); $loop = apply_filters('upme_reg_radio_field_custom_values', $loop, $reg_radio_field_custom_values_params); /* End filter */ if (isset($loop)) { $counter = 0; foreach ($loop as $option) { if ($counter > 0) { $required_class = ''; } // Added as per http://codecanyon.net/item/user-profiles-made-easy-wordpress-plugin/discussion/4109874?filter=All+Discussion&page=27#comment_4352415 $option = upme_stripslashes_deep(trim($option)); $display .= '<label class="upme-radio"><input type="radio" class="' . $required_class . '" title="' . $name . '" name="' . $meta . '" value="' . $option . '" ' . checked($this->post_value($meta), $option, 0); $display .= '/> ' . $option . '</label>'; $counter++; } } $display .= '<div class="upme-clear"></div>'; break; case 'checkbox': if (isset($array[$key]['choices'])) { $loop = explode(PHP_EOL, $choices); } /* UPME filter for customizing checkbox field values */ $reg_checkbox_field_custom_values_params = array('meta' => $meta, 'name' => $name); $loop = apply_filters('upme_reg_checkbox_field_custom_values', $loop, $reg_checkbox_field_custom_values_params); /* End filter */ if (isset($loop)) { $counter = 0; foreach ($loop as $option) { if ($counter > 0) { $required_class = ''; } // Added as per http://codecanyon.net/item/user-profiles-made-easy-wordpress-plugin/discussion/4109874?filter=All+Discussion&page=27#comment_4352415 $option = upme_stripslashes_deep(trim($option)); $display .= '<label class="upme-checkbox">'; $display .= '<input type="checkbox" class="' . $required_class . '" title="' . $name . '" name="' . $meta . '[]" value="' . $option . '" '; if (is_array($this->post_value($meta)) && in_array($option, $this->post_value($meta))) { $display .= 'checked="checked"'; } $display .= '/>' . $option; $display .= '</label>'; $counter++; } } $display .= '<div class="upme-clear"></div>'; break; case 'password': $display .= '<input type="password" class="upme-input' . $required_class . '" title="' . $name . '" name="' . $meta . '" id="' . $meta . '" value="' . $this->post_value($meta) . '" />'; if ($meta == 'user_pass') { $display .= '<div class="upme-help">' . __('If you would like to change the password type a new one. Otherwise leave this blank.', 'upme') . '</div>'; } elseif ($meta == 'user_pass_confirm') { $display .= '<div class="upme-help">' . __('Type your new password again.', 'upme') . '</div>'; } break; case 'video': $display .= '<input type="text" class="upme-input' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; if (isset($this->registration_fields[$key]['help']) && $help != '') { $display .= '<div class="upme-help">' . $help . '</div><div class="upme-clear"></div>'; } break; case 'soundcloud': $display .= '<input type="text" class="upme-input' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; if (isset($this->registration_fields[$key]['help']) && $help != '') { $display .= '<div class="upme-help">' . $help . '</div><div class="upme-clear"></div>'; } break; case 'fileupload': $display .= '<input type="file" class="upme-input' . $required_class . '" name="' . $meta . '" id="reg_' . $meta . '" value="' . $this->post_value($meta) . '" title="' . $name . '" />'; break; default: /* UPME Filter for working with custom registration field types */ $registration_custom_field_types_params = array('id' => 'reg_' . $meta, 'meta' => $meta, 'name' => $name, 'field' => $field, 'required_class' => $required_class, 'value' => $this->post_value($meta), 'array' => $array[$key]); $reg_custom_fields_display = apply_filters('upme_registration_custom_field_types', '', $registration_custom_field_types_params); // End filter if ('' != $reg_custom_fields_display) { $display .= $reg_custom_fields_display; if (isset($this->registration_fields[$key]['help']) && $help != '') { $display .= '<div class="upme-help">' . $help . '</div><div class="upme-clear"></div>'; } } break; } if (isset($help_text) && !empty($help_text)) { /* Display help text based on HTML content status */ $help_text_html_status = isset($current_option['help_text_html']) ? $current_option['help_text_html'] : '0'; if ($help_text_html_status == '1') { $display .= '<div class="upme-help-text upme-help">' . $help_text . '</div>'; } else { if ($help_text_html_status == '2') { $display .= '<div class="upme-help-text upme-help">' . strip_tags($help_text, '<p><a><b><strong><i><span>') . '</div>'; } else { $display .= '<div class="upme-help-text upme-help">' . esc_html($help_text) . '</div>'; } } } /* User can hide this from public */ if (isset($array[$key]['can_hide']) && $can_hide == 1) { $display .= '<div class="upme-hide-from-public"> <i class="upme-icon upme-icon-square-o"></i>' . __('Hide from Public', 'upme') . ' <input type="hidden" name="hide_' . $meta . '" id="hide_' . $meta . '" value="" /> </div>'; } elseif ($can_hide == 0 && $private == 0) { // Commented Out text Field Must be Publicly Visible //$display .= '<div class="upme-hide-from-public upme-disable"> // '.sprintf(__('%s must be publicly visible.','upme'), $name).' // </div>'; } $display .= '</div>'; $display .= '</div><div class="upme-clear"></div>'; } } $display .= $upme_captcha_loader->load_captcha($this->captcha); //if($this->use_captcha == 'yes') //else // $display.='<input type="hidden" name="no_captcha" value="yes" />'; /* UPME Filters for adding extra fields or hidden data in registration form */ $display .= apply_filters('upme_registration_form_extra_fields', ''); // End Filter if ((bool) $current_option['accepting_terms_and_conditions']) { $terms_field_title = apply_filters('upme_terms_field_title', __('Please Accept Terms and Conditions', 'upme')); $display .= '<div class="upme-field upme-edit upme-edit-show"> <label class="upme-field-type upme-field-type-' . $sidebar_class . '"> </label> <div class="upme-field-value"> <input type="checkbox" title="' . $terms_field_title . '" class="required" name="upme-terms-agreement" value="accept" /> ' . $current_option['html_terms_and_conditions'] . ' </div> </div><div class="upme-clear"></div>'; } $display .= '<div class="upme-field upme-edit upme-edit-show"> <label class="upme-field-type upme-field-type-' . $sidebar_class . '"> </label> <div class="upme-field-value">'; /* Force custom user role on registration using shortcode attributes */ $upme_secret_key = get_option('upme_secret_key'); if (!$upme_secret_key) { $upme_secret_key = wp_generate_password(20); update_option('upme_secret_key', $upme_secret_key); } if ($user_role) { $hash = hash('sha256', $user_role . $upme_secret_key); $display .= '<input type="hidden" name="upme-hidden-register-form-user-role" value="' . $user_role . '" />'; $display .= '<input type="hidden" name="upme-hidden-register-form-user-role-hash" value="' . $hash . '" />'; } $hash_register = hash('sha256', $this->registration_form_name . $upme_secret_key); $display .= '<input type="hidden" name="upme-register-form-name" value="' . $registration_form_name . '" /> <input type="hidden" name="upme-hidden-register-form-name-hash" value="' . $hash_register . '" /> <input type="hidden" name="upme-register-form" value="upme-register-form" /> <input type="submit" name="upme-register" id="upme-register" class="upme-button" value="' . __('Register', 'upme') . '" />'; if ('yes' == $display_login) { $link_login_reg = get_permalink($current_option['login_page_id']); $display .= ' <a href="' . $link_login_reg . '"><input type="button" name="upme-register-login" id="upme-register-login" class="upme-button" value="' . __('Already a member? Login Here', 'upme') . '" /></a>'; } $display .= '</div> </div><div class="upme-clear"></div>'; if ($redirect_to != '') { $display .= '<input type="hidden" name="redirect_to" value="' . $redirect_to . '" />'; } $display .= '</form>'; } // Registration complete return $display; }