PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / trunk
WPML Multilingual & Multicurrency for WooCommerce vtrunk
5.5.7 5.3.8 5.3.9 5.4.3 5.4.4 5.4.5 5.5.1 5.5.1.1 5.5.2.2 5.5.2.3 5.5.3 5.5.3.1 5.5.4 5.5.5 5.5.6 trunk 0.9 1.0 1.1 1.2 1.3 1.4 1.5 2.0 2.2 2.3 2.3.1 2.3.2 3.0 3.0.1 3.1 3.2 3.2.1 3.2.2 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.4 3.4.1 3.4.2 3.4.3 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.6 3.6.1 3.6.10 3.6.11 3.6.2 3.6.3 3.6.4 3.6.5 3.6.5.1 3.6.6 3.6.7 3.6.8 3.6.9 3.7 3.7.1 3.7.10 3.7.11 3.7.12 3.7.13 3.7.14 3.7.15 3.7.16 3.7.2 3.7.3 3.7.4 3.7.5 3.7.6 3.7.7 3.7.8 3.7.9 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.9.0 3.9.1 3.9.1.1 3.9.2 3.9.3 3.9.4 3.9.5 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.10.0 4.10.1 4.10.2 4.10.3 4.10.4 4.11.2 4.11.3.2 4.11.5 4.11.6 4.12.1 4.12.4 4.12.5 4.12.6 4.2.0 4.2.0.1 4.2.1 4.2.1.1 4.2.10 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.7.1 4.2.8 4.2.8.1 4.2.9 4.3.0 4.3.1 4.3.2 4.3.2.1 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0 4.4.1 4.4.2 4.4.2.1 4.5.0 4.6.0 4.6.1 4.6.2 4.6.2.1 4.6.3 4.6.5 4.6.6 4.6.7 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.9.0 4.9.1 5.0.1 5.0.2 5.1.1 5.1.2 5.1.3 5.2.0 5.2.1 5.3.2 5.3.3.1 5.3.4 5.3.5 5.3.6 5.3.7
woocommerce-multilingual / classes / templates / php / model.php
woocommerce-multilingual / classes / templates / php Last commit date
model.php 1 month ago
model.php
62 lines
1 <?php
2
3 namespace WPML\Templates\PHP;
4
5 class Model {
6 private $attributes = [];
7
8 public function __construct( $data = [] ) {
9 foreach ( $data as $key => $value ) {
10 $this->__set( $key, $value );
11 }
12 }
13
14 public function __get( $name ) {
15 if ( ! array_key_exists( $name, $this->attributes ) ) {
16 $this->attributes[ $name ] = new Model();
17 }
18
19 return $this->attributes[ $name ];
20 }
21
22 public function __set( $name, $value ) {
23 if ( is_object( $value ) ) {
24 $value = get_object_vars( $value );
25 }
26 if ( is_array( $value ) ) {
27 $is_assoc = count( array_filter( array_keys( $value ), 'is_string' ) ) > 0;
28 if($is_assoc) {
29 $value = new Model( $value );
30 }
31 }
32 $this->attributes[ $name ] = $value;
33 }
34
35 public function hasValue( $name ) {
36 return ! $this->isNull( $name ) && ! $this->isEmpty( $name );
37 }
38
39 public function isNull( $name ) {
40 return $this->__get( $name ) === null;
41 }
42
43 public function isEmpty( $name ) {
44 return $this->__get( $name ) === '' || ( ( $this->__get( $name ) instanceof Model ) && ! $this->__get( $name )->getAttributes() );
45 }
46
47 public function getAttributes() {
48 return $this->attributes;
49 }
50
51 public function __toString() {
52 if ( count( $this->attributes ) === 0 ) {
53 return '';
54 }
55 if ( count( $this->attributes ) === 1 ) {
56 return array_values( $this->attributes )[0];
57 }
58
59 return wp_json_encode( $this->attributes );
60 }
61 }
62