PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.1.13
ShopBuilder – WooCommerce Builder For Elementor v2.1.13
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | app/Models/Base/ListModel.php +12 -116 3.4.12.1.13 View file →
@@ -1,10 +1,5 @@
1 1 <?php
2 -/**
3 - * ListModel
4 - *
5 - * @package RadiusTheme\SB
6 - */
7 2
8 3 namespace RadiusTheme\SB\Models\Base;
9 4
10 5 defined( 'ABSPATH' ) || exit;
@@ -11,78 +6,21 @@
11 6
12 7 use RadiusTheme\SB\Helpers\Fns;
13 8 use RadiusTheme\SB\Models\DataModel;
14 9
15 -/**
16 - * ListModel
17 - */
18 10 abstract class ListModel {
19 - /**
20 - * List ID
21 - *
22 - * @var string
23 - */
11 +
24 12 protected $list_id;
25 13
26 - /**
27 - * List Title
28 - *
29 - * @var string
30 - */
31 14 protected $title;
32 -
33 - /**
34 - * List Short Title
35 - *
36 - * @var string
37 - */
38 15 protected $short_title;
39 -
40 - /**
41 - * List Description
42 - *
43 - * @var string
44 - */
45 16 protected $description;
46 -
47 - /**
48 - * List
49 - *
50 - * @var array
51 - */
52 - private $full_list = [];
53 -
54 - /**
55 - * Active List
56 - *
57 - * @var array
58 - */
59 - private $active_list = [];
60 -
61 - /**
62 - * Inactive List
63 - *
64 - * @var array
65 - */
17 + private $full_list = [];
18 + private $active_list = [];
66 19 private $inactive_list = [];
20 + private $db_options = [];
21 + protected $categories = [];
67 22
68 - /**
69 - * Options
70 - *
71 - * @var array
72 - */
73 - private $db_options = [];
74 -
75 - /**
76 - * Categories
77 - *
78 - * @var array
79 - */
80 - protected $categories = [];
81 -
82 - /**
83 - * Constructor
84 - */
85 23 public function __construct() {
86 24 $this->db_options = DataModel::source()->get_option( $this->list_id, [] );
87 25 $raw_list = apply_filters( 'rtsb/' . $this->list_id . '/list', $this->raw_list() );
88 26
@@ -88,9 +26,9 @@
88 26
89 27 if ( ! empty( $raw_list ) ) {
90 28 foreach ( $raw_list as $name => $item ) {
91 29
92 - if ( ! empty( $item['package'] ) && 'pro-disabled' === $item['package'] ) {
30 + if ( ! empty( $item['package'] ) && $item['package'] === 'pro-disabled' ) {
93 31 $item['fields'] = [];
94 32 $item['active'] = false;
95 33 $this->full_list[ $name ] = $item;
96 34 $this->inactive_list[ $name ] = $item;
@@ -99,9 +37,9 @@
99 37
100 38 if ( ! isset( $this->db_options[ $name ]['active'] ) && ! empty( $item['active'] ) ) {
101 39 $item['active'] = 'on';
102 40 } else {
103 - $item['active'] = isset( $this->db_options[ $name ]['active'] ) && 'on' === $this->db_options[ $name ]['active'] ? 'on' : '';
41 + $item['active'] = isset( $this->db_options[ $name ]['active'] ) && $this->db_options[ $name ]['active'] === 'on' ? 'on' : '';
104 42 }
105 43
106 44 if ( ! empty( $item['fields'] ) ) {
107 45 foreach ( $item['fields'] as $field_key => $field ) {
@@ -108,10 +46,8 @@
108 46 $the_value = $this->db_options[ $name ][ $field_key ] ?? ( $item['fields'][ $field_key ]['value'] ?? '' );
109 47 if ( 'repeaters' === $field['type'] && empty( $the_value ) && ! empty( $field['defaults'] ) ) {
110 48 $repeater_defaults = array_values( $field['defaults'] );
111 49 $the_value = wp_json_encode( $repeater_defaults );
112 - } elseif ( 'repeaters' === $field['type'] && ! empty( $the_value ) ) {
113 - $the_value = json_decode( $the_value );
114 50 }
115 51 $sanitized_value = Fns::stripslashes_value( $the_value );
116 52 $item['fields'][ $field_key ]['value'] = $sanitized_value;
117 53 }
@@ -132,32 +68,11 @@
132 68 */
133 69 protected function pro_package() {
134 70 return rtsb()->has_pro() ? 'pro' : 'pro-disabled';
135 71 }
136 -
137 72 /**
138 - * @return string Pro Package
139 - */
140 - protected function pro_version_checker() {
141 - $has_pro = rtsb()->has_pro();
142 - $pro_ver = defined( 'RTSBPRO_VERSION' ) ? RTSBPRO_VERSION : 0;
143 -
144 - if ( ! $has_pro ) {
145 - return 'free';
146 - }
147 -
148 - if ( version_compare( $pro_ver, '2.0.0', '>=' ) ) {
149 - return 'pass';
150 - }
151 -
152 - return 'fail';
153 - }
154 -
155 - /**
156 - * Is widget active
73 + * @param $key
157 74 *
158 - * @param string $key Key.
159 - *
160 75 * @return bool
161 76 */
162 77 public function is_widget_active( $key ) {
163 78 return isset( $this->active_list[ $key ] );
@@ -163,17 +78,15 @@
163 78 return isset( $this->active_list[ $key ] );
164 79 }
165 80
166 81 /**
167 - * Get list
82 + * @param mixed $list true | anything
83 + * @param string $filter_type full|active|inactive
168 84 *
169 - * @param bool $list List.
170 - * @param string $filter_type Filter type.
171 - *
172 85 * @return mixed
173 86 */
174 87 public function get_list( $list = true, $filter_type = 'full' ) {
175 - if ( true !== $list && isset( $this->full_list[ $list ] ) ) {
88 + if ( $list !== true && isset( $this->full_list[ $list ] ) ) {
176 89 return $this->full_list[ $list ];
177 90 }
178 91
179 92 return $this->{$filter_type . '_list'};
@@ -178,13 +91,8 @@
178 91
179 92 return $this->{$filter_type . '_list'};
180 93 }
181 94
182 - /**
183 - * Get section
184 - *
185 - * @return array
186 - */
187 95 public function get_section() {
188 96 return [
189 97 'title' => $this->title,
190 98 'short_title' => ! empty( $this->short_title ) ? $this->short_title : $this->title,
@@ -195,12 +103,10 @@
195 103 ];
196 104 }
197 105
198 106 /**
199 - * Get fields
107 + * @param $key
200 108 *
201 - * @param string $key Key.
202 - *
203 109 * @return array|mixed
204 110 */
205 111 public function get_fields( $key ) {
206 112 return isset( $this->full_list[ $key ]['fields'] ) ? $this->full_list[ $key ]['fields'] : [];
@@ -205,20 +111,10 @@
205 111 public function get_fields( $key ) {
206 112 return isset( $this->full_list[ $key ]['fields'] ) ? $this->full_list[ $key ]['fields'] : [];
207 113 }
208 114
209 - /**
210 - * Get data
211 - *
212 - * @return array
213 - */
214 115 public function get_data() {
215 116 return $this->db_options;
216 117 }
217 118
218 - /**
219 - * Get raw list
220 - *
221 - * @return array
222 - */
223 119 abstract protected function raw_list();
224 120 }