Soporte » WordPress Avanzado » Mostrar usuarios por rol

  • pgaingrid15

    (@pgaingrid15)


    Hola. Estoy creando una web y he estado intentado mostrar a los usuarios con rol editor solo los usuarios con un rol suscritor y a los usuarios con rol administrador, mostrarle todos los usuarios registrados. Hace un tiempo hice la modificación en el core de WordPress y me funciona bien, el problema es cuando hay una nueva actualización de WordPress, el código que modifique se elimina. Alguno me puede orienta a como crear esto desde un plugin. Actualmente lo estoy trabajando así, pero no me muestra nada.

    add_filter('manage_users_columns', 'ing_user_editor_fila ');
     
        function ing_user_editor_fila ($value, $column_name, $user_id) {
                 
            global $wpdb;
        $current_user = get_current_user_id();
    	   	
    		$administrador = $wpdb->get_var("SELECT COUNT(*) AS num FROM $wpdb->usermeta
                        INNER JOIN $wpdb->users u ON $wpdb->usermeta.user_id=u.ID
                        WHERE meta_value='a:1:{s:13:\"administrator\";b:1;}'
                        AND user_id=$current_user");	
                        
           if($administrador > 0){
    				    $this->request = "SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit";
    					}else{
        				$this->request = "SELECT * FROM $wpdb->users us WHERE us.ID IN (select u.user_id  from $wpdb->usermeta u where u.user_id = us.ID and u.meta_value= 'a:1:{s:10:"subscriber";b:1;}' )";
                                
        				}
         if ( null === $this->results ) {
    		
    			if ( is_array( $qv['fields'] ) || 'all' === $qv['fields'] ) {
    				$this->results = $wpdb->get_results( $this->request );
    			} else {
    				$this->results = $wpdb->get_col( $this->request );
    			}
    
    			if ( isset( $qv['count_total'] ) && $qv['count_total'] ) {
    			  
    			    $found_users_query = apply_filters( 'found_users_query', 'SELECT FOUND_ROWS()', $this );
    
    				$this->total_users = (int) $wpdb->get_var( $found_users_query );
    			}
    		}
    • Este debate fue modificado hace 3 meses por Jose Luis. Razón: Mover al foro adecuado
Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • kallookoo

    (@kallookoo)

    Hola @pgaingrid15

    Ese codigo esta incompleto y no sabria decirte que sucede, solo he podido deducir que quieres que aparezca en el listado de usuarios.
    Asi que tienes este plugin; https://wordpress.org/plugins/manage-user-columns/ que diria que hace lo que quieres y lo podrias usar o usarlo como guia.

    Iniciador del debate pgaingrid15

    (@pgaingrid15)

    Gracias por su respuesta. En realidad lo que quiero lograr es que los administradores de wordpress puedan visualizar todos los usuarios, por ejemplo todos los usuarios con rol editor, suscriptor, administrador, etc. Y los usuarios con rol editor, solo puedan visualizar los usuarios que tiene el rol suscriptor.

    Hola @pgaingrid15

    Pues es sencillo, partiendo de ese plugin como ejemplo, podrias añadir un condicional para mostrar los roles y si lo es para visualizarlos creas una pagina personalizada basada en la de autores.

Viendo 3 respuestas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.