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 / Models / LegalConsents.php
tutor / GDPR / Models Last commit date
LegalConsentLogs.php 23 hours ago LegalConsents.php 23 hours ago UserConsents.php 23 hours ago
LegalConsents.php
101 lines
1 <?php
2 /**
3 * Legal consent model.
4 *
5 * @package Tutor\GDPR\Models
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 4.0.0
9 */
10
11 namespace Tutor\GDPR\Models;
12
13 use Tutor\GDPR\DB\LegalConsents as Table;
14 use Tutor\Models\BaseModel;
15
16 defined( 'ABSPATH' ) || exit;
17
18 /**
19 * Legal consent model class.
20 *
21 * @since 4.0.0
22 */
23 class LegalConsents extends BaseModel {
24
25 /**
26 * Table name without prefix.
27 *
28 * @since 4.0.0
29 *
30 * @var string
31 */
32 protected $table_name = 'tutor_legal_consents';
33
34 /**
35 * Fillable fields for create/update.
36 *
37 * @since 4.0.0
38 *
39 * @var array
40 */
41 protected $fillable = array(
42 'consent_title',
43 'display_on',
44 'consent_message',
45 'consent_map',
46 'version',
47 'consent_method',
48 'is_active',
49 'settings',
50 'created_at_gmt',
51 'updated_at_gmt',
52 );
53
54 /**
55 * Constructor.
56 *
57 * @since 4.0.0
58 */
59 public function __construct() {
60 $this->table_name = Table::get_table_name();
61 parent::__construct();
62 }
63
64 /**
65 * Get fillable fields
66 *
67 * @since 4.0.0
68 *
69 * @return array
70 */
71 public function get_fillable_fields() {
72 return $this->fillable;
73 }
74
75 /**
76 * Retrieve legal consent entries filtered by display key.
77 *
78 * @since 4.0.0
79 *
80 * @param string $display_key The display key to filter consents (e.g. 'login', 'signup', etc.).
81 *
82 * @return array An array of legal consent objects or an empty array if none found.
83 */
84 public function get_consents_by_display_key( string $display_key ): array {
85 global $wpdb;
86
87 $res = $wpdb->get_results(
88 $wpdb->prepare(
89 "SELECT
90 *
91 FROM {$this->table_name}
92 WHERE FIND_IN_SET( %s, display_on )
93 ",
94 $display_key
95 )
96 );
97
98 return is_array( $res ) ? $res : array();
99 }
100 }
101