PluginProbe ʕ •ᴥ•ʔ
Code Manager / 1.0.28
Code Manager v1.0.28
1.0.47 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.2 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.3 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.4 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9
code-manager / freemius / includes / entities / class-fs-entity.php
code-manager / freemius / includes / entities Last commit date
class-fs-affiliate-terms.php 2 years ago class-fs-affiliate.php 2 years ago class-fs-billing.php 2 years ago class-fs-entity.php 2 years ago class-fs-payment.php 2 years ago class-fs-plugin-info.php 2 years ago class-fs-plugin-license.php 2 years ago class-fs-plugin-plan.php 2 years ago class-fs-plugin-tag.php 2 years ago class-fs-plugin.php 2 years ago class-fs-pricing.php 2 years ago class-fs-scope-entity.php 2 years ago class-fs-site.php 2 years ago class-fs-subscription.php 2 years ago class-fs-user.php 2 years ago index.php 2 years ago
class-fs-entity.php
159 lines
1 <?php
2 /**
3 * @package Freemius
4 * @copyright Copyright (c) 2015, Freemius, Inc.
5 * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6 * @since 1.0.3
7 */
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit;
11 }
12
13 /**
14 * Get object's public variables.
15 *
16 * @author Vova Feldman (@svovaf)
17 * @since 1.0.0
18 *
19 * @param object $object
20 *
21 * @return array
22 */
23 function fs_get_object_public_vars( $object ) {
24 return get_object_vars( $object );
25 }
26
27 class FS_Entity {
28 /**
29 * @var number
30 */
31 public $id;
32 /**
33 * @var string Datetime value in 'YYYY-MM-DD HH:MM:SS' format.
34 */
35 public $updated;
36 /**
37 * @var string Datetime value in 'YYYY-MM-DD HH:MM:SS' format.
38 */
39 public $created;
40
41 /**
42 * @param bool|object $entity
43 */
44 function __construct( $entity = false ) {
45 if ( ! ( $entity instanceof stdClass ) && ! ( $entity instanceof FS_Entity ) ) {
46 return;
47 }
48
49 $props = fs_get_object_public_vars( $this );
50
51 foreach ( $props as $key => $def_value ) {
52 $this->{$key} = isset( $entity->{$key} ) ?
53 $entity->{$key} :
54 $def_value;
55 }
56 }
57
58 static function get_type() {
59 return 'type';
60 }
61
62 /**
63 * @author Vova Feldman (@svovaf)
64 * @since 1.0.6
65 *
66 * @param FS_Entity $entity1
67 * @param FS_Entity $entity2
68 *
69 * @return bool
70 */
71 static function equals( $entity1, $entity2 ) {
72 if ( is_null( $entity1 ) && is_null( $entity2 ) ) {
73 return true;
74 } else if ( is_object( $entity1 ) && is_object( $entity2 ) ) {
75 return ( $entity1->id == $entity2->id );
76 } else if ( is_object( $entity1 ) ) {
77 return is_null( $entity1->id );
78 } else {
79 return is_null( $entity2->id );
80 }
81 }
82
83 private $_is_updated = false;
84
85 /**
86 * Update object property.
87 *
88 * @author Vova Feldman (@svovaf)
89 * @since 1.0.9
90 *
91 * @param string|array[string]mixed $key
92 * @param string|bool $val
93 *
94 * @return bool
95 */
96 function update( $key, $val = false ) {
97 if ( ! is_array( $key ) ) {
98 $key = array( $key => $val );
99 }
100
101 $is_updated = false;
102
103 foreach ( $key as $k => $v ) {
104 if ( $this->{$k} === $v ) {
105 continue;
106 }
107
108 if ( ( is_string( $this->{$k} ) && is_numeric( $v ) ||
109 ( is_numeric( $this->{$k} ) && is_string( $v ) ) ) &&
110 $this->{$k} == $v
111 ) {
112 continue;
113 }
114
115 // Update value.
116 $this->{$k} = $v;
117
118 $is_updated = true;
119 }
120
121 $this->_is_updated = $is_updated;
122
123 return $is_updated;
124 }
125
126 /**
127 * Checks if entity was updated.
128 *
129 * @author Vova Feldman (@svovaf)
130 * @since 1.0.9
131 *
132 * @return bool
133 */
134 function is_updated() {
135 return $this->_is_updated;
136 }
137
138 /**
139 * @param $id
140 *
141 * @author Vova Feldman (@svovaf)
142 * @since 1.1.2
143 *
144 * @return bool
145 */
146 static function is_valid_id($id){
147 return is_numeric($id);
148 }
149
150 /**
151 * @author Leo Fajardo (@leorw)
152 * @since 2.3.1
153 *
154 * @return string
155 */
156 public static function get_class_name() {
157 return get_called_class();
158 }
159 }