- Statut : non résolu
- Ce sujet contient 23 réponses, 2 participants et a été mis à jour pour la dernière fois par
Timama, le il y a 9 années et 6 mois.
-
AuteurMessages
-
17 septembre 2015 à 12 h 40 min #1021340
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 ?17 septembre 2015 à 13 h 02 min #1021341tu 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 wp17 septembre 2015 à 13 h 24 min #1021342bon 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 sociale17 septembre 2015 à 13 h 50 min #1021343j’ai fait en sorte que si le champ raison sociale est vide, il soit rempli avec un tiret et du coup tout fonctionne bien
17 septembre 2015 à 18 h 36 min #1021344pardon 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….
17 septembre 2015 à 18 h 47 min #1021345mince 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:
17 septembre 2015 à 18 h 57 min #1021346okay 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 !
✅
18 septembre 2015 à 9 h 07 min #1021347ce 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 wordpress18 septembre 2015 à 9 h 23 min #1021348merci
okay, je note wpquestions !
-
AuteurMessages
- Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.