[英]Require user to be logged in not working for gravity form though user is logged in wordpress
在WordPress项目中,我在前端使用登录。 我已经包含了插件重力形式。 其中一个页面(例如abc)的表单设置为“要求用户登录”。
问题:当我第一次登录并转到页面abc时,表单显示(当用户登录时)但是当我第一次去页面abc然后登录虽然用户登录表单没有显示(仅在我显示时显示)刷新页面)。 为什么会这样?
我正在使用if($("body").hasClass("logged-in"))
来检查用户是否登录。
欢迎任何帮助/建议。 我在应用程序中的'inspect'期间注意到的一件事是一个特定的cookie wordpress_456b46f4d1347f23495548c111992d89
,路径为/wp-content/plugins
最初在登录后没有加载重力形式的页面。 刷新之后来了。 我很困惑这个cookie。
您可以为项目使用Wordpress默认功能:
<?php if(!is_user_logged_in()) { ?>
// code Require user to be logged in
<?php } else { ?>
// Your code
<?php } ?>
将其添加到在表单页面中呈现的JS文件中(如下所示检查用户登录)
<script>
var data = { action: 'is_user_logged_in' };
jQuery.post(ajaxurl, data, function(response) {
if(response == 'yes') {
// user is logged in,
} else {
// user is not logged in,
}
});
</script>
在活动主题的functions.php中添加它。
function check_user_logged_in() {
echo is_user_logged_in()?'yes':'no';
die();
}
add_action('wp_ajax_nopriv_is_user_logged_in', 'check_user_logged_in');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.