Current Path : /var/www/ooareogundevinitiative/wp-content/plugins/brizy/editor/forms/ |
Current File : /var/www/ooareogundevinitiative/wp-content/plugins/brizy/editor/forms/smtp-integration.php |
<?php /** * Created by PhpStorm. * User: alex * Date: 11/20/18 * Time: 4:48 PM */ class Brizy_Editor_Forms_SmtpIntegration extends Brizy_Editor_Forms_WordpressIntegration { /** * @var string */ protected $host; /** * @var string */ protected $port; /** * @var string */ protected $authentication; /** * @var string */ protected $username; /** * @var string */ protected $password; /** * @var string */ protected $encryption = 'ssl'; /** * Brizy_Editor_Forms_WordpressIntegration constructor. */ public function __construct() { $this->id = 'smtp'; } /** * @param Brizy_Editor_Forms_Form $form * @param $fields * * @return bool|mixed * @throws Exception */ public function handleSubmit( Brizy_Editor_Forms_Form $form, $fields ) { add_action( 'phpmailer_init', array( $this, 'decoratePhpMailer' ) ); add_action( 'wp_mail_failed', array( $this, 'handleFailToSendMessage' ) ); $result = parent::handleSubmit( $form, $fields ); } public function decoratePhpMailer( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = $this->getHost(); $phpmailer->SMTPSecure = $this->getEncryption(); $phpmailer->SMTPAuth = $this->getAuthentication(); $phpmailer->Port = $this->getPort(); $phpmailer->Username = $this->getUsername(); $phpmailer->Password = $this->getPassword(); } /** * @return array|mixed */ public function jsonSerialize() { $get_object_vars = parent::jsonSerialize(); $get_object_vars['emailTo'] = $this->getEmailTo(); $get_object_vars['subject'] = $this->getSubject(); $get_object_vars['host'] = $this->getHost(); $get_object_vars['authentication'] = $this->getAuthentication(); $get_object_vars['port'] = $this->getPort(); $get_object_vars['username'] = $this->getUsername(); $get_object_vars['password'] = $this->getPassword(); $get_object_vars['encryption'] = $this->getEncryption(); return $get_object_vars; } /** * @param $json_obj * * @return Brizy_Editor_Forms_WordpressIntegration|null */ public static function createFromJson( $json_obj ) { $instance = null; if ( is_object( $json_obj ) ) { $instance = new self(); self::populateInstanceDataFromJson( $instance, $json_obj ); if ( isset( $json_obj->host ) ) { $instance->setHost( trim( $json_obj->host ) ); } if ( isset( $json_obj->port ) ) { $instance->setPort( trim( $json_obj->port ) ); } if ( isset( $json_obj->authentication ) ) { $instance->setAuthentication( $json_obj->authentication ); } if ( isset( $json_obj->username ) ) { $instance->setUsername( trim( $json_obj->username ) ); } if ( isset( $json_obj->password ) ) { $instance->setPassword( trim( $json_obj->password ) ); } if ( isset( $json_obj->encryption ) ) { $instance->setEncryption( $json_obj->encryption ); } } return $instance; } static public function createFromSerializedData( $data, $instance = null ) { if ( is_null( $instance ) ) { $instance = new self(); } $instance = parent::createFromSerializedData( $data, $instance ); if ( isset( $data['host'] ) ) { $instance->setHost( $data['host'] ); } if ( isset( $data['port'] ) ) { $instance->setPort( $data['port'] ); } if ( isset( $data['username'] ) ) { $instance->setUsername( $data['username'] ); } if ( isset( $data['password'] ) ) { $instance->setPassword( $data['password'] ); } if ( isset( $data['encryption'] ) ) { $instance->setEncryption( $data['encryption'] ); } if ( isset( $data['authentication'] ) ) { $instance->setAuthentication( $data['authentication'] ); } return $instance; } /** * @return string */ public function getHost() { return $this->host; } /** * @param string $host * * @return Brizy_Editor_Forms_SmtpIntegration */ public function setHost( $host ) { $this->host = $host; return $this; } /** * @return string */ public function getPort() { return $this->port; } /** * @param string $port * * @return Brizy_Editor_Forms_SmtpIntegration */ public function setPort( $port ) { $this->port = $port; return $this; } /** * @return string */ public function getAuthentication() { return $this->authentication; } /** * @param string $authentication * * @return Brizy_Editor_Forms_SmtpIntegration */ public function setAuthentication( $authentication ) { $this->authentication = (bool)$authentication; return $this; } /** * @return string */ public function getUsername() { return $this->username; } /** * @param string $username * * @return Brizy_Editor_Forms_SmtpIntegration */ public function setUsername( $username ) { $this->username = $username; return $this; } /** * @return string */ public function getPassword() { return $this->password; } /** * @param string $password * * @return Brizy_Editor_Forms_SmtpIntegration */ public function setPassword( $password ) { $this->password = $password; return $this; } /** * @return string */ public function getEncryption() { return $this->encryption; } /** * @param string $encryption * * @return Brizy_Editor_Forms_SmtpIntegration */ public function setEncryption( $encryption ) { //this is a hack because we had bool values on this property if ( is_bool( $encryption ) ) { $this->encryption = $encryption ? 'ssl' : 'tls'; } else { $this->encryption = $encryption; } return $this; } }