charlie
Tengo WordPress con WooCommerce instalado y estoy tratando de usar este código para iniciar sesión como usuario administrador:
if ( !is_user_logged_in() ) {
$user = get_userdatabylogin( $username ); // get_user_by('login', $user_login);
$id = $user->ID;
wp_set_current_user( $id, $user->user_login );
wp_set_auth_cookie( $id );
do_action( 'wp_login', $user->user_login );
}
Pero está devolviendo este mensaje de error:
Advertencia: Falta el argumento 2 para wc_maybe_store_user_agent() en plugins/woocommerce/includes/wc-core-functions.php en la línea 1516
He intentado buscar en línea, pero nadie parece haber tenido este problema.
solo muju
if (!is_user_logged_in()) {
//determine WordPress user account to impersonate
$user_login = 'guest';
//get user ID
$user = get_userdatabylogin($user_login); // below WP 3.3.0
//$user = get_user_by('login', $user_login); above or equals WP 3.3.0
$user_id = $user->ID;
//login
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action('wp_login', $user_login);
}
Hay un gancho en WooCommerce como este.
add_action( 'wp_login', 'wc_maybe_store_user_agent', 10, 2 );
Los “wc_maybe_store_usuario_agente” espera 2 parámetros. Si la ID de usuario no está configurada, mostrará el error que mencionó. Pruebe mi fragmento de código anterior
La función está en la línea 1516 en plugins/woocommerce/includes/wc-core-functions.php
function wc_maybe_store_user_agent( $user_login, $user ) {
if ( 'yes' === get_option( 'woocommerce_allow_tracking', 'no' ) && user_can( $user, 'manage_woocommerce' ) ) {
$admin_user_agents = array_filter( (array) get_option( 'woocommerce_tracker_ua', array() ) );
$admin_user_agents[] = wc_get_user_agent();
update_option( 'woocommerce_tracker_ua', array_unique( $admin_user_agents ) );
}
}
add_action( 'wp_login', 'wc_maybe_store_user_agent', 10, 2 );
-
si gracias Tienes toda la razón, 2 argumentos – falta uno
– Vincent Guesné
24 de enero de 2019 a las 21:52
-
bueno . . .
– Melvin
25 de febrero de 2019 a las 10:19
Te perdiste un parámetro. Prueba esto.
do_action( 'wp_login', $user->user_login, $user );
Fuente: https://developer.wordpress.org/reference/hooks/wp_login/
-
no parece estar iniciando sesión
– charlie
12 de mayo de 2017 a las 9:39
-
¿Tienes alguna idea de qué podría estar impidiendo que inicie sesión?
– charlie
12 mayo 2017 a las 12:00
-
@charlie, ¿qué función o cómo se construye todo el código? como estas llamando
–Reigel Gallarde
10 de junio de 2017 a las 11:38
-
exactamente lo que faltaba en mi caso!
– Jay Pagnis
12/09/2017 a las 18:52
¿Se resolvió el problema o todavía enfrenta el problema? Si se resuelve, debe publicar una respuesta aquí.
– Parantap Parashar
8 de junio de 2017 a las 6:33
no use la función get_userdatabylogin ya que WP la desaprobó. Utilice get_user_by() en su lugar.
– Mukesh Panchal
8 de junio de 2017 a las 9:21