b0y-101 Mini Shell


Current Path : E:/www2/kidsbangna/wp-content/plugins/dw-question-answer/inc/
File Upload :
Current File : E:/www2/kidsbangna/wp-content/plugins/dw-question-answer/inc/Notifications.php

<?php  

class DWQA_Notifications {

	private $time_delay = 120;
	// private $time_delay = 0;
	public function __construct() {

		if(get_option('dwqa_enable_email_delay')){
			add_action('dwqa_new_question_notify', array( $this, 'new_question_notify' ), 10, 2);
			add_action('dwqa_new_answer_notify', array( $this, 'new_answer_notify' ), 10, 2);
			add_action('dwqa_new_comment_notify', array( $this, 'new_comment_notify' ), 10, 2);

			add_action( 'dwqa_add_question', array( $this, 'dwqa_queue_add_question' ), 10, 2 );
			add_action( 'dwqa_add_answer', array( $this, 'dwqa_queue_add_answer' ), 10, 2 );
			add_action( 'wp_insert_comment', array( $this, 'dwqa_queue_insert_comment' ), 10, 2 );
		}else{
			add_action( 'dwqa_add_question', array( $this, 'new_question_notify' ), 10, 2 );
			add_action( 'wp_insert_comment', array( $this, 'new_comment_notify' ), 10, 2 );
			add_action( 'dwqa_add_answer', array( $this, 'new_answer_notify' ), 10, 2 );
		}
		
		
		

		// add_action( 'dwqa_add_question', array( $this, 'new_activity' ) );
		// add_action( 'dwqa_add_answer', array( $this, 'new_activity' ) );
		// add_action( 'dwqa_add_comment', array( $this, 'new_activity' ) );
	}
	
	public function dwqa_queue_add_question($question_id, $user_id){
		wp_schedule_single_event( time() + 120, 'dwqa_new_question_notify', array($question_id, $user_id) );
	}
	public function dwqa_queue_add_answer($answer_id, $question_id){
		wp_schedule_single_event( time() + 120, 'dwqa_new_answer_notify', array($answer_id, $question_id) );
	}
	public function dwqa_queue_insert_comment($comment_id, $comment){
		wp_schedule_single_event( time() + 120, 'dwqa_new_comment_notify', array($comment_id, $comment) );
	}
	
	public function new_question_notify( $question_id, $user_id ) {
		// receivers
		$admin_email = $this->get_admin_email();

		$enabled = get_option( 'dwqa_subscrible_enable_new_question_notification', 1 );
		if ( ! $enabled ) {
			return false;
		}
		$question = get_post( $question_id );
		if ( ! $question ) {
			return false;
		}

		$subject = get_option( 'dwqa_subscrible_new_question_email_subject' );
		if ( ! $subject ) {
			$subject = __( 'A new question was posted on {site_name}', 'dw-question-answer' );
		}
		$subject = str_replace( '{site_name}', get_bloginfo( 'name' ), $subject );
		$subject = str_replace( '{question_title}', $question->post_title, $subject );
		$subject = str_replace( '{question_id}', $question->ID, $subject );
		$subject = str_replace( '{username}', get_the_author_meta( 'display_name', $user_id ), $subject );
		
		$message = dwqa_get_mail_template( 'dwqa_subscrible_new_question_email', 'new-question' );
		if ( ! $message ) {
			return false;
		}
		// Replacement
		
		$admin = get_user_by( 'email', $admin_email[0] );
		if ( $admin ) {
			$message = str_replace( '{admin}', get_the_author_meta( 'display_name', $admin->ID ), $message );
		}
		//sender
		$message = str_replace( '{user_avatar}', get_avatar( $user_id, '60' ), $message );
		$message = str_replace( '{user_link}', dwqa_get_author_link( $user_id ), $message );
		$message = str_replace( '{username}', get_the_author_meta( 'display_name', $user_id ), $message );
		//question
		$message = str_replace( '{question_link}', get_permalink( $question_id ), $message );
		$message = str_replace( '{question_title}', $question->post_title, $message );
		$message = str_replace( '{question_content}', $question->post_content, $message );
		// Site info
		$logo = get_option( 'dwqa_subscrible_email_logo', '' );
		$logo = $logo ? '<img src="' . $logo . '" alt="' . get_bloginfo( 'name' ) . '" style="max-width: 100%; height: auto;" />' : '';
		$message = str_replace( '{site_logo}', $logo, $message );
		$message = str_replace( '{site_name}', get_bloginfo( 'name' ), $message );
		$message = str_replace( '{site_description}', get_bloginfo( 'description' ), $message );
		$message = str_replace( '{site_url}', site_url(), $message );

		$headers = array( 
			"From: {$this->get_from_name()} <{$this->get_from_address()}>",
			"Reply-To: {$this->get_from_address()}",
			"Content-Type: {$this->get_content_type()}; charset=utf-8"
		);
		
		// start send out email
		foreach( $admin_email as $to ) {
			if ( is_email( $to ) )
				$sended = $this->send( sanitize_email( $to ), $subject, $message, $headers );
		}
	}

