最后,你的日期比较有点偏离-user_registered 将是MySQL datetime,因此字符串比较永远不会计算为true。相反,请仅将其转换为日期:
$registered = mysql2date( \'Y-m-d\', $user->user_registered );
现在我们在讨论:
if ( \'2015-10-01\' === $registered ) {
// chocks away
}
Update: 下面是一个完整的片段,它的内存占用也应该更少:
$users = get_users(
array(
\'fields\' => array( \'ID\', \'user_registered\' ),
\'role\' => \'subscriber\',
)
);
foreach ( $users as $user ) {
if ( \'2015-10-01\' === mysql2date( \'Y-m-d\', $user->user_registered ) ) {
$u = new WP_User( $user->ID );
// Remove role
$u->remove_role( \'subscriber\' );
// Add role
$u->add_role( \'to_be_approved\' );
}
}
代码没有经过测试,您应该假设它将被破坏,所以备份,备份,备份。确保你有
debugging enabled 也