Automattic\WooCommerce\Internal\RestApi\Routes\V4\Customers

UpdateUtils::update_customer_from_requestpublicWC 1.0

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() 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' );
		}
	}
}