Jake Vanderwerf
10 days ago 97e7c319d656a5f05489ca996e249e7359303d4d
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']);
@@ -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;
      }
   );
}