PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.2.3
Tutor LMS – eLearning and online course solution v3.2.3
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
BillingModel.php 1 year ago CartModel.php 1 year ago CouponModel.php 1 year ago CourseModel.php 1 year ago LessonModel.php 1 year ago OrderActivitiesModel.php 1 year ago OrderMetaModel.php 1 year ago OrderModel.php 1 year ago QuizModel.php 1 year ago UserModel.php 1 year ago WithdrawModel.php 1 year ago
OrderMetaModel.php
225 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 $meta_value = maybe_serialize( $meta_value );
84
85 if ( self::get_meta( $order_id, $meta_key ) ) {
86 $current_time = current_time( 'mysql', true );
87 $current_user_id = get_current_user_id();
88
89 return QueryHelper::update(
90 $self->table_name,
91 array(
92 'meta_value' => $meta_value,
93 'updated_at_gmt' => $current_time,
94 'updated_by' => $current_user_id,
95 ),
96 array(
97 'order_id' => $order_id,
98 'meta_key' => $meta_key,
99 )
100 );
101 } else {
102 return self::add_meta( $order_id, $meta_key, $meta_value );
103 }
104 }
105
106 /**
107 * Get a meta record by order id and meta key.
108 *
109 * @param int $order_id order id.
110 * @param string $meta_key meta key.
111 *
112 * @return object|null Meta object if the key exists, null otherwise.
113 *
114 * @since 3.0.0
115 */
116 public static function get_meta( $order_id, $meta_key ) {
117 $self = new self();
118 $result = QueryHelper::get_row(
119 $self->table_name,
120 array(
121 'order_id' => $order_id,
122 'meta_key' => $meta_key,
123 ),
124 'id'
125 );
126
127 return $result;
128 }
129
130 /**
131 * Get all meta record of an order.
132 *
133 * @since 3.0.0
134 *
135 * @param int $order_id order id.
136 *
137 * @return array
138 */
139 public static function get_all_meta( $order_id ) {
140 $self = new self();
141 $result = QueryHelper::get_all(
142 $self->table_name,
143 array(
144 'order_id' => $order_id,
145 ),
146 '*',
147 -1
148 );
149
150 return $result;
151 }
152
153 /**
154 * Get a meta record.
155 *
156 * @since 3.0.0
157 *
158 * @param array $where where.
159 *
160 * @return object|null
161 */
162 public static function get_row( $where = array() ) {
163 $self = new self();
164 $result = QueryHelper::get_row(
165 $self->table_name,
166 $where,
167 'id'
168 );
169
170 return $result;
171 }
172
173 /**
174 * Get all order meta based on clauses.
175 *
176 * @since 3.0.0
177 *
178 * @param array $where where.
179 * @param string $order_by order by.
180 * @param string $order order type.
181 * @param integer $limit limit.
182 *
183 * @return array
184 */
185 public static function get_all( $where = array(), $order_by = 'id', $order = 'ASC', $limit = -1 ) {
186 $self = new self();
187 $result = QueryHelper::get_all(
188 $self->table_name,
189 $where,
190 $order_by,
191 $limit,
192 $order
193 );
194
195 return $result;
196 }
197
198 /**
199 * Get order meta value.
200 *
201 * @param int $order_id order id.
202 * @param string $meta_key meta key.
203 * @param bool $single single meta value.
204 *
205 * @return mixed return array of values if $single is false otherwise single value.
206 * Empty string for invalid order id or meta key.
207 */
208 public static function get_meta_value( $order_id, $meta_key, $single = false ) {
209 $where = array(
210 'order_id' => $order_id,
211 'meta_key' => $meta_key,
212 );
213
214 $result = $single ? self::get_row( $where ) : self::get_all( $where );
215 if ( ! $result ) {
216 return '';
217 }
218
219 return $single
220 ? maybe_unserialize( $result->meta_value )
221 : array_map( 'maybe_unserialize', array_column( $result, 'meta_value' ) );
222
223 }
224 }
225