your programing

WooCommerce 함수에 WP/WC 인수 누락

lovepro 2023. 4. 2. 12:29
반응형

WooCommerce 함수에 WP/WC 인수 누락

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 );
}

그러나 다음 오류 메시지가 반환됩니다.

경고:plugins/woocommerce/includes/wc-core-functions에 wc_maybe_store_user_agent() 인수 2가 없습니다.1516행의 php

인터넷으로 찾아봤는데 아무도 이 문제를 겪지 않은 것 같아요.

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);
}

WooCommerce에는 이런 훅이 있다.

add_action( 'wp_login', 'wc_maybe_store_user_agent', 10, 2 );

"wc_maybe_store_user_agent"에는 2개의 파라미터가 필요합니다.유저 ID 가 설정되어 있지 않은 경우는, 전술한 에러가 표시됩니다.위의 스니펫 테스트

기능은 플러그인/woocommerce/includes/wc-core-functions의 1516 행에 있습니다.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 );

파라미터가1개누락되었습니다.이거 먹어봐.

do_action( 'wp_login', $user->user_login, $user );

출처 : https://developer.wordpress.org/reference/hooks/wp_login/

언급URL : https://stackoverflow.com/questions/43934233/wp-wc-missing-argument-in-woocommerce-function

반응형