From ba1e1ccf869b818f7a7a897264dfea05563a7796 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 07 Jun 2026 20:10:20 +0000
Subject: [PATCH] =Major overhaul of Integrations. Playing around with adding fields to post types through Registrar from an integrations' class file.

---
 inc/helpers/members.php |   38 ++++++++++++++++++++++++++++++++++----
 1 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/inc/helpers/members.php b/inc/helpers/members.php
index 26c7fa2..4e610be 100644
--- a/inc/helpers/members.php
+++ b/inc/helpers/members.php
@@ -1,7 +1,8 @@
 <?php
 
 use JVBase\managers\Cache;
-use JVBase\meta\MetaManager;
+use JVBase\meta\Meta;
+use JVBase\registrar\Registrar;
 
 if (!defined('ABSPATH')) {
 	exit;
@@ -172,9 +173,9 @@
     if (!$user) {
         return [];
     }
-    $id = (int) get_user_meta($userID, BASE.'link', true);
+    $id = (int) get_user_meta($userID, BASE.'profile_link', true);
 
-	$meta = new MetaManager($id,'post');
+	$meta = Meta::forPost($id);
 	$artist = $meta->getAll(['first_name','type','city','shop']);
 	$artist['id'] = $id;
 	$artist['display_name'] = $user->display_name;
@@ -210,10 +211,39 @@
 	}
     $user = ($ID === 0) ? wp_get_current_user() : get_userdata($ID);
     return array_values(array_intersect(
-        array_keys(array_merge(JVB_USER, ['administrator'])),
+        array_keys(array_merge(Registrar::getRegistered('user'), ['administrator'])),
         array_map(function ($role) {
             return jvbNoBase($role);
         },
         $user->roles)
     ))[0];
 }
+
+function  jvbUserProfileLink(int $userID):string|false
+{
+	$cache = Cache::for('userLink')->connect('user');
+	return $cache->remember(
+		$userID,
+		function() use ($userID) {
+			$user = get_userdata($userID);
+			if (!$user) {
+				return false;
+			}
+			$role = jvbUserRole($userID);
+			$registrar = Registrar::getInstance($role);
+			if (!$registrar || !$registrar->profile_link) {
+				return false;
+			}
+			$link = get_user_meta($userID, BASE.'profile_link', true);
+			//Try to create it
+			if (empty($link)) {
+				$link = JVB()->roles()->addUserLink($user, $role);
+				if (!$link) {
+					return false;
+				}
+			}
+			$status = get_post_status($link);
+			return ($status === 'publish') ? get_the_permalink($link) : false;
+		}
+	);
+}

--
Gitblit v1.10.0