Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function hook_user_cancel

Same name and namespace in other branches
  1. 11.x core/modules/user/user.api.php \hook_user_cancel()
  2. 10 core/modules/user/user.api.php \hook_user_cancel()
  3. 9 core/modules/user/user.api.php \hook_user_cancel()
  4. 8.9.x core/modules/user/user.api.php \hook_user_cancel()

Act on user account cancellations.

This hook is invoked from user_cancel() before a user account is canceled. Depending on the account cancellation method, the module should either do nothing, unpublish content, or anonymize content. See user_cancel_methods() for the list of default account cancellation methods provided by User module. Modules may add further methods via hook_user_cancel_methods_alter().

This hook is NOT invoked for the 'user_cancel_delete' account cancellation method. To react on this method, implement hook_user_delete() instead.

Expensive operations should be added to the global account cancellation batch by using batch_set().

Parameters

$edit: The array of form values submitted by the user.

$account: The user object on which the operation is being performed.

$method: The account cancellation method.

See also

user_cancel_methods()

hook_user_cancel_methods_alter()

Related topics

Hooks
Allow modules to interact with the Drupal core.
10 functions implement hook_user_cancel()

Note: the procedural functions in this list are found by pattern matching, so the list may include some functions that are not actually implementations of this hook.

CommentHooks::userCancel in core/modules/comment/src/Hook/CommentHooks.php
Implements hook_user_cancel().
comment_user_cancel in modules/comment/comment.module
Implements hook_user_cancel().
HistoryHooks::userCancel in core/modules/history/src/Hook/HistoryHooks.php
Implements hook_user_cancel().
NodeUserHooks::userCancelBlockUnpublish in core/modules/node/src/Hook/NodeUserHooks.php
Implements hook_user_cancel().
NodeUserHooks::userCancelReassign in core/modules/node/src/Hook/NodeUserHooks.php
Implements hook_user_cancel().

... See full list

1 invocation of hook_user_cancel()
user_cancel in modules/user/user.module
Cancel a user account.

File

modules/user/user.api.php, line 78

Code

function hook_user_cancel ($edit, $account, $method) {
 switch ($method) {
 case 'user_cancel_block_unpublish':
 // Unpublish nodes (current revisions).
 module_load_include ('inc', 'node', 'node.admin');
 $nodes = db_select ('node', 'n')->fields ('n', array(
 'nid',
 ))
 ->condition ('uid', $account->uid)
 ->execute ()
 ->fetchCol ();
 node_mass_update ($nodes, array(
 'status' => 0,
 ));
 break;
 case 'user_cancel_reassign':
 // Anonymize nodes (current revisions).
 module_load_include ('inc', 'node', 'node.admin');
 $nodes = db_select ('node', 'n')->fields ('n', array(
 'nid',
 ))
 ->condition ('uid', $account->uid)
 ->execute ()
 ->fetchCol ();
 node_mass_update ($nodes, array(
 'uid' => 0,
 ));
 // Anonymize old revisions.
 db_update ('node_revision')->fields (array(
 'uid' => 0,
 ))
 ->condition ('uid', $account->uid)
 ->execute ();
 // Clean history.
 db_delete ('history')->condition ('uid', $account->uid)
 ->execute ();
 break;
 }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.