From c68aefb847b09daa0697de7684d3451e2e68ce1e Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 09 Jul 2026 23:10:23 +0000
Subject: [PATCH] =Refactor of Integrations.php to be a bit more useful with a suite of methods for create, update, delete back and forths for integrations where sharing is enabled. Also considering a single instance with a connect method to connect as the site (no user) vs connecting as an individual user - rather than recreating instances for every user.
---
inc/integrations/PostMark.php | 24 +++++++++++++++++++-----
1 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/inc/integrations/PostMark.php b/inc/integrations/PostMark.php
index baac1bc..a06f65f 100644
--- a/inc/integrations/PostMark.php
+++ b/inc/integrations/PostMark.php
@@ -21,10 +21,21 @@
protected string $from_name;
protected bool $track_open;
protected bool $track_links;
+ protected ?string $lastMessageId = null;
+
+ protected static array $instances = [];
+ public static function getInstance(?int $userID = null):self
+ {
+ $key = is_null($userID) ? 'base' : $userID;
+ if (!array_key_exists($key, self::$instances)) {
+ self::$instances[$key] = new static($userID);
+ }
+ return self::$instances[$key];
+ }
/**
* Constructor
*/
- public function __construct(?int $userID = null)
+ protected function __construct(?int $userID = null)
{
$this->service_name = 'postmark';
$this->title = 'PostMark';
@@ -165,10 +176,12 @@
$result = $this->sendEmail($payload);
if ($result === true) {
+ error_log('================================ Email sent! ================================');
// Prevent default wp_mail from sending
add_filter('pre_wp_mail', '__return_true');
do_action('postmark_email_sent', $args, $payload);
} else {
+ error_log('=-======================[POSTMARK]Something went wrong... ================================');
// Log failure but allow fallback to default mail
do_action('postmark_email_failed', $args, $result);
@@ -257,9 +270,12 @@
*/
protected function sendEmail(array $payload): bool|WP_Error
{
+ if (!$this->isSetUp()) {
+ return false;
+ }
try {
$response = $this->postRequest('email', $payload);
-
+ error_log('================================ POSTMARK RESPONSE: ================================'.print_r($response, true));
if (is_wp_error($response)) {
return $response;
}
@@ -415,9 +431,7 @@
// Clean up whitespace
$text = preg_replace('/\s+/', ' ', $text);
- $text = trim($text);
-
- return $text;
+ return trim($text);
}
/**
--
Gitblit v1.10.0