PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.2.3
Defender Security – Malware Scanner, Login Security & Firewall v6.2.3
6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 3.1.1 All 140 releases
defender-security / src / model / setting / class-main-setting.php

class-main-setting.php in Defender Security – Malware Scanner, Login Security & Firewall 6.2.3, at src/model/setting/class-main-setting.php

137 lines 3.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Handles the main settings.
4 *
5 * @package WP_Defender\Model\Setting
6 */
7
8 namespace WP_Defender\Model\Setting;
9
10 use Calotes\Model\Setting;
11
12 /**
13 * Model for main settings.
14 */
15 class Main_Setting extends Setting {
16
17 public const PRIVACY_LINK = 'https://wpmudev.com/docs/privacy/our-plugins/#usage-tracking-def';
18
19 /**
20 * Option name.
21 *
22 * @var string
23 */
24 protected $table = 'wd_main_settings';
25
26 /**
27 * Language to translate.
28 *
29 * @var string
30 * @defender_property
31 */
32 public $translate;
33
34 /**
35 * Enable or disable 'Usage Tracking' option.
36 *
37 * @var bool
38 * @defender_property
39 */
40 public $usage_tracking = false;
41
42 /**
43 * Enable or disable 'Uninstall Data' option.
44 *
45 * @var string
46 * @defender_property
47 * @rule in[keep,remove]
48 */
49 public $uninstall_data = 'keep';
50
51 /**
52 * Enable or disable 'Uninstall Settings' option.
53 *
54 * @var string
55 * @defender_property
56 * @rule in[preserve,reset]
57 */
58 public $uninstall_settings = 'preserve';
59
60 /**
61 * Enable or disable 'High Contrast Mode' option.
62 *
63 * @var bool
64 * @defender_property
65 */
66 public $high_contrast_mode = false;
67
68 /**
69 * Enable or disable 'Uninstall Quarantine' option.
70 *
71 * @var string
72 * @sanitize_text_field
73 * @defender_property
74 * @rule in[keep,remove]
75 */
76 public $uninstall_quarantine = 'keep';
77
78 /**
79 * Validation rules.
80 *
81 * @var array
82 */
83 protected $rules = array(
84 array( array( 'usage_tracking', 'high_contrast_mode' ), 'boolean' ),
85 array( array( 'uninstall_data' ), 'in', array( 'keep', 'remove' ) ),
86 array( array( 'uninstall_settings' ), 'in', array( 'preserve', 'reset' ) ),
87 );
88
89 /**
90 * After loading, this function retrieves the site's locale and determines the site's language.
91 *
92 * @return void
93 */
94 protected function after_load(): void {
95 $site_locale = is_multisite() ? get_site_option( 'WPLANG' ) : get_locale();
96
97 if ( ! is_string( $site_locale ) || '' === $site_locale || 'en_US' === $site_locale ) { // @see wp_dropdown_languages() by default empty string for English.
98 $site_language = 'English';
99 } else {
100 require_once ABSPATH . 'wp-admin/includes/translation-install.php';
101 $translations = wp_get_available_translations();
102 $site_language = isset( $translations[ $site_locale ] )
103 ? $translations[ $site_locale ]['native_name']
104 : esc_html__( 'Error detecting language', 'defender-security' );
105 }
106
107 $this->translate = $site_language;
108 }
109
110 /**
111 * Define settings labels.
112 *
113 * @return array
114 */
115 public function labels(): array {
116 return array(
117 'translate' => esc_html__( 'Translations', 'defender-security' ),
118 'usage_tracking' => esc_html__( 'Usage Tracking', 'defender-security' ),
119 'uninstall_data' => esc_html__( 'Uninstall Data', 'defender-security' ),
120 'uninstall_settings' => esc_html__( 'Uninstall Settings', 'defender-security' ),
121 'high_contrast_mode' => esc_html__( 'High Contrast Mode', 'defender-security' ),
122 );
123 }
124
125 /**
126 * Enable or disable 'Usage Tracking' option.
127 *
128 * @param bool $state Enable or disable.
129 *
130 * @return void
131 */
132 public function toggle_tracking( bool $state ): void {
133 $this->usage_tracking = $state;
134 $this->save();
135 }
136 }
137