function um_get_avatar($avatar = '', $id_or_email = '', $size = '96', $avatar_class = '', $default = '', $alt = '')
{
    if (is_numeric($id_or_email)) {
        $user_id = (int) $id_or_email;
    } elseif (is_string($id_or_email) && ($user = get_user_by('email', $id_or_email))) {
        $user_id = $user->ID;
    } elseif (is_object($id_or_email) && !empty($id_or_email->user_id)) {
        $user_id = (int) $id_or_email->user_id;
    }
    if (empty($user_id)) {
        return $avatar;
    }
    um_fetch_user($user_id);
    $avatar = um_user('profile_photo', $size);
    if (!um_profile('profile_photo') && um_get_option('use_gravatars')) {
        if (is_ssl()) {
            $protocol = 'https://';
        } else {
            $protocol = 'http://';
        }
        $default = get_option('avatar_default', 'mystery');
        if ($default == 'gravatar_default') {
            $default = '';
        }
        $rating = get_option('avatar_rating');
        if (!empty($rating)) {
            $rating = "&r={$rating}";
        }
        $avatar = '<img src="' . $protocol . 'gravatar.com/avatar/' . md5(um_user('user_email')) . '?d=' . $default . '&amp;s=' . $size . $rating . '" class="gravatar avatar avatar-' . $size . ' um-avatar" width="' . $size . '" height="' . $size . '" alt="" />';
    }
    return $avatar;
}
function um_admin_user_actions_hook($actions)
{
    $actions = null;
    if (!um_user('super_admin')) {
        if (um_user('account_status') == 'awaiting_admin_review') {
            $actions['um_approve_membership'] = array('label' => __('Approve Membership', 'ultimatemember'));
            $actions['um_reject_membership'] = array('label' => __('Reject Membership', 'ultimatemember'));
        }
        if (um_user('account_status') == 'rejected') {
            $actions['um_approve_membership'] = array('label' => __('Approve Membership', 'ultimatemember'));
        }
        if (um_user('account_status') == 'approved') {
            $actions['um_put_as_pending'] = array('label' => __('Put as Pending Review', 'ultimatemember'));
        }
        if (um_user('account_status') == 'awaiting_email_confirmation') {
            $actions['um_resend_activation'] = array('label' => __('Resend Activation E-mail', 'ultimatemember'));
        }
        if (um_user('account_status') != 'inactive') {
            $actions['um_deactivate'] = array('label' => __('Deactivate this account', 'ultimatemember'));
        }
        if (um_user('account_status') == 'inactive') {
            $actions['um_reenable'] = array('label' => __('Reactivate this account', 'ultimatemember'));
        }
        if (um_current_user_can('delete', um_profile_id())) {
            $actions['um_delete'] = array('label' => __('Delete this user', 'ultimatemember'));
        }
    }
    if (current_user_can('delete_users')) {
        $actions['um_switch_user'] = array('label' => __('Login as this user', 'ultimatemember'));
    }
    um_fetch_user(um_profile_id());
    return $actions;
}
function um_after_changing_user_password($user_id)
{
    global $ultimatemember;
    um_fetch_user($user_id);
    $ultimatemember->mail->send(um_user('user_email'), 'changedpw_email');
    um_reset_user();
}
function um_control_admin_bar($content)
{
    if (um_user('can_not_see_adminbar')) {
        return false;
    }
    return $content;
}
function custom_update_profile($user_id)
{
    global $ultimatemember;
    um_fetch_user($user_id);
    $profilefirstname = um_user('first_name');
    update_user_meta($user_id, 'billing_first_name', $profilefirstname);
    update_user_meta($user_id, 'shipping_first_name', $profilefirstname);
    $profilelastname = um_user('last_name');
    update_user_meta($user_id, 'billing_last_name', $profilelastname);
    update_user_meta($user_id, 'shipping_last_name', $profilelastname);
    $profileaddress1 = um_user('street_address');
    update_user_meta($user_id, 'billing_address_1', $profileaddress1);
    update_user_meta($user_id, 'shipping_address_1', $profileaddress1);
    $profileaddress2 = um_user('address2');
    update_user_meta($user_id, 'billing_address_2', $address2);
    update_user_meta($user_id, 'shipping_address_2', $address2);
    $profilecity = um_user('city');
    update_user_meta($user_id, 'billing_city', $profilecity);
    update_user_meta($user_id, 'shipping_city', $profilecity);
    $profilezip_code = um_user('zip_code');
    update_user_meta($user_id, 'billing_postcode', $profilezip_code);
    update_user_meta($user_id, 'shipping_postcode', $profilezip_code);
    $profileemail = um_user('user_email');
    update_user_meta($user_id, 'billing_email', $profileemail);
    $profilephone = um_user('phone_number');
    update_user_meta($user_id, 'billing_phone', $profilephone);
    return $user_id;
}
function um_get_avatar($avatar = '', $id_or_email = '', $size = '96', $avatar_class = '', $default = '', $alt = '')
{
    if (is_numeric($id_or_email)) {
        $user_id = (int) $id_or_email;
    } elseif (is_string($id_or_email) && ($user = get_user_by('email', $id_or_email))) {
        $user_id = $user->ID;
    } elseif (is_object($id_or_email) && !empty($id_or_email->user_id)) {
        $user_id = (int) $id_or_email->user_id;
    }
    if (empty($user_id)) {
        return $avatar;
    }
    um_fetch_user($user_id);
    $avatar = um_user('profile_photo', $size);
    if (!$avatar && um_get_option('use_gravatars')) {
        $default = get_option('avatar_default', 'mystery');
        if ($default == 'gravatar_default') {
            $default = '';
        }
        $rating = get_option('avatar_rating');
        if (!empty($rating)) {
            $rating = "&amp;r={$rating}";
        }
        $avatar_url = um_get_domain_protocol() . 'gravatar.com/avatar/' . um_user('synced_gravatar_hashed_id');
        $avatar = '<img src="' . $avatar_url . '?d=' . $default . '&amp;s=' . $size . $rating . '" class="func-um_get_avatar gravatar avatar avatar-' . $size . ' um-avatar" width="' . $size . '" height="' . $size . '" alt="" />';
    } else {
        if (empty($avatar)) {
            $default_avatar_uri = um_get_default_avatar_uri();
            $avatar = '<img src="' . $default_avatar_uri . '" class="gravatar avatar avatar-' . $size . ' um-avatar" width="' . $size . '" height="' . $size . '" alt="" />';
        }
    }
    return $avatar;
}
function um_admin_user_actions_hook($actions)
{
    $actions = null;
    if (!um_user('super_admin')) {
        if (um_user('account_status') == 'awaiting_admin_review') {
            $actions['um_approve_membership'] = array('label' => __('Утвердить Пользователя', 'ultimatemember'));
            $actions['um_reject_membership'] = array('label' => __('Отклонить Пользователя', 'ultimatemember'));
        }
        if (um_user('account_status') == 'rejected') {
            $actions['um_approve_membership'] = array('label' => __('Одобрить Пользователя', 'ultimatemember'));
        }
        if (um_user('account_status') == 'approved') {
            $actions['um_put_as_pending'] = array('label' => __('Положите в ожидании пересмотра', 'ultimatemember'));
        }
        if (um_user('account_status') == 'awaiting_email_confirmation') {
            $actions['um_resend_activation'] = array('label' => __('Отправить повторно письмо для активации', 'ultimatemember'));
        }
        if (um_user('account_status') != 'inactive') {
            $actions['um_deactivate'] = array('label' => __('Отключить эту учетную запись', 'ultimatemember'));
        }
        if (um_user('account_status') == 'inactive') {
            $actions['um_reenable'] = array('label' => __('Активируйте эту учетную запись', 'ultimatemember'));
        }
        if (um_current_user_can('delete', um_profile_id())) {
            $actions['um_delete'] = array('label' => __('Удалить этого пользователя', 'ultimatemember'));
        }
    }
    if (current_user_can('delete_users')) {
        $actions['um_switch_user'] = array('label' => __('Войдите в систему как этот пользователь', 'ultimatemember'));
    }
    um_fetch_user(um_profile_id());
    return $actions;
}
function um_profile_content_edudash_default($args)
{
    // Admin Role Check
    if (um_user('role_name') == 'EM Faculty') {
        get_template_part('edudash');
    } else {
        echo "Sorry but you need to have educator access to view this tab.";
    }
}
Beispiel #9
0
 function reset_url()
 {
     global $ultimatemember;
     if (!um_user('reset_pass_hash')) {
         return false;
     }
     $url = add_query_arg('act', 'reset_password', um_get_core_page('password-reset'));
     $url = add_query_arg('hash', esc_attr(um_user('reset_pass_hash')), $url);
     $url = add_query_arg('user_id', esc_attr(um_user('ID')), $url);
     return $url;
 }
