PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 4.0.0
Tutor LMS – eLearning and online course solution v4.0.0
4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / GDPR / DB / DB.php
tutor / GDPR / DB Last commit date
DB.php 1 day ago LegalConsents.php 1 day ago Logs.php 1 day ago UserConsents.php 1 day ago
DB.php
87 lines
1 <?php
2 /**
3 * GDPR DB base class.
4 *
5 * @package Tutor\GDPR\DB
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 4.0.0
9 */
10
11 namespace Tutor\GDPR\DB;
12
13 defined( 'ABSPATH' ) || exit;
14
15 /**
16 * Abstract GDPR DB table class.
17 */
18 abstract class DB {
19
20 /**
21 * Create all GDPR tables.
22 *
23 * @since 4.0.0
24 *
25 * @return void
26 */
27 public static function create_tables() {
28 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
29
30 foreach ( static::tables() as $table_class ) {
31 $sql = $table_class::get_schema();
32 if ( ! empty( $sql ) ) {
33 dbDelta( $sql );
34 }
35 }
36 }
37
38 /**
39 * Drop all GDPR tables.
40 *
41 * @since 4.0.0
42 *
43 * @return void
44 */
45 public static function drop_tables() {
46 global $wpdb;
47
48 foreach ( static::tables() as $table_class ) {
49 $table_name = $table_class::get_table_name();
50 $wpdb->query( "DROP TABLE IF EXISTS {$table_name}" ); //phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
51 }
52 }
53
54 /**
55 * Registered GDPR table classes.
56 *
57 * @since 4.0.0
58 *
59 * @return array
60 */
61 protected static function tables() {
62 return array(
63 LegalConsents::class,
64 UserConsents::class,
65 Logs::class,
66 );
67 }
68
69 /**
70 * Get table name.
71 *
72 * @since 4.0.0
73 *
74 * @return string
75 */
76 abstract public static function get_table_name();
77
78 /**
79 * Get create table SQL.
80 *
81 * @since 4.0.0
82 *
83 * @return string
84 */
85 abstract public static function get_schema();
86 }
87