summaryrefslogtreecommitdiff
path: root/Postman/PostmanWpMailBinder.php
diff options
context:
space:
mode:
Diffstat (limited to 'Postman/PostmanWpMailBinder.php')
-rw-r--r--Postman/PostmanWpMailBinder.php131
1 files changed, 0 insertions, 131 deletions
diff --git a/Postman/PostmanWpMailBinder.php b/Postman/PostmanWpMailBinder.php
deleted file mode 100644
index 575e1bb..0000000
--- a/Postman/PostmanWpMailBinder.php
+++ /dev/null
@@ -1,131 +0,0 @@
-<?php
-if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly
-}
-if (! class_exists ( 'PostmanWpMailBinder' )) {
- class PostmanWpMailBinder {
- private $logger;
- public $bound;
- private $bindError;
-
- /**
- * private singleton constructor
- */
- private function __construct() {
- $this->logger = new PostmanLogger ( get_class ( $this ) );
-
- // load the dependencies
- require_once 'PostmanWpMail.php';
- require_once 'PostmanOptions.php';
- require_once 'PostmanPreRequisitesCheck.php';
-
- // register the bind status hook
- add_filter ( 'postman_wp_mail_bind_status', array (
- $this,
- 'postman_wp_mail_bind_status'
- ) );
- }
-
- /**
- * Return the Singleton instance
- *
- * @return PostmanWpMailBinder
- */
- public static function getInstance() {
- static $inst = null;
- if ($inst === null) {
- $inst = new PostmanWpMailBinder ();
- }
- return $inst;
- }
-
- /**
- * Returns the bind result
- */
- public function postman_wp_mail_bind_status() {
- $result = array (
- 'bound' => $this->bound,
- 'bind_error' => $this->bindError
- );
- return $result;
- }
-
- /**
- * Important: bind() may be called multiple times
- *
- * Replace wp_mail() after making sure:
- * 1) the plugin has not already bound to wp_mail and
- * 2) wp_mail is available for use
- * 3) the plugin is properly configured.
- * 4) the plugin's prerequisites are met.
- */
- function bind() {
- if (! $this->bound) {
- $ready = true;
- if (function_exists ( 'wp_mail' )) {
- // If the function exists, it's probably because another plugin has
- // replaced the pluggable function first, and we set an error flag.
- // this is an error message because it is a Bind error
- if ($this->logger->isTrace ()) {
- $this->logger->trace ( 'wp_mail is already bound, Postman can not use it' );
- }
- $this->bindError = true;
- $ready = false;
- }
- if (! PostmanPreRequisitesCheck::isReady ()) {
- // this is a debug message because it is not up to the Binder to report transport errors
- if ($this->logger->isTrace ()) {
- $this->logger->trace ( 'Prerequisite check failed' );
- }
- $ready = false;
- }
- if ($ready) {
- if ($this->logger->isTrace ()) {
- $this->logger->trace ( 'Binding to wp_mail()' );
- }
- $this->replacePluggableFunctionWpMail ();
- }
- }
- }
-
- /**
- * The code to replace the pluggable wp_mail()
- *
- * If the function does not exist, then the replacement was successful
- * and we set a success flag.
- */
- private function replacePluggableFunctionWpMail() {
- /**
- * The Postman drop-in replacement for the WordPress wp_mail() function
- *
- * @param string|array $to
- * Array or comma-separated list of email addresses to send message.
- * @param string $subject
- * Email subject
- * @param string $message
- * Message contents
- * @param string|array $headers
- * Optional. Additional headers.
- * @param string|array $attachments
- * Optional. Files to attach.
- * @return bool Whether the email contents were sent successfully.
- */
- function wp_mail($to, $subject, $message, $headers = '', $attachments = array()) {
- // create an instance of PostmanWpMail to send the message
- $postmanWpMail = new PostmanWpMail ();
- // send the mail
- $result = $postmanWpMail->send ( $to, $subject, $message, $headers, $attachments );
- // return the result
- return $result;
- }
- $this->logger->debug ( 'Bound to wp_mail()' );
- $this->bound = true;
- }
- public function isBound() {
- return $this->bound;
- }
- public function isUnboundDueToException() {
- return $this->bindError;
- }
- }
-} \ No newline at end of file