ShopMessage can also let you know when it detects that a visitor is logged into Facebook. This can be useful if there are certain elements on the page that you only want to reveal to logged-in users.
Facebook SDK Limitation
Because ShopMessage uses the Facebook SDK, it will never invoke your callback if the visitor is logged out. The callback returns only in the affirmative.
_shopmsg('facebook.loginStatus', function onLoggedIn() {
// visitor is logged in
});
let fbLoggedIn = new Promise((resolve, reject) => {
let hasTimedOut = false;
_shopmsg('facebook.loginStatus', () => {
if (!hasTimedOut) {
resolve();
}
});
// I won't know if the visitor is actually logged out, so
// just wait a max of 3secs to find out or else bail
setTimeout(() => {
hasTimedOut = true;
reject();
}, 3000);
});
fbLoggedIn.then(() => {
// if the promise is resolved, then I know the visitor is logged in
$('#myPromoDiv').show();
});