Automattic\WooCommerce\Internal\CustomerEmailVerification
CustomerEmailVerification{}
Boot class for the customer email verification subsystem.
Resolves each controller so that their constructors register hooks during the plugins_loaded action.
No Hooks.
Usage
$CustomerEmailVerification = new CustomerEmailVerification(); // use class methods
Methods
- public __construct()
- public init_hooks()
- public register_email_classes( array $emails )
Changelog
| Since 11.0.0 | Introduced. |
CustomerEmailVerification{} CustomerEmailVerification{} code WC 11.0.0
class CustomerEmailVerification {
/**
* Initialize the subsystem.
*
* @since 11.0.0
*/
public function __construct() {
add_action( 'plugins_loaded', array( $this, 'init_hooks' ) );
}
/**
* Resolve all subsystem controllers so their constructors register hooks.
*
* @internal
* @since 11.0.0
*/
public function init_hooks(): void {
add_filter( 'woocommerce_email_classes', array( $this, 'register_email_classes' ) );
// Link a customer's matching guest orders to their account once they verify their email.
// wc_update_new_customer_past_orders() casts the ID and no-ops for guest/invalid users; the
// order count it returns is unused here.
// @phpstan-ignore-next-line return.void -- The returned count is intentionally discarded.
add_action( 'woocommerce_customer_email_verified', 'wc_update_new_customer_past_orders' );
$container = wc_get_container();
$container->get( VerificationController::class );
$container->get( VerificationEventListener::class );
if ( is_admin() ) {
$container->get( UserProfileField::class );
}
}
/**
* Register the customer email verification email with WooCommerce.
*
* @internal
*
* @param array $emails Registered email classes.
* @return array
*/
public function register_email_classes( array $emails ): array {
$emails['WC_Email_Customer_Verify_Email'] = new CustomerVerifyEmail();
return $emails;
}
}