function um_control_admin_bar()
{
    if (um_user('can_not_see_adminbar')) {
        return false;
    }
    if (!is_admin() && !um_user('can_access_wpadmin')) {
        return false;
    } else {
        um_fetch_user(get_current_user_id());
        return true;
    }
}
function um_comment_link_to_profile($return)
{
    global $comment, $ultimatemember;
    if (isset($comment->user_id) && !empty($comment->user_id)) {
        if (isset($ultimatemember->user->cached_user[$comment->user_id]) && $ultimatemember->user->cached_user[$comment->user_id]) {
            $return = '<a href="' . $ultimatemember->user->cached_user[$comment->user_id]['url'] . '">' . $ultimatemember->user->cached_user[$comment->user_id]['name'] . '</a>';
        } else {
            um_fetch_user($comment->user_id);
            $ultimatemember->user->cached_user[$comment->user_id] = array('url' => um_user_profile_url(), 'name' => um_user('display_name'));
            $return = '<a href="' . $ultimatemember->user->cached_user[$comment->user_id]['url'] . '">' . $ultimatemember->user->cached_user[$comment->user_id]['name'] . '</a>';
            um_reset_user();
        }
    }
    return $return;
}
function um_shortcode_args_filter($args)
{
    global $ultimatemember;
    if ($ultimatemember->shortcodes->message_mode == true) {
        $args['template'] = 'message';
        $ultimatemember->shortcodes->custom_message = um_user(um_user('status') . '_message');
        um_reset_user();
    }
    foreach ($args as $k => $v) {
        if ($ultimatemember->validation->is_serialized($args[$k])) {
            if (!empty($args[$k])) {
                $args[$k] = unserialize($args[$k]);
            }
        }
    }
    return $args;
}
function um_account_page_default_tabs_hook($tabs)
{
    global $ultimatemember;
    foreach ($tabs as $k => $arr) {
        foreach ($arr as $id => $info) {
            $output = $ultimatemember->account->get_tab_output($id);
            if (!$output) {
                unset($tabs[$k][$id]);
            }
            if ($id == 'delete') {
                if (!um_user('can_delete_profile') && !um_user('can_delete_everyone')) {
                    unset($tabs[$k][$id]);
                }
            }
        }
    }
    return $tabs;
}
 function um_conditional_nav_menu($items, $menu, $args)
 {
     $hide_children_of = array();
     foreach ($items as $key => $item) {
         $mode = get_post_meta($item->ID, 'menu-item-um_nav_public', true);
         $roles = get_post_meta($item->ID, 'menu-item-um_nav_roles', true);
         $visible = true;
         // hide any item that is the child of a hidden item
         if (in_array($item->menu_item_parent, $hide_children_of)) {
             $visible = false;
             $hide_children_of[] = $item->ID;
             // for nested menus
         }
         if (isset($mode) && $visible) {
             switch ($mode) {
                 case 2:
                     if (is_user_logged_in() && isset($roles) && !empty($roles)) {
                         if (in_array(um_user('role'), (array) $roles)) {
                             $visible = true;
                         } else {
                             $visible = false;
                         }
                     } else {
                         $visible = is_user_logged_in() ? true : false;
                     }
                     break;
                 case 1:
                     $visible = !is_user_logged_in() ? true : false;
                     break;
             }
         }
         // add filter to work with plugins that don't use traditional roles
         $visible = apply_filters('um_nav_menu_roles_item_visibility', $visible, $item);
         // unset non-visible item
         if (!$visible) {
             $hide_children_of[] = $item->ID;
             // store ID of item
             unset($items[$key]);
         }
     }
     return $items;
 }
 function logout_page()
 {
     if (um_is_core_page('logout')) {
         if (is_user_logged_in()) {
             if (isset($_REQUEST['redirect_to']) && $_REQUEST['redirect_to'] !== '') {
                 $redirect_to = $_REQUEST['redirect_to'];
             } else {
                 if (um_user('after_logout') == 'redirect_home') {
                     $redirect_to = home_url();
                 } else {
                     $redirect_to = um_user('logout_redirect_url');
                 }
             }
             wp_logout();
             exit(wp_redirect($redirect_to));
         } else {
             um_redirect_home();
         }
     }
 }
