WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

Automattic\WooCommerce\Blocks\Domain\Services

CreateAccount::create_customer_account() private WC 1.0

Create a new account for a customer (using a new blocks-specific PHP API).

The account is created with a generated username. The customer is sent an email notifying them about the account and containing a link to set their (initial) password.

Intended as a replacement for wc_create_new_customer in WC core.

{} Это метод класса: CreateAccount{}

Возвращает

Число. User id if successful

Использование

// private - только в коде основоного (родительского) класса
$result = $this->create_customer_account( $user_email, $first_name, $last_name );
$user_email(строка) (обязательный)
The email address to use for the new account.
$first_name(строка) (обязательный)
The first name to use for the new account.
$last_name(строка) (обязательный)
The last name to use for the new account.

Код CreateAccount::create_customer_account() WC 4.7.0

<?php
private function create_customer_account( $user_email, $first_name, $last_name ) {
	if ( empty( $user_email ) || ! is_email( $user_email ) ) {
		throw new \Exception( 'registration-error-invalid-email' );
	}

	if ( email_exists( $user_email ) ) {
		throw new \Exception( 'registration-error-email-exists' );
	}

	$username = wc_create_new_customer_username( $user_email );

	// Handle password creation.
	$password           = wp_generate_password();
	$password_generated = true;

	// Use WP_Error to handle registration errors.
	$errors = new \WP_Error();

	do_action( 'woocommerce_register_post', $username, $user_email, $errors );

	$errors = apply_filters( 'woocommerce_registration_errors', $errors, $username, $user_email );

	if ( $errors->get_error_code() ) {
		throw new \Exception( $errors->get_error_code() );
	}

	$new_customer_data = apply_filters(
		'woocommerce_new_customer_data',
		array(
			'is_checkout_block_customer_signup' => true,
			'user_login'                        => $username,
			'user_pass'                         => $password,
			'user_email'                        => $user_email,
			'first_name'                        => $first_name,
			'last_name'                         => $last_name,
			'role'                              => 'customer',
		)
	);

	$customer_id = wp_insert_user( $new_customer_data );

	if ( is_wp_error( $customer_id ) ) {
		throw $this->map_create_account_error( $customer_id );
	}

	// Set account flag to remind customer to update generated password.
	update_user_option( $customer_id, 'default_password_nag', true, true );

	do_action( 'woocommerce_created_customer', $customer_id, $new_customer_data, $password_generated );

	return $customer_id;
}