WP/WC缺席WC功能的争论

cha*_*lie 9 php wordpress woocommerce wordpress-hook

我安装了WooCommerce的Wordpress,我正在尝试使用此代码登录管理员用户:

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 );
}
Run Code Online (Sandbox Code Playgroud)

但它返回此错误消息:

警告:在第1516行的/home/i/n/username/public_html/shop/wp-content/plugins/woocommerce/includes/wc-core-functions.php中缺少wc_maybe_store_user_agent()的参数2

我试过在网上四处看看但似乎没有人遇到这个问题.

muj*_*nly 10

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);
}
Run Code Online (Sandbox Code Playgroud)

像这样在WooCommerce中有一个钩子.

add_action( 'wp_login', 'wc_maybe_store_user_agent', 10, 2 );
Run Code Online (Sandbox Code Playgroud)

" wc_maybe_store_user_agent "需要2个参数.如果未设置用户ID,则会显示您提到的错误.测试我上面的代码片段

函数位于plugins/woocommerce/includes/wc-core-functions.php的第1516行

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 );
Run Code Online (Sandbox Code Playgroud)


Rei*_*gel 7

你错过了一个参数.试试这个.

do_action( 'wp_login', $user->user_login, $user );
Run Code Online (Sandbox Code Playgroud)

资料来源:https://developer.wordpress.org/reference/hooks/wp_login/