diff --git a/core/um-actions-register.php b/core/um-actions-register.php index e46f7abc..3c9fdc0c 100644 --- a/core/um-actions-register.php +++ b/core/um-actions-register.php @@ -231,10 +231,12 @@ } if ( um_user( $status . '_action' ) == 'show_message' && um_user( $status . '_message' ) != '' ) { - $url = $ultimatemember->permalinks->get_current_url(); - $url = add_query_arg( 'message', esc_attr( $status ), $url ); - $url = add_query_arg( 'uid', esc_attr( um_user('ID') ), $url ); - $url = add_query_arg( 'um_form_id', esc_attr( $form_id ), $url ); + + $role_id = $ultimatemember->user->get_role_name( um_user('role'), true ); + $url = $ultimatemember->permalinks->get_current_url(); + $url = add_query_arg( 'message', esc_attr( $status ), $url ); + $url = add_query_arg( 'um_role', esc_attr( $role_id ), $url ); + $url = add_query_arg( 'um_form_id', esc_attr( $form_id ), $url ); exit( wp_redirect( $url ) ); } diff --git a/core/um-filters-arguments.php b/core/um-filters-arguments.php index 1455f5d8..151a30d4 100644 --- a/core/um-filters-arguments.php +++ b/core/um-filters-arguments.php @@ -29,12 +29,15 @@ global $ultimatemember; if ($ultimatemember->shortcodes->message_mode == true) { - $args['template'] = 'message'; - um_fetch_user( $_REQUEST['uid'] ); - - $ultimatemember->shortcodes->custom_message = um_user( um_user('status') . '_message' ); - um_reset_user(); + $args['template'] = 'message'; + $role = esc_attr( $_REQUEST['um_role'] ); + $role_slug = $ultimatemember->user->get_role_slug_by_id( $role ); + $role = $ultimatemember->query->role_data( $role_slug ); + $status = $role["status"]; + $message = $role["{$status}_message"]; + $ultimatemember->shortcodes->custom_message = $message; + } foreach( $args as $k => $v ) { diff --git a/core/um-user.php b/core/um-user.php index 91014e5c..905cf467 100644 --- a/core/um-user.php +++ b/core/um-user.php @@ -704,6 +704,34 @@ class UM_User { return $role_title; } + /** + * Get role slug by ID + * @param integer $id + * @return string + */ + function get_role_slug_by_id( $id ) { + global $wpdb, $ultimatemember; + + + $args = array( + 'posts_per_page' => 1, + 'post_type' => 'um_role', + 'page_id' => $id, + 'post_status' => array('publish'), + ); + + $roles = new WP_Query( $args ); + $role_slug = ''; + + if ( $roles->have_posts() ) { + $role_slug = $roles->post->post_name; + } + + wp_reset_query(); + + return $role_slug; + } + /*** *** @Update one key in user meta ***/