Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
forbidals
/
wp-content
/
plugins
/
woocommerce
/
src
/
Blocks
/
BlockTypes
:
EmailContent.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php // phpcs:ignore Generic.PHP.RequireStrictTypes.MissingDeclaration namespace Automattic\WooCommerce\Blocks\BlockTypes; use Automattic\WooCommerce\Blocks\BlockTypes\AbstractBlock; use Automattic\WooCommerce\Internal\EmailEditor\BlockEmailRenderer; use Automattic\WooCommerce\Internal\EmailEditor\WooContentProcessor; use Automattic\WooCommerce\Internal\Admin\EmailPreview\EmailPreview; /** * EmailContent class. */ class EmailContent extends AbstractBlock { /** * Block name. * * @var string */ protected $block_name = 'email-content'; /** * Get the frontend style handle for this block type. * * @return null */ protected function get_block_type_style() { return null; } /** * Get the editor script handle for this block type. * * @param string $key Data to get, or default to everything. * @return array|string */ protected function get_block_type_editor_script( $key = null ) { $script = [ 'handle' => 'wc-' . $this->block_name . '-block', 'path' => $this->asset_api->get_block_asset_build_path( $this->block_name ), 'dependencies' => [ 'wc-blocks' ], ]; return $key ? $script[ $key ] : $script; } /** * Get the frontend script handle for this block type. * * @param string $key Data to get, or default to everything. */ protected function get_block_type_script( $key = null ) { return null; } /** * Renders the block preview for the editor. * * @param array $attributes Block attributes. * @return string Rendered block output. */ protected function render_preview( $attributes ) { /** * Email preview instance for rendering dummy content. * * @var EmailPreview $email_preview - email preview instance */ $email_preview = wc_get_container()->get( EmailPreview::class ); $type_param = EmailPreview::DEFAULT_EMAIL_TYPE; if ( isset( $attributes['emailType'] ) ) { $type_param = sanitize_text_field( wp_unslash( $attributes['emailType'] ) ); } try { return $email_preview->generate_placeholder_content( $type_param ); } catch ( \Exception $e ) { // Catch other potential errors during content generation. return esc_html__( 'There was an error rendering the email preview.', 'woocommerce' ); } } /** * Renders Woo content placeholder to be replaced by content during sending. * * @param array $attributes Block attributes. * @param string $content Block content. * @param \WP_Block $block Block instance. * @return string Rendered block output. */ protected function render( $attributes, $content, $block ) { // phpcs:disable WordPress.Security.NonceVerification.Recommended if ( defined( 'REST_REQUEST' ) && REST_REQUEST && isset( $_GET['context'] ) && 'edit' === sanitize_text_field( wp_unslash( $_GET['context'] ) ) ) { // Block is being rendered for ServerSideRender editor preview. return $this->render_preview( $attributes ); } return BlockEmailRenderer::WOO_EMAIL_CONTENT_PLACEHOLDER; } }