谢谢大家的帮助,易卜拉欣你太棒了!!
最后,我得到了我想要的工作,所以我关闭了帖子,如果有人能在某个时候利用它,我会留下对我有用的东西。
我尝试使用您在Javascript中提供的代码:
var data = {
action: \'is_user_logged_in\'
};
jQuery(\'.x-btn-widgetbar\').on(\'click\', function() {
jQuery.post(ajaxurl, data, function(response) {
if(response == \'yes\') {
// user is logged in, do your stuff here
} else {
// user is not logged in, show login form here
jQuery(\'.x-widgetbar\').hide();
window.location.href=\'https://website.com/login\';
}
});
});
这就是函数。php:
function ajax_check_user_logged_in() {
echo is_user_logged_in()?\'yes\':\'no\';
die();
}
add_action(\'wp_ajax_is_user_logged_in\', \'ajax_check_user_logged_in\');
add_action(\'wp_ajax_nopriv_is_user_logged_in\', \'ajax_check_user_logged_in\');
这段代码正是我想要的,但我花了几秒钟的时间重定向并发送了一个我没有添加到代码中的警报,导致响应略有延迟。
我试过Samuel和Parthavi(非常感谢!)编写并将此代码放入Javascript中:
jQuery(\'.x-btn-widgetbar\').on(\'click\', function() {
if(jQuery(\'body\').hasClass(\'logged-in\') ) {
} else {
jQuery(\'.x-widgetbar\').hide();
window.location.href=\'https://website.com/login\';
}
});
使用此代码,行为相同,工作正常,但响应速度更快,可以防止小的延迟。
如果您看到一些调试代码的方法,或者看到一些可以帮助我避免问题的东西,我会非常感激,因为我不是javascript方面的专家。
提前感谢您的帮助,我希望一切顺利。