正在从不起作用的用户联系人中删除Facebook联系人字段

时间:2017-01-11 作者:LittleLebowski

我正在尝试为过去365天注册的用户取消Facebook链接。对于已完成一年以上的用户,请不要取消设置。

以下是我的代码,它不起作用:

function modify_user_contact_methods( $user_contact ) {

    get_currentuserinfo(); 
        $user_data = get_userdata($user_ID);
        $registered_date = $user_data->user_registered;
        if (strtotime($registered_date) > strtotime(\'-365 days\')){
             // Remove user contact methods
         unset( $user_contact[\'facebook\']    );
        }

    return $user_contact;
}
add_filter( \'user_contactmethods\', \'modify_user_contact_methods\' );
它显示字段。如果我删除该条件,它将为每个用户取消设置。所以设置/取消设置是正确的,我想只有365条件是错误的。但这似乎是正确的,amI做错了什么?请引导。

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

第一件事。。。always, always enable debugging. 其次,你应该接受$user 参数-否则,您总是检查登录用户,而不是当前上下文中的用户:

function modify_user_contact_methods( $methods, $user ) {
    if ( ! $user instanceof WP_User ) {
        if ( ! $user = wp_get_current_user() )
            return $methods;
    }

    if ( strtotime( $user->user_registered ) > strtotime( \'1 year ago\' ) ) {
         unset( $methods[\'facebook\'] );
    }

    return $methods;
}

add_filter( \'user_contactmethods\', \'modify_user_contact_methods\', 10, 2 );