PluginProbe ʕ •ᴥ•ʔ
WPML Multilingual & Multicurrency for WooCommerce / 5.5.7
WPML Multilingual & Multicurrency for WooCommerce v5.5.7
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 week 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