PluginProbe
Boxzilla – WordPress Popup Builder / 3.1.17
Boxzilla – WordPress Popup Builder v3.1.17
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.1.17, at src/licensing/class-license.php

114 lines 1.8 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 $this->option_key = $option_key;
44 }
45
46 /**
47 * @param string $name
48 * @param mixed $value
49 */
50 public function __set($name, $value) {
51 $this->load();
52 $this->data[ $name ] = $value;
53 $this->dirty = true;
54 }
55
56 /**
57 * @param string $name
58 *
59 * @return mixed
60 */
61 public function __get($name) {
62 $this->load();
63 return $this->data[ $name ];
64 }
65
66 /**
67 * @param $name
68 *
69 * @return bool
70 */
71 public function __isset( $name ) {
72 $this->load();
73 return isset( $this->data[ $name ] );
74 }
75
76 /**
77 * Load the license data from the database
78 */
79 protected function load() {
80 static $defaults = array(
81 'key' => '',
82 'activation_key' => '',
83 'activated' => false,
84 'expires_at' => ''
85 );
86
87 if( ! $this->loaded ) {
88 $data = (array) get_option( $this->option_key, array() );
89 $this->data = array_replace( $defaults, $data );
90 $this->loaded = true;
91 }
92 }
93
94 /**
95 * Reload the license data from DB
96 */
97 public function reload() {
98 $this->loaded = false;
99 $this->load();
100 }
101
102 /**
103 * Save the license in the database
104 *
105 * @return License
106 */
107 public function save() {
108 if( $this->dirty ) {
109 update_option( $this->option_key, $this->data );
110 $this->dirty = false;
111 }
112 }
113
114 }