HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpdeskera/wp-content/plugins/flamingo/admin/includes/privacy.php
<?php
/**
 * Support for personal data eraser tool
 *
 * @link https://developer.wordpress.org/plugins/privacy/adding-the-personal-data-eraser-to-your-plugin/
 */


add_filter( 'wp_privacy_personal_data_erasers',
	'flamingo_privacy_register_personal_data_erasers',
	10, 1
);

/**
 * Registers callback functions.
 */
function flamingo_privacy_register_personal_data_erasers( $erasers ) {
	return array_merge( (array) $erasers, array(
		'flamingo-contact' => array(
			'eraser_friendly_name' => __( 'Flamingo Address Book', 'flamingo' ),
			'callback' => 'flamingo_privacy_contact_eraser',
		),
		'flamingo-inbound' => array(
			'eraser_friendly_name' => __( 'Flamingo Inbound Messages', 'flamingo' ),
			'callback' => 'flamingo_privacy_inbound_eraser',
		),
	) );
}


/**
 * Callback for the contact data.
 */
function flamingo_privacy_contact_eraser( $email_address, $page = 1 ) {
	$number = 100;

	$posts = Flamingo_Contact::find( array(
		'meta_key' => '_email',
		'meta_value' => $email_address,
		'posts_per_page' => $number,
		'paged' => (int) $page,
	) );

	$items_removed = false;
	$items_retained = false;
	$messages = array();

	foreach ( (array) $posts as $post ) {
		if ( ! current_user_can( 'flamingo_delete_contact', $post->id() ) ) {
			$items_retained = true;

			$messages = array(
				__( 'Flamingo Address Book: You are not allowed to delete contact data.', 'flamingo' ),
			);

			continue;
		}

		if ( $post->delete() ) {
			$items_removed = true;
		} else {
			$items_retained = true;
		}
	}

	$done = Flamingo_Contact::count() < $number;

	return array(
		'items_removed' => $items_removed,
		'items_retained' => $items_retained,
		'messages' => array_map( 'esc_html', (array) $messages ),
		'done' => $done,
	);
}


/**
 * Callback for the inbound messages data.
 */
function flamingo_privacy_inbound_eraser( $email_address, $page = 1 ) {
	$number = 100;

	$posts = Flamingo_Inbound_Message::find( array(
		'meta_key' => '_from_email',
		'meta_value' => $email_address,
		'posts_per_page' => $number,
		'paged' => (int) $page,
	) );

	$items_removed = false;
	$items_retained = false;
	$messages = array();

	foreach ( (array) $posts as $post ) {
		if ( ! current_user_can( 'flamingo_delete_inbound_message', $post->id() ) ) {
			$items_retained = true;

			$messages = array(
				__( 'Flamingo Inbound Messages: You are not allowed to delete inbound messages.', 'flamingo' ),
			);

			continue;
		}

		if ( $post->delete() ) {
			$items_removed = true;
		} else {
			$items_retained = true;
		}
	}

	$done = Flamingo_Inbound_Message::count() < $number;

	return array(
		'items_removed' => $items_removed,
		'items_retained' => $items_retained,
		'messages' => array_map( 'esc_html', (array) $messages ),
		'done' => $done,
	);
}