PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 1.1.1
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v1.1.1
4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 4.3.1 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 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.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 trunk 0.1.2-beta 0.1.3-beta 0.1.4-beta 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.5.0 1.5.1 1.6.0 1.6.1 1.7.0 1.8.0 1.8.1 1.9.0
shopengine / base / list-model.php
shopengine / base Last commit date
api.php 5 years ago common.php 4 years ago cpt.php 5 years ago list-model.php 4 years ago widget-config.php 4 years ago widget.php 4 years ago
list-model.php
61 lines
1 <?php
2
3 namespace ShopEngine\Base;
4
5 defined('ABSPATH') || exit;
6
7 use \ShopEngine\Core\Register\Model;
8
9 abstract class List_Model {
10
11 private $full_list = [];
12 private $active_list = [];
13 private $inactive_list = [];
14 protected $list_type;
15 protected $generate_base_class = false;
16
17 public function __construct(){
18
19 $saved_list = Model::source('settings')->get_option($this->list_type, []);
20 $raw_list = apply_filters('shopengine/'.$this->list_type.'/list', $this->raw_list());
21
22 foreach($raw_list as $name => $item){
23 $item['status'] = (isset($saved_list[$name]['status']) && $saved_list[$name]['status'] == 'inactive' ? 'inactive' : 'active');
24
25 if($this->generate_base_class == true){
26 if(!isset($item['base_class'])){
27 $item['base_class'] = '\Elementor\ShopEngine_' . \ShopEngine\Utils\Helper::make_classname($name);
28 }
29
30 if(!isset($item['config_class'])){
31 $item['config_class'] = $item['base_class'] . '_Config';
32 }
33 }
34
35 if(!isset($item['path'])){
36 $item['path'] = \ShopEngine::{rtrim($this->list_type, 's') . '_dir'}() . $name . '/';
37 }
38
39 $this->full_list[$name] = $item;
40
41 if($item['status'] == 'active'){
42 $this->active_list[$name] = $item;
43 }else{
44 $this->inactive_list[$name] = $item;
45 }
46 }
47 }
48
49
50
51 public function get_list($list = true, $filter_type = 'full') { // full|active|inactive
52 if($list !== true && isset($this->full_list[$list])){
53 return $this->full_list[$list];
54 }
55
56 return $this->{$filter_type . '_list'};
57 }
58
59
60 abstract protected function raw_list();
61 }