【问题标题】:Automatically delete user based on custom field entry on WordPress根据 WordPress 上的自定义字段条目自动删除用户
【发布时间】:2021-08-07 06:14:50
【问题描述】:

我已经有一个代码 sn-p 用于根据注册自动删除用户,但我目前正在使用一个 csv 用户导入器插件,它具有自定义字段支持,例如年龄、地址和组织。我想要类似的东西,例如,如果用户匹配自定义字段条目,Google - 然后在 3 年后删除,如果用户匹配 Microsoft,则在 5 年后删除。

这是自动删除用户的代码sn-p,我不知道如何进一步修改它,请帮助。

    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');```

【问题讨论】:

    标签: php wordpress auto-delete


    【解决方案1】:

    您可以检查用户元字段,因为您已经获得了 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
    }
    

    把这个 sn-p 放在你的 foreach 中。

    看看这个。 https://developer.wordpress.org/reference/functions/get_user_meta/

    【讨论】:

    • 非常感谢。但是请您将我的代码与示例编号集成在一起。例如。如果字段条目 = google; 2年后删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多