From a6413da67a4579866f0fd0323ddb23a7b6b9654a Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Fri, 18 Sep 2026 17:00:53 +0000
Subject: [PATCH] =Cleaning up the Integrations setup a bit, started the Helcim integration work too
---
inc/managers/InvitationsManager.php | 49 ++++++++++++++++++++++++++++---------------------
1 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/inc/managers/InvitationsManager.php b/inc/managers/InvitationsManager.php
index da6cec1..de21889 100644
--- a/inc/managers/InvitationsManager.php
+++ b/inc/managers/InvitationsManager.php
@@ -2,10 +2,15 @@
namespace JVBase\managers;
use Exception;
+use JVBase\inc\managers\ErrorHelper;
+use JVBase\Instance;
use JVBase\managers\queue\executors\InvitationExecutor;
+use JVBase\managers\queue\Queue;
use JVBase\managers\queue\TypeConfig;
use JVBase\registrar\Registrar;
use JVBase\base\Site;
+use JVBase\rest\Rest;
+use JVBase\rest\routes\Invitations;
use WP_Error;
if (!defined('ABSPATH')) {
@@ -14,16 +19,22 @@
class InvitationsManager
{
+ use Instance, ErrorHelper;
protected array $inviteConfig;
protected CustomTable $table;
protected int $expiryDays = 14;
protected Cache $cache;
- public function __construct()
+ protected Rest $route;
+
+ private function __construct()
{
$this->defineTable();
if (!isset($this->table)) {
return;
}
+ if (Site::membership() && Site::membership()->has('can_invite')) {
+ $this->route = Invitations::getInstance();
+ }
$this->setInviteConfig();
$this->cache = Cache::for('invitations')->user();
add_action('init', [$this, 'registerInvitationExecutors'], 5);
@@ -118,7 +129,7 @@
*/
public function registerInvitationExecutors(): void
{
- $registry = JVB()->queue()->registry();
+ $registry = Queue::getInstance()->registry();
$executor = new InvitationExecutor();
// Create invitations - chunked at 20
@@ -144,10 +155,12 @@
/**
* Build invite types from JVB constants
* Combines JVB_MEMBERSHIP['can_invite'] and invitable taxonomies
+ * TODO: Should be accessible via Site::getInstance()->membership()\
+ *
*/
protected function buildInviteTypes(): array
{
- $invitable = $this->cache->remember(
+ return $this->cache->remember(
'invitableTypes',
function () {
$types = [];
@@ -197,7 +210,6 @@
return $types;
}
);
- return $invitable;
}
@@ -214,7 +226,7 @@
}
// User must be owner or manager of the term
- return JVB()->roles()->isManager($userID, $termID);
+ return Roles::getInstance()()->isManager($userID, $termID);
}
/**
@@ -380,12 +392,7 @@
} catch (Exception $e) {
$this->table->rollback();
-
- JVB()->error()->log(
- 'invitation_create',
- 'Error processing invitations: ' . $e->getMessage(),
- ['user_id' => $userID],
- );
+ $this->logError($e->getMessage(), 'processInvitations', ['user_id' => $userID]);
return [
'success' => false,
@@ -554,9 +561,9 @@
}
$termText = implode('', $termContent);
- $button = JVB()->email()->button($signupUrl, 'Join the Scene!');
- $link = JVB()->email()->link($signupUrl);
- $signature = JVB()->email()->signature();
+ $button = Emails::getInstance()->button($signupUrl, 'Join the Scene!');
+ $link = Emails::getInstance()->link($signupUrl);
+ $signature = Emails::getInstance()->signature();
$message = sprintf(
'<p>Hi %s!</p>
@@ -593,7 +600,7 @@
$signature
);
- JVB()->email()->sendEmail($email, $subject, $message);
+ Emails::getInstance()->sendEmail($email, $subject, $message);
}
/**
@@ -655,7 +662,7 @@
// Grant capabilities
$user = get_userdata($userID);
- $user->add_cap('skip_moderation', true);
+ $user->add_cap('skip_moderation');
return true;
});
@@ -671,7 +678,7 @@
$this->notifyInvitersOfAcceptance($invitation, $userID);
// Invalidate cache
- Cache::for('invitations')->forget('user_' . $userID);
+ $this->cache->forget('user_' . $userID);
return true;
}
@@ -681,7 +688,7 @@
*/
protected function processTermMembership(int $userID, object $invitation): void
{
- foreach (JVB()->roles()->getInvitableTaxonomies() as $taxonomy) {
+ foreach (Roles::getInstance()()->getInvitableTaxonomies() as $taxonomy) {
$column = 'to_' . $taxonomy;
if (isset($invitation->$column) && $invitation->$column) {
$termID = (int) $invitation->$column;
@@ -706,7 +713,7 @@
$userData = get_userdata($userID);
foreach ($inviters as $inviter) {
- JVB()->notification()->addNotification(
+ NotificationManager::getInstance()->addNotification(
$inviter['user_id'],
'invitation_accepted',
[
@@ -732,7 +739,7 @@
);
// Clear cache after cleanup
- Cache::for('invitations')->flush();
+ $this->cache->flush();
}
/*****************************************************************
@@ -760,7 +767,7 @@
$name
);
- JVB()->email()->sendEmail($email, $subject, $content, 'INVITATION REVOKED');
+ Emails::getInstance()->sendEmail($email, $subject, $content, 'INVITATION REVOKED');
}
/**
--
Gitblit v1.10.0