PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 1.0.0
ShopBuilder – WooCommerce Builder For Elementor v1.0.0
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 +106 -122 2.2.21.0.0 View file →
@@ -1,122 +1,106 @@
1 -<?php
2 -
3 -namespace RadiusTheme\SB\Models\Base;
4 -
5 -defined( 'ABSPATH' ) || exit;
6 -
7 -use RadiusTheme\SB\Helpers\Fns;
8 -use RadiusTheme\SB\Models\DataModel;
9 -
10 -abstract class ListModel {
11 -
12 - protected $list_id;
13 -
14 - protected $title;
15 - protected $short_title;
16 - protected $description;
17 - private $full_list = [];
18 - private $active_list = [];
19 - private $inactive_list = [];
20 - private $db_options = [];
21 - protected $categories = [];
22 -
23 - public function __construct() {
24 - $this->db_options = DataModel::source()->get_option( $this->list_id, [] );
25 - $raw_list = apply_filters( 'rtsb/' . $this->list_id . '/list', $this->raw_list() );
26 -
27 - if ( ! empty( $raw_list ) ) {
28 - foreach ( $raw_list as $name => $item ) {
29 -
30 - if ( ! empty( $item['package'] ) && $item['package'] === 'pro-disabled' ) {
31 - $item['fields'] = [];
32 - $item['active'] = false;
33 - $this->full_list[ $name ] = $item;
34 - $this->inactive_list[ $name ] = $item;
35 - continue;
36 - }
37 -
38 - if ( ! isset( $this->db_options[ $name ]['active'] ) && ! empty( $item['active'] ) ) {
39 - $item['active'] = 'on';
40 - } else {
41 - $item['active'] = isset( $this->db_options[ $name ]['active'] ) && $this->db_options[ $name ]['active'] === 'on' ? 'on' : '';
42 - }
43 -
44 - if ( ! empty( $item['fields'] ) ) {
45 - foreach ( $item['fields'] as $field_key => $field ) {
46 - $the_value = $this->db_options[ $name ][ $field_key ] ?? ( $item['fields'][ $field_key ]['value'] ?? '' );
47 - if ( 'repeaters' === $field['type'] && empty( $the_value ) && ! empty( $field['defaults'] ) ) {
48 - $repeater_defaults = array_values( $field['defaults'] );
49 - $the_value = wp_json_encode( $repeater_defaults );
50 - } elseif ( 'repeaters' === $field['type'] && ! empty( $the_value ) ) {
51 - $the_value = json_decode( $the_value );
52 - }
53 - $sanitized_value = Fns::stripslashes_value( $the_value );
54 - $item['fields'][ $field_key ]['value'] = $sanitized_value;
55 - }
56 - }
57 - $this->full_list[ $name ] = $item;
58 -
59 - if ( 'on' === $item['active'] ) {
60 - $this->active_list[ $name ] = $item;
61 - } else {
62 - $this->inactive_list[ $name ] = $item;
63 - }
64 - }
65 - }
66 - }
67 -
68 - /**
69 - * @return string Pro Package
70 - */
71 - protected function pro_package() {
72 - return rtsb()->has_pro() ? 'pro' : 'pro-disabled';
73 - }
74 - /**
75 - * @param $key
76 - *
77 - * @return bool
78 - */
79 - public function is_widget_active( $key ) {
80 - return isset( $this->active_list[ $key ] );
81 - }
82 -
83 - /**
84 - * @param mixed $list true | anything
85 - * @param string $filter_type full|active|inactive
86 - *
87 - * @return mixed
88 - */
89 - public function get_list( $list = true, $filter_type = 'full' ) {
90 - if ( $list !== true && isset( $this->full_list[ $list ] ) ) {
91 - return $this->full_list[ $list ];
92 - }
93 -
94 - return $this->{$filter_type . '_list'};
95 - }
96 -
97 - public function get_section() {
98 - return [
99 - 'title' => $this->title,
100 - 'short_title' => ! empty( $this->short_title ) ? $this->short_title : $this->title,
101 - 'description' => $this->description,
102 - 'list' => $this->get_list(),
103 - 'id' => $this->list_id,
104 - 'categories' => $this->categories,
105 - ];
106 - }
107 -
108 - /**
109 - * @param $key
110 - *
111 - * @return array|mixed
112 - */
113 - public function get_fields( $key ) {
114 - return isset( $this->full_list[ $key ]['fields'] ) ? $this->full_list[ $key ]['fields'] : [];
115 - }
116 -
117 - public function get_data() {
118 - return $this->db_options;
119 - }
120 -
121 - abstract protected function raw_list();
122 -}
1 +<?php
2 +
3 +namespace RadiusTheme\SB\Models\Base;
4 +
5 +defined( 'ABSPATH' ) || exit;
6 +
7 +use RadiusTheme\SB\Models\DataModel;
8 +
9 +abstract class ListModel {
10 +
11 + protected $list_id;
12 +
13 + protected $title;
14 + protected $short_title;
15 + protected $description;
16 + private $full_list = [];
17 + private $active_list = [];
18 + private $inactive_list = [];
19 + private $db_options = [];
20 + protected $categories = [];
21 +
22 + public function __construct() {
23 + $this->db_options = DataModel::source()->get_option( $this->list_id, [] );
24 + $raw_list = apply_filters( 'rtsb/' . $this->list_id . '/list', $this->raw_list() );
25 + if ( ! empty( $raw_list ) ) {
26 + foreach ( $raw_list as $name => $item ) {
27 +
28 + if ( ! empty( $item['package'] ) && $item['package'] === 'pro-disabled' ) {
29 + $item['fields'] = [];
30 + $item['active'] = false;
31 + $this->full_list[ $name ] = $item;
32 + $this->inactive_list[ $name ] = $item;
33 + continue;
34 + }
35 +
36 + if ( ! isset( $this->db_options[ $name ]['active'] ) && ! empty( $item['active'] ) ) {
37 + $item['active'] = 'on';
38 + } else {
39 + $item['active'] = isset( $this->db_options[ $name ]['active'] ) && $this->db_options[ $name ]['active'] === 'on' ? 'on' : '';
40 + }
41 +
42 + if ( ! empty( $item['fields'] ) ) {
43 + foreach ( $item['fields'] as $field_key => $field ) {
44 + $item['fields'][ $field_key ]['value'] = isset( $this->db_options[ $name ][ $field_key ] ) ? $this->db_options[ $name ][ $field_key ] : ( isset( $item['fields'][ $field_key ]['value'] ) ? $item['fields'][ $field_key ]['value'] : '' );
45 + }
46 + }
47 + $this->full_list[ $name ] = $item;
48 +
49 + if ( 'on' === $item['active'] ) {
50 + $this->active_list[ $name ] = $item;
51 + } else {
52 + $this->inactive_list[ $name ] = $item;
53 + }
54 + }
55 + }
56 + }
57 +
58 + /**
59 + * @param $key
60 + *
61 + * @return bool
62 + */
63 + public function is_widget_active( $key ) {
64 + return isset( $this->active_list[ $key ] );
65 + }
66 +
67 + /**
68 + * @param mixed $list true | anything
69 + * @param string $filter_type full|active|inactive
70 + *
71 + * @return mixed
72 + */
73 + public function get_list( $list = true, $filter_type = 'full' ) { //
74 + if ( $list !== true && isset( $this->full_list[ $list ] ) ) {
75 + return $this->full_list[ $list ];
76 + }
77 +
78 + return $this->{$filter_type . '_list'};
79 + }
80 +
81 + public function get_section() {
82 + return [
83 + 'title' => $this->title,
84 + 'short_title' => ! empty( $this->short_title ) ? $this->short_title : $this->title,
85 + 'description' => $this->description,
86 + 'list' => $this->get_list(),
87 + 'id' => $this->list_id,
88 + 'categories' => $this->categories,
89 + ];
90 + }
91 +
92 + /**
93 + * @param $key
94 + *
95 + * @return array|mixed
96 + */
97 + public function get_fields( $key ) {
98 + return isset( $this->full_list[ $key ]['fields'] ) ? $this->full_list[ $key ]['fields'] : [];
99 + }
100 +
101 + public function get_data() {
102 + return $this->db_options;
103 + }
104 +
105 + abstract protected function raw_list();
106 +}