Current Path : /home/church/www/blackfounderssummit.com/wp-content/plugins/really-simple-ssl/mailer/ |
Current File : /home/church/www/blackfounderssummit.com/wp-content/plugins/really-simple-ssl/mailer/class-mail.php |
<?php if ( ! defined( 'ABSPATH' ) ) exit; /** * Class to send an e-mail */ if ( !class_exists('rsssl_mailer') ) { class rsssl_mailer { public $to; public $title; public $headers; public $message; public $subject; public $change_text; public $sent_to_text; public $what_now_text; public $sent_by_text; public $warning_blocks; public $error = ''; public function __construct() { $this->sent_by_text = __("This email is part of the Really Simple SSL Notification System", "really-simple-ssl"); $this->subject = __("Notification by Really Simple SSL", "really-simple-ssl"); $this->title = __("Learn more about our features!", "really-simple-ssl"); $this->sent_to_text = __("This email was sent to", "really-simple-ssl"); $this->what_now_text = __( "Learn more", "really-simple-ssl"); $this->change_text = __("Why did I receive this email?", "really-simple-ssl"); $domain = '<a href="'.site_url().'">'.site_url().'</a>'; $this->message = sprintf(__("You have enabled a feature on %s. We think it's important to let you know a little bit more about this feature so you can use it without worries.","really-simple-ssl"), $domain); add_action('wp_mail_failed', array($this, 'log_mailer_errors'), 10, 1); } /** * Send a test email * @return array */ public function send_test_mail(){ if ( !rsssl_user_can_manage() ) { return ['success' => false, 'message' => 'Not allowed']; } $this->to = rsssl_get_option('notifications_email_address', get_bloginfo('admin_email') ); if ( !is_email($this->to) ){ return ['success' => false, 'message' => __('Email address not valid',"really-simple-ssl")]; } $this->title = __("Really Simple SSL - Notification Test", "really-simple-ssl"); $this->message = __("This email is confirmation that any security notices are likely to reach your inbox.", "really-simple-ssl"); $this->warning_blocks = [ [ 'title' => __("About notifications","really-simple-ssl"), 'message' => __("Email notifications are only sent for important updates, security notices or when certain features are enabled.","really-simple-ssl"), 'url' => 'https://really-simple-ssl.com/email-notifications/', ] ]; return $this->send_mail(true); } public function log_mailer_errors( $wp_error ){ if (is_wp_error($wp_error)) { $this->error = $wp_error->get_error_message(); } } /** * Send an e-mail with the correct login URL * * @return array */ public function send_mail(): array { if ( empty($this->message) || empty($this->subject) ) { $this->error = __("Email could not be sent. No message or subject set.", "really-simple-ssl"); } $this->to = rsssl_get_option('notifications_email_address', get_bloginfo('admin_email') ); if ( !is_email($this->to) ){ $this->error = __("Email address not valid", "really-simple-ssl"); } $template = file_get_contents(__DIR__.'/templates/email.html'); $block_html = ''; if (is_array($this->warning_blocks) && count($this->warning_blocks)>0) { $block_template = file_get_contents(__DIR__.'/templates/block.html'); foreach ($this->warning_blocks as $warning_block){ $block_html .= str_replace( ['{title}','{message}','{url}'], [ sanitize_text_field($warning_block['title']), wp_kses_post($warning_block['message']), esc_url_raw($warning_block['url']) ], $block_template); } } $username = rsssl_get_option('new_admin_user_login'); $login_url = wp_login_url(); $body = str_replace( [ '{title}', '{message}', '{warnings}', '{email-address}', '{learn-more}', '{site_url}', '{login_url}', '{username}', '{change_text}', '{what_now}', '{sent_to_text}', '{sent_by_text}' ], [ sanitize_text_field( $this->title ), wp_kses_post( $this->message ), $block_html, $this->to, __( "Learn more", 'really-simple-ssl' ), site_url(), $login_url, $username, $this->change_text, $this->what_now_text, $this->sent_to_text, $this->sent_by_text ], $template ); $success = wp_mail( $this->to, sanitize_text_field($this->subject), $body, array('Content-Type: text/html; charset=UTF-8') ); if ($success) { return ['success' => true, 'message' => __('Email sent! Please check your mail', "really-simple-ssl")]; } if (empty($this->error)) { $this->error = __('Email could not be sent.', "really-simple-ssl"); } else { $this->error = __('An error occurred:', "really-simple-ssl").'<br>'.$this->error; } return ['success' => false, 'message' => $this->error]; } } }