php - 根据 WordPress 上的自定义字段条目自动删除用户
问题描述
我已经有一个基于注册自动删除用户的代码片段,但我目前正在使用一个 csv 用户导入器插件,它具有自定义字段支持,例如年龄、地址和组织。我想要一些类似的东西,例如,如果用户匹配自定义字段条目,Google - 然后在 3 年后删除,如果用户匹配 Microsoft,则在 5 年后删除。
这是自动删除用户的代码片段,我不知道如何进一步修改它,请帮助。
global $wpdb;
$userlevel = 0; //0 = subscriber
$deleteafter = 1095; //deleter User after 1095 days
$query = $wpdb->prepare("SELECT $wpdb->users.ID FROM $wpdb->users LEFT JOIN $wpdb->usermeta ON $wpdb->users.ID = $wpdb->usermeta.user_id WHERE $wpdb->usermeta.meta_key = %s AND $wpdb->usermeta.meta_value = %d AND DATEDIFF(CURDATE(), $wpdb->users.user_registered) > %d", $wpdb->prefix.'user_level',$userlevel,$deleteafter);
if($oldUsers = $wpdb->get_results($query, ARRAY_N)){
foreach ($oldUsers as $user_id) {
wp_delete_user($user_id[0]);
}
}
}
add_action('daily_clean_database', 'auto_delete_users');
wp_schedule_event(time(), 'daily', 'daily_clean_database');```
解决方案
您可以检查用户元字段,因为您已经获得了user_id。
$custom_field_entry = get_user_meta($user_id[0], 'custom_field_entry', true);
if($custom_field_entry == 'Google') {
// Your Delete Function
} else if($custom_field_entry == 'Microsoft') {
// Your Delete Function
}
将此代码段放入您的foreach中。
看看这个。 https://developer.wordpress.org/reference/functions/get_user_meta/
推荐阅读
- c++ - 最大化的最佳方式,因此 clan1 获胜
- django - 我可以使用 JWTAuthentication 两次进行登录身份验证吗?
- scala - Scala变量类型不匹配?
- php - 如何从一维和多维数组中删除键和值?
- python - 无法在 VSCode 中运行 Jupyter Notebook - Vanilla Python,Windows 10
- python - 如何在谷歌上搜索用户输入并在浏览器中打开而不会出现错误?
- python - 我想通过 SSH 执行某个命令,但它不起作用,但其他命令可以。怎么来的?
- php - 身份验证器登录返回预期的响应代码 235,但得到代码“535”,消息“535 身份验证数据不正确”
- javascript - 如何在 React Native 中的前一个函数完成后启动函数
- mongodb - Docker 容器启动并运行,但无法加载本地主机