quando usar add_user_to_blog recebendo erro “Chamar para a function indefinida get_userdata”

Estou trabalhando no WordPress MU e tentando construir um plugin para adicionar usuários a vários sites. até agora fez tudo para percorrer os sites. Mas, ao atribuir o usuário ao site, como abaixo, usando add_user_to_blog, recebo erro, veja abaixo.

add_user_to_blog ($ blogid, $ amsuserid, $ urole);

Obtendo o seguinte erro:

Erro fatal: Chamar para a function indefinida get_userdata () no wp-includes \ ms-functions.php na linha 181

se eu desativar a linha “add_user_to_blog” sem erros.

function completa aqui:

function amsAddUsertoSites() { $siteslist=$_POST['updatesites']; $urole=$_POST['setrole']; $addtoallblogs=$_POST['allsites']; $amsuserid=$_POST['userid']; if($addtoallblogs) { //add_user_to_blog( $blogid, $user_id, "administrator" ); $blogs = get_blogs(); foreach($blogs as $blog=>$blogid) { add_user_to_blog( $blogid, $amsuserid,$urole ); } } else { foreach($siteslist as $blog=>$blogid) { add_user_to_blog( $blogid, $amsuserid,$urole ); } } } 

Solutions Collecting From Web of "quando usar add_user_to_blog recebendo erro “Chamar para a function indefinida get_userdata”"

get_userdata() é uma function conectável , você pode encontrar sua declaração em wp-includes/pluggable.php . Isso significa que os plugins podem declará-lo anteriormente, e não é declarado, quando um plugin é carregado.

Quando você olha wp-settings.php , você pode ver a ordem de carregamento:

 // Load active plugins. foreach ( wp_get_active_and_valid_plugins() as $plugin ) include_once( $plugin ); unset( $plugin ); // Load pluggable functions. require( ABSPATH . WPINC . '/pluggable.php' ); require( ABSPATH . WPINC . '/pluggable-deprecated.php' ); // Set internal encoding. wp_set_internal_encoding(); // Run wp_cache_postload() if object cache is enabled and the function exists. if ( WP_CACHE && function_exists( 'wp_cache_postload' ) ) wp_cache_postload(); /** * Fires once activated plugins have loaded. * * Pluggable functions are also available at this point in the loading order. * * @since 1.5.0 */ do_action( 'plugins_loaded' ); 

Aguarde pelo menos para plugins_loaded , antes de fazer mais do que chamar add_action() ou add_filter() .