function um_update_profile_full_name($changes)
{
    global $ultimatemember;
    if (isset($changes['first_name']) && isset($changes['last_name'])) {
        if ($changes['first_name'] && $changes['last_name'] && um_get_option('display_name') != 'public_name') {
            wp_update_user(array('ID' => $ultimatemember->user->id, 'display_name' => $changes['first_name'] . ' ' . $changes['last_name']));
            $full_name = $changes['first_name'] . '.' . $changes['last_name'];
        } else {
            $full_name = $ultimatemember->user->profile['display_name'];
        }
        $full_name = $ultimatemember->validation->safe_name_in_url($full_name);
        /* duplicate or not */
        if ($ultimatemember->user->user_has_metadata('full_name', $full_name)) {
            $duplicates = $ultimatemember->user->user_has_metadata('full_name', $full_name);
            if (!get_option("um_duplicate_name_{$full_name}")) {
                update_option("um_duplicate_name_{$full_name}", $duplicates);
                $full_name = $full_name . '.' . $duplicates;
            } else {
                if (um_user('_duplicate_id')) {
                    $duplicates = um_user('_duplicate_id');
                } else {
                    $duplicates = get_option("um_duplicate_name_{$full_name}") + 1;
                    update_option("um_duplicate_name_{$full_name}", $duplicates);
                    update_user_meta($ultimatemember->user->id, '_duplicate_id', $duplicates);
                }
                $full_name = $full_name . '.' . $duplicates;
            }
        } else {
            if (um_user('_duplicate_id') && $full_name != str_replace('.' . um_user('_duplicate_id'), '', um_user('full_name'))) {
                $duplicates = um_user('_duplicate_id');
                $full_name = str_replace('.' . um_user('_duplicate_id'), '', $full_name);
            }
        }
        update_user_meta($ultimatemember->user->id, 'full_name', $full_name);
    }
    if (um_get_option('display_name') === 'public_name') {
        update_user_meta($ultimatemember->user->id, 'display_name', $changes['display_name']);
    }
}
function um_wp_form_errors_hook_logincheck($user, $username, $password)
{
    remove_filter('authenticate', 'wp_authenticate_username_password', 20, 3);
    if (isset($user->ID)) {
        um_fetch_user($user->ID);
        $status = um_user('account_status');
        switch ($status) {
            case 'inactive':
                return new WP_Error($status, __('Ваш аккаунт был отключен.', 'ultimatemember'));
                break;
            case 'awaiting_admin_review':
                return new WP_Error($status, __('Ваш аккаунт не был одобрен еще.', 'ultimatemember'));
                break;
            case 'awaiting_email_confirmation':
                return new WP_Error($status, __('Ваша учетная запись ожидает проверки электронной почты.', 'ultimatemember'));
                break;
            case 'rejected':
                return new WP_Error($status, __('Ваш запрос на вступление была отклонена.', 'ultimatemember'));
                break;
        }
    }
    return wp_authenticate_username_password(null, $username, $password);
}
function um_wp_form_errors_hook_logincheck($user, $username, $password)
{
    remove_filter('authenticate', 'wp_authenticate_username_password', 20, 3);
    if (isset($user->ID)) {
        um_fetch_user($user->ID);
        $status = um_user('account_status');
        switch ($status) {
            case 'inactive':
                return new WP_Error($status, __('Your account has been disabled.', 'ultimatemember'));
                break;
            case 'awaiting_admin_review':
                return new WP_Error($status, __('Your account has not been approved yet.', 'ultimatemember'));
                break;
            case 'awaiting_email_confirmation':
                return new WP_Error($status, __('Your account is awaiting e-mail verification.', 'ultimatemember'));
                break;
            case 'rejected':
                return new WP_Error($status, __('Your membership request has been rejected.', 'ultimatemember'));
                break;
        }
    }
    return wp_authenticate_username_password($user, $username, $password);
}
 function logout_page()
 {
     if (um_is_core_page('logout')) {
         if (is_user_logged_in()) {
             if (isset($_REQUEST['redirect_to']) && $_REQUEST['redirect_to'] !== '') {
                 wp_logout();
                 session_unset();
                 exit(wp_redirect($_REQUEST['redirect_to']));
             } else {
                 if (um_user('after_logout') == 'redirect_home') {
                     wp_logout();
                     session_unset();
                     um_redirect_home();
                 } else {
                     wp_logout();
                     session_unset();
                     exit(wp_redirect(um_user('logout_redirect_url')));
                 }
             }
         } else {
             um_redirect_home();
         }
     }
 }
Beispiel #20
0
<div class="um <?php 
echo $this->get_class($mode);
?>
 um-<?php 
echo $form_id;
?>
 um-role-<?php 
echo um_user('role');
?>
 ">

	<div class="um-form">
	
		<?php 
do_action('um_profile_before_header', $args);
?>
		
		<?php 
if (um_is_on_edit_profile()) {
    ?>
<form method="post" action=""><?php 
}
?>
		
			<?php 
do_action('um_profile_header_cover_area', $args);
?>
			
			<?php 
do_action('um_profile_header', $args);
?>
function um_access_post_settings()
{
    global $post, $ultimatemember;
    // woo commerce shop ID
    if (function_exists('is_shop') && is_shop()) {
        $post_id = get_option('woocommerce_shop_page_id');
    } else {
        if (is_archive() || is_front_page() || is_search() || in_the_loop()) {
            return;
        } else {
            if (!get_post_type() || !isset($post->ID)) {
                return;
            }
        }
    }
    if (!isset($post_id)) {
        $post_id = $post->ID;
    }
    $args = $ultimatemember->access->get_meta($post_id);
    extract($args);
    if (!isset($args['custom_access_settings']) || $args['custom_access_settings'] == 0) {
        $post_id = apply_filters('um_access_control_for_parent_posts', $post_id);
        $args = $ultimatemember->access->get_meta($post_id);
        extract($args);
        if (!isset($args['custom_access_settings']) || $args['custom_access_settings'] == 0) {
            return;
        }
    }
    $redirect_to = null;
    if (!isset($accessible)) {
        return;
    }
    switch ($accessible) {
        case 0:
            $ultimatemember->access->allow_access = true;
            $ultimatemember->access->redirect_handler = false;
            // open to everyone
            break;
        case 1:
            if (is_user_logged_in()) {
                $redirect_to = $access_redirect2;
            }
            if (!is_user_logged_in()) {
                $ultimatemember->access->allow_access = true;
            }
            break;
        case 2:
            if (!is_user_logged_in()) {
                if (!$access_redirect) {
                    $access_redirect = um_get_core_page('login');
                }
                $redirect_to = $access_redirect;
            }
            if (is_user_logged_in() && isset($access_roles) && !empty($access_roles)) {
                if (!in_array(um_user('role'), unserialize($access_roles))) {
                    if (!$access_redirect) {
                        if (is_user_logged_in()) {
                            $access_redirect = home_url();
                        } else {
                            $access_redirect = um_get_core_page('login');
                        }
                    }
                    $redirect_to = $access_redirect;
                }
            }
            break;
    }
    if ($redirect_to) {
        if (is_feed()) {
        } else {
            $ultimatemember->access->allow_access = false;
            $ultimatemember->access->redirect_handler = $redirect_to;
        }
    }
}
 function admin_act_url($action, $subaction)
 {
     $url = $this->get_current_url();
     $url = add_query_arg('um_adm_action', $action, $url);
     $url = add_query_arg('sub', $subaction, $url);
     $url = add_query_arg('user_id', um_user('ID'), $url);
     return $url;
 }