	public function new_answer_notify( $answer_id, $question_id ) {
		// print_r( $answer_id ); die;
		if ( 'dwqa-answer' !== get_post_type( $answer_id ) ) {
			return false;
		}

		if ( 'dwqa-question' !== get_post_type( $question_id ) ) {
			return false;
		}

		// default value
		$site_name = get_bloginfo( 'name' );
		$question_title = get_the_title( $question_id );
		$answer_content = get_post_field( 'post_content', $answer_id );
		$question_link = get_permalink( $question_id );
		$answer_link = trailingslashit( $question_link ) . '#answer-' . $answer_id;
		$site_description = get_bloginfo( 'description' );
		$site_url = site_url();
		$enable_send_copy = get_option( 'dwqa_subscrible_send_copy_to_admin' );
		$admin_email = $this->get_admin_email('answer');
		$site_logo = get_option( 'dwqa_subscrible_email_logo', '' );
		$site_logo = $site_logo ? '<img src="' . $site_logo . '" alt="' . get_bloginfo( 'name' ) . '" style="max-width: 100%; height: auto;" />' : '';

		// for answer
		$answer_is_anonymous = dwqa_is_anonymous( $answer_id );
		if ( $answer_is_anonymous ) {
			$user_answer_id = 0;
			$user_answer_display_name = get_post_meta( $answer_id, '_dwqa_anonymous_name', true );
			$user_answer_display_name = $user_answer_display_name ? sanitize_text_field( $user_answer_display_name ) : __( 'Anonymous', 'dw-question-answer' );
			$user_answer_email = get_post_meta( $answer_id, '_dwqa_anonymous_email', true );
			$user_answer_email = $user_answer_email ? sanitize_email( $user_answer_email ) : false;
		} else {
			$user_answer_id = get_post_field( 'post_author', $answer_id );
			$user_answer_display_name = get_the_author_meta( 'display_name', $user_answer_id );
			$user_answer_email = get_the_author_meta( 'user_email', $user_answer_id );
		}

		if ( $user_answer_email ) {
			$user_answer_avatar = get_avatar( $user_answer_email, 60 );
		} else {
			$user_answer_avatar = get_avatar( $user_answer_id, 60 );
		}
		
		// for question
		$question_is_anonymous = dwqa_is_anonymous( $question_id );
		if ( $question_is_anonymous ) {
			$user_question_id = 0;
			$user_question_display_name = get_post_meta( $question_id, '_dwqa_anonymous_name', true );
			$user_question_display_name = $user_question_display_name ? sanitize_text_field( $user_question_display_name ) : __( 'Anonymous', 'dw-question-answer' );
			$user_question_email = get_post_meta( $question_id, '_dwqa_anonymous_email', true );
			$user_question_email = $user_question_email ? sanitize_email( $user_question_email ) : false;
		} else {
			$user_question_id = get_post_field( 'post_author', $question_id );
			$user_question_display_name = get_the_author_meta( 'display_name', $user_question_id );
			$user_question_email = get_the_author_meta( 'user_email', $user_question_id );
		}

		if ( $user_question_email ) {
			$user_question_avatar = get_avatar( $user_question_email, 60 );
		} else {
			$user_question_avatar = get_avatar( $user_question_id, 60 );
		}

		// get all follower email lists
		$followers = get_post_meta( $question_id, '_dwqa_followers' );
		$followers_email = array();
		if ( !empty( $followers ) && is_array( $followers ) ) {
			foreach( $followers as $follower ) {
				if ( is_numeric( $follower ) ) {
					// prevent send to answer author and question author
					if ( absint( $follower ) == $user_answer_id || absint( $follower ) == $user_question_id ) continue;
					// get user email has registered
					$followers_email[] = get_the_author_meta( 'user_email', $follower );
				} else {
					// prevent send to question author and answer author
					if ( sanitize_email( $user_answer_email ) == sanitize_email( $follower ) || sanitize_email( $user_question_email ) == sanitize_email( $follower ) ) continue;
					// get anonymous email
					$followers_email[] = sanitize_email( $follower );
				}
			}
		}

		// start send to followers
		$answer_notify_enabled = get_option( 'dwqa_subscrible_enable_new_answer_followers_notification', 1 );
		if ( $answer_notify_enabled && !empty( $followers_email ) && is_array( $followers_email ) && 'private' !== get_post_status( $answer_id ) ) {
			$subject = get_option( 'dwqa_subscrible_new_answer_followers_email_subject', __( '[{site_name}] You have a new answer for your followed question', 'dw-question-answer' ) );
			$subject = str_replace( '{site_name}', esc_html( $site_name ), $subject );
			$subject = str_replace( '{question_title}', $question_title, $subject );
			$subject = str_replace( '{answer_author}', esc_html( $user_answer_display_name ), $subject );

			$message = dwqa_get_mail_template( 'dwqa_subscrible_new_answer_followers_email', 'new-answer-followers' );
			$message = apply_filters( 'dwqa_get_new_answer_email_to_followers_message', $message, $answer_id, $question_id );

			if ( !$message ) {
				return false;
			}

			$message = str_replace( 'Howdy {follower},', '', $message );
			$message = str_replace( '{answer_author}', esc_html( $user_answer_display_name ), $message );
			$message = str_replace( '{question_link}', esc_url( $question_link ), $message );
			$message = str_replace( '{answer_link}', esc_url( $answer_link ), $message );
			$message = str_replace( '{question_title}', $question_title, $message );
			$message = str_replace( '{answer_content}', wp_kses_post( $answer_content ), $message );
			$message = str_replace( '{answer_avatar}', $user_answer_avatar, $message );
			$message = str_replace( '{site_logo}', $site_logo, $message );
			$message = str_replace( '{site_name}', esc_html( $site_name ), $message );
			$message = str_replace( '{site_description}', esc_html( $site_description ), $message );
			$message = str_replace( '{site_url}', esc_url( $site_url ), $message );

			if ( $enable_send_copy ) {
				$followers_email = array_merge( $followers_email, $admin_email );
			}

			// make sure it is not duplicate email
			$followers_email = array_unique( $followers_email );

			$headers = array( 
				"From: {$this->get_from_name()} <{$this->get_from_address()}>",
				"Content-Type: {$this->get_content_type()}; charset=utf-8"
			);

			foreach( $followers_email as $f_email ) {
				$headers[] = "Bcc: " . $f_email;
			}

			$sitename = strtolower( $_SERVER['SERVER_NAME'] );
			if ( substr( $sitename, 0, 4 ) === 'www.' ) {
				$sitename = substr( $sitename, 4 );
			}
			$no_reply = 'noreply@' . $sitename;

			$sender = $this->send( $no_reply, $subject, $message, $headers );
		}

		// start send to question author
		$answer_notify_for_question_enabled = get_option( 'dwqa_subscrible_enable_new_answer_notification', 1 );
		if ( $user_question_email && $answer_notify_for_question_enabled && absint( $user_answer_id ) !== absint( $user_question_id ) ) {
			$subject = get_option( 'dwqa_subscrible_new_answer_email_subject', __( '[{site_name}] A new answer for "{question_title}" was posted on {site_name}', 'dw-question-answer' ) );
			$subject = str_replace( '{site_name}', esc_html( $site_name ), $subject );
			$subject = str_replace( '{question_title}', $question_title, $subject );
			$subject = str_replace( '{question_id}', absint( $question_id ), $subject );
			$subject = str_replace( '{username}', esc_html( $user_question_display_name ), $subject );
			$subject = str_replace( '{answer_author}', esc_html( $user_answer_display_name ), $subject );

			$message = dwqa_get_mail_template( 'dwqa_subscrible_new_answer_email', 'new-answer' );
			$message = apply_filters( 'dwqa_get_new_answer_email_to_author_message', $message, $question_id, $answer_id );
			if ( !$message ) {
				return false;
			}

			$message = str_replace( '{answer_avatar}', $user_answer_avatar, $message );
			$message = str_replace( '{answer_author}', esc_html( $user_answer_display_name ), $message );
			$message = str_replace( '{question_link}', esc_url( $question_link ), $message );
			$message = str_replace( '{question_author}', esc_html( $user_question_display_name ), $message );
			$message = str_replace( '{answer_link}', esc_url( $answer_link ), $message );
			$message = str_replace( '{question_title}', $question_title, $message );
			$message = str_replace( '{answer_content}', wp_kses_post( $answer_content ), $message );
			$message = str_replace( '{site_logo}', $site_logo, $message );
			$message = str_replace( '{site_name}', esc_html( $site_name ), $message );
			$message = str_replace( '{site_description}', esc_html( $site_description ), $message );
			$message = str_replace( '{site_url}', esc_url( $site_url ), $message );

			$headers = array( 
				"From: {$this->get_from_name()} <{$this->get_from_address()}>",
				"Content-Type: {$this->get_content_type()}; charset=utf-8"
			);

			if ( $enable_send_copy ) {
				foreach( $admin_email as $a_email ) {
					$headers[] = "Bcc: " . $a_email;
				}
			}

			$sender = $this->send( $user_question_email, $subject, $message, $headers );
		}
	}

