PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 12.9.5
Jetpack – WP Security, Backup, Speed, & Growth v12.9.5
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-stats / src / class-options.php
jetpack / jetpack_vendor / automattic / jetpack-stats / src Last commit date
class-main.php 3 years ago class-options.php 3 years ago class-tracking-pixel.php 3 years ago class-wpcom-stats.php 2 years ago class-xmlrpc-provider.php 3 years ago
class-options.php
172 lines
1 <?php
2 /**
3 * Stats Options
4 *
5 * @package automattic/jetpack-stats
6 */
7
8 namespace Automattic\Jetpack\Stats;
9
10 use Jetpack_Options;
11
12 /**
13 * Stats Options class.
14 */
15 class Options {
16
17 /**
18 * Option name.
19 *
20 * @var string $option_name The 'stats' option name
21 */
22 const OPTION_NAME = 'stats_options';
23
24 /**
25 * Stats Options.
26 *
27 * @var array $options An array of associated Stats options (default empty)
28 */
29 protected static $options = array();
30
31 /**
32 * Stats Get Options.
33 *
34 * @return array.
35 */
36 public static function get_options() {
37 // Make sure we only get options from the database once per connection.
38 if ( array() !== self::$options ) {
39 return self::$options;
40 }
41
42 self::$options = get_option( self::OPTION_NAME, array() );
43 self::$options = array_merge( self::get_defaults(), self::$options );
44
45 if ( self::$options['version'] < Main::STATS_VERSION ) {
46 self::upgrade_options( self::$options );
47 }
48
49 return self::$options;
50 }
51
52 /**
53 * Get Stats Option..
54 *
55 * @param string $option Option name.
56 * @return mixed|null.
57 */
58 public static function get_option( $option ) {
59 if ( 'blog_id' === $option ) {
60 return Jetpack_Options::get_option( 'id' );
61 }
62
63 $options = self::get_options();
64
65 if ( isset( $options[ $option ] ) ) {
66 return $options[ $option ];
67 }
68
69 return null;
70 }
71
72 /**
73 * Stats Set Option.
74 *
75 * @param string $option The option name.
76 * @param mixed $value The option Value.
77 * @return bool.
78 */
79 public static function set_option( $option, $value ) {
80 $options = self::get_options();
81
82 $options[ $option ] = $value;
83
84 return self::set_options( $options );
85 }
86
87 /**
88 * Stats Set Options.
89 *
90 * @access public
91 * @param array $options Options.
92 * @return bool
93 */
94 public static function set_options( $options ) {
95 if ( ! is_array( $options ) ) {
96 return false;
97 }
98
99 $defaults = self::get_defaults();
100 $stored_options = get_option( self::OPTION_NAME, array() );
101 $all_options = array_merge( $defaults, $stored_options );
102 $options = array_merge( $all_options, $options );
103
104 $allowed_options = array_keys( $defaults );
105 foreach ( $options as $option_name => $option_value ) {
106 if ( ! in_array( $option_name, $allowed_options, true ) ) {
107 unset( $options[ $option_name ] );
108 }
109 }
110
111 $options['blog_id'] = Jetpack_Options::get_option( 'id' );
112 $options['version'] = Main::STATS_VERSION;
113
114 $success = update_option( self::OPTION_NAME, $options );
115
116 if ( true === $success ) {
117 self::$options = $options;
118 }
119
120 return $success;
121 }
122
123 /**
124 * Stats Upgrade Options.
125 *
126 * Ideally this should be a protected method but keeping it public
127 * to maintain backwards compatibility with stats_upgrade_options.
128 *
129 * @access public
130 * @param array $options The stats options.
131 * @return array|bool
132 */
133 public static function upgrade_options( $options ) {
134 if ( isset( $options['reg_users'] ) ) {
135 if ( ! function_exists( 'get_editable_roles' ) ) {
136 require_once ABSPATH . 'wp-admin/includes/user.php';
137 }
138 if ( $options['reg_users'] ) {
139 $options['count_roles'] = array_keys( get_editable_roles() );
140 }
141 unset( $options['reg_users'] );
142 }
143
144 if ( false === self::set_options( $options ) ) {
145 return false;
146 }
147
148 return self::$options;
149 }
150
151 /**
152 * Default Stats related options.
153 *
154 * @return array
155 */
156 protected static function get_defaults() {
157 return array(
158 'admin_bar' => true,
159 'roles' => array( 'administrator' ),
160 'count_roles' => array(),
161 'do_not_track' => true, // @todo
162 'blog_id' => Jetpack_Options::get_option( 'id' ),
163 'version' => Main::STATS_VERSION,
164 'collapse_nudges' => false,
165 'enable_odyssey_stats' => true,
166 'odyssey_stats_changed_at' => 0,
167 'notices' => array(),
168 'views' => 0,
169 );
170 }
171 }
172