function um_post_registration($user_id, $args)
{
    global $ultimatemember;
    unset($args['user_id']);
    extract($args);
    $status = um_user('status');
    do_action("um_post_registration_global_hook", $user_id, $args);
    do_action("um_post_registration_{$status}_hook", $user_id, $args);
    if (!is_admin()) {
        do_action("track_{$status}_user_registration");
        // Priority redirect
        if (isset($args['redirect_to'])) {
            exit(wp_redirect(urldecode($args['redirect_to'])));
        }
        if ($status == 'approved') {
            $ultimatemember->user->auto_login($user_id);
            do_action('um_registration_after_auto_login', $user_id);
            if (um_user('auto_approve_act') == 'redirect_url' && um_user('auto_approve_url') !== '') {
                exit(wp_redirect(um_user('auto_approve_url')));
            }
            if (um_user('auto_approve_act') == 'redirect_profile') {
                exit(wp_redirect(um_user_profile_url()));
            }
        }
        if ($status != 'approved') {
            if (um_user($status . '_action') == 'redirect_url' && um_user($status . '_url') != '') {
                exit(wp_redirect(um_user($status . '_url')));
            }
            if (um_user($status . '_action') == 'show_message' && um_user($status . '_message') != '') {
                $url = $ultimatemember->permalinks->get_current_url();
                $url = add_query_arg('message', esc_attr($status), $url);
                $url = add_query_arg('uid', esc_attr(um_user('ID')), $url);
                exit(wp_redirect($url));
            }
        }
    }
}
Beispiel #24
0
function um_admin_do_action__duplicate_form($action)
{
    global $ultimatemember;
    if (!is_admin() || !current_user_can('manage_options')) {
        die;
    }
    if (!isset($_REQUEST['post_id']) || !is_numeric($_REQUEST['post_id'])) {
        die;
    }
    $post_id = $_REQUEST['post_id'];
    $n = array('post_type' => 'um_form', 'post_title' => sprintf(__('Duplicate of %s', 'ultimatemember'), get_the_title($post_id)), 'post_status' => 'publish', 'post_author' => um_user('ID'));
    $n_id = wp_insert_post($n);
    $n_fields = get_post_custom($post_id);
    foreach ($n_fields as $key => $value) {
        if ($key == '_um_custom_fields') {
            $the_value = unserialize($value[0]);
        } else {
            $the_value = $value[0];
        }
        update_post_meta($n_id, $key, $the_value);
    }
    delete_post_meta($n_id, '_um_core');
    $url = admin_url('edit.php?post_type=um_form');
    $url = add_query_arg('update', 'form_duplicated', $url);
    exit(wp_redirect($url));
}
Beispiel #25
0
    function edit_field($key, $data, $rule = false)
    {
        global $ultimatemember;
        $output = null;
        // get whole field data
        if (isset($data) && is_array($data)) {
            $data = $this->get_field($key);
            extract($data);
        }
        if (!isset($data['type'])) {
            return;
        }
        if (isset($data['in_group']) && $data['in_group'] != '' && $rule != 'group') {
            return;
        }
        if ($visibility == 'view') {
            return;
        }
        if (!um_can_view_field($data)) {
            return;
        }
        if (!um_can_edit_field($data)) {
            return;
        }
        // fields that need to be disabled in edit mode (profile)
        if (in_array($key, array('user_email', 'username', 'user_login', 'user_password')) && $this->editing == true && $this->set_mode == 'profile') {
            return;
        }
        // forbidden in edit mode?
        if (isset($data['edit_forbidden'])) {
            return;
        }
        // required option
        if (isset($data['required_opt'])) {
            $opt = $data['required_opt'];
            if (um_get_option($opt[0]) != $opt[1]) {
                return;
            }
        }
        // required user permission
        if (isset($data['required_perm'])) {
            if (!um_user($data['required_perm'])) {
                return;
            }
        }
        // do not show passwords
        if (isset($ultimatemember->user->preview) && $ultimatemember->user->preview) {
            if ($data['type'] == 'password') {
                return;
            }
        }
        /* Begin by field type */
        switch ($type) {
            /* Default: Integration */
            default:
                $mode = isset($this->set_mode) ? $this->set_mode : 'no_mode';
                $output .= apply_filters("um_edit_field_{$mode}_{$type}", $output, $data);
                break;
                /* Other fields */
            /* Other fields */
            case 'googlemap':
            case 'youtube_video':
            case 'vimeo_video':
            case 'soundcloud_track':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                if (isset($icon) && $icon && isset($this->field_icons) && $this->field_icons == 'field') {
                    $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                }
                $output .= '<input ' . $disabled . ' class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . htmlspecialchars($this->field_value($key, $default, $data)) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '" />
							
						</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Text */
            /* Text */
            case 'text':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                if (isset($icon) && $icon && isset($this->field_icons) && $this->field_icons == 'field') {
                    $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                }
                $output .= '<input ' . $disabled . ' class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . htmlspecialchars($this->field_value($key, $default, $data)) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '" />
							
						</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Password */
            /* Password */
            case 'password':
                $original_key = $key;
                if ($key == 'single_user_password') {
                    $key = $original_key;
                    $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                    if (isset($data['label'])) {
                        $output .= $this->field_label($label, $key, $data);
                    }
                    $output .= '<div class="um-field-area">';
                    if (isset($icon) && $icon && $this->field_icons == 'field') {
                        $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                    }
                    $output .= '<input class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '" />
								
							</div>';
                    if ($this->is_error($key)) {
                        $output .= $this->field_error($this->show_error($key));
                    }
                    $output .= '</div>';
                } else {
                    if ($this->set_mode == 'account' && um_is_core_page('account')) {
                        $key = 'current_' . $original_key;
                        $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                        if (isset($data['label'])) {
                            $output .= $this->field_label(__('Current Password', 'ultimatemember'), $key, $data);
                        }
                        $output .= '<div class="um-field-area">';
                        if (isset($icon) && $icon && $this->field_icons == 'field') {
                            $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                        }
                        $output .= '<input class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '" />
									
								</div>';
                        if ($this->is_error($key)) {
                            $output .= $this->field_error($this->show_error($key));
                        }
                        $output .= '</div>';
                    }
                    $key = $original_key;
                    $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                    if ($this->set_mode == 'account' && um_is_core_page('account') || $this->set_mode == 'password' && um_is_core_page('password-reset')) {
                        $output .= $this->field_label(__('New Password', 'ultimatemember'), $key, $data);
                    } else {
                        if (isset($data['label'])) {
                            $output .= $this->field_label($label, $key, $data);
                        }
                    }
                    $output .= '<div class="um-field-area">';
                    if (isset($icon) && $icon && $this->field_icons == 'field') {
                        $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                    }
                    $output .= '<input class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '" />
							
						</div>';
                    if ($this->is_error($key)) {
                        $output .= $this->field_error($this->show_error($key));
                    }
                    $output .= '</div>';
                    if ($this->set_mode != 'login' && isset($data['force_confirm_pass']) && $data['force_confirm_pass'] == 1) {
                        $key = 'confirm_' . $original_key;
                        $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                        if (isset($data['label'])) {
                            $output .= $this->field_label(sprintf(__('Confirm %s', 'ultimatemember'), $data['label']), $key, $data);
                        }
                        $output .= '<div class="um-field-area">';
                        if (isset($icon) && $icon && $this->field_icons == 'field') {
                            $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                        }
                        $output .= '<input class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '" />
									
								</div>';
                        if ($this->is_error($key)) {
                            $output .= $this->field_error($this->show_error($key));
                        }
                        $output .= '</div>';
                    }
                }
                break;
                /* URL */
            /* URL */
            case 'url':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                if (isset($icon) && $icon && isset($this->field_icons) && $this->field_icons == 'field') {
                    $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                }
                $output .= '<input class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '" />
							
						</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Date */
            /* Date */
            case 'date':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                if (isset($icon) && $icon && isset($this->field_icons) && $this->field_icons == 'field') {
                    $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                }
                $output .= '<input class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '"    data-range="' . $range . '" data-years="' . $years . '" data-years_x="' . $years_x . '" data-disabled_weekdays="' . $disabled_weekdays . '" data-date_min="' . $date_min . '" data-date_max="' . $date_max . '" data-format="' . $js_format . '" data-value="' . $this->field_value($key, $default, $data) . '" />
							
						</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Time */
            /* Time */
            case 'time':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                if (isset($icon) && $icon && $this->field_icons == 'field') {
                    $output .= '<div class="um-field-icon"><i class="' . $icon . '"></i></div>';
                }
                $output .= '<input class="' . $this->get_class($key, $data) . '" type="' . $input . '" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" placeholder="' . $placeholder . '" data-validate="' . $validate . '" data-key="' . $key . '"  data-format="' . $js_format . '" data-intervals="' . $intervals . '" data-value="' . $this->field_value($key, $default, $data) . '" />
							
						</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Row */
            /* Row */
            case 'row':
                $output .= '';
                break;
                /* Textarea */
            /* Textarea */
            case 'textarea':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                $output .= '<textarea style="height: ' . $height . ';" class="' . $this->get_class($key, $data) . '" name="' . $key . '" id="' . $key . '" placeholder="' . $placeholder . '">' . $this->field_value($key, $default, $data) . '</textarea>
							
						</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Rating */
            /* Rating */
            case 'rating':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                $output .= '<div class="um-rating um-raty" id="' . $key . '" data-key="' . $key . '" data-number="' . $data['number'] . '" data-score="' . $this->field_value($key, $default, $data) . '"></div>';
                $output .= '</div>';
                $output .= '</div>';
                break;
                /* Gap/Space */
            /* Gap/Space */
            case 'spacing':
                $output .= '<div class="um-field um-field-spacing' . $classes . '"' . $conditional . ' style="height: ' . $spacing . '"></div>';
                break;
                /* A line divider */
            /* A line divider */
            case 'divider':
                $output .= '<div class="um-field um-field-divider' . $classes . '"' . $conditional . ' style="border-bottom: ' . $borderwidth . 'px ' . $borderstyle . ' ' . $bordercolor . '">';
                if ($divider_text) {
                    $output .= '<div class="um-field-divider-text"><span>' . $divider_text . '</span></div>';
                }
                $output .= '</div>';
                break;
                /* Single Image Upload */
            /* Single Image Upload */
            case 'image':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (in_array($key, array('profile_photo', 'cover_photo'))) {
                    $field_value = '';
                } else {
                    $field_value = $this->field_value($key, $default, $data);
                }
                $output .= '<input type="hidden" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $field_value . '" />';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $modal_label = isset($data['label']) ? $data['label'] : __('Upload Photo', 'ultimatemember');
                $output .= '<div class="um-field-area" style="text-align: center">';
                if ($this->field_value($key, $default, $data)) {
                    if (!in_array($key, array('profile_photo', 'cover_photo'))) {
                        if (isset($this->set_mode) && $this->set_mode == 'register') {
                            $imgValue = $this->field_value($key, $default, $data);
                        } else {
                            $imgValue = um_user_uploads_uri() . $this->field_value($key, $default, $data);
                        }
                        $img = '<img src="' . $imgValue . '" alt="" />';
                    } else {
                        $img = '';
                    }
                    $output .= '<div class="um-single-image-preview show ' . $crop_class . '" data-crop="' . $crop_data . '" data-key="' . $key . '">
								<a href="#" class="cancel"><i class="um-icon-close"></i></a>' . $img . '
							</div><a href="#" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . __('Change photo', 'ultimatemember') . '</a>';
                } else {
                    $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-key="' . $key . '">
								<a href="#" class="cancel"><i class="um-icon-close"></i></a>
								<img src="" alt="" />
							</div><a href="#" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . $button_text . '</a>';
                }
                $output .= '</div>';
                /* modal hidden */
                $output .= '<div class="um-modal-hidden-content">';
                $output .= '<div class="um-modal-header"> ' . $modal_label . '</div>';
                $output .= '<div class="um-modal-body">';
                if (isset($this->set_id)) {
                    $set_id = $this->set_id;
                    $set_mode = $this->set_mode;
                } else {
                    $set_id = 0;
                    $set_mode = '';
                }
                $output .= '<div class="um-single-image-preview ' . $crop_class . '" data-crop="' . $crop_data . '" data-ratio="' . $ratio . '" data-min_width="' . $min_width . '" data-min_height="' . $min_height . '" data-coord=""><a href="#" class="cancel"><i class="um-icon-close"></i></a><img src="" alt="" /></div>';
                $output .= '<div class="um-single-image-upload" data-icon="' . $icon . '" data-set_id="' . $set_id . '" data-set_mode="' . $set_mode . '" data-type="' . $type . '" data-key="' . $key . '" data-max_size="' . $max_size . '" data-max_size_error="' . $max_size_error . '" data-min_size_error="' . $min_size_error . '" data-extension_error="' . $extension_error . '"  data-allowed_types="' . $allowed_types . '" data-upload_text="' . $upload_text . '" data-max_files_error="' . $max_files_error . '" data-upload_help_text="' . $upload_help_text . '">' . $button_text . '</div>';
                $output .= '<div class="um-modal-footer">
									<div class="um-modal-right">
										<a href="#" class="um-modal-btn um-finish-upload image disabled" data-key="' . $key . '" data-change="' . __('Change photo', 'ultimatemember') . '" data-processing="' . __('Processing...', 'ultimatemember') . '"> ' . __('Apply', 'ultimatemember') . '</a>
										<a href="#" class="um-modal-btn alt" data-action="um_remove_modal"> ' . __('Cancel', 'ultimatemember') . '</a>
									</div>
									<div class="um-clear"></div>
								</div>';
                $output .= '</div>';
                $output .= '</div>';
                /* end */
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Single File Upload */
            /* Single File Upload */
            case 'file':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                $output .= '<input type="hidden" name="' . $key . $ultimatemember->form->form_suffix . '" id="' . $key . $ultimatemember->form->form_suffix . '" value="' . $this->field_value($key, $default, $data) . '" />';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $modal_label = isset($data['label']) ? $data['label'] : __('Upload Photo', 'ultimatemember');
                $output .= '<div class="um-field-area" style="text-align: center">';
                if ($this->field_value($key, $default, $data)) {
                    $extension = pathinfo($this->field_value($key, $default, $data), PATHINFO_EXTENSION);
                    $output .= '<div class="um-single-file-preview show" data-key="' . $key . '">
										<a href="#" class="cancel"><i class="um-icon-close"></i></a>
										<div class="um-single-fileinfo">
											<a href="' . um_user_uploads_uri() . $this->field_value($key, $default, $data) . '" target="_blank">
												<span class="icon" style="background:' . $ultimatemember->files->get_fonticon_bg_by_ext($extension) . '"><i class="' . $ultimatemember->files->get_fonticon_by_ext($extension) . '"></i></span>
												<span class="filename">' . $this->field_value($key, $default, $data) . '</span>
											</a>
										</div>
							</div><a href="#" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . __('Change file', 'ultimatemember') . '</a>';
                } else {
                    $output .= '<div class="um-single-file-preview" data-key="' . $key . '">
							</div><a href="#" data-modal="um_upload_single" data-modal-size="' . $modal_size . '" data-modal-copy="1" class="um-button um-btn-auto-width">' . $button_text . '</a>';
                }
                $output .= '</div>';
                /* modal hidden */
                $output .= '<div class="um-modal-hidden-content">';
                $output .= '<div class="um-modal-header"> ' . $modal_label . '</div>';
                $output .= '<div class="um-modal-body">';
                if (isset($this->set_id)) {
                    $set_id = $this->set_id;
                    $set_mode = $this->set_mode;
                } else {
                    $set_id = 0;
                    $set_mode = '';
                }
                $output .= '<div class="um-single-file-preview">
										<a href="#" class="cancel"><i class="um-icon-close"></i></a>
										<div class="um-single-fileinfo">
											<a href="" target="_blank">
												<span class="icon"><i></i></span>
												<span class="filename"></span>
											</a>
										</div>
								</div>';
                $output .= '<div class="um-single-file-upload" data-icon="' . $icon . '" data-set_id="' . $set_id . '" data-set_mode="' . $set_mode . '" data-type="' . $type . '" data-key="' . $key . '" data-max_size="' . $max_size . '" data-max_size_error="' . $max_size_error . '" data-min_size_error="' . $min_size_error . '" data-extension_error="' . $extension_error . '"  data-allowed_types="' . $allowed_types . '" data-upload_text="' . $upload_text . '" data-max_files_error="' . $max_files_error . '" data-upload_help_text="' . $upload_help_text . '">' . $button_text . '</div>';
                $output .= '<div class="um-modal-footer">
									<div class="um-modal-right">
										<a href="#" class="um-modal-btn um-finish-upload file disabled" data-key="' . $key . '" data-change="' . __('Change file') . '" data-processing="' . __('Processing...', 'ultimatemember') . '"> ' . __('Save', 'ultimatemember') . '</a>
										<a href="#" class="um-modal-btn alt" data-action="um_remove_modal"> ' . __('Cancel', 'ultimatemember') . '</a>
									</div>
									<div class="um-clear"></div>
								</div>';
                $output .= '</div>';
                $output .= '</div>';
                /* end */
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Select dropdown */
            /* Select dropdown */
            case 'select':
                $form_key = str_replace('role_select', 'role', $key);
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['allowclear']) && $data['allowclear'] == 0) {
                    $class = 'um-s2';
                } else {
                    $class = 'um-s1';
                }
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                $output .= '<select name="' . $form_key . '" id="' . $form_key . '" data-validate="' . $validate . '" data-key="' . $key . '" class="' . $this->get_class($key, $data, $class) . '" style="width: 100%" data-placeholder="' . $placeholder . '">';
                if (isset($options) && $options == 'builtin') {
                    $options = $ultimatemember->builtin->get($filter);
                }
                if (!isset($options)) {
                    $options = $ultimatemember->builtin->get('countries');
                }
                // role field
                if ($form_key == 'role') {
                    global $wpdb;
                    foreach ($options as $key => $val) {
                        $val = (string) $val;
                        $val = trim($val);
                        $post_id = $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE post_status = 'publish' AND post_type = 'um_role' AND post_title = '{$val}'");
                        $_role = get_post($post_id);
                        $new_roles[$_role->post_name] = $_role->post_title;
                        wp_reset_postdata();
                    }
                    $options = $new_roles;
                }
                // add an empty option!
                $output .= '<option value=""></option>';
                // add options
                foreach ($options as $k => $v) {
                    $v = rtrim($v);
                    if (!is_numeric($k) && in_array($form_key, array('role'))) {
                        $option_value = $k;
                    } else {
                        $option_value = $v;
                    }
                    if (isset($options_pair)) {
                        $option_value = $k;
                    }
                    $output .= '<option value="' . $option_value . '" ';
                    if ($this->is_selected($form_key, $option_value, $data)) {
                        $output .= 'selected';
                    }
                    $output .= '>' . $v . '</option>';
                }
                $output .= '</select>';
                $output .= '</div>';
                if ($this->is_error($form_key)) {
                    $output .= $this->field_error($this->show_error($form_key));
                }
                $output .= '</div>';
                break;
                /* Multi-Select dropdown */
            /* Multi-Select dropdown */
            case 'multiselect':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['allowclear']) && $data['allowclear'] == 0) {
                    $class = 'um-s2';
                } else {
                    $class = 'um-s1';
                }
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                $output .= '<select multiple="multiple" name="' . $key . '[]" id="' . $key . '" data-validate="' . $validate . '" data-key="' . $key . '" class="' . $this->get_class($key, $data, $class) . '" style="width: 100%" data-placeholder="' . $placeholder . '">';
                if (isset($options) && $options == 'builtin') {
                    $options = $ultimatemember->builtin->get($filter);
                }
                if (!isset($options)) {
                    $options = $ultimatemember->builtin->get('countries');
                }
                // add an empty option!
                $output .= '<option value=""></option>';
                // add options
                foreach ($options as $k => $v) {
                    $v = rtrim($v);
                    $output .= '<option value="' . $v . '" ';
                    if ($this->is_selected($key, $v, $data)) {
                        $output .= 'selected';
                    }
                    $output .= '>' . $v . '</option>';
                }
                $output .= '</select>';
                $output .= '</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* Radio */
            /* Radio */
            case 'radio':
                $form_key = str_replace('role_radio', 'role', $key);
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                // role field
                if ($form_key == 'role') {
                    global $wpdb;
                    foreach ($options as $key => $val) {
                        $val = (string) $val;
                        $val = trim($val);
                        $post_id = $wpdb->get_var("SELECT ID FROM {$wpdb->posts} WHERE post_status = 'publish' AND post_type = 'um_role' AND post_title = '{$val}'");
                        $_role = get_post($post_id);
                        $new_roles[$_role->post_name] = $_role->post_title;
                        wp_reset_postdata();
                    }
                    $options = $new_roles;
                }
                // add options
                $i = 0;
                foreach ($options as $k => $v) {
                    $v = rtrim($v);
                    if (!is_numeric($k) && in_array($form_key, array('role'))) {
                        $option_value = $k;
                    } else {
                        $option_value = $v;
                    }
                    $i++;
                    if ($i % 2 == 0) {
                        $col_class = 'right';
                    } else {
                        $col_class = '';
                    }
                    if ($this->is_radio_checked($key, $option_value, $data)) {
                        $active = 'active';
                        $class = "um-icon-android-radio-button-on";
                    } else {
                        $active = '';
                        $class = "um-icon-android-radio-button-off";
                    }
                    $output .= '<label class="um-field-radio ' . $active . ' um-field-half ' . $col_class . '">';
                    $output .= '<input type="radio" name="' . $form_key . '" value="' . $option_value . '" ';
                    if ($this->is_radio_checked($key, $option_value, $data)) {
                        $output .= 'checked';
                    }
                    $output .= ' />';
                    $output .= '<span class="um-field-radio-state"><i class="' . $class . '"></i></span>';
                    $output .= '<span class="um-field-radio-option">' . $v . '</span>';
                    $output .= '</label>';
                    if ($i % 2 == 0) {
                        $output .= '<div class="um-clear"></div>';
                    }
                }
                $output .= '<div class="um-clear"></div>';
                $output .= '</div>';
                if ($this->is_error($form_key)) {
                    $output .= $this->field_error($this->show_error($form_key));
                }
                $output .= '</div>';
                break;
                /* Checkbox */
            /* Checkbox */
            case 'checkbox':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">';
                if (isset($data['label'])) {
                    $output .= $this->field_label($label, $key, $data);
                }
                $output .= '<div class="um-field-area">';
                // add options
                $i = 0;
                foreach ($options as $k => $v) {
                    $v = rtrim($v);
                    $i++;
                    if ($i % 2 == 0) {
                        $col_class = 'right';
                    } else {
                        $col_class = '';
                    }
                    if ($this->is_selected($key, $v, $data)) {
                        $active = 'active';
                        $class = "um-icon-android-checkbox-outline";
                    } else {
                        $active = '';
                        $class = "um-icon-android-checkbox-outline-blank";
                    }
                    $output .= '<label class="um-field-checkbox ' . $active . ' um-field-half ' . $col_class . '">';
                    $output .= '<input type="checkbox" name="' . $key . '[]" value="' . strip_tags($v) . '" ';
                    if ($this->is_selected($key, $v, $data)) {
                        $output .= 'checked';
                    }
                    $output .= ' />';
                    $output .= '<span class="um-field-checkbox-state"><i class="' . $class . '"></i></span>';
                    $output .= '<span class="um-field-checkbox-option">' . $v . '</span>';
                    $output .= '</label>';
                    if ($i % 2 == 0) {
                        $output .= '<div class="um-clear"></div>';
                    }
                }
                $output .= '<div class="um-clear"></div>';
                $output .= '</div>';
                if ($this->is_error($key)) {
                    $output .= $this->field_error($this->show_error($key));
                }
                $output .= '</div>';
                break;
                /* HTML */
            /* HTML */
            case 'block':
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">
								<div class="um-field-block">' . $content . '</div>
							</div>';
                break;
                /* Shortcode */
            /* Shortcode */
            case 'shortcode':
                $content = str_replace('{profile_id}', um_profile_id(), $content);
                $output .= '<div class="um-field' . $classes . '"' . $conditional . ' data-key="' . $key . '">
								<div class="um-field-shortcode">' . do_shortcode($content) . '</div>
							</div>';
                break;
                /* Unlimited Group */
            /* Unlimited Group */
            case 'group':
                $fields = $this->get_fields_in_group($key);
                if (!empty($fields)) {
                    $output .= '<div class="um-field-group" data-max_entries="' . $max_entries . '">
								<div class="um-field-group-head"><i class="um-icon-plus"></i>' . $label . '</div>';
                    $output .= '<div class="um-field-group-body"><a href="#" class="um-field-group-cancel"><i class="um-icon-close"></i></a>';
                    foreach ($fields as $subkey => $subdata) {
                        $output .= $this->edit_field($subkey, $subdata, 'group');
                    }
                    $output .= '</div>';
                    $output .= '</div>';
                }
                break;
        }
        // Custom filter for field output
        if (isset($this->set_mode)) {
            $output = apply_filters("um_{$key}_form_edit_field", $output, $this->set_mode);
        }
        return $output;
    }
