WC_Admin::preview_emailspublicWC 1.0

Preview email template.

Метод класса: WC_Admin{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$WC_Admin = new WC_Admin();
$WC_Admin->preview_emails();

Код WC_Admin::preview_emails() WC 10.5.2

public function preview_emails() {

	if ( isset( $_GET['preview_woocommerce_mail'] ) ) {
		if ( ! ( isset( $_REQUEST['_wpnonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ), 'preview-mail' ) ) ) {
			die( 'Security check' );
		}

		$email_preview = wc_get_container()->get( EmailPreview::class );

		if ( isset( $_GET['type'] ) ) {
			$type_param = sanitize_text_field( wp_unslash( $_GET['type'] ) );
			try {
				$email_preview->set_email_type( $type_param );
			} catch ( InvalidArgumentException $e ) {
				wp_die( esc_html__( 'Invalid email type.', 'woocommerce' ), 400 );
			}
		}

		if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
			$message = $email_preview->render();
			$message = $email_preview->ensure_links_open_in_new_tab( $message );
		} else {
			// Start output buffering to prevent partial renders with PHP notices or warnings.
			ob_start();
			try {
				$message = $email_preview->render();
				$message = $email_preview->ensure_links_open_in_new_tab( $message );
			} catch ( Throwable $e ) {
				ob_end_clean();
				wp_die(
					esc_html__(
						'There was an error rendering the email preview. This doesn\'t affect actual email delivery. Please contact the extension author for assistance.',
						'woocommerce'
					),
					404
				);
			}
			ob_end_clean();
		}

		// print the preview email.
		// phpcs:ignore WordPress.Security.EscapeOutput
		echo $message;
		// phpcs:enable
		exit;
	}
}