Automattic\WooCommerce\Internal\RestApi\Routes\V4\Customers
UpdateUtils::update_customer_from_request
Update customer from request data.
Method of the class: UpdateUtils{}
No Hooks.
Returns
null. Nothing (null).
Usage
$UpdateUtils = new UpdateUtils(); $UpdateUtils->update_customer_from_request( $customer, $request, $creating ): void;
- $customer(WC_Customer) (required)
- Customer object.
- $request(WP_REST_Request) (required)
- Request object.
- $creating(true|false)
- Whether creating a new customer. Unused parameter.
Default: false
UpdateUtils::update_customer_from_request() UpdateUtils::update customer from request code WC 10.4.3
public function update_customer_from_request( WC_Customer $customer, WP_REST_Request $request, bool $creating = false ): void { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed
// Customer email.
if ( isset( $request['email'] ) ) {
$customer->set_email( sanitize_email( $request['email'] ) );
}
// Customer password.
if ( isset( $request['password'] ) ) {
$customer->set_password( $request['password'] );
}
// Customer first name.
if ( isset( $request['first_name'] ) ) {
$customer->set_first_name( wc_clean( $request['first_name'] ) );
}
// Customer last name.
if ( isset( $request['last_name'] ) ) {
$customer->set_last_name( wc_clean( $request['last_name'] ) );
}
// Customer billing address.
if ( isset( $request['billing'] ) && is_array( $request['billing'] ) ) {
$this->update_customer_address( $customer, $request['billing'], 'billing' );
}
// Customer shipping address.
if ( isset( $request['shipping'] ) && is_array( $request['shipping'] ) ) {
$this->update_customer_address( $customer, $request['shipping'], 'shipping' );
}
// Save the customer.
$customer->save();
// Additional fields for user data.
$user_data = get_userdata( $customer->get_id() );
if ( $user_data ) {
$this->update_additional_fields_for_object( $user_data, $request );
// Ensure user is a member of the blog and has customer role.
if ( ! is_user_member_of_blog( $user_data->ID ) ) {
$user_data->add_role( 'customer' );
}
}
}