PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 5.5.1
Defender Security – Malware Scanner, Login Security & Firewall v5.5.1
6.3.0 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 All 141 releases
defender-security / src / model / setting / class-main-setting.php

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

136 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 */
75 public $uninstall_quarantine = 'keep';
76
77 /**
78 * Validation rules.
79 *
80 * @var array
81 */
82 protected $rules = array(
83 array( array( 'usage_tracking', 'high_contrast_mode' ), 'boolean' ),
84 array( array( 'uninstall_data' ), 'in', array( 'keep', 'remove' ) ),
85 array( array( 'uninstall_settings' ), 'in', array( 'preserve', 'reset' ) ),
86 );
87
88 /**
89 * After loading, this function retrieves the site's locale and determines the site's language.
90 *
91 * @return void
92 */
93 protected function after_load(): void {
94 $site_locale = is_multisite() ? get_site_option( 'WPLANG' ) : get_locale();
95
96 if ( empty( $site_locale ) || 'en_US' === $site_locale ) { // @see wp_dropdown_languages() by default empty string for English.
97 $site_language = 'English';
98 } else {
99 require_once ABSPATH . 'wp-admin/includes/translation-install.php';
100 $translations = wp_get_available_translations();
101 $site_language = isset( $translations[ $site_locale ] )
102 ? $translations[ $site_locale ]['native_name']
103 : esc_html__( 'Error detecting language', 'defender-security' );
104 }
105
106 $this->translate = $site_language;
107 }
108
109 /**
110 * Define settings labels.
111 *
112 * @return array
113 */
114 public function labels(): array {
115 return array(
116 'translate' => esc_html__( 'Translations', 'defender-security' ),
117 'usage_tracking' => esc_html__( 'Usage Tracking', 'defender-security' ),
118 'uninstall_data' => esc_html__( 'Uninstall Data', 'defender-security' ),
119 'uninstall_settings' => esc_html__( 'Uninstall Settings', 'defender-security' ),
120 'high_contrast_mode' => esc_html__( 'High Contrast Mode', 'defender-security' ),
121 );
122 }
123
124 /**
125 * Enable or disable 'Usage Tracking' option.
126 *
127 * @param bool $state Enable or disable.
128 *
129 * @return void
130 */
131 public function toggle_tracking( bool $state ): void {
132 $this->usage_tracking = $state;
133 $this->save();
134 }
135 }
136