Tri colonne dans le back office wordpress user (Créer un compte)

  • Statut : non résolu
9 sujets de 16 à 24 (sur un total de 24)
  • Auteur
    Messages
  • #1021340
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    je suis actif sur WPquestions, je connais bien
    et la réponse donnée par Navjot Singh semble très bien
    elle ne fonctionne pas chez toi ?

    #1021341
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    tu peux me copier la fonction qui ajoute le champ « raison sociale » dans tes fiches « user » stp ?
    je suis en train de tester tes fonction sur un de mes wp

    #1021342
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    bon de mon côté ça marche
    par contre je rencontre la même difficulté que le gars de wpquestions, à savoir que si la raison sociale est vide, le user disparait lorsqu’on trie par raison sociale

    #1021343
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    j’ai fait en sorte que si le champ raison sociale est vide, il soit rempli avec un tiret et du coup tout fonctionne bien

    #1021344
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    pardon Gueblo… j’avais des choses à faire.. je reprend 😉

    merci pour toutes tes réponses..

    Alors, je retente la réponse donnée par Navjot Singh….après tout…mieux vaut deux fois qu’une….

    #1021345
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    mince alors non, ça fonctionne pas mais je suis sûre que j’ai fait une bêtise grosse comme moi à un moment donné…

    alors, dans mes fiches users, la data se place grâce à un formulaire via

    <th>Raison social</th>
    <td><input class="regular-text raisonsociale" type="text" name="raisonsociale" value=" » /></td>

    et après je fais comme j’ai dit avant et en utilisant la réponse donnée par Navjot Singh

    add_filter(‘manage_users_columns’, ‘pippin_add_user_raisonsociale’);
    function pippin_add_user_raisonsociale($columns) {
    $columns[‘raisonsociale’] = ‘Raisonsociale’;
    $columns[‘particulier_admission’] = ‘Admission’;
    return $columns;
    }


    add_action(‘manage_users_custom_column’, ‘pippin_show_user_raisonsociale’, 10, 3);
    function pippin_show_user_raisonsociale($value, $column_name, $user_id) {
    $user = get_userdata( $user_id );
    $user_roles = $user->roles;
    $user_role = array_shift($user_roles);
    $raisonsociale = $user->raisonsociale;
    if ( ‘raisonsociale’ == $column_name )
    {
    return $raisonsociale;
    }

    if ($user_role == ‘membres_particulier’ )
    {
    $admission = $user->particulier_admission;
    }

    if ($user_role == ‘membres_entreprise’ )
    {
    $admission = $user->admissionent;
    }

    if ( ‘particulier_admission’ == $column_name OR ‘admissionent’ == $column_name)
    {
    return $admission;
    }
    return $value;

    }


    //nouvelle colonne triée
    add_filter( ‘manage_users_sortable_columns’, ‘user_sortable_columns’ );
    function user_sortable_columns( $columns ) {
    $columns[‘raisonsociale’] = ‘Raisonsociale’;
    return $columns;
    }



    add_action(‘pre_user_query’, ‘raisonsociale_column_orderby’);
    function raisonsociale_column_orderby($userquery){
    if(‘raisonsociale’==$userquery->query_vars[‘orderby’]) {//check if church is the column being sorted
    global $wpdb;
    $userquery->query_from .=  » LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) « ;//note use of alias
    $userquery->query_where .=  » AND alias.meta_key = ‘raisonsociale’ « ;//which meta are we sorting with?
    $userquery->query_orderby =  » ORDER BY alias.meta_value « .($userquery->query_vars[« order »] == « ASC » ? « asc  » : « desc « );//set sort order
    }
    }

    Mais cela ne change rien… le tri prend en compte toujours et seulement l’identifiant…

    bon, je vais relire encore une fois…..ce que j’ai écrit pour trouver ma bêtise

    :search:

    #1021346
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    okay Gueblo, tu as raison cela fonctionne….. !

    merci pour ton soutien !

    donc au final j’ai fait ça

    function modify_user_table( $column ) {
    $column[‘raisonsociale’] = ‘Raisonsociale’;
    return $column;
    }
    add_filter( ‘manage_users_columns’, ‘modify_user_table’ );


    function modify_user_table_row( $val, $column_name, $user_id ) {
    $user = get_userdata( $user_id );
    switch ($column_name) {
    case ‘raisonsociale’ :
    $raisonsociale = $user->raisonsociale;
    if ($raisonsociale == ‘Current’){
    return ‘<div class="special2">‘.$raisonsociale.’</div>‘;
    }else if ($raisonsociale == ‘Past Due’){
    return ‘<div class="special1">‘.$raisonsociale.’</div>‘;
    }else{ return ‘<div class="special">‘.$raisonsociale.’</div>‘; }
    break;
    default:
    }

    switch ($column_name) {
    case ‘raisonsociale’ :
    return $user->raisonsociale;
    break;
    default:
    }
    return $return;
    }
    add_filter( ‘manage_users_custom_column’, ‘modify_user_table_row’, 10, 3 );


    function raisonsociale_column_sortable( $columns ) {
    $columns[‘raisonsociale’] = ‘raisonsociale’;
    return $columns;
    }
    add_filter( ‘manage_users_sortable_columns’, ‘raisonsociale_column_sortable’ );


    add_action(‘pre_user_query’, ‘raisonsociale_column_orderby’);
    function raisonsociale_column_orderby($userquery){
    if(‘raisonsociale’==$userquery->query_vars[‘orderby’]) {//check if church is the column being sorted
    global $wpdb;
    $userquery->query_from .=  » LEFT OUTER JOIN $wpdb->usermeta AS alias ON ($wpdb->users.ID = alias.user_id) « ;//note use of alias
    $userquery->query_where .=  » AND alias.meta_key = ‘raisonsociale’ « ;//which meta are we sorting with?
    $userquery->query_orderby =  » ORDER BY alias.meta_value « .($userquery->query_vars[« order »] == « ASC » ? « asc  » : « desc « );//set sort order
    }
    }

    et là ma colonne custom « raison sociale » se trie bien et non plus en fonction de l’identifiant….

    merci encore Gueblo pour ton aide !

    #1021347
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    ce fut un plaisir !
    Bravo pour ta persévérance 🙂
    N’hésite pas si tu as de nouvelles questions, et eventuellement va sur wpquestions qui est un repère des meilleurs experts de wordpress

    #1021348
    Timama
    Participant
    Chevalier WordPress
    284 contributions

    merci :D

    okay, je note wpquestions !

9 sujets de 16 à 24 (sur un total de 24)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.