diff options
author | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2019-11-25 08:22:35 +0000 |
---|---|---|
committer | yehudah <yehudah@b8457f37-d9ea-0310-8a92-e5e31aec5664> | 2019-11-25 08:22:35 +0000 |
commit | c61784411988d36d9bbd93cd3a97e773990af342 (patch) | |
tree | 924e6e9dea2ba7b1eedb14d0c4b03a38aefdf179 /Postman/Postman-Mail/PostmanContactForm7.php | |
parent | 907ce8c044159ca8da6ccce3ec5362ac61e7c142 (diff) | |
download | Post-SMTP-c61784411988d36d9bbd93cd3a97e773990af342.zip |
Adding a folder
Diffstat (limited to 'Postman/Postman-Mail/PostmanContactForm7.php')
-rw-r--r-- | Postman/Postman-Mail/PostmanContactForm7.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/PostmanContactForm7.php b/Postman/Postman-Mail/PostmanContactForm7.php new file mode 100644 index 0000000..8792b08 --- /dev/null +++ b/Postman/Postman-Mail/PostmanContactForm7.php @@ -0,0 +1,42 @@ +<?php +if ( ! defined( 'ABSPATH' ) ) { + exit; // Exit if accessed directly +} +class Postsmtp_ContactForm7 { + + private $result_error; + + public function __construct() { + add_action( 'wpcf7_mail_failed', array( $this, 'save_error' ) ); + add_filter( 'wpcf7_ajax_json_echo', array( $this, 'change_rest_response' ), 10, 2 ); + } + + public function save_error($contact_form) { + $this->result_error = apply_filters( 'postman_wp_mail_result', null ); + } + + public function change_rest_response( $response ) { + if ( array_key_exists('status', $response) && $response['status'] == 'mail_failed' ) { + $message = $this->result_error ['exception']->getMessage(); + + if ( ! $message || $message == '' ) { + return $response; + } + + $currentTransport = PostmanOptions::getInstance()->getTransportType(); + $result = json_decode($message); + $is_json = (json_last_error() == JSON_ERROR_NONE); + + switch ($currentTransport) { + case 'gmail_api': + $response['message'] = $is_json ? $result->error->message : $message; + break; + default: + $response['message'] = $is_json ? json_encode(json_decode($message), JSON_PRETTY_PRINT) : $message; + } + } + + return $response; + } + +} |