function um_members_directory_display($args)
{
    global $ultimatemember;
    extract($args);
    if (isset($args['search']) && $args['search'] == 1 && isset($args['must_search']) && $args['must_search'] == 1 && !isset($_REQUEST['um_search'])) {
        return;
    }
    if (um_members('no_users')) {
        ?>
		
			<div class="um-members-none">
				<p><?php 
        echo $args['no_users'];
        ?>
</p>
			</div>
			
		<?php 
    }
    if (um_members('users_per_page')) {
        ?>
		
			<div class="um-members">
			
				<div class="um-gutter-sizer"></div>
				
				<?php 
        $i = 0;
        foreach (um_members('users_per_page') as $member) {
            $i++;
            um_fetch_user($member);
            ?>
			
				<div class="um-member <?php 
            echo um_user('account_status');
            ?>
 <?php 
            if ($cover_photos) {
                echo 'with-cover';
            }
            ?>
">
				
					<span class="um-member-status <?php 
            echo um_user('account_status');
            ?>
"><?php 
            echo um_user('account_status_name');
            ?>
</span>
					
					<?php 
            if ($cover_photos) {
                if ($ultimatemember->mobile->isTablet()) {
                    $cover_size = 600;
                } else {
                    $cover_size = 300;
                }
                ?>
					
					<div class="um-member-cover" data-ratio="<?php 
                echo um_get_option('profile_cover_ratio');
                ?>
">
						<div class="um-member-cover-e"><?php 
                echo um_user('cover_photo', $cover_size);
                ?>
</div>
					</div>
					
					<?php 
            }
            ?>
		
					<?php 
            if ($profile_photo) {
                $default_size = str_replace('px', '', um_get_option('profile_photosize'));
                $corner = um_get_option('profile_photocorner');
                ?>
					<div class="um-member-photo radius-<?php 
                echo $corner;
                ?>
"><a href="<?php 
                echo um_user_profile_url();
                ?>
" title="<?php 
                echo um_user('display_name');
                ?>
"><?php 
                echo get_avatar(um_user('ID'), $default_size);
                ?>
</a></div>
					<?php 
            }
            ?>
					
					<div class="um-member-card <?php 
            if (!$profile_photo) {
                echo 'no-photo';
            }
            ?>
">
						
						<?php 
            if ($show_name) {
                ?>
						<div class="um-member-name"><a href="<?php 
                echo um_user_profile_url();
                ?>
" title="<?php 
                echo um_user('display_name');
                ?>
"><?php 
                echo um_user('display_name', 'html');
                ?>
</a></div>
						<?php 
            }
            ?>
						
						<?php 
            do_action('um_members_just_after_name', um_user('ID'), $args);
            ?>
						
						<?php 
            do_action('um_members_after_user_name', um_user('ID'), $args);
            ?>
						
						<?php 
            if ($show_tagline && is_array($tagline_fields)) {
                foreach ($tagline_fields as $key) {
                    if ($key && um_filtered_value($key)) {
                        $value = um_filtered_value($key);
                        ?>
						
						<div class="um-member-tagline"><?php 
                        echo $value;
                        ?>
</div>
						
						<?php 
                    }
                }
            }
            ?>
						
						<?php 
            if ($show_userinfo) {
                ?>
						
						<div class="um-member-meta-main">
						
							<?php 
                if ($userinfo_animate) {
                    ?>
							<div class="um-member-more"><a href="#"><i class="um-faicon-angle-down"></i></a></div>
							<?php 
                }
                ?>
							
							<div class="um-member-meta <?php 
                if (!$userinfo_animate) {
                    echo 'no-animate';
                }
                ?>
">
							
								<?php 
                foreach ($reveal_fields as $key) {
                    if ($key && um_filtered_value($key)) {
                        $value = um_filtered_value($key);
                        ?>
								
								<div class="um-member-metaline um-member-metaline-<?php 
                        echo $key;
                        ?>
"><span><strong><?php 
                        echo $ultimatemember->fields->get_label($key);
                        ?>
:</strong> <?php 
                        echo $value;
                        ?>
</span></div>
								
								<?php 
                    }
                }
                ?>
								
								<?php 
                if ($show_social) {
                    ?>
								<div class="um-member-connect">
								
									<?php 
                    $ultimatemember->fields->show_social_urls();
                    ?>

								</div>
								<?php 
                }
                ?>
								
							</div>

							<div class="um-member-less"><a href="#"><i class="um-faicon-angle-up"></i></a></div>
						
						</div>
						
						<?php 
            }
            ?>
						
					</div>
					
				</div>
				
				<?php 
            um_reset_user_clean();
        }
        // end foreach
        um_reset_user();
        ?>
				
				<div class="um-clear"></div>
				
			</div>
			
		<?php 
    }
}
function um_user($data, $attrs = null)
{
    global $ultimatemember;
    switch ($data) {
        default:
            $value = um_profile($data);
            if ($ultimatemember->validation->is_serialized($value)) {
                $value = unserialize($value);
            }
            if ($data == 'role') {
                return strtolower($value);
            }
            return $value;
            break;
        case 'full_name':
            if (um_user('first_name') && um_user('last_name')) {
                $full_name = um_user('first_name') . ' ' . um_user('last_name');
            } else {
                $full_name = um_user('display_name');
            }
            $full_name = $ultimatemember->validation->safe_name_in_url($full_name);
            // update full_name changed
            if (um_profile($data) !== $full_name) {
                update_user_meta(um_user('ID'), 'full_name', $full_name);
            }
            return $full_name;
            break;
        case 'display_name':
            $op = um_get_option('display_name');
            $name = '';
            if ($op == 'default') {
                $name = um_profile('display_name');
            }
            if ($op == 'nickname') {
                $name = um_profile('nickname');
            }
            if ($op == 'full_name') {
                if (um_user('first_name') && um_user('last_name')) {
                    $name = um_user('first_name') . ' ' . um_user('last_name');
                } else {
                    $name = um_profile($data);
                }
                if (!$name) {
                    $name = um_user('user_login');
                }
            }
            if ($op == 'sur_name') {
                if (um_user('first_name') && um_user('last_name')) {
                    $name = um_user('last_name') . ' ' . um_user('first_name');
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'first_name') {
                if (um_user('first_name')) {
                    $name = um_user('first_name');
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'username') {
                $name = um_user('user_login');
            }
            if ($op == 'initial_name') {
                if (um_user('first_name') && um_user('last_name')) {
                    $initial = um_user('last_name');
                    $name = um_user('first_name') . ' ' . $initial[0];
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'initial_name_f') {
                if (um_user('first_name') && um_user('last_name')) {
                    $initial = um_user('first_name');
                    $name = $initial[0] . ' ' . um_user('last_name');
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'field' && um_get_option('display_name_field') != '') {
                $fields = array_filter(preg_split('/[,\\s]+/', um_get_option('display_name_field')));
                $name = '';
                foreach ($fields as $field) {
                    $name .= um_profile($field) . ' ';
                }
            }
            return apply_filters('um_user_display_name_filter', $name, um_user('ID'), $attrs == 'html' ? 1 : 0);
            break;
        case 'role_select':
        case 'role_radio':
            return $ultimatemember->user->get_role_name(um_user('role'));
            break;
        case 'submitted':
            $array = um_profile($data);
            if (empty($array)) {
                return '';
            }
            $array = unserialize($array);
            return $array;
            break;
        case 'password_reset_link':
            return $ultimatemember->password->reset_url();
            break;
        case 'account_activation_link':
            return $ultimatemember->permalinks->activate_url();
            break;
        case 'profile_photo':
            $has_profile_photo = false;
            if (um_profile('profile_photo')) {
                $avatar_uri = um_get_avatar_uri(um_profile('profile_photo'), $attrs);
                $has_profile_photo = true;
            } else {
                $avatar_uri = um_get_default_avatar_uri(um_user('ID'));
            }
            $avatar_uri = apply_filters('um_user_avatar_url_filter', $avatar_uri, um_user('ID'));
            if ($avatar_uri) {
                if (um_get_option('use_gravatars') && !um_user('synced_profile_photo') && !$has_profile_photo) {
                    $avatar_uri = um_get_domain_protocol() . 'gravatar.com/avatar/' . um_user('synced_gravatar_hashed_id');
                    $avatar_uri = add_query_arg('s', 400, $avatar_uri);
                    if (um_get_option('use_um_gravatar_default_image')) {
                        $avatar_uri = add_query_arg('d', um_get_default_avatar_uri(), $avatar_uri);
                    }
                }
            }
            return '<img src="' . $avatar_uri . '" class="func-um_user gravatar avatar avatar-' . $attrs . ' um-avatar" width="' . $attrs . '" height="' . $attrs . '" alt="" />';
            if (!$avatar_uri) {
                return '';
            }
            break;
        case 'cover_photo':
            if (um_profile('cover_photo')) {
                $cover_uri = um_get_cover_uri(um_profile('cover_photo'), $attrs);
            } else {
                $cover_uri = um_get_default_cover_uri();
            }
            if ($cover_uri) {
                return '<img src="' . $cover_uri . '" alt="" />';
            }
            if (!$cover_uri) {
                return '';
            }
            break;
    }
}
 /**
  * Fetches title from special fields, like other plugins with special queries.
  * Used before and has priority over custom fields.
  * Front end only.
  *
  * @since 2.5.2
  *
  * @return string $title Title from Special Field.
  */
 public function title_from_special_fields()
 {
     $title = '';
     if (false === $this->is_admin()) {
         if ($this->is_ultimate_member_user_page() && um_is_core_page('user') && um_get_requested_user()) {
             $title = um_user('display_name');
         }
     }
     return $title;
 }
function um_post_registration($user_id, $args)
{
    global $ultimatemember;
    extract($args);
    $status = um_user('status');
    do_action("um_post_registration_global_hook", $user_id, $args);
    do_action("um_post_registration_{$status}_hook", $user_id, $args);
    if (!is_admin()) {
        do_action("track_{$status}_user_registration");
        if ($status == 'approved') {
            $ultimatemember->user->auto_login($user_id);
            if (um_user('auto_approve_act') == 'redirect_url' && um_user('auto_approve_url') !== '') {
                exit(wp_redirect(um_user('auto_approve_url')));
            }
            if (um_user('auto_approve_act') == 'redirect_profile') {
                exit(wp_redirect(um_user_profile_url()));
            }
        }
        if ($status != 'approved') {
            if (um_user($status . '_action') == 'redirect_url' && um_user($status . '_url') != '') {
                exit(wp_redirect(um_user($status . '_url')));
            }
            if (um_user($status . '_action') == 'show_message' && um_user($status . '_message') != '') {
                $url = um_get_core_page('register');
                $url = add_query_arg('message', $status, $url);
                $url = add_query_arg('uid', um_user('ID'), $url);
                exit(wp_redirect($url));
            }
        }
    }
}
Beispiel #30
0
function um_user($data, $attrs = null)
{
    global $ultimatemember;
    switch ($data) {
        default:
            $value = um_profile($data);
            if ($ultimatemember->validation->is_serialized($value)) {
                $value = unserialize($value);
            }
            return $value;
            break;
        case 'full_name':
            if (!um_profile($data)) {
                if (um_user('first_name') && um_user('last_name')) {
                    $full_name = um_user('first_name') . '.' . um_user('last_name');
                } else {
                    $full_name = um_user('display_name');
                }
                $full_name = $ultimatemember->validation->safe_name_in_url($full_name);
                update_user_meta(um_user('ID'), 'full_name', $full_name);
                return $full_name;
            } else {
                return um_profile($data);
            }
            break;
        case 'display_name':
            $op = um_get_option('display_name');
            if ($op == 'full_name') {
                if (um_user('first_name') && um_user('last_name')) {
                    $name = um_user('first_name') . ' ' . um_user('last_name');
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'sur_name') {
                if (um_user('first_name') && um_user('last_name')) {
                    $name = um_user('last_name') . ', ' . um_user('first_name');
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'first_name') {
                if (um_user('first_name')) {
                    $name = um_user('first_name');
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'username') {
                $name = um_user('user_login');
            }
            if ($op == 'initial_name') {
                if (um_user('first_name') && um_user('last_name')) {
                    $initial = um_user('last_name');
                    $name = um_user('first_name') . ' ' . $initial[0];
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'initial_name_f') {
                if (um_user('first_name') && um_user('last_name')) {
                    $initial = um_user('first_name');
                    $name = $initial[0] . ' ' . um_user('last_name');
                } else {
                    $name = um_profile($data);
                }
            }
            if ($op == 'public_name') {
                $name = um_profile($data);
            }
            if ($op == 'field' && um_get_option('display_name_field') != '') {
                $fields = array_filter(preg_split('/[,\\s]+/', um_get_option('display_name_field')));
                $name = '';
                foreach ($fields as $field) {
                    $name .= um_profile($field) . ' ';
                }
            }
            return apply_filters('um_user_display_name_filter', $name, um_user('ID'), $attrs == 'html' ? 1 : 0);
            break;
        case 'role_select':
        case 'role_radio':
            return $ultimatemember->user->get_role_name(um_user('role'));
            break;
        case 'submitted':
            $array = um_profile($data);
            if (empty($array)) {
                return '';
            }
            $array = unserialize($array);
            return $array;
            break;
        case 'password_reset_link':
            return $ultimatemember->password->reset_url();
            break;
        case 'account_activation_link':
            return $ultimatemember->permalinks->activate_url();
            break;
        case 'profile_photo':
            if (um_profile('profile_photo')) {
                $avatar_uri = um_get_avatar_uri(um_profile('profile_photo'), $attrs);
            } else {
                $avatar_uri = um_get_default_avatar_uri();
            }
            $avatar_uri = apply_filters('um_user_avatar_url_filter', $avatar_uri, um_user('ID'));
            if ($avatar_uri) {
                return '<img src="' . $avatar_uri . '" class="gravatar avatar avatar-' . $attrs . ' um-avatar" width="' . $attrs . '" height="' . $attrs . '" alt="" />';
            }
            if (!$avatar_uri) {
                return '';
            }
            break;
        case 'cover_photo':
            if (um_profile('cover_photo')) {
                $cover_uri = um_get_cover_uri(um_profile('cover_photo'), $attrs);
            } else {
                $cover_uri = um_get_default_cover_uri();
            }
            if ($cover_uri) {
                return '<img src="' . $cover_uri . '" alt="" />';
            }
            if (!$cover_uri) {
                return '';
            }
            break;
    }
}