我正在尝试为过去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做错了什么?请引导。
最合适的回答,由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 );