Skip to content
Snippets Groups Projects
Select Git revision
  • 44881e2d8e64b3dfdec7ed67a331713257bf003a
  • main default protected
  • devel
  • 1.0.0
4 results

EmailTemplate.php

Blame
  • EmailTemplate.php 1.56 KiB
    <?php
    
    namespace WPDesk\Library\WPEmail;
    
    use WPDesk\Library\WPEmail\Helpers\StyleInliner;
    use WPDesk\View\Renderer\Renderer;
    
    class EmailTemplate {
    
        /**
         * @var Renderer
         */
        private $renderer;
    
        /**
         * @var array
         */
        private $template_attributes;
    
        public function __construct( Renderer $renderer, array $template_attributes ) {
            $this->renderer            = $renderer;
            $this->template_attributes = wp_parse_args( $template_attributes, $this->get_default_template_attributes() );
        }
    
        public function get_email_template( string $content ): string {
            $output = $this->renderer->render( 'html/email-header', $this->template_attributes );
            $output .= $this->renderer->render( 'html/email-content', [ 'content' => $content ] );
            $output .= $this->renderer->render( 'html/email-footer', [ 'footer' => $this->template_attributes['footer'] ] );
    
            return $this->css_inline( $output );
        }
    
        /**
         * @param string $content
         *
         * @return mixed|string
         */
        public function css_inline( string $content ): string {
            $styles = $this->renderer->render( 'html/email-styles', $this->template_attributes );
    
            return StyleInliner::inline( $content, $styles );
        }
    
        public function get_default_template_attributes(): array {
            return [
                'heading' => '',
                'logo'    => '',
                'footer'  => '',
                'primary' => '#d15291',
                'text'    => '#303030',
                'bg'      => '#f9f9f9',
                'body'    => '#ffffff',
            ];
        }
    
    }