| | |
| | | |
| | | use JVBase\managers\Cache; |
| | | use JVBase\meta\Meta; |
| | | use JVBase\registrar\Registrar; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; |
| | |
| | | $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; |
| | | } |
| | | ); |
| | | } |