wpoptions.php
1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
namespace WordfenceLS\Settings;
use WordfenceLS\Model_Settings;
class Model_WPOptions extends Model_Settings {
protected $_prefix;
public function __construct($prefix = '') {
$this->_prefix = $prefix;
}
protected function _translate_key($key) {
return strtolower(preg_replace('/[^a-z0-9]/i', '_', $key));
}
public function set($key, $value, $autoload = self::AUTOLOAD_YES, $allowOverwrite = true) {
$key = $this->_translate_key($this->_prefix . $key);
if (!$allowOverwrite) {
if (is_multisite()) {
add_network_option(null, $key, $value);
}
else {
add_option($key, $value, '', $autoload);
}
}
else {
if (is_multisite()) {
update_network_option(null, $key, $value);
}
else {
update_option($key, $value, $autoload);
}
}
}
public function set_multiple($values) {
foreach ($values as $key => $value) {
if (is_array($value)) {
$this->set($key, $value['value'], $value['autoload'], $value['allowOverwrite']);
}
else {
$this->set($key, $value);
}
}
}
public function get($key, $default = false) {
$key = $this->_translate_key($this->_prefix . $key);
if (is_multisite()) {
$value = get_network_option($key, $default);
}
else {
$value = get_option($key, $default);
}
return $value;
}
public function remove($key) {
$key = $this->_translate_key($this->_prefix . $key);
if (is_multisite()) {
delete_network_option(null, $key);
}
else {
delete_option($key);
}
}
}