	public function new_comment_notify( $comment_id, $comment ) {
		$parent = get_post_type( $comment->comment_post_ID );

		//Admin email
		$admin_email = get_bloginfo( 'admin_email' );
		$enable_send_copy = get_option( 'dwqa_subscrible_send_copy_to_admin' );

		if ( 1 == $comment->comment_approved && ( 'dwqa-question' == $parent || 'dwqa-answer' == $parent ) ) { 
			if ( $parent == 'dwqa-question' ) {
				$enabled = get_option( 'dwqa_subscrible_enable_new_comment_question_notification', 1 );
				// $admin_email = $this->get_admin_email( 'comment-question' );   //ignore in this time   
			} elseif ( $parent == 'dwqa-answer' ) {
				$enabled = get_option( 'dwqa_subscrible_enable_new_comment_answer_notification', 1 );
				// $admin_email = $this->get_admin_email( 'comment-answer' );
			}
		
			if ( ! $enabled ) {
				return false;
			}

			$post_parent = get_post( $comment->comment_post_ID );

			
			if ( dwqa_is_anonymous( $comment->comment_post_ID ) ) {
				$post_parent_email = get_post_meta( $comment->comment_post_ID, '_dwqa_anonymous_email', true );
				if ( ! is_email( $post_parent_email ) ) {
					return false;
				}
			} else {
				// if user is not the author of question/answer, add user to followers list
				if ( $post_parent->post_author != $comment->user_id ) {

					if ( ! dwqa_is_followed( $post_parent->ID, $comment->user_id ) ) {
						add_post_meta( $post_parent->ID, '_dwqa_followers', $comment->user_id );
					}
				}
				$post_parent_email = get_the_author_meta( 'user_email', $post_parent->post_author );
			}

			// To send HTML mail, the Content-type header must be set
			$headers = array( 
				"From: {$this->get_from_name()} <{$this->get_from_address()}>",
				"Content-Type: {$this->get_content_type()}; charset=utf-8"
			);
			
			if ( $parent == 'dwqa-question' ) {
				$message = dwqa_get_mail_template( 'dwqa_subscrible_new_comment_question_email', 'new-comment-question' );    
				$subject = get_option( 'dwqa_subscrible_new_comment_question_email_subject',__( '[{site_name}] You have a new comment for question {question_title}', 'dw-question-answer' ) );
				$message = str_replace( '{question_author}', get_the_author_meta( 'display_name', $post_parent->post_author ), $message );
				$question = $post_parent;
			} else {
				$message = dwqa_get_mail_template( 'dwqa_subscrible_new_comment_answer_email', 'new-comment-answer' );
				$subject = get_option( 'dwqa_subscrible_new_comment_answer_email_subject',__( '[{site_name}] You have a new comment for answer', 'dw-question-answer' ) );
				$message = str_replace( '{answer_author}', get_the_author_meta( 'display_name', $post_parent->post_author ), $message );
				$question_id = dwqa_get_post_parent_id( $post_parent->ID );
				$question = get_post( $question_id );
			}
			$subject = str_replace( '{site_name}', get_bloginfo( 'name' ), $subject );
			$subject = str_replace( '{question_title}', $question->post_title, $subject );
			$subject = str_replace( '{question_id}', $question->ID, $subject );
			$subject = str_replace( '{username}',get_the_author_meta( 'display_name', $comment->user_id ), $subject );

			if ( ! $message ) {
				return false;
			}
			// logo replace
			$logo = get_option( 'dwqa_subscrible_email_logo','' );
			$logo = $logo ? '<img src="'.$logo.'" alt="'.get_bloginfo( 'name' ).'" style="max-width: 100%; height: auto;" />' : '';
			$subject = str_replace( '{comment_author}', get_the_author_meta( 'display_name', $comment->user_id ), $subject );
			$message = str_replace( '{site_logo}', $logo, $message );
			$message = str_replace( '{question_link}', get_permalink( $question->ID ), $message );
			$message = str_replace( '{comment_link}', get_permalink( $question->ID ) . '#comment-' . $comment_id, $message );
			$message = str_replace( '{question_title}', $question->post_title, $message );
			$message = str_replace( '{comment_author_avatar}', get_avatar( $comment->user_id, '60' ), $message );
			$message = str_replace( '{comment_author_link}', dwqa_get_author_link( $comment->user_id ), $message );
			$message = str_replace( '{comment_author}', get_the_author_meta( 'display_name', $comment->user_id ), $message );
			$message = str_replace( '{comment_content}', $comment->comment_content, $message );
			$message = str_replace( '{site_name}', get_bloginfo( 'name' ), $message );
			$message = str_replace( '{site_description}', get_bloginfo( 'description' ), $message );
			$message = str_replace( '{site_url}', site_url(), $message );
			if ( $parent == 'dwqa-question' ) {
				$enable_notify = get_option( 'dwqa_subscrible_enable_new_comment_question_followers_notify', true );
			} else {
				$enable_notify = get_option( 'dwqa_subscrible_enable_new_comment_answer_followers_notification', true );
			}
			
			if ( $enable_notify ) {
				//Follower email task
				$followers = get_post_meta( $post_parent->ID, '_dwqa_followers' );
				$comment_email = get_the_author_meta( 'user_email', $comment->user_id );

				if ( $parent == 'dwqa-question' ) {
					$message_to_follower = dwqa_get_mail_template( 'dwqa_subscrible_new_comment_question_followers_email', 'new-comment-question' );    
					$follow_subject = get_option( 'dwqa_subscrible_new_comment_question_followers_email_subject',__( '[{site_name}] You have a new comment for question {question_title}', 'dw-question-answer' )  );
					$message_to_follower = str_replace( '{question_author}', get_the_author_meta( 'display_name', $post_parent->post_author ), $message_to_follower );
					$question = $post_parent;
				} else {
					$message_to_follower = dwqa_get_mail_template( 'dwqa_subscrible_new_comment_answer_followers_email', 'new-comment-answer' );
					$follow_subject = get_option( 'dwqa_subscrible_new_comment_answer_followers_email_subject',__( '[{site_name}] You have a new comment for answer', 'dw-question-answer' )  );
					$message_to_follower = str_replace( '{answer_author}', get_the_author_meta( 'display_name', $post_parent->post_author ), $message_to_follower );
				}
				$follow_subject = str_replace( '{site_name}', get_bloginfo( 'name' ), $follow_subject );
				$follow_subject = str_replace( '{question_title}', $question->post_title, $follow_subject );
				$follow_subject = str_replace( '{question_id}', $question->ID, $follow_subject );
				$follow_subject = str_replace( '{username}',get_the_author_meta( 'display_name', $comment->user_id ), $follow_subject );

				$follow_subject = str_replace( '{comment_author}', get_the_author_meta( 'display_name', $comment->user_id ), $follow_subject );
				$message_to_follower = str_replace( '{site_logo}', $logo, $message_to_follower );
				$message_to_follower = str_replace( '{question_link}', get_permalink( $question->ID ), $message_to_follower );
				$comment_link = get_permalink( $question->ID ) . '#comment-' . $comment_id;
				$message_to_follower = str_replace( '{comment_link}', $comment_link, $message_to_follower );
				$message_to_follower = str_replace( '{question_title}', $question->post_title, $message_to_follower );
				$message_to_follower = str_replace( '{comment_author_avatar}', get_avatar( $comment->user_id, '60' ), $message_to_follower );
				$message_to_follower = str_replace( '{comment_author_link}', dwqa_get_author_link( $comment->user_id ), $message_to_follower );
				$message_to_follower = str_replace( '{comment_author}', get_the_author_meta( 'display_name', $comment->user_id ), $message_to_follower );
				$message_to_follower = str_replace( '{comment_content}', $comment->comment_content, $message_to_follower );
				$message_to_follower = str_replace( '{site_name}', get_bloginfo( 'name' ), $message_to_follower );
				$message_to_follower = str_replace( '{site_description}', get_bloginfo( 'description' ), $message_to_follower );
				$message_to_follower = str_replace( '{site_url}', site_url(), $message_to_follower );
				if ( ! empty( $followers ) && is_array( $followers ) ) {
					foreach ( $followers as $follower ) {
						$follower = (int) $follower;
						$user_data = get_user_by( 'id', $follower );
						if ( $user_data ) {
							$follow_email = $user_data->user_email;
							$follower_name = $user_data->display_name;
							if ( $follow_email && absint( $follower ) !== absint( $post_parent->post_author ) && absint( $follower ) !== absint( $comment->user_id ) ) {

								$message_to_each_follower = str_replace( '{follower}', $follower_name, $message_to_follower );
								$test = $this->send( $follow_email, $follow_subject, $message_to_each_follower, $headers );
								if ( $enable_send_copy && $follow_email != $admin_email ) {
									$this->send( $admin_email, $follow_subject, $message_to_each_follower, $headers );
								}
							}
						}
					}
				}
			}

			if ( $post_parent->post_author != $comment->user_id ) {
				$this->send( $post_parent_email, $subject, $message, $headers );
				if ( $enable_send_copy && $admin_email != $post_parent_email ) {
					$this->send( $admin_email, $subject, $message, $headers );
				}
			}
		}
	}
	
