要求用户登录时不为重力形式工作,尽管用户已登录wordpress



在WordPress项目中,我在前端使用登录。我已经包含了插件重力形式。其中一个页面(例如abc(具有表单,表单设置为"要求用户登录"。

问题:当我第一次登录并转到页面abc时,表单显示(当用户登录时(,但是当我第一次转到页面abc然后登录时,尽管用户已登录,但表单没有显示(它仅在我刷新页面时才显示(。为什么会这样?

我正在使用if($("body").hasClass("logged-in"))来检查用户是否已登录。

欢迎任何帮助/建议。 我在应用程序中的"检查"过程中注意到的一件事是特定的cookiewordpress_456b46f4d1347f23495548c111992d89使用路径作为/wp-content/plugins在登录后最初不会加载到具有重力形式的页面中。它出现在刷新之后。我对这个饼干感到困惑。

您可以为您的项目使用 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>

在活动主题的函数.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');

最新更新