# yaymail/4.4.1/src/Utils/TemplateRenderer.php

YayMail – WooCommerce Email Customizer, version 4.4.1. 52 lines.

- Page: https://pluginprobe.com/plugins/yaymail/4.4.1/code/src/Utils/TemplateRenderer.php
- Raw: https://pluginprobe.com/plugins/yaymail/4.4.1/raw/src/Utils/TemplateRenderer.php
- Modified: 2026-05-21T15:42:52+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/yaymail/4.4.1/code/src/Utils/TemplateRenderer.php#L10-L20`.

```php
<?php

namespace YayMail\Utils;

use YayMail\Models\TemplateModel;
use YayMail\Shortcodes\ShortcodesExecutor;
use YayMail\Models\SettingModel;
use YayMail\YayMailTemplate;
use YayMail\Utils\TemplateHelpers;


defined( 'ABSPATH' ) || exit;

/**
 * TemplateRenderer Classes
 * Define all utility functions to be used for rendering templates
 */
class TemplateRenderer {

    public $template = null;

    public function __construct( $template ) {
        if ( $template instanceof YayMailTemplate ) {
            $this->template = $template;
        }
    }

    public function generate_content( $render_data ) {
        if ( empty( $this->template ) ) {
            return '';
        }

        // Handle the cases when order is numeric (order_id)
        if ( isset( $render_data['order'] ) && is_numeric( $render_data['order'] ) ) {
            $order = wc_get_order( $render_data['order'] );
            if ( $order ) {
                $render_data['order'] = $order;
            }
        }

        // TODO: Need to generate render_data based on email type
        $args = [
            'template'    => $this->template,
            'render_data' => $render_data,
            'settings'    => yaymail_settings(),
        ];

        $content = yaymail_get_content( 'templates/emails/email-content.php', $args );

        return TemplateHelpers::replace_color_paths( $content );
    }
}
```
