Automattic\WooCommerce\Internal\EmailEditor
Integration::update_send_preview_email_personalizer_context
Update the personalizer context for the send preview email.
Method of the class: Integration{}
No Hooks.
Returns
Array. The updated personalizer context.
Usage
$Integration = new Integration(); $Integration->update_send_preview_email_personalizer_context( $context );
- $context(array) (required)
- The personalizer context.
Integration::update_send_preview_email_personalizer_context() Integration::update send preview email personalizer context code WC 10.3.6
public function update_send_preview_email_personalizer_context( $context ) {
$post_manager = WCTransactionalEmailPostsManager::get_instance();
$email_type_template_name = $post_manager->get_email_type_from_post_id( get_the_ID() );
$email_type = $email_type_template_name ? $post_manager->get_email_type_class_name_from_template_name( $email_type_template_name ) : EmailPreview::DEFAULT_EMAIL_TYPE;
$email_preview = wc_get_container()->get( EmailPreview::class );
try {
$email_preview->set_email_type( $email_type );
} catch ( \InvalidArgumentException $e ) {
// If the email type is invalid, return the context data as is.
return $context;
}
$email = $email_preview->get_email();
$email->recipient = $context['recipient_email'] ?? '';
$personalizer = wc_get_container()->get( TransactionalEmailPersonalizer::class );
return $personalizer->prepare_context_data( $context, $email );
}