diff --git a/includes/admin/templates/role/role-edit.php b/includes/admin/templates/role/role-edit.php
index 47bd571b..64c40949 100644
--- a/includes/admin/templates/role/role-edit.php
+++ b/includes/admin/templates/role/role-edit.php
@@ -77,34 +77,38 @@ if ( ! empty( $_POST['role'] ) ) {
$data = $_POST['role'];
- if ( empty( $data['name'] ) ) {
+ if ( 'add' == $_GET['tab'] ) {
- $error .= __( 'Title is empty!', 'ultimate-member' ) . '
';
+ $data['name'] = trim( esc_html( strip_tags( $data['name'] ) ) );
- } else {
-
- if ( 'add' == $_GET['tab'] ) {
-
- if ( preg_match( "/[a-z0-9]+$/i", $data['name'] ) ) {
- $id = sanitize_title( $data['name'] );
- } else {
- $auto_increment = UM()->options()->get( 'custom_roles_increment' );
- $auto_increment = ! empty( $auto_increment ) ? $auto_increment : 1;
- $id = 'custom_role_' . $auto_increment;
- }
-
- $redirect = add_query_arg( array( 'page'=>'um_roles', 'tab'=>'edit', 'id'=>$id, 'msg'=>'a' ), admin_url( 'admin.php' ) );
- } elseif ( 'edit' == $_GET['tab'] && ! empty( $_GET['id'] ) ) {
- $id = $_GET['id'];
- $redirect = add_query_arg( array( 'page' => 'um_roles', 'tab'=>'edit', 'id'=>$id, 'msg'=>'u' ), admin_url( 'admin.php' ) );
+ if ( empty( $data['name'] ) ) {
+ $error .= __( 'Title is empty!', 'ultimate-member' ) . '
';
}
+ if ( preg_match( "/[a-z0-9]+$/i", $data['name'] ) ) {
+ $id = sanitize_title( $data['name'] );
+ } else {
+ $auto_increment = UM()->options()->get( 'custom_roles_increment' );
+ $auto_increment = ! empty( $auto_increment ) ? $auto_increment : 1;
+ $id = 'custom_role_' . $auto_increment;
+ }
+
+ $redirect = add_query_arg( array( 'page'=>'um_roles', 'tab'=>'edit', 'id'=>$id, 'msg'=>'a' ), admin_url( 'admin.php' ) );
+ } elseif ( 'edit' == $_GET['tab'] && ! empty( $_GET['id'] ) ) {
+ $id = $_GET['id'];
+
+ $pre_role_meta = get_option( "um_role_{$id}_meta", array() );
+ $data['name'] = $pre_role_meta['name'];
+
+ $redirect = add_query_arg( array( 'page' => 'um_roles', 'tab'=>'edit', 'id'=>$id, 'msg'=>'u' ), admin_url( 'admin.php' ) );
}
+
$all_roles = array_keys( get_editable_roles() );
if ( 'add' == $_GET['tab'] ) {
- if ( in_array( 'um_' . $id, $all_roles ) || in_array( $id, $all_roles ) )
+ if ( in_array( 'um_' . $id, $all_roles ) || in_array( $id, $all_roles ) ) {
$error .= __( 'Role already exists!', 'ultimate-member' ) . '
';
+ }
}
if ( '' == $error ) {
@@ -186,7 +190,6 @@ $screen_id = $current_screen->id; ?>
-
diff --git a/includes/core/um-actions-profile.php b/includes/core/um-actions-profile.php
index ad3d7cf7..4e0c0635 100644
--- a/includes/core/um-actions-profile.php
+++ b/includes/core/um-actions-profile.php
@@ -1444,9 +1444,12 @@ function um_profile_menu( $args ) {
$active_subnav = ( UM()->profile()->active_subnav() ) ? UM()->profile()->active_subnav() : $tab['subnav_default']; ?>