J'ai ajouté une nouvelle colonne à la table wp_users
. Maintenant, j'aimerais le mettre à jour avec wp_update_user()
; cependant, bien que la méthode ne renvoie aucune erreur, aucune valeur n'est en cours de sauvegarde. wp_get_current_user
renvoie la nouvelle colonne, mais la valeur est vide.
Est-ce que cela signifie que wp_update_user()
ne peut gérer que des colonnes standard? Je n'ai rien trouvé à ce sujet dans la documentation.
Je connais la table méta clé-valeur pour les colonnes définies par l'utilisateur, mais il serait plus pratique d'avoir un nouveau champ dans la table utilisateur dans mon scénario.
Le code est simple:
$user_info = wp_get_current_user();
$user_info->creditBalance = 44;
$user_id = wp_update_user( $user_info ); // doesn't seem to update the creditBalance
Il n'est pas recommandé d'ajouter ou de supprimer des colonnes dans/depuis les tables principales dans WordPress. Il n'y a aucune garantie que la toute prochaine mise à jour ne change pas le comportement de cette table, ni même écrase votre colonne. Votre meilleure approche consiste à utiliser les métadonnées comme vous l'avez mentionné.
Toutefois, si vous avez besoin de le faire pour une raison quelconque, vous pouvez le faire en écrivant votre propre requête SQL.
// Get current user's data
$user_info = wp_get_current_user();
// Get its ID
$id = $user_info->ID;
// Set the credit balance
$creditBalance = 44;
// Update the custom column
function update_custom_column( $id, $creditBalance ) {
global $wpdb;
$wpdb->query(
$wpdb->prepare( "
UPDATE $wpdb->users
SET creditBalance = %d
WHERE ID = %d",
$creditBalance,
$id
)
);
}
Cependant, travailler avec une base de données est délicat et peut être dangereux. Faites attention.