PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.14
Tutor LMS – eLearning and online course solution v3.9.14
3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 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 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / models / OrderMetaModel.php
tutor / models Last commit date
BaseModel.php 9 months ago BillingModel.php 1 year ago CartItemModel.php 9 months ago CartModel.php 5 months ago CouponModel.php 4 months ago CourseModel.php 3 months ago LessonModel.php 9 months ago OrderActivitiesModel.php 1 year ago OrderItemMetaModel.php 9 months ago OrderItemModel.php 9 months ago OrderMetaModel.php 1 year ago OrderModel.php 2 months ago QuizModel.php 3 months ago UserModel.php 1 year ago WithdrawModel.php 3 weeks ago
OrderMetaModel.php
224 lines
1 <?php
2 /**
3 * OrderMeta Model
4 *
5 * @package Tutor\Models
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 3.0.0
9 */
10
11 namespace Tutor\Models;
12
13 use Tutor\Helpers\QueryHelper;
14
15 /**
16 * OrderMetaModel Class
17 *
18 * @since 3.0.0
19 */
20 class OrderMetaModel {
21 /**
22 * Table name.
23 *
24 * @since 3.0.0
25 *
26 * @var string
27 */
28 private $table_name = 'tutor_ordermeta';
29
30 /**
31 * Constructor
32 *
33 * @since 3.0.0
34 */
35 public function __construct() {
36 global $wpdb;
37 $this->table_name = $wpdb->prefix . $this->table_name;
38 }
39
40 /**
41 * Add meta
42 *
43 * @since 3.0.0
44 *
45 * @param int $order_id order id.
46 * @param string $meta_key meta key.
47 * @param mixed $meta_value meta value.
48 *
49 * @return int added meta id.
50 */
51 public static function add_meta( $order_id, $meta_key, $meta_value ) {
52 $self = new self();
53
54 $current_time = current_time( 'mysql', true );
55 $current_user_id = get_current_user_id();
56
57 return QueryHelper::insert(
58 $self->table_name,
59 array(
60 'order_id' => $order_id,
61 'meta_key' => $meta_key,
62 'meta_value' => maybe_serialize( $meta_value ),
63 'created_at_gmt' => $current_time,
64 'created_by' => $current_user_id,
65 'updated_at_gmt' => $current_time,
66 'updated_by' => $current_user_id,
67 )
68 );
69 }
70
71 /**
72 * Update meta.
73 * If meta key does not exist it will add new meta otherwise update the meta value.
74 *
75 * @param int $order_id order id.
76 * @param string $meta_key meta key.
77 * @param mixed $meta_value meta value.
78 *
79 * @return int|bool Meta ID if the key didn't exist, true on successful update, false on failure.
80 */
81 public static function update_meta( $order_id, $meta_key, $meta_value ) {
82 $self = new self();
83
84 if ( self::get_meta( $order_id, $meta_key ) ) {
85 $current_time = current_time( 'mysql', true );
86 $current_user_id = get_current_user_id();
87
88 return QueryHelper::update(
89 $self->table_name,
90 array(
91 'meta_value' => maybe_serialize( $meta_value ),
92 'updated_at_gmt' => $current_time,
93 'updated_by' => $current_user_id,
94 ),
95 array(
96 'order_id' => $order_id,
97 'meta_key' => $meta_key,
98 )
99 );
100 } else {
101 return self::add_meta( $order_id, $meta_key, $meta_value );
102 }
103 }
104
105 /**
106 * Get a meta record by order id and meta key.
107 *
108 * @param int $order_id order id.
109 * @param string $meta_key meta key.
110 *
111 * @return object|null Meta object if the key exists, null otherwise.
112 *
113 * @since 3.0.0
114 */
115 public static function get_meta( $order_id, $meta_key ) {
116 $self = new self();
117 $result = QueryHelper::get_row(
118 $self->table_name,
119 array(
120 'order_id' => $order_id,
121 'meta_key' => $meta_key,
122 ),
123 'id'
124 );
125
126 return $result;
127 }
128
129 /**
130 * Get all meta record of an order.
131 *
132 * @since 3.0.0
133 *
134 * @param int $order_id order id.
135 *
136 * @return array
137 */
138 public static function get_all_meta( $order_id ) {
139 $self = new self();
140 $result = QueryHelper::get_all(
141 $self->table_name,
142 array(
143 'order_id' => $order_id,
144 ),
145 '*',
146 -1
147 );
148
149 return $result;
150 }
151
152 /**
153 * Get a meta record.
154 *
155 * @since 3.0.0
156 *
157 * @param array $where where.
158 *
159 * @return object|null
160 */
161 public static function get_row( $where = array() ) {
162 $self = new self();
163 $result = QueryHelper::get_row(
164 $self->table_name,
165 $where,
166 'id'
167 );
168
169 return $result;
170 }
171
172 /**
173 * Get all order meta based on clauses.
174 *
175 * @since 3.0.0
176 *
177 * @param array $where where.
178 * @param string $order_by order by.
179 * @param string $order order type.
180 * @param integer $limit limit.
181 *
182 * @return array
183 */
184 public static function get_all( $where = array(), $order_by = 'id', $order = 'ASC', $limit = -1 ) {
185 $self = new self();
186 $result = QueryHelper::get_all(
187 $self->table_name,
188 $where,
189 $order_by,
190 $limit,
191 $order
192 );
193
194 return $result;
195 }
196
197 /**
198 * Get order meta value.
199 *
200 * @param int $order_id order id.
201 * @param string $meta_key meta key.
202 * @param bool $single single meta value.
203 *
204 * @return mixed return array of values if $single is false otherwise single value.
205 * Empty string for invalid order id or meta key.
206 */
207 public static function get_meta_value( $order_id, $meta_key, $single = false ) {
208 $where = array(
209 'order_id' => $order_id,
210 'meta_key' => $meta_key,
211 );
212
213 $result = $single ? self::get_row( $where ) : self::get_all( $where );
214 if ( ! $result ) {
215 return '';
216 }
217
218 return $single
219 ? maybe_unserialize( $result->meta_value )
220 : array_map( 'maybe_unserialize', array_column( $result, 'meta_value' ) );
221
222 }
223 }
224