PluginProbe
Welcart e-Commerce / 2.12.4
Welcart e-Commerce v2.12.4
2.12.4 2.12.3 2.11.35 2.12.2 2.12.1 2.11.34 2.11.33 2.11.32 2.11.31 2.11.30 1.3.16 1.3.17 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.10 1.4.11 1.4.12 All 292 releases
usc-e-shop / includes / order / wel-order-class.php

wel-order-class.php in Welcart e-Commerce 2.12.4, at includes/order/wel-order-class.php

276 lines 7.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Welcart order data class
4 *
5 * @package Welcart
6 */
7
8 namespace Welcart;
9
10 if ( ! defined( 'ABSPATH' ) ) {
11 exit;
12 }
13
14 /**
15 * Item class
16 *
17 * The Welcart item class handles individual product data.
18 *
19 * @since 2.2.2
20 */
21 class OrderData {
22
23 /**
24 * ID for this object.
25 *
26 * @since 2.2.2
27 * @var int
28 */
29 protected $id = 0;
30
31 /**
32 * Full data for this object.
33 *
34 * @since 2.2.2
35 * @var array
36 */
37 protected $data = array();
38
39 /**
40 * Customer data for this object.
41 *
42 * @since 2.2.2
43 * @var array
44 */
45 protected $customer = array();
46
47 /**
48 * Delivery data for this object.
49 *
50 * @since 2.2.2
51 * @var array
52 */
53 protected $delivery = array();
54
55 /**
56 * Cart data.
57 *
58 * @since 2.2.2
59 * @var array
60 */
61 protected $cart = array();
62
63 /**
64 * Cart meta data. Name value pairs (name + default value).
65 *
66 * @since 2.2.2
67 * @var array
68 */
69 protected $cart_meta = array();
70
71 /**
72 * Order meta data. Name value pairs (name + default value).
73 *
74 * @since 2.2.2
75 * @var array
76 */
77 protected $order_meta = array();
78
79 /**
80 * Extra data for this object. Name value pairs (name + default value).
81 *
82 * @since 2.2.2
83 * @var array
84 */
85 protected $extra_data = array();
86
87 /**
88 * Get a order data if ID is passed, otherwise the order data is false.
89 * This class should not be instantiated.
90 * The wc_get_order() function should be used instead.
91 *
92 * @param int $order_id Order ID of the order.
93 */
94 public function __construct( $order_id = 0 ) {
95 if ( is_numeric( $order_id ) && $order_id > 0 ) {
96 $this->set_id( $order_id );
97 } else {
98 $this->set_id( 0 );
99 }
100
101 $this->set_data( $this->id );
102 }
103
104 /**
105 * Set ID.
106 *
107 * @param int $id ID.
108 */
109 public function set_id( $id ) {
110 $this->id = absint( $id );
111 }
112
113 /**
114 * Set data.
115 *
116 * @since 2.2.2
117 */
118 public function set_data( $order_id ) {
119 global $wpdb;
120 $order_table = $wpdb->prefix . 'usces_order';
121
122 // order data.
123 $order_cache_key = 'wel_order_data_' . $order_id;
124 $_data = wp_cache_get( $order_cache_key );
125
126 if ( false === $_data ) {
127 $_data = $wpdb->get_row(
128 $wpdb->prepare(
129 "SELECT * FROM {$order_table} WHERE ID = %d",
130 $order_id
131 )
132 );
133 if ( null !== $_data ) {
134 wp_cache_set( $order_cache_key, $_data );
135 }
136 }
137
138 if ( ! $_data ) {
139 return false;
140 }
141
142 // order meta data.
143 $order_meta_cache_key = 'wel_order_meta_' . $order_id;
144
145 $_meta = wp_cache_get( $order_meta_cache_key );
146
147 if ( false === $_meta ) {
148 $order_meta_table_name = $wpdb->prefix . 'usces_order_meta';
149
150 $query = $wpdb->prepare(
151 "SELECT * FROM {$order_meta_table_name} WHERE order_id = %d",
152 $order_id
153 );
154
155 $_meta = $wpdb->get_results( $query );
156 if ( null !== $_meta ) {
157 wp_cache_set( $order_meta_cache_key, $_meta );
158 }
159 }
160
161 $csod = array();
162 $cscs = array();
163 $csde = array();
164 $order = array();
165 foreach ( $_meta as $_meta_row ){
166 if ( 0 === strpos( $_meta_row->meta_key, 'csod_' ) ) {
167 $key = str_replace( 'csod_', '', $_meta_row->meta_key );
168 $csod[ $key ] = $_meta_row->meta_value;
169 } elseif ( 0 === strpos( $_meta_row->meta_key, 'cscs_' ) ) {
170 $key = str_replace( 'cscs_', '', $_meta_row->meta_key );
171 $cscs[ $key ] = $_meta_row->meta_value;
172 } elseif ( 0 === strpos( $_meta_row->meta_key, 'csde_' ) ) {
173 $key = str_replace( 'csde_', '', $_meta_row->meta_key );
174 $csde[ $key ] = $_meta_row->meta_value;
175 } elseif ( 'customer_country' === $_meta_row->meta_key ) {
176 $cscs['country'] = $_meta_row->meta_value;
177 } else {
178 $this->order_meta[ $_meta_row->meta_key ] = $_meta_row->meta_value;
179 }
180 }
181
182 // customer data.
183 $this->customer = array(
184 'member_id' => $_data->mem_id,
185 'email' => $_data->order_email,
186 'name1' => $_data->order_name1,
187 'name2' => $_data->order_name2,
188 'name3' => $_data->order_name3,
189 'name4' => $_data->order_name4,
190 'zip' => $_data->order_zip,
191 'pref' => $_data->order_pref,
192 'address1' => $_data->order_address1,
193 'address2' => $_data->order_address2,
194 'address3' => $_data->order_address3,
195 'tel' => $_data->order_tel,
196 'fax' => $_data->order_fax,
197 );
198 $this->customer = array_merge( $this->customer, $cscs );
199
200 // delivery data.
201 $_delivery = wel_safe_unserialize( $_data->order_delivery );
202 $this->delivery = array(
203 'delivery_flag' => isset( $_delivery['delivery_flag'] ) ? $_delivery['delivery_flag'] : '',
204 'name1' => $_delivery['name1'],
205 'name2' => $_delivery['name2'],
206 'name3' => $_delivery['name3'],
207 'name4' => $_delivery['name4'],
208 'zip' => $_delivery['zipcode'],
209 'pref' => $_delivery['pref'],
210 'address1' => $_delivery['address1'],
211 'address2' => $_delivery['address2'],
212 'address3' => $_delivery['address3'],
213 'tel' => $_delivery['tel'],
214 'country' => $_delivery['country'],
215 );
216 $this->delivery = array_merge( $this->delivery, $csde );
217
218 // cart data.
219 $cart_cache_key = 'wel_order_cart_' . $order_id;
220
221 $_cart = wp_cache_get( $cart_cache_key );
222
223 if ( false === $_cart ) {
224 $_cart = usces_get_ordercartdata( $order_id );
225 if ( null !== $_cart ) {
226 wp_cache_set( $cart_cache_key, $_cart );
227 }
228 }
229 if ( ! $_cart ) {
230 $_cart = array();
231 }
232 $this->cart = $_cart;
233
234 $total_price = $_data->order_item_total_price - $_data->order_usedpoint + $_data->order_discount + $_data->order_shipping_charge + $_data->order_cod_fee + $_data->order_tax;
235 if ( $total_price < 0 ) {
236 $total_price = 0;
237 }
238
239 $order_data = array(
240 'ID' => $_data->ID,
241 'getpoint' => $_data->order_getpoint,
242 'usedpoint' => $_data->order_usedpoint,
243 'discount' => usces_crform( $_data->order_discount, false, false, 'return', false ),
244 'payment_name' => $_data->order_payment_name,
245 'shipping_charge' => usces_crform( $_data->order_shipping_charge, false, false, 'return', false ),
246 'cod_fee' => usces_crform( $_data->order_cod_fee, false, false, 'return', false ),
247 'tax' => usces_crform( $_data->order_tax, false, false, 'return', false ),
248 'total_price' => usces_crform( $total_price, false, false, 'return', false ),
249 'status' => $_data->order_status,
250 'date' => mysql2date( __( 'Y/m/d' ), $_data->order_date ),
251 'modified' => mysql2date( __( 'Y/m/d' ), $_data->order_modified ),
252 'condition' => wel_safe_unserialize( $_data->order_condition ),
253 'customer' => $this->customer,
254 'delivery' => $this->delivery,
255 'cart' => $this->cart,
256 );
257
258 $this->data = array_merge( $order_data, $this->order_meta, $this->extra_data );
259 }
260
261 /**
262 * Returns all data for this object.
263 *
264 * @since 2.2.2
265 * @return array
266 */
267 public function get_data() {
268 if ( ! isset( $this->data['ID'] ) ) {
269 return false;
270 } else {
271 return array_merge( $this->data );
272 }
273 }
274
275 }
276