From 4089ba01e0881c89a72332e13bc3a80b6bddec2a Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 29 Jun 2026 22:15:55 +0000
Subject: [PATCH] =DashboardManager overhaul. A bit easier to modify the output of pages. Still have to get the account pages to work as expected, as well as verify the integrations and others are working - but registrar/content pages work as expected. Also fixed up the table generation in CRUD.js and CRUDSkeleton.php
---
inc/helpers/members.php | 47 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/inc/helpers/members.php b/inc/helpers/members.php
index d62b383..b64c9d0 100644
--- a/inc/helpers/members.php
+++ b/inc/helpers/members.php
@@ -2,6 +2,7 @@
use JVBase\managers\Cache;
use JVBase\meta\Meta;
+use JVBase\registrar\Registrar;
if (!defined('ABSPATH')) {
exit;
@@ -172,7 +173,7 @@
if (!$user) {
return [];
}
- $id = (int) get_user_meta($userID, BASE.'link', true);
+ $id = (int) get_user_meta($userID, BASE.'profile_link', true);
$meta = Meta::forPost($id);
$artist = $meta->getAll(['first_name','type','city','shop']);
@@ -209,11 +210,41 @@
return 'admin';
}
$user = ($ID === 0) ? wp_get_current_user() : get_userdata($ID);
- return array_values(array_intersect(
- array_keys(array_merge(JVB_USER, ['administrator'])),
- array_map(function ($role) {
- return jvbNoBase($role);
- },
- $user->roles)
- ))[0];
+
+ return array_values(array_values(array_intersect(
+ 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