API – programmatically switch
-
Hi, I have website, where I want switch user via php. I have some 50% solution like this
add_action( 'parse_query', 'test_parse_query' ); function test_parse_query( $wp_query ) { if ( isset( $wp_query->query['view-as-user'] ) && function_exists( 'view_admin_as' ) ) { if ( is_numeric( $wp_query->query['view-as-user'] ) ) { $request = array( 'user' => $wp_query->query['view-as-user'] ); $view_admin_as = view_admin_as(); //$view_admin_as->controller()->reset_view(); $view_admin_as->store()->set_view( $view_admin_as->controller()->validate_view_data( $request ) ); $data = $view_admin_as->controller()->validate_view_data( $view_admin_as->store()->get_view() ); if ( $data ) { $meta = $view_admin_as->store()->get_userMeta( 'views' ); // Make sure it is an array (no array means no valid data so we can safely clear it). if ( ! is_array( $meta ) ) { $meta = array(); } // Add the new view metadata and expiration date. $meta[ $view_admin_as->store()->get_curUserSession() ] = array( 'view' => $data, 'expire' => ( time() + (int) 86400 ), ); // Update metadata (returns: true on success, false on failure). $view_admin_as->store()->update_userMeta( $meta, 'views', true ); } wp_redirect( home_url( trailingslashit( _x( 'my-account', 'link my account', 'test' ) ) ) ); die(); } }It work ok, but if user dont have cap “view_admin_as” and “edit_users”, it is not possible (https://github.com/JoryHogeveen/view-admin-as/wiki/Custom-capabilities). It is possible some workaround for switching user without these caps? Or can I use some filter for temporary adding them and remove after switching? Thank you for your help!
Viewing 8 replies - 1 through 8 (of 8 total)
Viewing 8 replies - 1 through 8 (of 8 total)
The topic ‘API – programmatically switch’ is closed to new replies.