Use.role = Visitor

Hi, I want to hide two buttons on the page if there is an unregistered user on the page. Here is my code but it does not work for me. Where do I get a mistake?

import wixUsers from ‘wix-users’;

let user;
let isloggedin;

$w.onReady( () => {
user = wixUsers.currentUser;
isloggedin = user.loggedin;
if (isloggedin) {
if (user.role === “Visitor”) {
$w(“#button1”).hide;
$w(“#button2”).hide;
}
else {
$w(“#button1”).show;
$w(“#button2”).show;

}
}
});

Hi,
You can simply hide the buttons if the user is a “visitor” because that means he isn’t logged in.
change this part of the code:

$w.onReady( () => {
user = wixUsers.currentUser;
if (user.role === "Visitor") {
    $w("#button1").hide;
    $w("#button2").hide;
}
else{
    $w("#button1").show;
    $w("#button2").show;
 
}
});

Good luck :slight_smile:

Thank you, but doesnt work, you can see - https://www.cestaspolu.cz/cestovatele
Button1 = Me vytvořené cesty
Button2 = Mé oblíbené cesty

Hi Lukas,
In the end of show and hide add () to trigger the function.

$w("#button1").hide();
$w("#button1").show();

Good luck!
Roi.

in one example I can help someone

$w.onReady(() => {
let ktos = wixUsers.currentUser;
if (ktos.loggedIn) setupPage();
wixUsers.onLogin((user) => {
setupPage();
});
});

export function setupPage() {
let user = wixUsers.currentUser;
user.getRoles()
.then((roles) => {

if (roles.length === 0){
$w(“#menu”).show();
$w(“#menuobsluga”).hide();
$w(“#klientgroup”).hide();
}
else {
let firstRole = roles[0];
let roleName = firstRole.name;
//console.log(roles);
//console.log = (roleName); // “Role Name”
let roleDescription = firstRole.description; // “Role Description”

if (roleName === “obsluga” && user.loggedIn) {
$w(“#menu”).hide();
$w(“#menuobsluga”).show();
$w(“#klientgroup”).hide();
}
if (roleName === “Klient” && user.loggedIn) {
$w(“#menu”).hide();
$w(“#klientgroup”).show();
$w(“#menuobsluga”).hide();
}
else {
$w(“#menu”).show();
$w(“#klientgroup”).hide();
$w(“#menuobsluga”).hide();
}
}})
}