0 ? $v : 1; } private static function compose_key($domain, $key) { return $domain . ':' . self::get_version($domain) . ':' . $key; } public static function user_context_key($user_id = null) { if ($user_id === null) { $user_id = get_current_user_id(); } $user_id = (int) $user_id; if (isset(self::$l1['__uctx:' . $user_id])) { return self::$l1['__uctx:' . $user_id]; } $roles = array(); if ($user_id > 0) { $user = get_userdata($user_id); if ($user && !empty($user->roles) && is_array($user->roles)) { $roles = $user->roles; } } else { $roles = array('guest'); } sort($roles); $loyalty = array(); if ($user_id > 0 && class_exists('AIEO_DMM_Pricing_Engine')) { $loyalty = AIEO_DMM_Pricing_Engine::instance()->get_loyalty_class_ids_for_user($user_id); sort($loyalty); } $ctx = md5(implode(',', $roles) . '|' . implode(',', $loyalty)); self::$l1['__uctx:' . $user_id] = $ctx; return $ctx; } }