Programmgesteuerte Aktualisierung der Rechnungsinformationen des Kunden in WooCommerce

Lesezeit: 1 Minute

Benutzer-Avatar
DavidTonarini

Ich habe ein Formular, in dem sich der Benutzer für eine Veranstaltung anmeldet, und wenn er möchte, kann er einige seiner Rechnungsinformationen im Handumdrehen aktualisieren.

Ich habe zum Beispiel eine Liste der Informationen, die sie aktualisieren können

 $inputs = array(
        'billing_city'          => 'City',
        'billing_postcode'      => 'Postcode',
        'billing_email'         =>  'Email',
        'billing_phone'         =>  'Phone',
    );

Ich habe dann versucht, die zu verwenden WC_Customer Klasse, um die geänderten Informationen zu aktualisieren:

$customer = new WC_Customer( get_current_user_id() );
foreach ($inputs as $key => $label ) {
     $method = 'set_'. $key;
     $customer->$method( $value );
}

Es scheint einfach genug zu sein. Die Rechnungsinformationen werden jedoch nicht geändert.

Was mache ich falsch? Gibt es eine andere Funktion, die dieses Problem lösen soll?

Die Woocommerce-Dokumentation erklärt nicht wirklich viel.

Sie können es mit tun update_user_meta() Funktion so:

$user_id =  get_current_user_id();

$data = array(
    'billing_city'          => $city_value,
    'billing_postcode'      => $postcode_value,
    'billing_email'         => $email_value,
    'billing_phone'         => $phone_value,
);
foreach ($data as $meta_key => $meta_value ) {
    update_user_meta( $user_id, $meta_key, $meta_value );
}

Sie müssen die Werte im Array festlegen.

Sie müssen die Änderungen nach dem Festlegen der Eigenschaften speichern. Fügen Sie in Ihrem Code nach foreach Folgendes hinzu:

$customer->save();

Und voila!

1380240cookie-checkProgrammgesteuerte Aktualisierung der Rechnungsinformationen des Kunden in WooCommerce

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy