is_user_logged_in() not working in wordpress plugin

is_user_logged_in() function not working in WordPress plugin.
Shows the following error:

Fatal error: Call to undefined function is_user_logged_in() in
How can I use the logic in WordPress plugin?

Related posts

Leave a Reply

4 comments

  1. Plugins are loaded prior to pluggable.php, which is where is_user_logged_in() is located. Which means the function doesn’t exist yet when you’re trying to call it. Instead, do this:

    add_action('init', 'ajax_auth_init');
    function ajax_auth_init()
    {
        if(!is_user_logged_in()) return;
        // rest of your code
    }
    
  2. function example_function() {
        if ( ! is_user_logged_in() ) {
            ajax_auth_init();
        }
    }
    add_action('init', 'example_function');
    

    EDIT:

    is_user_logged_in() is a pluggable function and you could get a fatal error if you call it too early.
    You can use this function inside your theme files without any additional code. Like:

    <?php if ( is_user_logged_in() ) { ?>
        <a href="<?php echo wp_logout_url(); ?>">Logout</a>
    <?php } else { ?>
        <a href="/wp-login.php" title="Members Area Login" rel="home">Members Area</a>
    <?php } ?>
    

    But inside plugin you should wait for wordpress to be loaded.

    P.S. Sorry for my english.