Ich habe WordPress mit WooCommerce installiert und versuche, diesen Code zu verwenden, um einen Admin-Benutzer anzumelden:
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 );
}
Aber es gibt diese Fehlermeldung zurück:
Warnung: Fehlendes Argument 2 für wc_maybe_store_user_agent() in plugins/woocommerce/includes/wc-core-functions.php in Zeile 1516
Ich habe versucht, mich online umzusehen, aber niemand scheint dieses Problem gehabt zu haben.
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);
}
Es gibt einen solchen Haken in WooCommerce.
add_action( 'wp_login', 'wc_maybe_store_user_agent', 10, 2 );
Das “wc_maybe_store_user_agent” erwartet 2 Parameter. Wenn die Benutzer-ID nicht festgelegt ist, wird der von Ihnen erwähnte Fehler angezeigt. Testen Sie mein obiges Snippet
Die Funktion befindet sich in Zeile 1516 in 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 );
Sie haben einen Parameter übersehen. Versuche dies.
do_action( 'wp_login', $user->user_login, $user );
Quelle: https://developer.wordpress.org/reference/hooks/wp_login/
Ist das Problem behoben oder besteht das Problem weiterhin? Wenn es gelöst ist, sollten Sie hier eine Antwort posten.
– Paratap Parashar
8. Juni 2017 um 6:33 Uhr
Verwenden Sie nicht die get_userdatabylogin-Funktion, da sie von WP veraltet ist. Verwenden Sie stattdessen get_user_by().
– Mukesh Panchal
8. Juni 2017 um 9:21 Uhr