Example #1
0
 function meta_box($user)
 {
     if ($this->title) {
         echo '<h3>' . $this->title . '</h3>';
     }
     $defaults = $this->fields();
     if (empty($defaults) || !is_array($defaults)) {
         return;
     }
     $new_fields = dp_instance_fields($defaults, 'user_meta', $user);
     wp_nonce_field($this->nonce_action, $this->nonce);
     echo dp_form_fields($new_fields);
 }
Example #2
0
function dp_instance_fields($fields, $instance_type = '', $object = '')
{
    foreach ($fields as $field) {
        global $post;
        if (!empty($field['fields']) && $field['type'] == 'fields') {
            $field['fields'] = dp_instance_fields($field['fields'], $instance_type);
        } else {
            if (empty($field['name'])) {
                $new_fields[] = $field;
                continue;
            }
            $name = $field['name'];
            $name = str_replace('[]', '', $name);
            $name = str_replace(']', '', $name);
            $name = explode('[', $name);
            if ($instance_type == 'post_meta') {
                $value = get_post_meta($post->ID, $name[0], true);
            } elseif ($instance_type == 'user_meta') {
                $value = get_user_meta($object->ID, $name[0], true);
            } elseif ($instance_type == 'term_meta') {
                $value = get_term_meta($object->term_id, $name[0], true);
            } else {
                $value = get_option($name[0]);
            }
            unset($name[0]);
            foreach ($name as $n) {
                if (empty($value[$n])) {
                    $value = '';
                    break;
                }
                $value = $value[$n];
            }
            $field['value'] = $value;
        }
        $new_fields[] = $field;
    }
    return $new_fields;
}