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

phpunit-unit.xml

Blame
  • EmailSender.php 4.18 KiB
    <?php
    
    namespace WPDesk\Library\WPEmail;
    
    use WPDesk\Library\WPEmail\Abstracts\EmailInterface;
    use WPDesk\Library\WPEmail\Parser\HTMLDecorator;
    use WPDesk\View\Renderer\Renderer;
    use WPDesk\View\Renderer\SimplePhpRenderer;
    use WPDesk\View\Resolver\ChainResolver;
    use WPDesk\View\Resolver\DirResolver;
    use WPDesk\View\Resolver\WPThemeResolver;
    
    class EmailSender {
    
        /**
         * @var EmailInterface[]
         */
        private $emails = [];
    
        /**
         * @var string
         */
        private $from = 'wordpress@wordpress.org';
    
        /**
         * @var string
         */
        private $from_name = 'WordPress';
    
        /**
         * @var Renderer
         */
        private $renderer;
    
        /**
         * @param $from
         * @param $from_name
         */
        public function __construct() {
            $this->init_renderer();
        }
    
        public function init_renderer() {
            $resolver = new ChainResolver();
            $resolver->appendResolver( new DirResolver( __DIR__ ) );
    
            $this->renderer = new SimplePhpRenderer( $resolver );
        }
    
        public function set_renderer( Renderer $renderer ) {
            $this->renderer = $renderer;
        }
    
        public function add_email( EmailInterface $email ) {
            $this->emails[ $email->get_id() ] = $email;
        }
    
        public function get_emails(): array {
            return $this->emails;
        }
    
        public function set_from( string $from ) {
            $this->from = $from;
        }
    
    
        /**
         * WordPress callback for setting the from email
         *
         * @param string $email