* @license http://www.gnu.org/licenses/ GNU General Public License * @link https://duckdev.com/products/404-to-301/ */ class JJ4T3_404_Email { /** * Error data class object. * * @var object * @access private * @since 3.0.0 */ private $error_data; /** * Recipient email addresses. * * @var string|array * @access public */ public $recipient; /** * Email subject. * * @var string * @access public */ public $subject; /** * Email headers. * * @var array * @access public */ public $headers; /** * Email content body. * * @var string * @access public */ public $body; /** * Initialize the class and set properties. * * @param object $error_data Error logs data class. * * @since 3.0.0 * @access public */ public function __construct( $error_data ) { $this->error_data = $error_data; // Set required properties. $this->set_recipient(); $this->set_subject(); $this->set_headers(); $this->set_body(); } /** * Send email alert about the error. * * Registering new action hook "jj4t3_before_email". * * @since 3.0.0 * @access public */ public function send_email() { /** * Action hook to perform before email alert. * * Sending email using wp_mail() function. * * @since 3.0.0 * * @param string $this ->recipient Email recipient. * @param string $this ->subject Email subject. * @param string $this ->body Email body. */ do_action( 'jj4t3_before_email', $this->recipient, $this->subject, $this->body ); //var_dump($this->recipient); exit; // Send email using wp_mail(). wp_mail( $this->recipient, $this->subject, $this->body, $this->headers ); } /** * Set email recipients. * * Registering filter - "jj4t3_email_recipient". * * @since 3.0.0 * @access private */ private function set_recipient() { // Get email recipient if set. $recipient = jj4t3_get_option( 'email_notify_address', get_option( 'admin_email' ) ); /** * Filter to alter email recipient. * * @since 3.0.0 */ $this->recipient = apply_filters( 'jj4t3_email_recipient', $recipient ); } /** * Set subject for the 404 email alert. * * Registering filter - "jj4t3_email_subject". * * @since 3.0.0 * @access private */ private function set_subject() { // Include site title. $message = __( 'Snap! One more 404 on ', JJ4T3_DOMAIN ) . get_bloginfo( 'name' ); /** * Filter to alter email subject text. * * @since 3.0.0 */ $this->subject = apply_filters( 'jj4t3_email_subject', $message ); } /** * Set email headers. * * Registering filter - "jj4t3_email_headers". * * @since 3.0.0 * @access private */ private function set_headers() { /** * Filter to alter From name of email alert. * * @since 3.0.0 */ $from_name = apply_filters( 'jj4t3_email_header_name', get_bloginfo( 'name' ) ); /** * Filter to alter From email address of email alert. * * @since 3.0.0 */ $from_email = apply_filters( 'jj4t3_email_header_email', get_option( 'admin_email' ) ); $this->headers[] = "From: " . $from_name . " <" . $from_email . ">" . "\r\n"; $this->headers[] = "Content-Type: text/html; charset=UTF-8"; } /** * Set content for the email alert. * * Registering filter - "jj4t3_email_body". * * @since 3.0.0 * @access private */ private function set_body() { $message = "

" . __( 'Bummer! You have one more 404', JJ4T3_DOMAIN ) . "

"; $message .= ''; // 404 path. $message .= ''; $message .= ''; $message .= ''; $message .= ''; // IP Address. $message .= ''; $message .= ''; $message .= ''; $message .= ''; // Date and time. $message .= ''; $message .= ''; $message .= ''; $message .= ''; // Referral url. $message .= ''; $message .= ''; $message .= ''; $message .= ''; $message .= '
' . __( '404 Path', JJ4T3_DOMAIN ) . '' . $this->error_data->url . '
' . __( 'IP Address', JJ4T3_DOMAIN ) . '' . $this->error_data->ip . '
' . __( 'Time', JJ4T3_DOMAIN ) . '' . $this->error_data->time . '
' . __( 'Referral Page', JJ4T3_DOMAIN ) . '' . $this->error_data->ref . '
'; // Who sent me this alert? $message .= '

Alert sent by the 404 to 301 plugin for WordPress.

'; /** * Filter to alter email content. * * @since 3.0.0 */ $this->body = apply_filters( 'jj4t3_email_body', $message ); } }