Completed
Push — master ( 49679a...617b2a )
by Sudar
02:03
created

BundleLicense::is_valid()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 3
eloc 6
nc 3
nop 0
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php namespace EmailLog\License;
2
3
defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
4
5
/**
6
 * BundleLicense Object.
7
 * There can be only one BundleLicence for all the add-ons.
8
 *
9
 * @since 2.0.0
10
 */
11
class BundleLicense extends BaseLicense {
12
13
	protected $addon_name = 'Email Log Bundle';
14
	protected $option_name = 'el_bundle_license';
15
	protected $data;
16
17
	/**
18
	 * Activate the license and store the response.
19
	 *
20
	 * @inheritdoc
21
	 */
22
	public function activate() {
23
		$response = parent::activate();
24
		$this->store( $response );
25
	}
26
27
	/**
28
	 * Deactivate the license and clear the license data from options.
29
	 *
30
	 * @inheritdoc
31
	 */
32
	public function deactivate() {
33
		parent::deactivate();
34
		$this->clear();
35
	}
36
37
	/**
38
	 * Is the license valid?
39
	 *
40
	 * @return bool True if valid, False otherwise.
41
	 */
42
	public function is_valid() {
43
		if ( empty( $this->data ) ) {
44
			return false;
45
		}
46
47
		if ( 'valid' === $this->data->license ) {
0 ignored issues
show
Unused Code introduced by
This if statement, and the following return statement can be replaced with return 'valid' === $this->data->license;.
Loading history...
48
			return true;
49
		}
50
51
		return false;
52
	}
53
54
	/**
55
	 * Return bundle license key.
56
	 *
57
	 * @return string Bundle License key, if found.
58
	 */
59
	public function get_license_key() {
60
		if ( empty( $this->data ) ) {
61
			return $this->license_key;
62
		}
63
64
		return $this->data->bundle_license_key;
65
	}
66
67
	/**
68
	 * Get the license key of an add-on from Bundle.
69
	 *
70
	 * @param string $addon_name Add-on name.
71
	 *
72
	 * @return bool|string False if no license key is found, otherwise license key.
73
	 */
74
	public function get_addon_license_key( $addon_name ) {
75
		if ( empty( $this->data ) ) {
76
			return false;
77
		}
78
79
		if ( ! isset( $this->data->bundled_licenses->{$addon_name} ) ) {
80
			return false;
81
		}
82
83
		return $this->data->bundled_licenses->{$addon_name}->license_key;
84
	}
85
86
	/**
87
	 * Load the license data from DB option.
88
	 */
89
	public function load() {
90
		$this->data = get_option( $this->option_name, null );
91
	}
92
93
	/**
94
	 * Store License data in DB option.
95
	 *
96
	 * @access protected
97
	 *
98
	 * @param object $data License data.
99
	 */
100
	protected function store( $data ) {
101
		$this->data = $data;
102
		update_option( $this->option_name, $data );
103
	}
104
105
	/**
106
	 * Clear stored license data.
107
	 *
108
	 * @access protected
109
	 */
110
	protected function clear() {
111
		unset( $this->data );
112
		delete_option( $this->option_name );
113
	}
114
}
115