如何删除用户和节点,drupal7


How to delete user and node, drupal 7?

我创建了一个模块,如果添加了用户,它会添加一个新节点(带有用户信息)。现在我想实现一个user_delete钩子,如果用户被删除,它会删除节点。我不知道如何实现这一点。

此代码为新用户添加了一个新节点:

function user_profile_user_insert(&$edit, $account, $category) {
    $node = new stdClass();
    $node->type = 'members';
    node_object_prepare($node);
    //dvm($account);
    $node->title = $account->name;
    $user_info = user_load($account->uid);
    $node->field_user["und"][0]["uid"] = $account->uid;

    $path = $account->name;
    $node->path = array('alias' => $path);
    node_save($node);
}

尝试这个

function node_delete($nid) {
 node_delete_multiple(array($nid));
}

对于用户,您可以使用

user_delete,其中传递$uid作为参数

对于有node_delete的节点,您传递$nid作为参数。

同样删除基于用户id的节点还有这个函数node_user_delete

在我用stop_spam_reg模块解决用户注册垃圾邮件问题之前,我会定期清除垃圾邮件帐户,如下所示:

/devel/php-

$query = db_select('users', 'u') ->fields('u', array('uid'));
$result = $query->execute();
foreach ($result as $record) {
    if( $record->uid>1){  //replace 1 with the latest valid uid you want to keep 
    user_delete($record->uid);
    }
}

小心离开用户1,否则您将面临比垃圾邮件用户更大的问题:)