Md WpExperts
Md WpExperts

Reputation: 11

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?

Upvotes: 1

Views: 12336

Answers (4)

Ravinder Kumar
Ravinder Kumar

Reputation: 944

is_user_logged_in() is located in wp-includes/pluggable.php. So please include this file in your plugin file and check.

Upvotes: 10

Dmitry
Dmitry

Reputation: 347

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.

Upvotes: 0

Boris
Boris

Reputation: 154

Try with

$user = wp_get_current_user();
if($user->ID != 0 or $user->ID != null) ...

Upvotes: 1

Works for a Living
Works for a Living

Reputation: 1293

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
}

Upvotes: 0

Related Questions