function bum_show_custom_fields_admin() { //get extra fields $profileuser = bum_get_user_to_edit($_GET['user_id']); if (!$profileuser->data->ID) { exit; } $fields = get_term_by('slug', $profileuser->roles[0], BUM_HIDDEN_FIELDS); $form = new ValidForm('your-profile', '', get_permalink() . '?user_id=' . $_GET['user_id']); /* * This handles extra fields ( basically reading the field info and putting it into ValidForm ) * Currently handles `radio`, `checkbox`, `select`, `input_text` ( text field ), and `textarea` */ if ($fields->description) { echo '<h3>Custom fields</h3>'; $fields = json_decode($fields->description); foreach ($fields as $field) { //get info $info = bum_get_field_info($field); $fid = 'bum_' . sanitize_title($info['title']); //this is handling `radio`, `checkbox`, `select` if (in_array($info['cssClass'], array('radio', 'checkbox', 'select'))) { if ($info['cssClass'] == 'radio') { $type = VFORM_RADIO_LIST; } elseif ($info['cssClass'] == 'checkbox') { $type = VFORM_CHECK_LIST; } else { $type = VFORM_SELECT_LIST; } //Multiple values are seperated by | ( pipe ) if (strpos($info['meta_value'], '|') !== false) { $info['meta_value'] = explode('|', $info['meta_value']); } $box = $form->addField('bum_' . $info['id'], $info['title'], $type, array('required' => $info['required'] == 'false' ? false : true), array('required' => 'The following field is required: ' . $info['title']), $info['tip'] ? array('tip' => $info['tip'], 'default' => $info['meta_value']) : array('default' => $info['meta_value'])); foreach ($info['values'] as $checkbox) { $box->addField($checkbox->value, htmlentities($checkbox->value)); } } //this is handling `input_text`, `textarea` if (in_array($info['cssClass'], array('input_text', 'textarea'))) { if ($info['cssClass'] == 'input_text') { $type = VFORM_STRING; } else { $type = VFORM_TEXT; } $form->addField('bum_' . $info['id'], $info['values'], $type, array('required' => $info['required'] == 'false' ? false : true), array('required' => 'The following field is required: ' . $info['values']), $info['tip'] ? array('tip' => $info['tip'], 'default' => $info['meta_value']) : array('default' => $info['meta_value'])); } } } echo $form->toWpHtml(); }
<?php /** * @Author Jonathon byrd * @link http://www.5twentystudios.com * @Package Wordpress * @SubPackage Better User Management * @Since 1.0.0 * @copyright Copyright (C) 2011 5Twenty Studios * */ defined('ABSPATH') or die("Cannot access pages directly."); //initializing global $wp_http_referer, $errors, $user_id, $user_can_edit, $_wp_admin_css_colors, $super_admins; $title = IS_PROFILE_PAGE ? __('Profile') : __('Edit User'); $profileuser = bum_get_user_to_edit($user_id); //get extra fields $fields = get_term_by('slug', $profileuser->roles[0], BUM_HIDDEN_FIELDS); require_once $view;