is_user_logged_in() throwing undefined function error

I am running this simple conditional statement on my plugin page:

if (! is_user_logged_in()) {
    add_action('init', 's8w_ajax_login_init');
}

It is throwing a fatal undefined function error for is_user_logged_in. Am I missing something? I have several wp globals on the same page. Do I have to call something else for this to work?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

It’s failing because WordPress isn’t loaded. Instead of making AJAX requests directly to PHP files in your theme, make them to a REST API endpoint.

For example:

add_action( 'rest_api_init', function () {
        register_rest_route( 'petebolduc/v1', '/test/', array(
                'callback' => 'petebolduc_ajax'
        ) );
} );
function petebolduc( $parameters ) {
    $foo = $parameters['foo'];
    return "foo is " . $foo;
}

With that code, visiting: example.com/wp-json/petebolduc/v1/test?foo=bar

gives:

"foo is bar"


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x