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
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'] );