From a714be2d5c2bf2ee56898662949ee403bc27a3ed Mon Sep 17 00:00:00 2001 From: nikitozzzzzzz Date: Tue, 3 Oct 2017 16:29:04 +0300 Subject: [PATCH] commit by denisbaranov: - fixed conditional logic in form; - fixed prohibition on editing a field (Form->field->Can user edit this field?); - fixed cleaning on XSS injection; - fixed addition "wp_unslash" and "esc_attr" in the "Admin_Forms" class method "render_form_row"; --- assets/css/um-responsive.css | 12 +- assets/js/um-conditional.js | 81 +- includes/admin/core/class-admin-forms.php | 11 +- includes/core/class-fields.php | 4545 +++++++++++---------- includes/core/um-actions-profile.php | 684 ++-- includes/core/um-filters-fields.php | 23 + includes/um-short-functions.php | 1436 +++---- 7 files changed, 3520 insertions(+), 3272 deletions(-) diff --git a/assets/css/um-responsive.css b/assets/css/um-responsive.css index a9cb4ffa..6c4450c3 100644 --- a/assets/css/um-responsive.css +++ b/assets/css/um-responsive.css @@ -187,9 +187,9 @@ div.uimob340 .um-header .um-meta-text { padding: 0 20px; } -div.uimob340 .um-header .um-meta {padding: 0 20px} -div.uimob340 .um-header .um-meta span:first-child {display: block} -div.uimob340 .um-header .um-meta span {display: none} +div.uimob340 .um-header .um-meta {padding: 0 10px; display: inline-block;} +/*div.uimob340 .um-header .um-meta span:first-child {display: block}*/ +/*div.uimob340 .um-header .um-meta span {display: none}*/ div.uimob340 .um-col-121, div.uimob340 .um-col-122, @@ -409,9 +409,9 @@ div.uimob500 .um-header .um-meta-text { padding: 0 20px; } -div.uimob500 .um-header .um-meta {padding: 0 20px} -div.uimob500 .um-header .um-meta span:first-child {display: block} -div.uimob500 .um-header .um-meta span {display: none} +div.uimob500 .um-header .um-meta {padding: 0 20px;display: block;} +/*div.uimob500 .um-header .um-meta span:first-child {display: block}*/ +/*div.uimob500 .um-header .um-meta span {display: none}*/ div.uimob500 .um-col-121, div.uimob500 .um-col-122, diff --git a/assets/js/um-conditional.js b/assets/js/um-conditional.js index def29263..900f70fb 100644 --- a/assets/js/um-conditional.js +++ b/assets/js/um-conditional.js @@ -191,6 +191,18 @@ jQuery(document).ready( function (){ } + function um_in_array(needle, haystack, strict){ + var found = false, key, strict = !!strict; + for (key in haystack) { + if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) { + found = true; + break; + } + } + + return found; + } + /** * Apply field conditions * @param object $dom @@ -204,67 +216,90 @@ jQuery(document).ready( function (){ var live_field_value = um_get_field_data($dom); + var $owners = {}; + var $owners_values = {}; + var $owner_conditions = {}; + jQuery.each(conditions, function (index, condition) { + if (typeof $owners_values[condition.owner] == 'undefined') { + $owners_values[condition.owner] = []; + $owner_conditions[condition.owner] = {} + } + $owners_values[condition.owner].push(condition.value); + $owner_conditions[condition.owner] = condition; + }); + + jQuery.each(conditions, function (index, condition) { + if (typeof $owners[condition.owner] == 'undefined') { + $owners[condition.owner] = {}; + } if (condition.operator == 'empty') { - if (!live_field_value || live_field_value == '') { - um_field_apply_action($dom, condition, true); + if (!live_field_value || live_field_value == '' && um_in_array(live_field_value, $owners_values[condition.owner])) { + $owners[condition.owner][index] = true; } else { - um_field_apply_action($dom, condition, false); + $owners[condition.owner][index] = false; } } if (condition.operator == 'not empty') { - if (live_field_value && live_field_value != '') { - um_field_apply_action($dom, condition, true); + if (live_field_value && live_field_value != '' && !um_in_array(live_field_value, $owners_values[condition.owner])) { + $owners[condition.owner][index] = true; } else { - um_field_apply_action($dom, condition, false); + $owners[condition.owner][index] = false; } } if (condition.operator == 'equals to') { - if (condition.value == live_field_value) { - um_field_apply_action($dom, condition, true); + + if (condition.value == live_field_value && um_in_array(live_field_value, $owners_values[condition.owner])) { + $owners[condition.owner][index] = true; } else { - um_field_apply_action($dom, condition, false); + $owners[condition.owner][index] = false; } } if (condition.operator == 'not equals') { - if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) != parseInt(condition.value) && live_field_value) { - um_field_apply_action($dom, condition, true); - } else if (!jQuery.isNumeric(condition.value) && condition.value != live_field_value) { - um_field_apply_action($dom, condition, true); + if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) != parseInt(condition.value) && live_field_value && !um_in_array(live_field_value, $owners_values[condition.owner])) { + $owners[condition.owner][index] = true; + } else if (condition.value != live_field_value && !um_in_array(live_field_value, $owners_values[condition.owner])) { + $owners[condition.owner][index] = true; } else { - um_field_apply_action($dom, condition, false); + $owners[condition.owner][index] = false; } } if (condition.operator == 'greater than') { if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) > parseInt(condition.value)) { - um_field_apply_action($dom, condition, true); + $owners[condition.owner][index] = true; } else { - um_field_apply_action($dom, condition, false); + $owners[condition.owner][index] = false; } } if (condition.operator == 'less than') { - if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) < parseInt(condition.value) && live_field_value) { - um_field_apply_action($dom, condition, true); + if (jQuery.isNumeric(condition.value) && parseInt(live_field_value) < parseInt(condition.value)) { + $owners[condition.owner][index] = true; } else { - um_field_apply_action($dom, condition, false); + $owners[condition.owner][index] = false; } } if (condition.operator == 'contains') { - if (live_field_value && live_field_value.indexOf(condition.value) >= 0) { - um_field_apply_action($dom, condition, true); + if (live_field_value && live_field_value.indexOf(condition.value) >= 0 && um_in_array(live_field_value, $owners_values[condition.owner])) { + $owners[condition.owner][index] = true; } else { - um_field_apply_action($dom, condition, false); + $owners[condition.owner][index] = false; } } }); // end foreach `conditions` - + jQuery.each($owners, function (index, field) { + if (um_in_array(true, field)) { + um_field_apply_action($dom, $owner_conditions[index], true); + } else { + um_field_apply_action($dom, $owner_conditions[index], false); + } + }); $dom.trigger('um_fields_change'); } diff --git a/includes/admin/core/class-admin-forms.php b/includes/admin/core/class-admin-forms.php index cc475ff7..5d74e8df 100644 --- a/includes/admin/core/class-admin-forms.php +++ b/includes/admin/core/class-admin-forms.php @@ -77,6 +77,15 @@ if ( ! class_exists( 'Admin_Forms' ) ) { if ( empty( $data['type'] ) ) return ''; + if ( !empty( $data['value'] ) && $data['type'] != 'email_template' ) { + $data['value'] = wp_unslash( $data['value'] ); + + /*for multi_text*/ + if ( !is_array( $data['value'] ) ) { + $data['value'] = esc_attr( $data['value'] ); + } + } + $conditional = ! empty( $data['conditional'] ) ? 'data-conditional="' . esc_attr( json_encode( $data['conditional'] ) ) . '"' : ''; $prefix_attr = ! empty( $this->form_data['prefix_id'] ) ? ' data-prefix="' . $this->form_data['prefix_id'] . '" ' : ''; @@ -805,7 +814,7 @@ if ( ! class_exists( 'Admin_Forms' ) ) { if ( ! empty( $values ) ) { foreach ( $values as $k=>$value ) { - + $value = esc_attr($value); $id_attr = ' id="' . $id . '-' . $k . '" '; $html .= "
  • diff --git a/includes/core/class-fields.php b/includes/core/class-fields.php index 492ed426..e892e38b 100644 --- a/includes/core/class-fields.php +++ b/includes/core/class-fields.php @@ -1,1732 +1,1792 @@ editing = false; - $this->viewing = false; - $this->timestamp = current_time('timestamp'); + function __construct() { - } + $this->editing = false; + $this->viewing = false; + $this->timestamp = current_time( 'timestamp' ); - /** - * Standard checkbox field - * @param integer $id - * @param string $title - */ - function checkbox( $id, $title ) { - ?> + } -
    -
    - + /** + * Standard checkbox field + * + * @param integer $id + * @param string $title + */ + function checkbox( $id, $title ) { + ?> + +
    +
    + +
    -
    - - builtin()->all_user_fields; - foreach( $fields as $field => $args ) { - if ( isset( $args['advanced'] ) && $args['advanced'] == 'social' ) { - $social[$field] = $args; - } - } - foreach( $social as $k => $arr ) { - if ( um_profile( $k ) ) { ?> - - - - '; - - $fields = UM()->builtin()->get_specific_fields( $field ); - - $output = null; - - foreach( $fields as $key => $data ) { - $output .= UM()->fields()->edit_field( $key, $data ); - } - - echo $output; - - echo '
    '; - } - - /** - * Get hidden field - * @param string $key - * @param string $value - * @return string - */ - function disabled_hidden_field( $key, $value ){ - - return ''; - } - - - /** - * Updates a field globally - * @param integer $id - * @param array $args - */ - function globally_update_field( $id, $args ){ - $fields = UM()->builtin()->saved_fields; - - $fields[$id] = $args; - - unset( $fields[ $id ]['in_row'] ); - unset( $fields[ $id ]['in_sub_row'] ); - unset( $fields[ $id ]['in_column'] ); - unset( $fields[ $id ]['in_group'] ); - unset( $fields[ $id ]['position'] ); - - update_option('um_fields', $fields ); - } - - - /** - * Updates a field in form only - * @param integer $id - * @param array $args - * @param integer $form_id - */ - function update_field($id, $args, $form_id){ - $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); - - if ( $args['type'] == 'row' ) { - if ( isset( $fields[$id] ) ){ - $old_args = $fields[$id]; - foreach( $old_args as $k => $v ) { - if (!in_array($k, array('sub_rows','cols')) ) { - unset($old_args[$k]); - } - } - $args = array_merge( $old_args, $args ); - } - } - - // custom fields support - if ( isset( UM()->builtin()->predefined_fields[$id] ) && isset( UM()->builtin()->predefined_fields[$id]['custom'] ) ) { - $args = array_merge( UM()->builtin()->predefined_fields[$id], $args); - } - - $fields[$id] = $args; - - // for group field only - if ( $args['type'] == 'group' ){ - $fields[$id]['in_group'] = ''; - } - - UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); - } - - - /** - * Deletes a field in form only - * @param integer $id - * @param integer $form_id - */ - function delete_field_from_form( $id, $form_id ) { - $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); - if ( isset( $fields[ $id ] ) ) { - unset( $fields[ $id ] ); - UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); - } - } - - - /** - * Deletes a field from custom fields - * @param integer $id - */ - function delete_field_from_db( $id ) { - $fields = UM()->builtin()->saved_fields; - if ( isset( $fields[$id] ) ){ - unset( $fields[$id] ); - update_option('um_fields', $fields ); - } - } - - /** - * Quickly adds a field from custom fields - * @param integer $global_id - * @param integer $form_id - * @param array $position - */ - function add_field_from_list( $global_id, $form_id, $position = array() ) { - $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); - $field_scope = UM()->builtin()->saved_fields; - - if ( !isset( $fields[ $global_id ] ) ) { - - $count = 1; - if ( isset( $fields ) && !empty( $fields ) ) $count = count( $fields ) + 1; - - $fields[ $global_id ] = $field_scope[ $global_id ]; - $fields[ $global_id ]['position'] = $count; - - // set position - if ( $position ) { - foreach( $position as $key => $val ) { - $fields[ $global_id ][ $key ] = $val; - } - } - - // add field to form - UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); - - } - } - - /** - * Quickly adds a field from pre-defined fields - * @param integer $global_id - * @param integer $form_id - * @param array $position - */ - function add_field_from_predefined( $global_id, $form_id, $position = array() ) { - $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); - $field_scope = UM()->builtin()->predefined_fields; - - if ( !isset( $fields[ $global_id ] ) ) { - - $count = 1; - if ( isset( $fields ) && !empty( $fields) ) $count = count( $fields ) + 1; - - $fields[ $global_id ] = $field_scope[ $global_id ]; - $fields[ $global_id ]['position'] = $count; - - // set position - if ( $position ) { - foreach( $position as $key => $val ) { - $fields[ $global_id ][ $key ] = $val; - } - } - - // add field to form - UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); - - // add field to db - //$this->globally_update_field( $global_id, $fields[$global_id] ); - - } - } - - /** - * Duplicates a frield by meta key - * @param integer $id - * @param integer $form_id - */ - function duplicate_field( $id, $form_id ) { - $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); - $all_fields = UM()->builtin()->saved_fields; - - $inc = count( $fields ) + 1; - - $duplicate = $fields[ $id ]; - - $new_metakey = $id . "_" . $inc; - $new_title = $fields[ $id ]['title'] . " #" . $inc; - $new_position = $inc; - - $duplicate['title'] = $new_title; - $duplicate['metakey'] = $new_metakey; - $duplicate['position'] = $new_position; - - $fields[ $new_metakey ] = $duplicate; - $all_fields[ $new_metakey ] = $duplicate; - - // not global attributes - unset( $all_fields[ $new_metakey ]['in_row'] ); - unset( $all_fields[ $new_metakey ]['in_sub_row'] ); - unset( $all_fields[ $new_metakey ]['in_column'] ); - unset( $all_fields[ $new_metakey ]['in_group'] ); - unset( $all_fields[ $new_metakey ]['position'] ); - - UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); - update_option('um_fields', $all_fields ); - - } - - /** - * Print field error - * - * @param string $text - * @param bool $force_show - * @return string - */ - function field_error( $text, $force_show = false ) { - if ( $force_show ) { - $output = '
    '.$text.'
    '; - return $output; - } - if ( isset( $this->set_id ) && UM()->form()->processing == $this->set_id ) { - $output = '
    '.$text.'
    '; - } else { - $output = ''; - } - - if ( ! UM()->form()->processing ) { - $output = '
    '.$text.'
    '; - } - return $output; - } - - /** - * Checks if field has a server-side error - * @param string $key - * @return boolean - */ - function is_error($key) { - return UM()->form()->has_error($key); - } - - /** - * Returns field error - * @param string $key - * @return string - */ - function show_error($key) { - return UM()->form()->errors[$key]; - } - - /** - * Display field label - * @param string $label - * @param string $key - * @param data $data - * @return string - */ - function field_label( $label, $key, $data ) { - $output = null; - $output .= '
    '; - - if ( isset($data['icon']) && $data['icon'] != '' && isset( $this->field_icons ) && $this->field_icons != 'off' && ( $this->field_icons == 'label' || $this->viewing == true ) ) { - $output .= '
    '; - } - - if ( $this->viewing == true ) { - $label = apply_filters("um_view_label_{$key}", $label ); - } else { - $label = apply_filters("um_edit_label_{$key}", $label ); - $label = apply_filters("um_edit_label_all_fields", $label, $data ); - } - - $output .= ''; - - if ( isset( $data['help'] ) && !empty( $data['help'] ) && $this->viewing == false && !strstr($key, 'confirm_user_pass') ) { - - if ( !UM()->mobile()->isMobile() ) { - if ( !isset( $this->disable_tooltips ) ) { - $output .= ''; - } - } - - if ( UM()->mobile()->isMobile() || isset( $this->disable_tooltips ) ) { - $output .= ''.__( $data['help'], UM_TEXTDOMAIN ). ''; - } - - } - - $output .= '
    '; - - return $output; - } - - - /** - * Output field classes - * @param string $key - * @param array $data - * @param string $add - * @return string - */ - function get_class($key, $data, $add = null) { - $classes = null; - - $classes .= 'um-form-field '; - - if ( $this->is_error($key) ) { - $classes .= 'um-error '; - } else { - $classes .= 'valid '; - } - - if ( !isset($data['required']) ) { - $classes .= 'not-required '; - } - - if ( $data['type'] == 'date' ) { - $classes .= 'um-datepicker '; - } - - if ( $data['type'] == 'time' ) { - $classes .= 'um-timepicker '; - } - if ( isset($data['icon']) && $data['icon'] && isset( $this->field_icons ) && $this->field_icons == 'field' ) { - $classes .= 'um-iconed '; - } + builtin()->all_user_fields; + foreach ($fields as $field => $args) { + if (isset( $args['advanced'] ) && $args['advanced'] == 'social') { + $social[$field] = $args; + } + } + foreach ($social as $k => $arr) { + if (um_profile( $k )) { ?> + + + + '; + + $fields = UM()->builtin()->get_specific_fields( $field ); + + $output = null; + + foreach ($fields as $key => $data) { + $output .= UM()->fields()->edit_field( $key, $data ); + } + + echo $output; + + echo ''; + } + + /** + * Get hidden field + * + * @param string $key + * @param string $value + * + * @return string + */ + function disabled_hidden_field( $key, $value ) { + + return ''; + } + + + /** + * Updates a field globally + * + * @param integer $id + * @param array $args + */ + function globally_update_field( $id, $args ) { + $fields = UM()->builtin()->saved_fields; + + $fields[$id] = $args; + + unset( $fields[$id]['in_row'] ); + unset( $fields[$id]['in_sub_row'] ); + unset( $fields[$id]['in_column'] ); + unset( $fields[$id]['in_group'] ); + unset( $fields[$id]['position'] ); + + update_option( 'um_fields', $fields ); + } + + + /** + * Updates a field in form only + * + * @param integer $id + * @param array $args + * @param integer $form_id + */ + function update_field( $id, $args, $form_id ) { + $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); + + if ($args['type'] == 'row') { + if (isset( $fields[$id] )) { + $old_args = $fields[$id]; + foreach ($old_args as $k => $v) { + if (!in_array( $k, array( 'sub_rows', 'cols' ) )) { + unset( $old_args[$k] ); + } + } + $args = array_merge( $old_args, $args ); + } + } + + // custom fields support + if (isset( UM()->builtin()->predefined_fields[$id] ) && isset( UM()->builtin()->predefined_fields[$id]['custom'] )) { + $args = array_merge( UM()->builtin()->predefined_fields[$id], $args ); + } + + $fields[$id] = $args; + + // for group field only + if ($args['type'] == 'group') { + $fields[$id]['in_group'] = ''; + } + + UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); + } + + + /** + * Deletes a field in form only + * + * @param integer $id + * @param integer $form_id + */ + function delete_field_from_form( $id, $form_id ) { + $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); + if (isset( $fields[$id] )) { + unset( $fields[$id] ); + UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); + } + } + + + /** + * Deletes a field from custom fields + * + * @param integer $id + */ + function delete_field_from_db( $id ) { + $fields = UM()->builtin()->saved_fields; + if (isset( $fields[$id] )) { + unset( $fields[$id] ); + update_option( 'um_fields', $fields ); + } + } + + /** + * Quickly adds a field from custom fields + * + * @param integer $global_id + * @param integer $form_id + * @param array $position + */ + function add_field_from_list( $global_id, $form_id, $position = array() ) { + $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); + $field_scope = UM()->builtin()->saved_fields; + + if (!isset( $fields[$global_id] )) { + + $count = 1; + if (isset( $fields ) && !empty( $fields )) $count = count( $fields ) + 1; + + $fields[$global_id] = $field_scope[$global_id]; + $fields[$global_id]['position'] = $count; + + // set position + if ($position) { + foreach ($position as $key => $val) { + $fields[$global_id][$key] = $val; + } + } + + // add field to form + UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); + + } + } + + /** + * Quickly adds a field from pre-defined fields + * + * @param integer $global_id + * @param integer $form_id + * @param array $position + */ + function add_field_from_predefined( $global_id, $form_id, $position = array() ) { + $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); + $field_scope = UM()->builtin()->predefined_fields; + + if (!isset( $fields[$global_id] )) { + + $count = 1; + if (isset( $fields ) && !empty( $fields )) $count = count( $fields ) + 1; + + $fields[$global_id] = $field_scope[$global_id]; + $fields[$global_id]['position'] = $count; + + // set position + if ($position) { + foreach ($position as $key => $val) { + $fields[$global_id][$key] = $val; + } + } + + // add field to form + UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); + + // add field to db + //$this->globally_update_field( $global_id, $fields[$global_id] ); + + } + } + + /** + * Duplicates a frield by meta key + * + * @param integer $id + * @param integer $form_id + */ + function duplicate_field( $id, $form_id ) { + $fields = UM()->query()->get_attr( 'custom_fields', $form_id ); + $all_fields = UM()->builtin()->saved_fields; + + $inc = count( $fields ) + 1; + + $duplicate = $fields[$id]; + + $new_metakey = $id . "_" . $inc; + $new_title = $fields[$id]['title'] . " #" . $inc; + $new_position = $inc; + + $duplicate['title'] = $new_title; + $duplicate['metakey'] = $new_metakey; + $duplicate['position'] = $new_position; + + $fields[$new_metakey] = $duplicate; + $all_fields[$new_metakey] = $duplicate; + + // not global attributes + unset( $all_fields[$new_metakey]['in_row'] ); + unset( $all_fields[$new_metakey]['in_sub_row'] ); + unset( $all_fields[$new_metakey]['in_column'] ); + unset( $all_fields[$new_metakey]['in_group'] ); + unset( $all_fields[$new_metakey]['position'] ); + + UM()->query()->update_attr( 'custom_fields', $form_id, $fields ); + update_option( 'um_fields', $all_fields ); + + } + + /** + * Print field error + * + * @param string $text + * @param bool $force_show + * + * @return string + */ + function field_error( $text, $force_show = false ) { + if ($force_show) { + $output = '
    ' . $text . '
    '; + + return $output; + } + if (isset( $this->set_id ) && UM()->form()->processing == $this->set_id) { + $output = '
    ' . $text . '
    '; + } else { + $output = ''; + } + + if (!UM()->form()->processing) { + $output = '
    ' . $text . '
    '; + } + + return $output; + } + + /** + * Checks if field has a server-side error + * + * @param string $key + * + * @return boolean + */ + function is_error( $key ) { + return UM()->form()->has_error( $key ); + } + + /** + * Returns field error + * + * @param string $key + * + * @return string + */ + function show_error( $key ) { + return UM()->form()->errors[$key]; + } + + /** + * Display field label + * + * @param string $label + * @param string $key + * @param data $data + * + * @return string + */ + function field_label( $label, $key, $data ) { + $output = null; + $output .= '
    '; + + if (isset( $data['icon'] ) && $data['icon'] != '' && isset( $this->field_icons ) && $this->field_icons != 'off' && ( $this->field_icons == 'label' || $this->viewing == true )) { + $output .= '
    '; + } + + if ($this->viewing == true) { + $label = apply_filters( "um_view_label_{$key}", $label ); + } else { + $label = apply_filters( "um_edit_label_{$key}", $label ); + $label = apply_filters( "um_edit_label_all_fields", $label, $data ); + } + + $output .= ''; + + if (isset( $data['help'] ) && !empty( $data['help'] ) && $this->viewing == false && !strstr( $key, 'confirm_user_pass' )) { + + if (!UM()->mobile()->isMobile()) { + if (!isset( $this->disable_tooltips )) { + $output .= ''; + } + } + + if (UM()->mobile()->isMobile() || isset( $this->disable_tooltips )) { + $output .= '' . __( $data['help'], UM_TEXTDOMAIN ) . ''; + } + + } + + $output .= '
    '; + + return $output; + } + + + /** + * Output field classes + * + * @param string $key + * @param array $data + * @param string $add + * + * @return string + */ + function get_class( $key, $data, $add = null ) { + $classes = null; + + $classes .= 'um-form-field '; + + if ($this->is_error( $key )) { + $classes .= 'um-error '; + } else { + $classes .= 'valid '; + } + + if (!isset( $data['required'] )) { + $classes .= 'not-required '; + } + + if ($data['type'] == 'date') { + $classes .= 'um-datepicker '; + } + + if ($data['type'] == 'time') { + $classes .= 'um-timepicker '; + } + + if (isset( $data['icon'] ) && $data['icon'] && isset( $this->field_icons ) && $this->field_icons == 'field') { + $classes .= 'um-iconed '; + } - if ($add) { - $classes .= $add . ' '; - } + if ($add) { + $classes .= $add . ' '; + } - return $classes; - } + return $classes; + } - /** - * Gets field value - * @param string $key - * @param boolean $default - * @param array $data - * @return mixed - */ - function field_value( $key, $default = false, $data = null ) { - if ( isset( $_SESSION ) && isset( $_SESSION['um_social_profile'][ $key ] ) && isset( $this->set_mode ) && $this->set_mode == 'register' ) - return $_SESSION['um_social_profile'][ $key ]; + /** + * Gets field value + * + * @param string $key + * @param boolean $default + * @param array $data + * + * @return mixed + */ + function field_value( $key, $default = false, $data = null ) { + if (isset( $_SESSION ) && isset( $_SESSION['um_social_profile'][$key] ) && isset( $this->set_mode ) && $this->set_mode == 'register') + return $_SESSION['um_social_profile'][$key]; - $type = ( isset( $data['type'] ) ) ? $data['type'] : ''; + $type = ( isset( $data['type'] ) ) ? $data['type'] : ''; - // preview in backend - if ( isset( UM()->user()->preview ) && UM()->user()->preview ) { - $submitted = um_user('submitted'); - if ( isset( $submitted[ $key ] ) && ! empty( $submitted[ $key ] ) ) { - return $submitted[ $key ]; - } else { - return 'Undefined'; - } - } + // preview in backend + if (isset( UM()->user()->preview ) && UM()->user()->preview) { + $submitted = um_user( 'submitted' ); + if (isset( $submitted[$key] ) && !empty( $submitted[$key] )) { + return $submitted[$key]; + } else { + return 'Undefined'; + } + } - // normal state - if ( isset( UM()->form()->post_form[ $key ] ) ) { + // normal state + if (isset( UM()->form()->post_form[$key] )) { - if ( strstr( $key, 'user_pass' ) && $this->set_mode != 'password' ) return ''; + if (strstr( $key, 'user_pass' ) && $this->set_mode != 'password') return ''; - return stripslashes_deep( UM()->form()->post_form[ $key ] ); + return stripslashes_deep( UM()->form()->post_form[$key] ); - } else if ( um_user( $key ) && $this->editing == true ) { + } else if (um_user( $key ) && $this->editing == true) { - if ( strstr( $key, 'user_pass' ) ) return ''; + if (strstr( $key, 'user_pass' )) return ''; - $value = um_user( $key ); - $value = apply_filters( "um_edit_{$key}_field_value", $value, $key ); - $value = apply_filters( "um_edit_{$type}_field_value", $value, $key ); + $value = um_user( $key ); + $value = apply_filters( "um_edit_{$key}_field_value", $value, $key ); + $value = apply_filters( "um_edit_{$type}_field_value", $value, $key ); - return $value; + return $value; - } else if ( ( um_user( $key ) || isset( $data['show_anyway'] ) ) && $this->viewing == true ) { + } else if (( um_user( $key ) || isset( $data['show_anyway'] ) ) && $this->viewing == true) { - $value = um_filtered_value( $key, $data ); - return $value; + $value = um_filtered_value( $key, $data ); - } else if ( $default ) { + return $value; - $default = apply_filters( "um_field_default_value", $default, $data, $type ); - $default = apply_filters( "um_field_{$key}_default_value", $default, $data ); - $default = apply_filters( "um_field_{$type}_default_value", $default, $data ); + } else if ($default) { - return $default; + $default = apply_filters( "um_field_default_value", $default, $data, $type ); + $default = apply_filters( "um_field_{$key}_default_value", $default, $data ); + $default = apply_filters( "um_field_{$type}_default_value", $default, $data ); - } else if ( $this->editing == true ) { + return $default; - return apply_filters( "um_edit_{$key}_field_value", '', $key); + } else if ($this->editing == true) { - } + return apply_filters( "um_edit_{$key}_field_value", '', $key ); - return ''; - } + } + return ''; + } - /** - * Checks if an option is selected - * @param string $key - * @param string $value - * @param array $data - * @return boolean - */ - function is_selected($key, $value, $data){ - $key = apply_filters('um_is_selected_filter_key', $key ); - if ( isset( UM()->form()->post_form[ $key ] ) && is_array( UM()->form()->post_form[ $key ] ) ) { + /** + * Checks if an option is selected + * + * @param string $key + * @param string $value + * @param array $data + * + * @return boolean + */ + function is_selected( $key, $value, $data ) { + $key = apply_filters( 'um_is_selected_filter_key', $key ); - if ( in_array( $value, UM()->form()->post_form[ $key ] ) ){ - return true; - } + if (isset( UM()->form()->post_form[$key] ) && is_array( UM()->form()->post_form[$key] )) { - if ( in_array( html_entity_decode( $value ), UM()->form()->post_form[ $key ] ) ){ - return true; - } + if (in_array( $value, UM()->form()->post_form[$key] )) { + return true; + } - } else { + if (in_array( html_entity_decode( $value ), UM()->form()->post_form[$key] )) { + return true; + } - if ( ! isset( UM()->form()->post_form[$key] ) ) { + } else { - $field_value = um_user( $key ); + if (!isset( UM()->form()->post_form[$key] )) { - if ( $key == 'role' ) { + $field_value = um_user( $key ); - $role_keys = get_option( 'um_roles' ); + if ($key == 'role') { - if ( ! empty( $role_keys ) ) { - if ( in_array( $field_value, $role_keys ) ) { - $field_value = 'um_' . $field_value; - } - } + $role_keys = get_option( 'um_roles' ); - } + if (!empty( $role_keys )) { + if (in_array( $field_value, $role_keys )) { + $field_value = 'um_' . $field_value; + } + } - $field_value = apply_filters('um_is_selected_filter_value', $field_value, $key ); - $data = apply_filters('um_is_selected_filter_data', $data, $key, $field_value ); + } - if ( $field_value && $this->editing == true && is_array( $field_value ) && ( in_array( $value, $field_value ) || in_array( html_entity_decode( $value ), $field_value ) ) ) { - return true; - } + $field_value = apply_filters( 'um_is_selected_filter_value', $field_value, $key ); + $data = apply_filters( 'um_is_selected_filter_data', $data, $key, $field_value ); - if ( $field_value && $this->editing == true && !is_array( $field_value ) && $field_value == $value ) { - return true; - } + if ($field_value && $this->editing == true && is_array( $field_value ) && ( in_array( $value, $field_value ) || in_array( html_entity_decode( $value ), $field_value ) )) { + return true; + } - if ( $field_value && $this->editing == true && !is_array( $field_value ) && html_entity_decode( $field_value ) == html_entity_decode( $value ) ) { - return true; - } + if ($field_value && $this->editing == true && !is_array( $field_value ) && $field_value == $value) { + return true; + } - if ( strstr( $data['default'], ', ') ) { - $data['default'] = explode(', ', $data['default']); - } + if ($field_value && $this->editing == true && !is_array( $field_value ) && html_entity_decode( $field_value ) == html_entity_decode( $value )) { + return true; + } - if ( isset( $data['default'] ) && !is_array( $data['default'] ) && $data['default'] == $value ) { - return true; - } + if (strstr( $data['default'], ', ' )) { + $data['default'] = explode( ', ', $data['default'] ); + } - if ( isset( $data['default'] ) && is_array( $data['default'] ) && in_array( $value, $data['default'] ) ){ - return true; - } + if (isset( $data['default'] ) && !is_array( $data['default'] ) && $data['default'] == $value) { + return true; + } - } else { + if (isset( $data['default'] ) && is_array( $data['default'] ) && in_array( $value, $data['default'] )) { + return true; + } - if ( $value == UM()->form()->post_form[ $key ] ) { - return true; - } + } else { + if ($value == UM()->form()->post_form[$key]) { + return true; + } - } + } - } + } - return false; - } + return false; + } - /** - * Checks if a radio button is selected - * @param string $key - * @param string $value - * @param array $data - * @return boolean - */ - function is_radio_checked( $key, $value, $data ) { - if ( isset( UM()->form()->post_form[$key] ) ) { - if ( is_array( UM()->form()->post_form[$key] ) && in_array( $value, UM()->form()->post_form[$key] ) ) { - return true; - } elseif ( $value == UM()->form()->post_form[$key] ) { - return true; - } - } else { - if ( um_user( $key ) && $this->editing == true ) { + /** + * Checks if a radio button is selected + * + * @param string $key + * @param string $value + * @param array $data + * + * @return boolean + */ + function is_radio_checked( $key, $value, $data ) { + if (isset( UM()->form()->post_form[$key] )) { + if (is_array( UM()->form()->post_form[$key] ) && in_array( $value, UM()->form()->post_form[$key] )) { + return true; + } else if ($value == UM()->form()->post_form[$key]) { + return true; + } + } else { + if (um_user( $key ) && $this->editing == true) { + + if (strstr( $key, 'role_' )) { + $key = 'role'; + } - if ( strstr( $key, 'role_' ) ) { - $key = 'role'; - } + $um_user_value = um_user( $key ); - $um_user_value = um_user( $key ); + if ($key == 'role') { + $um_user_value = strtolower( $um_user_value ); - if ( $key == 'role' ) { - $um_user_value = strtolower( $um_user_value ); + $role_keys = get_option( 'um_roles' ); - $role_keys = get_option( 'um_roles' ); + if (!empty( $role_keys )) { + if (in_array( $um_user_value, $role_keys )) { + $um_user_value = 'um_' . $um_user_value; + } + } + } - if ( ! empty( $role_keys ) ) { - if ( in_array( $um_user_value, $role_keys ) ) { - $um_user_value = 'um_' . $um_user_value; - } - } - } + if ($um_user_value == $value) { + return true; + } - if ( $um_user_value == $value ) { - return true; - } + if (is_array( $um_user_value ) && in_array( $value, $um_user_value )) { + return true; + } - if ( is_array( $um_user_value ) && in_array( $value, $um_user_value ) ) { - return true; - } + if (is_array( $um_user_value )) { + foreach ($um_user_value as $u) { + if ($u == html_entity_decode( $value )) { + return true; + } + } + } - if ( is_array( $um_user_value ) ) { - foreach ( $um_user_value as $u ) { - if ( $u == html_entity_decode( $value ) ) { - return true; - } - } - } + } else if (isset( $data['default'] ) && $data['default'] == $value) { + return true; + } + } - } elseif ( isset( $data['default'] ) && $data['default'] == $value ) { - return true; - } - } + return false; + } - return false; - } + /** + * Get field icon + * + * @param string $key + * + * @return string + */ + function get_field_icon( $key ) { + $fields = UM()->builtin()->all_user_fields; + if (isset( $fields[$key]['icon'] )) + return $fields[$key]['icon']; - /** - * Get field icon - * @param string $key - * @return string - */ - function get_field_icon( $key ) { - $fields = UM()->builtin()->all_user_fields; - if ( isset( $fields[$key]['icon'] ) ) - return $fields[$key]['icon']; - return ''; - } + return ''; + } - /** - * Gets selected option value from a callback function - * @param string $value - * @param array $data - * @param string $type - * @return json - */ - function get_option_value_from_callback( $value, $data, $type ){ + /** + * Gets selected option value from a callback function + * + * @param string $value + * @param array $data + * @param string $type + * + * @return json + */ + function get_option_value_from_callback( $value, $data, $type ) { + + if (in_array( $type, array( 'select', 'multiselect' ) ) && isset( $data['custom_dropdown_options_source'] ) && !empty( $data['custom_dropdown_options_source'] )) { + + if (function_exists( $data['custom_dropdown_options_source'] )) { + + $arr_options = call_user_func( $data['custom_dropdown_options_source'] ); + + if ($type == 'select') { + if (isset( $arr_options[$value] ) && !empty( $arr_options[$value] )) { + return $arr_options[$value]; + } else if (isset( $data['default'] ) && !empty( $data['default'] ) && empty( $arr_options[$value] )) { + return $arr_options[$data['default']]; + } else { + return ''; + } + } + + if ($type == 'multiselect') { + + if (is_array( $value )) { + $values = $value; + } else { + $values = explode( ', ', $value ); + } + + $arr_paired_options = array(); + + foreach ($values as $option) { + if (isset( $arr_options[$option] )) { + $arr_paired_options[] = $arr_options[$option]; + } + } + + return implode( ', ', $arr_paired_options ); + } + + } + + + } + + return $value; + } + + /** + * Get select options from a callback function + * + * @param array $data + * @param string $type + * + * @return array $arr_options + */ + function get_options_from_callback( $data, $type ) { + + + if (in_array( $type, array( 'select', 'multiselect' ) ) && isset( $data['custom_dropdown_options_source'] ) && !empty( $data['custom_dropdown_options_source'] )) { + + if (function_exists( $data['custom_dropdown_options_source'] )) { + + $arr_options = call_user_func( $data['custom_dropdown_options_source'] ); + + } + + + } + + return $arr_options; + } + + /** + * Get field type + * + * @param string $key + * + * @return string + */ + function get_field_type( $key ) { + $fields = UM()->builtin()->all_user_fields; + if (isset( $fields[$key]['type'] )) + return $fields[$key]['type']; + + return ''; + } + + /** + * Get field label + * + * @param string $key + * + * @return string + */ + function get_label( $key ) { + $fields = UM()->builtin()->all_user_fields; + if (isset( $fields[$key]['label'] )) + return $fields[$key]['label']; + if (isset( $fields[$key]['title'] )) + return $fields[$key]['title']; + + return ''; + } - if( in_array( $type , array('select','multiselect') ) && isset( $data['custom_dropdown_options_source'] ) && ! empty( $data['custom_dropdown_options_source'] ) ){ - - if( function_exists( $data['custom_dropdown_options_source'] ) ){ - - $arr_options = call_user_func( $data['custom_dropdown_options_source'] ); - - if( $type == 'select' ){ - if( isset( $arr_options[ $value ] ) && ! empty( $arr_options[ $value ] ) ) { - return $arr_options[ $value ]; - }else if( isset( $data['default'] ) && ! empty( $data['default'] ) && empty( $arr_options[ $value ] ) ) { - return $arr_options[ $data['default'] ]; - }else{ - return ''; - } - } - - if( $type == 'multiselect' ){ - - if( is_array( $value ) ){ - $values = $value; - }else{ - $values = explode(', ', $value ); - } - - $arr_paired_options = array(); - - foreach ( $values as $option ) { - if( isset( $arr_options[ $option ] ) ){ - $arr_paired_options[] = $arr_options[ $option ]; - } - } - - return implode( ', ' , $arr_paired_options ); - } - - } - - - } - - return $value; - } - - /** - * Get select options from a callback function - * @param array $data - * @param string $type - * @return array $arr_options - */ - function get_options_from_callback( $data, $type ){ - - - if( in_array( $type , array('select','multiselect') ) && isset( $data['custom_dropdown_options_source'] ) && ! empty( $data['custom_dropdown_options_source'] ) ){ - - if( function_exists( $data['custom_dropdown_options_source'] ) ){ - - $arr_options = call_user_func( $data['custom_dropdown_options_source'] ); - - } - - - } - - return $arr_options; - } - - /** - * Get field type - * @param string $key - * @return string - */ - function get_field_type( $key ) { - $fields = UM()->builtin()->all_user_fields; - if ( isset( $fields[$key]['type'] ) ) - return $fields[$key]['type']; - return ''; - } - - /** - * Get field label - * @param string $key - * @return string - */ - function get_label( $key ) { - $fields = UM()->builtin()->all_user_fields; - if ( isset( $fields[$key]['label'] ) ) - return $fields[$key]['label']; - if ( isset( $fields[$key]['title'] ) ) - return $fields[$key]['title']; - return ''; - } + /** + * Get field title + * + * @param string $key + * + * @return string + */ + function get_field_title( $key ) { + $fields = UM()->builtin()->all_user_fields; + if (isset( $fields[$key]['title'] )) + return $fields[$key]['title']; + if (isset( $fields[$key]['label'] )) + return $fields[$key]['label']; - /** - * Get field title - * @param string $key - * @return string - */ - function get_field_title( $key ) { - $fields = UM()->builtin()->all_user_fields; - if ( isset( $fields[$key]['title'] ) ) - return $fields[$key]['title']; - if ( isset( $fields[$key]['label'] ) ) - return $fields[$key]['label']; - return __('Custom Field','ultimate-member'); - } + return __( 'Custom Field', 'ultimate-member' ); + } - /** - * Get form fields - * @return array - */ - function get_fields() { - $this->fields = array(); - $this->fields = apply_filters("um_get_form_fields", $this->fields ); - return $this->fields; - } + /** + * Get form fields + * + * @return array + */ + function get_fields() { + $this->fields = array(); + $this->fields = apply_filters( "um_get_form_fields", $this->fields ); + return $this->fields; + } - /** - * Get specific field - * @param string $key - * @return array - */ - function get_field( $key ) { - $fields = $this->get_fields(); - if ( isset( $fields ) && is_array( $fields ) && isset( $fields[$key] ) ) { - $array = $fields[$key]; - } else { - if ( !isset( UM()->builtin()->predefined_fields[$key] ) && !isset( UM()->builtin()->all_user_fields[$key] ) ) { - return ''; - } - $array = (isset( UM()->builtin()->predefined_fields[$key] ) ) ? UM()->builtin()->predefined_fields[$key] : UM()->builtin()->all_user_fields[$key]; - } + /** + * Get specific field + * + * @param string $key + * + * @return array + */ + function get_field( $key ) { + $fields = $this->get_fields(); - $array['classes'] = null; + if (isset( $fields ) && is_array( $fields ) && isset( $fields[$key] )) { + $array = $fields[$key]; + } else { + if (!isset( UM()->builtin()->predefined_fields[$key] ) && !isset( UM()->builtin()->all_user_fields[$key] )) { + return ''; + } + $array = ( isset( UM()->builtin()->predefined_fields[$key] ) ) ? UM()->builtin()->predefined_fields[$key] : UM()->builtin()->all_user_fields[$key]; + } - if (!isset($array['placeholder'])) $array['placeholder'] = null; - if (!isset($array['required'])) $array['required'] = null; - if (!isset($array['validate'])) $array['validate'] = null; - if (!isset($array['default'])) $array['default'] = null; + $array['classes'] = null; - if ( isset( $array['conditions'] ) && is_array( $array['conditions'] ) && !$this->viewing ) { - $array['conditional'] = ''; + if (!isset( $array['placeholder'] )) $array['placeholder'] = null; + if (!isset( $array['required'] )) $array['required'] = null; + if (!isset( $array['validate'] )) $array['validate'] = null; + if (!isset( $array['default'] )) $array['default'] = null; - foreach( $array['conditions'] as $cond_id => $cond ) { - $array['conditional'] .= ' data-cond-'.$cond_id.'-action="'. $cond[0] . '" data-cond-'.$cond_id.'-field="'. $cond[1] . '" data-cond-'.$cond_id.'-operator="'. $cond[2] . '" data-cond-'.$cond_id.'-value="'. $cond[3] . '"'; - } + if (isset( $array['conditions'] ) && is_array( $array['conditions'] ) && !$this->viewing) { + $array['conditional'] = ''; - $array['classes'] .= ' um-is-conditional'; + foreach ($array['conditions'] as $cond_id => $cond) { + $array['conditional'] .= ' data-cond-' . $cond_id . '-action="' . $cond[0] . '" data-cond-' . $cond_id . '-field="' . $cond[1] . '" data-cond-' . $cond_id . '-operator="' . $cond[2] . '" data-cond-' . $cond_id . '-value="' . $cond[3] . '"'; + } - } else { - $array['conditional'] = null; - } + $array['classes'] .= ' um-is-conditional'; - $array['classes'] .= ' um-field-' . $key; - $array['classes'] .= ' um-field-' . $array['type']; - $array['classes'] .= ' um-field-type_' . $array['type']; + } else { + $array['conditional'] = null; + } - switch( $array['type'] ) { + $array['classes'] .= ' um-field-' . $key; + $array['classes'] .= ' um-field-' . $array['type']; + $array['classes'] .= ' um-field-type_' . $array['type']; - case 'googlemap': - case 'youtube_video': - case 'vimeo_video': - case 'soundcloud_track': - $array['disabled'] = ''; - $array['input'] = 'text'; - break; + switch ($array['type']) { - case 'text': + case 'googlemap': + case 'youtube_video': + case 'vimeo_video': + case 'soundcloud_track': + $array['disabled'] = ''; + $array['input'] = 'text'; + break; - $array['disabled'] = ''; + case 'text': - if ( $key == 'user_login' && isset( $this->set_mode ) && $this->set_mode == 'account' ) { - $array['disabled'] = 'disabled="disabled"'; - } + $array['disabled'] = ''; - $array['input'] = 'text'; + if ($key == 'user_login' && isset( $this->set_mode ) && $this->set_mode == 'account') { + $array['disabled'] = 'disabled="disabled"'; + } - break; + $array['input'] = 'text'; - case 'password': + break; - $array['input'] = 'password'; + case 'password': - break; + $array['input'] = 'password'; - case 'number': + break; - $array['disabled'] = ''; + case 'number': - break; + $array['disabled'] = ''; - case 'url': + break; - $array['input'] = 'text'; + case 'url': - break; + $array['input'] = 'text'; - case 'date': + break; - $array['input'] = 'text'; + case 'date': - if ( !isset( $array['format'] ) ) $array['format'] = 'j M Y'; + $array['input'] = 'text'; - switch( $array['format'] ) { - case 'j M Y': - $js_format = 'd mmm yyyy'; - break; - case 'j F Y': - $js_format = 'd mmmm yyyy'; - break; - case 'M j Y': - $js_format = 'mmm d yyyy'; - break; - case 'F j Y': - $js_format = 'mmmm d yyyy'; - break; - } + if (!isset( $array['format'] )) $array['format'] = 'j M Y'; - $array['js_format'] = $js_format; + switch ($array['format']) { + case 'j M Y': + $js_format = 'd mmm yyyy'; + break; + case 'j F Y': + $js_format = 'd mmmm yyyy'; + break; + case 'M j Y': + $js_format = 'mmm d yyyy'; + break; + case 'F j Y': + $js_format = 'mmmm d yyyy'; + break; + } - if ( !isset( $array['range'] ) ) $array['range'] = 'years'; - if ( !isset( $array['years'] ) ) $array['years'] = 100; - if ( !isset( $array['years_x'] ) ) $array['years_x'] = 'past'; - if ( !isset( $array['disabled_weekdays'] ) ) $array['disabled_weekdays'] = ''; + $array['js_format'] = $js_format; - if ( !empty( $array['disabled_weekdays'] ) ) { - $array['disabled_weekdays'] = '[' . implode(',',$array['disabled_weekdays']) . ']'; - } + if (!isset( $array['range'] )) $array['range'] = 'years'; + if (!isset( $array['years'] )) $array['years'] = 100; + if (!isset( $array['years_x'] )) $array['years_x'] = 'past'; + if (!isset( $array['disabled_weekdays'] )) $array['disabled_weekdays'] = ''; - // When date range is strictly defined - if ( $array['range'] == 'date_range' ) { + if (!empty( $array['disabled_weekdays'] )) { + $array['disabled_weekdays'] = '[' . implode( ',', $array['disabled_weekdays'] ) . ']'; + } - $array['date_min'] = str_replace('/',',',$array['range_start']); - $array['date_max'] = str_replace('/',',',$array['range_end']); + // When date range is strictly defined + if ($array['range'] == 'date_range') { - } else { + $array['date_min'] = str_replace( '/', ',', $array['range_start'] ); + $array['date_max'] = str_replace( '/', ',', $array['range_end'] ); - if ( $array['years_x'] == 'past' ) { + } else { - $date = new \DateTime( date('Y-n-d') ); - $past = $date->modify('-'.$array['years'].' years'); - $past = $date->format('Y,n,d'); + if ($array['years_x'] == 'past') { - $array['date_min'] = $past; - $array['date_max'] = date('Y,n,d'); + $date = new \DateTime( date( 'Y-n-d' ) ); + $past = $date->modify( '-' . $array['years'] . ' years' ); + $past = $date->format( 'Y,n,d' ); - } else if ( $array['years_x'] == 'future' ) { + $array['date_min'] = $past; + $array['date_max'] = date( 'Y,n,d' ); - $date = new \DateTime( date('Y-n-d') ); - $future = $date->modify('+'.$array['years'].' years'); - $future = $date->format('Y,n,d'); + } else if ($array['years_x'] == 'future') { - $array['date_min'] = date('Y,n,d'); - $array['date_max'] = $future; + $date = new \DateTime( date( 'Y-n-d' ) ); + $future = $date->modify( '+' . $array['years'] . ' years' ); + $future = $date->format( 'Y,n,d' ); - } else { + $array['date_min'] = date( 'Y,n,d' ); + $array['date_max'] = $future; - $date = new \DateTime( date('Y-n-d') ); - $date_f = new \DateTime( date('Y-n-d') ); - $past = $date->modify('-'. ( $array['years'] / 2 ).' years'); - $past = $date->format('Y,n,d'); - $future = $date_f->modify('+'. ( $array['years'] / 2 ).' years'); - $future = $date_f->format('Y,n,d'); + } else { - $array['date_min'] = $past; - $array['date_max'] = $future; + $date = new \DateTime( date( 'Y-n-d' ) ); + $date_f = new \DateTime( date( 'Y-n-d' ) ); + $past = $date->modify( '-' . ( $array['years'] / 2 ) . ' years' ); + $past = $date->format( 'Y,n,d' ); + $future = $date_f->modify( '+' . ( $array['years'] / 2 ) . ' years' ); + $future = $date_f->format( 'Y,n,d' ); - } + $array['date_min'] = $past; + $array['date_max'] = $future; - } + } - break; + } - case 'time': + break; - $array['input'] = 'text'; + case 'time': - if ( !isset( $array['format'] ) ) $array['format'] = 'g:i a'; + $array['input'] = 'text'; - switch( $array['format'] ) { - case 'g:i a': - $js_format = 'h:i a'; - break; - case 'g:i A': - $js_format = 'h:i A'; - break; - case 'H:i': - $js_format = 'HH:i'; - break; - } + if (!isset( $array['format'] )) $array['format'] = 'g:i a'; - $array['js_format'] = $js_format; + switch ($array['format']) { + case 'g:i a': + $js_format = 'h:i a'; + break; + case 'g:i A': + $js_format = 'h:i A'; + break; + case 'H:i': + $js_format = 'HH:i'; + break; + } - if ( !isset( $array['intervals'] ) ) $array['intervals'] = 60; + $array['js_format'] = $js_format; - break; + if (!isset( $array['intervals'] )) $array['intervals'] = 60; - case 'textarea': + break; - if (!isset($array['height'])) $array['height'] = '100px'; + case 'textarea': - break; + if (!isset( $array['height'] )) $array['height'] = '100px'; - case 'rating': + break; - if (!isset($array['number'])) $array['number'] = 5; + case 'rating': - break; + if (!isset( $array['number'] )) $array['number'] = 5; - case 'spacing': + break; - if ( !isset($array['spacing'])){ - $array['spacing'] = '20px'; - } + case 'spacing': - break; + if (!isset( $array['spacing'] )) { + $array['spacing'] = '20px'; + } - case 'divider': + break; - if (isset($array['width'])){ - $array['borderwidth'] = $array['width']; - } else { - $array['borderwidth'] = 4; - } + case 'divider': - if (isset($array['color'])){ - $array['bordercolor'] = $array['color']; - } else { - $array['bordercolor'] = '#eee'; - } + if (isset( $array['width'] )) { + $array['borderwidth'] = $array['width']; + } else { + $array['borderwidth'] = 4; + } - if (isset($array['style'])){ - $array['borderstyle'] = $array['style']; - } else { - $array['borderstyle'] = 'solid'; - } + if (isset( $array['color'] )) { + $array['bordercolor'] = $array['color']; + } else { + $array['bordercolor'] = '#eee'; + } - if ( !isset( $array['divider_text'] ) ) { - $array['divider_text'] = ''; - } + if (isset( $array['style'] )) { + $array['borderstyle'] = $array['style']; + } else { + $array['borderstyle'] = 'solid'; + } - break; + if (!isset( $array['divider_text'] )) { + $array['divider_text'] = ''; + } - case 'image': + break; - if ( !isset( $array['crop'] ) ) $array['crop'] = 0; + case 'image': - if ( $array['crop'] == 0 ) { - $array['crop_data'] = 0; - } else if ( $array['crop'] == 1 ) { - $array['crop_data'] = 'square'; - } else if ( $array['crop'] == 2 ) { - $array['crop_data'] = 'cover'; - } else { - $array['crop_data'] = 'user'; - } + if (!isset( $array['crop'] )) $array['crop'] = 0; - if ( !isset( $array['modal_size'] ) ) $array['modal_size'] = 'normal'; + if ($array['crop'] == 0) { + $array['crop_data'] = 0; + } else if ($array['crop'] == 1) { + $array['crop_data'] = 'square'; + } else if ($array['crop'] == 2) { + $array['crop_data'] = 'cover'; + } else { + $array['crop_data'] = 'user'; + } - if ( $array['crop'] > 0 ) { - $array['crop_class'] = 'crop'; - } else { - $array['crop_class'] = ''; - } + if (!isset( $array['modal_size'] )) $array['modal_size'] = 'normal'; - if ( !isset( $array['ratio'] ) ) $array['ratio'] = 1.0; + if ($array['crop'] > 0) { + $array['crop_class'] = 'crop'; + } else { + $array['crop_class'] = ''; + } - if ( !isset( $array['min_width'] ) ) $array['min_width'] = ''; - if ( !isset( $array['min_height'] ) ) $array['min_height'] = ''; + if (!isset( $array['ratio'] )) $array['ratio'] = 1.0; - if ( $array['min_width'] == '' && $array['crop'] == 1 ) $array['min_width'] = 600; - if ( $array['min_height'] == '' && $array['crop'] == 1 ) $array['min_height'] = 600; + if (!isset( $array['min_width'] )) $array['min_width'] = ''; + if (!isset( $array['min_height'] )) $array['min_height'] = ''; - if ( $array['min_width'] == '' && $array['crop'] == 3 ) $array['min_width'] = 600; - if ( $array['min_height'] == '' && $array['crop'] == 3 ) $array['min_height'] = 600; + if ($array['min_width'] == '' && $array['crop'] == 1) $array['min_width'] = 600; + if ($array['min_height'] == '' && $array['crop'] == 1) $array['min_height'] = 600; - if (!isset($array['invalid_image'])) $array['invalid_image'] = __("Please upload a valid image!",'ultimate-member'); - if (!isset($array['allowed_types'])) { - $array['allowed_types'] = "gif,jpg,jpeg,png"; - } else { - $array['allowed_types'] = implode(',',$array['allowed_types']); - } - if (!isset($array['upload_text'])) $array['upload_text'] = ''; - if (!isset($array['button_text'])) $array['button_text'] = __('Upload','ultimate-member'); - if (!isset($array['extension_error'])) $array['extension_error'] = __("Sorry this is not a valid image.",'ultimate-member'); - if (!isset($array['max_size_error'])) $array['max_size_error'] = __("This image is too large!",'ultimate-member'); - if (!isset($array['min_size_error'])) $array['min_size_error'] = __("This image is too small!",'ultimate-member'); - if (!isset($array['max_files_error'])) $array['max_files_error'] = __("You can only upload one image",'ultimate-member'); - if (!isset($array['max_size'])) $array['max_size'] = 999999999; - if (!isset($array['upload_help_text'])) $array['upload_help_text'] = ''; - if (!isset($array['icon']) ) $array['icon'] = ''; + if ($array['min_width'] == '' && $array['crop'] == 3) $array['min_width'] = 600; + if ($array['min_height'] == '' && $array['crop'] == 3) $array['min_height'] = 600; - break; + if (!isset( $array['invalid_image'] )) $array['invalid_image'] = __( "Please upload a valid image!", 'ultimate-member' ); + if (!isset( $array['allowed_types'] )) { + $array['allowed_types'] = "gif,jpg,jpeg,png"; + } else { + $array['allowed_types'] = implode( ',', $array['allowed_types'] ); + } + if (!isset( $array['upload_text'] )) $array['upload_text'] = ''; + if (!isset( $array['button_text'] )) $array['button_text'] = __( 'Upload', 'ultimate-member' ); + if (!isset( $array['extension_error'] )) $array['extension_error'] = __( "Sorry this is not a valid image.", 'ultimate-member' ); + if (!isset( $array['max_size_error'] )) $array['max_size_error'] = __( "This image is too large!", 'ultimate-member' ); + if (!isset( $array['min_size_error'] )) $array['min_size_error'] = __( "This image is too small!", 'ultimate-member' ); + if (!isset( $array['max_files_error'] )) $array['max_files_error'] = __( "You can only upload one image", 'ultimate-member' ); + if (!isset( $array['max_size'] )) $array['max_size'] = 999999999; + if (!isset( $array['upload_help_text'] )) $array['upload_help_text'] = ''; + if (!isset( $array['icon'] )) $array['icon'] = ''; - case 'file': + break; - if ( !isset( $array['modal_size'] ) ) $array['modal_size'] = 'normal'; + case 'file': - if (!isset($array['allowed_types'])) { - $array['allowed_types'] = "pdf,txt"; - } else { - $array['allowed_types'] = implode(',',$array['allowed_types']); - } - if (!isset($array['upload_text'])) $array['upload_text'] = ''; - if (!isset($array['button_text'])) $array['button_text'] = __('Upload','ultimate-member'); - if (!isset($array['extension_error'])) $array['extension_error'] = "Sorry this is not a valid file."; - if (!isset($array['max_size_error'])) $array['max_size_error'] = "This file is too large!"; - if (!isset($array['min_size_error'])) $array['min_size_error'] = "This file is too small!"; - if (!isset($array['max_files_error'])) $array['max_files_error'] = "You can only upload one file"; - if (!isset($array['max_size'])) $array['max_size'] = 999999999; - if (!isset($array['upload_help_text'])) $array['upload_help_text'] = ''; - if (!isset($array['icon']) ) $array['icon'] = ''; + if (!isset( $array['modal_size'] )) $array['modal_size'] = 'normal'; - break; + if (!isset( $array['allowed_types'] )) { + $array['allowed_types'] = "pdf,txt"; + } else { + $array['allowed_types'] = implode( ',', $array['allowed_types'] ); + } + if (!isset( $array['upload_text'] )) $array['upload_text'] = ''; + if (!isset( $array['button_text'] )) $array['button_text'] = __( 'Upload', 'ultimate-member' ); + if (!isset( $array['extension_error'] )) $array['extension_error'] = "Sorry this is not a valid file."; + if (!isset( $array['max_size_error'] )) $array['max_size_error'] = "This file is too large!"; + if (!isset( $array['min_size_error'] )) $array['min_size_error'] = "This file is too small!"; + if (!isset( $array['max_files_error'] )) $array['max_files_error'] = "You can only upload one file"; + if (!isset( $array['max_size'] )) $array['max_size'] = 999999999; + if (!isset( $array['upload_help_text'] )) $array['upload_help_text'] = ''; + if (!isset( $array['icon'] )) $array['icon'] = ''; + + break; + + case 'select': + + break; + + case 'multiselect': + + break; + + case 'group': + + if (!isset( $array['max_entries'] )) $array['max_entries'] = 0; + + break; + + } + + if (!isset( $array['visibility'] )) $array['visibility'] = 'all'; + + $array = apply_filters( "um_get_field__{$key}", $array ); + + + return $array; + } + + /** + * Gets a field in 'input mode' + * + * @param string $key + * @param array $data + * @param boolean $rule + * + * @return string + */ + function edit_field( $key, $data, $rule = false ) { + global $_um_profile_id; + $output = null; + $disabled = ''; + if (empty( $_um_profile_id )) { + $_um_profile_id = um_user( 'ID' ); + } + + + // get whole field data + if (isset( $data ) && is_array( $data )) { + $data = $this->get_field( $key ); + if (is_array( $data )) { + extract( $data ); + } + } - case 'select': + if (!isset( $data['type'] )) return; - break; + if (isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group') return; - case 'multiselect': + if ($visibility == 'view' && $this->set_mode != 'register') return; + + if (( $visibility == 'view' && $this->set_mode == 'register' ) || + ( isset( $data['editable'] ) && $data['editable'] == 0 && $this->set_mode == 'profile' ) + ) { + + um_fetch_user( get_current_user_id() ); + if (!um_user( 'can_edit_everyone' )) + $disabled = ' disabled="disabled" '; + um_fetch_user( $_um_profile_id ); + if (isset( $data['public'] ) && $data['public'] == '-2' && $data['roles']) { + if (in_array( UM()->roles()->um_get_user_role( get_current_user_id() ), $data['roles'] )) { + $disabled = ''; + } + } - break; + } - case 'group': + if (!isset( $data['autocomplete'] )) { + $autocomplete = 'off'; + } + um_fetch_user( get_current_user_id() ); + if (!um_can_view_field( $data )) return; + if (!um_can_edit_field( $data )) return; + um_fetch_user( $_um_profile_id ); - if ( !isset( $array['max_entries'] ) ) $array['max_entries'] = 0; + // fields that need to be disabled in edit mode (profile) + $arr_restricted_fields = array( 'user_email', 'username', 'user_login', 'user_password' ); - break; + if (um_get_option( 'editable_primary_email_in_profile' ) == 1) { + unset( $arr_restricted_fields[0] ); // remove user_email + } - } + if (in_array( $key, $arr_restricted_fields ) && $this->editing == true && $this->set_mode == 'profile') { + return; + } - if ( !isset( $array['visibility'] ) ) $array['visibility'] = 'all'; + // forbidden in edit mode? + if (isset( $data['edit_forbidden'] )) return; - $array = apply_filters("um_get_field__{$key}", $array ); + // 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; + } + } - return $array; - } + // do not show passwords + if (isset( UM()->user()->preview ) && UM()->user()->preview) { + if ($data['type'] == 'password') { + return; + } + } + + $type = apply_filters( "um_hook_for_field_{$type}", $type ); + + /* 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 */ + case 'googlemap': + case 'youtube_video': + case 'vimeo_video': + case 'soundcloud_track': + + $output .= '
    '; + + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - /** - * Gets a field in 'input mode' - * @param string $key - * @param array $data - * @param boolean $rule - * @return string - */ - function edit_field( $key, $data, $rule=false ) { - $output = null; - $disabled = ''; + $output .= '
    '; - // get whole field data - if ( isset( $data ) && is_array( $data ) ) { - $data = $this->get_field($key); - if( is_array( $data ) ){ - extract($data); - } - } + if (isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field') { + + $output .= '
    '; - if ( !isset( $data['type'] ) ) return; + } - if ( isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group' ) return; + $field_name = $key . UM()->form()->form_suffix; + $field_value = htmlspecialchars( $this->field_value( $key, $default, $data ) ); - if ( $visibility == 'view' && $this->set_mode != 'register' ) return; - - if ( ( $visibility == 'view' && $this->set_mode == 'register' ) || - ( isset( $data['editable'] ) && $data['editable'] == 0 && $this->set_mode == 'profile' ) ){ - - if ( ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) - $disabled = ' disabled="disabled" '; - - if ( isset( $data['public'] ) && $data['public'] == '-2' && $data['roles'] ){ - if ( in_array( UM()->roles()->um_get_user_role( get_current_user_id() ), $data['roles'] ) ) { - $disabled = ''; - } - } - - } - - if( ! isset( $data['autocomplete'] ) ){ - $autocomplete = 'off'; - } - - - if ( !um_can_view_field( $data ) ) return; - if ( !um_can_edit_field( $data ) ) return; - - - // fields that need to be disabled in edit mode (profile) - $arr_restricted_fields = array('user_email','username','user_login','user_password'); - - if( um_get_option('editable_primary_email_in_profile') == 1 ){ - unset( $arr_restricted_fields[0] ); // remove user_email - } - - if ( in_array( $key, $arr_restricted_fields ) && $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( UM()->user()->preview ) && UM()->user()->preview ) { - if ( $data['type'] == 'password' ){ - return; - } - } - - $type = apply_filters("um_hook_for_field_{$type}", $type ); - - /* 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 */ - case 'googlemap': - case 'youtube_video': - case 'vimeo_video': - case 'soundcloud_track': - - $output .= '
    '; - - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } - - $output .= '
    '; - - if ( isset($icon) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field' ) { - - $output .= '
    '; - - } - - $field_name = $key.UM()->form()->form_suffix; - $field_value = htmlspecialchars( $this->field_value( $key, $default, $data ) ); - - $output .= ' + $output .= '
    '; - if( ! empty( $disabled ) ){ - $output .= $this->disabled_hidden_field( $field_name, $field_value ); - } + if (!empty( $disabled )) { + $output .= $this->disabled_hidden_field( $field_name, $field_value ); + } - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Text */ - case 'text': + /* Text */ + case 'text': - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $field_name = $key.UM()->form()->form_suffix; - $field_value = htmlspecialchars( $this->field_value( $key, $default, $data ) ); + $field_name = $key . UM()->form()->form_suffix; + $field_value = htmlspecialchars( $this->field_value( $key, $default, $data ) ); - $output .= ' + $output .= '
    '; - if( ! empty( $disabled ) ){ - $output .= $this->disabled_hidden_field( $field_name, $field_value ); - } + if (!empty( $disabled )) { + $output .= $this->disabled_hidden_field( $field_name, $field_value ); + } - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Number */ - case 'number': + /* Number */ + case 'number': - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $number_limit = ''; + $number_limit = ''; - if( isset( $min ) ){ - $number_limit .= " min=\"{$min}\" "; - } + if (isset( $min )) { + $number_limit .= " min=\"{$min}\" "; + } - if( isset( $max ) ){ - $number_limit .= " max=\"{$max}\" "; - } + if (isset( $max )) { + $number_limit .= " max=\"{$max}\" "; + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Password */ - case 'password': + /* Password */ + case 'password': - $original_key = $key; + $original_key = $key; - if ( $key == 'single_user_password' ) { + if ($key == 'single_user_password') { - $key = $original_key; + $key = $original_key; - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; + $output .= '
    '; - } else { + } else { - if ( $this->set_mode == 'account' || um_is_core_page( 'account' ) ) { + if ($this->set_mode == 'account' || um_is_core_page( 'account' )) { - $key = 'current_' . $original_key; - $output .= '
    '; + $key = 'current_' . $original_key; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label( __('Current Password','ultimate-member'), $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( __( 'Current Password', 'ultimate-member' ), $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; + $output .= '
    '; - } + } - $key = $original_key; + $key = $original_key; - $output .= '
    '; + $output .= '
    '; - if ( $this->set_mode == 'account' && um_is_core_page('account') || $this->set_mode == 'password' && um_is_core_page('password-reset') ) { + 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','ultimate-member'), $key, $data); + $output .= $this->field_label( __( 'New Password', 'ultimate-member' ), $key, $data ); - } else if ( isset( $data['label'] ) ) { + } else if (isset( $data['label'] )) { - $output .= $this->field_label($label, $key, $data); + $output .= $this->field_label( $label, $key, $data ); - } + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; + $output .= '
    '; - if ( $this->set_mode != 'login' && isset( $data['force_confirm_pass'] ) && $data['force_confirm_pass'] == 1 ) { + if ($this->set_mode != 'login' && isset( $data['force_confirm_pass'] ) && $data['force_confirm_pass'] == 1) { - $key = 'confirm_' . $original_key; - $output .= '
    '; + $key = 'confirm_' . $original_key; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label( sprintf(__('Confirm %s','ultimate-member'), $data['label'] ), $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( sprintf( __( 'Confirm %s', 'ultimate-member' ), $data['label'] ), $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; + $output .= '
    '; - } + } - } + } - break; + break; - /* URL */ - case 'url': + /* URL */ + case 'url': - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && isset($this->field_icons) && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Date */ - case 'date': + /* Date */ + case 'date': - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Time */ - case 'time': + /* Time */ + case 'time': - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset($icon) && $icon && $this->field_icons == 'field' ) { + if (isset( $icon ) && $icon && $this->field_icons == 'field') { - $output .= '
    '; + $output .= '
    '; - } + } - $output .= ' + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Row */ - case 'row': - $output .= ''; - break; + /* Row */ + case 'row': + $output .= ''; + break; - /* Textarea */ - case 'textarea': - $output .= '
    '; + /* Textarea */ + case 'textarea': + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; - $field_name = $key; - $field_value = $this->field_value( $key, $default, $data ); + $output .= '
    '; + $field_name = $key; + $field_value = $this->field_value( $key, $default, $data ); - if ( isset( $data['html'] ) && $data['html'] != 0 && $key != "description" ) { + if (isset( $data['html'] ) && $data['html'] != 0 && $key != "description") { - $textarea_settings = array( - 'media_buttons' => false, - 'wpautop' => false, - 'editor_class' => $this->get_class($key, $data), - 'editor_height' => $height, - 'tinymce'=> array( - 'toolbar1' => 'formatselect,bullist,numlist,bold,italic,underline,forecolor,blockquote,hr,removeformat,link,unlink,undo,redo', - 'toolbar2' => '', - ) - ); + $textarea_settings = array( + 'media_buttons' => false, + 'wpautop' => false, + 'editor_class' => $this->get_class( $key, $data ), + 'editor_height' => $height, + 'tinymce' => array( + 'toolbar1' => 'formatselect,bullist,numlist,bold,italic,underline,forecolor,blockquote,hr,removeformat,link,unlink,undo,redo', + 'toolbar2' => '', + ) + ); - if( ! empty( $disabled ) ){ - $textarea_settings['tinymce']['readonly'] = true; - } + if (!empty( $disabled )) { + $textarea_settings['tinymce']['readonly'] = true; + } - $textarea_settings = apply_filters('um_form_fields_textarea_settings', $textarea_settings ); + $textarea_settings = apply_filters( 'um_form_fields_textarea_settings', $textarea_settings ); - // turn on the output buffer - ob_start(); + // turn on the output buffer + ob_start(); - // echo the editor to the buffer - wp_editor( $field_value , $key, $textarea_settings ); + // echo the editor to the buffer + wp_editor( $field_value, $key, $textarea_settings ); - // add the contents of the buffer to the output variable - $output .= ob_get_clean(); + // add the contents of the buffer to the output variable + $output .= ob_get_clean(); - } - else $output .= ''; + } else $output .= ''; - $output .= ' + $output .= '
    '; - if( ! empty( $disabled ) ){ - $output .= $this->disabled_hidden_field( $field_name, $field_value ); - } + if (!empty( $disabled )) { + $output .= $this->disabled_hidden_field( $field_name, $field_value ); + } - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Rating */ - case 'rating': - $output .= '
    '; + /* Rating */ + case 'rating': + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - $output .= '
    '; + $output .= '
    '; - $output .= '
    '; + $output .= '
    '; - $output .= '
    '; + $output .= '
    '; - break; + break; - /* Gap/Space */ - case 'spacing': - $output .= '
    '; - break; + /* Gap/Space */ + case 'spacing': + $output .= '
    '; + break; - /* A line divider */ - case 'divider': - $output .= '
    '; - if ( $divider_text ) { - $output .= '
    ' . $divider_text . '
    '; - } - $output .= '
    '; - break; + /* A line divider */ + case 'divider': + $output .= '
    '; + if ($divider_text) { + $output .= '
    ' . $divider_text . '
    '; + } + $output .= '
    '; + break; - /* Single Image Upload */ - case 'image': - $output .= '
    '; + /* Single Image Upload */ + case 'image': + $output .= '
    '; - if ( in_array( $key, array('profile_photo','cover_photo') ) ) { - $field_value = ''; - } else { - $field_value = $this->field_value( $key, $default, $data ); - } + if (in_array( $key, array( 'profile_photo', 'cover_photo' ) )) { + $field_value = ''; + } else { + $field_value = $this->field_value( $key, $default, $data ); + } - $output .= ''; + $output .= ''; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $modal_label = ( isset( $data['label'] ) ) ? $data['label'] : __('Upload Photo','ultimate-member'); + $modal_label = ( isset( $data['label'] ) ) ? $data['label'] : __( 'Upload Photo', 'ultimate-member' ); - $output .= '
    '; + $output .= '
    '; - if ( $this->field_value( $key, $default, $data ) ) { + 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 = ''; - } else { - $img = ''; - } + 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 = ''; + } else { + $img = ''; + } - $output .= '
    + $output .= '
    ' . $img . ' -
    '. __('Change photo','ultimate-member') . ''; +
    ' . __( 'Change photo', 'ultimate-member' ) . ''; - } else { + } else { - $output .= '
    + $output .= '
    -
    '. $button_text . ''; +
    ' . $button_text . ''; - } + } - $output .= '
    '; + $output .= '
    '; - /* modal hidden */ - $output .= '
    '; + /* modal hidden */ + $output .= '
    '; - $output .= '
    ' . $modal_label . '
    '; + $output .= '
    ' . $modal_label . '
    '; - $output .= '
    '; + $output .= '
    '; - if ( isset( $this->set_id ) ) { - $set_id = $this->set_id; - $set_mode = $this->set_mode; - } else { - $set_id = 0; - $set_mode = ''; - } + if (isset( $this->set_id )) { + $set_id = $this->set_id; + $set_mode = $this->set_mode; + } else { + $set_id = 0; + $set_mode = ''; + } - $nonce = wp_create_nonce( 'um_upload_nonce-'.$this->timestamp ); + $nonce = wp_create_nonce( 'um_upload_nonce-' . $this->timestamp ); - $output .= '
    '; - $output .= '
    '.$button_text.'
    '; + $output .= '
    '; + $output .= '
    ' . $button_text . '
    '; - $output .= ''; + $output .= '
    '; - $output .= '
    '; + $output .= '
    '; - /* end */ + /* end */ - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; + $output .= '
    '; - break; + break; - /* Single File Upload */ - case 'file': - $output .= '
    '; + /* Single File Upload */ + case 'file': + $output .= '
    '; - $output .= ''; + $output .= ''; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $modal_label = ( isset( $data['label'] ) ) ? $data['label'] : __('Upload Photo','ultimate-member'); + $modal_label = ( isset( $data['label'] ) ) ? $data['label'] : __( 'Upload Photo', 'ultimate-member' ); - $output .= '
    '; + $output .= '
    '; - if ( $this->field_value( $key, $default, $data ) ) { + if ($this->field_value( $key, $default, $data )) { - $extension = pathinfo( $this->field_value( $key, $default, $data ), PATHINFO_EXTENSION); + $extension = pathinfo( $this->field_value( $key, $default, $data ), PATHINFO_EXTENSION ); - $output .= '' . __( 'Change file', 'ultimate-member' ) . ''; - } else { + } else { - $output .= '
    -
    '. $button_text . ''; + $output .= '
    +
    ' . $button_text . ''; - } + } - $output .= '
    '; + $output .= '
    '; - /* modal hidden */ - $output .= '
    '; + /* modal hidden */ + $output .= '
    '; - $output .= '
    ' . $modal_label . '
    '; + $output .= '
    ' . $modal_label . '
    '; - $output .= '
    '; + $output .= '
    '; - if ( isset( $this->set_id ) ) { - $set_id = $this->set_id; - $set_mode = $this->set_mode; - } else { - $set_id = 0; - $set_mode = ''; - } + if (isset( $this->set_id )) { + $set_id = $this->set_id; + $set_mode = $this->set_mode; + } else { + $set_id = 0; + $set_mode = ''; + } - $output .= ''; - $output .= '
    '; + $output .= '
    '; - /* end */ + /* end */ - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; + $output .= '
    '; - break; + break; - /* Select dropdown */ - case 'select': + /* Select dropdown */ + case 'select': - $form_key = str_replace( 'role_select', 'role', $key ); + $form_key = str_replace( 'role_select', 'role', $key ); - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['allowclear'] ) && $data['allowclear'] == 0 ) { - $class = 'um-s2'; - } else { - $class = 'um-s1'; - } + 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); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; - if ( isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field' ) { - $output .= '
    '; - } + $output .= '
    '; + if (isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field') { + $output .= '
    '; + } - $has_parent_option = false; - $disabled_by_parent_option = ''; - $atts_ajax = ''; - $select_original_option_value = ''; + $has_parent_option = false; + $disabled_by_parent_option = ''; + $atts_ajax = ''; + $select_original_option_value = ''; - if( isset( $data['parent_dropdown_relationship'] ) && ! empty( $data['parent_dropdown_relationship'] ) && ! UM()->user()->preview ){ + if (isset( $data['parent_dropdown_relationship'] ) && !empty( $data['parent_dropdown_relationship'] ) && !UM()->user()->preview) { - $disabled_by_parent_option = 'disabled = disabled'; + $disabled_by_parent_option = 'disabled = disabled'; - $has_parent_option = true; + $has_parent_option = true; - $parent_dropdown_relationship = apply_filters("um_custom_dropdown_options_parent__{$form_key}", $data['parent_dropdown_relationship'], $data ); - $atts_ajax .= " data-um-parent='{$parent_dropdown_relationship}' "; + $parent_dropdown_relationship = apply_filters( "um_custom_dropdown_options_parent__{$form_key}", $data['parent_dropdown_relationship'], $data ); + $atts_ajax .= " data-um-parent='{$parent_dropdown_relationship}' "; - if( isset( $data['custom_dropdown_options_source'] ) && ! empty( $data['custom_dropdown_options_source'] ) && - $has_parent_option && function_exists( $data['custom_dropdown_options_source'] ) && - um_user( $data['parent_dropdown_relationship'] ) ){ - $options = call_user_func( $data['custom_dropdown_options_source'] ); - $disabled_by_parent_option = ''; - if( um_user( $form_key ) ){ - $select_original_option_value = " data-um-original-value='".um_user( $form_key )."' "; - } - } + if (isset( $data['custom_dropdown_options_source'] ) && !empty( $data['custom_dropdown_options_source'] ) && + $has_parent_option && function_exists( $data['custom_dropdown_options_source'] ) && + um_user( $data['parent_dropdown_relationship'] ) + ) { + $options = call_user_func( $data['custom_dropdown_options_source'] ); + $disabled_by_parent_option = ''; + if (um_user( $form_key )) { + $select_original_option_value = " data-um-original-value='" . um_user( $form_key ) . "' "; + } + } - } + } - if ( ! empty( $data['custom_dropdown_options_source'] ) ){ + if (!empty( $data['custom_dropdown_options_source'] )) { - $ajax_source = apply_filters("um_custom_dropdown_options_source__{$form_key}", $data['custom_dropdown_options_source'], $data ); - $atts_ajax .= " data-um-ajax-source='{$ajax_source}' "; + $ajax_source = apply_filters( "um_custom_dropdown_options_source__{$form_key}", $data['custom_dropdown_options_source'], $data ); + $atts_ajax .= " data-um-ajax-source='{$ajax_source}' "; - $ajax_source_url = apply_filters("um_custom_dropdown_options_source_url__{$form_key}", admin_url('admin-ajax.php'), $data ); - $atts_ajax .= " data-um-ajax-url='{$ajax_source_url}' "; + $ajax_source_url = apply_filters( "um_custom_dropdown_options_source_url__{$form_key}", admin_url( 'admin-ajax.php' ), $data ); + $atts_ajax .= " data-um-ajax-url='{$ajax_source_url}' "; - } + } - $output .= ''; $enable_options_pair = apply_filters("um_fields_options_enable_pairs__{$key}", false ); @@ -1831,209 +1892,209 @@ if ( ! class_exists( 'Fields' ) ) { $options = UM()->builtin()->get ( $filter ); } - if (!isset($options)){ - $options = UM()->builtin()->get ( 'countries' ); - } + if (!isset( $options )) { + $options = UM()->builtin()->get( 'countries' ); + } - if ( isset( $options ) ) { - $options = apply_filters('um_select_dropdown_dynamic_options', $options, $data ); - $options = apply_filters("um_select_dropdown_dynamic_options_{$key}", $options ); - } - } + if (isset( $options )) { + $options = apply_filters( 'um_select_dropdown_dynamic_options', $options, $data ); + $options = apply_filters( "um_select_dropdown_dynamic_options_{$key}", $options ); + } + } - // role field - if ( $form_key == 'role' ) { - $roles = UM()->roles()->get_roles( false, array( 'administrator' ) ); - if ( isset( $options ) ) - $options = array_intersect( $options, $roles ); - else - $options = $roles; - } + // role field + if ($form_key == 'role') { + $roles = UM()->roles()->get_roles( false, array( 'administrator' ) ); + if (isset( $options )) + $options = array_intersect( $options, $roles ); + else + $options = $roles; + } - // add an empty option! - $output .= ''; + // add an empty option! + $output .= ''; - $field_value = ''; + $field_value = ''; - // switch options pair for custom options from a callback function - if( isset( $data['custom_dropdown_options_source'] ) && ! empty( $data['custom_dropdown_options_source'] ) ){ - $options_pair = true; - } + // switch options pair for custom options from a callback function + if (isset( $data['custom_dropdown_options_source'] ) && !empty( $data['custom_dropdown_options_source'] )) { + $options_pair = true; + } - // add options - foreach( $options as $k => $v) { + // add options + foreach ($options as $k => $v) { - $v = rtrim($v); + $v = rtrim( $v ); - $option_value = $v; - $um_field_checkbox_item_title = $v; + $option_value = $v; + $um_field_checkbox_item_title = $v; - if ( ! is_numeric( $k ) && in_array($form_key, array( 'role' ) ) ) { - $option_value = $k; - $um_field_checkbox_item_title = $v; - } + if (!is_numeric( $k ) && in_array( $form_key, array( 'role' ) )) { + $option_value = $k; + $um_field_checkbox_item_title = $v; + } - if ( isset( $options_pair ) ) { - $option_value = $k; - $um_field_checkbox_item_title = $v; - } + if (isset( $options_pair )) { + $option_value = $k; + $um_field_checkbox_item_title = $v; + } - $option_value = apply_filters('um_field_non_utf8_value',$option_value ); + $option_value = apply_filters( 'um_field_non_utf8_value', $option_value ); - $output .= ''; + $output .= '>' . __( $um_field_checkbox_item_title, UM_TEXTDOMAIN ) . ''; - } + } - if( ! empty( $disabled ) ){ - $output .= $this->disabled_hidden_field( $form_key, $field_value ); - } + if (!empty( $disabled )) { + $output .= $this->disabled_hidden_field( $form_key, $field_value ); + } - $output .= ''; + $output .= ''; - $output .= '
    '; + $output .= '
    '; - if ( $this->is_error($form_key) ) { - $output .= $this->field_error( $this->show_error($form_key) ); - } + if ($this->is_error( $form_key )) { + $output .= $this->field_error( $this->show_error( $form_key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Multi-Select dropdown */ - case 'multiselect': + /* Multi-Select dropdown */ + case 'multiselect': - $max_selections = ( isset( $max_selections ) ) ? absint( $max_selections ) : 0; + $max_selections = ( isset( $max_selections ) ) ? absint( $max_selections ) : 0; - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['allowclear'] ) && $data['allowclear'] == 0 ) { - $class = 'um-s2'; - } else { - $class = 'um-s1'; - } + 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); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $field_icon = false; - $field_icon_output = ''; + $field_icon = false; + $field_icon_output = ''; - $use_keyword = apply_filters('um_multiselect_option_value', 0, $data['type'] ); + $use_keyword = apply_filters( 'um_multiselect_option_value', 0, $data['type'] ); - $output .= '
    '; - if ( isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field' ) { - $output .= '
    '; - } + $output .= '
    '; + if (isset( $icon ) && $icon && isset( $this->field_icons ) && $this->field_icons == 'field') { + $output .= '
    '; + } - $output .= ''; - if ( isset($options) && $options == 'builtin'){ - $options = UM()->builtin()->get ( $filter ); - } + if (isset( $options ) && $options == 'builtin') { + $options = UM()->builtin()->get( $filter ); + } - if (!isset($options)){ - $options = UM()->builtin()->get ( 'countries' ); - } + if (!isset( $options )) { + $options = UM()->builtin()->get( 'countries' ); + } - if ( isset( $options ) ) { - $options = apply_filters('um_multiselect_options', $options, $data ); - $options = apply_filters("um_multiselect_options_{$key}", $options ); - $options = apply_filters("um_multiselect_options_{$data['type']}", $options, $data ); - } + if (isset( $options )) { + $options = apply_filters( 'um_multiselect_options', $options, $data ); + $options = apply_filters( "um_multiselect_options_{$key}", $options ); + $options = apply_filters( "um_multiselect_options_{$data['type']}", $options, $data ); + } - // switch options pair for custom options from a callback function - if( isset( $data['custom_dropdown_options_source'] ) && ! empty( $data['custom_dropdown_options_source'] ) ){ - $use_keyword = true; - } + // switch options pair for custom options from a callback function + if (isset( $data['custom_dropdown_options_source'] ) && !empty( $data['custom_dropdown_options_source'] )) { + $use_keyword = true; + } - // add an empty option! - $output .= ''; + // add an empty option! + $output .= ''; - $arr_selected = array(); - // add options - if ( ! empty( $options ) && is_array( $options ) ) { - foreach( $options as $k => $v ) { + $arr_selected = array(); + // add options + if (!empty( $options ) && is_array( $options )) { + foreach ($options as $k => $v) { - $v = rtrim( $v ); + $v = rtrim( $v ); - $um_field_checkbox_item_title = $v; - $opt_value = $v; + $um_field_checkbox_item_title = $v; + $opt_value = $v; - if ( $use_keyword ) { - $um_field_checkbox_item_title = $v; - $opt_value = $k; - } + if ($use_keyword) { + $um_field_checkbox_item_title = $v; + $opt_value = $k; + } - $opt_value = apply_filters('um_field_non_utf8_value',$opt_value ); + $opt_value = apply_filters( 'um_field_non_utf8_value', $opt_value ); - $output .= ''; + $output .= '>' . __( $um_field_checkbox_item_title, 'ultimate-member' ) . ''; - } - } + } + } - $output .= ''; + $output .= ''; - if( ! empty( $disabled ) && ! empty( $arr_selected ) ){ - foreach( $arr_selected as $item ){ - $output .= $this->disabled_hidden_field( $key.'[]', $item ); - } - } + if (!empty( $disabled ) && !empty( $arr_selected )) { + foreach ($arr_selected as $item) { + $output .= $this->disabled_hidden_field( $key . '[]', $item ); + } + } - $output .= '
    '; + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error( $key ) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Radio */ - case 'radio': + /* Radio */ + case 'radio': - $form_key = str_replace( 'role_radio', 'role', $key ); + $form_key = str_replace( 'role_radio', 'role', $key ); - if ( isset( $options ) ) { - $options = apply_filters('um_radio_field_options', $options, $data ); - $options = apply_filters("um_radio_field_options_{$key}", $options ); - } + if (isset( $options )) { + $options = apply_filters( 'um_radio_field_options', $options, $data ); + $options = apply_filters( "um_radio_field_options_{$key}", $options ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label( $label, $key, $data ); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - // role field - if ( $form_key == 'role' ) { - $options = UM()->roles()->get_roles( false, array( 'administrator' ) ); + // role field + if ($form_key == 'role') { + $options = UM()->roles()->get_roles( false, array( 'administrator' ) ); - /*var_dump( UM()->roles()->get_roles() ); + /*var_dump( UM()->roles()->get_roles() ); global $wpdb; if ( ! empty( $options ) ) { foreach ( $options as $rkey => $val ) { @@ -2049,881 +2110,919 @@ if ( ! class_exists( 'Fields' ) ) { $options = $new_roles; }*/ - } + } - // add options - $i = 0; - $field_value = array(); + // add options + $i = 0; + $field_value = array(); - if ( ! empty( $options ) ) { - foreach ( $options as $k => $v ) { + if (!empty( $options )) { + foreach ($options as $k => $v) { - $v = rtrim($v); + $v = rtrim( $v ); - $um_field_checkbox_item_title = $v; - $option_value = $v; + $um_field_checkbox_item_title = $v; + $option_value = $v; - if ( !is_numeric( $k ) && in_array($form_key, array('role') ) ) { - $um_field_checkbox_item_title = $v; - $option_value = $k; - } + if (!is_numeric( $k ) && in_array( $form_key, array( 'role' ) )) { + $um_field_checkbox_item_title = $v; + $option_value = $k; + } - $i++; - if ($i % 2 == 0 ) { - $col_class = 'right'; - } else { - $col_class = ''; - } + $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"; - } + 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"; + } - if( isset( $data['editable'] ) && $data['editable'] == 0 ){ - $col_class .= " um-field-radio-state-disabled"; - } + if (isset( $data['editable'] ) && $data['editable'] == 0) { + $col_class .= " um-field-radio-state-disabled"; + } - $output .= ''; - if ($i % 2 == 0) { - $output .= '
    '; - } + if ($i % 2 == 0) { + $output .= '
    '; + } - } - } + } + } - if ( ! empty( $disabled ) ) { - foreach ( $field_value as $item ) { - $output .= $this->disabled_hidden_field( $form_key , $item ); - } - } + if (!empty( $disabled )) { + foreach ($field_value as $item) { + $output .= $this->disabled_hidden_field( $form_key, $item ); + } + } - $output .= '
    '; + $output .= '
    '; - $output .= '
    '; + $output .= '
    '; - if ( $this->is_error($form_key) ) { - $output .= $this->field_error( $this->show_error($form_key) ); - } + if ($this->is_error( $form_key )) { + $output .= $this->field_error( $this->show_error( $form_key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* Checkbox */ - case 'checkbox': + /* Checkbox */ + case 'checkbox': - if ( isset( $options ) ) { - $options = apply_filters('um_checkbox_field_options', $options, $data ); - $options = apply_filters("um_checkbox_field_options_{$key}", $options ); - } + if (isset( $options )) { + $options = apply_filters( 'um_checkbox_field_options', $options, $data ); + $options = apply_filters( "um_checkbox_field_options_{$key}", $options ); + } - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; + $output .= '
    '; - // add options - $i = 0; + // add options + $i = 0; - foreach($options as $k => $v) { + foreach ($options as $k => $v) { - $v = rtrim($v); + $v = rtrim( $v ); - $i++; - if ($i % 2 == 0 ) { - $col_class = 'right'; - } else { - $col_class = ''; - } + $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"; - } + if ($this->is_selected( $key, $v, $data )) { + $active = 'active'; + $class = "um-icon-android-checkbox-outline"; + } else { + $active = ''; + $class = "um-icon-android-checkbox-outline-blank"; + } - if( isset( $data['editable'] ) && $data['editable'] == 0 ){ - $col_class .= " um-field-radio-state-disabled"; - } + if (isset( $data['editable'] ) && $data['editable'] == 0) { + $col_class .= " um-field-radio-state-disabled"; + } - $output .= ''; - if ($i % 2 == 0) { - $output .= '
    '; - } + if ($i % 2 == 0) { + $output .= '
    '; + } - } + } - $output .= '
    '; + $output .= '
    '; - $output .= '
    '; + $output .= '
    '; - if ( $this->is_error($key) ) { - $output .= $this->field_error( $this->show_error($key) ); - } + if ($this->is_error( $key )) { + $output .= $this->field_error( $this->show_error( $key ) ); + } - $output .= '
    '; - break; + $output .= '
    '; + break; - /* HTML */ - case 'block': - $output .= '
    -
    '.$content.'
    + /* HTML */ + case 'block': + $output .= '
    +
    ' . $content . '
    '; - break; + break; - /* Shortcode */ - case 'shortcode': + /* Shortcode */ + case 'shortcode': - $content = str_replace('{profile_id}', um_profile_id(), $content ); + $content = str_replace( '{profile_id}', um_profile_id(), $content ); - $output .= '
    -
    ' . do_shortcode($content) . '
    + $output .= '
    +
    ' . do_shortcode( $content ) . '
    '; - break; - - /* Unlimited Group */ - case 'group': - - $fields = $this->get_fields_in_group( $key ); - if ( !empty( $fields ) ) { - - $output .= '
    -
    '.__($label,UM_TEXTDOMAIN).'
    '; - $output .= '
    '; - - foreach($fields as $subkey => $subdata) { - $output .= $this->edit_field( $subkey, $subdata, 'group' ); - } - - $output .= '
    '; - $output .= '
    '; - - } - - 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; - } - - /** - * Sorts columns array - * @param array $arr - * @param string $col - * @param string $dir - * @return array $arr - */ - function array_sort_by_column($arr, $col, $dir = SORT_ASC) { - $sort_col = array(); - foreach ($arr as $key=> $row) { - if ( isset( $row[$col] ) ) { - $sort_col[$key] = $row[$col]; - } - } - - array_multisort($sort_col, $dir, $arr); - return $arr; - } - - - /** - * Get fields in row - * @param integer $row_id - * @return string - */ - function get_fields_by_row( $row_id ) { - foreach( $this->get_fields as $key => $array ) { - if ( !isset( $array['in_row'] ) || ( isset( $array['in_row'] ) && $array['in_row'] == $row_id ) ) { - $results[$key] = $array; - } - } - return ( isset ( $results ) ) ? $results : ''; - } - - - /** - * Get fields by sub row - * @param string $row_fields - * @param integer $subrow_id - * @return mixed - */ - function get_fields_in_subrow( $row_fields, $subrow_id ) { - if ( !is_array( $row_fields ) ) return ''; - foreach( $row_fields as $key => $array ) { - if ( !isset( $array['in_sub_row'] ) || ( isset( $array['in_sub_row'] ) && $array['in_sub_row'] == $subrow_id ) ) { - $results[$key] = $array; - } - } - return ( isset ( $results ) ) ? $results : ''; - } - - /** - * Get fields in group - * @param integer $group_id - * @return mixed - */ - function get_fields_in_group( $group_id ) { - foreach( $this->get_fields as $key => $array ) { - if ( isset( $array['in_group'] ) && $array['in_group'] == $group_id ) { - $results[$key] = $array; - } - } - return ( isset ( $results ) ) ? $results : ''; - } - - - /** - * Get fields in column - * @param array $fields - * @param integer $col_number - * @return mixed - */ - function get_fields_in_column( $fields, $col_number ) { - foreach( $fields as $key => $array ) { - if ( isset( $array['in_column'] ) && $array['in_column'] == $col_number ) { - $results[$key] = $array; - } - } - return ( isset ( $results ) ) ? $results : ''; - } - - - /** - * Display fields - * @param string $mode - * @param array $args - * @return string - */ - function display( $mode, $args ) { - $output = null; - - $this->global_args = $args; - - UM()->form()->form_suffix = '-' . $this->global_args['form_id']; - - $this->set_mode = $mode; - $this->set_id = $this->global_args['form_id']; - - $this->field_icons = ( isset( $this->global_args['icons'] ) ) ? $this->global_args['icons'] : 'label'; - - // start output here - $this->get_fields = $this->get_fields(); - - if ( !empty( $this->get_fields ) ) { - - // find rows - foreach( $this->get_fields as $key => $array ) { - if ( $array['type'] == 'row' ) { - $this->rows[$key] = $array; - unset( $this->get_fields[ $key ] ); // not needed anymore - } - } - - // rows fallback - if ( !isset( $this->rows ) ){ - $this->rows = array( '_um_row_1' => array( - 'type' => 'row', - 'id' => '_um_row_1', - 'sub_rows' => 1, - 'cols' => 1 - ) - ); - } - - // master rows - foreach ( $this->rows as $row_id => $row_array ) { - - $row_fields = $this->get_fields_by_row( $row_id ); - if ( $row_fields ) { - - $output .= $this->new_row_output( $row_id, $row_array ); - - $sub_rows = ( isset( $row_array['sub_rows'] ) ) ? $row_array['sub_rows'] : 1; - for( $c = 0; $c < $sub_rows; $c++ ) { - - // cols - $cols = ( isset( $row_array['cols'] ) ) ? $row_array['cols'] : 1; - if ( strstr( $cols, ':' ) ) { - $col_split = explode( ':', $cols ); - } else { - $col_split = array( $cols ); - } - $cols_num = $col_split[$c]; - - // sub row fields - $subrow_fields = null; - $subrow_fields = $this->get_fields_in_subrow( $row_fields, $c ); - - if ( is_array( $subrow_fields ) ) { - - $subrow_fields = $this->array_sort_by_column( $subrow_fields, 'position'); - - if ( $cols_num == 1 ) { - - $output .= '
    '; - $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); - if ( $col1_fields ) { - foreach( $col1_fields as $key => $data ) {$output .= $this->edit_field( $key, $data );} - } - $output .= '
    '; + break; + + /* Unlimited Group */ + case 'group': + + $fields = $this->get_fields_in_group( $key ); + if (!empty( $fields )) { + + $output .= '
    +
    ' . __( $label, UM_TEXTDOMAIN ) . '
    '; + $output .= '
    '; + + foreach ($fields as $subkey => $subdata) { + $output .= $this->edit_field( $subkey, $subdata, 'group' ); + } + + $output .= '
    '; + $output .= '
    '; + + } + + 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; + } + + /** + * Sorts columns array + * + * @param array $arr + * @param string $col + * @param string $dir + * + * @return array $arr + */ + function array_sort_by_column( $arr, $col, $dir = SORT_ASC ) { + $sort_col = array(); + foreach ($arr as $key => $row) { + if (isset( $row[$col] )) { + $sort_col[$key] = $row[$col]; + } + } + + array_multisort( $sort_col, $dir, $arr ); + + return $arr; + } + + + /** + * Get fields in row + * + * @param integer $row_id + * + * @return string + */ + function get_fields_by_row( $row_id ) { + foreach ($this->get_fields as $key => $array) { + if (!isset( $array['in_row'] ) || ( isset( $array['in_row'] ) && $array['in_row'] == $row_id )) { + $results[$key] = $array; + } + } + + return ( isset ( $results ) ) ? $results : ''; + } + + + /** + * Get fields by sub row + * + * @param string $row_fields + * @param integer $subrow_id + * + * @return mixed + */ + function get_fields_in_subrow( $row_fields, $subrow_id ) { + if (!is_array( $row_fields )) return ''; + foreach ($row_fields as $key => $array) { + if (!isset( $array['in_sub_row'] ) || ( isset( $array['in_sub_row'] ) && $array['in_sub_row'] == $subrow_id )) { + $results[$key] = $array; + } + } + + return ( isset ( $results ) ) ? $results : ''; + } + + /** + * Get fields in group + * + * @param integer $group_id + * + * @return mixed + */ + function get_fields_in_group( $group_id ) { + foreach ($this->get_fields as $key => $array) { + if (isset( $array['in_group'] ) && $array['in_group'] == $group_id) { + $results[$key] = $array; + } + } + + return ( isset ( $results ) ) ? $results : ''; + } + + + /** + * Get fields in column + * + * @param array $fields + * @param integer $col_number + * + * @return mixed + */ + function get_fields_in_column( $fields, $col_number ) { + foreach ($fields as $key => $array) { + if (isset( $array['in_column'] ) && $array['in_column'] == $col_number) { + $results[$key] = $array; + } + } + + return ( isset ( $results ) ) ? $results : ''; + } + + + /** + * Display fields + * + * @param string $mode + * @param array $args + * + * @return string + */ + function display( $mode, $args ) { + $output = null; + + $this->global_args = $args; + + UM()->form()->form_suffix = '-' . $this->global_args['form_id']; + + $this->set_mode = $mode; + $this->set_id = $this->global_args['form_id']; + + $this->field_icons = ( isset( $this->global_args['icons'] ) ) ? $this->global_args['icons'] : 'label'; + + // start output here + $this->get_fields = $this->get_fields(); + + if (!empty( $this->get_fields )) { + + // find rows + foreach ($this->get_fields as $key => $array) { + if ($array['type'] == 'row') { + $this->rows[$key] = $array; + unset( $this->get_fields[$key] ); // not needed anymore + } + } + + // rows fallback + if (!isset( $this->rows )) { + $this->rows = array( '_um_row_1' => array( + 'type' => 'row', + 'id' => '_um_row_1', + 'sub_rows' => 1, + 'cols' => 1 + ) + ); + } + + // master rows + foreach ($this->rows as $row_id => $row_array) { + + $row_fields = $this->get_fields_by_row( $row_id ); + if ($row_fields) { + + $output .= $this->new_row_output( $row_id, $row_array ); + + $sub_rows = ( isset( $row_array['sub_rows'] ) ) ? $row_array['sub_rows'] : 1; + for ($c = 0; $c < $sub_rows; $c++) { + + // cols + $cols = ( isset( $row_array['cols'] ) ) ? $row_array['cols'] : 1; + if (strstr( $cols, ':' )) { + $col_split = explode( ':', $cols ); + } else { + $col_split = array( $cols ); + } + $cols_num = $col_split[$c]; + + // sub row fields + $subrow_fields = null; + $subrow_fields = $this->get_fields_in_subrow( $row_fields, $c ); + + if (is_array( $subrow_fields )) { + + $subrow_fields = $this->array_sort_by_column( $subrow_fields, 'position' ); + + if ($cols_num == 1) { + + $output .= '
    '; + $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); + if ($col1_fields) { + foreach ($col1_fields as $key => $data) { + $output .= $this->edit_field( $key, $data ); + } + } + $output .= '
    '; + + } else if ($cols_num == 2) { + + $output .= '
    '; + $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); + if ($col1_fields) { + foreach ($col1_fields as $key => $data) { + $output .= $this->edit_field( $key, $data ); + } + } + $output .= '
    '; + + $output .= '
    '; + $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); + if ($col2_fields) { + foreach ($col2_fields as $key => $data) { + $output .= $this->edit_field( $key, $data ); + } + } + $output .= '
    '; - } else if ( $cols_num == 2 ) { + } else { - $output .= '
    '; - $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); - if ( $col1_fields ) { - foreach( $col1_fields as $key => $data ) {$output .= $this->edit_field( $key, $data );} - } - $output .= '
    '; + $output .= '
    '; + $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); + if ($col1_fields) { + foreach ($col1_fields as $key => $data) { + $output .= $this->edit_field( $key, $data ); + } + } + $output .= '
    '; - $output .= '
    '; - $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); - if ( $col2_fields ) { - foreach( $col2_fields as $key => $data ) {$output .= $this->edit_field( $key, $data );} - } - $output .= '
    '; + $output .= '
    '; + $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); + if ($col2_fields) { + foreach ($col2_fields as $key => $data) { + $output .= $this->edit_field( $key, $data ); + } + } + $output .= '
    '; - } else { + $output .= '
    '; + $col3_fields = $this->get_fields_in_column( $subrow_fields, 3 ); + if ($col3_fields) { + foreach ($col3_fields as $key => $data) { + $output .= $this->edit_field( $key, $data ); + } + } + $output .= '
    '; - $output .= '
    '; - $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); - if ( $col1_fields ) { - foreach( $col1_fields as $key => $data ) {$output .= $this->edit_field( $key, $data );} - } - $output .= '
    '; + } - $output .= '
    '; - $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); - if ( $col2_fields ) { - foreach( $col2_fields as $key => $data ) {$output .= $this->edit_field( $key, $data );} - } - $output .= '
    '; + } - $output .= '
    '; - $col3_fields = $this->get_fields_in_column( $subrow_fields, 3 ); - if ( $col3_fields ) { - foreach( $col3_fields as $key => $data ) {$output .= $this->edit_field( $key, $data );} - } - $output .= '
    '; + } - } + $output .= '
    '; - } + } - } + } - $output .= '
    '; + } - } + return $output; + } - } + /** + * Gets a field in `view mode` + * + * @param string $key + * @param array $data + * @param boolean $rule + * + * @return string + */ + function view_field( $key, $data, $rule = false ) { + $output = null; - } + // get whole field data + if (is_array( $data )) { + $data = $this->get_field( $key ); + extract( $data ); + } - return $output; - } + if (!isset( $data['type'] )) return; - /** - * Gets a field in `view mode` - * @param string $key - * @param array $data - * @param boolean $rule - * @return string - */ - function view_field( $key, $data, $rule=false ) { - $output = null; + if (isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group') return; - // get whole field data - if (is_array($data)) { - $data = $this->get_field($key); - extract($data); - } + if ($visibility == 'edit') return; - if ( !isset( $data['type'] ) ) return; + if (in_array( $type, array( 'block', 'shortcode', 'spacing', 'divider', 'group' ) )) { - if ( isset( $data['in_group'] ) && $data['in_group'] != '' && $rule != 'group' ) return; + } else { + if (!$this->field_value( $key, $default, $data )) return; + } - if ( $visibility == 'edit' ) return; + if (!um_can_view_field( $data )) return; - if ( in_array( $type, array('block','shortcode','spacing','divider','group') ) ) { + // disable these fields in profile view only + if (in_array( $key, array( 'user_password' ) ) && $this->set_mode == 'profile') { + return; + } - } else { - if ( ! $this->field_value( $key, $default, $data ) ) return; - } + if (!um_field_conditions_are_met( $data )) return; - if ( !um_can_view_field( $data ) ) return; + switch ($type) { - // disable these fields in profile view only - if ( in_array( $key, array('user_password') ) && $this->set_mode == 'profile' ) { - return; - } + /* Default */ + default: - if ( !um_field_conditions_are_met( $data ) ) return; + $output .= '
    '; - switch( $type ) { + if (isset( $data['label'] ) || isset( $data['icon'] ) && !empty( $data['icon'] )) { - /* Default */ - default: + if (!isset( $data['label'] )) $data['label'] = ''; - $output .= '
    '; + $output .= $this->field_label( $data['label'], $key, $data ); + } - if ( isset( $data['label'] ) || isset( $data['icon'] ) && ! empty( $data['icon'] ) ) { + $res = $this->field_value( $key, $default, $data ); - if( ! isset( $data['label'] ) ) $data['label'] = ''; + if (!empty( $res )) { + $res = stripslashes( $res ); + } - $output .= $this->field_label( $data['label'], $key, $data); - } + $data['is_view_field'] = true; + $res = apply_filters( "um_view_field", $res, $data, $type ); + $res = apply_filters( "um_view_field_value_{$type}", $res, $data ); - $res = $this->field_value( $key, $default, $data ); + $output .= '
    '; + $output .= '
    ' . $res . '
    '; + $output .= '
    '; - if( ! empty( $res ) ){ - $res = stripslashes( $res ); - } + $output .= '
    '; - $data['is_view_field'] = true; - $res = apply_filters("um_view_field", $res, $data, $type ); - $res = apply_filters("um_view_field_value_{$type}", $res, $data ); + break; - $output .= '
    '; - $output .= '
    ' . $res . '
    '; - $output .= '
    '; - - $output .= '
    '; - - break; - - /* HTML */ - case 'block': - $output .= '
    -
    '.$content.'
    + /* HTML */ + case 'block': + $output .= '
    +
    ' . $content . '
    '; - break; + break; - /* Shortcode */ - case 'shortcode': + /* Shortcode */ + case 'shortcode': - $content = str_replace('{profile_id}', um_profile_id(), $content ); + $content = str_replace( '{profile_id}', um_profile_id(), $content ); - $output .= '
    -
    ' . do_shortcode($content) . '
    + $output .= '
    +
    ' . do_shortcode( $content ) . '
    '; - break; + break; - /* Gap/Space */ - case 'spacing': - $output .= '
    '; - break; + /* Gap/Space */ + case 'spacing': + $output .= '
    '; + break; - /* A line divider */ - case 'divider': - $output .= '
    '; - if ( $divider_text ) { - $output .= '
    ' . $divider_text . '
    '; - } - $output .= '
    '; - break; + /* A line divider */ + case 'divider': + $output .= '
    '; + if ($divider_text) { + $output .= '
    ' . $divider_text . '
    '; + } + $output .= '
    '; + break; - /* Rating */ - case 'rating': + /* Rating */ + case 'rating': - $output .= '
    '; + $output .= '
    '; - if ( isset( $data['label'] ) || isset( $data['icon'] ) && ! empty( $data['icon'] ) ) { - $output .= $this->field_label($label, $key, $data); - } + if (isset( $data['label'] ) || isset( $data['icon'] ) && !empty( $data['icon'] )) { + $output .= $this->field_label( $label, $key, $data ); + } - $output .= '
    '; - $output .= '
    -
    + $output .= '
    '; + $output .= '
    +
    '; - $output .= '
    '; + $output .= '
    '; - $output .= '
    '; + $output .= '
    '; - break; + break; - } + } - // Custom filter for field output - if ( isset( $this->set_mode ) ) { - $output = apply_filters("um_{$key}_form_show_field", $output, $this->set_mode); - $output = apply_filters("um_{$type}_form_show_field", $output, $this->set_mode); + // Custom filter for field output + if (isset( $this->set_mode )) { + $output = apply_filters( "um_{$key}_form_show_field", $output, $this->set_mode ); + $output = apply_filters( "um_{$type}_form_show_field", $output, $this->set_mode ); - } + } - return $output; - } + return $output; + } - /** - * Display fields ( view mode ) - * @param string $mode - * @param array $args - * @return string - */ - function display_view( $mode, $args ) { - $output = null; + /** + * Display fields ( view mode ) + * + * @param string $mode + * @param array $args + * + * @return string + */ + function display_view( $mode, $args ) { + $output = null; - $this->global_args = $args; + $this->global_args = $args; - UM()->form()->form_suffix = '-' . $this->global_args['form_id']; + UM()->form()->form_suffix = '-' . $this->global_args['form_id']; - $this->set_mode = $mode; - $this->set_id = $this->global_args['form_id']; + $this->set_mode = $mode; + $this->set_id = $this->global_args['form_id']; - $this->field_icons = ( isset( $this->global_args['icons'] ) ) ? $this->global_args['icons'] : 'label'; + $this->field_icons = ( isset( $this->global_args['icons'] ) ) ? $this->global_args['icons'] : 'label'; - // start output here - $this->get_fields = $this->get_fields(); + // start output here + $this->get_fields = $this->get_fields(); - if ( um_get_option('profile_empty_text') ) { + if (um_get_option( 'profile_empty_text' )) { - $emo = um_get_option('profile_empty_text_emo'); - if ( $emo ) { - $emo = ''; - } else { - $emo = false; - } + $emo = um_get_option( 'profile_empty_text_emo' ); + if ($emo) { + $emo = ''; + } else { + $emo = false; + } - if ( um_is_myprofile() ) { - $output .= '

    ' . $emo .'' . sprintf(__('Your profile is looking a little empty. Why not add some information!','ultimate-member'), um_edit_profile_url() ) . '

    '; - } else { - $output .= '

    '. $emo . '' . __('This user has not added any information to their profile yet.','ultimate-member') . '

    '; - } - } + if (um_is_myprofile()) { + $output .= '

    ' . $emo . '' . sprintf( __( 'Your profile is looking a little empty. Why not add some information!', 'ultimate-member' ), um_edit_profile_url() ) . '

    '; + } else { + $output .= '

    ' . $emo . '' . __( 'This user has not added any information to their profile yet.', 'ultimate-member' ) . '

    '; + } + } - if ( ! empty( $this->get_fields ) ) { + if (!empty( $this->get_fields )) { - // find rows - foreach ( $this->get_fields as $key => $array ) { - if ( $array['type'] == 'row' ) { - $this->rows[$key] = $array; - unset( $this->get_fields[ $key ] ); // not needed anymore - } - } + // find rows + foreach ($this->get_fields as $key => $array) { + if ($array['type'] == 'row') { + $this->rows[$key] = $array; + unset( $this->get_fields[$key] ); // not needed anymore + } + } - // rows fallback - if ( !isset( $this->rows ) ) { - $this->rows = array( '_um_row_1' => array( - 'type' => 'row', - 'id' => '_um_row_1', - 'sub_rows' => 1, - 'cols' => 1 - ) - ); - } + // rows fallback + if (!isset( $this->rows )) { + $this->rows = array( '_um_row_1' => array( + 'type' => 'row', + 'id' => '_um_row_1', + 'sub_rows' => 1, + 'cols' => 1 + ) + ); + } - // master rows - foreach ( $this->rows as $row_id => $row_array ) { + // master rows + foreach ($this->rows as $row_id => $row_array) { - $row_fields = $this->get_fields_by_row( $row_id ); + $row_fields = $this->get_fields_by_row( $row_id ); - if ( $row_fields ) { + if ($row_fields) { - $output .= $this->new_row_output( $row_id, $row_array ); + $output .= $this->new_row_output( $row_id, $row_array ); - $sub_rows = ( isset( $row_array['sub_rows'] ) ) ? $row_array['sub_rows'] : 1; - for( $c = 0; $c < $sub_rows; $c++ ) { + $sub_rows = ( isset( $row_array['sub_rows'] ) ) ? $row_array['sub_rows'] : 1; + for ($c = 0; $c < $sub_rows; $c++) { - // cols - $cols = ( isset( $row_array['cols'] ) ) ? $row_array['cols'] : 1; - if ( strstr( $cols, ':' ) ) { - $col_split = explode( ':', $cols ); - } else { - $col_split = array( $cols ); - } - $cols_num = $col_split[$c]; + // cols + $cols = ( isset( $row_array['cols'] ) ) ? $row_array['cols'] : 1; + if (strstr( $cols, ':' )) { + $col_split = explode( ':', $cols ); + } else { + $col_split = array( $cols ); + } + $cols_num = $col_split[$c]; - // sub row fields - $subrow_fields = null; - $subrow_fields = $this->get_fields_in_subrow( $row_fields, $c ); + // sub row fields + $subrow_fields = null; + $subrow_fields = $this->get_fields_in_subrow( $row_fields, $c ); - if ( is_array( $subrow_fields ) ) { + if (is_array( $subrow_fields )) { - $subrow_fields = $this->array_sort_by_column( $subrow_fields, 'position'); + $subrow_fields = $this->array_sort_by_column( $subrow_fields, 'position' ); - if ( $cols_num == 1 ) { + if ($cols_num == 1) { - $output .= '
    '; - $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); - if ( $col1_fields ) { - foreach( $col1_fields as $key => $data ) { + $output .= '
    '; + $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); + if ($col1_fields) { + foreach ($col1_fields as $key => $data) { - $data = apply_filters("um_view_field_output_".$data['type'], $data); + $data = apply_filters( "um_view_field_output_" . $data['type'], $data ); - $output .= $this->view_field( $key, $data ); + $output .= $this->view_field( $key, $data ); - } - } - $output .= '
    '; + } + } + $output .= '
    '; - } else if ( $cols_num == 2 ) { + } else if ($cols_num == 2) { - $output .= '
    '; - $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); - if ( $col1_fields ) { - foreach( $col1_fields as $key => $data ) { + $output .= '
    '; + $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); + if ($col1_fields) { + foreach ($col1_fields as $key => $data) { - $data = apply_filters("um_view_field_output_".$data['type'], $data); + $data = apply_filters( "um_view_field_output_" . $data['type'], $data ); - $output .= $this->view_field( $key, $data ); + $output .= $this->view_field( $key, $data ); - } - } - $output .= '
    '; + } + } + $output .= '
    '; - $output .= '
    '; - $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); - if ( $col2_fields ) { - foreach( $col2_fields as $key => $data ) { + $output .= '
    '; + $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); + if ($col2_fields) { + foreach ($col2_fields as $key => $data) { - $data = apply_filters("um_view_field_output_".$data['type'], $data); + $data = apply_filters( "um_view_field_output_" . $data['type'], $data ); - $output .= $this->view_field( $key, $data ); + $output .= $this->view_field( $key, $data ); - } - } - $output .= '
    '; + } + } + $output .= '
    '; - } else { + } else { - $output .= '
    '; - $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); - if ( $col1_fields ) { - foreach( $col1_fields as $key => $data ) { + $output .= '
    '; + $col1_fields = $this->get_fields_in_column( $subrow_fields, 1 ); + if ($col1_fields) { + foreach ($col1_fields as $key => $data) { - $data = apply_filters("um_view_field_output_".$data['type'], $data); + $data = apply_filters( "um_view_field_output_" . $data['type'], $data ); - $output .= $this->view_field( $key, $data ); + $output .= $this->view_field( $key, $data ); - } - } - $output .= '
    '; + } + } + $output .= '
    '; - $output .= '
    '; - $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); - if ( $col2_fields ) { - foreach( $col2_fields as $key => $data ) { + $output .= '
    '; + $col2_fields = $this->get_fields_in_column( $subrow_fields, 2 ); + if ($col2_fields) { + foreach ($col2_fields as $key => $data) { - $data = apply_filters("um_view_field_output_".$data['type'], $data); + $data = apply_filters( "um_view_field_output_" . $data['type'], $data ); - $output .= $this->view_field( $key, $data ); + $output .= $this->view_field( $key, $data ); - } - } - $output .= '
    '; + } + } + $output .= '
    '; - $output .= '
    '; - $col3_fields = $this->get_fields_in_column( $subrow_fields, 3 ); - if ( $col3_fields ) { - foreach( $col3_fields as $key => $data ) { + $output .= '
    '; + $col3_fields = $this->get_fields_in_column( $subrow_fields, 3 ); + if ($col3_fields) { + foreach ($col3_fields as $key => $data) { - $data = apply_filters("um_view_field_output_".$data['type'], $data); + $data = apply_filters( "um_view_field_output_" . $data['type'], $data ); - $output .= $this->view_field( $key, $data ); + $output .= $this->view_field( $key, $data ); - } - } - $output .= '
    '; + } + } + $output .= '
    '; - } + } - } + } - } + } - $output .= '
    '; + $output .= '
    '; - } + } - } + } - } + } - return $output; - } + return $output; + } - /** - * Get new row in form - * @param string $row_id - * @param array $row_array - * @return array - */ - function new_row_output( $row_id, $row_array ) { - $output = null; - extract($row_array); + /** + * Get new row in form + * + * @param string $row_id + * @param array $row_array + * + * @return array + */ + function new_row_output( $row_id, $row_array ) { + $output = null; + extract( $row_array ); - $padding = (isset($padding))?$padding:''; - $margin = (isset($margin))?$margin:''; - $background = (isset($background))?$background:''; - $text_color = (isset($text_color))?$text_color:''; - $borderradius = (isset($borderradius))?$borderradius:''; - $border = (isset($border))?$border:''; - $bordercolor = (isset($bordercolor))?$bordercolor:''; - $borderstyle = (isset($borderstyle))?$borderstyle:''; - $heading = (isset($heading))?$heading:''; - $css_class = (isset($css_class))?$css_class:''; + $padding = ( isset( $padding ) ) ? $padding : ''; + $margin = ( isset( $margin ) ) ? $margin : ''; + $background = ( isset( $background ) ) ? $background : ''; + $text_color = ( isset( $text_color ) ) ? $text_color : ''; + $borderradius = ( isset( $borderradius ) ) ? $borderradius : ''; + $border = ( isset( $border ) ) ? $border : ''; + $bordercolor = ( isset( $bordercolor ) ) ? $bordercolor : ''; + $borderstyle = ( isset( $borderstyle ) ) ? $borderstyle : ''; + $heading = ( isset( $heading ) ) ? $heading : ''; + $css_class = ( isset( $css_class ) ) ? $css_class : ''; - $css_padding = ''; - $css_margin = ''; - $css_background = ''; - $css_borderradius = ''; - $css_border = ''; - $css_bordercolor = ''; - $css_borderstyle = ''; - $css_heading_background_color = ''; - $css_heading_padding = ''; - $css_heading_text_color = ''; - $css_heading_borderradius = ''; - $css_text_color = ''; + $css_padding = ''; + $css_margin = ''; + $css_background = ''; + $css_borderradius = ''; + $css_border = ''; + $css_bordercolor = ''; + $css_borderstyle = ''; + $css_heading_background_color = ''; + $css_heading_padding = ''; + $css_heading_text_color = ''; + $css_heading_borderradius = ''; + $css_text_color = ''; - // row css rules - if ( $padding ) $css_padding = 'padding: ' . $padding .';'; - if ( $margin ) { - $css_margin = 'margin: ' . $margin .';'; - } else { - $css_margin = 'margin: 0 0 30px 0;'; - } + // row css rules + if ($padding) $css_padding = 'padding: ' . $padding . ';'; + if ($margin) { + $css_margin = 'margin: ' . $margin . ';'; + } else { + $css_margin = 'margin: 0 0 30px 0;'; + } - if ( $background ) $css_background = 'background-color: ' . $background .';'; - if ( $borderradius ) $css_borderradius = 'border-radius: 0px 0px ' . $borderradius . ' ' . $borderradius . ';'; - if ( $border ) $css_border = 'border-width: ' . $border . ';'; - if ( $bordercolor ) $css_bordercolor = 'border-color: ' . $bordercolor . ';'; - if ( $borderstyle ) $css_borderstyle = 'border-style: ' . $borderstyle . ';'; - if ( $text_color ) $css_text_color = 'color: ' . $text_color . ' !important;'; + if ($background) $css_background = 'background-color: ' . $background . ';'; + if ($borderradius) $css_borderradius = 'border-radius: 0px 0px ' . $borderradius . ' ' . $borderradius . ';'; + if ($border) $css_border = 'border-width: ' . $border . ';'; + if ($bordercolor) $css_bordercolor = 'border-color: ' . $bordercolor . ';'; + if ($borderstyle) $css_borderstyle = 'border-style: ' . $borderstyle . ';'; + if ($text_color) $css_text_color = 'color: ' . $text_color . ' !important;'; - // show the heading - if ( $heading ) { + // show the heading + if ($heading) { - $heading_background_color = (isset($heading_background_color))?$heading_background_color:''; - $heading_text_color = (isset($heading_text_color))?$heading_text_color:''; + $heading_background_color = ( isset( $heading_background_color ) ) ? $heading_background_color : ''; + $heading_text_color = ( isset( $heading_text_color ) ) ? $heading_text_color : ''; - if ( $heading_background_color ) { - $css_heading_background_color = 'background-color: ' . $heading_background_color .';'; - $css_heading_padding = 'padding: 10px 15px;'; - } + if ($heading_background_color) { + $css_heading_background_color = 'background-color: ' . $heading_background_color . ';'; + $css_heading_padding = 'padding: 10px 15px;'; + } - if ( $heading_text_color ) $css_heading_text_color = 'color: ' . $heading_text_color .';'; - if ( $borderradius ) $css_heading_borderradius = 'border-radius: ' . $borderradius . ' ' . $borderradius . ' 0px 0px;'; + if ($heading_text_color) $css_heading_text_color = 'color: ' . $heading_text_color . ';'; + if ($borderradius) $css_heading_borderradius = 'border-radius: ' . $borderradius . ' ' . $borderradius . ' 0px 0px;'; - $output .= '
    '; + $output .= '
    '; - if ( isset( $icon ) ) { - $output .= ''; - } + if (isset( $icon )) { + $output .= ''; + } - $output .= ( ! empty( $heading_text ) ? $heading_text: '') .'
    '; + $output .= ( !empty( $heading_text ) ? $heading_text : '' ) . '
    '; - } else { + } else { - // no heading - if ( $borderradius ) $css_borderradius = 'border-radius: ' . $borderradius . ';'; + // no heading + if ($borderradius) $css_borderradius = 'border-radius: ' . $borderradius . ';'; - } + } - $output .= '
    '; + $output .= '
    '; - return $output; - } + return $output; + } + function do_ajax_action() { + if (!is_user_logged_in() || !current_user_can( 'manage_options' )) die( __( 'Please login as administrator', 'ultimate-member' ) ); + extract( $_POST ); + + $output = null; + + $position = array(); + if (!empty( $in_column )) { + $position['in_row'] = '_um_row_' . ( (int)$in_row + 1 ); + $position['in_sub_row'] = $in_sub_row; + $position['in_column'] = $in_column; + $position['in_group'] = $in_group; + } + + switch ($act_id) { + + case 'um_admin_duplicate_field': + UM()->fields()->duplicate_field( $arg1, $arg2 ); + break; + + case 'um_admin_remove_field_global': + UM()->fields()->delete_field_from_db( $arg1 ); + break; + + case 'um_admin_remove_field': + UM()->fields()->delete_field_from_form( $arg1, $arg2 ); + break; + + case 'um_admin_add_field_from_predefined': + UM()->fields()->add_field_from_predefined( $arg1, $arg2, $position ); + break; - function do_ajax_action() { - if ( !is_user_logged_in() || !current_user_can('manage_options') ) die( __('Please login as administrator','ultimate-member') ); + case 'um_admin_add_field_from_list': + UM()->fields()->add_field_from_list( $arg1, $arg2, $position ); + break; - extract($_POST); + } - $output = null; + if (is_array( $output )) { + print_r( $output ); + } else { + echo $output; + } + die; - $position = array(); - if ( ! empty( $in_column ) ) { - $position['in_row'] = '_um_row_' . ( (int)$in_row+1 ); - $position['in_sub_row'] = $in_sub_row; - $position['in_column'] = $in_column; - $position['in_group'] = $in_group; - } - - switch ( $act_id ) { - - case 'um_admin_duplicate_field': - UM()->fields()->duplicate_field( $arg1, $arg2 ); - break; - - case 'um_admin_remove_field_global': - UM()->fields()->delete_field_from_db( $arg1 ); - break; - - case 'um_admin_remove_field': - UM()->fields()->delete_field_from_form( $arg1, $arg2 ); - break; - - case 'um_admin_add_field_from_predefined': - UM()->fields()->add_field_from_predefined( $arg1, $arg2, $position ); - break; - - case 'um_admin_add_field_from_list': - UM()->fields()->add_field_from_list( $arg1, $arg2, $position ); - break; - - } - - if(is_array($output)){ print_r($output); }else{ echo $output; } die; - - } - } -} \ No newline at end of file + } + } + } \ No newline at end of file diff --git a/includes/core/um-actions-profile.php b/includes/core/um-actions-profile.php index 5219d524..3c3a09db 100644 --- a/includes/core/um-actions-profile.php +++ b/includes/core/um-actions-profile.php @@ -1,36 +1,36 @@ -
    +
    roles()->um_current_user_can('edit', $args['user_id'] ) ) { + if (isset( $args['user_id'] )) { + if (UM()->roles()->um_current_user_can( 'edit', $args['user_id'] )) { UM()->user()->set( $args['user_id'] ); } else { - wp_die( __('You are not allowed to edit this user.','ultimate-member') ); + wp_die( __( 'You are not allowed to edit this user.', 'ultimate-member' ) ); } - } else if ( isset( $args['_user_id'] ) ) { + } else if (isset( $args['_user_id'] )) { UM()->user()->set( $args['_user_id'] ); } $userinfo = UM()->user()->profile; - do_action( 'um_user_before_updating_profile', $userinfo ); + do_action( 'um_user_before_updating_profile', $userinfo ); - if ( ! empty( $args['custom_fields'] ) ) - $fields = unserialize( $args['custom_fields'] ); + if (!empty( $args['custom_fields'] )) + $fields = unserialize( $args['custom_fields'] ); // loop through fields - if ( ! empty( $fields ) ) { - foreach ( $fields as $key => $array ) { + if (!empty( $fields )) { + foreach ($fields as $key => $array) { - if( ! UM()->roles()->um_user_can( 'can_edit_everyone' ) && isset( $fields[$key]['editable'] ) && ! $fields[$key]['editable'] ) + if (!um_can_edit_field( $fields[$key] ) && isset( $fields[$key]['editable'] ) && !$fields[$key]['editable']) continue; - if ( $fields[$key]['type'] == 'multiselect' || $fields[$key]['type'] == 'checkbox' && ! isset( $args['submitted'][$key] ) ) { - delete_user_meta( um_user('ID'), $key ); + if ($fields[$key]['type'] == 'multiselect' || $fields[$key]['type'] == 'checkbox' && !isset( $args['submitted'][$key] )) { + delete_user_meta( um_user( 'ID' ), $key ); } - if ( isset( $args['submitted'][ $key ] ) ) { + if (isset( $args['submitted'][$key] )) { - if ( isset( $fields[$key]['type'] ) && in_array( $fields[$key]['type'], array('image','file') ) && - ( um_is_temp_upload( $args['submitted'][ $key ] ) || $args['submitted'][ $key ] == 'empty_file' ) ) { + if (isset( $fields[$key]['type'] ) && in_array( $fields[$key]['type'], array( 'image', 'file' ) ) && + ( um_is_temp_upload( $args['submitted'][$key] ) || $args['submitted'][$key] == 'empty_file' ) + ) { - $files[ $key ] = $args['submitted'][ $key ]; + $files[$key] = $args['submitted'][$key]; } else { - if ( isset( $userinfo[$key] ) && $args['submitted'][$key] != $userinfo[$key] ) { - $to_update[ $key ] = $args['submitted'][ $key ]; - } elseif ( $args['submitted'][$key] ) { - $to_update[ $key ] = $args['submitted'][ $key ]; + if (isset( $userinfo[$key] ) && $args['submitted'][$key] != $userinfo[$key]) { + $to_update[$key] = $args['submitted'][$key]; + } else if ($args['submitted'][$key]) { + $to_update[$key] = $args['submitted'][$key]; } } @@ -96,11 +97,11 @@ } } - if ( isset( $args['submitted']['description'] ) ) { + if (isset( $args['submitted']['description'] )) { $to_update['description'] = $args['submitted']['description']; } - if ( ! empty( $args['submitted']['role'] ) ) { + if (!empty( $args['submitted']['role'] )) { $to_update['role'] = $args['submitted']['role']; } @@ -108,110 +109,111 @@ $to_update = apply_filters( 'um_user_pre_updating_profile_array', $to_update ); - if ( is_array( $to_update ) ) { + if (is_array( $to_update )) { UM()->user()->update_profile( $to_update ); - do_action( 'um_after_user_updated', um_user('ID') ); - + do_action( 'um_after_user_updated', um_user( 'ID' ) ); + } $files = apply_filters( 'um_user_pre_updating_files_array', $files ); - - if ( is_array( $files ) ) { - do_action('um_before_user_upload', um_user('ID'), $files ); + + if (is_array( $files )) { + do_action( 'um_before_user_upload', um_user( 'ID' ), $files ); UM()->user()->update_files( $files ); - do_action( 'um_after_user_upload', um_user('ID'), $files ); + do_action( 'um_after_user_upload', um_user( 'ID' ), $files ); } do_action( 'um_user_after_updating_profile', $to_update ); do_action( 'um_update_profile_full_name', $to_update ); - if ( ! isset( $args['is_signup'] ) ) { - $url = UM()->user()->get_profile_url( um_user('ID'), true ); + if (!isset( $args['is_signup'] )) { + $url = UM()->user()->get_profile_url( um_user( 'ID' ), true ); exit( wp_redirect( um_edit_my_profile_cancel_uri( $url ) ) ); } } /*** - *** @if editing another user - ***/ - add_action('um_after_form_fields', 'um_editing_user_id_input'); - function um_editing_user_id_input($args){ - if ( UM()->fields()->editing == 1 && UM()->fields()->set_mode == 'profile' && UM()->user()->target_id ) { ?> + *** @if editing another user + ***/ + add_action( 'um_after_form_fields', 'um_editing_user_id_input' ); + function um_editing_user_id_input( $args ) { + if (UM()->fields()->editing == 1 && UM()->fields()->set_mode == 'profile' && UM()->user()->target_id) { ?> - + - - + - - - - - + + + + + - - '.__('Change your cover photo','ultimate-member').' + ' . __( 'Change your cover photo', 'ultimate-member' ) . ' '; - ?> + ?> -
    +
    - + fields()->editing ) { + if (UM()->fields()->editing) { $items = array( - ''.__('Change cover photo','ultimate-member').'', - ''.__('Remove','ultimate-member').'', - ''.__('Cancel','ultimate-member').'', + '' . __( 'Change cover photo', 'ultimate-member' ) . '', + '' . __( 'Remove', 'ultimate-member' ) . '', + '' . __( 'Cancel', 'ultimate-member' ) . '', ); echo UM()->menu()->new_ui( 'bc', 'div.um-cover', 'click', $items ); @@ -223,43 +225,46 @@ -
    +
    - + - mobile()->isMobile() ){ - if ( UM()->mobile()->isTablet() ) { - echo um_user('cover_photo', 1000); + if (UM()->mobile()->isMobile()) { + if (UM()->mobile()->isTablet()) { + echo um_user( 'cover_photo', 1000 ); + } else { + echo um_user( 'cover_photo', 300 ); + } } else { - echo um_user('cover_photo', 300); + echo um_user( 'cover_photo', 1000 ); } - } else { - echo um_user('cover_photo', 1000); - } - ?> + ?> - '; + echo ''; } else { - if ( !isset( UM()->user()->cannot_edit ) ) { ?> + if (!isset( UM()->user()->cannot_edit )) { ?> - + - -
    +
    -
    +
    '; UM()->fields()->show_social_urls(); @@ -282,13 +287,13 @@ } /*** - *** @profile header - ***/ - add_action('um_profile_header', 'um_profile_header', 9 ); + *** @profile header + ***/ + add_action( 'um_profile_header', 'um_profile_header', 9 ); function um_profile_header( $args ) { $classes = null; - if ( !$args['cover_enabled'] ) { + if (!$args['cover_enabled']) { $classes .= ' no-cover'; } @@ -304,40 +309,41 @@ ?> -
    +
    - + -
    +
    - + - user()->cannot_edit ) ) { + if (!isset( UM()->user()->cannot_edit )) { UM()->fields()->add_hidden_field( 'profile_photo' ); - if ( !um_profile('profile_photo') ) { // has profile photo + if (!um_profile( 'profile_photo' )) { // has profile photo $items = array( - ''.__('Upload photo','ultimate-member').'', - ''.__('Cancel','ultimate-member').'', + '' . __( 'Upload photo', 'ultimate-member' ) . '', + '' . __( 'Cancel', 'ultimate-member' ) . '', ); - $items = apply_filters('um_user_photo_menu_view', $items ); + $items = apply_filters( 'um_user_photo_menu_view', $items ); echo UM()->menu()->new_ui( 'bc', 'div.um-profile-photo', 'click', $items ); - } else if ( UM()->fields()->editing == true ) { + } else if (UM()->fields()->editing == true) { $items = array( - ''.__('Change photo','ultimate-member').'', - ''.__('Remove photo','ultimate-member').'', - ''.__('Cancel','ultimate-member').'', + '' . __( 'Change photo', 'ultimate-member' ) . '', + '' . __( 'Remove photo', 'ultimate-member' ) . '', + '' . __( 'Cancel', 'ultimate-member' ) . '', ); - $items = apply_filters('um_user_photo_menu_edit', $items ); + $items = apply_filters( 'um_user_photo_menu_edit', $items ); echo UM()->menu()->new_ui( 'bc', 'div.um-profile-photo', 'click', $items ); @@ -345,117 +351,126 @@ } - ?> + ?> -
    +
    -
    +
    -
    +
    - -
    + +
    - + - + -
    - +
    + -
    +
    - - + + -
    +
    - -
    + +
    profile()->show_meta( $args['metafields'] ); ?> -
    - +
    + - fields()->viewing == true && um_user('description') && $args['show_bio'] ) { ?> + fields()->viewing == true && um_user( 'description' ) && $args['show_bio']) { ?> -
    - - - - - -
    +
    + fields()->editing == true && $args['show_bio'] ) { ?> + $description = get_user_meta( um_user( 'ID' ), 'description', true ); + if (um_get_option( 'profile_show_html_bio' )) : ?> + + + + +
    -
    - - - fields()->is_error('description') ) { - echo UM()->fields()->field_error( UM()->fields()->show_error('description'), true ); + fields()->editing == true && $args['show_bio']) { ?> + +
    + + + fields()->is_error( 'description' )) { + echo UM()->fields()->field_error( UM()->fields()->show_error( 'description' ), true ); } ?> -
    +
    - + -
    - -
    +
    + +
    - + -
    - - fields()->is_error( 'profile_photo' ) ) { - echo UM()->fields()->field_error( UM()->fields()->show_error('profile_photo'), 'force_show' ); - } - ?> +
    +
    - + fields()->is_error( 'profile_photo' )) { + echo UM()->fields()->field_error( UM()->fields()->show_error( 'profile_photo' ), 'force_show' ); + } + ?> -
    + + +
    fields()->editing == false ) { + if ($mode == 'profile' && UM()->fields()->editing == false) { UM()->fields()->viewing = 1; - if ( um_get_requested_user() ) { - if ( ! um_can_view_profile( um_get_requested_user() ) && ! um_is_myprofile() ) - um_redirect_home(); + if (um_get_requested_user()) { + if (!um_can_view_profile( um_get_requested_user() ) && !um_is_myprofile()) + um_redirect_home(); - if ( ! UM()->roles()->um_current_user_can( 'edit', um_get_requested_user() ) ) - UM()->user()->cannot_edit = 1; + if (!UM()->roles()->um_current_user_can( 'edit', um_get_requested_user() )) + UM()->user()->cannot_edit = 1; - um_fetch_user( um_get_requested_user() ); + um_fetch_user( um_get_requested_user() ); } else { - if ( !is_user_logged_in() ) um_redirect_home(); - if ( !um_user('can_edit_profile') ) UM()->user()->cannot_edit = 1; + if (!is_user_logged_in()) um_redirect_home(); + if (!um_user( 'can_edit_profile' )) UM()->user()->cannot_edit = 1; } } - if ( $mode == 'profile' && UM()->fields()->editing == true ) { + if ($mode == 'profile' && UM()->fields()->editing == true) { UM()->fields()->editing = 1; - if ( um_get_requested_user() ) { - if ( ! UM()->roles()->um_current_user_can('edit', um_get_requested_user() ) ) um_redirect_home(); + if (um_get_requested_user()) { + if (!UM()->roles()->um_current_user_can( 'edit', um_get_requested_user() )) um_redirect_home(); um_fetch_user( um_get_requested_user() ); } @@ -464,82 +479,82 @@ } /*** - *** @display the edit profile icon - ***/ - add_action('um_pre_header_editprofile', 'um_add_edit_icon' ); + *** @display the edit profile icon + ***/ + add_action( 'um_pre_header_editprofile', 'um_add_edit_icon' ); function um_add_edit_icon( $args ) { $output = ''; - if ( !is_user_logged_in() ) return; // not allowed for guests + if (!is_user_logged_in()) return; // not allowed for guests - if ( isset( UM()->user()->cannot_edit ) && UM()->user()->cannot_edit == 1 ) return; // do not proceed if user cannot edit + if (isset( UM()->user()->cannot_edit ) && UM()->user()->cannot_edit == 1) return; // do not proceed if user cannot edit - if ( UM()->fields()->editing == true ) { - - ?> - -
    - - - -
    - - - -
    - - - - ''.__('Edit Profile','ultimate-member').'', - 'myaccount' => ''.__('My Account','ultimate-member').'', - 'logout' => ''.__('Logout','ultimate-member').'', - 'cancel' => ''.__('Cancel','ultimate-member').'', - ); - - $cancel = $items['cancel']; - - if ( !um_is_myprofile() ) { - - $actions = UM()->user()->get_admin_actions(); - - unset( $items['myaccount'] ); - unset( $items['logout'] ); - unset( $items['cancel'] ); - - if ( is_array( $actions ) ) { - $items = array_merge( $items, $actions ); - } - - $items = apply_filters('um_profile_edit_menu_items', $items, um_profile_id() ); - - $items['cancel'] = $cancel; - - } else { - - $items = apply_filters('um_myprofile_edit_menu_items', $items ); - - } - - UM()->menu()->new_ui( $args['header_menu'], 'div.um-profile-edit', 'click', $items ); + if (UM()->fields()->editing == true) { ?> -
    +
    - + +
    + + + +
    + + + + '' . __( 'Edit Profile', 'ultimate-member' ) . '', + 'myaccount' => '' . __( 'My Account', 'ultimate-member' ) . '', + 'logout' => '' . __( 'Logout', 'ultimate-member' ) . '', + 'cancel' => '' . __( 'Cancel', 'ultimate-member' ) . '', + ); + + $cancel = $items['cancel']; + + if (!um_is_myprofile()) { + + $actions = UM()->user()->get_admin_actions(); + + unset( $items['myaccount'] ); + unset( $items['logout'] ); + unset( $items['cancel'] ); + + if (is_array( $actions )) { + $items = array_merge( $items, $actions ); + } + + $items = apply_filters( 'um_profile_edit_menu_items', $items, um_profile_id() ); + + $items['cancel'] = $cancel; + + } else { + + $items = apply_filters( 'um_myprofile_edit_menu_items', $items ); + + } + + UM()->menu()->new_ui( $args['header_menu'], 'div.um-profile-edit', 'click', $items ); + + ?> + +
    + + fields()->editing == true ) { + *** @Show Fields + ***/ + add_action( 'um_main_profile_fields', 'um_add_profile_fields', 100 ); + function um_add_profile_fields( $args ) { + if (UM()->fields()->editing == true) { echo UM()->fields()->display( 'profile', $args ); @@ -554,79 +569,83 @@ } /*** - *** @form processing - ***/ + *** @form processing + ***/ add_action( 'um_submit_form_profile', 'um_submit_form_profile', 10 ); function um_submit_form_profile( $args ) { - if ( isset( UM()->form()->errors ) ) - return false; + if (isset( UM()->form()->errors )) + return false; - do_action( 'um_user_edit_profile', $args ); + do_action( 'um_user_edit_profile', $args ); } /*** - *** @Show the submit button (highest priority) - ***/ - add_action('um_after_profile_fields', 'um_add_submit_button_to_profile', 1000); - function um_add_submit_button_to_profile($args){ + *** @Show the submit button (highest priority) + ***/ + add_action( 'um_after_profile_fields', 'um_add_submit_button_to_profile', 1000 ); + function um_add_submit_button_to_profile( $args ) { // DO NOT add when reviewing user's details - if ( UM()->user()->preview == true && is_admin() ) return; + if (UM()->user()->preview == true && is_admin()) return; // only when editing - if ( UM()->fields()->editing == false ) return; + if (UM()->fields()->editing == false) return; ?> -
    +
    - + -
    -
    +
    +
    +
    -
    +
    -
    +
    -
    +
    profile()->tabs_active(); - $tabs = apply_filters('um_user_profile_tabs', $tabs ); + $tabs = apply_filters( 'um_user_profile_tabs', $tabs ); UM()->user()->tabs = $tabs; // need enough tabs to continue - if ( count( $tabs ) <= 1 ) return; + if (count( $tabs ) <= 1) return; $active_tab = UM()->profile()->active_tab(); - if ( !isset( $tabs[$active_tab] ) ) { + if (!isset( $tabs[$active_tab] )) { $active_tab = 'main'; UM()->profile()->active_tab = $active_tab; UM()->profile()->active_subnav = null; } // Move default tab priority - $default_tab = um_get_option('profile_menu_default_tab'); - $dtab = ( isset( $tabs[$default_tab] ) )? $tabs[$default_tab] : 'main'; - if ( isset( $tabs[ $default_tab ] ) ) { + $default_tab = um_get_option( 'profile_menu_default_tab' ); + $dtab = ( isset( $tabs[$default_tab] ) ) ? $tabs[$default_tab] : 'main'; + if (isset( $tabs[$default_tab] )) { unset( $tabs[$default_tab] ); $dtabs[$default_tab] = $dtab; $tabs = $dtabs + $tabs; @@ -634,103 +653,112 @@ ?> -
    +
    - $tab ) { + $tab) { - if ( isset( $tab['hidden'] ) ) continue; + if (isset( $tab['hidden'] )) continue; - $nav_link = UM()->permalinks()->get_current_url( get_option('permalink_structure') ); + $nav_link = UM()->permalinks()->get_current_url( get_option( 'permalink_structure' ) ); $nav_link = remove_query_arg( 'um_action', $nav_link ); $nav_link = remove_query_arg( 'subnav', $nav_link ); - $nav_link = add_query_arg('profiletab', $id, $nav_link ); + $nav_link = add_query_arg( 'profiletab', $id, $nav_link ); - $nav_link = apply_filters("um_profile_menu_link_{$id}", $nav_link); + $nav_link = apply_filters( "um_profile_menu_link_{$id}", $nav_link ); ?> - -
    +
    -
    +
    - $tab ) { + $tab) { - if ( isset( $tab['subnav'] ) && $active_tab == $id ) { + if (isset( $tab['subnav'] ) && $active_tab == $id) { - $active_subnav = ( UM()->profile()->active_subnav() ) ? UM()->profile()->active_subnav() : $tab['subnav_default']; + $active_subnav = ( UM()->profile()->active_subnav() ) ? UM()->profile()->active_subnav() : $tab['subnav_default']; - echo '
    '; - foreach( $tab['subnav'] as $id => $subtab ) { + echo '
    '; + foreach ($tab['subnav'] as $id => $subtab) { ?> - + - '; } - + echo '
    '; } + } + } /** * Clean up file for new uploaded files + * * @param integer $user_id - * @param array $arr_files + * @param array $arr_files */ - add_action( "um_before_user_upload","um_before_user_upload", 10 ,2 ); - function um_before_user_upload( $user_id, $arr_files ){ + add_action( "um_before_user_upload", "um_before_user_upload", 10, 2 ); + function um_before_user_upload( $user_id, $arr_files ) { um_fetch_user( $user_id ); - foreach ($arr_files as $key => $filename ) { - if( um_user( $key ) ){ - if( basename( $filename ) != basename( um_user( $key ) ) || in_array( $old_filename , array( basename( um_user( $key ) ), basename( $filename ) ) ) || $filename == 'empty_file' ){ + foreach ($arr_files as $key => $filename) { + if (um_user( $key )) { + if (basename( $filename ) != basename( um_user( $key ) ) || in_array( $old_filename, array( basename( um_user( $key ) ), basename( $filename ) ) ) || $filename == 'empty_file') { $old_filename = um_user( $key ); $path = UM()->files()->upload_basedir; delete_user_meta( $user_id, $old_filename ); - if ( file_exists( $path . $user_id . '/' . $old_filename ) ) { + if (file_exists( $path . $user_id . '/' . $old_filename )) { unlink( $path . $user_id . '/' . $old_filename ); } } diff --git a/includes/core/um-filters-fields.php b/includes/core/um-filters-fields.php index 27283763..ec5d36ea 100644 --- a/includes/core/um-filters-fields.php +++ b/includes/core/um-filters-fields.php @@ -458,4 +458,27 @@ } + /** + * Cleaning on XSS injection + * @param $value string + * @param $data array + * @return $value string + * @uses hook filters: um_profile_field_filter_hook__ + */ + add_filter('um_profile_field_filter_hook__','um_profile_field_filter_xss_validation',10,2); + function um_profile_field_filter__xss_validation( $value, $data ){ + if( ! empty( $value ) && is_string($value)){ + $value = stripslashes( $value ); + $data['validate'] = isset( $data['validate'] ) ? $data['validate'] : ''; + + if( 'text' == $data['type'] && !in_array( $data['validate'], array( 'unique_email' ) ) || + 'password' == $data['type'] ){ + $value = esc_attr( $value ); + }else if ( 'textarea' == $data['type'] ){ + $value = wp_kses_post( $value ); + } + } + + return $value; + } diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index efbaf5cd..32e3ab99 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -1,34 +1,35 @@ $length ? substr($s,0,$length)."..." : $s; + $s = strlen( $s ) > $length ? substr( $s, 0, $length ) . "..." : $s; + return $s; } /*** - *** @Convert urls to clickable links - ***/ - function um_clickable_links($s) { - - return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '$1', $s); + *** @Convert urls to clickable links + ***/ + function um_clickable_links( $s ) { + + return preg_replace( '@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '$1', $s ); } /*** - *** @Get where user should be headed after logging - ***/ + *** @Get where user should be headed after logging + ***/ function um_dynamic_login_page_redirect( $redirect_to = '' ) { $uri = um_get_core_page( 'login' ); - if ( ! $redirect_to ) { + if (!$redirect_to) { $redirect_to = UM()->permalinks()->get_current_url(); } @@ -41,16 +42,18 @@ /** * Set redirect key + * * @param string $url + * * @return string $redirect_key */ - function um_set_redirect_url( $url ){ + function um_set_redirect_url( $url ) { - if( um_is_session_started() === FALSE ){ - session_start(); + if (um_is_session_started() === false) { + session_start(); } - $redirect_key = wp_generate_password(12,false); + $redirect_key = wp_generate_password( 12, false ); $_SESSION['um_redirect_key'] = array( $redirect_key => $url ); @@ -59,25 +62,27 @@ /** * Set redirect key + * * @param string $url + * * @return string $redirect_key */ - function um_get_redirect_url( $key ){ + function um_get_redirect_url( $key ) { - if( um_is_session_started() === FALSE ){ - session_start(); + if (um_is_session_started() === false) { + session_start(); } - if( isset( $_SESSION['um_redirect_key'][ $key ] ) ){ + if (isset( $_SESSION['um_redirect_key'][$key] )) { - $url = $_SESSION['um_redirect_key'][ $key ]; + $url = $_SESSION['um_redirect_key'][$key]; return $url; - }else{ + } else { - if( isset( $_SESSION['um_redirect_key'] ) ){ - foreach ( $_SESSION['um_redirect_key'] as $key => $url ) { + if (isset( $_SESSION['um_redirect_key'] )) { + foreach ($_SESSION['um_redirect_key'] as $key => $url) { return $url; @@ -92,39 +97,41 @@ /** * Checks if session has been started + * * @return bool - */ - function um_is_session_started(){ + */ + function um_is_session_started() { - if ( php_sapi_name() !== 'cli' ) { - if ( version_compare(phpversion(), '5.4.0', '>=') ) { - return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE; - } else { - return session_id() === '' ? FALSE : TRUE; - } + if (php_sapi_name() !== 'cli') { + if (version_compare( phpversion(), '5.4.0', '>=' )) { + return session_status() === PHP_SESSION_ACTIVE ? true : false; + } else { + return session_id() === '' ? false : true; + } } - return FALSE; + return false; } /*** - *** @user clean basename - ***/ + *** @user clean basename + ***/ function um_clean_user_basename( $value ) { $raw_value = $value; - $value = str_replace('.', ' ', $value); - $value = str_replace('-', ' ', $value); - $value = str_replace('+', ' ', $value); + $value = str_replace( '.', ' ', $value ); + $value = str_replace( '-', ' ', $value ); + $value = str_replace( '+', ' ', $value ); - $value = apply_filters('um_clean_user_basename_filter', $value, $raw_value ); + $value = apply_filters( 'um_clean_user_basename_filter', $value, $raw_value ); return $value; } + /*** - *** @convert template tags - ***/ + *** @convert template tags + ***/ function um_convert_tags( $content, $args = array() ) { $search = array( @@ -148,45 +155,45 @@ '{user_avatar_url}', ); - $search = apply_filters('um_template_tags_patterns_hook', $search); + $search = apply_filters( 'um_template_tags_patterns_hook', $search ); $replace = array( - um_user('display_name'), - um_user('first_name'), - um_user('last_name'), - um_user('gender'), - um_user('user_login'), - um_user('user_email'), - um_user('_um_cool_but_hard_to_guess_plain_pw'), - um_get_core_page('login'), + um_user( 'display_name' ), + um_user( 'first_name' ), + um_user( 'last_name' ), + um_user( 'gender' ), + um_user( 'user_login' ), + um_user( 'user_email' ), + um_user( '_um_cool_but_hard_to_guess_plain_pw' ), + um_get_core_page( 'login' ), um_dynamic_login_page_redirect(), - um_get_option('site_name'), - get_bloginfo('url'), - um_user('account_activation_link'), - um_user('password_reset_link'), + um_get_option( 'site_name' ), + get_bloginfo( 'url' ), + um_user( 'account_activation_link' ), + um_user( 'password_reset_link' ), um_admin_email(), um_user_profile_url(), - um_get_core_page('account'), + um_get_core_page( 'account' ), um_user_submitted_registration(), um_get_user_avatar_url(), ); - $replace = apply_filters('um_template_tags_replaces_hook', $replace); - - $content = wp_kses_decode_entities( str_replace($search, $replace, $content) ); + $replace = apply_filters( 'um_template_tags_replaces_hook', $replace ); - if ( isset( $args['tags'] ) && isset( $args['tags_replace'] ) ) { - $content = str_replace($args['tags'], $args['tags_replace'], $content); + $content = wp_kses_decode_entities( str_replace( $search, $replace, $content ) ); + + if (isset( $args['tags'] ) && isset( $args['tags_replace'] )) { + $content = str_replace( $args['tags'], $args['tags_replace'], $content ); } $regex = '~\{([^}]*)\}~'; - preg_match_all($regex, $content, $matches); + preg_match_all( $regex, $content, $matches ); // Support for all usermeta keys - if ( isset( $matches[1] ) && is_array( $matches[1] ) && !empty( $matches[1] ) ) { - foreach( $matches[1] as $match ) { - $strip_key = str_replace('usermeta:','', $match ); - $content = str_replace( '{' . $match . '}', um_user( $strip_key ), $content); + if (isset( $matches[1] ) && is_array( $matches[1] ) && !empty( $matches[1] )) { + foreach ($matches[1] as $match) { + $strip_key = str_replace( 'usermeta:', '', $match ); + $content = str_replace( '{' . $match . '}', um_user( $strip_key ), $content ); } } @@ -204,167 +211,167 @@ * @returns Returns the user's IP address. * * @example The example below can retrieve the user's IP address - - - + * + * * * */ function um_user_ip() { $ip = '127.0.0.1'; - if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) { + if (!empty( $_SERVER['HTTP_CLIENT_IP'] )) { //check ip from share internet $ip = $_SERVER['HTTP_CLIENT_IP']; - } elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { + } else if (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'] )) { //to check ip is pass from proxy $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; - } elseif( ! empty( $_SERVER['REMOTE_ADDR'] ) ) { + } else if (!empty( $_SERVER['REMOTE_ADDR'] )) { $ip = $_SERVER['REMOTE_ADDR']; } + return apply_filters( 'um_user_ip', $ip ); } /*** - *** @If conditions are met return true; - ***/ + *** @If conditions are met return true; + ***/ function um_field_conditions_are_met( $data ) { - if ( ! isset( $data['conditions'] ) ) return true; + if (!isset( $data['conditions'] )) return true; $state = 1; - - foreach ( $data['conditions'] as $k => $arr ) { - if ( $arr[0] == 'show' ) { + + foreach ($data['conditions'] as $k => $arr) { + if ($arr[0] == 'show') { $val = $arr[3]; $op = $arr[2]; - if ( strstr( $arr[1] , 'role_') ) + if (strstr( $arr[1], 'role_' )) $arr[1] = 'role'; $field = um_profile( $arr[1] ); - - switch( $op ) { + + switch ($op) { case 'equals to': $field = maybe_unserialize( $field ); - if ( is_array( $field ) ) - $state = in_array( $val , $field ) ? 1 : 0; + if (is_array( $field )) + $state = in_array( $val, $field ) ? 1 : 0; else $state = ( $field == $val ) ? 1 : 0; - break; + break; case 'not equals': $field = maybe_unserialize( $field ); - if ( is_array( $field ) ) - $state = ! in_array( $val , $field ) ? 1 : 0; + if (is_array( $field )) + $state = !in_array( $val, $field ) ? 1 : 0; else $state = ( $field != $val ) ? 1 : 0; - break; + break; case 'empty': - $state = ( ! $field ) ? 1 : 0; + $state = ( !$field ) ? 1 : 0; - break; + break; case 'not empty': $state = ( $field ) ? 1 : 0; - break; + break; case 'greater than': - if ( $field > $val ){ + if ($field > $val) { $state = 1; - }else{ + } else { $state = 0; - } - break; - case 'less than': - if ( $field < $val ){ + } + break; + case 'less than': + if ($field < $val) { $state = 1; - }else{ + } else { $state = 0; - } - break; - case 'contains': - if ( strstr( $field, $val ) ){ - $state = 1; - }else{ + } + break; + case 'contains': + if (strstr( $field, $val )) { + $state = 1; + } else { $state = 0; - } - break; + } + break; } - } elseif ( $arr[0] == 'hide' ) { + } else if ($arr[0] == 'hide') { $state = 1; $val = $arr[3]; $op = $arr[2]; - if ( strstr( $arr[1] , 'role_' ) ) + if (strstr( $arr[1], 'role_' )) $arr[1] = 'role'; $field = um_profile( $arr[1] ); - - switch( $op ) { + + switch ($op) { case 'equals to': $field = maybe_unserialize( $field ); - if ( is_array( $field ) ) - $state = in_array( $val , $field ) ? 0 : 1; + if (is_array( $field )) + $state = in_array( $val, $field ) ? 0 : 1; else $state = ( $field == $val ) ? 0 : 1; - break; + break; case 'not equals': $field = maybe_unserialize( $field ); - if ( is_array( $field ) ) - $state = ! in_array( $val , $field ) ? 0 : 1; + if (is_array( $field )) + $state = !in_array( $val, $field ) ? 0 : 1; else $state = ( $field != $val ) ? 0 : 1; - break; + break; case 'empty': - $state = ( ! $field ) ? 0 : 1; + $state = ( !$field ) ? 0 : 1; - break; + break; case 'not empty': $state = ( $field ) ? 0 : 1; - break; - case 'greater than': - if ( $field <= $val ){ - $state = 0; - }else{ + break; + case 'greater than': + if ($field <= $val) { + $state = 0; + } else { $state = 1; } - break; - case 'less than': - if ( $field >= $val ){ - $state = 0; - }else{ + break; + case 'less than': + if ($field >= $val) { + $state = 0; + } else { $state = 1; } - break; - case 'contains': - if ( strstr( $field, $val ) ){ - $state = 0; - }else{ + break; + case 'contains': + if (strstr( $field, $val )) { + $state = 0; + } else { $state = 1; } - break; + break; } } } @@ -373,100 +380,101 @@ } /*** - *** @Exit and redirect to home - ***/ + *** @Exit and redirect to home + ***/ function um_redirect_home() { - + exit( wp_redirect( home_url() ) ); } function um_js_redirect( $url ) { - if ( headers_sent() || empty( $url ) ) { - //for blank redirects - if ( '' == $url ) { - $url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; - } + if (headers_sent() || empty( $url )) { + //for blank redirects + if ('' == $url) { + $url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; + } - $funtext="echo \"\";"; - register_shutdown_function(create_function('',$funtext)); + $funtext = "echo \"\";"; + register_shutdown_function( create_function( '', $funtext ) ); - if ( 1 < ob_get_level() ) { - while ( ob_get_level() > 1 ) { - ob_end_clean(); - } - } + if (1 < ob_get_level()) { + while (ob_get_level() > 1) { + ob_end_clean(); + } + } - ?> + ?> - $wordCount ) { - $str = implode( - '', - array_slice( - preg_split( - '/([\s,\.;\?\!]+)/', - $str, - $wordCount*2+1, - PREG_SPLIT_DELIM_CAPTURE - ), - 0, - $wordCount*2-1 - ) - ); + if (str_word_count( $str ) > $wordCount) { + $str = implode( + '', + array_slice( + preg_split( + '/([\s,\.;\?\!]+)/', + $str, + $wordCount * 2 + 1, + PREG_SPLIT_DELIM_CAPTURE + ), + 0, + $wordCount * 2 - 1 + ) + ); } - return $str; + + return $str; } /*** - *** @Get submitted user information - ***/ + *** @Get submitted user information + ***/ function um_user_submitted_registration( $style = false ) { $output = null; $data = um_user( 'submitted' ); - if ( $style ) + if ($style) $output .= '
    '; - if ( isset( $data ) && is_array( $data ) ) { + if (isset( $data ) && is_array( $data )) { - $data = apply_filters('um_email_registration_data', $data ); + $data = apply_filters( 'um_email_registration_data', $data ); - foreach( $data as $k => $v ) { + foreach ($data as $k => $v) { - if ( !is_array( $v ) && strstr( $v, 'ultimatemember/temp' ) ) { + if (!is_array( $v ) && strstr( $v, 'ultimatemember/temp' )) { $file = basename( $v ); $v = um_user_uploads_uri() . $file; } - if ( !strstr( $k, 'user_pass' ) && ! in_array( $k, array('g-recaptcha-response','request','_wpnonce','_wp_http_referer') ) ) { + if (!strstr( $k, 'user_pass' ) && !in_array( $k, array( 'g-recaptcha-response', 'request', '_wpnonce', '_wp_http_referer' ) )) { - if ( is_array($v) ) { - $v = implode(',', $v ); + if (is_array( $v )) { + $v = implode( ',', $v ); } - if ( $k == 'timestamp' ) { - $k = __('date submitted','ultimate-member'); - $v = date("d M Y H:i", $v); + if ($k == 'timestamp') { + $k = __( 'date submitted', 'ultimate-member' ); + $v = date( "d M Y H:i", $v ); } - if ( $style ) { - if ( !$v ) $v = __('(empty)','ultimate-member'); + if ($style) { + if (!$v) $v = __( '(empty)', 'ultimate-member' ); $output .= "

    $v

    "; } else { $output .= "$k: $v" . "
    "; @@ -477,45 +485,46 @@ } } - if ( $style ) + if ($style) $output .= '
    '; return $output; } /*** - *** @Show filtered social link - ***/ + *** @Show filtered social link + ***/ function um_filtered_social_link( $key, $match ) { $value = um_profile( $key ); $submatch = str_replace( 'https://', '', $match ); $submatch = str_replace( 'http://', '', $submatch ); - if ( strstr( $value, $submatch ) ) { + if (strstr( $value, $submatch )) { $value = 'https://' . $value; - } else if ( strpos($value, 'http') !== 0 ) { + } else if (strpos( $value, 'http' ) !== 0) { $value = $match . $value; } - $value = str_replace('https://https://','https://',$value); - $value = str_replace('http://https://','https://',$value); - $value = str_replace('https://http://','https://',$value); + $value = str_replace( 'https://https://', 'https://', $value ); + $value = str_replace( 'http://https://', 'https://', $value ); + $value = str_replace( 'https://http://', 'https://', $value ); + return $value; } /*** - *** @Get filtered meta value after applying hooks - ***/ + *** @Get filtered meta value after applying hooks + ***/ function um_filtered_value( $key, $data = false ) { $value = um_user( $key ); - if ( !$data ) { + if (!$data) { $data = UM()->builtin()->get_specific_field( $key ); } - $type = ( isset($data['type']) ) ? $data['type'] : ''; + $type = ( isset( $data['type'] ) ) ? $data['type'] : ''; - $value = apply_filters("um_profile_field_filter_hook__", $value, $data, $type ); - $value = apply_filters("um_profile_field_filter_hook__{$key}", $value, $data ); - $value = apply_filters("um_profile_field_filter_hook__{$type}", $value, $data ); + $value = apply_filters( "um_profile_field_filter_hook__", $value, $data, $type ); + $value = apply_filters( "um_profile_field_filter_hook__{$key}", $value, $data ); + $value = apply_filters( "um_profile_field_filter_hook__{$type}", $value, $data ); return $value; } @@ -523,9 +532,9 @@ function um_profile_id() { - if ( um_get_requested_user() ) { + if (um_get_requested_user()) { return um_get_requested_user(); - } else if ( is_user_logged_in() && get_current_user_id() ) { + } else if (is_user_logged_in() && get_current_user_id()) { return get_current_user_id(); } @@ -533,57 +542,59 @@ } /*** - *** @Check that temp upload is valid - ***/ + *** @Check that temp upload is valid + ***/ function um_is_temp_upload( $url ) { - if ( filter_var( $url, FILTER_VALIDATE_URL ) === false ) + if (filter_var( $url, FILTER_VALIDATE_URL ) === false) $url = realpath( $url ); - if ( ! $url ) + if (!$url) return false; $url = explode( '/ultimatemember/temp/', $url ); - if ( isset( $url[1] ) ) { + if (isset( $url[1] )) { - if ( strstr( $url[1], '../' ) || strstr( $url[1], '%' ) ) + if (strstr( $url[1], '../' ) || strstr( $url[1], '%' )) return false; $src = UM()->files()->upload_temp . $url[1]; - if ( ! file_exists( $src ) ) + if (!file_exists( $src )) return false; return $src; } + return false; } /*** - *** @Check that temp image is valid - ***/ + *** @Check that temp image is valid + ***/ function um_is_temp_image( $url ) { - $url = explode('/ultimatemember/temp/', $url); - if ( isset( $url[1] ) ) { + $url = explode( '/ultimatemember/temp/', $url ); + if (isset( $url[1] )) { $src = UM()->files()->upload_temp . $url[1]; - if ( !file_exists( $src ) ) + if (!file_exists( $src )) return false; - list($width, $height, $type, $attr) = @getimagesize($src); - if ( isset( $width ) && isset( $height ) ) + list( $width, $height, $type, $attr ) = @getimagesize( $src ); + if (isset( $width ) && isset( $height )) return $src; } + return false; } /*** - *** @Get a translated core page URL - ***/ - function um_get_url_for_language( $post_id, $language ){ - $lang_post_id = icl_object_id( $post_id , 'page', true, $language ); + *** @Get a translated core page URL + ***/ + function um_get_url_for_language( $post_id, $language ) { + $lang_post_id = icl_object_id( $post_id, 'page', true, $language ); $url = ""; - if($lang_post_id != 0) { + if ($lang_post_id != 0) { $url = get_permalink( $lang_post_id ); - }else { + } else { // No page found, it's most likely the homepage global $sitepress; $url = $sitepress->language_url( $language ); @@ -593,71 +604,75 @@ } /*** - *** @Get core page url - ***/ + *** @Get core page url + ***/ function um_time_diff( $time1, $time2 ) { return UM()->datetime()->time_diff( $time1, $time2 ); } /*** - *** @Get user's last login timestamp - ***/ + *** @Get user's last login timestamp + ***/ function um_user_last_login_timestamp( $user_id ) { $value = get_user_meta( $user_id, '_um_last_login', true ); - if ( $value ) + if ($value) return $value; + return ''; } /*** - *** @Get user's last login time - ***/ + *** @Get user's last login time + ***/ function um_user_last_login_date( $user_id ) { $value = get_user_meta( $user_id, '_um_last_login', true ); - if ( $value ) - return date_i18n('F d, Y', $value ); + if ($value) + return date_i18n( 'F d, Y', $value ); + return ''; } /*** - *** @Get user's last login (time diff) - ***/ + *** @Get user's last login (time diff) + ***/ function um_user_last_login( $user_id ) { $value = get_user_meta( $user_id, '_um_last_login', true ); - if ( $value ) { - $value = um_time_diff( $value, current_time('timestamp') ); + if ($value) { + $value = um_time_diff( $value, current_time( 'timestamp' ) ); } else { $value = ''; } + return $value; } /*** - *** @Get core page url - ***/ - function um_get_core_page( $slug, $updated = false) { + *** @Get core page url + ***/ + function um_get_core_page( $slug, $updated = false ) { $url = ''; - if ( isset( UM()->config()->permalinks[ $slug ] ) ) { - $url = get_permalink( UM()->config()->permalinks[ $slug ] ); - if ( $updated ) - $url = add_query_arg( 'updated', esc_attr( $updated ), $url ); + if (isset( UM()->config()->permalinks[$slug] )) { + $url = get_permalink( UM()->config()->permalinks[$slug] ); + if ($updated) + $url = add_query_arg( 'updated', esc_attr( $updated ), $url ); } - if ( function_exists('icl_get_current_language') && icl_get_current_language() != icl_get_default_language() ) { + if (function_exists( 'icl_get_current_language' ) && icl_get_current_language() != icl_get_default_language()) { - $url = um_get_url_for_language( UM()->config()->permalinks[ $slug ], icl_get_current_language() ); + $url = um_get_url_for_language( UM()->config()->permalinks[$slug], icl_get_current_language() ); - if ( get_post_meta( get_the_ID() , '_um_wpml_account', true ) == 1 ) { + if (get_post_meta( get_the_ID(), '_um_wpml_account', true ) == 1) { $url = get_permalink( get_the_ID() ); } - if ( get_post_meta( get_the_ID() , '_um_wpml_user', true ) == 1 ) { - $url = um_get_url_for_language( UM()->config()->permalinks[ $slug ], icl_get_current_language() ); + if (get_post_meta( get_the_ID(), '_um_wpml_user', true ) == 1) { + $url = um_get_url_for_language( UM()->config()->permalinks[$slug], icl_get_current_language() ); } } - if ( $url ) { - $url = apply_filters('um_get_core_page_filter', $url, $slug, $updated); + if ($url) { + $url = apply_filters( 'um_get_core_page_filter', $url, $slug, $updated ); + return $url; } @@ -665,12 +680,13 @@ } /*** - *** @boolean check if we are on UM page - ***/ + *** @boolean check if we are on UM page + ***/ function is_ultimatemember() { global $post; - if ( isset( $post->ID ) && in_array( $post->ID, UM()->config()->permalinks ) ) + if (isset( $post->ID ) && in_array( $post->ID, UM()->config()->permalinks )) return true; + return false; } @@ -682,20 +698,21 @@ * 'user', 'login', 'register', 'members', 'logout', 'account', 'password-reset' * * @param string $page UM core page slug + * * @return bool */ function um_is_core_page( $page ) { global $post; - if ( isset($post->ID) && isset( UM()->config()->permalinks[ $page ] ) && $post->ID == UM()->config()->permalinks[ $page ] ) + if (isset( $post->ID ) && isset( UM()->config()->permalinks[$page] ) && $post->ID == UM()->config()->permalinks[$page]) return true; - if ( isset($post->ID) && get_post_meta( $post->ID, '_um_wpml_' . $page, true ) == 1 ) + if (isset( $post->ID ) && get_post_meta( $post->ID, '_um_wpml_' . $page, true ) == 1) return true; - if( isset($post->ID) ){ + if (isset( $post->ID )) { $_icl_lang_duplicate_of = get_post_meta( $post->ID, '_icl_lang_duplicate_of', true ); - if ( isset( UM()->config()->permalinks[ $page ] ) && ( ( $_icl_lang_duplicate_of == UM()->config()->permalinks[ $page ] && ! empty( $_icl_lang_duplicate_of ) ) || UM()->config()->permalinks[ $page ] == $post->ID ) ) + if (isset( UM()->config()->permalinks[$page] ) && ( ( $_icl_lang_duplicate_of == UM()->config()->permalinks[$page] && !empty( $_icl_lang_duplicate_of ) ) || UM()->config()->permalinks[$page] == $post->ID )) return true; } @@ -704,15 +721,15 @@ function um_is_core_post( $post, $core_page ) { - if ( isset( $post->ID ) && isset( UM()->config()->permalinks[ $core_page ] ) && $post->ID == UM()->config()->permalinks[ $core_page ] ) + if (isset( $post->ID ) && isset( UM()->config()->permalinks[$core_page] ) && $post->ID == UM()->config()->permalinks[$core_page]) return true; - if ( isset($post->ID) && get_post_meta( $post->ID, '_um_wpml_' . $core_page, true ) == 1 ) + if (isset( $post->ID ) && get_post_meta( $post->ID, '_um_wpml_' . $core_page, true ) == 1) return true; - if( isset($post->ID) ){ + if (isset( $post->ID )) { $_icl_lang_duplicate_of = get_post_meta( $post->ID, '_icl_lang_duplicate_of', true ); - if ( isset( UM()->config()->permalinks[ $core_page ] ) && ( ( $_icl_lang_duplicate_of == UM()->config()->permalinks[ $core_page ] && ! empty( $_icl_lang_duplicate_of ) ) || UM()->config()->permalinks[ $core_page ] == $post->ID ) ) + if (isset( UM()->config()->permalinks[$core_page] ) && ( ( $_icl_lang_duplicate_of == UM()->config()->permalinks[$core_page] && !empty( $_icl_lang_duplicate_of ) ) || UM()->config()->permalinks[$core_page] == $post->ID )) return true; } @@ -720,36 +737,38 @@ } /*** - *** @Is core URL - ***/ + *** @Is core URL + ***/ function um_is_core_uri() { $array = UM()->config()->permalinks; - $current_url = UM()->permalinks()->get_current_url( get_option('permalink_structure') ); + $current_url = UM()->permalinks()->get_current_url( get_option( 'permalink_structure' ) ); - if ( !isset( $array ) || !is_array( $array ) ) return false; + if (!isset( $array ) || !is_array( $array )) return false; - foreach( $array as $k => $id ) { + foreach ($array as $k => $id) { $page_url = get_permalink( $id ); - if ( strstr( $current_url, $page_url ) ) + if (strstr( $current_url, $page_url )) return true; } + return false; } /*** - *** @Check value of queried search in text input - ***/ + *** @Check value of queried search in text input + ***/ function um_queried_search_value( $filter, $echo = true ) { $value = ''; - if ( isset( $_REQUEST['um_search'] ) ) { + if (isset( $_REQUEST['um_search'] )) { $query = UM()->permalinks()->get_query_array(); - if ( isset( $query[ $filter ] ) && $query[ $filter ] != '' ) { - $value = stripslashes_deep( $query[ $filter ] ); + if (isset( $query[$filter] ) && $query[$filter] != '') { + $value = stripslashes_deep( $query[$filter] ); } } - - if ( $echo ) { + + if ($echo) { echo $value; + return ''; } else { return $value; @@ -758,15 +777,15 @@ } /*** - *** @Check whether item in dropdown is selected in query-url - ***/ + *** @Check whether item in dropdown is selected in query-url + ***/ function um_select_if_in_query_params( $filter, $val ) { $selected = false; - if ( isset( $_REQUEST['um_search'] ) ) { + if (isset( $_REQUEST['um_search'] )) { $query = UM()->permalinks()->get_query_array(); - if ( isset( $query[ $filter ] ) && $val == $query[ $filter ] ) + if (isset( $query[$filter] ) && $val == $query[$filter]) $selected = true; $selected = apply_filters( 'um_selected_if_in_query_params', $selected, $filter, $val ); @@ -776,22 +795,22 @@ } /*** - *** @get styling defaults - ***/ + *** @get styling defaults + ***/ function um_styling_defaults( $mode ) { - $new_arr = array(); + $new_arr = array(); $core_form_meta_all = UM()->config()->core_form_meta_all; $core_global_meta_all = UM()->config()->core_global_meta_all; - foreach( $core_form_meta_all as $k => $v ) { + foreach ($core_form_meta_all as $k => $v) { $s = str_replace( $mode . '_', '', $k ); - if ( strstr( $k, '_um_'.$mode.'_' ) && !in_array( $s, $core_global_meta_all ) ) { - $a = str_replace( '_um_'.$mode.'_','',$k); - $b = str_replace( '_um_','',$k); + if (strstr( $k, '_um_' . $mode . '_' ) && !in_array( $s, $core_global_meta_all )) { + $a = str_replace( '_um_' . $mode . '_', '', $k ); + $b = str_replace( '_um_', '', $k ); $new_arr[$a] = um_get_option( $b ); - } else if ( in_array( $k, $core_global_meta_all ) ) { - $a = str_replace('_um_','',$k); + } else if (in_array( $k, $core_global_meta_all )) { + $a = str_replace( '_um_', '', $k ); $new_arr[$a] = um_get_option( $a ); } } @@ -800,73 +819,77 @@ } /*** - *** @get meta option default - ***/ + *** @get meta option default + ***/ function um_get_metadefault( $id ) { $core_form_meta_all = UM()->config()->core_form_meta_all; - return isset( $core_form_meta_all[ '_um_' . $id ] ) ? $core_form_meta_all[ '_um_' . $id ] : ''; + + return isset( $core_form_meta_all['_um_' . $id] ) ? $core_form_meta_all['_um_' . $id] : ''; } /*** - *** @check if a legitimate password reset request is in action - ***/ + *** @check if a legitimate password reset request is in action + ***/ function um_requesting_password_reset() { - if ( um_is_core_page('password-reset') && isset( $_POST['_um_password_reset'] ) == 1 ) + if (um_is_core_page( 'password-reset' ) && isset( $_POST['_um_password_reset'] ) == 1) return true; + return false; } /*** - *** @check if a legitimate password change request is in action - ***/ + *** @check if a legitimate password change request is in action + ***/ function um_requesting_password_change() { - if ( um_is_core_page('account') && isset( $_POST['_um_account'] ) == 1 ) + if (um_is_core_page( 'account' ) && isset( $_POST['_um_account'] ) == 1) return true; - elseif ( isset( $_POST['_um_password_change'] ) && $_POST['_um_password_change'] == 1) + else if (isset( $_POST['_um_password_change'] ) && $_POST['_um_password_change'] == 1) return true; + return false; } /*** - *** @boolean for account page editing - ***/ + *** @boolean for account page editing + ***/ function um_submitting_account_page() { - if ( isset( $_POST['_um_account'] ) && $_POST['_um_account'] == 1 && is_user_logged_in() ) + if (isset( $_POST['_um_account'] ) && $_POST['_um_account'] == 1 && is_user_logged_in()) return true; + return false; } /*** - *** @get a user's display name - ***/ + *** @get a user's display name + ***/ function um_get_display_name( $user_id ) { um_fetch_user( $user_id ); - $name = um_user('display_name'); + $name = um_user( 'display_name' ); um_reset_user(); + return $name; } /*** - *** @get members to show in directory - ***/ + *** @get members to show in directory + ***/ function um_members( $argument ) { - return UM()->members()->results[ $argument ]; + return UM()->members()->results[$argument]; } /** * @function um_reset_user_clean() * - * @description This function is similar to um_reset_user() with a difference that it will not use the logged-in user - data after resetting. It is a hard-reset function for all user data. + * @description This function is similar to um_reset_user() with a difference that it will not use the logged-in + * user data after resetting. It is a hard-reset function for all user data. * * @usage * * @returns Clears the user data. You need to fetch a user manually after using this function. * * @example You can reset user data by using the following line in your code - - - + * + * * * */ @@ -878,16 +901,15 @@ * @function um_reset_user() * * @description This function resets the current user. You can use it to reset user data after - retrieving the details of a specific user. + * retrieving the details of a specific user. * * @usage * * @returns Clears the user data. If a user is logged in, the user data will be reset to that user's data * * @example You can reset user data by using the following line in your code - - - + * + * * * */ @@ -896,38 +918,39 @@ } /*** - *** @gets the queried user - ***/ + *** @gets the queried user + ***/ function um_queried_user() { - - return get_query_var('um_user'); + + return get_query_var( 'um_user' ); } /*** - *** @Sets the requested user - ***/ + *** @Sets the requested user + ***/ function um_set_requested_user( $user_id ) { UM()->user()->target_id = $user_id; } /*** - *** @Gets the requested user - ***/ + *** @Gets the requested user + ***/ function um_get_requested_user() { - if ( ! empty( UM()->user()->target_id ) ) + if (!empty( UM()->user()->target_id )) return UM()->user()->target_id; + return false; } /*** - *** @remove edit profile args from url - ***/ + *** @remove edit profile args from url + ***/ function um_edit_my_profile_cancel_uri( $url = '' ) { - if ( empty( $url ) ) { + if (empty( $url )) { $url = remove_query_arg( 'um_action' ); $url = remove_query_arg( 'profiletab', $url ); - $url = add_query_arg('profiletab', 'main', $url ); + $url = add_query_arg( 'profiletab', 'main', $url ); } $url = apply_filters( 'um_edit_profile_cancel_uri', $url ); @@ -936,38 +959,40 @@ } /*** - *** @boolean for profile edit page - ***/ + *** @boolean for profile edit page + ***/ function um_is_on_edit_profile() { - if ( isset( $_REQUEST['profiletab'] ) && isset( $_REQUEST['um_action'] ) ) { - if ( $_REQUEST['profiletab'] == 'main' && $_REQUEST['um_action'] == 'edit' ) { + if (isset( $_REQUEST['profiletab'] ) && isset( $_REQUEST['um_action'] )) { + if ($_REQUEST['profiletab'] == 'main' && $_REQUEST['um_action'] == 'edit') { return true; } } + return false; } /*** - *** @can view field - ***/ + *** @can view field + ***/ function um_can_view_field( $data ) { - if ( ! isset( UM()->fields()->set_mode ) ) + + if (!isset( UM()->fields()->set_mode )) UM()->fields()->set_mode = ''; - if ( isset( $data['public'] ) && UM()->fields()->set_mode != 'register' ) { + if (isset( $data['public'] ) && UM()->fields()->set_mode != 'register') { - if ( !is_user_logged_in() && $data['public'] != '1' ) return false; + if (!is_user_logged_in() && $data['public'] != '1') return false; - if ( is_user_logged_in() ) { + if (is_user_logged_in()) { - if ( $data['public'] == '-3' && ! um_is_user_himself() && ! in_array( UM()->roles()->um_get_user_role( get_current_user_id() ), $data['roles'] ) ) + if ($data['public'] == '-3' && !um_is_user_himself() && !in_array( UM()->roles()->um_get_user_role( get_current_user_id() ), $data['roles'] )) return false; - if ( ! um_is_user_himself() && $data['public'] == '-1' && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) + if (!um_is_user_himself() && $data['public'] == '-1' && !UM()->roles()->um_user_can( 'can_edit_everyone' )) return false; - if ( $data['public'] == '-2' && $data['roles'] ) - if ( ! in_array( UM()->roles()->um_get_user_role( get_current_user_id() ), $data['roles'] ) ) + if ($data['public'] == '-2' && $data['roles']) + if (!in_array( UM()->roles()->um_get_user_role( get_current_user_id() ), $data['roles'] )) return false; } @@ -977,27 +1002,27 @@ } /*** - *** @checks if user can view profile - ***/ + *** @checks if user can view profile + ***/ function um_can_view_profile( $user_id ) { - if ( !um_user('can_view_all') && $user_id != get_current_user_id() && is_user_logged_in() ) return false; + if (!um_user( 'can_view_all' ) && $user_id != get_current_user_id() && is_user_logged_in()) return false; - if ( UM()->roles()->um_current_user_can('edit', $user_id ) ) { + if (UM()->roles()->um_current_user_can( 'edit', $user_id )) { return true; } - if ( !is_user_logged_in() ) { - if ( UM()->user()->is_private_profile( $user_id ) ) { + if (!is_user_logged_in()) { + if (UM()->user()->is_private_profile( $user_id )) { return false; } else { return true; } } - if ( ! um_user('can_access_private_profile') && UM()->user()->is_private_profile( $user_id ) ) return false; + if (!um_user( 'can_access_private_profile' ) && UM()->user()->is_private_profile( $user_id )) return false; - if ( UM()->roles()->um_user_can( 'can_view_roles' ) && $user_id != get_current_user_id() ) { - if ( ! in_array( UM()->roles()->um_get_user_role( $user_id ), UM()->roles()->um_user_can( 'can_view_roles' ) ) ) { + if (UM()->roles()->um_user_can( 'can_view_roles' ) && $user_id != get_current_user_id()) { + if (!in_array( UM()->roles()->um_get_user_role( $user_id ), UM()->roles()->um_user_can( 'can_view_roles' ) )) { return false; } } @@ -1007,32 +1032,35 @@ } /*** - *** @boolean check for not same user - ***/ + *** @boolean check for not same user + ***/ function um_is_user_himself() { - if ( um_get_requested_user() && um_get_requested_user() != get_current_user_id() ) + if (um_get_requested_user() && um_get_requested_user() != get_current_user_id()) return false; + return true; } /*** - *** @can edit field - ***/ + *** @can edit field + ***/ function um_can_edit_field( $data ) { - if ( isset( UM()->fields()->editing ) && UM()->fields()->editing == true && - isset( UM()->fields()->set_mode ) && UM()->fields()->set_mode == 'profile' ) { + if (isset( UM()->fields()->editing ) && UM()->fields()->editing == true && + isset( UM()->fields()->set_mode ) && UM()->fields()->set_mode == 'profile' + ) { - if ( is_user_logged_in() && isset( $data['editable'] ) && $data['editable'] == 0 ) { + if (is_user_logged_in() && isset( $data['editable'] ) && $data['editable'] == 0) { - if( isset( $data['public'] ) && $data['public'] == "-2"){ + if (isset( $data['public'] ) && $data['public'] == "-2") { + return true; + } + + if (um_user( 'can_edit_everyone' )) return true; + if (um_is_user_himself() && !um_user( 'can_edit_everyone' )) { return true; } - if ( um_is_user_himself() && !um_user('can_edit_everyone') ){ - return true; - } - - if ( ! um_is_user_himself() && ! UM()->roles()->um_user_can( 'can_edit_everyone' ) ) + if (!um_is_user_himself() && !UM()->roles()->um_user_can( 'can_edit_everyone' )) return false; } @@ -1044,46 +1072,49 @@ /*** - *** @Check if user is in his profile - ***/ - function um_is_myprofile(){ - 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; + *** @Check if user is in his profile + ***/ + function um_is_myprofile() { + 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; } /*** - *** @Returns the edit profile link - ***/ - function um_edit_profile_url(){ - if( um_is_core_page('user') ){ + *** @Returns the edit profile link + ***/ + function um_edit_profile_url() { + if (um_is_core_page( 'user' )) { $url = UM()->permalinks()->get_current_url(); - }else{ + } else { $url = um_user_profile_url(); } - - $url = remove_query_arg('profiletab', $url); - $url = remove_query_arg('subnav', $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 ); + $url = add_query_arg( 'um_action', 'edit', $url ); + return $url; } /*** - *** @checks if user can edit his profile - ***/ + *** @checks if user can edit his profile + ***/ function um_can_edit_my_profile() { - if ( !is_user_logged_in() ) return false; - if ( !um_user('can_edit_profile') ) return false; + if (!is_user_logged_in()) return false; + if (!um_user( 'can_edit_profile' )) return false; + return true; } /*** - *** @short for admin e-mail - ***/ + *** @short for admin e-mail + ***/ function um_admin_email() { - return um_get_option('admin_email'); + return um_get_option( 'admin_email' ); } /** @@ -1096,28 +1127,26 @@ * @param $option_id (string) (required) The option or setting that you want to retrieve * * @returns Returns the value of the setting you requested, or a blank value if the setting - does not exist. + * does not exist. * * @example Get default user role set in global options - - - + * + * * * @example Get blocked IP addresses set in backend - - - + * + * * @return mixed */ function um_get_option( $option_id ) { - if ( ! isset( UM()->options ) ) - return ''; + if (!isset( UM()->options )) + return ''; $um_options = UM()->options; - if ( ! empty( $um_options[ $option_id ] ) ) - return apply_filters( "um_get_option_filter__{$option_id}", $um_options[ $option_id ] ); + if (!empty( $um_options[$option_id] )) + return apply_filters( "um_get_option_filter__{$option_id}", $um_options[$option_id] ); - switch ( $option_id ) { + switch ($option_id) { case 'site_name': return get_bloginfo( 'name' ); @@ -1126,49 +1155,49 @@ case 'admin_email': return get_bloginfo( 'admin_email' ); break; - default: - return ''; - break; + default: + return ''; + break; } } function um_update_option( $option_id, $value ) { - if ( ! isset( UM()->options ) ) - UM()->options = array(); + if (!isset( UM()->options )) + UM()->options = array(); - $um_options = UM()->options; - $um_options[ $option_id ] = $value; - UM()->options = $um_options; + $um_options = UM()->options; + $um_options[$option_id] = $value; + UM()->options = $um_options; - update_option( 'um_options', $um_options ); - } + update_option( 'um_options', $um_options ); + } - function um_remove_option( $option_id ) { - if ( ! isset( UM()->options ) ) - UM()->options = array(); + function um_remove_option( $option_id ) { + if (!isset( UM()->options )) + UM()->options = array(); - $um_options = UM()->options; - if ( ! empty( $um_options[ $option_id ] ) ) - unset( $um_options[ $option_id ] ); + $um_options = UM()->options; + if (!empty( $um_options[$option_id] )) + unset( $um_options[$option_id] ); - UM()->options = $um_options; + UM()->options = $um_options; - update_option( 'um_options', $um_options ); - } + update_option( 'um_options', $um_options ); + } /*** - *** @Display a link to profile page - ***/ + *** @Display a link to profile page + ***/ function um_user_profile_url() { return UM()->user()->get_profile_url( um_user( 'ID' ) ); } /*** - *** @Get all UM roles in array - ***/ + *** @Get all UM roles in array + ***/ function um_get_roles() { return UM()->roles()->get_roles(); } @@ -1185,24 +1214,22 @@ * @returns Sets a specific user and prepares profile data and user permissions and makes them accessible. * * @example The example below will set user ID 5 prior to retrieving his profile information. - - - + * + * * * @example In the following example you can fetch the profile of a logged-in user dynamically. - - - + * + * * */ function um_fetch_user( $user_id ) { @@ -1210,24 +1237,24 @@ } /*** - *** @Load profile key - ***/ + *** @Load profile key + ***/ function um_profile( $key ) { - if ( ! empty( UM()->user()->profile[ $key ] ) ){ - $value = apply_filters("um_profile_{$key}__filter", UM()->user()->profile[ $key ] ); + if (!empty( UM()->user()->profile[$key] )) { + $value = apply_filters( "um_profile_{$key}__filter", UM()->user()->profile[$key] ); } else { - $value = apply_filters("um_profile_{$key}_empty__filter", false ); + $value = apply_filters( "um_profile_{$key}_empty__filter", false ); } return $value; - + } /*** - *** @Get youtube video ID from url - ***/ - function um_youtube_id_from_url($url) { + *** @Get youtube video ID from url + ***/ + function um_youtube_id_from_url( $url ) { $pattern = '%^# Match any youtube URL (?:https?://)? # Optional scheme. Either http or https @@ -1242,107 +1269,113 @@ ) # End path alternatives. ) # End host alternatives. ([\w-]{10,12}) # Allow 10-12 for 11 char youtube id. - $%x' - ; - $result = preg_match($pattern, $url, $matches); + $%x'; + $result = preg_match( $pattern, $url, $matches ); if (false !== $result) { return $matches[1]; } + return false; } /*** - *** @user uploads uri - ***/ + *** @user uploads uri + ***/ function um_user_uploads_uri() { - if ( is_ssl() ) { - UM()->files()->upload_baseurl = str_replace("http://", "https://", UM()->files()->upload_baseurl ); + if (is_ssl()) { + UM()->files()->upload_baseurl = str_replace( "http://", "https://", UM()->files()->upload_baseurl ); } - $uri = UM()->files()->upload_baseurl . um_user('ID') . '/'; + $uri = UM()->files()->upload_baseurl . um_user( 'ID' ) . '/'; + return $uri; } /*** - *** @user uploads directory - ***/ + *** @user uploads directory + ***/ function um_user_uploads_dir() { - $uri = UM()->files()->upload_basedir . um_user('ID') . '/'; + $uri = UM()->files()->upload_basedir . um_user( 'ID' ) . '/'; + return $uri; } /*** - *** @find closest number in an array - ***/ - function um_closest_num($array, $number) { - sort($array); + *** @find closest number in an array + ***/ + function um_closest_num( $array, $number ) { + sort( $array ); foreach ($array as $a) { if ($a >= $number) return $a; } - return end($array); + + return end( $array ); } /*** - *** @get cover uri - ***/ + *** @get cover uri + ***/ function um_get_cover_uri( $image, $attrs ) { $uri = false; - $ext = '.' . pathinfo($image, PATHINFO_EXTENSION); - if ( file_exists( UM()->files()->upload_basedir . um_user('ID') . '/cover_photo'.$ext ) ) { - $uri = um_user_uploads_uri() . 'cover_photo'.$ext.'?' . current_time( 'timestamp' ); + $ext = '.' . pathinfo( $image, PATHINFO_EXTENSION ); + if (file_exists( UM()->files()->upload_basedir . um_user( 'ID' ) . '/cover_photo' . $ext )) { + $uri = um_user_uploads_uri() . 'cover_photo' . $ext . '?' . current_time( 'timestamp' ); } - if ( file_exists( UM()->files()->upload_basedir . um_user('ID') . '/cover_photo-' .$attrs.$ext ) ){ - $uri = um_user_uploads_uri() . 'cover_photo-'.$attrs.$ext.'?' . current_time( 'timestamp' ); + if (file_exists( UM()->files()->upload_basedir . um_user( 'ID' ) . '/cover_photo-' . $attrs . $ext )) { + $uri = um_user_uploads_uri() . 'cover_photo-' . $attrs . $ext . '?' . current_time( 'timestamp' ); } + return $uri; } /*** - *** @get avatar URL instead of image - ***/ - function um_get_avatar_url($get_avatar){ - preg_match('/src="(.*?)"/i', $get_avatar, $matches); + *** @get avatar URL instead of image + ***/ + function um_get_avatar_url( $get_avatar ) { + preg_match( '/src="(.*?)"/i', $get_avatar, $matches ); + return $matches[1]; } /*** - *** @get avatar uri - ***/ + *** @get avatar uri + ***/ function um_get_avatar_uri( $image, $attrs ) { $uri = false; $find = false; - $ext = '.' . pathinfo($image, PATHINFO_EXTENSION); + $ext = '.' . pathinfo( $image, PATHINFO_EXTENSION ); - $cache_time = apply_filters('um_filter_avatar_cache_time', current_time( 'timestamp' ), um_user('ID') ); - - if( ! empty( $cache_time ) ){ - $cache_time = "?{$cache_time}"; + $cache_time = apply_filters( 'um_filter_avatar_cache_time', current_time( 'timestamp' ), um_user( 'ID' ) ); + + if (!empty( $cache_time )) { + $cache_time = "?{$cache_time}"; } - if ( file_exists( UM()->files()->upload_basedir . um_user('ID') . "/profile_photo-{$attrs}{$ext}" ) ) { - + if (file_exists( UM()->files()->upload_basedir . um_user( 'ID' ) . "/profile_photo-{$attrs}{$ext}" )) { + $uri = um_user_uploads_uri() . "profile_photo-{$attrs}{$ext}{$cache_time}"; } else { - $sizes = um_get_option('photo_thumb_sizes'); - if ( is_array( $sizes ) ) $find = um_closest_num( $sizes, $attrs ); + $sizes = um_get_option( 'photo_thumb_sizes' ); + if (is_array( $sizes )) $find = um_closest_num( $sizes, $attrs ); - if ( file_exists( UM()->files()->upload_basedir . um_user('ID') . "/profile_photo-{$find}{$ext}" ) ) { + if (file_exists( UM()->files()->upload_basedir . um_user( 'ID' ) . "/profile_photo-{$find}{$ext}" )) { $uri = um_user_uploads_uri() . "profile_photo-{$find}{$ext}{$cache_time}"; - } else if ( file_exists( UM()->files()->upload_basedir . um_user('ID') . "/profile_photo{$ext}" ) ) { + } else if (file_exists( UM()->files()->upload_basedir . um_user( 'ID' ) . "/profile_photo{$ext}" )) { $uri = um_user_uploads_uri() . "profile_photo{$ext}{$cache_time}"; } - if ( $attrs == 'original' ) { + if ($attrs == 'original') { $uri = um_user_uploads_uri() . "profile_photo{$ext}{$cache_time}"; } } + return $uri; } @@ -1354,17 +1387,17 @@ */ function um_get_default_avatar_uri() { $uri = um_get_option( 'default_avatar' ); - $uri = ! empty( $uri['url'] ) ? $uri['url'] : ''; - if ( ! $uri ) { + $uri = !empty( $uri['url'] ) ? $uri['url'] : ''; + if (!$uri) { $uri = um_url . 'assets/img/default_avatar.jpg'; } else { //http <-> https compatibility default avatar option of SSL was changed $url_array = parse_url( $uri ); - if ( is_ssl() && $url_array['scheme'] == 'http' ) { + if (is_ssl() && $url_array['scheme'] == 'http') { $uri = str_replace( 'http://', 'https://', $uri ); - } elseif ( ! is_ssl() && $url_array['scheme'] == 'https' ) { + } else if (!is_ssl() && $url_array['scheme'] == 'https') { $uri = str_replace( 'https://', 'http://', $uri ); } } @@ -1374,33 +1407,36 @@ /*** - *** @get user avatar url - ***/ + *** @get user avatar url + ***/ function um_get_user_avatar_url() { - if ( um_profile('profile_photo') ) { - $avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), 32 ); + if (um_profile( 'profile_photo' )) { + $avatar_uri = um_get_avatar_uri( um_profile( 'profile_photo' ), 32 ); } else { $avatar_uri = um_get_default_avatar_uri(); } + return $avatar_uri; } /*** - *** @default cover - ***/ + *** @default cover + ***/ function um_get_default_cover_uri() { - $uri = um_get_option('default_cover'); - $uri = ! empty( $uri['url'] ) ? $uri['url'] : ''; - if ( $uri ){ - $uri = apply_filters('um_get_default_cover_uri_filter', $uri ); + $uri = um_get_option( 'default_cover' ); + $uri = !empty( $uri['url'] ) ? $uri['url'] : ''; + if ($uri) { + $uri = apply_filters( 'um_get_default_cover_uri_filter', $uri ); + return $uri; } + return ''; } function um_user( $data, $attrs = null ) { - switch( $data ) { + switch ($data) { default: @@ -1408,10 +1444,11 @@ $value = maybe_unserialize( $value ); - if ( in_array( $data, array( 'role', 'gender' ) ) ) { - if ( is_array( $value ) ) { - $value = implode(",", $value ); + if (in_array( $data, array( 'role', 'gender' ) )) { + if (is_array( $value )) { + $value = implode( ",", $value ); } + return $value; } @@ -1420,13 +1457,13 @@ case 'user_email': - $user_email_in_meta = get_user_meta( um_user('ID'), 'user_email', true ); - if( $user_email_in_meta ){ - delete_user_meta( um_user('ID'), 'user_email' ); + $user_email_in_meta = get_user_meta( um_user( 'ID' ), 'user_email', true ); + if ($user_email_in_meta) { + delete_user_meta( um_user( 'ID' ), 'user_email' ); } $value = um_profile( $data ); - + return $value; break; @@ -1435,11 +1472,11 @@ $name = um_profile( $data ); - if( um_get_option('force_display_name_capitlized') ){ - $name = implode('-', array_map('ucfirst', explode('-', $name ) ) ); + if (um_get_option( 'force_display_name_capitlized' )) { + $name = implode( '-', array_map( 'ucfirst', explode( '-', $name ) ) ); } - $name = apply_filters("um_user_{$data}_case", $name ); + $name = apply_filters( "um_user_{$data}_case", $name ); return $name; @@ -1447,131 +1484,130 @@ case 'full_name': - if ( um_user('first_name') && um_user('last_name') ) { - $full_name = um_user('first_name') . ' ' . um_user('last_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 = um_user( 'display_name' ); } $full_name = UM()->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 ); + if (um_profile( $data ) !== $full_name) { + update_user_meta( um_user( 'ID' ), 'full_name', $full_name ); } return $full_name; - break; + break; case 'first_and_last_name_initial': - + $f_and_l_initial = ''; - if ( um_user('first_name') && um_user('last_name') ) { - $initial = um_user('last_name'); - $f_and_l_initial = um_user('first_name').' '. $initial[0]; - }else{ + if (um_user( 'first_name' ) && um_user( 'last_name' )) { + $initial = um_user( 'last_name' ); + $f_and_l_initial = um_user( 'first_name' ) . ' ' . $initial[0]; + } else { $f_and_l_initial = um_profile( $data ); } $f_and_l_initial = UM()->validation()->safe_name_in_url( $f_and_l_initial ); - if( um_get_option('force_display_name_capitlized') ){ - $name = implode('-', array_map('ucfirst', explode('-', $f_and_l_initial ) ) ); - }else{ + if (um_get_option( 'force_display_name_capitlized' )) { + $name = implode( '-', array_map( 'ucfirst', explode( '-', $f_and_l_initial ) ) ); + } else { $name = $f_and_l_initial; } - + return $name; - break; + break; case 'display_name': - $op = um_get_option('display_name'); + $op = um_get_option( 'display_name' ); $name = ''; - if ( $op == 'default' ) { - $name = um_profile('display_name'); + if ($op == 'default') { + $name = um_profile( 'display_name' ); } - if ( $op == 'nickname' ) { - $name = um_profile('nickname'); + 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'); + 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 (!$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'); + 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'); + 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 == '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]; + 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'); + 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') != '' ) { + 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 ) { - if ( um_profile( $field ) ){ + foreach ($fields as $field) { + if (um_profile( $field )) { $name .= um_profile( $field ) . ' '; - } elseif ( um_user( $field ) ) { + } else if (um_user( $field )) { $name .= um_user( $field ) . ' '; } - + } } - if( um_get_option('force_display_name_capitlized') ){ - $name = implode('-', array_map('ucfirst', explode('-', $name ) ) ); + if (um_get_option( 'force_display_name_capitlized' )) { + $name = implode( '-', array_map( 'ucfirst', explode( '-', $name ) ) ); } - return apply_filters('um_user_display_name_filter', $name, um_user('ID'), ( $attrs == 'html' ) ? 1 : 0 ); + return apply_filters( 'um_user_display_name_filter', $name, um_user( 'ID' ), ( $attrs == 'html' ) ? 1 : 0 ); break; @@ -1581,9 +1617,10 @@ break; case 'submitted': - $array = um_profile($data); - if ( empty( $array ) ) return ''; + $array = um_profile( $data ); + if (empty( $array )) return ''; $array = unserialize( $array ); + return $array; break; @@ -1599,63 +1636,63 @@ $has_profile_photo = false; $photo_type = 'um-avatar-default'; - $image_alt = apply_filters("um_avatar_image_alternate_text", um_user("display_name") ); + $image_alt = apply_filters( "um_avatar_image_alternate_text", um_user( "display_name" ) ); - if ( um_profile('profile_photo') ) { - $avatar_uri = um_get_avatar_uri( um_profile('profile_photo'), $attrs ); - $has_profile_photo = true; - $photo_type = 'um-avatar-uploaded'; - } elseif( um_user('synced_profile_photo') ){ - $avatar_uri = um_user('synced_profile_photo'); + if (um_profile( 'profile_photo' )) { + $avatar_uri = um_get_avatar_uri( um_profile( 'profile_photo' ), $attrs ); + $has_profile_photo = true; + $photo_type = 'um-avatar-uploaded'; + } else if (um_user( 'synced_profile_photo' )) { + $avatar_uri = um_user( 'synced_profile_photo' ); } else { - $avatar_uri = um_get_default_avatar_uri(); + $avatar_uri = um_get_default_avatar_uri(); } - $avatar_uri = apply_filters('um_user_avatar_url_filter', $avatar_uri, um_user('ID') ); + $avatar_uri = apply_filters( 'um_user_avatar_url_filter', $avatar_uri, um_user( 'ID' ) ); - if ( !$avatar_uri ) + if (!$avatar_uri) return ''; - if ( um_get_option('use_gravatars') && ! um_user('synced_profile_photo') && ! $has_profile_photo ) { - $avatar_hash_id = get_user_meta( um_user('ID'),'synced_gravatar_hashed_id', true); - $avatar_uri = um_get_domain_protocol().'gravatar.com/avatar/'.$avatar_hash_id; - $avatar_uri = add_query_arg('s',400, $avatar_uri); - $gravatar_type = um_get_option('use_um_gravatar_default_builtin_image'); + if (um_get_option( 'use_gravatars' ) && !um_user( 'synced_profile_photo' ) && !$has_profile_photo) { + $avatar_hash_id = get_user_meta( um_user( 'ID' ), 'synced_gravatar_hashed_id', true ); + $avatar_uri = um_get_domain_protocol() . 'gravatar.com/avatar/' . $avatar_hash_id; + $avatar_uri = add_query_arg( 's', 400, $avatar_uri ); + $gravatar_type = um_get_option( 'use_um_gravatar_default_builtin_image' ); $photo_type = 'um-avatar-gravatar'; - if( $gravatar_type == 'default' ){ - if( um_get_option('use_um_gravatar_default_image') ){ - $avatar_uri = add_query_arg('d', um_get_default_avatar_uri(), $avatar_uri ); + if ($gravatar_type == 'default') { + if (um_get_option( 'use_um_gravatar_default_image' )) { + $avatar_uri = add_query_arg( 'd', um_get_default_avatar_uri(), $avatar_uri ); } - }else{ - $avatar_uri = add_query_arg('d', $gravatar_type, $avatar_uri ); + } else { + $avatar_uri = add_query_arg( 'd', $gravatar_type, $avatar_uri ); } } - return ''.$image_alt.''; + return '' . $image_alt . ''; break; case 'cover_photo': - + $is_default = false; - if ( um_profile('cover_photo') ) { - $cover_uri = um_get_cover_uri( um_profile('cover_photo'), $attrs ); - } else if( um_profile('synced_cover_photo') ) { - $cover_uri = um_profile('synced_cover_photo'); - }else{ + if (um_profile( 'cover_photo' )) { + $cover_uri = um_get_cover_uri( um_profile( 'cover_photo' ), $attrs ); + } else if (um_profile( 'synced_cover_photo' )) { + $cover_uri = um_profile( 'synced_cover_photo' ); + } else { $cover_uri = um_get_default_cover_uri(); $is_default = true; } - $cover_uri = apply_filters('um_user_cover_photo_uri__filter', $cover_uri, $is_default, $attrs ); - - if ( $cover_uri ) - return ''; + $cover_uri = apply_filters( 'um_user_cover_photo_uri__filter', $cover_uri, $is_default, $attrs ); - if ( !$cover_uri ) + if ($cover_uri) + return ''; + + if (!$cover_uri) return ''; break; @@ -1667,14 +1704,15 @@ /** * Get server protocol + * * @return string */ function um_get_domain_protocol() { - if ( is_ssl() ) { - $protocol = 'https://'; + if (is_ssl()) { + $protocol = 'https://'; } else { - $protocol = 'http://'; + $protocol = 'http://'; } return $protocol; @@ -1682,13 +1720,15 @@ /** * Set SSL to media URI + * * @param string $url + * * @return string */ - function um_secure_media_uri( $url ){ - - if( is_ssl() ){ - $url = str_replace('http:', 'https:', $url ); + function um_secure_media_uri( $url ) { + + if (is_ssl()) { + $url = str_replace( 'http:', 'https:', $url ); } return $url; @@ -1696,36 +1736,38 @@ /** * Check if meta_value exists + * * @param string $key - * @param mixed $value + * @param mixed $value + * * @return integer */ - function um_is_meta_value_exists( $key, $value, $return_user_id = false ){ + function um_is_meta_value_exists( $key, $value, $return_user_id = false ) { global $wpdb; - if( isset( UM()->profile()->arr_user_slugs[ 'is_'.$return_user_id ][ $key ] ) ){ - return UM()->profile()->arr_user_slugs[ 'is_'.$return_user_id ][ $key ]; + if (isset( UM()->profile()->arr_user_slugs['is_' . $return_user_id][$key] )) { + return UM()->profile()->arr_user_slugs['is_' . $return_user_id][$key]; } - if ( ! $return_user_id ) { + if (!$return_user_id) { $count = $wpdb->get_var( $wpdb->prepare( - "SELECT COUNT(*) as count FROM {$wpdb->usermeta} WHERE meta_key = %s AND meta_value = %s ", - $key, - $value + "SELECT COUNT(*) as count FROM {$wpdb->usermeta} WHERE meta_key = %s AND meta_value = %s ", + $key, + $value ) ); - UM()->profile()->arr_user_slugs[ 'is_'.$return_user_id ][ $key ] = $count; + UM()->profile()->arr_user_slugs['is_' . $return_user_id][$key] = $count; return $count; } - + $user_id = $wpdb->get_var( $wpdb->prepare( - "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key = %s AND meta_value = %s ", - $key, - $value + "SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key = %s AND meta_value = %s ", + $key, + $value ) ); - UM()->profile()->arr_user_slugs[ 'is_'.$return_user_id ][ $key ] = $user_id; + UM()->profile()->arr_user_slugs['is_' . $return_user_id][$key] = $user_id; return $user_id; @@ -1733,30 +1775,33 @@ /** * Force strings to UTF-8 encoded + * * @param mixed $value + * * @return mixed */ - function um_force_utf8_string( $value ){ + function um_force_utf8_string( $value ) { - if( is_array( $value ) ){ + if (is_array( $value )) { $arr_value = array(); foreach ($value as $key => $value) { $utf8_decoded_value = utf8_decode( $value ); - if( mb_check_encoding( $utf8_decoded_value, 'UTF-8') ){ - array_push( $arr_value, $utf8_decoded_value ); - }else{ + if (mb_check_encoding( $utf8_decoded_value, 'UTF-8' )) { + array_push( $arr_value, $utf8_decoded_value ); + } else { array_push( $arr_value, $value ); } } + return $arr_value; - }else{ + } else { - $utf8_decoded_value = utf8_decode($value); + $utf8_decoded_value = utf8_decode( $value ); - if( mb_check_encoding( $utf8_decoded_value, 'UTF-8') ){ - return $utf8_decoded_value; + if (mb_check_encoding( $utf8_decoded_value, 'UTF-8' )) { + return $utf8_decoded_value; } } @@ -1767,21 +1812,23 @@ * Filters the search query. * * @param string $search + * * @return string */ - function um_filter_search($search) { + function um_filter_search( $search ) { $search = trim( strip_tags( $search ) ); - $search = preg_replace('/[^a-z \.\@\_\-]+/i', '', $search); + $search = preg_replace( '/[^a-z \.\@\_\-]+/i', '', $search ); return $search; } /** * Returns the user search query + * * @return string */ function um_get_search_query() { - $query = UM()->permalinks()->get_query_array(); + $query = UM()->permalinks()->get_query_array(); $search = isset( $query['search'] ) ? $query['search'] : ''; return um_filter_search( $search ); @@ -1789,10 +1836,11 @@ /** * Returns the ultimate member search form + * * @return string */ function um_get_search_form() { - + return do_shortcode( '[ultimatemember_searchform]' ); } @@ -1802,76 +1850,81 @@ * @return string */ function um_search_form() { - + echo um_get_search_form(); } /** * Get localization + * * @return string */ - function um_get_locale(){ + function um_get_locale() { $lang_code = get_locale(); - if( strpos( $lang_code , 'en_' ) > -1 || empty( $lang_code ) || $lang_code == 0 ){ + if (strpos( $lang_code, 'en_' ) > -1 || empty( $lang_code ) || $lang_code == 0) { return 'en'; } - + return $lang_code; } /** * Get current page type + * * @return string */ function um_get_current_page_type() { - global $wp_query; - $loop = 'notfound'; + global $wp_query; + $loop = 'notfound'; - if ( $wp_query->is_page ) { - //$loop = is_front_page() ? 'front' : 'page'; - $loop = 'page'; - } elseif ( $wp_query->is_home ) { - $loop = 'home'; - } elseif ( $wp_query->is_single ) { - $loop = ( $wp_query->is_attachment ) ? 'attachment' : 'single'; - } elseif ( $wp_query->is_category ) { - $loop = 'category'; - } elseif ( $wp_query->is_tag ) { - $loop = 'tag'; - } elseif ( $wp_query->is_tax ) { - $loop = 'tax'; - } elseif ( $wp_query->is_archive ) { - if ( $wp_query->is_day ) { - $loop = 'day'; - } elseif ( $wp_query->is_month ) { - $loop = 'month'; - } elseif ( $wp_query->is_year ) { - $loop = 'year'; - } elseif ( $wp_query->is_author ) { - $loop = 'author'; - } else { - $loop = 'archive'; - } - } elseif ( $wp_query->is_search ) { - $loop = 'search'; - } elseif ( $wp_query->is_404 ) { - $loop = 'notfound'; - } + if ($wp_query->is_page) { + //$loop = is_front_page() ? 'front' : 'page'; + $loop = 'page'; + } else if ($wp_query->is_home) { + $loop = 'home'; + } else if ($wp_query->is_single) { + $loop = ( $wp_query->is_attachment ) ? 'attachment' : 'single'; + } else if ($wp_query->is_category) { + $loop = 'category'; + } else if ($wp_query->is_tag) { + $loop = 'tag'; + } else if ($wp_query->is_tax) { + $loop = 'tax'; + } else if ($wp_query->is_archive) { + if ($wp_query->is_day) { + $loop = 'day'; + } else if ($wp_query->is_month) { + $loop = 'month'; + } else if ($wp_query->is_year) { + $loop = 'year'; + } else if ($wp_query->is_author) { + $loop = 'author'; + } else { + $loop = 'archive'; + } + } else if ($wp_query->is_search) { + $loop = 'search'; + } else if ($wp_query->is_404) { + $loop = 'notfound'; + } - return $loop; + return $loop; } /** * Check if running local + * * @return boolean */ function um_core_is_local() { - if( $_SERVER['HTTP_HOST'] == 'localhost' - || substr($_SERVER['HTTP_HOST'],0,3) == '10.' - || substr($_SERVER['HTTP_HOST'],0,7) == '192.168') return true; - return false; + if ($_SERVER['HTTP_HOST'] == 'localhost' + || substr( $_SERVER['HTTP_HOST'], 0, 3 ) == '10.' + || substr( $_SERVER['HTTP_HOST'], 0, 7 ) == '192.168' + ) return true; + + return false; } /** @@ -1885,27 +1938,27 @@ function um_get_host() { $host = false; - if( defined( 'WPE_APIKEY' ) ) { + if (defined( 'WPE_APIKEY' )) { $host = 'WP Engine'; - } elseif( defined( 'PAGELYBIN' ) ) { + } else if (defined( 'PAGELYBIN' )) { $host = 'Pagely'; - } elseif( DB_HOST == 'localhost:/tmp/mysql5.sock' ) { + } else if (DB_HOST == 'localhost:/tmp/mysql5.sock') { $host = 'ICDSoft'; - } elseif( DB_HOST == 'mysqlv5' ) { + } else if (DB_HOST == 'mysqlv5') { $host = 'NetworkSolutions'; - } elseif( strpos( DB_HOST, 'ipagemysql.com' ) !== false ) { + } else if (strpos( DB_HOST, 'ipagemysql.com' ) !== false) { $host = 'iPage'; - } elseif( strpos( DB_HOST, 'ipowermysql.com' ) !== false ) { + } else if (strpos( DB_HOST, 'ipowermysql.com' ) !== false) { $host = 'IPower'; - } elseif( strpos( DB_HOST, '.gridserver.com' ) !== false ) { + } else if (strpos( DB_HOST, '.gridserver.com' ) !== false) { $host = 'MediaTemple Grid'; - } elseif( strpos( DB_HOST, '.pair.com' ) !== false ) { + } else if (strpos( DB_HOST, '.pair.com' ) !== false) { $host = 'pair Networks'; - } elseif( strpos( DB_HOST, '.stabletransit.com' ) !== false ) { + } else if (strpos( DB_HOST, '.stabletransit.com' ) !== false) { $host = 'Rackspace Cloud'; - } elseif( strpos( DB_HOST, '.sysfix.eu' ) !== false ) { + } else if (strpos( DB_HOST, '.sysfix.eu' ) !== false) { $host = 'SysFix.eu Power Hosting'; - } elseif( strpos( $_SERVER['SERVER_NAME'], 'Flywheel' ) !== false ) { + } else if (strpos( $_SERVER['SERVER_NAME'], 'Flywheel' ) !== false) { $host = 'Flywheel'; } else { // Adding a general fallback for data gathering @@ -1924,13 +1977,14 @@ * @author Chris Christoff * * @param unknown $v + * * @return int|string */ function um_let_to_num( $v ) { - $l = substr( $v, -1 ); + $l = substr( $v, -1 ); $ret = substr( $v, 0, -1 ); - switch ( strtoupper( $l ) ) { + switch (strtoupper( $l )) { case 'P': // fall-through case 'T': // fall-through case 'G': // fall-through