Je crée un plugin wordpress qui doit saisir le nom de l'utilisateur lors de l'enregistrement lorsqu'il est intégré à BuddyPress. Malheureusement, le champ Name
ne retourne jamais rien. Le code suivant s'exécute dans le crochet user_register
.Récupère le champ de profil "Nom" de buddypress dans le crochet user_register
add_action('user_register', 'ts_api_registration_save', 9999999, 1);
function ts_api_registration_save($user_id)
{
$info = get_userdata($user_id);
$name = bp_profile_field_data(array('field' => 'Name', 'user_id' => $info->ID));
}
Malheureusement $name
est toujours vide. J'ai vérifié la base de données, et le champ Nom est le seul dans bp_xprofile_fields, donc je sais qu'il existe.
J'ai également confirmé que $info->ID
n'est pas vide, et qu'il contient correctement un identifiant d'utilisateur. Une idée de pourquoi cela ne fonctionne pas?
En attendant, je suis en mesure de le faire pour obtenir ce que je veux:
$results = $GLOBALS['wpdb']->get_results('SELECT * FROM ' . $wpdb->prefix . "bp_xprofile_fields WHERE name = 'Name'");
$fullName = $_POST["field_" . $nameFieldId];
Mais ce n'est pas optimale.
Je ne pense pas que cette fonction existe. Quand je l'exécute, j'obtiens: "Le nom de la fonction doit être une chaîne". Cette fonction doit avoir changé dans les nouvelles versions de BP – user3413723
Ma réponse a été mise à jour –
J'ai aussi essayé celui-ci, toujours pas de chance ... Peut-être que les champs de profil ne sont pas définis avant l'exécution de user_register ou quelque chose comme ça. – user3413723