Automattic\WooCommerce\Internal\EmailEditor\WCTransactionalEmails

WCTransactionalEmailPostsGenerator::init_default_transactional_emailspublicWC 1.0

Initialize the default WooCommerce Transactional Emails.

This function initializes the default templates for the core transactional emails. It fetches all the emails from WooCommerce and filters them to include only the core transactional emails.

Method of the class: WCTransactionalEmailPostsGenerator{}

No Hooks.

Returns

null. Nothing (null).

Usage

$WCTransactionalEmailPostsGenerator = new WCTransactionalEmailPostsGenerator();
$WCTransactionalEmailPostsGenerator->init_default_transactional_emails();

WCTransactionalEmailPostsGenerator::init_default_transactional_emails() code WC 10.3.6

public function init_default_transactional_emails() {
	if ( ! empty( $this->default_templates ) ) {
		// If the default templates are already initialized, we don't need to run this function again.
		return;
	}

	$core_transactional_emails = WCTransactionalEmails::get_transactional_emails();

	$wc_emails = \WC_Emails::instance();
	/**
	 * WooCommerce Transactional Emails instance.
	 *
	 * @var \WC_Email[]
	 */
	$email_types = $wc_emails->get_emails();

	// Filter the emails to include only the core transactional emails.
	$email_types = array_filter(
		$email_types,
		function ( $email ) use ( $core_transactional_emails ) {
			return in_array( $email->id, $core_transactional_emails, true );
		}
	);

	$this->default_templates = array_reduce(
		$email_types,
		function ( $acc, $email ) {
			$acc[ $email->id ] = $email;
			return $acc;
		},
		array()
	);
}