mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-11 18:56:10 +09:00
Merge pull request #905 from ultimatemember/development/2.2.5
Development process 2.2.5
This commit is contained in:
@@ -41,7 +41,7 @@ GNU Version 2 or Any Later Version
|
||||
|
||||
## Releases
|
||||
|
||||
[Official Release Version: 2.2.4](https://github.com/ultimatemember/ultimatemember/releases/tag/2.2.4).
|
||||
[Official Release Version: 2.2.5](https://github.com/ultimatemember/ultimatemember/releases/tag/2.2.5).
|
||||
|
||||
## Changelog
|
||||
|
||||
|
||||
@@ -134,6 +134,7 @@ function um_set_range_label( slider, ui ) {
|
||||
var placeholder = '';
|
||||
var placeholder_s = slider.siblings( '.um-slider-range' ).data( 'placeholder-s' );
|
||||
var placeholder_p = slider.siblings( '.um-slider-range' ).data( 'placeholder-p' );
|
||||
var um_range_min, um_range_max;
|
||||
|
||||
if ( ui ) {
|
||||
if ( ui.values[ 0 ] === ui.values[ 1 ] ) {
|
||||
@@ -146,6 +147,8 @@ function um_set_range_label( slider, ui ) {
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
}
|
||||
um_range_min = ui.values[0];
|
||||
um_range_max = ui.values[1];
|
||||
} else {
|
||||
if ( slider.slider( "values", 0 ) === slider.slider( "values", 1 ) ) {
|
||||
placeholder = placeholder_s.replace( '\{value\}', slider.slider( "values", 0 ) )
|
||||
@@ -157,11 +160,13 @@ function um_set_range_label( slider, ui ) {
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
}
|
||||
um_range_min = slider.slider( "values", 0 );
|
||||
um_range_max = slider.slider( "values", 1 );
|
||||
}
|
||||
slider.siblings( '.um-slider-range' ).html( placeholder );
|
||||
|
||||
slider.siblings( ".um_range_min" ).val( slider.slider( "values", 0 ) );
|
||||
slider.siblings( ".um_range_max" ).val( slider.slider( "values", 1 ) );
|
||||
slider.siblings( ".um_range_min" ).val( um_range_min );
|
||||
slider.siblings( ".um_range_max" ).val( um_range_max );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -483,10 +483,10 @@ jQuery(document).ready( function() {
|
||||
});
|
||||
|
||||
function um_set_range_label( slider, ui ) {
|
||||
console.log( slider );
|
||||
var placeholder = '';
|
||||
var placeholder_s = slider.siblings( '.um-slider-range' ).data( 'placeholder-s' );
|
||||
var placeholder_p = slider.siblings( '.um-slider-range' ).data( 'placeholder-p' );
|
||||
var um_range_min, um_range_max;
|
||||
|
||||
if ( ui ) {
|
||||
if ( ui.values[ 0 ] === ui.values[ 1 ] ) {
|
||||
@@ -499,6 +499,8 @@ jQuery(document).ready( function() {
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
}
|
||||
um_range_min = ui.values[0];
|
||||
um_range_max = ui.values[1];
|
||||
} else {
|
||||
if ( slider.slider( "values", 0 ) === slider.slider( "values", 1 ) ) {
|
||||
placeholder = placeholder_s.replace( '\{value\}', slider.slider( "values", 0 ) )
|
||||
@@ -510,11 +512,13 @@ jQuery(document).ready( function() {
|
||||
.replace( '\{field_label\}', slider.siblings( '.um-slider-range' )
|
||||
.data('label') );
|
||||
}
|
||||
um_range_min = slider.slider( "values", 0 );
|
||||
um_range_max = slider.slider( "values", 1 );
|
||||
}
|
||||
slider.siblings( '.um-slider-range' ).html( placeholder );
|
||||
|
||||
slider.siblings( ".um_range_min" ).val( slider.slider( "values", 0 ) );
|
||||
slider.siblings( ".um_range_max" ).val( slider.slider( "values", 1 ) );
|
||||
slider.siblings( ".um_range_min" ).val( um_range_min );
|
||||
slider.siblings( ".um_range_max" ).val( um_range_max );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -431,7 +431,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
|
||||
'0' => __( 'Show access restricted message', 'ultimate-member' ),
|
||||
'1' => __( 'Redirect user', 'ultimate-member' ),
|
||||
),
|
||||
'conditional' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? '' : array( '_um_access_hide_from_queries', '=', '0' ),
|
||||
'conditional' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? array( '_um_accessible', '!=', '0' ) : array( '_um_access_hide_from_queries', '=', '0' ),
|
||||
),
|
||||
array(
|
||||
'id' => '_um_restrict_by_custom_message',
|
||||
@@ -583,7 +583,7 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
|
||||
'0' => __( 'Show access restricted message', 'ultimate-member' ),
|
||||
'1' => __( 'Redirect user', 'ultimate-member' ),
|
||||
),
|
||||
'conditional' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? '' : array( '_um_access_hide_from_queries', '=', '0' ),
|
||||
'conditional' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? array( '_um_accessible', '!=', '0' ) : array( '_um_access_hide_from_queries', '=', '0' ),
|
||||
),
|
||||
array(
|
||||
'id' => '_um_restrict_by_custom_message',
|
||||
|
||||
@@ -16,13 +16,15 @@ if ( isset( $_GET['action'] ) ) {
|
||||
switch ( sanitize_key( $_GET['action'] ) ) {
|
||||
/* delete action */
|
||||
case 'delete': {
|
||||
// uses sanitize_title instead of sanitize_key for backward compatibility based on #906 pull-request (https://github.com/ultimatemember/ultimatemember/pull/906)
|
||||
// roles e.g. "潜水艦subs" with both latin + not-UTB-8 symbols had invalid role ID
|
||||
$role_keys = array();
|
||||
if ( isset( $_REQUEST['id'] ) ) {
|
||||
check_admin_referer( 'um_role_delete' . sanitize_key( $_REQUEST['id'] ) . get_current_user_id() );
|
||||
$role_keys = (array) sanitize_key( $_REQUEST['id'] );
|
||||
check_admin_referer( 'um_role_delete' . sanitize_title( $_REQUEST['id'] ) . get_current_user_id() );
|
||||
$role_keys = (array) sanitize_title( $_REQUEST['id'] );
|
||||
} elseif ( isset( $_REQUEST['item'] ) ) {
|
||||
check_admin_referer( 'bulk-' . sanitize_key( __( 'Roles', 'ultimate-member' ) ) );
|
||||
$role_keys = array_map( 'sanitize_key', $_REQUEST['item'] );
|
||||
$role_keys = array_map( 'sanitize_title', $_REQUEST['item'] );
|
||||
}
|
||||
|
||||
if ( ! count( $role_keys ) ) {
|
||||
@@ -88,13 +90,15 @@ if ( isset( $_GET['action'] ) ) {
|
||||
break;
|
||||
}
|
||||
case 'reset': {
|
||||
// uses sanitize_title instead of sanitize_key for backward compatibility based on #906 pull-request (https://github.com/ultimatemember/ultimatemember/pull/906)
|
||||
// roles e.g. "潜水艦subs" with both latin + not-UTB-8 symbols had invalid role ID
|
||||
$role_keys = array();
|
||||
if ( isset( $_REQUEST['id'] ) ) {
|
||||
check_admin_referer( 'um_role_reset' . sanitize_key( $_REQUEST['id'] ) . get_current_user_id() );
|
||||
$role_keys = (array) sanitize_key( $_REQUEST['id'] );
|
||||
check_admin_referer( 'um_role_reset' . sanitize_title( $_REQUEST['id'] ) . get_current_user_id() );
|
||||
$role_keys = (array) sanitize_title( $_REQUEST['id'] );
|
||||
} elseif ( isset( $_REQUEST['item'] ) ) {
|
||||
check_admin_referer( 'bulk-' . sanitize_key( __( 'Roles', 'ultimate-member' ) ) );
|
||||
$role_keys = array_map( 'sanitize_key', $_REQUEST['item'] );
|
||||
$role_keys = array_map( 'sanitize_title', $_REQUEST['item'] );
|
||||
}
|
||||
|
||||
if ( ! count( $role_keys ) ) {
|
||||
@@ -342,22 +346,23 @@ class UM_Roles_List_Table extends WP_List_Table {
|
||||
*/
|
||||
function column_title( $item ) {
|
||||
$actions = array();
|
||||
// for backward compatibility based on #906 pull-request (https://github.com/ultimatemember/ultimatemember/pull/906)
|
||||
// roles e.g. "潜水艦subs" with both latin + not-UTB-8 symbols had invalid role ID
|
||||
$id = urlencode( $item['key'] );
|
||||
|
||||
$actions['edit'] = '<a href="admin.php?page=um_roles&tab=edit&id=' . esc_attr( $item['key'] ) . '">' . __( 'Edit', 'ultimate-member' ) . '</a>';
|
||||
$actions['edit'] = '<a href="admin.php?page=um_roles&tab=edit&id=' . esc_attr( $id ) . '">' . __( 'Edit', 'ultimate-member' ) . '</a>';
|
||||
|
||||
if ( ! empty( $item['_um_is_custom'] ) ) {
|
||||
$actions['delete'] = '<a href="admin.php?page=um_roles&action=delete&id=' . esc_attr( $item['key'] ) . '&_wpnonce=' . wp_create_nonce( 'um_role_delete' . $item['key'] . get_current_user_id() ) . '" onclick="return confirm( \'' . __( 'Are you sure you want to delete this role?', 'ultimate-member' ) . '\' );">' . __( 'Delete', 'ultimate-member' ) . '</a>';
|
||||
$actions['delete'] = '<a href="admin.php?page=um_roles&action=delete&id=' . esc_attr( $id ) . '&_wpnonce=' . wp_create_nonce( 'um_role_delete' . $item['key'] . get_current_user_id() ) . '" onclick="return confirm( \'' . __( 'Are you sure you want to delete this role?', 'ultimate-member' ) . '\' );">' . __( 'Delete', 'ultimate-member' ) . '</a>';
|
||||
} else {
|
||||
$role_meta = get_option( "um_role_{$item['key']}_meta" );
|
||||
|
||||
if ( ! empty( $role_meta ) ) {
|
||||
$actions['reset'] = '<a href="admin.php?page=um_roles&action=reset&id=' . esc_attr( $item['key'] ) . '&_wpnonce=' . wp_create_nonce( 'um_role_reset' . $item['key'] . get_current_user_id() ) . '" onclick="return confirm( \'' . __( 'Are you sure you want to reset UM role meta?', 'ultimate-member' ) . '\' );">' . __( 'Reset UM Role meta', 'ultimate-member' ) . '</a>';
|
||||
$actions['reset'] = '<a href="admin.php?page=um_roles&action=reset&id=' . esc_attr( $id ) . '&_wpnonce=' . wp_create_nonce( 'um_role_reset' . $item['key'] . get_current_user_id() ) . '" onclick="return confirm( \'' . __( 'Are you sure you want to reset UM role meta?', 'ultimate-member' ) . '\' );">' . __( 'Reset UM Role meta', 'ultimate-member' ) . '</a>';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return sprintf('%1$s %2$s', '<strong><a class="row-title" href="admin.php?page=um_roles&tab=edit&id=' . esc_attr( $item['key'] ) . '">' . stripslashes( $item['name'] ) . '</a></strong>', $this->row_actions( $actions ) );
|
||||
return sprintf('%1$s %2$s', '<strong><a class="row-title" href="admin.php?page=um_roles&tab=edit&id=' . esc_attr( $id ) . '">' . stripslashes( $item['name'] ) . '</a></strong>', $this->row_actions( $actions ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
||||
'0' => __( 'Show access restricted message', 'ultimate-member' ),
|
||||
'1' => __( 'Redirect user', 'ultimate-member' ),
|
||||
),
|
||||
'conditional' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? '' : array( '_um_access_hide_from_queries', '=', '0' ),
|
||||
'conditional' => UM()->options()->get( 'disable_restriction_pre_queries' ) ? array( '_um_accessible', '!=', '0' ) : array( '_um_access_hide_from_queries', '=', '0' ),
|
||||
),
|
||||
array(
|
||||
'id' => '_um_restrict_by_custom_message',
|
||||
|
||||
@@ -50,7 +50,9 @@ global $wp_roles;
|
||||
|
||||
if ( ! empty( $_GET['id'] ) ) {
|
||||
|
||||
$role_id = sanitize_key( $_GET['id'] );
|
||||
// uses sanitize_title instead of sanitize_key for backward compatibility based on #906 pull-request (https://github.com/ultimatemember/ultimatemember/pull/906)
|
||||
// roles e.g. "潜水艦subs" with both latin + not-UTB-8 symbols had invalid role ID
|
||||
$role_id = sanitize_title( $_GET['id'] );
|
||||
|
||||
$data = get_option( "um_role_{$role_id}_meta" );
|
||||
|
||||
@@ -88,7 +90,9 @@ if ( ! empty( $_POST['role'] ) ) {
|
||||
$error .= __( 'Title is empty!', 'ultimate-member' ) . '<br />';
|
||||
}
|
||||
|
||||
if ( preg_match( "/[a-z0-9]+$/i", $data['name'] ) ) {
|
||||
if ( preg_match( "/^[\p{Latin}\d\-_ ]+$/i", $data['name'] ) ) {
|
||||
// uses sanitize_title instead of sanitize_key for backward compatibility based on #906 pull-request (https://github.com/ultimatemember/ultimatemember/pull/906)
|
||||
// roles e.g. "潜水艦subs" with both latin + not-UTB-8 symbols had invalid role ID
|
||||
$id = sanitize_title( $data['name'] );
|
||||
} else {
|
||||
$auto_increment = UM()->options()->get( 'custom_roles_increment' );
|
||||
@@ -96,9 +100,11 @@ if ( ! empty( $_POST['role'] ) ) {
|
||||
$id = 'custom_role_' . $auto_increment;
|
||||
}
|
||||
|
||||
$redirect = add_query_arg( array( 'page'=>'um_roles', 'tab'=>'edit', 'id'=>$id, 'msg'=>'a' ), admin_url( 'admin.php' ) );
|
||||
$redirect = add_query_arg( array( 'page' => 'um_roles', 'tab' => 'edit', 'id' => $id, 'msg' => 'a' ), admin_url( 'admin.php' ) );
|
||||
} elseif ( 'edit' === sanitize_key( $_GET['tab'] ) && ! empty( $_GET['id'] ) ) {
|
||||
$id = sanitize_key( $_GET['id'] );
|
||||
// uses sanitize_title instead of sanitize_key for backward compatibility based on #906 pull-request (https://github.com/ultimatemember/ultimatemember/pull/906)
|
||||
// roles e.g. "潜水艦subs" with both latin + not-UTB-8 symbols had invalid role ID
|
||||
$id = sanitize_title( $_GET['id'] );
|
||||
|
||||
$pre_role_meta = get_option( "um_role_{$id}_meta", array() );
|
||||
if ( isset( $pre_role_meta['name'] ) ) {
|
||||
|
||||
@@ -127,7 +127,6 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
||||
remove_action( 'pre_get_posts', array( &$this, 'exclude_posts' ), 99 );
|
||||
remove_filter( 'posts_where', array( &$this, 'exclude_posts_where' ), 10 );
|
||||
remove_filter( 'wp_count_posts', array( &$this, 'custom_count_posts_handler' ), 99 );
|
||||
remove_filter( 'the_title', array( &$this, 'filter_restricted_post_title' ), 10 );
|
||||
}
|
||||
|
||||
|
||||
@@ -1131,8 +1130,8 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
||||
continue;
|
||||
} else {
|
||||
$restriction_settings = $this->get_post_privacy_settings( $menu_item->object_id );
|
||||
if ( UM()->options()->get( 'disable_restriction_pre_queries' ) || empty( $restriction_settings['_um_access_hide_from_queries'] ) ) {
|
||||
$filtered_items[] = $menu_item;
|
||||
if ( empty( $restriction_settings['_um_access_hide_from_queries'] ) || ! UM()->options()->get( 'disable_restriction_pre_queries' ) ) {
|
||||
$filtered_items[] = $this->maybe_replace_nav_menu_title( $menu_item );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -1270,6 +1269,36 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \WP_Post $nav_item
|
||||
*
|
||||
* @return \WP_Post
|
||||
*/
|
||||
function maybe_replace_nav_menu_title( $nav_item ) {
|
||||
if ( ! UM()->options()->get( 'restricted_post_title_replace' ) ) {
|
||||
return $nav_item;
|
||||
}
|
||||
|
||||
if ( current_user_can( 'administrator' ) ) {
|
||||
return $nav_item;
|
||||
}
|
||||
|
||||
if ( ! is_a( $nav_item, '\WP_Post' ) ) {
|
||||
return $nav_item;
|
||||
}
|
||||
|
||||
$ignore = apply_filters( 'um_ignore_restricted_title', false, $nav_item->ID );
|
||||
if ( $ignore ) {
|
||||
return $nav_item;
|
||||
}
|
||||
|
||||
$restricted_global_title = UM()->options()->get( 'restricted_access_post_title' );
|
||||
$nav_item->title = stripslashes( $restricted_global_title );
|
||||
|
||||
return $nav_item;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Protect Post Types in query
|
||||
* Restrict content new logic
|
||||
@@ -1379,7 +1408,7 @@ if ( ! class_exists( 'um\core\Access' ) ) {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( UM()->options()->get( 'disable_restriction_pre_queries' ) || empty( $restriction['_um_access_hide_from_queries'] ) ) {
|
||||
if ( empty( $restriction['_um_access_hide_from_queries'] ) || ! UM()->options()->get( 'disable_restriction_pre_queries' ) ) {
|
||||
$filtered_posts[] = $this->maybe_replace_title( $post );
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1003,10 +1003,10 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
),
|
||||
|
||||
'soundcloud' => array(
|
||||
'title' => __('SoundCloud','ultimate-member'),
|
||||
'title' => __( 'SoundCloud', 'ultimate-member' ),
|
||||
'metakey' => 'soundcloud',
|
||||
'type' => 'url',
|
||||
'label' => __('SoundCloud','ultimate-member'),
|
||||
'label' => __( 'SoundCloud', 'ultimate-member' ),
|
||||
'required' => 0,
|
||||
'public' => 1,
|
||||
'editable' => 1,
|
||||
@@ -1400,7 +1400,7 @@ if ( ! class_exists( 'um\core\Builtin' ) ) {
|
||||
$array['numeric'] = __('Numeric value only','ultimate-member');
|
||||
$array['phone_number'] = __('Phone Number','ultimate-member');
|
||||
$array['skype'] = __('Skype ID','ultimate-member');
|
||||
$array['soundcloud'] = __('SoundCloud Profile','ultimate-member');
|
||||
$array['soundcloud'] = __( 'SoundCloud Profile', 'ultimate-member' );
|
||||
$array['twitter_url'] = __('Twitter URL','ultimate-member');
|
||||
$array['is_email'] = __('E-mail( Not Unique )','ultimate-member');
|
||||
$array['unique_email'] = __('Unique E-mail','ultimate-member');
|
||||
|
||||
@@ -1757,7 +1757,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
if ( ! isset( $array['max_files_error'] ) ) {
|
||||
$array['max_files_error'] = __( 'You can only upload one image', 'ultimate-member' );
|
||||
}
|
||||
if ( ! isset( $array['max_size'] ) ) {
|
||||
if ( empty( $array['max_size'] ) ) {
|
||||
$array['max_size'] = 999999999;
|
||||
}
|
||||
if ( ! isset( $array['upload_help_text'] ) ) {
|
||||
@@ -1798,7 +1798,7 @@ if ( ! class_exists( 'um\core\Fields' ) ) {
|
||||
if ( ! isset( $array['max_files_error'] ) ) {
|
||||
$array['max_files_error'] = __( 'You can only upload one file', 'ultimate-member' );
|
||||
}
|
||||
if ( ! isset( $array['max_size'] ) ) {
|
||||
if ( empty( $array['max_size'] ) ) {
|
||||
$array['max_size'] = 999999999;
|
||||
}
|
||||
if ( ! isset( $array['upload_help_text'] ) ) {
|
||||
|
||||
@@ -217,7 +217,11 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
|
||||
if ( ! empty( $filter_type ) ) {
|
||||
if ( 'slider' === $filter_type ) {
|
||||
if ( ! empty( $_POST[ $k ] ) ) {
|
||||
$temp_value[ $k ] = (int) $_POST[ $k ];
|
||||
if ( count( $_POST[ $k ] ) > 1 ) {
|
||||
$temp_value[ $k ] = array_map( 'intval', $_POST[ $k ] );
|
||||
} else {
|
||||
$temp_value[ $k ] = (int) $_POST[ $k ];
|
||||
}
|
||||
}
|
||||
} elseif ( 'timepicker' === $filter_type || 'datepicker' === $filter_type ) {
|
||||
if ( ! empty( $_POST[ $k . '_from' ] ) && ! empty( $_POST[ $k . '_to' ] ) ) {
|
||||
|
||||
@@ -29,12 +29,13 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
|
||||
*/
|
||||
function add_posts() {
|
||||
$args = array(
|
||||
'post_type' => 'post',
|
||||
'posts_per_page' => 10,
|
||||
'offset' => 0,
|
||||
'author' => um_get_requested_user(),
|
||||
'post_status' => array( 'publish' ),
|
||||
'um_main_query' => true,
|
||||
'post_type' => 'post',
|
||||
'posts_per_page' => 10,
|
||||
'offset' => 0,
|
||||
'author' => um_get_requested_user(),
|
||||
'post_status' => array( 'publish' ),
|
||||
'um_main_query' => true,
|
||||
'suppress_filters' => false,
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -108,12 +109,13 @@ if ( ! class_exists( 'um\core\User_posts' ) ) {
|
||||
$page = ! empty( $_POST['page'] ) ? absint( $_POST['page'] ) : 0;
|
||||
|
||||
$args = array(
|
||||
'post_type' => 'post',
|
||||
'posts_per_page' => 10,
|
||||
'offset' => ( $page - 1 ) * 10,
|
||||
'author' => $author,
|
||||
'post_status' => array( 'publish' ),
|
||||
'um_main_query' => true,
|
||||
'post_type' => 'post',
|
||||
'posts_per_page' => 10,
|
||||
'offset' => ( $page - 1 ) * 10,
|
||||
'author' => $author,
|
||||
'post_status' => array( 'publish' ),
|
||||
'um_main_query' => true,
|
||||
'suppress_filters' => false,
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
* @param array $args
|
||||
*/
|
||||
function um_submit_account_errors_hook( $args ) {
|
||||
global $current_user;
|
||||
|
||||
if ( ! isset( $args['_um_account'] ) && ! isset( $args['_um_account_tab'] ) ) {
|
||||
return;
|
||||
}
|
||||
@@ -19,8 +21,6 @@ function um_submit_account_errors_hook( $args ) {
|
||||
UM()->form()->add_error( 'um_account_security', __( 'Are you hacking? Please try again!', 'ultimate-member' ) );
|
||||
}
|
||||
|
||||
$user = get_user_by( 'login', um_user( 'user_login' ) );
|
||||
|
||||
switch ( $tab ) {
|
||||
case 'delete': {
|
||||
// delete account
|
||||
@@ -28,7 +28,7 @@ function um_submit_account_errors_hook( $args ) {
|
||||
if ( strlen( trim( sanitize_text_field( $args['single_user_password'] ) ) ) === 0 ) {
|
||||
UM()->form()->add_error( 'single_user_password', __( 'You must enter your password', 'ultimate-member' ) );
|
||||
} else {
|
||||
if ( ! wp_check_password( sanitize_text_field( $args['single_user_password'] ), $user->data->user_pass, $user->data->ID ) ) {
|
||||
if ( ! wp_check_password( sanitize_text_field( $args['single_user_password'] ), $current_user->data->user_pass, $current_user->data->ID ) ) {
|
||||
UM()->form()->add_error( 'single_user_password', __( 'This is not your password', 'ultimate-member' ) );
|
||||
}
|
||||
}
|
||||
@@ -69,7 +69,7 @@ function um_submit_account_errors_hook( $args ) {
|
||||
UM()->form()->add_error( 'current_user_password', __( 'This is not your password', 'ultimate-member' ) );
|
||||
return;
|
||||
} else {
|
||||
if ( ! wp_check_password( $args['current_user_password'], $user->data->user_pass, $user->data->ID ) ) {
|
||||
if ( ! wp_check_password( $args['current_user_password'], $current_user->data->user_pass, $current_user->data->ID ) ) {
|
||||
UM()->form()->add_error( 'current_user_password', __( 'This is not your password', 'ultimate-member' ) );
|
||||
return;
|
||||
}
|
||||
@@ -105,7 +105,7 @@ function um_submit_account_errors_hook( $args ) {
|
||||
$account_name_require = UM()->options()->get( 'account_name_require' );
|
||||
|
||||
if ( isset( $args['user_login'] ) ) {
|
||||
$args['user_login'] = sanitize_text_field( $args['user_login'] );
|
||||
$args['user_login'] = sanitize_user( $args['user_login'] );
|
||||
}
|
||||
if ( isset( $args['first_name'] ) ) {
|
||||
$args['first_name'] = sanitize_text_field( $args['first_name'] );
|
||||
@@ -120,11 +120,6 @@ function um_submit_account_errors_hook( $args ) {
|
||||
$args['single_user_password'] = sanitize_text_field( $args['single_user_password'] );
|
||||
}
|
||||
|
||||
if ( ! empty( $args['user_login'] ) && ! validate_username( $args['user_login'] ) ) {
|
||||
UM()->form()->add_error( 'user_login', __( 'Your username is invalid', 'ultimate-member' ) );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( isset( $args['first_name'] ) && ( strlen( trim( $args['first_name'] ) ) === 0 && $account_name_require ) ) {
|
||||
UM()->form()->add_error( 'first_name', __( 'You must provide your first name', 'ultimate-member' ) );
|
||||
}
|
||||
@@ -153,7 +148,7 @@ function um_submit_account_errors_hook( $args ) {
|
||||
if ( strlen( trim( $args['single_user_password'] ) ) === 0 ) {
|
||||
UM()->form()->add_error( 'single_user_password', __( 'You must enter your password', 'ultimate-member' ) );
|
||||
} else {
|
||||
if ( ! wp_check_password( $args['single_user_password'], $user->data->user_pass, $user->data->ID ) ) {
|
||||
if ( ! wp_check_password( $args['single_user_password'], $current_user->data->user_pass, $current_user->data->ID ) ) {
|
||||
UM()->form()->add_error( 'single_user_password', __( 'This is not your password', 'ultimate-member' ) );
|
||||
}
|
||||
}
|
||||
@@ -303,20 +298,12 @@ function um_submit_account_details( $args ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( 'single_user_password' === $k ) {
|
||||
if ( 'single_user_password' === $k || 'user_login' === $k ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( 'user_login' === $k ) {
|
||||
$v = sanitize_user( $v );
|
||||
} elseif ( 'first_name' === $k ) {
|
||||
$v = sanitize_text_field( $v );
|
||||
} elseif ( 'last_name' === $k ) {
|
||||
} elseif ( 'first_name' === $k || 'last_name' === $k || 'user_password' === $k ) {
|
||||
$v = sanitize_text_field( $v );
|
||||
} elseif ( 'user_email' === $k ) {
|
||||
$v = sanitize_email( $v );
|
||||
} elseif ( 'user_password' === $k ) {
|
||||
$v = sanitize_text_field( $v );
|
||||
} elseif ( 'hide_in_members' === $k ) {
|
||||
$v = array_map( 'sanitize_text_field', $v );
|
||||
}
|
||||
@@ -502,13 +489,17 @@ add_action( 'um_before_account_notifications', 'um_before_account_notifications'
|
||||
|
||||
|
||||
/**
|
||||
* Update Profile URL
|
||||
* Update Profile URL, display name, full name.
|
||||
*
|
||||
* @param $user_id
|
||||
* @param $changed
|
||||
* @version 2.2.5
|
||||
*
|
||||
* @param int $user_id The user ID.
|
||||
* @param array $changes An array of fields values.
|
||||
*/
|
||||
function um_after_user_account_updated_permalink( $user_id, $changed ) {
|
||||
UM()->user()->generate_profile_slug( $user_id );
|
||||
function um_after_user_account_updated_permalink( $user_id, $changes ) {
|
||||
if ( isset( $changes['first_name'] ) && isset( $changes['last_name'] ) ) {
|
||||
do_action( 'um_update_profile_full_name', $user_id, $changes );
|
||||
}
|
||||
}
|
||||
add_action( 'um_after_user_account_updated', 'um_after_user_account_updated_permalink', 10, 2 );
|
||||
|
||||
|
||||
@@ -23,21 +23,31 @@ add_filter( 'um_edit_label_all_fields', 'um_edit_label_all_fields', 10, 2 );
|
||||
|
||||
|
||||
/**
|
||||
* Outputs a soundcloud track
|
||||
* Outputs a SoundCloud track
|
||||
*
|
||||
* @param $value
|
||||
* @param $data
|
||||
* @param string $value
|
||||
* @param array $data
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function um_profile_field_filter_hook__soundcloud_track( $value, $data ) {
|
||||
|
||||
if ( ! is_numeric( $value ) ) {
|
||||
return __( 'Invalid soundcloud track ID', 'ultimate-member' );
|
||||
# if we're passed a track url:
|
||||
if ( preg_match( '/https:\/\/soundcloud.com\/.*/', $value ) ) {
|
||||
$value = '<div class="um-soundcloud">
|
||||
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=' . esc_attr( urlencode( $value ) ) . '&color=ff6600&auto_play=false&show_artwork=true"></iframe>
|
||||
</div>';
|
||||
return $value;
|
||||
} else {
|
||||
# neither a track id nor url:
|
||||
return __( 'Invalid SoundCloud track ID', 'ultimate-member' );
|
||||
}
|
||||
}
|
||||
|
||||
# if we're passed a track id:
|
||||
$value = '<div class="um-soundcloud">
|
||||
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/' . $value . '&color=ff6600&auto_play=false&show_artwork=true"></iframe>
|
||||
<iframe width="100%" height="166" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/' . esc_attr( $value ) . '&color=ff6600&auto_play=false&show_artwork=true"></iframe>
|
||||
</div>';
|
||||
|
||||
return $value;
|
||||
|
||||
@@ -700,7 +700,7 @@ function um_user_submitted_registration_formatted( $style = false ) {
|
||||
$fields = maybe_unserialize( $fields );
|
||||
}
|
||||
|
||||
if ( isset( $fields ) ) {
|
||||
if ( ! empty( $fields ) ) {
|
||||
|
||||
$fields['form_id'] = array( 'title' => __( 'Form', 'ultimate-member' ) );
|
||||
|
||||
|
||||
+15
-1
@@ -7,7 +7,7 @@ Tags: community, member, membership, user-profile, user-registration
|
||||
Requires PHP: 5.6
|
||||
Requires at least: 5.0
|
||||
Tested up to: 5.8
|
||||
Stable tag: 2.2.4
|
||||
Stable tag: 2.2.5
|
||||
License: GNU Version 2 or Any Later Version
|
||||
License URI: http://www.gnu.org/licenses/gpl-3.0.txt
|
||||
|
||||
@@ -155,6 +155,20 @@ The plugin works with popular caching plugins by automatically excluding Ultimat
|
||||
* To learn more about version 2.1 please see this [docs](https://docs.ultimatemember.com/article/1512-upgrade-2-1-0)
|
||||
* UM2.1+ is a significant update to the Member Directories' code base from 2.0.x. Please make sure you take a full-site backup with restore point before updating the plugin
|
||||
|
||||
= 2.2.5: September 21, 2021 =
|
||||
|
||||
* Enhancements:
|
||||
|
||||
- Added: Ability to insert SoundCloud track URL instead of Track ID
|
||||
|
||||
* Bugfixes:
|
||||
|
||||
- Fixed: Invalid role keys on the role list-table + role edit screen (case when latin symbols used with not UTF-8 symbols)
|
||||
- Fixed: Restriction logic and archive lists (+ nav menu bar) with active "Disable pre-queries for restriction content logic" option
|
||||
- Fixed: Restriction settings fields conditions on wp-admin screens
|
||||
- Fixed: Account `user_login` field validation removed as redundant. The field is disabled and not used in code flow
|
||||
- Fixed: `display_name` data update after First + Last name fields edition on the Account page
|
||||
|
||||
= 2.2.4: August 27, 2021 =
|
||||
|
||||
* Bugfixes:
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
Plugin Name: Ultimate Member
|
||||
Plugin URI: http://ultimatemember.com/
|
||||
Description: The easiest way to create powerful online communities and beautiful user profiles with WordPress
|
||||
Version: 2.2.4
|
||||
Version: 2.2.5
|
||||
Author: Ultimate Member
|
||||
Author URI: http://ultimatemember.com/
|
||||
Text Domain: ultimate-member
|
||||
|
||||
Reference in New Issue
Block a user