WooCommerce Konto programmgesteuert / durch Funktion erstellen

Lesezeit: 4 Minuten

Gibt es überhaupt einen Kunden programmgesteuert zu erstellen, wie Sie es mit einem WordPress-Benutzer können. Offensichtlich teilt der WooCommerce-Benutzer einige der gleichen WordPress-Benutzerfelder, es gibt zusätzliche Inhalte, die eingestellt werden müssten, wie z. B. Rechnungs-/Postanschrift.

Hat das schon mal jemand erreicht? Ich kann nichts in der WooCommerce API / Funktionsliste auf ihrer Website finden.

EDIT: Gerade gefunden: http://docs.woothemes.com/wc-apidocs/function-wc_create_new_customer.html

Aber wie kann ich dann andere Felddetails (wie Adressen) angeben?

WooCommerce-Kunde ist im Wesentlichen ein WordPress-Benutzer mit zusätzlichen Metadaten. Sobald der Benutzer erstellt ist, können Sie ihm Metadaten hinzufügen, indem Sie verwenden update_user_meta Funktion. Navigieren Sie zu Benutzer -> Alle Benutzer, bearbeiten Sie einen der Benutzer und scrollen Sie dann nach unten, um die Felder anzuzeigen.

Erfundener Code, der unten angegeben ist, um Ihnen das Wesentliche zu geben, wie es funktioniert.

$user_id = wc_create_new_customer( $email, $username, $password );

update_user_meta( $user_id, "billing_first_name", 'God' );
update_user_meta( $user_id, "billing_last_name", 'Almighty' );
.... more fields

Hier ist die vollständige Liste der Rechnungs- und Versandfelder

Abrechnung

  • Abrechnungsvorname
  • Abrechnungsnachname
  • Abrechnungsunternehmen
  • Rechnungsadresse 1
  • Rechnungsadresse_2
  • Abrechnungsstadt
  • Rechnungs_Postleitzahl
  • Land der Rechnungsadresse
  • Abrechnungs Zustand
  • Abrechnung per E-Mail
  • Rechnungs_Telefon

Versand

  • Versand_Vorname
  • Versand_Nachname
  • Versandunternehmen
  • Versandadresse_1
  • Versandadresse_2
  • Versandstadt
  • Versand_Postleitzahl
  • Lieferungsland
  • Versandstatus

  • Perfekt danke. Ich bin beim Mittagessen zu demselben Schluss gekommen, aber ich werde Ihre Antwort für zukünftige Benutzer markieren, die darauf stoßen.

    – Stefan Dunn

    24. September 2015 um 13:46 Uhr

  • @AnandShah könnten Sie bitte mit einem Link antworten, von dem Sie diese Liste von Feldern haben? bitte schnellstmöglich machen.

    – Shahid Sarwar

    18. August 2016 um 10:16 Uhr

  • docs.woocommerce.com/document/…

    – Anand Schah

    19. August 2016 um 7:44 Uhr

  • Neuer Link update_user_meta

    – Fil

    5. Februar 2020 um 10:55 Uhr

  • Aus irgendeinem Grund erscheinen so erstellte Benutzer nicht in der WooCommerce-Kundenliste im Admin.

    – Maštarija

    4. Juni 2021 um 19:22 Uhr

Bevor ich versuche, einen neuen Benutzer zu erstellen, sehe ich, ob dieser Benutzer bereits existiert, und aktualisiere den vorhandenen Benutzer, falls er gefunden wird. Die Funktion get_user_by(field,value) gibt das Benutzerobjekt zurück. Wenn der Benutzer also vorhanden ist, verwenden Sie seine ID, um Metafelder zu aktualisieren, oder erstellen Sie ein neues.

  $email="[email protected]";

        $address = array(
            'first_name' => 'Tester',
            'last_name'  => 'Test',
            'company'    => 'Testing, LLC',
            'email'      => $email,
            'phone'      => '777-777-777-777',
            'address_1'  => '310 S. Main Street',
            'address_2'  => '',
            'city'       => 'Las Vegas',
            'state'      => 'NV',
            'postcode'   => '89000',
            'country'    => 'US'
        );

        $default_password = wp_generate_password();
        $user = get_user_by('login', $email);

        if (!$user = $user->ID) $user = wp_create_user( $email, $default_password, $email );

        update_user_meta( $user, "billing_first_name", $address['first_name'] );
        update_user_meta( $user, "billing_last_name", $address['last_name']);
        update_user_meta( $user, "billing_company", $address['company'] );
        update_user_meta( $user, "billing_email", $address['email'] );
        update_user_meta( $user, "billing_address_1", $address['address_1']);
        update_user_meta( $user, "billing_address_2", $address['address_2'] );
        update_user_meta( $user, "billing_city", $address['city']);
        update_user_meta( $user, "billing_postcode", $address['postcode'] );
        update_user_meta( $user, "billing_country", 'US');
        update_user_meta( $user, "billing_state", $address['state'] );
        update_user_meta( $user, "billing_phone", $address['phone'] );
        update_user_meta( $user, "shipping_first_name", $address['first_name'] );
        update_user_meta( $user, "shipping_last_name", $address['last_name']);
        update_user_meta( $user, "shipping_company", $address['company'] );
        update_user_meta( $user, "shipping_address_1", $address['address_1']);
        update_user_meta( $user, "shipping_address_2", $address['address_2'] );
        update_user_meta( $user, "shipping_city", $address['city']);
        update_user_meta( $user, "shipping_postcode", $address['postcode'] );
        update_user_meta( $user, "shipping_country", 'US');
        update_user_meta( $user, "shipping_state", $address['state'] );

  • Wenn Sie bereits teilweise Adressfeldindizes haben, können Sie einfach a ausführen foreach Schleife mit nur 3-4 Codezeilen anstelle dieser über 20 Zeilen update_user_meta

    – Sohan Zaman

    20. April 2021 um 11:28 Uhr

  • Sie sollten Folgendes verwenden: wc_create_new_customer( $email, $username, $password ); statt: ‘wp_create_user( $email, $default_password, $email );’, richtig?

    – Tarik

    28. April 2021 um 21:06 Uhr


  • Großartig, +1 für Ihre Bestätigung. Sie können auch ein Array mit all diesen Feldern erstellen und dann Folgendes deklarieren: foreach ( $billing_address as $key => $value ) { update_user_meta( $user, $key, $value ); } foreach ( $shipping_address as $key => $value ) { update_user_meta( $user, $key, $value ); }

    – Jean Manzo

    6. August 2021 um 16:23 Uhr

1402240cookie-checkWooCommerce Konto programmgesteuert / durch Funktion erstellen

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

Privacy policy