	public function get_admin_email( $type = 'question' ){
		switch ($type) {
			case 'answer':
				$admin_email = get_option( 'dwqa_subscrible_new_answer_forward', '' );
				break;
			case 'comment-question':
				$admin_email = get_option( 'dwqa_subscrible_new_comment_question_forward', '' );
				break;
			case 'comment-answer':
				$admin_email = get_option( 'dwqa_subscrible_new_comment_answer_forward', '' );
				break;
			case 'question':
			default:
				$admin_email = get_option( 'dwqa_subscrible_sendto_address', '' );
				break;
		}
		$emails = preg_split('/\r\n|\r|\n/', $admin_email );
		$emails = array_merge( $emails, array( get_bloginfo( 'admin_email' ) ) );
		$emails = array_unique($emails);
		return $emails;
	}

	// Pushover
	public function push( $args ) {
		if ( !function_exists( 'ckpn_send_notification' ) ) {
			if ( class_exists( 'CKPushoverNotifications' ) ) {
				$ckpn_core = CKPushoverNotifications::getInstance();
				$ckpn_core->ckpn_send_notification( $args );
			}
		} else {
			ckpn_send_notification( $args );
		}
	}

	function new_activity( $post_id = 0 ) {
		if ( empty( $post_id ) ) {
			return false;
		}
		$title = false;

		if ( 'dwqa_add_comment' == current_action() ) {
			$comment = get_comment( $post_id );
			$title = __( 'New Comment in: ', 'dwqa-notification' );
			$post_id = $comment->comment_post_ID;
		}

		if ( 'dwqa-answer' == get_post_type( $post_id ) ) {
			$question_id = dwqa_get_post_parent_id( $post_id );

			if ( !$title ) {
				$title = __( 'New Answer in: ', 'dwqa-notification' );
			}

		} else {
			$question_id = $post_id;
			if ( !$title ) {
				$title = __( 'New Question: ', 'dwqa-notification' );
			}
		}

		$question_title = get_post_field( 'post_title', $question_id );
		$question_link = get_permalink( $question_id );
		$content = get_post_field( 'post_content', $post_id );
		$title = $title . $question_title;

		$args = array( 'title' => $title, 'message' => strip_tags( $content ) );
		$this->push( $args );
	}

	public function get_from_address() {
		$from_email = get_option( 'dwqa_subscrible_from_address', get_bloginfo( 'admin_email' ) );

		if ( empty( $from_email ) ) {
			$from_email = get_bloginfo( 'admin_email' );
		}

		return sanitize_email( $from_email );
	}

	public function get_from_name() {
		$name = get_option( 'dwqa_subscrible_from_name', get_bloginfo( 'name' ) );

		if ( empty( $name ) ) {
			$name = get_bloginfo( 'name' );
		}

		return $name;
	}

	public function get_content_type() {
		return apply_filters( 'dwqa_notifications_get_content_type', 'text/html' );
	}

	public function send( $to, $subject, $message, $headers = '', $attachments = array() ) {
		// return ;
		add_filter( 'wp_mail_from', array( $this, 'get_from_address' ), 9999 );
		add_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ), 9999 );
		add_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ), 9999 );

		$sended = wp_mail( $to, $subject, $message, $headers, $attachments );

		remove_filter( 'wp_mail_from', array( $this, 'get_from_address' ) );
		remove_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ) );
		remove_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
		return $sended;
	}
}


?>

Copyright © 2019 by b0y-101