Automattic\WooCommerce\Internal\EmailEditor\WCTransactionalEmails
WCEmailTemplateSyncRegistry::resolve
Resolve the registry from scratch.
Method of the class: WCEmailTemplateSyncRegistry{}
No Hooks.
Returns
Array
Usage
$result = WCEmailTemplateSyncRegistry::resolve(): array;
WCEmailTemplateSyncRegistry::resolve() WCEmailTemplateSyncRegistry::resolve code WC 10.8.1
private static function resolve(): array {
$eligible_ids = WCTransactionalEmails::get_transactional_emails();
if ( empty( $eligible_ids ) ) {
return array();
}
$emails_by_id = WCTransactionalEmailPostsManager::get_instance()->get_emails_by_id();
$registry = array();
foreach ( $eligible_ids as $email_id ) {
if ( ! is_string( $email_id ) || '' === $email_id ) {
continue;
}
$email = $emails_by_id[ $email_id ] ?? null;
if ( null === $email ) {
self::get_logger()->notice(
sprintf(
'Email template sync skipped for email "%s": no WC_Email subclass registered.',
$email_id
),
array(
'email_id' => $email_id,
'context' => 'email_template_sync_registry',
)
);
continue;
}
$source = self::classify_source( $email_id );
$template_path = WCTransactionalEmailPostsGenerator::resolve_block_template_path( $email );
if ( '' === $template_path || ! is_readable( $template_path ) ) {
self::get_logger()->notice(
sprintf(
'Email template sync skipped for email "%s": template path not resolvable. source=%s',
$email_id,
$source
),
array(
'email_id' => $email_id,
'source' => $source,
'template_path' => $template_path,
'context' => 'email_template_sync_registry',
)
);
continue;
}
$version = self::parse_version_header( $template_path );
if ( '' === $version ) {
self::get_logger()->warning(
sprintf(
'Email template sync skipped for email "%s": missing @version header in %s. source=%s',
$email_id,
$template_path,
$source
),
array(
'email_id' => $email_id,
'source' => $source,
'template_path' => $template_path,
'context' => 'email_template_sync_registry',
)
);
continue;
}
$registry[ $email_id ] = array(
'version' => $version,
'template_path' => $template_path,
'source' => $source,
);
}
return $registry;
}