Jake Vanderwerf
9 days ago ed57c386db34d8693ca75311972d0929ebe5f488
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;
      }
   );
}