BP_Message_Export::process_erase( $user, $page, bool $email_address )
Delete user messages and change ownership to anonymous.
Description
Parameters
- $user
-
(Required)
- $page
-
(Required)
- $email_address
-
(Required)
Return
(array)
Source
File: bp-core/gdpr/class-bp-message-export.php
function process_erase( $user, $page, $email_address ) {
global $wpdb, $bp;
if ( ! $user || is_wp_error( $user ) ) {
return $this->response_erase( array(), true );
}
$table = "{$bp->messages->global_tables["table_name_messages"]}";
$table_recipients = "{$bp->messages->global_tables["table_name_recipients"]}";
$page = (int) $page;
$items_removed = false;
$items_retained = false;
$get_data = $this->get_data( $user, $page );
foreach ( $get_data["items"] as $item ) {
$item->subject = wp_privacy_anonymize_data( 'text', $item->subject );
$item->message = wp_privacy_anonymize_data( 'longtext', $item->subject );
$wpdb->update( $table,
array(
"subject" => $item->subject,
"message" => $item->message,
),
array( "id" => $item->id ),
array( '%s', '%s', '%d' ),
array( '%d' ) );
/**
* @todo add title/description
*
* @since BuddyBoss 1.0.0
*/
do_action( 'buddyboss_bp_gdpr_message_after_data_erasers_item', $item, $get_data );
$items_removed = true;
}
$done = $get_data["total"] < $get_data["offset"];
if ( $done ) {
// Anonymous user from all recipients
$wpdb->update( $table_recipients,
array( "user_id" => 0 ),
array( "user_id" => $user->ID ),
array( '%d' ),
array( "%d" ) );
// Anonymous Sender ID from all messages
$wpdb->update( $table,
array( "sender_id" => 0 ),
array( "sender_id" => $user->ID ),
array( '%d' ),
array( "%d" ) );
}
return $this->response_erase( $items_removed, $done, array(), $items_retained );
}
Changelog
| Version | Description |
|---|---|
| BuddyBoss 1.0.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.