em-options.php
4.4 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
/**
* An interface for the dbem_data option stored in wp_options as a serialized array.
* This option can hold various information which can be stored in one record rather than individual records in wp_options.
* The functions in this class deal directly with that dbem_data option as if it was the wp_options table itself, and therefore
* have similarities to the get_option and update_option functions.
* @since 5.8.2.0
*
*/
class EM_Options {
/**
* Get a specific setting form the EM options array. If no value is set, an empty array is provided by default.
* @param string $option_name
* @param mixed $default the default value to return
* @param string $dataset
* @param boolean $site if set to true it'll retrieve a site option in MultiSite instead
* @return mixed
*/
public static function get( $option_name, $default = array(), $dataset = 'dbem_data', $site = false ){
$data = $site ? get_site_option($dataset) : get_option($dataset);
if( isset($data[$option_name]) ){
return $data[$option_name];
}else{
return $default;
}
}
/**
* Set a value in the EM options array. Returns result of storage, which may be false if no changes are made.
* @param string $option_name
* @param mixed $option_value
* @param string $dataset
* @param boolean $site if set to true it'll retrieve a site option in MultiSite instead
* @return boolean
*/
public static function set( $option_name, $option_value, $dataset = 'dbem_data', $site = false ){
$data = $site ? get_site_option($dataset) : get_option($dataset);
if( empty($data) ) $data = array();
$data[$option_name] = $option_value;
return $site ? update_site_option($dataset, $data) : update_option($dataset, $data);
}
/**
* Adds a value to an specific key in the EM options array, and assumes the option name is an array.
* Returns true on success or false saving failed or if no changes made.
* @param string $option_name
* @param string $option_key
* @param mixed $option_value
* @param string $dataset
* @param boolean $site
* @return boolean
*/
public static function add( $option_name, $option_key, $option_value, $dataset = 'dbem_data', $site = false ){
$data = $site ? get_site_option($dataset) : get_option($dataset);
if( empty($data[$option_name]) ){
$data[$option_name] = array( $option_key => $option_value );
}else{
$data[$option_name][$option_key] = $option_value;
}
return $site ? update_site_option($dataset, $data) : update_option($dataset, $data);
}
/**
* Removes an item from an array in the EM options array, it assumes the supplied option name is an array.
*
* @param string $option_name
* @param string $option_key
* @param string $dataset
* @param boolean $site
* @return boolean
*/
public static function remove( $option_name, $option_key, $dataset = 'dbem_data', $site = false ){
$data = $site ? get_site_option($dataset) : get_option($dataset);
if( !empty($data[$option_name][$option_key]) ){
unset($data[$option_name][$option_key]);
if( empty($data[$option_name]) ) unset($data[$option_name]);
return $site ? update_site_option($dataset, $data) : update_option($dataset, $data);
}
return false;
}
/**
* @see EM_Options::get()
* @param string $option_name
* @param mixed $default
* @param string $dataset
* @return boolean
*/
public static function site_get( $option_name, $default = array(), $dataset = 'dbem_data' ){
return self::get( $option_name, $default, $dataset, true );
}
/**
* @see EM_Options::set()
* @param string $option_name
* @param mixed $option_value
* @param string $dataset
* @return boolean
*/
public static function site_set( $option_name, $option_value, $dataset = 'dbem_data' ){
return self::set( $option_name, $option_value, $dataset, true );
}
/**
* @see EM_Options::add()
* @param string $option_name
* @param string $option_key
* @param mixed $option_value
* @param string $dataset
* @return boolean
*/
public static function site_add( $option_name, $option_key, $option_value, $dataset = 'dbem_data' ){
return self::add( $option_name, $option_key, $option_value, $dataset, true );
}
/**
* @see EM_Options::remove()
* @param string $option_name
* @param string $option_key
* @param string $dataset
* @return boolean
*/
public static function site_remove( $option_name, $option_key, $dataset = 'dbem_data' ){
return self::remove( $option_name, $option_key, $dataset, true );
}
}