尽管用户已在wordpress中登录,但仍要求用户登录无法使用重力形式

时间:2018-09-21 08:56:59

标签: javascript php wordpress gravity-forms-plugin logged

在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感到困惑。

2 个答案:

答案 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');