在WordPress项目中,我在前端使用登录。我已包含插件Gravity表单。该页面之一(例如abc)的表单的表单设置为“需要用户登录”。
问题:当我第一次登录并进入abc页时,显示表单(当用户登录时),但是当我第一次进入abc页然后进行登录时,尽管用户已登录,但表单未显示(显示仅在刷新页面时)。为什么会这样?
我正在使用html = '''
<body id="my-plugin-feature">
<style>
html, body {
width: 100%;
display: block;
}
div.error {
position: relative;
display: block;
width: 100%;
background-color: #111111;
padding: 5px;
border: 3px solid blue
}
</style>
<div class="error">CONTENT</div>
</body>
'''
检查用户是否登录。
欢迎任何帮助/建议。
我在应用程序的“检查”过程中注意到的一件事是特定的cookie
登录后,路径为sublime.LAYOUT_BLOCK
的{{1}}最初不会以重力形式加载到页面中。它在刷新后出现。我对这个Cookie感到困惑。
答案 0 :(得分:2)
您可以为项目使用Wordpress默认功能:
<?php if(!is_user_logged_in()) { ?>
// code Require user to be logged in
<?php } else { ?>
// Your code
<?php } ?>
答案 1 :(得分:2)
将其添加到在表单页面中呈现的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');