diff --git a/src/Abstracts/EmailAbstract.php b/src/Abstracts/EmailAbstract.php index 9d3524e443db79c58c0b2bef74e6da92cbc8c2a5..8542f0ab2e828ca6c6eff2d28e9e4824eb3fb73c 100644 --- a/src/Abstracts/EmailAbstract.php +++ b/src/Abstracts/EmailAbstract.php @@ -2,20 +2,25 @@ namespace WPDesk\Library\WPEmail\Abstracts; +use Exception; + abstract class EmailAbstract implements EmailInterface { /** * @var array */ protected $recipients = []; + /** * @var array */ protected $placeholders = []; + /** * @var string */ protected $subject = ''; + /** * @var string */ @@ -48,6 +53,19 @@ abstract class EmailAbstract implements EmailInterface { */ abstract public function get_id(): string; + /** + * Set placeholders. + * + * @param array $placeholders + * + * @return self + */ + public function set_placeholders( array $placeholders = [] ): self { + $this->placeholders = array_merge( $this->placeholders, $placeholders ); + + return $this; + } + /** * Get defined placeholders. * @@ -57,20 +75,46 @@ abstract class EmailAbstract implements EmailInterface { return $this->placeholders; } + /** + * Get email subject. + * + * @param string $subject + * + * @return self + */ + public function set_subject( string $subject ): self { + $this->subject = $subject; + + return $this; + } + /** * Get email subject. * * @return string - * @throws \Exception + * @throws Exception */ public function get_subject(): string { if ( ! $this->subject ) { - throw new \Exception( 'Empty email subject' ); + throw new Exception( 'Empty email subject' ); } return $this->subject; } + /** + * Set email heading. + * + * @param string $heading + * + * @return self + */ + public function set_heading( string $heading ): self { + $this->heading = $heading; + + return $this; + } + /** * Get email heading. * @@ -80,6 +124,19 @@ abstract class EmailAbstract implements EmailInterface { return $this->heading; } + /** + * Get valid recipients. + * + * @param array $recipients + * + * @return self + */ + public function set_recipients( array $recipients = [] ): self { + $this->recipients = $recipients; + + return $this; + } + /** * Get valid recipients. * @@ -89,6 +146,19 @@ abstract class EmailAbstract implements EmailInterface { return $this->recipients; } + /** + * Get email headers. + * + * @param array $headers + * + * @return self + */ + public function set_headers( array $headers = [] ): self { + $this->headers = $headers; + + return $this; + } + /** * Get email headers. * @@ -98,6 +168,19 @@ abstract class EmailAbstract implements EmailInterface { return $this->headers; } + /** + * Set attachments. + * + * @param array $attachments + * + * @return self + */ + public function set_attachments( array $attachments ): self { + $this->attachments = $attachments; + + return $this; + } + /** * Get email attachments. * @@ -107,6 +190,19 @@ abstract class EmailAbstract implements EmailInterface { return $this->attachments; } + /** + * Set email type. + * + * @param string $type + * + * @return self + */ + public function set_type( string $type = 'text/html' ): self { + $this->type = $type; + + return $this; + } + /** * Get email type. * @@ -116,14 +212,28 @@ abstract class EmailAbstract implements EmailInterface { return $this->type; } + /** + * Get email content. + * + * @param string $content + * + * @return self + */ + public function set_content( string $content ): self { + $this->content = $content; + + return $this; + } + /** * Get email content. * * @return string + * @throws Exception */ public function get_content(): string { if ( ! $this->content ) { - throw new \Exception( 'Empty email subject' ); + throw new Exception( 'Empty email content' ); } return ''; @@ -136,4 +246,5 @@ abstract class EmailAbstract implements EmailInterface { return ''; } + }