PHP 8.2.31
Preview: CreateAccount.php Size: 2.35 KB
/home/nshryvcy/taramarriagebureau.com/wp-content/plugins/woocommerce/src/Blocks/Domain/Services/CreateAccount.php

<?php
namespace Automattic\WooCommerce\Blocks\Domain\Services;

use Automattic\WooCommerce\Blocks\Domain\Package;
use Automattic\WooCommerce\Blocks\Domain\Services\Email\CustomerNewAccount;

/**
 * Service class implementing new create account emails used for order processing via the Block Based Checkout.
 */
class CreateAccount {
	/**
	 * Reference to the Package instance
	 *
	 * @var Package
	 */
	private $package;

	/**
	 * Constructor.
	 *
	 * @param Package $package An instance of (Woo Blocks) Package.
	 */
	public function __construct( Package $package ) {
		$this->package = $package;
	}

	/**
	 * Init - register handlers for WooCommerce core email hooks.
	 */
	public function init() {
		// Override core email handlers to add our new improved "new account" email.
		add_action(
			'woocommerce_email',
			function ( $wc_emails_instance ) {
				// Remove core "new account" handler; we are going to replace it.
				remove_action( 'woocommerce_created_customer_notification', array( $wc_emails_instance, 'customer_new_account' ), 10, 3 );

				// Add custom "new account" handler.
				add_action(
					'woocommerce_created_customer_notification',
					function( $customer_id, $new_customer_data = array(), $password_generated = false ) use ( $wc_emails_instance ) {
						// If this is a block-based signup, send a new email with password reset link (no password in email).
						if ( isset( $new_customer_data['source'] ) && 'store-api' === $new_customer_data['source'] ) {
							$this->customer_new_account( $customer_id, $new_customer_data );
							return;
						}

						// Otherwise, trigger the existing legacy email (with new password inline).
						$wc_emails_instance->customer_new_account( $customer_id, $new_customer_data, $password_generated );
					},
					10,
					3
				);
			}
		);
	}

	/**
	 * Trigger new account email.
	 * This is intended as a replacement to WC_Emails::customer_new_account(),
	 * with a set password link instead of emailing the new password in email
	 * content.
	 *
	 * @param int   $customer_id       The ID of the new customer account.
	 * @param array $new_customer_data Assoc array of data for the new account.
	 */
	public function customer_new_account( $customer_id = 0, array $new_customer_data = array() ) {
		$new_account_email = new CustomerNewAccount( $this->package );
		$new_account_email->trigger( $customer_id, $new_customer_data );
	}
}

Directory Contents

Dirs: 2 × Files: 10

Name Size Perms Modified Actions
- drwxr-xr-x 2026-03-03 06:25:16
Edit Download
Email DIR
- drwxr-xr-x 2026-03-03 06:25:16
Edit Download
51.00 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
5.29 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
14.23 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
2.35 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
7.28 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
708 B lrw-r--r-- 2026-03-03 06:25:16
Edit Download
2.89 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
3.59 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
8.18 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download
3.55 KB lrw-r--r-- 2026-03-03 06:25:16
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).