Completed
Push — add/user-tracking-option-api ( 55d15a...445566 )
by
unknown
47:20 queued 38:47
created

Jetpack_User_Event_Tracking   A

Complexity

Total Complexity 10

Size/Duplication

Total Lines 56
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 56
rs 10
c 0
b 0
f 0
wmc 10
lcom 1
cbo 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A is_enabled() 0 11 3
A has_value() 0 8 2
A is_disabled() 0 3 1
A disable() 0 4 1
A enable() 0 4 1
A set() 0 4 1
A default_value() 0 10 1
1
<?php
2
3
class Jetpack_User_Event_Tracking {
4
5
	private static $_cache = array();
6
	public static $KEY = 'jetpack_event_tracking';
7
8
	static function is_enabled( $user_id ) {
9
		if ( isset( self::$_cache[ $user_id ] ) ) {
10
			return self::$_cache[ $user_id ];
11
		}
12
		$user_tracking = get_user_meta( $user_id, self::$KEY, true );
13
		if ( ! is_numeric( $user_tracking ) ) {
14
			$user_tracking = self::default_value();
15
		}
16
		self::$_cache[ $user_id ] = (bool) $user_tracking;
17
		return (bool) $user_tracking;
18
	}
19
20
	static function has_value( $user_id ) {
21
		$user_tracking = get_user_meta( $user_id, self::$KEY, true );
22
		if ( is_numeric( $user_tracking ) ) {
23
			self::$_cache[ $user_id ] = (bool) $user_tracking;
24
			return true;
25
		}
26
		return false;
27
	}
28
29
	static function is_disabled( $user_id ) {
30
		return ! self::is_enabled( $user_id );
31
	}
32
33
	static function disable( $user_id ) {
34
		// user opted out
35
		return self::set( $user_id, 0 );
36
	}
37
38
	static function enable( $user_id ) {
39
		// user opted in
40
		return self::set( $user_id, 1 );
41
	}
42
43
	static private function set( $user_id, $value ) {
0 ignored issues
show
Coding Style introduced by
As per PSR2, the static declaration should come after the visibility declaration.
Loading history...
44
		self::$_cache[ $user_id ] = (bool) $value;
45
		return update_user_meta( $user_id, self::$KEY, $value );
46
	}
47
48
	static function default_value() {
49
		/**
50
		 * Return the default jetpack user event tracking opt out value.
51
		 *
52
		 * @since 6.0.0
53
		 *
54
		 * @param bool Default to false. (user tracking enabled)
55
		 */
56
		return apply_filters( 'jetpack_event_tracking', true );
57
	}
58
}
59