From 0113d2e9c9ff34a6ffb10707cc76d34b67a0c367 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 19 Jan 2026 16:29:41 +0000
Subject: [PATCH] =Refactored window.getTemplate into a full templating class window.jvbTemplates. Refactored CRUD.js, UploadManager.js, FormController.js, PopulateForm.js with that in mind

---
 inc/rest/routes/Invitations.php |   59 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 6 deletions(-)

diff --git a/inc/rest/routes/Invitations.php b/inc/rest/routes/Invitations.php
index 401cb07..4022790 100644
--- a/inc/rest/routes/Invitations.php
+++ b/inc/rest/routes/Invitations.php
@@ -48,6 +48,11 @@
         // Add hooks for processing accepted invitations
         add_action('user_register', [$this, 'checkInvitation'], 10, 1);
 
+
+		add_filter('jvbLoginLabels', [$this, 'modifyLoginLabels'], 10, 2);
+
+
+
         add_action('jvb_daily_maintenance', [$this, 'cleanupExpiredInvitations']);
 
         // Add filter for bulk operation handling
@@ -753,9 +758,9 @@
 		}
 		$toContentTax = implode(' ', $toContentTax);
 
-        $button = jvbMailButton($signup_url, 'Join the Scene!');
-        $link = jvbEmailLink($signup_url);
-        $signature = jvbSignature();
+        $button = JVB()->email()->button($signup_url, 'Join the Scene!');
+        $link = JVB()->email()->link($signup_url);
+        $signature = JVB()->email()->signature();
 
 		$message = sprintf(
 			'<p>Hi %s!</p>
@@ -797,7 +802,7 @@
 		);
 
 
-        $success = jvbMail($email, $subject, $message);
+        $success = JVB()->email()->sendEmail($email, $subject, $message);
 
 
         if (!$success) {
@@ -845,7 +850,7 @@
 			$name
 		);
 
-        $success =  jvbMail($email, $subject, $content, 'INVITATION REVOKED');
+        $success =  JVB()->email()->sendEmail($email, $subject, $content, 'INVITATION REVOKED');
         if (!$success) {
             JVB()->error()->log(
                 'invitation_revoke_email',
@@ -1004,7 +1009,6 @@
 
         $key = $this->cache->generateKey($args);
         $cache = $this->cache->get($key);
-        $cache = false;
         if ($cache) {
             return new WP_REST_Response($cache);
         }
@@ -1344,4 +1348,47 @@
             ];
         }
     }
+
+	public function modifyLoginLabels(array $labels, array $get_params): array
+	{
+		// Only modify if invitation params present
+		if (!array_key_exists('invite', $get_params) || !array_key_exists('email', $get_params)) {
+			return $labels;
+		}
+		$email = sanitize_email($get_params['email']);
+		$token = sanitize_text_field($get_params['invite']);
+		$user = email_exists($email);
+		if (!$user) {
+			return $labels;
+		}
+		$role = jvbUserRole($user);
+		// Get invitation data
+		$data = $this->verifyInvitation(
+			$token,
+			$email,
+			$role,
+		);
+
+		if (!$data) {
+			return $labels;
+		}
+
+		// Build custom message
+		$inviters = json_decode($data->inviters, true);
+		$name = $data->name;
+		$names = array_map(function($inviter) {
+			$artist = jvbContentFromUser((int)$inviter['user_id']);
+			return $artist['name'] ?: $artist['display_name'];
+		}, $inviters);
+
+		$message = count($names) > 1
+			? 'are already here, and have invited you to join in!'
+			: ' is already here, and invited you to join in!';
+
+		// Modify labels
+		$labels['title'] = 'Join the Scene, ' . $data->name;
+		$labels['description'] = [jvbCommaList($names) . ' ' . $message];
+
+		return $labels;
+	}
 }

--
Gitblit v1.10.0