function password_reset() { global $ultimatemember; if (um_is_core_page('password-reset')) { $ultimatemember->fields->set_mode = 'password'; } }
function account() { global $ultimatemember; if (um_is_core_page('account') && !is_user_logged_in()) { um_redirect_home(); } if (um_is_core_page('account')) { $ultimatemember->fields->set_mode = 'account'; $ultimatemember->fields->editing = true; if (get_query_var('um_tab')) { $this->current_tab = get_query_var('um_tab'); } } }
function account() { global $ultimatemember; if (um_is_core_page('account') && !is_user_logged_in()) { exit(wp_redirect(add_query_arg('redirect_to', urlencode(um_get_core_page('account')), um_get_core_page('login')))); } if (um_is_core_page('account')) { $ultimatemember->fields->set_mode = 'account'; $ultimatemember->fields->editing = true; if (get_query_var('um_tab')) { $this->current_tab = get_query_var('um_tab'); } } }
function template_redirect() { global $post, $ultimatemember; do_action('um_access_homepage_per_role'); do_action('um_access_global_settings'); do_action('um_access_category_settings'); do_action('um_access_post_settings'); if ($this->redirect_handler && !$this->allow_access && !um_is_core_page('login')) { // login page add protected page automatically if (strstr($this->redirect_handler, um_get_core_page('login'))) { $curr = $ultimatemember->permalinks->get_current_url(); $this->redirect_handler = esc_url(add_query_arg('redirect_to', $curr, $this->redirect_handler)); } exit(wp_redirect($this->redirect_handler)); } }
function um_dynamic_user_profile_title($title, $id = '') { global $ultimatemember; if (is_admin()) { return $title; } if ($id == $ultimatemember->permalinks->core['user']) { if (um_is_core_page('user') && um_get_requested_user()) { $title = um_get_display_name(um_get_requested_user()); } else { if (um_is_core_page('user') && is_user_logged_in()) { $title = um_get_display_name(get_current_user_id()); } } } return strlen($title) !== strlen(utf8_decode($title)) ? $title : utf8_encode($title); }
function locate_user_profile() { global $post, $ultimatemember; if (um_queried_user() && um_is_core_page('user')) { if (um_get_option('permalink_base') == 'user_login') { $user_id = username_exists(um_queried_user()); // Try nice name if (!$user_id) { $slug = um_queried_user(); $slug = str_replace('.', '-', $slug); $the_user = get_user_by('slug', $slug); if (isset($the_user->ID)) { $user_id = $the_user->ID; } } } if (um_get_option('permalink_base') == 'user_id') { $user_id = $ultimatemember->user->user_exists_by_id(um_queried_user()); } if (um_get_option('permalink_base') == 'name') { $user_id = $ultimatemember->user->user_exists_by_name(um_queried_user()); } /** USER EXISTS SET USER AND CONTINUE **/ if ($user_id) { um_set_requested_user($user_id); } else { exit(wp_redirect(um_get_core_page('user'))); } } else { if (um_is_core_page('user')) { if (is_user_logged_in()) { // just redirect to their profile $query = $ultimatemember->permalinks->get_query_array(); $url = um_user_profile_url(); if ($query) { foreach ($query as $key => $val) { $url = add_query_arg($key, $val, $url); } } exit(wp_redirect($url)); } } } }
function body_class($classes) { global $ultimatemember; $array = $ultimatemember->permalinks->core; if (!$array) { return $classes; } foreach ($array as $slug => $info) { if (um_is_core_page($slug)) { $classes[] = 'um-page-' . $slug; } } if (is_user_logged_in()) { $classes[] = 'um-page-loggedin'; } else { $classes[] = 'um-page-loggedout'; } return $classes; }
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 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(); } } }
/** * 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 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_is_myprofile() { global $ultimatemember; if (get_current_user_id() && get_current_user_id() == um_get_requested_user()) { return true; } if (!um_get_requested_user() && um_is_core_page('user') && get_current_user_id()) { return true; } return false; }
function access_members() { if (um_get_option('members_page') == 0 && um_is_core_page('members')) { um_redirect_home(); } }
function um_profile_dynamic_meta_desc() { global $ultimatemember; if (um_is_core_page('user') && um_get_requested_user()) { um_fetch_user(um_get_requested_user()); $content = um_convert_tags(um_get_option('profile_desc')); $user_id = um_user('ID'); $url = um_user_profile_url(); if (um_profile('profile_photo')) { $avatar = um_user_uploads_uri() . um_profile('profile_photo'); } else { $avatar = um_get_default_avatar_uri(); } um_reset_user(); ?> <meta name="description" content="<?php echo $content; ?> "> <meta property="og:title" content="<?php echo um_get_display_name($user_id); ?> " /> <meta property="og:type" content="article" /> <meta property="og:image" content="<?php echo $avatar; ?> " /> <meta property="og:url" content="<?php echo $url; ?> " /> <meta property="og:description" content="<?php echo $content; ?> " /> <?php } }
function um_edit_profile_url() { global $ultimatemember; if (um_is_core_page('user')) { $url = $ultimatemember->permalinks->get_current_url(); } else { $url = um_user_profile_url(); } $url = remove_query_arg('profiletab', $url); $url = remove_query_arg('subnav', $url); $url = add_query_arg('profiletab', 'main', $url); $url = add_query_arg('um_action', 'edit', $url); return $url; }
function um_access_profile($user_id) { if (!um_is_myprofile() && um_is_core_page('user') && !current_user_can('edit_users')) { um_fetch_user($user_id); if (!in_array(um_user('account_status'), array('approved'))) { um_redirect_home(); } um_reset_user(); } }