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;
}
}
});
_or
April 26, 2018, 2:42pm
2
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
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();
}
}})
}