Я пытаюсь получить подробную информацию о пользователе из стороннего файла wordpress (но на том же сервере), и для этого я использую этот код

<?php
    define( 'WP_USE_THEMES', false ); // Do not use the theme files
    define( 'COOKIE_DOMAIN', false ); // Do not append verify the domain to the cookie
    define( 'DISABLE_WP_CRON', true ); // We don't want extra things running...

    //$_SERVER['HTTP_HOST'] = ""; // For multi-site ONLY. Provide the 
                                  // URL/blog you want to auth to.

    // Path (absolute or relative) to where your WP core is running
    require("/var/www/yourdomain.com/htdocs/wp-load.php");

    if ( is_user_logged_in() ) {
        $user = wp_get_current_user();
    } else {
        $creds                  = array();
        // If you're not logged in, you should display a form or something
        // Use the submited information to populate the user_login & user_password
        $creds['user_login']    = "";
        $creds['user_password'] = "";
        $creds['remember']      = true;
        $user                   = wp_signon( $creds, false );
        if ( is_wp_error( $user ) ) {
            echo $user->get_error_message();
        } else {
            wp_set_auth_cookie( $user->ID, true );
        }
    }

    if ( !is_wp_error( $user ) ) {
        // Success! We're logged in! Now let's test against EDD's purchase of my "service."

        if ( edd_has_user_purchased( $user->ID, '294', NULL ) ) {
            echo "Purchased the Services and is active.";
        } else {
            echo "Not Purchased";
        }
    } 
?>

Но это не сработало, я создаю настраиваемую панель мониторинга из wp, которая использует информацию о wp в качестве бэкэнда. Так скажите, пожалуйста, что я делаю не так? Любая помощь высоко ценится.

2
Aryabh 1 Мар 2018 в 08:30

1 ответ

Лучший ответ

Поскольку вы используете easy-digital-downloads , убедитесь, что он был включен

if ( !function_exists( 'edd_has_user_purchased' ) ) { 
    require_once 'path-to-plugin/user-functions.php'; 
} 

В операторе if (! Is_wp_error ($ user)) вы можете использовать

echo "<p>ID: ".$user->ID;
echo "<p>Name: ".$user->data->display_name;
echo "<p>Login: ".$user->data->user_login;
echo "<p>Email: ".$user->data->user_email;
echo "<p>URL: ".$user->data->user_url;
echo "<p>Registered: ".$user->data->user_registered;

Чтобы показать информацию о пользователе wp.

Пытаться

print_r($user); 

Просмотреть все доступные поля

1
ABelikov 1 Мар 2018 в 10:21