LLMS_Abstract_Privacy
LifterLMS Privacy Export / Eraser abstract class.
Description Description
Thanks WooCommerce.
Source Source
File: includes/abstracts/llms.abstract.privacy.php
abstract class LLMS_Abstract_Privacy {
/**
* Plugin name.
*
* @var string
*/
public $name;
/**
* Registered erasers.
*
* @var array
*/
protected $erasers = array();
/**
* Registered exporters.
*
* @var array
*/
protected $exporters = array();
/**
* Constructor.
*
* @since 3.18.0
*
* @param string $name Plugin name.
* @return void
*/
public function __construct( $name = '' ) {
$this->name = $name;
$this->add_hooks();
}
/**
* Add filters for the registered exporters & erasers.
*
* @since 3.18.0
*
* @return void
*/
protected function add_hooks() {
add_action( 'admin_init', array( $this, 'add_privacy_message' ) );
add_filter( 'wp_privacy_personal_data_erasers', array( $this, 'register_erasers' ) );
add_filter( 'wp_privacy_personal_data_exporters', array( $this, 'register_exporters' ), 5 );
}
/**
* Add privacy message sample content.
*
* @since 3.18.0
*
* @return void
*/
public function add_privacy_message() {
if ( function_exists( 'wp_add_privacy_policy_content' ) ) {
$content = $this->get_privacy_message();
if ( $content ) {
wp_add_privacy_policy_content( $this->name, $this->get_privacy_message() );
}
}
}
/**
* Get the privacy message sample content.
*
* This stub can be overloaded.
*
* @since 3.18.0
*
* @return string
*/
public function get_privacy_message() {
return '';
}
/**
* Retrieve an instance of an LLMS_Student from email address.
*
* @since 3.18.0
*
* @param string $email Email address.
* @return false|LLMS_Student
*/
protected static function get_student_by_email( $email ) {
$user = get_user_by( 'email', $email );
if ( is_a( $user, 'WP_User' ) ) {
return llms_get_student( $user );
}
return false;
}
/**
* Add all registered erasers to the array of existing erasers.
*
* @filter wp_privacy_personal_data_erasers
*
* @since 3.18.0
*
* @param array $erasers Existing erasers.
* @return array
*/
public function register_erasers( $erasers = array() ) {
foreach ( $this->erasers as $id => $eraser ) {
$erasers[ $id ] = $eraser;
}
return $erasers;
}
/**
* Add all registered erasers to the array of existing exporters.
*
* @filter wp_privacy_personal_data_exporters
*
* @since 3.18.0
*
* @param array $exporters Existing exporters.
* @return array
*/
public function register_exporters( $exporters = array() ) {
foreach ( $this->exporters as $id => $exporter ) {
$exporters[ $id ] = $exporter;
}
return $exporters;
}
/**
* Register an eraser.
*
* @since 3.18.0
*
* @param string $id Eraser ID.
* @param string $name Human-readable eraser name.
* @param mixed $callback Callback function (callable).
* @return array
*/
public function add_eraser( $id, $name, $callback ) {
$this->erasers[ $id ] = array(
'eraser_friendly_name' => $name,
'callback' => $callback,
);
return $this->erasers;
}
/**
* Register an exporter.
*
* @since 3.18.0
*
* @param string $id Exporter ID.
* @param string $name Human-readable exporter name.
* @param callable $callback Callback function.
* @return array
*/
public function add_exporter( $id, $name, $callback ) {
$this->exporters[ $id ] = array(
'exporter_friendly_name' => $name,
'callback' => $callback,
);
return $this->exporters;
}
}
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — Constructor.
- add_eraser — Register an eraser.
- add_exporter — Register an exporter.
- add_hooks — Add filters for the registered exporters & erasers.
- add_privacy_message — Add privacy message sample content.
- get_privacy_message — Get the privacy message sample content.
- get_student_by_email — Retrieve an instance of an LLMS_Student from email address.
- register_erasers — Add all registered erasers to the array of existing erasers.
- register_exporters — Add all registered erasers to the array of existing exporters.
Changelog Changelog
| Version | Description |
|---|---|
| 3.18.0 | Introduced. |