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; } } });
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();
}
}})
}
Hi Lukas,
In the end of show and hide add () to trigger the function.
$w("#button1").hide(); $w("#button1").show();
Good luck!
Roi.
Thank you, but doesnt work, you can see - https://www.cestaspolu.cz/cestovatele
Button1 = Me vytvořené cesty
Button2 = Mé oblíbené cesty
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 :)