it-swarm.com.de

Verwenden Sie wp_update_user, um die benutzerdefinierte Spalte in der wp_users-Tabelle zu aktualisieren

Ich habe der Tabelle wp_users eine neue Spalte hinzugefügt. Jetzt möchte ich es mit wp_update_user() aktualisieren, obwohl die Methode keine Fehler zurückgibt, wird kein Wert gespeichert. wp_get_current_user gibt die neue Spalte zurück, aber der Wert ist leer.

Bedeutet das, dass wp_update_user() nur Standardspalten verarbeiten kann? Konnte nichts darüber in der Dokumentation finden.

Ich kenne die Metaschlüsselwerttabelle für benutzerdefinierte Spalten, aber es wäre bequemer, in meinem Szenario ein neues Feld in der Benutzertabelle zu haben.

Der Code ist einfach:

$user_info = wp_get_current_user();
$user_info->creditBalance = 44;
$user_id = wp_update_user( $user_info ); // doesn't seem to update the creditBalance
1
Bart Juriewicz

Es ist keine gute Praxis, Spalten zu/von den Kerntabellen in WordPress hinzuzufügen/zu entfernen. Es gibt keine Garantie dafür, dass das nächste Update das Verhalten dieser Tabelle nicht ändert oder sogar Ihre Spalte überschreibt. Ihr bester Ansatz ist es, Metadaten wie erwähnt zu verwenden.

Wenn dies jedoch aus irgendeinem Grund erforderlich ist, können Sie eine eigene SQL-Abfrage erstellen.

// 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
        ) 
    );
}

Das Arbeiten mit der Datenbank ist jedoch schwierig und kann gefährlich sein. Achtung.

1
Jack Johansson