PluginProbe
Boxzilla – WordPress Popup Builder / 3.4.4
Boxzilla – WordPress Popup Builder v3.4.4
3.4.11 3.4.10 3.4.9 3.4.3 3.4.4 3.4.5 3.4.6 3.4.7 3.4.8 trunk 3.0 3.0.1 3.0.2 3.0.3 3.1 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 All 72 releases
boxzilla / src / licensing / class-license.php

class-license.php in Boxzilla – WordPress Popup Builder 3.4.4, at src/licensing/class-license.php

125 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Boxzilla\Licensing;
4
5 /**
6 * Class License
7 *
8 *
9 * @property string $key
10 * @property string $site
11 * @property string $activation_key
12 * @property boolean $activated
13 * @property string $expires_at
14 *
15 * @package Boxzilla\Licensing
16 */
17 class License
18 {
19 /**
20 * @var string The name of the option that holds the License data
21 */
22 protected $option_key = '';
23
24 /**
25 * @var bool Loaded?
26 */
27 protected $loaded = false;
28
29 /**
30 * @var bool Any changes?
31 */
32 protected $dirty = false;
33
34 /**
35 * @var array
36 */
37 protected $data;
38
39 /**
40 * @param string $option_key
41 */
42 public function __construct($option_key)
43 {
44 $this->option_key = $option_key;
45 }
46
47 /**
48 * @param string $name
49 * @param mixed $value
50 */
51 public function __set($name, $value)
52 {
53 $this->load();
54 $this->data[ $name ] = $value;
55 $this->dirty = true;
56 }
57
58 /**
59 * @param string $name
60 *
61 * @return mixed
62 */
63 public function __get($name)
64 {
65 $this->load();
66 return $this->data[ $name ];
67 }
68
69 /**
70 * @param $name
71 *
72 * @return bool
73 */
74 public function __isset($name)
75 {
76 $this->load();
77 return isset($this->data[ $name ]);
78 }
79
80 /**
81 * Load the license data from the database
82 */
83 protected function load()
84 {
85 if ($this->loaded) {
86 return;
87 }
88
89 $defaults = [
90 'key' => '',
91 'activation_key' => '',
92 'activated' => false,
93 'expires_at' => '',
94 ];
95
96 $data = (array) get_option($this->option_key, []);
97 $this->data = array_replace($defaults, $data);
98 $this->loaded = true;
99 }
100
101 /**
102 * Reload the license data from DB
103 */
104 public function reload()
105 {
106 $this->loaded = false;
107 $this->load();
108 }
109
110 /**
111 * Save the license in the database
112 *
113 * @return License
114 */
115 public function save()
116 {
117 if (! $this->dirty) {
118 return;
119 }
120
121 update_option($this->option_key, $this->data);
122 $this->dirty = false;
123 }
124 }
125