PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.1.3
ShopBuilder – WooCommerce Builder For Elementor v2.1.3
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/DataModel.php +25 -78 3.4.22.1.3 View file →
@@ -1,13 +1,5 @@
1 1 <?php
2 -/**
3 - * DataModel class file.
4 - *
5 - * Provides a simple option storage abstraction with
6 - * source-based singleton instances and optional caching.
7 - *
8 - * @package RadiusTheme\SB\Models
9 - */
10 2
11 3 namespace RadiusTheme\SB\Models;
12 4
13 5 // Do not allow directly accessing this file.
@@ -14,91 +6,46 @@
14 6 if ( ! defined( 'ABSPATH' ) ) {
15 7 exit( 'This script cannot be accessed directly.' );
16 8 }
17 9
18 -/**
19 - * Class DataModel
20 - *
21 - * Handles grouped WordPress options using a prefixed database key.
22 - * Supports multiple data sources via singleton instances.
23 - */
24 10 class DataModel {
25 -
26 - /**
27 - * Option key used in the WordPress options table.
28 - *
29 - * @var string
30 - */
31 11 private $db_key;
32 -
33 - /**
34 - * Cached instances per data source.
35 - *
36 - * @var array<string, self>
37 - */
38 12 private static $instances = [];
39 13
40 - /**
41 - * DataModel constructor.
42 - *
43 - * Private to enforce singleton usage via source().
44 - *
45 - * @param string $source Data source identifier.
46 - */
47 - private function __construct( $source ) {
48 - $this->set_db_key( $source );
14 + private function __construct($source) {
15 + $this->set_db_key($source);
49 16 }
50 17
51 - /**
52 - * Get DataModel instance for a specific source.
53 - *
54 - * @param string $source Data source name.
55 - * @return self
56 - */
57 - public static function source( $source = 'settings' ) {
58 - if ( ! isset( self::$instances[ $source ] ) ) {
59 - self::$instances[ $source ] = new self( $source );
18 + public static function source($source = 'settings') {
19 + if (!isset(self::$instances[$source])) {
20 + self::$instances[$source] = new self($source);
60 21 }
61 22
62 - return self::$instances[ $source ];
23 + return self::$instances[$source];
63 24 }
64 25
65 - /**
66 - * Build and set the database option key.
67 - *
68 - * @param string $source Data source identifier.
69 - * @return void
70 - */
71 26 private function set_db_key( $source ) {
72 27 $this->db_key = 'rtsb_' . $source;
73 28 }
74 29
75 - /**
76 - * Retrieve an option value by key.
77 - *
78 - * @param string $key Option key.
79 - * @param mixed $default Default value if option does not exist.
80 - * @param bool $cache Whether to use global cache.
81 - * @return mixed
82 - */
83 - public function get_option( $key, $default = null, $cache = true ) {
84 - if ( $cache && isset( $GLOBALS[ $this->db_key ] ) ) {
85 - $db = $GLOBALS[ $this->db_key ];
30 + public function get_option( $key, $default = null ) {
31 + if( isset( $GLOBALS[$this->db_key] )){
32 + $db = $GLOBALS[$this->db_key];
86 33 } else {
87 - $db = get_option( $this->db_key, [] );
88 - $GLOBALS[ $this->db_key ] = $db; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
34 + $GLOBALS[$this->db_key] = get_option( $this->db_key, [] );
35 + $db = $GLOBALS[$this->db_key];
89 36 }
37 +
90 38 return $db[ $key ] ?? $default;
91 39 }
92 40
93 - /**
94 - * Update or create an option value.
95 - *
96 - * @param string $key Option key.
97 - * @param mixed $value Option value.
98 - * @return bool True on success, false on failure.
99 - */
100 41 public function set_option( $key, $value ) {
42 + //if( isset( $GLOBALS[$this->db_key] ) ){
43 + // $db = $GLOBALS[$this->db_key];
44 + //} else {
45 + // $db = get_option( $this->db_key, [] );
46 + // $GLOBALS[$this->db_key] = $db;
47 + //}
101 48 $db = get_option( $this->db_key, [] );
102 49
103 50 if ( is_object( $db ) ) {
104 51 $db = (array) $db;
@@ -112,15 +59,15 @@
112 59
113 60 return update_option( $this->db_key, $db );
114 61 }
115 62
116 - /**
117 - * Delete an option value by key.
118 - *
119 - * @param string $key Option key.
120 - * @return bool True on success, false on failure.
121 - */
122 63 public function delete_option( $key ) {
64 + //if( isset( $GLOBALS[$this->db_key] ) ){
65 + // $db = $GLOBALS[$this->db_key];
66 + //} else {
67 + // $db = get_option( $this->db_key, [] );
68 + // $GLOBALS[$this->db_key] = $db;
69 + //}
123 70 $db = get_option( $this->db_key, [] );
124 71 if ( isset( $db[ $key ] ) ) {
125 72 unset( $db[ $key ] );
126 73 }
@@ -125,5 +72,5 @@
125 72 unset( $db[ $key ] );
126 73 }
127 74 return update_option( $this->db_key, $db );
128 75 }
129 -}
76 +}