it-swarm.com.de

Benutzerdefinierte Spalte unter Alle Benutzer (Multisite-Netzwerkadministrator)?

Ich möchte ein Feld/eine Spalte für die Superadministrator-/Multisite-Netzwerkseite unter "Alle Benutzer" hinzufügen. Ich möchte eine Spalte mit dem Namen "Firma" als Spalte unter jedem Benutzer anzeigen. Wie mache ich das möglich? Ich kann dies unter "Alle Benutzer" auf jeder Website anzeigen, aber nicht auf den Seiten für Netzwerkadministratoren.

Vielen Dank!

//Add column to Network Admin User panel list page
function add_user_columns( $defaults ) {
     $defaults['company'] = __('Company', 'user-column');
     return $defaults;
}
add_filter('wpmu_users_columns', 'add_user_columns', 15, 1);

//Print the user data in the new column
function add_custom_user_columns($value, $column_name, $id) {
      if( $column_name == 'company' ) {
        return get_the_author_meta( 'company', $id );
      }
}
add_action('wpmu_users_custom_column', 'add_custom_user_columns', 15, 3);

Diese Funktion wird direkt von einer Funktion übernommen, die in der normalen Benutzerliste (nicht im Netzwerk) ausgeführt wird. Manage_users_columns durch wpmu_users_columns und manage_users_custom_column durch wpmu_users_custom_column ersetzt. In der Liste der Netzwerkbenutzer funktioniert dies jedoch nicht.

2
jockebq

Dies ist alles, was Sie benötigen, um der Tabelle der Netzwerkbenutzer eine Spalte hinzuzufügen, sie vor eine ausgewählte Spalte zu stellen und ihr Daten hinzuzufügen.

add_filter( 'wpmu_users_columns', 'my_awesome_new_column' );

add_action( 'manage_users_custom_column', 'my_awesome_column_data', 10, 3 );

// Creates a new column in the network users table and puts it before a chosen column
function my_awesome_new_column( $columns ) {
    return my_awesome_add_element_to_array( $columns, 'my-awesome-column', 'Awesome', 'registered' );
}

// Adds data to our new column
function my_awesome_column_data( $value, $column_name, $user_id ) {

    // If this our column, we return our data
    if ( 'my-awesome-column' == $column_name ) {
        return 'Awesome user ID ' . intval( $user_id );
    }

    // If this is not any of our custom columns we just return the normal data
    return $value;
}

// Adds a new element in an array on the exact place we want (if possible).
function my_awesome_add_element_to_array( $original_array, $add_element_key, $add_element_value, $add_before_key ) {

    // This variable shows if we were able to add the element where we wanted
    $added = 0;

    // This will be the new array, it will include our element placed where we want
    $new_array = array();

    // We go through all the current elements and we add our new element on the place we want
    foreach( $original_array as $key => $value ) {

        // We put the element before the key we want
        if ( $key == $add_before_key ) {
            $new_array[ $add_element_key ] = $add_element_value;

            // We were able to add the element where we wanted so no need to add it again later
            $added = 1;
        }

        // All the normal elements remain and are added to the new array we made
        $new_array[ $key ] = $value;
    }

    // If we failed to add the element earlier (because the key we tried to add it in front of is gone) we add it now to the end
    if ( 0 == $added ) {
        $new_array[ $add_element_key ] = $add_element_value;
    }

    // We return the new array we made
    return $new_array;
}
1
Nikolay