@@ -9,7 +9,7 @@ discard block |
||
9 | 9 | */ |
10 | 10 | |
11 | 11 | if ( ! defined( 'ABSPATH' ) ) { |
12 | - exit; |
|
12 | + exit; |
|
13 | 13 | } |
14 | 14 | |
15 | 15 | /** |
@@ -21,356 +21,356 @@ discard block |
||
21 | 21 | */ |
22 | 22 | abstract class GetPaid_Data { |
23 | 23 | |
24 | - /** |
|
25 | - * ID for this object. |
|
26 | - * |
|
27 | - * @since 1.0.19 |
|
28 | - * @var int |
|
29 | - */ |
|
30 | - protected $id = 0; |
|
31 | - |
|
32 | - /** |
|
33 | - * Core data for this object. Name value pairs (name + default value). |
|
34 | - * |
|
35 | - * @since 1.0.19 |
|
36 | - * @var array |
|
37 | - */ |
|
38 | - protected $data = array(); |
|
39 | - |
|
40 | - /** |
|
41 | - * Core data changes for this object. |
|
42 | - * |
|
43 | - * @since 1.0.19 |
|
44 | - * @var array |
|
45 | - */ |
|
46 | - protected $changes = array(); |
|
47 | - |
|
48 | - /** |
|
49 | - * This is false until the object is read from the DB. |
|
50 | - * |
|
51 | - * @since 1.0.19 |
|
52 | - * @var bool |
|
53 | - */ |
|
54 | - protected $object_read = false; |
|
55 | - |
|
56 | - /** |
|
57 | - * This is the name of this object type. |
|
58 | - * |
|
59 | - * @since 1.0.19 |
|
60 | - * @var string |
|
61 | - */ |
|
62 | - protected $object_type = 'data'; |
|
63 | - |
|
64 | - /** |
|
65 | - * Extra data for this object. Name value pairs (name + default value). |
|
66 | - * Used as a standard way for sub classes (like item types) to add |
|
67 | - * additional information to an inherited class. |
|
68 | - * |
|
69 | - * @since 1.0.19 |
|
70 | - * @var array |
|
71 | - */ |
|
72 | - protected $extra_data = array(); |
|
73 | - |
|
74 | - /** |
|
75 | - * Set to _data on construct so we can track and reset data if needed. |
|
76 | - * |
|
77 | - * @since 1.0.19 |
|
78 | - * @var array |
|
79 | - */ |
|
80 | - protected $default_data = array(); |
|
81 | - |
|
82 | - /** |
|
83 | - * Contains a reference to the data store for this class. |
|
84 | - * |
|
85 | - * @since 1.0.19 |
|
86 | - * @var GetPaid_Data_Store |
|
87 | - */ |
|
88 | - protected $data_store; |
|
89 | - |
|
90 | - /** |
|
91 | - * Stores meta in cache for future reads. |
|
92 | - * A group must be set to to enable caching. |
|
93 | - * |
|
94 | - * @since 1.0.19 |
|
95 | - * @var string |
|
96 | - */ |
|
97 | - protected $cache_group = ''; |
|
98 | - |
|
99 | - /** |
|
100 | - * Stores the last error. |
|
101 | - * |
|
102 | - * @since 1.0.19 |
|
103 | - * @var string |
|
104 | - */ |
|
105 | - public $last_error = ''; |
|
106 | - |
|
107 | - /** |
|
108 | - * Stores additional meta data. |
|
109 | - * |
|
110 | - * @since 1.0.19 |
|
111 | - * @var array |
|
112 | - */ |
|
113 | - protected $meta_data = null; |
|
114 | - |
|
115 | - /** |
|
116 | - * Default constructor. |
|
117 | - * |
|
118 | - * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
|
119 | - */ |
|
120 | - public function __construct( $read = 0 ) { |
|
121 | - $this->data = array_merge( $this->data, $this->extra_data ); |
|
122 | - $this->default_data = $this->data; |
|
123 | - } |
|
124 | - |
|
125 | - /** |
|
126 | - * Only store the object ID to avoid serializing the data object instance. |
|
127 | - * |
|
128 | - * @return array |
|
129 | - */ |
|
130 | - public function __sleep() { |
|
131 | - return array( 'id' ); |
|
132 | - } |
|
133 | - |
|
134 | - /** |
|
135 | - * Re-run the constructor with the object ID. |
|
136 | - * |
|
137 | - * If the object no longer exists, remove the ID. |
|
138 | - */ |
|
139 | - public function __wakeup() { |
|
140 | - $this->__construct( absint( $this->id ) ); |
|
141 | - |
|
142 | - if ( ! empty( $this->last_error ) ) { |
|
143 | - $this->set_id( 0 ); |
|
144 | - } |
|
145 | - |
|
146 | - } |
|
147 | - |
|
148 | - /** |
|
149 | - * When the object is cloned, make sure meta is duplicated correctly. |
|
150 | - * |
|
151 | - * @since 1.0.19 |
|
152 | - */ |
|
153 | - public function __clone() { |
|
154 | - $this->maybe_read_meta_data(); |
|
155 | - if ( ! empty( $this->meta_data ) ) { |
|
156 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | - $this->meta_data[ $array_key ] = clone $meta; |
|
158 | - if ( ! empty( $meta->id ) ) { |
|
159 | - $this->meta_data[ $array_key ]->id = null; |
|
160 | - } |
|
161 | - } |
|
162 | - } |
|
163 | - } |
|
164 | - |
|
165 | - /** |
|
166 | - * Get the data store. |
|
167 | - * |
|
168 | - * @since 1.0.19 |
|
169 | - * @return object |
|
170 | - */ |
|
171 | - public function get_data_store() { |
|
172 | - return $this->data_store; |
|
173 | - } |
|
174 | - |
|
175 | - /** |
|
176 | - * Get the object type. |
|
177 | - * |
|
178 | - * @since 1.0.19 |
|
179 | - * @return string |
|
180 | - */ |
|
181 | - public function get_object_type() { |
|
182 | - return $this->object_type; |
|
183 | - } |
|
184 | - |
|
185 | - /** |
|
186 | - * Returns the unique ID for this object. |
|
187 | - * |
|
188 | - * @since 1.0.19 |
|
189 | - * @return int |
|
190 | - */ |
|
191 | - public function get_id() { |
|
192 | - return $this->id; |
|
193 | - } |
|
194 | - |
|
195 | - /** |
|
196 | - * Get form status. |
|
197 | - * |
|
198 | - * @since 1.0.19 |
|
199 | - * @param string $context View or edit context. |
|
200 | - * @return string |
|
201 | - */ |
|
202 | - public function get_status( $context = 'view' ) { |
|
203 | - return $this->get_prop( 'status', $context ); |
|
204 | - } |
|
205 | - |
|
206 | - /** |
|
207 | - * Delete an object, set the ID to 0, and return result. |
|
208 | - * |
|
209 | - * @since 1.0.19 |
|
210 | - * @param bool $force_delete Should the data be deleted permanently. |
|
211 | - * @return bool result |
|
212 | - */ |
|
213 | - public function delete( $force_delete = false ) { |
|
214 | - if ( $this->data_store && $this->exists() ) { |
|
215 | - $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | - $this->set_id( 0 ); |
|
217 | - return true; |
|
218 | - } |
|
219 | - return false; |
|
220 | - } |
|
221 | - |
|
222 | - /** |
|
223 | - * Save should create or update based on object existence. |
|
224 | - * |
|
225 | - * @since 1.0.19 |
|
226 | - * @return int |
|
227 | - */ |
|
228 | - public function save() { |
|
229 | - if ( ! $this->data_store ) { |
|
230 | - return $this->get_id(); |
|
231 | - } |
|
232 | - |
|
233 | - /** |
|
234 | - * Trigger action before saving to the DB. Allows you to adjust object props before save. |
|
235 | - * |
|
236 | - * @param GetPaid_Data $this The object being saved. |
|
237 | - * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
238 | - */ |
|
239 | - do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
240 | - |
|
241 | - if ( $this->get_id() ) { |
|
242 | - $this->data_store->update( $this ); |
|
243 | - } else { |
|
244 | - $this->data_store->create( $this ); |
|
245 | - } |
|
246 | - |
|
247 | - /** |
|
248 | - * Trigger action after saving to the DB. |
|
249 | - * |
|
250 | - * @param GetPaid_Data $this The object being saved. |
|
251 | - * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
252 | - */ |
|
253 | - do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
254 | - |
|
255 | - return $this->get_id(); |
|
256 | - } |
|
257 | - |
|
258 | - /** |
|
259 | - * Change data to JSON format. |
|
260 | - * |
|
261 | - * @since 1.0.19 |
|
262 | - * @return string Data in JSON format. |
|
263 | - */ |
|
264 | - public function __toString() { |
|
265 | - return wp_json_encode( $this->get_data() ); |
|
266 | - } |
|
267 | - |
|
268 | - /** |
|
269 | - * Returns all data for this object. |
|
270 | - * |
|
271 | - * @since 1.0.19 |
|
272 | - * @return array |
|
273 | - */ |
|
274 | - public function get_data() { |
|
275 | - return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
276 | - } |
|
277 | - |
|
278 | - /** |
|
279 | - * Returns array of expected data keys for this object. |
|
280 | - * |
|
281 | - * @since 1.0.19 |
|
282 | - * @return array |
|
283 | - */ |
|
284 | - public function get_data_keys() { |
|
285 | - return array_keys( $this->data ); |
|
286 | - } |
|
287 | - |
|
288 | - /** |
|
289 | - * Returns all "extra" data keys for an object (for sub objects like item types). |
|
290 | - * |
|
291 | - * @since 1.0.19 |
|
292 | - * @return array |
|
293 | - */ |
|
294 | - public function get_extra_data_keys() { |
|
295 | - return array_keys( $this->extra_data ); |
|
296 | - } |
|
297 | - |
|
298 | - /** |
|
299 | - * Filter null meta values from array. |
|
300 | - * |
|
301 | - * @since 1.0.19 |
|
302 | - * @param mixed $meta Meta value to check. |
|
303 | - * @return bool |
|
304 | - */ |
|
305 | - protected function filter_null_meta( $meta ) { |
|
306 | - return ! is_null( $meta->value ); |
|
307 | - } |
|
308 | - |
|
309 | - /** |
|
310 | - * Get All Meta Data. |
|
311 | - * |
|
312 | - * @since 1.0.19 |
|
313 | - * @return array of objects. |
|
314 | - */ |
|
315 | - public function get_meta_data() { |
|
316 | - $this->maybe_read_meta_data(); |
|
317 | - return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
318 | - } |
|
319 | - |
|
320 | - /** |
|
321 | - * Check if the key is an internal one. |
|
322 | - * |
|
323 | - * @since 1.0.19 |
|
324 | - * @param string $key Key to check. |
|
325 | - * @return bool true if it's an internal key, false otherwise |
|
326 | - */ |
|
327 | - protected function is_internal_meta_key( $key ) { |
|
328 | - $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
329 | - |
|
330 | - if ( ! $internal_meta_key ) { |
|
331 | - return false; |
|
332 | - } |
|
333 | - |
|
334 | - $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
335 | - |
|
336 | - if ( ! $has_setter_or_getter ) { |
|
337 | - return false; |
|
338 | - } |
|
339 | - |
|
340 | - /* translators: %s: $key Key to check */ |
|
341 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
342 | - |
|
343 | - return true; |
|
344 | - } |
|
345 | - |
|
346 | - /** |
|
347 | - * Magic method for setting data fields. |
|
348 | - * |
|
349 | - * This method does not update custom fields in the database. |
|
350 | - * |
|
351 | - * @since 1.0.19 |
|
352 | - * @access public |
|
353 | - * |
|
354 | - */ |
|
355 | - public function __set( $key, $value ) { |
|
356 | - |
|
357 | - if ( 'id' == strtolower( $key ) ) { |
|
358 | - return $this->set_id( $value ); |
|
359 | - } |
|
360 | - |
|
361 | - if ( method_exists( $this, "set_$key" ) ) { |
|
362 | - |
|
363 | - /* translators: %s: $key Key to set */ |
|
364 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
365 | - |
|
366 | - call_user_func( array( $this, "set_$key" ), $value ); |
|
367 | - } else { |
|
368 | - $this->set_prop( $key, $value ); |
|
369 | - } |
|
370 | - |
|
371 | - } |
|
372 | - |
|
373 | - /** |
|
24 | + /** |
|
25 | + * ID for this object. |
|
26 | + * |
|
27 | + * @since 1.0.19 |
|
28 | + * @var int |
|
29 | + */ |
|
30 | + protected $id = 0; |
|
31 | + |
|
32 | + /** |
|
33 | + * Core data for this object. Name value pairs (name + default value). |
|
34 | + * |
|
35 | + * @since 1.0.19 |
|
36 | + * @var array |
|
37 | + */ |
|
38 | + protected $data = array(); |
|
39 | + |
|
40 | + /** |
|
41 | + * Core data changes for this object. |
|
42 | + * |
|
43 | + * @since 1.0.19 |
|
44 | + * @var array |
|
45 | + */ |
|
46 | + protected $changes = array(); |
|
47 | + |
|
48 | + /** |
|
49 | + * This is false until the object is read from the DB. |
|
50 | + * |
|
51 | + * @since 1.0.19 |
|
52 | + * @var bool |
|
53 | + */ |
|
54 | + protected $object_read = false; |
|
55 | + |
|
56 | + /** |
|
57 | + * This is the name of this object type. |
|
58 | + * |
|
59 | + * @since 1.0.19 |
|
60 | + * @var string |
|
61 | + */ |
|
62 | + protected $object_type = 'data'; |
|
63 | + |
|
64 | + /** |
|
65 | + * Extra data for this object. Name value pairs (name + default value). |
|
66 | + * Used as a standard way for sub classes (like item types) to add |
|
67 | + * additional information to an inherited class. |
|
68 | + * |
|
69 | + * @since 1.0.19 |
|
70 | + * @var array |
|
71 | + */ |
|
72 | + protected $extra_data = array(); |
|
73 | + |
|
74 | + /** |
|
75 | + * Set to _data on construct so we can track and reset data if needed. |
|
76 | + * |
|
77 | + * @since 1.0.19 |
|
78 | + * @var array |
|
79 | + */ |
|
80 | + protected $default_data = array(); |
|
81 | + |
|
82 | + /** |
|
83 | + * Contains a reference to the data store for this class. |
|
84 | + * |
|
85 | + * @since 1.0.19 |
|
86 | + * @var GetPaid_Data_Store |
|
87 | + */ |
|
88 | + protected $data_store; |
|
89 | + |
|
90 | + /** |
|
91 | + * Stores meta in cache for future reads. |
|
92 | + * A group must be set to to enable caching. |
|
93 | + * |
|
94 | + * @since 1.0.19 |
|
95 | + * @var string |
|
96 | + */ |
|
97 | + protected $cache_group = ''; |
|
98 | + |
|
99 | + /** |
|
100 | + * Stores the last error. |
|
101 | + * |
|
102 | + * @since 1.0.19 |
|
103 | + * @var string |
|
104 | + */ |
|
105 | + public $last_error = ''; |
|
106 | + |
|
107 | + /** |
|
108 | + * Stores additional meta data. |
|
109 | + * |
|
110 | + * @since 1.0.19 |
|
111 | + * @var array |
|
112 | + */ |
|
113 | + protected $meta_data = null; |
|
114 | + |
|
115 | + /** |
|
116 | + * Default constructor. |
|
117 | + * |
|
118 | + * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
|
119 | + */ |
|
120 | + public function __construct( $read = 0 ) { |
|
121 | + $this->data = array_merge( $this->data, $this->extra_data ); |
|
122 | + $this->default_data = $this->data; |
|
123 | + } |
|
124 | + |
|
125 | + /** |
|
126 | + * Only store the object ID to avoid serializing the data object instance. |
|
127 | + * |
|
128 | + * @return array |
|
129 | + */ |
|
130 | + public function __sleep() { |
|
131 | + return array( 'id' ); |
|
132 | + } |
|
133 | + |
|
134 | + /** |
|
135 | + * Re-run the constructor with the object ID. |
|
136 | + * |
|
137 | + * If the object no longer exists, remove the ID. |
|
138 | + */ |
|
139 | + public function __wakeup() { |
|
140 | + $this->__construct( absint( $this->id ) ); |
|
141 | + |
|
142 | + if ( ! empty( $this->last_error ) ) { |
|
143 | + $this->set_id( 0 ); |
|
144 | + } |
|
145 | + |
|
146 | + } |
|
147 | + |
|
148 | + /** |
|
149 | + * When the object is cloned, make sure meta is duplicated correctly. |
|
150 | + * |
|
151 | + * @since 1.0.19 |
|
152 | + */ |
|
153 | + public function __clone() { |
|
154 | + $this->maybe_read_meta_data(); |
|
155 | + if ( ! empty( $this->meta_data ) ) { |
|
156 | + foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | + $this->meta_data[ $array_key ] = clone $meta; |
|
158 | + if ( ! empty( $meta->id ) ) { |
|
159 | + $this->meta_data[ $array_key ]->id = null; |
|
160 | + } |
|
161 | + } |
|
162 | + } |
|
163 | + } |
|
164 | + |
|
165 | + /** |
|
166 | + * Get the data store. |
|
167 | + * |
|
168 | + * @since 1.0.19 |
|
169 | + * @return object |
|
170 | + */ |
|
171 | + public function get_data_store() { |
|
172 | + return $this->data_store; |
|
173 | + } |
|
174 | + |
|
175 | + /** |
|
176 | + * Get the object type. |
|
177 | + * |
|
178 | + * @since 1.0.19 |
|
179 | + * @return string |
|
180 | + */ |
|
181 | + public function get_object_type() { |
|
182 | + return $this->object_type; |
|
183 | + } |
|
184 | + |
|
185 | + /** |
|
186 | + * Returns the unique ID for this object. |
|
187 | + * |
|
188 | + * @since 1.0.19 |
|
189 | + * @return int |
|
190 | + */ |
|
191 | + public function get_id() { |
|
192 | + return $this->id; |
|
193 | + } |
|
194 | + |
|
195 | + /** |
|
196 | + * Get form status. |
|
197 | + * |
|
198 | + * @since 1.0.19 |
|
199 | + * @param string $context View or edit context. |
|
200 | + * @return string |
|
201 | + */ |
|
202 | + public function get_status( $context = 'view' ) { |
|
203 | + return $this->get_prop( 'status', $context ); |
|
204 | + } |
|
205 | + |
|
206 | + /** |
|
207 | + * Delete an object, set the ID to 0, and return result. |
|
208 | + * |
|
209 | + * @since 1.0.19 |
|
210 | + * @param bool $force_delete Should the data be deleted permanently. |
|
211 | + * @return bool result |
|
212 | + */ |
|
213 | + public function delete( $force_delete = false ) { |
|
214 | + if ( $this->data_store && $this->exists() ) { |
|
215 | + $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | + $this->set_id( 0 ); |
|
217 | + return true; |
|
218 | + } |
|
219 | + return false; |
|
220 | + } |
|
221 | + |
|
222 | + /** |
|
223 | + * Save should create or update based on object existence. |
|
224 | + * |
|
225 | + * @since 1.0.19 |
|
226 | + * @return int |
|
227 | + */ |
|
228 | + public function save() { |
|
229 | + if ( ! $this->data_store ) { |
|
230 | + return $this->get_id(); |
|
231 | + } |
|
232 | + |
|
233 | + /** |
|
234 | + * Trigger action before saving to the DB. Allows you to adjust object props before save. |
|
235 | + * |
|
236 | + * @param GetPaid_Data $this The object being saved. |
|
237 | + * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
238 | + */ |
|
239 | + do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
240 | + |
|
241 | + if ( $this->get_id() ) { |
|
242 | + $this->data_store->update( $this ); |
|
243 | + } else { |
|
244 | + $this->data_store->create( $this ); |
|
245 | + } |
|
246 | + |
|
247 | + /** |
|
248 | + * Trigger action after saving to the DB. |
|
249 | + * |
|
250 | + * @param GetPaid_Data $this The object being saved. |
|
251 | + * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
|
252 | + */ |
|
253 | + do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
254 | + |
|
255 | + return $this->get_id(); |
|
256 | + } |
|
257 | + |
|
258 | + /** |
|
259 | + * Change data to JSON format. |
|
260 | + * |
|
261 | + * @since 1.0.19 |
|
262 | + * @return string Data in JSON format. |
|
263 | + */ |
|
264 | + public function __toString() { |
|
265 | + return wp_json_encode( $this->get_data() ); |
|
266 | + } |
|
267 | + |
|
268 | + /** |
|
269 | + * Returns all data for this object. |
|
270 | + * |
|
271 | + * @since 1.0.19 |
|
272 | + * @return array |
|
273 | + */ |
|
274 | + public function get_data() { |
|
275 | + return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
276 | + } |
|
277 | + |
|
278 | + /** |
|
279 | + * Returns array of expected data keys for this object. |
|
280 | + * |
|
281 | + * @since 1.0.19 |
|
282 | + * @return array |
|
283 | + */ |
|
284 | + public function get_data_keys() { |
|
285 | + return array_keys( $this->data ); |
|
286 | + } |
|
287 | + |
|
288 | + /** |
|
289 | + * Returns all "extra" data keys for an object (for sub objects like item types). |
|
290 | + * |
|
291 | + * @since 1.0.19 |
|
292 | + * @return array |
|
293 | + */ |
|
294 | + public function get_extra_data_keys() { |
|
295 | + return array_keys( $this->extra_data ); |
|
296 | + } |
|
297 | + |
|
298 | + /** |
|
299 | + * Filter null meta values from array. |
|
300 | + * |
|
301 | + * @since 1.0.19 |
|
302 | + * @param mixed $meta Meta value to check. |
|
303 | + * @return bool |
|
304 | + */ |
|
305 | + protected function filter_null_meta( $meta ) { |
|
306 | + return ! is_null( $meta->value ); |
|
307 | + } |
|
308 | + |
|
309 | + /** |
|
310 | + * Get All Meta Data. |
|
311 | + * |
|
312 | + * @since 1.0.19 |
|
313 | + * @return array of objects. |
|
314 | + */ |
|
315 | + public function get_meta_data() { |
|
316 | + $this->maybe_read_meta_data(); |
|
317 | + return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
318 | + } |
|
319 | + |
|
320 | + /** |
|
321 | + * Check if the key is an internal one. |
|
322 | + * |
|
323 | + * @since 1.0.19 |
|
324 | + * @param string $key Key to check. |
|
325 | + * @return bool true if it's an internal key, false otherwise |
|
326 | + */ |
|
327 | + protected function is_internal_meta_key( $key ) { |
|
328 | + $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
329 | + |
|
330 | + if ( ! $internal_meta_key ) { |
|
331 | + return false; |
|
332 | + } |
|
333 | + |
|
334 | + $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
335 | + |
|
336 | + if ( ! $has_setter_or_getter ) { |
|
337 | + return false; |
|
338 | + } |
|
339 | + |
|
340 | + /* translators: %s: $key Key to check */ |
|
341 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
342 | + |
|
343 | + return true; |
|
344 | + } |
|
345 | + |
|
346 | + /** |
|
347 | + * Magic method for setting data fields. |
|
348 | + * |
|
349 | + * This method does not update custom fields in the database. |
|
350 | + * |
|
351 | + * @since 1.0.19 |
|
352 | + * @access public |
|
353 | + * |
|
354 | + */ |
|
355 | + public function __set( $key, $value ) { |
|
356 | + |
|
357 | + if ( 'id' == strtolower( $key ) ) { |
|
358 | + return $this->set_id( $value ); |
|
359 | + } |
|
360 | + |
|
361 | + if ( method_exists( $this, "set_$key" ) ) { |
|
362 | + |
|
363 | + /* translators: %s: $key Key to set */ |
|
364 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
365 | + |
|
366 | + call_user_func( array( $this, "set_$key" ), $value ); |
|
367 | + } else { |
|
368 | + $this->set_prop( $key, $value ); |
|
369 | + } |
|
370 | + |
|
371 | + } |
|
372 | + |
|
373 | + /** |
|
374 | 374 | * Margic method for retrieving a property. |
375 | 375 | */ |
376 | 376 | public function __get( $key ) { |
@@ -378,10 +378,10 @@ discard block |
||
378 | 378 | // Check if we have a helper method for that. |
379 | 379 | if ( method_exists( $this, 'get_' . $key ) ) { |
380 | 380 | |
381 | - if ( 'post_type' != $key ) { |
|
382 | - /* translators: %s: $key Key to set */ |
|
383 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
384 | - } |
|
381 | + if ( 'post_type' != $key ) { |
|
382 | + /* translators: %s: $key Key to set */ |
|
383 | + getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
384 | + } |
|
385 | 385 | |
386 | 386 | return call_user_func( array( $this, 'get_' . $key ) ); |
387 | 387 | } |
@@ -391,513 +391,513 @@ discard block |
||
391 | 391 | return $this->post->$key; |
392 | 392 | } |
393 | 393 | |
394 | - return $this->get_prop( $key ); |
|
395 | - |
|
396 | - } |
|
397 | - |
|
398 | - /** |
|
399 | - * Get Meta Data by Key. |
|
400 | - * |
|
401 | - * @since 1.0.19 |
|
402 | - * @param string $key Meta Key. |
|
403 | - * @param bool $single return first found meta with key, or all with $key. |
|
404 | - * @param string $context What the value is for. Valid values are view and edit. |
|
405 | - * @return mixed |
|
406 | - */ |
|
407 | - public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
408 | - |
|
409 | - // Check if this is an internal meta key. |
|
410 | - $_key = str_replace( '_wpinv', '', $key ); |
|
411 | - $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
413 | - $function = 'get_' . $_key; |
|
414 | - |
|
415 | - if ( is_callable( array( $this, $function ) ) ) { |
|
416 | - return $this->{$function}(); |
|
417 | - } |
|
418 | - } |
|
419 | - |
|
420 | - // Read the meta data if not yet read. |
|
421 | - $this->maybe_read_meta_data(); |
|
422 | - $meta_data = $this->get_meta_data(); |
|
423 | - $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
424 | - $value = $single ? '' : array(); |
|
425 | - |
|
426 | - if ( ! empty( $array_keys ) ) { |
|
427 | - // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
|
428 | - if ( $single ) { |
|
429 | - $value = $meta_data[ current( $array_keys ) ]->value; |
|
430 | - } else { |
|
431 | - $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
432 | - } |
|
433 | - } |
|
434 | - |
|
435 | - if ( 'view' === $context ) { |
|
436 | - $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
437 | - } |
|
438 | - |
|
439 | - return $value; |
|
440 | - } |
|
441 | - |
|
442 | - /** |
|
443 | - * See if meta data exists, since get_meta always returns a '' or array(). |
|
444 | - * |
|
445 | - * @since 1.0.19 |
|
446 | - * @param string $key Meta Key. |
|
447 | - * @return boolean |
|
448 | - */ |
|
449 | - public function meta_exists( $key = '' ) { |
|
450 | - $this->maybe_read_meta_data(); |
|
451 | - $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | - return in_array( $key, $array_keys, true ); |
|
453 | - } |
|
454 | - |
|
455 | - /** |
|
456 | - * Set all meta data from array. |
|
457 | - * |
|
458 | - * @since 1.0.19 |
|
459 | - * @param array $data Key/Value pairs. |
|
460 | - */ |
|
461 | - public function set_meta_data( $data ) { |
|
462 | - if ( ! empty( $data ) && is_array( $data ) ) { |
|
463 | - $this->maybe_read_meta_data(); |
|
464 | - foreach ( $data as $meta ) { |
|
465 | - $meta = (array) $meta; |
|
466 | - if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
467 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
468 | - array( |
|
469 | - 'id' => $meta['id'], |
|
470 | - 'key' => $meta['key'], |
|
471 | - 'value' => $meta['value'], |
|
472 | - ) |
|
473 | - ); |
|
474 | - } |
|
475 | - } |
|
476 | - } |
|
477 | - } |
|
478 | - |
|
479 | - /** |
|
480 | - * Add meta data. |
|
481 | - * |
|
482 | - * @since 1.0.19 |
|
483 | - * |
|
484 | - * @param string $key Meta key. |
|
485 | - * @param string|array $value Meta value. |
|
486 | - * @param bool $unique Should this be a unique key?. |
|
487 | - */ |
|
488 | - public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
490 | - $function = 'set_' . $key; |
|
491 | - |
|
492 | - if ( is_callable( array( $this, $function ) ) ) { |
|
493 | - return $this->{$function}( $value ); |
|
494 | - } |
|
495 | - } |
|
496 | - |
|
497 | - $this->maybe_read_meta_data(); |
|
498 | - if ( $unique ) { |
|
499 | - $this->delete_meta_data( $key ); |
|
500 | - } |
|
501 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
502 | - array( |
|
503 | - 'key' => $key, |
|
504 | - 'value' => $value, |
|
505 | - ) |
|
506 | - ); |
|
507 | - |
|
508 | - $this->save(); |
|
509 | - } |
|
510 | - |
|
511 | - /** |
|
512 | - * Update meta data by key or ID, if provided. |
|
513 | - * |
|
514 | - * @since 1.0.19 |
|
515 | - * |
|
516 | - * @param string $key Meta key. |
|
517 | - * @param string|array $value Meta value. |
|
518 | - * @param int $meta_id Meta ID. |
|
519 | - */ |
|
520 | - public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
522 | - $function = 'set_' . $key; |
|
523 | - |
|
524 | - if ( is_callable( array( $this, $function ) ) ) { |
|
525 | - return $this->{$function}( $value ); |
|
526 | - } |
|
527 | - } |
|
528 | - |
|
529 | - $this->maybe_read_meta_data(); |
|
530 | - |
|
531 | - $array_key = false; |
|
532 | - |
|
533 | - if ( $meta_id ) { |
|
534 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | - $array_key = $array_keys ? current( $array_keys ) : false; |
|
536 | - } else { |
|
537 | - // Find matches by key. |
|
538 | - $matches = array(); |
|
539 | - foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | - if ( $meta->key === $key ) { |
|
541 | - $matches[] = $meta_data_array_key; |
|
542 | - } |
|
543 | - } |
|
544 | - |
|
545 | - if ( ! empty( $matches ) ) { |
|
546 | - // Set matches to null so only one key gets the new value. |
|
547 | - foreach ( $matches as $meta_data_array_key ) { |
|
548 | - $this->meta_data[ $meta_data_array_key ]->value = null; |
|
549 | - } |
|
550 | - $array_key = current( $matches ); |
|
551 | - } |
|
552 | - } |
|
553 | - |
|
554 | - if ( false !== $array_key ) { |
|
555 | - $meta = $this->meta_data[ $array_key ]; |
|
556 | - $meta->key = $key; |
|
557 | - $meta->value = $value; |
|
558 | - } else { |
|
559 | - $this->add_meta_data( $key, $value, true ); |
|
560 | - } |
|
561 | - } |
|
562 | - |
|
563 | - /** |
|
564 | - * Delete meta data. |
|
565 | - * |
|
566 | - * @since 1.0.19 |
|
567 | - * @param string $key Meta key. |
|
568 | - */ |
|
569 | - public function delete_meta_data( $key ) { |
|
570 | - $this->maybe_read_meta_data(); |
|
571 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
572 | - |
|
573 | - if ( $array_keys ) { |
|
574 | - foreach ( $array_keys as $array_key ) { |
|
575 | - $this->meta_data[ $array_key ]->value = null; |
|
576 | - } |
|
577 | - } |
|
578 | - } |
|
579 | - |
|
580 | - /** |
|
581 | - * Delete meta data. |
|
582 | - * |
|
583 | - * @since 1.0.19 |
|
584 | - * @param int $mid Meta ID. |
|
585 | - */ |
|
586 | - public function delete_meta_data_by_mid( $mid ) { |
|
587 | - $this->maybe_read_meta_data(); |
|
588 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
589 | - |
|
590 | - if ( $array_keys ) { |
|
591 | - foreach ( $array_keys as $array_key ) { |
|
592 | - $this->meta_data[ $array_key ]->value = null; |
|
593 | - } |
|
594 | - } |
|
595 | - } |
|
596 | - |
|
597 | - /** |
|
598 | - * Read meta data if null. |
|
599 | - * |
|
600 | - * @since 1.0.19 |
|
601 | - */ |
|
602 | - protected function maybe_read_meta_data() { |
|
603 | - if ( is_null( $this->meta_data ) ) { |
|
604 | - $this->read_meta_data(); |
|
605 | - } |
|
606 | - } |
|
607 | - |
|
608 | - /** |
|
609 | - * Read Meta Data from the database. Ignore any internal properties. |
|
610 | - * Uses it's own caches because get_metadata does not provide meta_ids. |
|
611 | - * |
|
612 | - * @since 1.0.19 |
|
613 | - * @param bool $force_read True to force a new DB read (and update cache). |
|
614 | - */ |
|
615 | - public function read_meta_data( $force_read = false ) { |
|
616 | - |
|
617 | - // Reset meta data. |
|
618 | - $this->meta_data = array(); |
|
619 | - |
|
620 | - // Maybe abort early. |
|
621 | - if ( ! $this->get_id() || ! $this->data_store ) { |
|
622 | - return; |
|
623 | - } |
|
624 | - |
|
625 | - // Only read from cache if the cache key is set. |
|
626 | - $cache_key = null; |
|
627 | - if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | - $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
630 | - } |
|
631 | - |
|
632 | - // Should we force read? |
|
633 | - if ( empty( $raw_meta_data ) ) { |
|
634 | - $raw_meta_data = $this->data_store->read_meta( $this ); |
|
635 | - |
|
636 | - if ( ! empty( $cache_key ) ) { |
|
637 | - wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
638 | - } |
|
394 | + return $this->get_prop( $key ); |
|
395 | + |
|
396 | + } |
|
397 | + |
|
398 | + /** |
|
399 | + * Get Meta Data by Key. |
|
400 | + * |
|
401 | + * @since 1.0.19 |
|
402 | + * @param string $key Meta Key. |
|
403 | + * @param bool $single return first found meta with key, or all with $key. |
|
404 | + * @param string $context What the value is for. Valid values are view and edit. |
|
405 | + * @return mixed |
|
406 | + */ |
|
407 | + public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
408 | + |
|
409 | + // Check if this is an internal meta key. |
|
410 | + $_key = str_replace( '_wpinv', '', $key ); |
|
411 | + $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
413 | + $function = 'get_' . $_key; |
|
414 | + |
|
415 | + if ( is_callable( array( $this, $function ) ) ) { |
|
416 | + return $this->{$function}(); |
|
417 | + } |
|
418 | + } |
|
419 | + |
|
420 | + // Read the meta data if not yet read. |
|
421 | + $this->maybe_read_meta_data(); |
|
422 | + $meta_data = $this->get_meta_data(); |
|
423 | + $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
424 | + $value = $single ? '' : array(); |
|
425 | + |
|
426 | + if ( ! empty( $array_keys ) ) { |
|
427 | + // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
|
428 | + if ( $single ) { |
|
429 | + $value = $meta_data[ current( $array_keys ) ]->value; |
|
430 | + } else { |
|
431 | + $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
432 | + } |
|
433 | + } |
|
434 | + |
|
435 | + if ( 'view' === $context ) { |
|
436 | + $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
437 | + } |
|
438 | + |
|
439 | + return $value; |
|
440 | + } |
|
441 | + |
|
442 | + /** |
|
443 | + * See if meta data exists, since get_meta always returns a '' or array(). |
|
444 | + * |
|
445 | + * @since 1.0.19 |
|
446 | + * @param string $key Meta Key. |
|
447 | + * @return boolean |
|
448 | + */ |
|
449 | + public function meta_exists( $key = '' ) { |
|
450 | + $this->maybe_read_meta_data(); |
|
451 | + $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | + return in_array( $key, $array_keys, true ); |
|
453 | + } |
|
454 | + |
|
455 | + /** |
|
456 | + * Set all meta data from array. |
|
457 | + * |
|
458 | + * @since 1.0.19 |
|
459 | + * @param array $data Key/Value pairs. |
|
460 | + */ |
|
461 | + public function set_meta_data( $data ) { |
|
462 | + if ( ! empty( $data ) && is_array( $data ) ) { |
|
463 | + $this->maybe_read_meta_data(); |
|
464 | + foreach ( $data as $meta ) { |
|
465 | + $meta = (array) $meta; |
|
466 | + if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
467 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
468 | + array( |
|
469 | + 'id' => $meta['id'], |
|
470 | + 'key' => $meta['key'], |
|
471 | + 'value' => $meta['value'], |
|
472 | + ) |
|
473 | + ); |
|
474 | + } |
|
475 | + } |
|
476 | + } |
|
477 | + } |
|
478 | + |
|
479 | + /** |
|
480 | + * Add meta data. |
|
481 | + * |
|
482 | + * @since 1.0.19 |
|
483 | + * |
|
484 | + * @param string $key Meta key. |
|
485 | + * @param string|array $value Meta value. |
|
486 | + * @param bool $unique Should this be a unique key?. |
|
487 | + */ |
|
488 | + public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
490 | + $function = 'set_' . $key; |
|
491 | + |
|
492 | + if ( is_callable( array( $this, $function ) ) ) { |
|
493 | + return $this->{$function}( $value ); |
|
494 | + } |
|
495 | + } |
|
496 | + |
|
497 | + $this->maybe_read_meta_data(); |
|
498 | + if ( $unique ) { |
|
499 | + $this->delete_meta_data( $key ); |
|
500 | + } |
|
501 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
502 | + array( |
|
503 | + 'key' => $key, |
|
504 | + 'value' => $value, |
|
505 | + ) |
|
506 | + ); |
|
507 | + |
|
508 | + $this->save(); |
|
509 | + } |
|
510 | + |
|
511 | + /** |
|
512 | + * Update meta data by key or ID, if provided. |
|
513 | + * |
|
514 | + * @since 1.0.19 |
|
515 | + * |
|
516 | + * @param string $key Meta key. |
|
517 | + * @param string|array $value Meta value. |
|
518 | + * @param int $meta_id Meta ID. |
|
519 | + */ |
|
520 | + public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | + if ( $this->is_internal_meta_key( $key ) ) { |
|
522 | + $function = 'set_' . $key; |
|
523 | + |
|
524 | + if ( is_callable( array( $this, $function ) ) ) { |
|
525 | + return $this->{$function}( $value ); |
|
526 | + } |
|
527 | + } |
|
528 | + |
|
529 | + $this->maybe_read_meta_data(); |
|
530 | + |
|
531 | + $array_key = false; |
|
532 | + |
|
533 | + if ( $meta_id ) { |
|
534 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | + $array_key = $array_keys ? current( $array_keys ) : false; |
|
536 | + } else { |
|
537 | + // Find matches by key. |
|
538 | + $matches = array(); |
|
539 | + foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | + if ( $meta->key === $key ) { |
|
541 | + $matches[] = $meta_data_array_key; |
|
542 | + } |
|
543 | + } |
|
544 | + |
|
545 | + if ( ! empty( $matches ) ) { |
|
546 | + // Set matches to null so only one key gets the new value. |
|
547 | + foreach ( $matches as $meta_data_array_key ) { |
|
548 | + $this->meta_data[ $meta_data_array_key ]->value = null; |
|
549 | + } |
|
550 | + $array_key = current( $matches ); |
|
551 | + } |
|
552 | + } |
|
553 | + |
|
554 | + if ( false !== $array_key ) { |
|
555 | + $meta = $this->meta_data[ $array_key ]; |
|
556 | + $meta->key = $key; |
|
557 | + $meta->value = $value; |
|
558 | + } else { |
|
559 | + $this->add_meta_data( $key, $value, true ); |
|
560 | + } |
|
561 | + } |
|
562 | + |
|
563 | + /** |
|
564 | + * Delete meta data. |
|
565 | + * |
|
566 | + * @since 1.0.19 |
|
567 | + * @param string $key Meta key. |
|
568 | + */ |
|
569 | + public function delete_meta_data( $key ) { |
|
570 | + $this->maybe_read_meta_data(); |
|
571 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
572 | + |
|
573 | + if ( $array_keys ) { |
|
574 | + foreach ( $array_keys as $array_key ) { |
|
575 | + $this->meta_data[ $array_key ]->value = null; |
|
576 | + } |
|
577 | + } |
|
578 | + } |
|
579 | + |
|
580 | + /** |
|
581 | + * Delete meta data. |
|
582 | + * |
|
583 | + * @since 1.0.19 |
|
584 | + * @param int $mid Meta ID. |
|
585 | + */ |
|
586 | + public function delete_meta_data_by_mid( $mid ) { |
|
587 | + $this->maybe_read_meta_data(); |
|
588 | + $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
589 | + |
|
590 | + if ( $array_keys ) { |
|
591 | + foreach ( $array_keys as $array_key ) { |
|
592 | + $this->meta_data[ $array_key ]->value = null; |
|
593 | + } |
|
594 | + } |
|
595 | + } |
|
596 | + |
|
597 | + /** |
|
598 | + * Read meta data if null. |
|
599 | + * |
|
600 | + * @since 1.0.19 |
|
601 | + */ |
|
602 | + protected function maybe_read_meta_data() { |
|
603 | + if ( is_null( $this->meta_data ) ) { |
|
604 | + $this->read_meta_data(); |
|
605 | + } |
|
606 | + } |
|
607 | + |
|
608 | + /** |
|
609 | + * Read Meta Data from the database. Ignore any internal properties. |
|
610 | + * Uses it's own caches because get_metadata does not provide meta_ids. |
|
611 | + * |
|
612 | + * @since 1.0.19 |
|
613 | + * @param bool $force_read True to force a new DB read (and update cache). |
|
614 | + */ |
|
615 | + public function read_meta_data( $force_read = false ) { |
|
616 | + |
|
617 | + // Reset meta data. |
|
618 | + $this->meta_data = array(); |
|
619 | + |
|
620 | + // Maybe abort early. |
|
621 | + if ( ! $this->get_id() || ! $this->data_store ) { |
|
622 | + return; |
|
623 | + } |
|
624 | + |
|
625 | + // Only read from cache if the cache key is set. |
|
626 | + $cache_key = null; |
|
627 | + if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | + $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
630 | + } |
|
631 | + |
|
632 | + // Should we force read? |
|
633 | + if ( empty( $raw_meta_data ) ) { |
|
634 | + $raw_meta_data = $this->data_store->read_meta( $this ); |
|
635 | + |
|
636 | + if ( ! empty( $cache_key ) ) { |
|
637 | + wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
638 | + } |
|
639 | 639 | } |
640 | 640 | |
641 | - // Set meta data. |
|
642 | - if ( is_array( $raw_meta_data ) ) { |
|
643 | - |
|
644 | - foreach ( $raw_meta_data as $meta ) { |
|
645 | - $this->meta_data[] = new GetPaid_Meta_Data( |
|
646 | - array( |
|
647 | - 'id' => (int) $meta->meta_id, |
|
648 | - 'key' => $meta->meta_key, |
|
649 | - 'value' => maybe_unserialize( $meta->meta_value ), |
|
650 | - ) |
|
651 | - ); |
|
652 | - } |
|
641 | + // Set meta data. |
|
642 | + if ( is_array( $raw_meta_data ) ) { |
|
643 | + |
|
644 | + foreach ( $raw_meta_data as $meta ) { |
|
645 | + $this->meta_data[] = new GetPaid_Meta_Data( |
|
646 | + array( |
|
647 | + 'id' => (int) $meta->meta_id, |
|
648 | + 'key' => $meta->meta_key, |
|
649 | + 'value' => maybe_unserialize( $meta->meta_value ), |
|
650 | + ) |
|
651 | + ); |
|
652 | + } |
|
653 | 653 | } |
654 | 654 | |
655 | - } |
|
656 | - |
|
657 | - /** |
|
658 | - * Update Meta Data in the database. |
|
659 | - * |
|
660 | - * @since 1.0.19 |
|
661 | - */ |
|
662 | - public function save_meta_data() { |
|
663 | - if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
664 | - return; |
|
665 | - } |
|
666 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
667 | - if ( is_null( $meta->value ) ) { |
|
668 | - if ( ! empty( $meta->id ) ) { |
|
669 | - $this->data_store->delete_meta( $this, $meta ); |
|
670 | - unset( $this->meta_data[ $array_key ] ); |
|
671 | - } |
|
672 | - } elseif ( empty( $meta->id ) ) { |
|
673 | - $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
674 | - $meta->apply_changes(); |
|
675 | - } else { |
|
676 | - if ( $meta->get_changes() ) { |
|
677 | - $this->data_store->update_meta( $this, $meta ); |
|
678 | - $meta->apply_changes(); |
|
679 | - } |
|
680 | - } |
|
681 | - } |
|
682 | - if ( ! empty( $this->cache_group ) ) { |
|
683 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
684 | - wp_cache_delete( $cache_key, $this->cache_group ); |
|
685 | - } |
|
686 | - } |
|
687 | - |
|
688 | - /** |
|
689 | - * Set ID. |
|
690 | - * |
|
691 | - * @since 1.0.19 |
|
692 | - * @param int $id ID. |
|
693 | - */ |
|
694 | - public function set_id( $id ) { |
|
695 | - $this->id = absint( $id ); |
|
696 | - } |
|
697 | - |
|
698 | - /** |
|
699 | - * Sets item status. |
|
700 | - * |
|
701 | - * @since 1.0.19 |
|
702 | - * @param string $status New status. |
|
703 | - * @return array details of change. |
|
704 | - */ |
|
705 | - public function set_status( $status ) { |
|
655 | + } |
|
656 | + |
|
657 | + /** |
|
658 | + * Update Meta Data in the database. |
|
659 | + * |
|
660 | + * @since 1.0.19 |
|
661 | + */ |
|
662 | + public function save_meta_data() { |
|
663 | + if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
664 | + return; |
|
665 | + } |
|
666 | + foreach ( $this->meta_data as $array_key => $meta ) { |
|
667 | + if ( is_null( $meta->value ) ) { |
|
668 | + if ( ! empty( $meta->id ) ) { |
|
669 | + $this->data_store->delete_meta( $this, $meta ); |
|
670 | + unset( $this->meta_data[ $array_key ] ); |
|
671 | + } |
|
672 | + } elseif ( empty( $meta->id ) ) { |
|
673 | + $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
674 | + $meta->apply_changes(); |
|
675 | + } else { |
|
676 | + if ( $meta->get_changes() ) { |
|
677 | + $this->data_store->update_meta( $this, $meta ); |
|
678 | + $meta->apply_changes(); |
|
679 | + } |
|
680 | + } |
|
681 | + } |
|
682 | + if ( ! empty( $this->cache_group ) ) { |
|
683 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
684 | + wp_cache_delete( $cache_key, $this->cache_group ); |
|
685 | + } |
|
686 | + } |
|
687 | + |
|
688 | + /** |
|
689 | + * Set ID. |
|
690 | + * |
|
691 | + * @since 1.0.19 |
|
692 | + * @param int $id ID. |
|
693 | + */ |
|
694 | + public function set_id( $id ) { |
|
695 | + $this->id = absint( $id ); |
|
696 | + } |
|
697 | + |
|
698 | + /** |
|
699 | + * Sets item status. |
|
700 | + * |
|
701 | + * @since 1.0.19 |
|
702 | + * @param string $status New status. |
|
703 | + * @return array details of change. |
|
704 | + */ |
|
705 | + public function set_status( $status ) { |
|
706 | 706 | $old_status = $this->get_status(); |
707 | 707 | |
708 | - $this->set_prop( 'status', $status ); |
|
709 | - |
|
710 | - return array( |
|
711 | - 'from' => $old_status, |
|
712 | - 'to' => $status, |
|
713 | - ); |
|
714 | - } |
|
715 | - |
|
716 | - /** |
|
717 | - * Set all props to default values. |
|
718 | - * |
|
719 | - * @since 1.0.19 |
|
720 | - */ |
|
721 | - public function set_defaults() { |
|
722 | - $this->data = $this->default_data; |
|
723 | - $this->changes = array(); |
|
724 | - $this->set_object_read( false ); |
|
725 | - } |
|
726 | - |
|
727 | - /** |
|
728 | - * Set object read property. |
|
729 | - * |
|
730 | - * @since 1.0.19 |
|
731 | - * @param boolean $read Should read?. |
|
732 | - */ |
|
733 | - public function set_object_read( $read = true ) { |
|
734 | - $this->object_read = (bool) $read; |
|
735 | - } |
|
736 | - |
|
737 | - /** |
|
738 | - * Get object read property. |
|
739 | - * |
|
740 | - * @since 1.0.19 |
|
741 | - * @return boolean |
|
742 | - */ |
|
743 | - public function get_object_read() { |
|
744 | - return (bool) $this->object_read; |
|
745 | - } |
|
746 | - |
|
747 | - /** |
|
748 | - * Set a collection of props in one go, collect any errors, and return the result. |
|
749 | - * Only sets using public methods. |
|
750 | - * |
|
751 | - * @since 1.0.19 |
|
752 | - * |
|
753 | - * @param array $props Key value pairs to set. Key is the prop and should map to a setter function name. |
|
754 | - * @param string $context In what context to run this. |
|
755 | - * |
|
756 | - * @return bool|WP_Error |
|
757 | - */ |
|
758 | - public function set_props( $props, $context = 'set' ) { |
|
759 | - $errors = false; |
|
760 | - |
|
761 | - $props = wp_unslash( $props ); |
|
762 | - foreach ( $props as $prop => $value ) { |
|
763 | - try { |
|
764 | - /** |
|
765 | - * Checks if the prop being set is allowed, and the value is not null. |
|
766 | - */ |
|
767 | - if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
768 | - continue; |
|
769 | - } |
|
770 | - $setter = "set_$prop"; |
|
771 | - |
|
772 | - if ( is_callable( array( $this, $setter ) ) ) { |
|
773 | - $this->{$setter}( $value ); |
|
774 | - } |
|
775 | - } catch ( Exception $e ) { |
|
776 | - if ( ! $errors ) { |
|
777 | - $errors = new WP_Error(); |
|
778 | - } |
|
779 | - $errors->add( $e->getCode(), $e->getMessage() ); |
|
780 | - $this->last_error = $e->getMessage(); |
|
781 | - } |
|
782 | - } |
|
783 | - |
|
784 | - return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
785 | - } |
|
786 | - |
|
787 | - /** |
|
788 | - * Sets a prop for a setter method. |
|
789 | - * |
|
790 | - * This stores changes in a special array so we can track what needs saving |
|
791 | - * the the DB later. |
|
792 | - * |
|
793 | - * @since 1.0.19 |
|
794 | - * @param string $prop Name of prop to set. |
|
795 | - * @param mixed $value Value of the prop. |
|
796 | - */ |
|
797 | - protected function set_prop( $prop, $value ) { |
|
798 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
799 | - if ( true === $this->object_read ) { |
|
800 | - if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
801 | - $this->changes[ $prop ] = $value; |
|
802 | - } |
|
803 | - } else { |
|
804 | - $this->data[ $prop ] = $value; |
|
805 | - } |
|
806 | - } |
|
807 | - } |
|
808 | - |
|
809 | - /** |
|
810 | - * Return data changes only. |
|
811 | - * |
|
812 | - * @since 1.0.19 |
|
813 | - * @return array |
|
814 | - */ |
|
815 | - public function get_changes() { |
|
816 | - return $this->changes; |
|
817 | - } |
|
818 | - |
|
819 | - /** |
|
820 | - * Merge changes with data and clear. |
|
821 | - * |
|
822 | - * @since 1.0.19 |
|
823 | - */ |
|
824 | - public function apply_changes() { |
|
825 | - $this->data = array_replace( $this->data, $this->changes ); |
|
826 | - $this->changes = array(); |
|
827 | - } |
|
828 | - |
|
829 | - /** |
|
830 | - * Prefix for action and filter hooks on data. |
|
831 | - * |
|
832 | - * @since 1.0.19 |
|
833 | - * @return string |
|
834 | - */ |
|
835 | - protected function get_hook_prefix() { |
|
836 | - return 'wpinv_get_' . $this->object_type . '_'; |
|
837 | - } |
|
838 | - |
|
839 | - /** |
|
840 | - * Gets a prop for a getter method. |
|
841 | - * |
|
842 | - * Gets the value from either current pending changes, or the data itself. |
|
843 | - * Context controls what happens to the value before it's returned. |
|
844 | - * |
|
845 | - * @since 1.0.19 |
|
846 | - * @param string $prop Name of prop to get. |
|
847 | - * @param string $context What the value is for. Valid values are view and edit. |
|
848 | - * @return mixed |
|
849 | - */ |
|
850 | - protected function get_prop( $prop, $context = 'view' ) { |
|
851 | - $value = null; |
|
852 | - |
|
853 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
854 | - $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
855 | - |
|
856 | - if ( 'view' === $context ) { |
|
857 | - $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
858 | - } |
|
859 | - } |
|
860 | - |
|
861 | - return $value; |
|
862 | - } |
|
863 | - |
|
864 | - /** |
|
865 | - * Sets a date prop whilst handling formatting and datetime objects. |
|
866 | - * |
|
867 | - * @since 1.0.19 |
|
868 | - * @param string $prop Name of prop to set. |
|
869 | - * @param string|integer $value Value of the prop. |
|
870 | - */ |
|
871 | - protected function set_date_prop( $prop, $value ) { |
|
872 | - |
|
873 | - if ( empty( $value ) ) { |
|
874 | - $this->set_prop( $prop, null ); |
|
875 | - return; |
|
876 | - } |
|
877 | - $this->set_prop( $prop, $value ); |
|
878 | - |
|
879 | - } |
|
880 | - |
|
881 | - /** |
|
882 | - * When invalid data is found, throw an exception unless reading from the DB. |
|
883 | - * |
|
884 | - * @since 1.0.19 |
|
885 | - * @param string $code Error code. |
|
886 | - * @param string $message Error message. |
|
887 | - */ |
|
888 | - protected function error( $code, $message ) { |
|
889 | - $this->last_error = $message; |
|
890 | - } |
|
891 | - |
|
892 | - /** |
|
893 | - * Checks if the object is saved in the database |
|
894 | - * |
|
895 | - * @since 1.0.19 |
|
896 | - * @return bool |
|
897 | - */ |
|
898 | - public function exists() { |
|
899 | - $id = $this->get_id(); |
|
900 | - return ! empty( $id ); |
|
901 | - } |
|
708 | + $this->set_prop( 'status', $status ); |
|
709 | + |
|
710 | + return array( |
|
711 | + 'from' => $old_status, |
|
712 | + 'to' => $status, |
|
713 | + ); |
|
714 | + } |
|
715 | + |
|
716 | + /** |
|
717 | + * Set all props to default values. |
|
718 | + * |
|
719 | + * @since 1.0.19 |
|
720 | + */ |
|
721 | + public function set_defaults() { |
|
722 | + $this->data = $this->default_data; |
|
723 | + $this->changes = array(); |
|
724 | + $this->set_object_read( false ); |
|
725 | + } |
|
726 | + |
|
727 | + /** |
|
728 | + * Set object read property. |
|
729 | + * |
|
730 | + * @since 1.0.19 |
|
731 | + * @param boolean $read Should read?. |
|
732 | + */ |
|
733 | + public function set_object_read( $read = true ) { |
|
734 | + $this->object_read = (bool) $read; |
|
735 | + } |
|
736 | + |
|
737 | + /** |
|
738 | + * Get object read property. |
|
739 | + * |
|
740 | + * @since 1.0.19 |
|
741 | + * @return boolean |
|
742 | + */ |
|
743 | + public function get_object_read() { |
|
744 | + return (bool) $this->object_read; |
|
745 | + } |
|
746 | + |
|
747 | + /** |
|
748 | + * Set a collection of props in one go, collect any errors, and return the result. |
|
749 | + * Only sets using public methods. |
|
750 | + * |
|
751 | + * @since 1.0.19 |
|
752 | + * |
|
753 | + * @param array $props Key value pairs to set. Key is the prop and should map to a setter function name. |
|
754 | + * @param string $context In what context to run this. |
|
755 | + * |
|
756 | + * @return bool|WP_Error |
|
757 | + */ |
|
758 | + public function set_props( $props, $context = 'set' ) { |
|
759 | + $errors = false; |
|
760 | + |
|
761 | + $props = wp_unslash( $props ); |
|
762 | + foreach ( $props as $prop => $value ) { |
|
763 | + try { |
|
764 | + /** |
|
765 | + * Checks if the prop being set is allowed, and the value is not null. |
|
766 | + */ |
|
767 | + if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
768 | + continue; |
|
769 | + } |
|
770 | + $setter = "set_$prop"; |
|
771 | + |
|
772 | + if ( is_callable( array( $this, $setter ) ) ) { |
|
773 | + $this->{$setter}( $value ); |
|
774 | + } |
|
775 | + } catch ( Exception $e ) { |
|
776 | + if ( ! $errors ) { |
|
777 | + $errors = new WP_Error(); |
|
778 | + } |
|
779 | + $errors->add( $e->getCode(), $e->getMessage() ); |
|
780 | + $this->last_error = $e->getMessage(); |
|
781 | + } |
|
782 | + } |
|
783 | + |
|
784 | + return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
785 | + } |
|
786 | + |
|
787 | + /** |
|
788 | + * Sets a prop for a setter method. |
|
789 | + * |
|
790 | + * This stores changes in a special array so we can track what needs saving |
|
791 | + * the the DB later. |
|
792 | + * |
|
793 | + * @since 1.0.19 |
|
794 | + * @param string $prop Name of prop to set. |
|
795 | + * @param mixed $value Value of the prop. |
|
796 | + */ |
|
797 | + protected function set_prop( $prop, $value ) { |
|
798 | + if ( array_key_exists( $prop, $this->data ) ) { |
|
799 | + if ( true === $this->object_read ) { |
|
800 | + if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
801 | + $this->changes[ $prop ] = $value; |
|
802 | + } |
|
803 | + } else { |
|
804 | + $this->data[ $prop ] = $value; |
|
805 | + } |
|
806 | + } |
|
807 | + } |
|
808 | + |
|
809 | + /** |
|
810 | + * Return data changes only. |
|
811 | + * |
|
812 | + * @since 1.0.19 |
|
813 | + * @return array |
|
814 | + */ |
|
815 | + public function get_changes() { |
|
816 | + return $this->changes; |
|
817 | + } |
|
818 | + |
|
819 | + /** |
|
820 | + * Merge changes with data and clear. |
|
821 | + * |
|
822 | + * @since 1.0.19 |
|
823 | + */ |
|
824 | + public function apply_changes() { |
|
825 | + $this->data = array_replace( $this->data, $this->changes ); |
|
826 | + $this->changes = array(); |
|
827 | + } |
|
828 | + |
|
829 | + /** |
|
830 | + * Prefix for action and filter hooks on data. |
|
831 | + * |
|
832 | + * @since 1.0.19 |
|
833 | + * @return string |
|
834 | + */ |
|
835 | + protected function get_hook_prefix() { |
|
836 | + return 'wpinv_get_' . $this->object_type . '_'; |
|
837 | + } |
|
838 | + |
|
839 | + /** |
|
840 | + * Gets a prop for a getter method. |
|
841 | + * |
|
842 | + * Gets the value from either current pending changes, or the data itself. |
|
843 | + * Context controls what happens to the value before it's returned. |
|
844 | + * |
|
845 | + * @since 1.0.19 |
|
846 | + * @param string $prop Name of prop to get. |
|
847 | + * @param string $context What the value is for. Valid values are view and edit. |
|
848 | + * @return mixed |
|
849 | + */ |
|
850 | + protected function get_prop( $prop, $context = 'view' ) { |
|
851 | + $value = null; |
|
852 | + |
|
853 | + if ( array_key_exists( $prop, $this->data ) ) { |
|
854 | + $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
855 | + |
|
856 | + if ( 'view' === $context ) { |
|
857 | + $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
858 | + } |
|
859 | + } |
|
860 | + |
|
861 | + return $value; |
|
862 | + } |
|
863 | + |
|
864 | + /** |
|
865 | + * Sets a date prop whilst handling formatting and datetime objects. |
|
866 | + * |
|
867 | + * @since 1.0.19 |
|
868 | + * @param string $prop Name of prop to set. |
|
869 | + * @param string|integer $value Value of the prop. |
|
870 | + */ |
|
871 | + protected function set_date_prop( $prop, $value ) { |
|
872 | + |
|
873 | + if ( empty( $value ) ) { |
|
874 | + $this->set_prop( $prop, null ); |
|
875 | + return; |
|
876 | + } |
|
877 | + $this->set_prop( $prop, $value ); |
|
878 | + |
|
879 | + } |
|
880 | + |
|
881 | + /** |
|
882 | + * When invalid data is found, throw an exception unless reading from the DB. |
|
883 | + * |
|
884 | + * @since 1.0.19 |
|
885 | + * @param string $code Error code. |
|
886 | + * @param string $message Error message. |
|
887 | + */ |
|
888 | + protected function error( $code, $message ) { |
|
889 | + $this->last_error = $message; |
|
890 | + } |
|
891 | + |
|
892 | + /** |
|
893 | + * Checks if the object is saved in the database |
|
894 | + * |
|
895 | + * @since 1.0.19 |
|
896 | + * @return bool |
|
897 | + */ |
|
898 | + public function exists() { |
|
899 | + $id = $this->get_id(); |
|
900 | + return ! empty( $id ); |
|
901 | + } |
|
902 | 902 | |
903 | 903 | } |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | * |
9 | 9 | */ |
10 | 10 | |
11 | -if ( ! defined( 'ABSPATH' ) ) { |
|
11 | +if (!defined('ABSPATH')) { |
|
12 | 12 | exit; |
13 | 13 | } |
14 | 14 | |
@@ -117,8 +117,8 @@ discard block |
||
117 | 117 | * |
118 | 118 | * @param int|object|array|string $read ID to load from the DB (optional) or already queried data. |
119 | 119 | */ |
120 | - public function __construct( $read = 0 ) { |
|
121 | - $this->data = array_merge( $this->data, $this->extra_data ); |
|
120 | + public function __construct($read = 0) { |
|
121 | + $this->data = array_merge($this->data, $this->extra_data); |
|
122 | 122 | $this->default_data = $this->data; |
123 | 123 | } |
124 | 124 | |
@@ -128,7 +128,7 @@ discard block |
||
128 | 128 | * @return array |
129 | 129 | */ |
130 | 130 | public function __sleep() { |
131 | - return array( 'id' ); |
|
131 | + return array('id'); |
|
132 | 132 | } |
133 | 133 | |
134 | 134 | /** |
@@ -137,10 +137,10 @@ discard block |
||
137 | 137 | * If the object no longer exists, remove the ID. |
138 | 138 | */ |
139 | 139 | public function __wakeup() { |
140 | - $this->__construct( absint( $this->id ) ); |
|
140 | + $this->__construct(absint($this->id)); |
|
141 | 141 | |
142 | - if ( ! empty( $this->last_error ) ) { |
|
143 | - $this->set_id( 0 ); |
|
142 | + if (!empty($this->last_error)) { |
|
143 | + $this->set_id(0); |
|
144 | 144 | } |
145 | 145 | |
146 | 146 | } |
@@ -152,11 +152,11 @@ discard block |
||
152 | 152 | */ |
153 | 153 | public function __clone() { |
154 | 154 | $this->maybe_read_meta_data(); |
155 | - if ( ! empty( $this->meta_data ) ) { |
|
156 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
157 | - $this->meta_data[ $array_key ] = clone $meta; |
|
158 | - if ( ! empty( $meta->id ) ) { |
|
159 | - $this->meta_data[ $array_key ]->id = null; |
|
155 | + if (!empty($this->meta_data)) { |
|
156 | + foreach ($this->meta_data as $array_key => $meta) { |
|
157 | + $this->meta_data[$array_key] = clone $meta; |
|
158 | + if (!empty($meta->id)) { |
|
159 | + $this->meta_data[$array_key]->id = null; |
|
160 | 160 | } |
161 | 161 | } |
162 | 162 | } |
@@ -199,8 +199,8 @@ discard block |
||
199 | 199 | * @param string $context View or edit context. |
200 | 200 | * @return string |
201 | 201 | */ |
202 | - public function get_status( $context = 'view' ) { |
|
203 | - return $this->get_prop( 'status', $context ); |
|
202 | + public function get_status($context = 'view') { |
|
203 | + return $this->get_prop('status', $context); |
|
204 | 204 | } |
205 | 205 | |
206 | 206 | /** |
@@ -210,10 +210,10 @@ discard block |
||
210 | 210 | * @param bool $force_delete Should the data be deleted permanently. |
211 | 211 | * @return bool result |
212 | 212 | */ |
213 | - public function delete( $force_delete = false ) { |
|
214 | - if ( $this->data_store && $this->exists() ) { |
|
215 | - $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) ); |
|
216 | - $this->set_id( 0 ); |
|
213 | + public function delete($force_delete = false) { |
|
214 | + if ($this->data_store && $this->exists()) { |
|
215 | + $this->data_store->delete($this, array('force_delete' => $force_delete)); |
|
216 | + $this->set_id(0); |
|
217 | 217 | return true; |
218 | 218 | } |
219 | 219 | return false; |
@@ -226,7 +226,7 @@ discard block |
||
226 | 226 | * @return int |
227 | 227 | */ |
228 | 228 | public function save() { |
229 | - if ( ! $this->data_store ) { |
|
229 | + if (!$this->data_store) { |
|
230 | 230 | return $this->get_id(); |
231 | 231 | } |
232 | 232 | |
@@ -236,12 +236,12 @@ discard block |
||
236 | 236 | * @param GetPaid_Data $this The object being saved. |
237 | 237 | * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
238 | 238 | */ |
239 | - do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
239 | + do_action('getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store); |
|
240 | 240 | |
241 | - if ( $this->get_id() ) { |
|
242 | - $this->data_store->update( $this ); |
|
241 | + if ($this->get_id()) { |
|
242 | + $this->data_store->update($this); |
|
243 | 243 | } else { |
244 | - $this->data_store->create( $this ); |
|
244 | + $this->data_store->create($this); |
|
245 | 245 | } |
246 | 246 | |
247 | 247 | /** |
@@ -250,7 +250,7 @@ discard block |
||
250 | 250 | * @param GetPaid_Data $this The object being saved. |
251 | 251 | * @param GetPaid_Data_Store_WP $data_store The data store persisting the data. |
252 | 252 | */ |
253 | - do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store ); |
|
253 | + do_action('getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store); |
|
254 | 254 | |
255 | 255 | return $this->get_id(); |
256 | 256 | } |
@@ -262,7 +262,7 @@ discard block |
||
262 | 262 | * @return string Data in JSON format. |
263 | 263 | */ |
264 | 264 | public function __toString() { |
265 | - return wp_json_encode( $this->get_data() ); |
|
265 | + return wp_json_encode($this->get_data()); |
|
266 | 266 | } |
267 | 267 | |
268 | 268 | /** |
@@ -272,7 +272,7 @@ discard block |
||
272 | 272 | * @return array |
273 | 273 | */ |
274 | 274 | public function get_data() { |
275 | - return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) ); |
|
275 | + return array_merge(array('id' => $this->get_id()), $this->data, array('meta_data' => $this->get_meta_data())); |
|
276 | 276 | } |
277 | 277 | |
278 | 278 | /** |
@@ -282,7 +282,7 @@ discard block |
||
282 | 282 | * @return array |
283 | 283 | */ |
284 | 284 | public function get_data_keys() { |
285 | - return array_keys( $this->data ); |
|
285 | + return array_keys($this->data); |
|
286 | 286 | } |
287 | 287 | |
288 | 288 | /** |
@@ -292,7 +292,7 @@ discard block |
||
292 | 292 | * @return array |
293 | 293 | */ |
294 | 294 | public function get_extra_data_keys() { |
295 | - return array_keys( $this->extra_data ); |
|
295 | + return array_keys($this->extra_data); |
|
296 | 296 | } |
297 | 297 | |
298 | 298 | /** |
@@ -302,8 +302,8 @@ discard block |
||
302 | 302 | * @param mixed $meta Meta value to check. |
303 | 303 | * @return bool |
304 | 304 | */ |
305 | - protected function filter_null_meta( $meta ) { |
|
306 | - return ! is_null( $meta->value ); |
|
305 | + protected function filter_null_meta($meta) { |
|
306 | + return !is_null($meta->value); |
|
307 | 307 | } |
308 | 308 | |
309 | 309 | /** |
@@ -314,7 +314,7 @@ discard block |
||
314 | 314 | */ |
315 | 315 | public function get_meta_data() { |
316 | 316 | $this->maybe_read_meta_data(); |
317 | - return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) ); |
|
317 | + return array_values(array_filter($this->meta_data, array($this, 'filter_null_meta'))); |
|
318 | 318 | } |
319 | 319 | |
320 | 320 | /** |
@@ -324,21 +324,21 @@ discard block |
||
324 | 324 | * @param string $key Key to check. |
325 | 325 | * @return bool true if it's an internal key, false otherwise |
326 | 326 | */ |
327 | - protected function is_internal_meta_key( $key ) { |
|
328 | - $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true ); |
|
327 | + protected function is_internal_meta_key($key) { |
|
328 | + $internal_meta_key = !empty($key) && $this->data_store && in_array($key, $this->data_store->get_internal_meta_keys(), true); |
|
329 | 329 | |
330 | - if ( ! $internal_meta_key ) { |
|
330 | + if (!$internal_meta_key) { |
|
331 | 331 | return false; |
332 | 332 | } |
333 | 333 | |
334 | - $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) ); |
|
334 | + $has_setter_or_getter = is_callable(array($this, 'set_' . $key)) || is_callable(array($this, 'get_' . $key)); |
|
335 | 335 | |
336 | - if ( ! $has_setter_or_getter ) { |
|
336 | + if (!$has_setter_or_getter) { |
|
337 | 337 | return false; |
338 | 338 | } |
339 | 339 | |
340 | 340 | /* translators: %s: $key Key to check */ |
341 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
341 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
342 | 342 | |
343 | 343 | return true; |
344 | 344 | } |
@@ -352,20 +352,20 @@ discard block |
||
352 | 352 | * @access public |
353 | 353 | * |
354 | 354 | */ |
355 | - public function __set( $key, $value ) { |
|
355 | + public function __set($key, $value) { |
|
356 | 356 | |
357 | - if ( 'id' == strtolower( $key ) ) { |
|
358 | - return $this->set_id( $value ); |
|
357 | + if ('id' == strtolower($key)) { |
|
358 | + return $this->set_id($value); |
|
359 | 359 | } |
360 | 360 | |
361 | - if ( method_exists( $this, "set_$key" ) ) { |
|
361 | + if (method_exists($this, "set_$key")) { |
|
362 | 362 | |
363 | 363 | /* translators: %s: $key Key to set */ |
364 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
364 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
365 | 365 | |
366 | - call_user_func( array( $this, "set_$key" ), $value ); |
|
366 | + call_user_func(array($this, "set_$key"), $value); |
|
367 | 367 | } else { |
368 | - $this->set_prop( $key, $value ); |
|
368 | + $this->set_prop($key, $value); |
|
369 | 369 | } |
370 | 370 | |
371 | 371 | } |
@@ -373,25 +373,25 @@ discard block |
||
373 | 373 | /** |
374 | 374 | * Margic method for retrieving a property. |
375 | 375 | */ |
376 | - public function __get( $key ) { |
|
376 | + public function __get($key) { |
|
377 | 377 | |
378 | 378 | // Check if we have a helper method for that. |
379 | - if ( method_exists( $this, 'get_' . $key ) ) { |
|
379 | + if (method_exists($this, 'get_' . $key)) { |
|
380 | 380 | |
381 | - if ( 'post_type' != $key ) { |
|
381 | + if ('post_type' != $key) { |
|
382 | 382 | /* translators: %s: $key Key to set */ |
383 | - getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' ); |
|
383 | + getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19'); |
|
384 | 384 | } |
385 | 385 | |
386 | - return call_user_func( array( $this, 'get_' . $key ) ); |
|
386 | + return call_user_func(array($this, 'get_' . $key)); |
|
387 | 387 | } |
388 | 388 | |
389 | 389 | // Check if the key is in the associated $post object. |
390 | - if ( ! empty( $this->post ) && isset( $this->post->$key ) ) { |
|
390 | + if (!empty($this->post) && isset($this->post->$key)) { |
|
391 | 391 | return $this->post->$key; |
392 | 392 | } |
393 | 393 | |
394 | - return $this->get_prop( $key ); |
|
394 | + return $this->get_prop($key); |
|
395 | 395 | |
396 | 396 | } |
397 | 397 | |
@@ -404,15 +404,15 @@ discard block |
||
404 | 404 | * @param string $context What the value is for. Valid values are view and edit. |
405 | 405 | * @return mixed |
406 | 406 | */ |
407 | - public function get_meta( $key = '', $single = true, $context = 'view' ) { |
|
407 | + public function get_meta($key = '', $single = true, $context = 'view') { |
|
408 | 408 | |
409 | 409 | // Check if this is an internal meta key. |
410 | - $_key = str_replace( '_wpinv', '', $key ); |
|
411 | - $_key = str_replace( 'wpinv', '', $_key ); |
|
412 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
410 | + $_key = str_replace('_wpinv', '', $key); |
|
411 | + $_key = str_replace('wpinv', '', $_key); |
|
412 | + if ($this->is_internal_meta_key($key)) { |
|
413 | 413 | $function = 'get_' . $_key; |
414 | 414 | |
415 | - if ( is_callable( array( $this, $function ) ) ) { |
|
415 | + if (is_callable(array($this, $function))) { |
|
416 | 416 | return $this->{$function}(); |
417 | 417 | } |
418 | 418 | } |
@@ -420,20 +420,20 @@ discard block |
||
420 | 420 | // Read the meta data if not yet read. |
421 | 421 | $this->maybe_read_meta_data(); |
422 | 422 | $meta_data = $this->get_meta_data(); |
423 | - $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true ); |
|
423 | + $array_keys = array_keys(wp_list_pluck($meta_data, 'key'), $key, true); |
|
424 | 424 | $value = $single ? '' : array(); |
425 | 425 | |
426 | - if ( ! empty( $array_keys ) ) { |
|
426 | + if (!empty($array_keys)) { |
|
427 | 427 | // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()). |
428 | - if ( $single ) { |
|
429 | - $value = $meta_data[ current( $array_keys ) ]->value; |
|
428 | + if ($single) { |
|
429 | + $value = $meta_data[current($array_keys)]->value; |
|
430 | 430 | } else { |
431 | - $value = array_intersect_key( $meta_data, array_flip( $array_keys ) ); |
|
431 | + $value = array_intersect_key($meta_data, array_flip($array_keys)); |
|
432 | 432 | } |
433 | 433 | } |
434 | 434 | |
435 | - if ( 'view' === $context ) { |
|
436 | - $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this ); |
|
435 | + if ('view' === $context) { |
|
436 | + $value = apply_filters($this->get_hook_prefix() . $key, $value, $this); |
|
437 | 437 | } |
438 | 438 | |
439 | 439 | return $value; |
@@ -446,10 +446,10 @@ discard block |
||
446 | 446 | * @param string $key Meta Key. |
447 | 447 | * @return boolean |
448 | 448 | */ |
449 | - public function meta_exists( $key = '' ) { |
|
449 | + public function meta_exists($key = '') { |
|
450 | 450 | $this->maybe_read_meta_data(); |
451 | - $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' ); |
|
452 | - return in_array( $key, $array_keys, true ); |
|
451 | + $array_keys = wp_list_pluck($this->get_meta_data(), 'key'); |
|
452 | + return in_array($key, $array_keys, true); |
|
453 | 453 | } |
454 | 454 | |
455 | 455 | /** |
@@ -458,12 +458,12 @@ discard block |
||
458 | 458 | * @since 1.0.19 |
459 | 459 | * @param array $data Key/Value pairs. |
460 | 460 | */ |
461 | - public function set_meta_data( $data ) { |
|
462 | - if ( ! empty( $data ) && is_array( $data ) ) { |
|
461 | + public function set_meta_data($data) { |
|
462 | + if (!empty($data) && is_array($data)) { |
|
463 | 463 | $this->maybe_read_meta_data(); |
464 | - foreach ( $data as $meta ) { |
|
464 | + foreach ($data as $meta) { |
|
465 | 465 | $meta = (array) $meta; |
466 | - if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) { |
|
466 | + if (isset($meta['key'], $meta['value'], $meta['id'])) { |
|
467 | 467 | $this->meta_data[] = new GetPaid_Meta_Data( |
468 | 468 | array( |
469 | 469 | 'id' => $meta['id'], |
@@ -485,18 +485,18 @@ discard block |
||
485 | 485 | * @param string|array $value Meta value. |
486 | 486 | * @param bool $unique Should this be a unique key?. |
487 | 487 | */ |
488 | - public function add_meta_data( $key, $value, $unique = false ) { |
|
489 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
488 | + public function add_meta_data($key, $value, $unique = false) { |
|
489 | + if ($this->is_internal_meta_key($key)) { |
|
490 | 490 | $function = 'set_' . $key; |
491 | 491 | |
492 | - if ( is_callable( array( $this, $function ) ) ) { |
|
493 | - return $this->{$function}( $value ); |
|
492 | + if (is_callable(array($this, $function))) { |
|
493 | + return $this->{$function}($value); |
|
494 | 494 | } |
495 | 495 | } |
496 | 496 | |
497 | 497 | $this->maybe_read_meta_data(); |
498 | - if ( $unique ) { |
|
499 | - $this->delete_meta_data( $key ); |
|
498 | + if ($unique) { |
|
499 | + $this->delete_meta_data($key); |
|
500 | 500 | } |
501 | 501 | $this->meta_data[] = new GetPaid_Meta_Data( |
502 | 502 | array( |
@@ -517,12 +517,12 @@ discard block |
||
517 | 517 | * @param string|array $value Meta value. |
518 | 518 | * @param int $meta_id Meta ID. |
519 | 519 | */ |
520 | - public function update_meta_data( $key, $value, $meta_id = 0 ) { |
|
521 | - if ( $this->is_internal_meta_key( $key ) ) { |
|
520 | + public function update_meta_data($key, $value, $meta_id = 0) { |
|
521 | + if ($this->is_internal_meta_key($key)) { |
|
522 | 522 | $function = 'set_' . $key; |
523 | 523 | |
524 | - if ( is_callable( array( $this, $function ) ) ) { |
|
525 | - return $this->{$function}( $value ); |
|
524 | + if (is_callable(array($this, $function))) { |
|
525 | + return $this->{$function}($value); |
|
526 | 526 | } |
527 | 527 | } |
528 | 528 | |
@@ -530,33 +530,33 @@ discard block |
||
530 | 530 | |
531 | 531 | $array_key = false; |
532 | 532 | |
533 | - if ( $meta_id ) { |
|
534 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true ); |
|
535 | - $array_key = $array_keys ? current( $array_keys ) : false; |
|
533 | + if ($meta_id) { |
|
534 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), $meta_id, true); |
|
535 | + $array_key = $array_keys ? current($array_keys) : false; |
|
536 | 536 | } else { |
537 | 537 | // Find matches by key. |
538 | 538 | $matches = array(); |
539 | - foreach ( $this->meta_data as $meta_data_array_key => $meta ) { |
|
540 | - if ( $meta->key === $key ) { |
|
539 | + foreach ($this->meta_data as $meta_data_array_key => $meta) { |
|
540 | + if ($meta->key === $key) { |
|
541 | 541 | $matches[] = $meta_data_array_key; |
542 | 542 | } |
543 | 543 | } |
544 | 544 | |
545 | - if ( ! empty( $matches ) ) { |
|
545 | + if (!empty($matches)) { |
|
546 | 546 | // Set matches to null so only one key gets the new value. |
547 | - foreach ( $matches as $meta_data_array_key ) { |
|
548 | - $this->meta_data[ $meta_data_array_key ]->value = null; |
|
547 | + foreach ($matches as $meta_data_array_key) { |
|
548 | + $this->meta_data[$meta_data_array_key]->value = null; |
|
549 | 549 | } |
550 | - $array_key = current( $matches ); |
|
550 | + $array_key = current($matches); |
|
551 | 551 | } |
552 | 552 | } |
553 | 553 | |
554 | - if ( false !== $array_key ) { |
|
555 | - $meta = $this->meta_data[ $array_key ]; |
|
554 | + if (false !== $array_key) { |
|
555 | + $meta = $this->meta_data[$array_key]; |
|
556 | 556 | $meta->key = $key; |
557 | 557 | $meta->value = $value; |
558 | 558 | } else { |
559 | - $this->add_meta_data( $key, $value, true ); |
|
559 | + $this->add_meta_data($key, $value, true); |
|
560 | 560 | } |
561 | 561 | } |
562 | 562 | |
@@ -566,13 +566,13 @@ discard block |
||
566 | 566 | * @since 1.0.19 |
567 | 567 | * @param string $key Meta key. |
568 | 568 | */ |
569 | - public function delete_meta_data( $key ) { |
|
569 | + public function delete_meta_data($key) { |
|
570 | 570 | $this->maybe_read_meta_data(); |
571 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true ); |
|
571 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'key'), $key, true); |
|
572 | 572 | |
573 | - if ( $array_keys ) { |
|
574 | - foreach ( $array_keys as $array_key ) { |
|
575 | - $this->meta_data[ $array_key ]->value = null; |
|
573 | + if ($array_keys) { |
|
574 | + foreach ($array_keys as $array_key) { |
|
575 | + $this->meta_data[$array_key]->value = null; |
|
576 | 576 | } |
577 | 577 | } |
578 | 578 | } |
@@ -583,13 +583,13 @@ discard block |
||
583 | 583 | * @since 1.0.19 |
584 | 584 | * @param int $mid Meta ID. |
585 | 585 | */ |
586 | - public function delete_meta_data_by_mid( $mid ) { |
|
586 | + public function delete_meta_data_by_mid($mid) { |
|
587 | 587 | $this->maybe_read_meta_data(); |
588 | - $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true ); |
|
588 | + $array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), (int) $mid, true); |
|
589 | 589 | |
590 | - if ( $array_keys ) { |
|
591 | - foreach ( $array_keys as $array_key ) { |
|
592 | - $this->meta_data[ $array_key ]->value = null; |
|
590 | + if ($array_keys) { |
|
591 | + foreach ($array_keys as $array_key) { |
|
592 | + $this->meta_data[$array_key]->value = null; |
|
593 | 593 | } |
594 | 594 | } |
595 | 595 | } |
@@ -600,7 +600,7 @@ discard block |
||
600 | 600 | * @since 1.0.19 |
601 | 601 | */ |
602 | 602 | protected function maybe_read_meta_data() { |
603 | - if ( is_null( $this->meta_data ) ) { |
|
603 | + if (is_null($this->meta_data)) { |
|
604 | 604 | $this->read_meta_data(); |
605 | 605 | } |
606 | 606 | } |
@@ -612,41 +612,41 @@ discard block |
||
612 | 612 | * @since 1.0.19 |
613 | 613 | * @param bool $force_read True to force a new DB read (and update cache). |
614 | 614 | */ |
615 | - public function read_meta_data( $force_read = false ) { |
|
615 | + public function read_meta_data($force_read = false) { |
|
616 | 616 | |
617 | 617 | // Reset meta data. |
618 | 618 | $this->meta_data = array(); |
619 | 619 | |
620 | 620 | // Maybe abort early. |
621 | - if ( ! $this->get_id() || ! $this->data_store ) { |
|
621 | + if (!$this->get_id() || !$this->data_store) { |
|
622 | 622 | return; |
623 | 623 | } |
624 | 624 | |
625 | 625 | // Only read from cache if the cache key is set. |
626 | 626 | $cache_key = null; |
627 | - if ( ! $force_read && ! empty( $this->cache_group ) ) { |
|
628 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
629 | - $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group ); |
|
627 | + if (!$force_read && !empty($this->cache_group)) { |
|
628 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id(); |
|
629 | + $raw_meta_data = wp_cache_get($cache_key, $this->cache_group); |
|
630 | 630 | } |
631 | 631 | |
632 | 632 | // Should we force read? |
633 | - if ( empty( $raw_meta_data ) ) { |
|
634 | - $raw_meta_data = $this->data_store->read_meta( $this ); |
|
633 | + if (empty($raw_meta_data)) { |
|
634 | + $raw_meta_data = $this->data_store->read_meta($this); |
|
635 | 635 | |
636 | - if ( ! empty( $cache_key ) ) { |
|
637 | - wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group ); |
|
636 | + if (!empty($cache_key)) { |
|
637 | + wp_cache_set($cache_key, $raw_meta_data, $this->cache_group); |
|
638 | 638 | } |
639 | 639 | } |
640 | 640 | |
641 | 641 | // Set meta data. |
642 | - if ( is_array( $raw_meta_data ) ) { |
|
642 | + if (is_array($raw_meta_data)) { |
|
643 | 643 | |
644 | - foreach ( $raw_meta_data as $meta ) { |
|
644 | + foreach ($raw_meta_data as $meta) { |
|
645 | 645 | $this->meta_data[] = new GetPaid_Meta_Data( |
646 | 646 | array( |
647 | 647 | 'id' => (int) $meta->meta_id, |
648 | 648 | 'key' => $meta->meta_key, |
649 | - 'value' => maybe_unserialize( $meta->meta_value ), |
|
649 | + 'value' => maybe_unserialize($meta->meta_value), |
|
650 | 650 | ) |
651 | 651 | ); |
652 | 652 | } |
@@ -660,28 +660,28 @@ discard block |
||
660 | 660 | * @since 1.0.19 |
661 | 661 | */ |
662 | 662 | public function save_meta_data() { |
663 | - if ( ! $this->data_store || is_null( $this->meta_data ) ) { |
|
663 | + if (!$this->data_store || is_null($this->meta_data)) { |
|
664 | 664 | return; |
665 | 665 | } |
666 | - foreach ( $this->meta_data as $array_key => $meta ) { |
|
667 | - if ( is_null( $meta->value ) ) { |
|
668 | - if ( ! empty( $meta->id ) ) { |
|
669 | - $this->data_store->delete_meta( $this, $meta ); |
|
670 | - unset( $this->meta_data[ $array_key ] ); |
|
666 | + foreach ($this->meta_data as $array_key => $meta) { |
|
667 | + if (is_null($meta->value)) { |
|
668 | + if (!empty($meta->id)) { |
|
669 | + $this->data_store->delete_meta($this, $meta); |
|
670 | + unset($this->meta_data[$array_key]); |
|
671 | 671 | } |
672 | - } elseif ( empty( $meta->id ) ) { |
|
673 | - $meta->id = $this->data_store->add_meta( $this, $meta ); |
|
672 | + } elseif (empty($meta->id)) { |
|
673 | + $meta->id = $this->data_store->add_meta($this, $meta); |
|
674 | 674 | $meta->apply_changes(); |
675 | 675 | } else { |
676 | - if ( $meta->get_changes() ) { |
|
677 | - $this->data_store->update_meta( $this, $meta ); |
|
676 | + if ($meta->get_changes()) { |
|
677 | + $this->data_store->update_meta($this, $meta); |
|
678 | 678 | $meta->apply_changes(); |
679 | 679 | } |
680 | 680 | } |
681 | 681 | } |
682 | - if ( ! empty( $this->cache_group ) ) { |
|
683 | - $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id(); |
|
684 | - wp_cache_delete( $cache_key, $this->cache_group ); |
|
682 | + if (!empty($this->cache_group)) { |
|
683 | + $cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id(); |
|
684 | + wp_cache_delete($cache_key, $this->cache_group); |
|
685 | 685 | } |
686 | 686 | } |
687 | 687 | |
@@ -691,8 +691,8 @@ discard block |
||
691 | 691 | * @since 1.0.19 |
692 | 692 | * @param int $id ID. |
693 | 693 | */ |
694 | - public function set_id( $id ) { |
|
695 | - $this->id = absint( $id ); |
|
694 | + public function set_id($id) { |
|
695 | + $this->id = absint($id); |
|
696 | 696 | } |
697 | 697 | |
698 | 698 | /** |
@@ -702,10 +702,10 @@ discard block |
||
702 | 702 | * @param string $status New status. |
703 | 703 | * @return array details of change. |
704 | 704 | */ |
705 | - public function set_status( $status ) { |
|
705 | + public function set_status($status) { |
|
706 | 706 | $old_status = $this->get_status(); |
707 | 707 | |
708 | - $this->set_prop( 'status', $status ); |
|
708 | + $this->set_prop('status', $status); |
|
709 | 709 | |
710 | 710 | return array( |
711 | 711 | 'from' => $old_status, |
@@ -721,7 +721,7 @@ discard block |
||
721 | 721 | public function set_defaults() { |
722 | 722 | $this->data = $this->default_data; |
723 | 723 | $this->changes = array(); |
724 | - $this->set_object_read( false ); |
|
724 | + $this->set_object_read(false); |
|
725 | 725 | } |
726 | 726 | |
727 | 727 | /** |
@@ -730,7 +730,7 @@ discard block |
||
730 | 730 | * @since 1.0.19 |
731 | 731 | * @param boolean $read Should read?. |
732 | 732 | */ |
733 | - public function set_object_read( $read = true ) { |
|
733 | + public function set_object_read($read = true) { |
|
734 | 734 | $this->object_read = (bool) $read; |
735 | 735 | } |
736 | 736 | |
@@ -755,33 +755,33 @@ discard block |
||
755 | 755 | * |
756 | 756 | * @return bool|WP_Error |
757 | 757 | */ |
758 | - public function set_props( $props, $context = 'set' ) { |
|
758 | + public function set_props($props, $context = 'set') { |
|
759 | 759 | $errors = false; |
760 | 760 | |
761 | - $props = wp_unslash( $props ); |
|
762 | - foreach ( $props as $prop => $value ) { |
|
761 | + $props = wp_unslash($props); |
|
762 | + foreach ($props as $prop => $value) { |
|
763 | 763 | try { |
764 | 764 | /** |
765 | 765 | * Checks if the prop being set is allowed, and the value is not null. |
766 | 766 | */ |
767 | - if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) { |
|
767 | + if (is_null($value) || in_array($prop, array('prop', 'date_prop', 'meta_data'), true)) { |
|
768 | 768 | continue; |
769 | 769 | } |
770 | 770 | $setter = "set_$prop"; |
771 | 771 | |
772 | - if ( is_callable( array( $this, $setter ) ) ) { |
|
773 | - $this->{$setter}( $value ); |
|
772 | + if (is_callable(array($this, $setter))) { |
|
773 | + $this->{$setter}($value); |
|
774 | 774 | } |
775 | - } catch ( Exception $e ) { |
|
776 | - if ( ! $errors ) { |
|
775 | + } catch (Exception $e) { |
|
776 | + if (!$errors) { |
|
777 | 777 | $errors = new WP_Error(); |
778 | 778 | } |
779 | - $errors->add( $e->getCode(), $e->getMessage() ); |
|
779 | + $errors->add($e->getCode(), $e->getMessage()); |
|
780 | 780 | $this->last_error = $e->getMessage(); |
781 | 781 | } |
782 | 782 | } |
783 | 783 | |
784 | - return $errors && count( $errors->get_error_codes() ) ? $errors : true; |
|
784 | + return $errors && count($errors->get_error_codes()) ? $errors : true; |
|
785 | 785 | } |
786 | 786 | |
787 | 787 | /** |
@@ -794,14 +794,14 @@ discard block |
||
794 | 794 | * @param string $prop Name of prop to set. |
795 | 795 | * @param mixed $value Value of the prop. |
796 | 796 | */ |
797 | - protected function set_prop( $prop, $value ) { |
|
798 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
799 | - if ( true === $this->object_read ) { |
|
800 | - if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) { |
|
801 | - $this->changes[ $prop ] = $value; |
|
797 | + protected function set_prop($prop, $value) { |
|
798 | + if (array_key_exists($prop, $this->data)) { |
|
799 | + if (true === $this->object_read) { |
|
800 | + if ($value !== $this->data[$prop] || array_key_exists($prop, $this->changes)) { |
|
801 | + $this->changes[$prop] = $value; |
|
802 | 802 | } |
803 | 803 | } else { |
804 | - $this->data[ $prop ] = $value; |
|
804 | + $this->data[$prop] = $value; |
|
805 | 805 | } |
806 | 806 | } |
807 | 807 | } |
@@ -822,7 +822,7 @@ discard block |
||
822 | 822 | * @since 1.0.19 |
823 | 823 | */ |
824 | 824 | public function apply_changes() { |
825 | - $this->data = array_replace( $this->data, $this->changes ); |
|
825 | + $this->data = array_replace($this->data, $this->changes); |
|
826 | 826 | $this->changes = array(); |
827 | 827 | } |
828 | 828 | |
@@ -847,14 +847,14 @@ discard block |
||
847 | 847 | * @param string $context What the value is for. Valid values are view and edit. |
848 | 848 | * @return mixed |
849 | 849 | */ |
850 | - protected function get_prop( $prop, $context = 'view' ) { |
|
850 | + protected function get_prop($prop, $context = 'view') { |
|
851 | 851 | $value = null; |
852 | 852 | |
853 | - if ( array_key_exists( $prop, $this->data ) ) { |
|
854 | - $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ]; |
|
853 | + if (array_key_exists($prop, $this->data)) { |
|
854 | + $value = array_key_exists($prop, $this->changes) ? $this->changes[$prop] : $this->data[$prop]; |
|
855 | 855 | |
856 | - if ( 'view' === $context ) { |
|
857 | - $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this ); |
|
856 | + if ('view' === $context) { |
|
857 | + $value = apply_filters($this->get_hook_prefix() . $prop, $value, $this); |
|
858 | 858 | } |
859 | 859 | } |
860 | 860 | |
@@ -868,13 +868,13 @@ discard block |
||
868 | 868 | * @param string $prop Name of prop to set. |
869 | 869 | * @param string|integer $value Value of the prop. |
870 | 870 | */ |
871 | - protected function set_date_prop( $prop, $value ) { |
|
871 | + protected function set_date_prop($prop, $value) { |
|
872 | 872 | |
873 | - if ( empty( $value ) ) { |
|
874 | - $this->set_prop( $prop, null ); |
|
873 | + if (empty($value)) { |
|
874 | + $this->set_prop($prop, null); |
|
875 | 875 | return; |
876 | 876 | } |
877 | - $this->set_prop( $prop, $value ); |
|
877 | + $this->set_prop($prop, $value); |
|
878 | 878 | |
879 | 879 | } |
880 | 880 | |
@@ -885,7 +885,7 @@ discard block |
||
885 | 885 | * @param string $code Error code. |
886 | 886 | * @param string $message Error message. |
887 | 887 | */ |
888 | - protected function error( $code, $message ) { |
|
888 | + protected function error($code, $message) { |
|
889 | 889 | $this->last_error = $message; |
890 | 890 | } |
891 | 891 | |
@@ -897,7 +897,7 @@ discard block |
||
897 | 897 | */ |
898 | 898 | public function exists() { |
899 | 899 | $id = $this->get_id(); |
900 | - return ! empty( $id ); |
|
900 | + return !empty($id); |
|
901 | 901 | } |
902 | 902 | |
903 | 903 | } |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | * |
6 | 6 | */ |
7 | 7 | if ( ! defined( 'ABSPATH' ) ) { |
8 | - exit; |
|
8 | + exit; |
|
9 | 9 | } |
10 | 10 | |
11 | 11 | /** |
@@ -15,198 +15,198 @@ discard block |
||
15 | 15 | */ |
16 | 16 | class GetPaid_Subscription_Data_Store { |
17 | 17 | |
18 | - /** |
|
19 | - * A map of database fields to data types. |
|
20 | - * |
|
21 | - * @since 1.0.19 |
|
22 | - * @var array |
|
23 | - */ |
|
24 | - protected $database_fields_to_data_type = array( |
|
25 | - 'id' => '%d', |
|
26 | - 'customer_id' => '%d', |
|
27 | - 'frequency' => '%d', |
|
28 | - 'period' => '%s', |
|
29 | - 'initial_amount' => '%s', |
|
30 | - 'recurring_amount' => '%s', |
|
31 | - 'bill_times' => '%d', |
|
32 | - 'transaction_id' => '%s', |
|
33 | - 'parent_payment_id' => '%d', |
|
34 | - 'product_id' => '%d', |
|
35 | - 'created' => '%s', |
|
36 | - 'expiration' => '%s', |
|
37 | - 'trial_period' => '%s', |
|
38 | - 'status' => '%s', |
|
39 | - 'profile_id' => '%s', |
|
40 | - ); |
|
41 | - |
|
42 | - /* |
|
18 | + /** |
|
19 | + * A map of database fields to data types. |
|
20 | + * |
|
21 | + * @since 1.0.19 |
|
22 | + * @var array |
|
23 | + */ |
|
24 | + protected $database_fields_to_data_type = array( |
|
25 | + 'id' => '%d', |
|
26 | + 'customer_id' => '%d', |
|
27 | + 'frequency' => '%d', |
|
28 | + 'period' => '%s', |
|
29 | + 'initial_amount' => '%s', |
|
30 | + 'recurring_amount' => '%s', |
|
31 | + 'bill_times' => '%d', |
|
32 | + 'transaction_id' => '%s', |
|
33 | + 'parent_payment_id' => '%d', |
|
34 | + 'product_id' => '%d', |
|
35 | + 'created' => '%s', |
|
36 | + 'expiration' => '%s', |
|
37 | + 'trial_period' => '%s', |
|
38 | + 'status' => '%s', |
|
39 | + 'profile_id' => '%s', |
|
40 | + ); |
|
41 | + |
|
42 | + /* |
|
43 | 43 | |-------------------------------------------------------------------------- |
44 | 44 | | CRUD Methods |
45 | 45 | |-------------------------------------------------------------------------- |
46 | 46 | */ |
47 | 47 | |
48 | - /** |
|
49 | - * Method to create a new subscription in the database. |
|
50 | - * |
|
51 | - * @param WPInv_Subscription $subscription Subscription object. |
|
52 | - */ |
|
53 | - public function create( &$subscription ) { |
|
54 | - global $wpdb; |
|
55 | - |
|
56 | - $values = array(); |
|
57 | - $formats = array(); |
|
58 | - |
|
59 | - $fields = $this->database_fields_to_data_type; |
|
60 | - unset( $fields['id'] ); |
|
61 | - |
|
62 | - foreach ( $fields as $key => $format ) { |
|
63 | - $method = "get_$key"; |
|
64 | - $values[ $key ] = $subscription->$method( 'edit' ); |
|
65 | - $formats[] = $format; |
|
66 | - } |
|
67 | - |
|
68 | - $result = $wpdb->insert( $wpdb->prefix . 'wpinv_subscriptions', $values, $formats ); |
|
69 | - |
|
70 | - if ( $result ) { |
|
71 | - $subscription->set_id( $wpdb->insert_id ); |
|
72 | - $subscription->apply_changes(); |
|
73 | - $subscription->clear_cache(); |
|
74 | - update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() ); |
|
75 | - do_action( 'getpaid_new_subscription', $subscription ); |
|
76 | - return true; |
|
77 | - } |
|
78 | - |
|
79 | - return false; |
|
80 | - } |
|
81 | - |
|
82 | - /** |
|
83 | - * Method to read a subscription from the database. |
|
84 | - * |
|
85 | - * @param WPInv_Subscription $subscription Subscription object. |
|
86 | - * |
|
87 | - */ |
|
88 | - public function read( &$subscription ) { |
|
89 | - global $wpdb; |
|
90 | - |
|
91 | - $subscription->set_defaults(); |
|
92 | - |
|
93 | - if ( ! $subscription->get_id() ) { |
|
94 | - $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' ); |
|
95 | - $subscription->set_id( 0 ); |
|
96 | - return false; |
|
97 | - } |
|
98 | - |
|
99 | - // Maybe retrieve from the cache. |
|
100 | - $raw_subscription = wp_cache_get( $subscription->get_id(), 'getpaid_subscriptions' ); |
|
101 | - |
|
102 | - // If not found, retrieve from the db. |
|
103 | - if ( false === $raw_subscription ) { |
|
104 | - |
|
105 | - $raw_subscription = $wpdb->get_row( |
|
106 | - $wpdb->prepare( |
|
107 | - "SELECT * FROM {$wpdb->prefix}wpinv_subscriptions WHERE id = %d", |
|
108 | - $subscription->get_id() |
|
109 | - ) |
|
110 | - ); |
|
111 | - |
|
112 | - // Update the cache with our data |
|
113 | - wp_cache_set( $subscription->get_id(), $raw_subscription, 'getpaid_subscriptions' ); |
|
114 | - |
|
115 | - } |
|
116 | - |
|
117 | - if ( ! $raw_subscription ) { |
|
118 | - $subscription->set_id( 0 ); |
|
119 | - $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' ); |
|
120 | - return false; |
|
121 | - } |
|
122 | - |
|
123 | - foreach ( array_keys( $this->database_fields_to_data_type ) as $key ) { |
|
124 | - $method = "set_$key"; |
|
125 | - $subscription->$method( $raw_subscription->$key ); |
|
126 | - } |
|
127 | - |
|
128 | - $subscription->set_object_read( true ); |
|
129 | - do_action( 'getpaid_read_subscription', $subscription ); |
|
130 | - |
|
131 | - } |
|
132 | - |
|
133 | - /** |
|
134 | - * Method to update a subscription in the database. |
|
135 | - * |
|
136 | - * @param WPInv_Subscription $subscription Subscription object. |
|
137 | - */ |
|
138 | - public function update( &$subscription ) { |
|
139 | - global $wpdb; |
|
140 | - |
|
141 | - $changes = $subscription->get_changes(); |
|
142 | - $values = array(); |
|
143 | - $formats = array(); |
|
144 | - |
|
145 | - foreach ( $this->database_fields_to_data_type as $key => $format ) { |
|
146 | - if ( array_key_exists( $key, $changes ) ) { |
|
147 | - $method = "get_$key"; |
|
148 | - $values[ $key ] = $subscription->$method( 'edit' ); |
|
149 | - $formats[] = $format; |
|
150 | - } |
|
151 | - } |
|
152 | - |
|
153 | - if ( empty( $values ) ) { |
|
154 | - return; |
|
155 | - } |
|
156 | - |
|
157 | - $wpdb->update( |
|
158 | - $wpdb->prefix . 'wpinv_subscriptions', |
|
159 | - $values, |
|
160 | - array( |
|
161 | - 'id' => $subscription->get_id(), |
|
162 | - ), |
|
163 | - $formats, |
|
164 | - '%d' |
|
165 | - ); |
|
166 | - |
|
167 | - // Apply the changes. |
|
168 | - $subscription->apply_changes(); |
|
169 | - |
|
170 | - // Delete cache. |
|
171 | - $subscription->clear_cache(); |
|
172 | - |
|
173 | - update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id() ); |
|
174 | - update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() ); |
|
175 | - |
|
176 | - // Fire a hook. |
|
177 | - do_action( 'getpaid_update_subscription', $subscription ); |
|
178 | - |
|
179 | - } |
|
180 | - |
|
181 | - /** |
|
182 | - * Method to delete a subscription from the database. |
|
183 | - * |
|
184 | - * @param WPInv_Subscription $subscription |
|
185 | - */ |
|
186 | - public function delete( &$subscription ) { |
|
187 | - global $wpdb; |
|
188 | - |
|
189 | - $wpdb->query( |
|
190 | - $wpdb->prepare( |
|
191 | - "DELETE FROM {$wpdb->prefix}wpinv_subscriptions |
|
48 | + /** |
|
49 | + * Method to create a new subscription in the database. |
|
50 | + * |
|
51 | + * @param WPInv_Subscription $subscription Subscription object. |
|
52 | + */ |
|
53 | + public function create( &$subscription ) { |
|
54 | + global $wpdb; |
|
55 | + |
|
56 | + $values = array(); |
|
57 | + $formats = array(); |
|
58 | + |
|
59 | + $fields = $this->database_fields_to_data_type; |
|
60 | + unset( $fields['id'] ); |
|
61 | + |
|
62 | + foreach ( $fields as $key => $format ) { |
|
63 | + $method = "get_$key"; |
|
64 | + $values[ $key ] = $subscription->$method( 'edit' ); |
|
65 | + $formats[] = $format; |
|
66 | + } |
|
67 | + |
|
68 | + $result = $wpdb->insert( $wpdb->prefix . 'wpinv_subscriptions', $values, $formats ); |
|
69 | + |
|
70 | + if ( $result ) { |
|
71 | + $subscription->set_id( $wpdb->insert_id ); |
|
72 | + $subscription->apply_changes(); |
|
73 | + $subscription->clear_cache(); |
|
74 | + update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() ); |
|
75 | + do_action( 'getpaid_new_subscription', $subscription ); |
|
76 | + return true; |
|
77 | + } |
|
78 | + |
|
79 | + return false; |
|
80 | + } |
|
81 | + |
|
82 | + /** |
|
83 | + * Method to read a subscription from the database. |
|
84 | + * |
|
85 | + * @param WPInv_Subscription $subscription Subscription object. |
|
86 | + * |
|
87 | + */ |
|
88 | + public function read( &$subscription ) { |
|
89 | + global $wpdb; |
|
90 | + |
|
91 | + $subscription->set_defaults(); |
|
92 | + |
|
93 | + if ( ! $subscription->get_id() ) { |
|
94 | + $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' ); |
|
95 | + $subscription->set_id( 0 ); |
|
96 | + return false; |
|
97 | + } |
|
98 | + |
|
99 | + // Maybe retrieve from the cache. |
|
100 | + $raw_subscription = wp_cache_get( $subscription->get_id(), 'getpaid_subscriptions' ); |
|
101 | + |
|
102 | + // If not found, retrieve from the db. |
|
103 | + if ( false === $raw_subscription ) { |
|
104 | + |
|
105 | + $raw_subscription = $wpdb->get_row( |
|
106 | + $wpdb->prepare( |
|
107 | + "SELECT * FROM {$wpdb->prefix}wpinv_subscriptions WHERE id = %d", |
|
108 | + $subscription->get_id() |
|
109 | + ) |
|
110 | + ); |
|
111 | + |
|
112 | + // Update the cache with our data |
|
113 | + wp_cache_set( $subscription->get_id(), $raw_subscription, 'getpaid_subscriptions' ); |
|
114 | + |
|
115 | + } |
|
116 | + |
|
117 | + if ( ! $raw_subscription ) { |
|
118 | + $subscription->set_id( 0 ); |
|
119 | + $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' ); |
|
120 | + return false; |
|
121 | + } |
|
122 | + |
|
123 | + foreach ( array_keys( $this->database_fields_to_data_type ) as $key ) { |
|
124 | + $method = "set_$key"; |
|
125 | + $subscription->$method( $raw_subscription->$key ); |
|
126 | + } |
|
127 | + |
|
128 | + $subscription->set_object_read( true ); |
|
129 | + do_action( 'getpaid_read_subscription', $subscription ); |
|
130 | + |
|
131 | + } |
|
132 | + |
|
133 | + /** |
|
134 | + * Method to update a subscription in the database. |
|
135 | + * |
|
136 | + * @param WPInv_Subscription $subscription Subscription object. |
|
137 | + */ |
|
138 | + public function update( &$subscription ) { |
|
139 | + global $wpdb; |
|
140 | + |
|
141 | + $changes = $subscription->get_changes(); |
|
142 | + $values = array(); |
|
143 | + $formats = array(); |
|
144 | + |
|
145 | + foreach ( $this->database_fields_to_data_type as $key => $format ) { |
|
146 | + if ( array_key_exists( $key, $changes ) ) { |
|
147 | + $method = "get_$key"; |
|
148 | + $values[ $key ] = $subscription->$method( 'edit' ); |
|
149 | + $formats[] = $format; |
|
150 | + } |
|
151 | + } |
|
152 | + |
|
153 | + if ( empty( $values ) ) { |
|
154 | + return; |
|
155 | + } |
|
156 | + |
|
157 | + $wpdb->update( |
|
158 | + $wpdb->prefix . 'wpinv_subscriptions', |
|
159 | + $values, |
|
160 | + array( |
|
161 | + 'id' => $subscription->get_id(), |
|
162 | + ), |
|
163 | + $formats, |
|
164 | + '%d' |
|
165 | + ); |
|
166 | + |
|
167 | + // Apply the changes. |
|
168 | + $subscription->apply_changes(); |
|
169 | + |
|
170 | + // Delete cache. |
|
171 | + $subscription->clear_cache(); |
|
172 | + |
|
173 | + update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id() ); |
|
174 | + update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() ); |
|
175 | + |
|
176 | + // Fire a hook. |
|
177 | + do_action( 'getpaid_update_subscription', $subscription ); |
|
178 | + |
|
179 | + } |
|
180 | + |
|
181 | + /** |
|
182 | + * Method to delete a subscription from the database. |
|
183 | + * |
|
184 | + * @param WPInv_Subscription $subscription |
|
185 | + */ |
|
186 | + public function delete( &$subscription ) { |
|
187 | + global $wpdb; |
|
188 | + |
|
189 | + $wpdb->query( |
|
190 | + $wpdb->prepare( |
|
191 | + "DELETE FROM {$wpdb->prefix}wpinv_subscriptions |
|
192 | 192 | WHERE id = %d", |
193 | - $subscription->get_id() |
|
194 | - ) |
|
195 | - ); |
|
193 | + $subscription->get_id() |
|
194 | + ) |
|
195 | + ); |
|
196 | 196 | |
197 | - delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id' ); |
|
198 | - delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id' ); |
|
197 | + delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id' ); |
|
198 | + delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id' ); |
|
199 | 199 | |
200 | - // Delete cache. |
|
201 | - $subscription->clear_cache(); |
|
200 | + // Delete cache. |
|
201 | + $subscription->clear_cache(); |
|
202 | 202 | |
203 | - // Fire a hook. |
|
204 | - do_action( 'getpaid_delete_subscription', $subscription ); |
|
203 | + // Fire a hook. |
|
204 | + do_action( 'getpaid_delete_subscription', $subscription ); |
|
205 | 205 | |
206 | - $subscription->set_id( 0 ); |
|
207 | - } |
|
206 | + $subscription->set_id( 0 ); |
|
207 | + } |
|
208 | 208 | |
209 | - /* |
|
209 | + /* |
|
210 | 210 | |-------------------------------------------------------------------------- |
211 | 211 | | Additional Methods |
212 | 212 | |-------------------------------------------------------------------------- |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * GetPaid_Subscription_Data_Store class file. |
5 | 5 | * |
6 | 6 | */ |
7 | -if ( ! defined( 'ABSPATH' ) ) { |
|
7 | +if (!defined('ABSPATH')) { |
|
8 | 8 | exit; |
9 | 9 | } |
10 | 10 | |
@@ -50,29 +50,29 @@ discard block |
||
50 | 50 | * |
51 | 51 | * @param WPInv_Subscription $subscription Subscription object. |
52 | 52 | */ |
53 | - public function create( &$subscription ) { |
|
53 | + public function create(&$subscription) { |
|
54 | 54 | global $wpdb; |
55 | 55 | |
56 | 56 | $values = array(); |
57 | 57 | $formats = array(); |
58 | 58 | |
59 | 59 | $fields = $this->database_fields_to_data_type; |
60 | - unset( $fields['id'] ); |
|
60 | + unset($fields['id']); |
|
61 | 61 | |
62 | - foreach ( $fields as $key => $format ) { |
|
62 | + foreach ($fields as $key => $format) { |
|
63 | 63 | $method = "get_$key"; |
64 | - $values[ $key ] = $subscription->$method( 'edit' ); |
|
64 | + $values[$key] = $subscription->$method('edit'); |
|
65 | 65 | $formats[] = $format; |
66 | 66 | } |
67 | 67 | |
68 | - $result = $wpdb->insert( $wpdb->prefix . 'wpinv_subscriptions', $values, $formats ); |
|
68 | + $result = $wpdb->insert($wpdb->prefix . 'wpinv_subscriptions', $values, $formats); |
|
69 | 69 | |
70 | - if ( $result ) { |
|
71 | - $subscription->set_id( $wpdb->insert_id ); |
|
70 | + if ($result) { |
|
71 | + $subscription->set_id($wpdb->insert_id); |
|
72 | 72 | $subscription->apply_changes(); |
73 | 73 | $subscription->clear_cache(); |
74 | - update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() ); |
|
75 | - do_action( 'getpaid_new_subscription', $subscription ); |
|
74 | + update_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id()); |
|
75 | + do_action('getpaid_new_subscription', $subscription); |
|
76 | 76 | return true; |
77 | 77 | } |
78 | 78 | |
@@ -85,22 +85,22 @@ discard block |
||
85 | 85 | * @param WPInv_Subscription $subscription Subscription object. |
86 | 86 | * |
87 | 87 | */ |
88 | - public function read( &$subscription ) { |
|
88 | + public function read(&$subscription) { |
|
89 | 89 | global $wpdb; |
90 | 90 | |
91 | 91 | $subscription->set_defaults(); |
92 | 92 | |
93 | - if ( ! $subscription->get_id() ) { |
|
94 | - $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' ); |
|
95 | - $subscription->set_id( 0 ); |
|
93 | + if (!$subscription->get_id()) { |
|
94 | + $subscription->last_error = __('Invalid subscription ID.', 'invoicing'); |
|
95 | + $subscription->set_id(0); |
|
96 | 96 | return false; |
97 | 97 | } |
98 | 98 | |
99 | 99 | // Maybe retrieve from the cache. |
100 | - $raw_subscription = wp_cache_get( $subscription->get_id(), 'getpaid_subscriptions' ); |
|
100 | + $raw_subscription = wp_cache_get($subscription->get_id(), 'getpaid_subscriptions'); |
|
101 | 101 | |
102 | 102 | // If not found, retrieve from the db. |
103 | - if ( false === $raw_subscription ) { |
|
103 | + if (false === $raw_subscription) { |
|
104 | 104 | |
105 | 105 | $raw_subscription = $wpdb->get_row( |
106 | 106 | $wpdb->prepare( |
@@ -110,23 +110,23 @@ discard block |
||
110 | 110 | ); |
111 | 111 | |
112 | 112 | // Update the cache with our data |
113 | - wp_cache_set( $subscription->get_id(), $raw_subscription, 'getpaid_subscriptions' ); |
|
113 | + wp_cache_set($subscription->get_id(), $raw_subscription, 'getpaid_subscriptions'); |
|
114 | 114 | |
115 | 115 | } |
116 | 116 | |
117 | - if ( ! $raw_subscription ) { |
|
118 | - $subscription->set_id( 0 ); |
|
119 | - $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' ); |
|
117 | + if (!$raw_subscription) { |
|
118 | + $subscription->set_id(0); |
|
119 | + $subscription->last_error = __('Invalid subscription ID.', 'invoicing'); |
|
120 | 120 | return false; |
121 | 121 | } |
122 | 122 | |
123 | - foreach ( array_keys( $this->database_fields_to_data_type ) as $key ) { |
|
124 | - $method = "set_$key"; |
|
125 | - $subscription->$method( $raw_subscription->$key ); |
|
123 | + foreach (array_keys($this->database_fields_to_data_type) as $key) { |
|
124 | + $method = "set_$key"; |
|
125 | + $subscription->$method($raw_subscription->$key); |
|
126 | 126 | } |
127 | 127 | |
128 | - $subscription->set_object_read( true ); |
|
129 | - do_action( 'getpaid_read_subscription', $subscription ); |
|
128 | + $subscription->set_object_read(true); |
|
129 | + do_action('getpaid_read_subscription', $subscription); |
|
130 | 130 | |
131 | 131 | } |
132 | 132 | |
@@ -135,22 +135,22 @@ discard block |
||
135 | 135 | * |
136 | 136 | * @param WPInv_Subscription $subscription Subscription object. |
137 | 137 | */ |
138 | - public function update( &$subscription ) { |
|
138 | + public function update(&$subscription) { |
|
139 | 139 | global $wpdb; |
140 | 140 | |
141 | 141 | $changes = $subscription->get_changes(); |
142 | 142 | $values = array(); |
143 | 143 | $formats = array(); |
144 | 144 | |
145 | - foreach ( $this->database_fields_to_data_type as $key => $format ) { |
|
146 | - if ( array_key_exists( $key, $changes ) ) { |
|
145 | + foreach ($this->database_fields_to_data_type as $key => $format) { |
|
146 | + if (array_key_exists($key, $changes)) { |
|
147 | 147 | $method = "get_$key"; |
148 | - $values[ $key ] = $subscription->$method( 'edit' ); |
|
148 | + $values[$key] = $subscription->$method('edit'); |
|
149 | 149 | $formats[] = $format; |
150 | 150 | } |
151 | 151 | } |
152 | 152 | |
153 | - if ( empty( $values ) ) { |
|
153 | + if (empty($values)) { |
|
154 | 154 | return; |
155 | 155 | } |
156 | 156 | |
@@ -170,11 +170,11 @@ discard block |
||
170 | 170 | // Delete cache. |
171 | 171 | $subscription->clear_cache(); |
172 | 172 | |
173 | - update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id() ); |
|
174 | - update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() ); |
|
173 | + update_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id()); |
|
174 | + update_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id()); |
|
175 | 175 | |
176 | 176 | // Fire a hook. |
177 | - do_action( 'getpaid_update_subscription', $subscription ); |
|
177 | + do_action('getpaid_update_subscription', $subscription); |
|
178 | 178 | |
179 | 179 | } |
180 | 180 | |
@@ -183,7 +183,7 @@ discard block |
||
183 | 183 | * |
184 | 184 | * @param WPInv_Subscription $subscription |
185 | 185 | */ |
186 | - public function delete( &$subscription ) { |
|
186 | + public function delete(&$subscription) { |
|
187 | 187 | global $wpdb; |
188 | 188 | |
189 | 189 | $wpdb->query( |
@@ -194,16 +194,16 @@ discard block |
||
194 | 194 | ) |
195 | 195 | ); |
196 | 196 | |
197 | - delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id' ); |
|
198 | - delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id' ); |
|
197 | + delete_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id'); |
|
198 | + delete_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscription_id'); |
|
199 | 199 | |
200 | 200 | // Delete cache. |
201 | 201 | $subscription->clear_cache(); |
202 | 202 | |
203 | 203 | // Fire a hook. |
204 | - do_action( 'getpaid_delete_subscription', $subscription ); |
|
204 | + do_action('getpaid_delete_subscription', $subscription); |
|
205 | 205 | |
206 | - $subscription->set_id( 0 ); |
|
206 | + $subscription->set_id(0); |
|
207 | 207 | } |
208 | 208 | |
209 | 209 | /* |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | * |
6 | 6 | */ |
7 | 7 | if ( ! defined( 'ABSPATH' ) ) { |
8 | - exit; |
|
8 | + exit; |
|
9 | 9 | } |
10 | 10 | |
11 | 11 | /** |
@@ -15,198 +15,198 @@ discard block |
||
15 | 15 | */ |
16 | 16 | class GetPaid_Discount_Data_Store extends GetPaid_Data_Store_WP { |
17 | 17 | |
18 | - /** |
|
19 | - * Data stored in meta keys, but not considered "meta" for a discount. |
|
20 | - * |
|
21 | - * @since 1.0.19 |
|
22 | - * @var array |
|
23 | - */ |
|
24 | - protected $internal_meta_keys = array( |
|
25 | - '_wpi_discount_code', |
|
26 | - '_wpi_discount_amount', |
|
27 | - '_wpi_discount_start', |
|
28 | - '_wpi_discount_expiration', |
|
29 | - '_wpi_discount_type', |
|
30 | - '_wpi_discount_uses', |
|
31 | - '_wpi_discount_is_single_use', |
|
32 | - '_wpi_discount_items', |
|
33 | - '_wpi_discount_excluded_items', |
|
34 | - '_wpi_discount_required_items', |
|
35 | - '_wpi_discount_max_uses', |
|
36 | - '_wpi_discount_is_recurring', |
|
37 | - '_wpi_discount_min_total', |
|
38 | - '_wpi_discount_max_total', |
|
39 | - ); |
|
40 | - |
|
41 | - /** |
|
42 | - * A map of meta keys to data props. |
|
43 | - * |
|
44 | - * @since 1.0.19 |
|
45 | - * |
|
46 | - * @var array |
|
47 | - */ |
|
48 | - protected $meta_key_to_props = array( |
|
49 | - '_wpi_discount_code' => 'code', |
|
50 | - '_wpi_discount_amount' => 'amount', |
|
51 | - '_wpi_discount_start' => 'start', |
|
52 | - '_wpi_discount_expiration' => 'expiration', |
|
53 | - '_wpi_discount_type' => 'type', |
|
54 | - '_wpi_discount_uses' => 'uses', |
|
55 | - '_wpi_discount_is_single_use' => 'is_single_use', |
|
56 | - '_wpi_discount_items' => 'items', |
|
57 | - '_wpi_discount_excluded_items' => 'excluded_items', |
|
58 | - '_wpi_discount_required_items' => 'required_items', |
|
59 | - '_wpi_discount_max_uses' => 'max_uses', |
|
60 | - '_wpi_discount_is_recurring' => 'is_recurring', |
|
61 | - '_wpi_discount_min_total' => 'min_total', |
|
62 | - '_wpi_discount_max_total' => 'max_total', |
|
63 | - ); |
|
64 | - |
|
65 | - /* |
|
18 | + /** |
|
19 | + * Data stored in meta keys, but not considered "meta" for a discount. |
|
20 | + * |
|
21 | + * @since 1.0.19 |
|
22 | + * @var array |
|
23 | + */ |
|
24 | + protected $internal_meta_keys = array( |
|
25 | + '_wpi_discount_code', |
|
26 | + '_wpi_discount_amount', |
|
27 | + '_wpi_discount_start', |
|
28 | + '_wpi_discount_expiration', |
|
29 | + '_wpi_discount_type', |
|
30 | + '_wpi_discount_uses', |
|
31 | + '_wpi_discount_is_single_use', |
|
32 | + '_wpi_discount_items', |
|
33 | + '_wpi_discount_excluded_items', |
|
34 | + '_wpi_discount_required_items', |
|
35 | + '_wpi_discount_max_uses', |
|
36 | + '_wpi_discount_is_recurring', |
|
37 | + '_wpi_discount_min_total', |
|
38 | + '_wpi_discount_max_total', |
|
39 | + ); |
|
40 | + |
|
41 | + /** |
|
42 | + * A map of meta keys to data props. |
|
43 | + * |
|
44 | + * @since 1.0.19 |
|
45 | + * |
|
46 | + * @var array |
|
47 | + */ |
|
48 | + protected $meta_key_to_props = array( |
|
49 | + '_wpi_discount_code' => 'code', |
|
50 | + '_wpi_discount_amount' => 'amount', |
|
51 | + '_wpi_discount_start' => 'start', |
|
52 | + '_wpi_discount_expiration' => 'expiration', |
|
53 | + '_wpi_discount_type' => 'type', |
|
54 | + '_wpi_discount_uses' => 'uses', |
|
55 | + '_wpi_discount_is_single_use' => 'is_single_use', |
|
56 | + '_wpi_discount_items' => 'items', |
|
57 | + '_wpi_discount_excluded_items' => 'excluded_items', |
|
58 | + '_wpi_discount_required_items' => 'required_items', |
|
59 | + '_wpi_discount_max_uses' => 'max_uses', |
|
60 | + '_wpi_discount_is_recurring' => 'is_recurring', |
|
61 | + '_wpi_discount_min_total' => 'min_total', |
|
62 | + '_wpi_discount_max_total' => 'max_total', |
|
63 | + ); |
|
64 | + |
|
65 | + /* |
|
66 | 66 | |-------------------------------------------------------------------------- |
67 | 67 | | CRUD Methods |
68 | 68 | |-------------------------------------------------------------------------- |
69 | 69 | */ |
70 | 70 | |
71 | - /** |
|
72 | - * Method to create a new discount in the database. |
|
73 | - * |
|
74 | - * @param WPInv_Discount $discount Discount object. |
|
75 | - */ |
|
76 | - public function create( &$discount ) { |
|
77 | - $discount->set_version( WPINV_VERSION ); |
|
78 | - $discount->set_date_created( current_time( 'mysql' ) ); |
|
79 | - |
|
80 | - // Create a new post. |
|
81 | - $id = wp_insert_post( |
|
82 | - apply_filters( |
|
83 | - 'getpaid_new_discount_data', |
|
84 | - array( |
|
85 | - 'post_date' => $discount->get_date_created( 'edit' ), |
|
86 | - 'post_type' => 'wpi_discount', |
|
87 | - 'post_status' => $this->get_post_status( $discount ), |
|
88 | - 'ping_status' => 'closed', |
|
89 | - 'post_author' => $discount->get_author( 'edit' ), |
|
90 | - 'post_title' => $discount->get_name( 'edit' ), |
|
91 | - 'post_excerpt' => $discount->get_description( 'edit' ), |
|
92 | - ) |
|
93 | - ), |
|
94 | - true |
|
95 | - ); |
|
96 | - |
|
97 | - if ( $id && ! is_wp_error( $id ) ) { |
|
98 | - $discount->set_id( $id ); |
|
99 | - $this->update_post_meta( $discount ); |
|
100 | - $discount->save_meta_data(); |
|
101 | - $discount->apply_changes(); |
|
102 | - $this->clear_caches( $discount ); |
|
103 | - do_action( 'getpaid_new_discount', $discount ); |
|
104 | - return true; |
|
105 | - } |
|
106 | - |
|
107 | - if ( is_wp_error( $id ) ) { |
|
108 | - $discount->last_error = $id->get_error_message(); |
|
109 | - } |
|
110 | - |
|
111 | - return false; |
|
112 | - } |
|
113 | - |
|
114 | - /** |
|
115 | - * Method to read a discount from the database. |
|
116 | - * |
|
117 | - * @param WPInv_Discount $discount Discount object. |
|
118 | - * |
|
119 | - */ |
|
120 | - public function read( &$discount ) { |
|
121 | - |
|
122 | - $discount->set_defaults(); |
|
123 | - $discount_object = get_post( $discount->get_id() ); |
|
124 | - |
|
125 | - if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) { |
|
126 | - $discount->last_error = __( 'Invalid discount.', 'invoicing' ); |
|
127 | - $discount->set_id( 0 ); |
|
128 | - return false; |
|
129 | - } |
|
130 | - |
|
131 | - $discount->set_props( |
|
132 | - array( |
|
133 | - 'date_created' => 0 < $discount_object->post_date ? $discount_object->post_date : null, |
|
134 | - 'date_modified' => 0 < $discount_object->post_modified ? $discount_object->post_modified : null, |
|
135 | - 'status' => $discount_object->post_status, |
|
136 | - 'name' => $discount_object->post_title, |
|
137 | - 'author' => $discount_object->post_author, |
|
138 | - 'description' => $discount_object->post_excerpt, |
|
139 | - ) |
|
140 | - ); |
|
141 | - |
|
142 | - $this->read_object_data( $discount, $discount_object ); |
|
143 | - $discount->read_meta_data(); |
|
144 | - $discount->set_object_read( true ); |
|
145 | - do_action( 'getpaid_read_discount', $discount ); |
|
146 | - |
|
147 | - } |
|
148 | - |
|
149 | - /** |
|
150 | - * Method to update a discount in the database. |
|
151 | - * |
|
152 | - * @param WPInv_Discount $discount Discount object. |
|
153 | - */ |
|
154 | - public function update( &$discount ) { |
|
155 | - $discount->save_meta_data(); |
|
156 | - $discount->set_version( WPINV_VERSION ); |
|
157 | - |
|
158 | - if ( null === $discount->get_date_created( 'edit' ) ) { |
|
159 | - $discount->set_date_created( current_time( 'mysql' ) ); |
|
160 | - } |
|
161 | - |
|
162 | - // Grab the current status so we can compare. |
|
163 | - $previous_status = get_post_status( $discount->get_id() ); |
|
164 | - |
|
165 | - $changes = $discount->get_changes(); |
|
166 | - |
|
167 | - // Only update the post when the post data changes. |
|
168 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) { |
|
169 | - $post_data = array( |
|
170 | - 'post_date' => $discount->get_date_created( 'edit' ), |
|
171 | - 'post_status' => $discount->get_status( 'edit' ), |
|
172 | - 'post_title' => $discount->get_name( 'edit' ), |
|
173 | - 'post_author' => $discount->get_author( 'edit' ), |
|
174 | - 'post_modified' => $discount->get_date_modified( 'edit' ), |
|
175 | - 'post_excerpt' => $discount->get_description( 'edit' ), |
|
176 | - ); |
|
177 | - |
|
178 | - /** |
|
179 | - * When updating this object, to prevent infinite loops, use $wpdb |
|
180 | - * to update data, since wp_update_post spawns more calls to the |
|
181 | - * save_post action. |
|
182 | - * |
|
183 | - * This ensures hooks are fired by either WP itself (admin screen save), |
|
184 | - * or an update purely from CRUD. |
|
185 | - */ |
|
186 | - if ( doing_action( 'save_post' ) ) { |
|
187 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) ); |
|
188 | - clean_post_cache( $discount->get_id() ); |
|
189 | - } else { |
|
190 | - wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) ); |
|
191 | - } |
|
192 | - $discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
193 | - } |
|
194 | - $this->update_post_meta( $discount ); |
|
195 | - $discount->apply_changes(); |
|
196 | - $this->clear_caches( $discount ); |
|
197 | - |
|
198 | - // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
199 | - $new_status = $discount->get_status( 'edit' ); |
|
200 | - |
|
201 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
202 | - do_action( 'getpaid_new_discount', $discount ); |
|
203 | - } else { |
|
204 | - do_action( 'getpaid_update_discount', $discount ); |
|
205 | - } |
|
206 | - |
|
207 | - } |
|
208 | - |
|
209 | - /* |
|
71 | + /** |
|
72 | + * Method to create a new discount in the database. |
|
73 | + * |
|
74 | + * @param WPInv_Discount $discount Discount object. |
|
75 | + */ |
|
76 | + public function create( &$discount ) { |
|
77 | + $discount->set_version( WPINV_VERSION ); |
|
78 | + $discount->set_date_created( current_time( 'mysql' ) ); |
|
79 | + |
|
80 | + // Create a new post. |
|
81 | + $id = wp_insert_post( |
|
82 | + apply_filters( |
|
83 | + 'getpaid_new_discount_data', |
|
84 | + array( |
|
85 | + 'post_date' => $discount->get_date_created( 'edit' ), |
|
86 | + 'post_type' => 'wpi_discount', |
|
87 | + 'post_status' => $this->get_post_status( $discount ), |
|
88 | + 'ping_status' => 'closed', |
|
89 | + 'post_author' => $discount->get_author( 'edit' ), |
|
90 | + 'post_title' => $discount->get_name( 'edit' ), |
|
91 | + 'post_excerpt' => $discount->get_description( 'edit' ), |
|
92 | + ) |
|
93 | + ), |
|
94 | + true |
|
95 | + ); |
|
96 | + |
|
97 | + if ( $id && ! is_wp_error( $id ) ) { |
|
98 | + $discount->set_id( $id ); |
|
99 | + $this->update_post_meta( $discount ); |
|
100 | + $discount->save_meta_data(); |
|
101 | + $discount->apply_changes(); |
|
102 | + $this->clear_caches( $discount ); |
|
103 | + do_action( 'getpaid_new_discount', $discount ); |
|
104 | + return true; |
|
105 | + } |
|
106 | + |
|
107 | + if ( is_wp_error( $id ) ) { |
|
108 | + $discount->last_error = $id->get_error_message(); |
|
109 | + } |
|
110 | + |
|
111 | + return false; |
|
112 | + } |
|
113 | + |
|
114 | + /** |
|
115 | + * Method to read a discount from the database. |
|
116 | + * |
|
117 | + * @param WPInv_Discount $discount Discount object. |
|
118 | + * |
|
119 | + */ |
|
120 | + public function read( &$discount ) { |
|
121 | + |
|
122 | + $discount->set_defaults(); |
|
123 | + $discount_object = get_post( $discount->get_id() ); |
|
124 | + |
|
125 | + if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) { |
|
126 | + $discount->last_error = __( 'Invalid discount.', 'invoicing' ); |
|
127 | + $discount->set_id( 0 ); |
|
128 | + return false; |
|
129 | + } |
|
130 | + |
|
131 | + $discount->set_props( |
|
132 | + array( |
|
133 | + 'date_created' => 0 < $discount_object->post_date ? $discount_object->post_date : null, |
|
134 | + 'date_modified' => 0 < $discount_object->post_modified ? $discount_object->post_modified : null, |
|
135 | + 'status' => $discount_object->post_status, |
|
136 | + 'name' => $discount_object->post_title, |
|
137 | + 'author' => $discount_object->post_author, |
|
138 | + 'description' => $discount_object->post_excerpt, |
|
139 | + ) |
|
140 | + ); |
|
141 | + |
|
142 | + $this->read_object_data( $discount, $discount_object ); |
|
143 | + $discount->read_meta_data(); |
|
144 | + $discount->set_object_read( true ); |
|
145 | + do_action( 'getpaid_read_discount', $discount ); |
|
146 | + |
|
147 | + } |
|
148 | + |
|
149 | + /** |
|
150 | + * Method to update a discount in the database. |
|
151 | + * |
|
152 | + * @param WPInv_Discount $discount Discount object. |
|
153 | + */ |
|
154 | + public function update( &$discount ) { |
|
155 | + $discount->save_meta_data(); |
|
156 | + $discount->set_version( WPINV_VERSION ); |
|
157 | + |
|
158 | + if ( null === $discount->get_date_created( 'edit' ) ) { |
|
159 | + $discount->set_date_created( current_time( 'mysql' ) ); |
|
160 | + } |
|
161 | + |
|
162 | + // Grab the current status so we can compare. |
|
163 | + $previous_status = get_post_status( $discount->get_id() ); |
|
164 | + |
|
165 | + $changes = $discount->get_changes(); |
|
166 | + |
|
167 | + // Only update the post when the post data changes. |
|
168 | + if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) { |
|
169 | + $post_data = array( |
|
170 | + 'post_date' => $discount->get_date_created( 'edit' ), |
|
171 | + 'post_status' => $discount->get_status( 'edit' ), |
|
172 | + 'post_title' => $discount->get_name( 'edit' ), |
|
173 | + 'post_author' => $discount->get_author( 'edit' ), |
|
174 | + 'post_modified' => $discount->get_date_modified( 'edit' ), |
|
175 | + 'post_excerpt' => $discount->get_description( 'edit' ), |
|
176 | + ); |
|
177 | + |
|
178 | + /** |
|
179 | + * When updating this object, to prevent infinite loops, use $wpdb |
|
180 | + * to update data, since wp_update_post spawns more calls to the |
|
181 | + * save_post action. |
|
182 | + * |
|
183 | + * This ensures hooks are fired by either WP itself (admin screen save), |
|
184 | + * or an update purely from CRUD. |
|
185 | + */ |
|
186 | + if ( doing_action( 'save_post' ) ) { |
|
187 | + $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) ); |
|
188 | + clean_post_cache( $discount->get_id() ); |
|
189 | + } else { |
|
190 | + wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) ); |
|
191 | + } |
|
192 | + $discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
193 | + } |
|
194 | + $this->update_post_meta( $discount ); |
|
195 | + $discount->apply_changes(); |
|
196 | + $this->clear_caches( $discount ); |
|
197 | + |
|
198 | + // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
199 | + $new_status = $discount->get_status( 'edit' ); |
|
200 | + |
|
201 | + if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
202 | + do_action( 'getpaid_new_discount', $discount ); |
|
203 | + } else { |
|
204 | + do_action( 'getpaid_update_discount', $discount ); |
|
205 | + } |
|
206 | + |
|
207 | + } |
|
208 | + |
|
209 | + /* |
|
210 | 210 | |-------------------------------------------------------------------------- |
211 | 211 | | Additional Methods |
212 | 212 | |-------------------------------------------------------------------------- |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * GetPaid_Discount_Data_Store class file. |
5 | 5 | * |
6 | 6 | */ |
7 | -if ( ! defined( 'ABSPATH' ) ) { |
|
7 | +if (!defined('ABSPATH')) { |
|
8 | 8 | exit; |
9 | 9 | } |
10 | 10 | |
@@ -73,38 +73,38 @@ discard block |
||
73 | 73 | * |
74 | 74 | * @param WPInv_Discount $discount Discount object. |
75 | 75 | */ |
76 | - public function create( &$discount ) { |
|
77 | - $discount->set_version( WPINV_VERSION ); |
|
78 | - $discount->set_date_created( current_time( 'mysql' ) ); |
|
76 | + public function create(&$discount) { |
|
77 | + $discount->set_version(WPINV_VERSION); |
|
78 | + $discount->set_date_created(current_time('mysql')); |
|
79 | 79 | |
80 | 80 | // Create a new post. |
81 | 81 | $id = wp_insert_post( |
82 | 82 | apply_filters( |
83 | 83 | 'getpaid_new_discount_data', |
84 | 84 | array( |
85 | - 'post_date' => $discount->get_date_created( 'edit' ), |
|
85 | + 'post_date' => $discount->get_date_created('edit'), |
|
86 | 86 | 'post_type' => 'wpi_discount', |
87 | - 'post_status' => $this->get_post_status( $discount ), |
|
87 | + 'post_status' => $this->get_post_status($discount), |
|
88 | 88 | 'ping_status' => 'closed', |
89 | - 'post_author' => $discount->get_author( 'edit' ), |
|
90 | - 'post_title' => $discount->get_name( 'edit' ), |
|
91 | - 'post_excerpt' => $discount->get_description( 'edit' ), |
|
89 | + 'post_author' => $discount->get_author('edit'), |
|
90 | + 'post_title' => $discount->get_name('edit'), |
|
91 | + 'post_excerpt' => $discount->get_description('edit'), |
|
92 | 92 | ) |
93 | 93 | ), |
94 | 94 | true |
95 | 95 | ); |
96 | 96 | |
97 | - if ( $id && ! is_wp_error( $id ) ) { |
|
98 | - $discount->set_id( $id ); |
|
99 | - $this->update_post_meta( $discount ); |
|
97 | + if ($id && !is_wp_error($id)) { |
|
98 | + $discount->set_id($id); |
|
99 | + $this->update_post_meta($discount); |
|
100 | 100 | $discount->save_meta_data(); |
101 | 101 | $discount->apply_changes(); |
102 | - $this->clear_caches( $discount ); |
|
103 | - do_action( 'getpaid_new_discount', $discount ); |
|
102 | + $this->clear_caches($discount); |
|
103 | + do_action('getpaid_new_discount', $discount); |
|
104 | 104 | return true; |
105 | 105 | } |
106 | 106 | |
107 | - if ( is_wp_error( $id ) ) { |
|
107 | + if (is_wp_error($id)) { |
|
108 | 108 | $discount->last_error = $id->get_error_message(); |
109 | 109 | } |
110 | 110 | |
@@ -117,14 +117,14 @@ discard block |
||
117 | 117 | * @param WPInv_Discount $discount Discount object. |
118 | 118 | * |
119 | 119 | */ |
120 | - public function read( &$discount ) { |
|
120 | + public function read(&$discount) { |
|
121 | 121 | |
122 | 122 | $discount->set_defaults(); |
123 | - $discount_object = get_post( $discount->get_id() ); |
|
123 | + $discount_object = get_post($discount->get_id()); |
|
124 | 124 | |
125 | - if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) { |
|
126 | - $discount->last_error = __( 'Invalid discount.', 'invoicing' ); |
|
127 | - $discount->set_id( 0 ); |
|
125 | + if (!$discount->get_id() || !$discount_object || $discount_object->post_type != 'wpi_discount') { |
|
126 | + $discount->last_error = __('Invalid discount.', 'invoicing'); |
|
127 | + $discount->set_id(0); |
|
128 | 128 | return false; |
129 | 129 | } |
130 | 130 | |
@@ -139,10 +139,10 @@ discard block |
||
139 | 139 | ) |
140 | 140 | ); |
141 | 141 | |
142 | - $this->read_object_data( $discount, $discount_object ); |
|
142 | + $this->read_object_data($discount, $discount_object); |
|
143 | 143 | $discount->read_meta_data(); |
144 | - $discount->set_object_read( true ); |
|
145 | - do_action( 'getpaid_read_discount', $discount ); |
|
144 | + $discount->set_object_read(true); |
|
145 | + do_action('getpaid_read_discount', $discount); |
|
146 | 146 | |
147 | 147 | } |
148 | 148 | |
@@ -151,28 +151,28 @@ discard block |
||
151 | 151 | * |
152 | 152 | * @param WPInv_Discount $discount Discount object. |
153 | 153 | */ |
154 | - public function update( &$discount ) { |
|
154 | + public function update(&$discount) { |
|
155 | 155 | $discount->save_meta_data(); |
156 | - $discount->set_version( WPINV_VERSION ); |
|
156 | + $discount->set_version(WPINV_VERSION); |
|
157 | 157 | |
158 | - if ( null === $discount->get_date_created( 'edit' ) ) { |
|
159 | - $discount->set_date_created( current_time( 'mysql' ) ); |
|
158 | + if (null === $discount->get_date_created('edit')) { |
|
159 | + $discount->set_date_created(current_time('mysql')); |
|
160 | 160 | } |
161 | 161 | |
162 | 162 | // Grab the current status so we can compare. |
163 | - $previous_status = get_post_status( $discount->get_id() ); |
|
163 | + $previous_status = get_post_status($discount->get_id()); |
|
164 | 164 | |
165 | 165 | $changes = $discount->get_changes(); |
166 | 166 | |
167 | 167 | // Only update the post when the post data changes. |
168 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) { |
|
168 | + if (array_intersect(array('date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt'), array_keys($changes))) { |
|
169 | 169 | $post_data = array( |
170 | - 'post_date' => $discount->get_date_created( 'edit' ), |
|
171 | - 'post_status' => $discount->get_status( 'edit' ), |
|
172 | - 'post_title' => $discount->get_name( 'edit' ), |
|
173 | - 'post_author' => $discount->get_author( 'edit' ), |
|
174 | - 'post_modified' => $discount->get_date_modified( 'edit' ), |
|
175 | - 'post_excerpt' => $discount->get_description( 'edit' ), |
|
170 | + 'post_date' => $discount->get_date_created('edit'), |
|
171 | + 'post_status' => $discount->get_status('edit'), |
|
172 | + 'post_title' => $discount->get_name('edit'), |
|
173 | + 'post_author' => $discount->get_author('edit'), |
|
174 | + 'post_modified' => $discount->get_date_modified('edit'), |
|
175 | + 'post_excerpt' => $discount->get_description('edit'), |
|
176 | 176 | ); |
177 | 177 | |
178 | 178 | /** |
@@ -183,25 +183,25 @@ discard block |
||
183 | 183 | * This ensures hooks are fired by either WP itself (admin screen save), |
184 | 184 | * or an update purely from CRUD. |
185 | 185 | */ |
186 | - if ( doing_action( 'save_post' ) ) { |
|
187 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) ); |
|
188 | - clean_post_cache( $discount->get_id() ); |
|
186 | + if (doing_action('save_post')) { |
|
187 | + $GLOBALS['wpdb']->update($GLOBALS['wpdb']->posts, $post_data, array('ID' => $discount->get_id())); |
|
188 | + clean_post_cache($discount->get_id()); |
|
189 | 189 | } else { |
190 | - wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) ); |
|
190 | + wp_update_post(array_merge(array('ID' => $discount->get_id()), $post_data)); |
|
191 | 191 | } |
192 | - $discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
192 | + $discount->read_meta_data(true); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
193 | 193 | } |
194 | - $this->update_post_meta( $discount ); |
|
194 | + $this->update_post_meta($discount); |
|
195 | 195 | $discount->apply_changes(); |
196 | - $this->clear_caches( $discount ); |
|
196 | + $this->clear_caches($discount); |
|
197 | 197 | |
198 | 198 | // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
199 | - $new_status = $discount->get_status( 'edit' ); |
|
199 | + $new_status = $discount->get_status('edit'); |
|
200 | 200 | |
201 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
202 | - do_action( 'getpaid_new_discount', $discount ); |
|
201 | + if ($new_status !== $previous_status && in_array($previous_status, array('new', 'auto-draft', 'draft'), true)) { |
|
202 | + do_action('getpaid_new_discount', $discount); |
|
203 | 203 | } else { |
204 | - do_action( 'getpaid_update_discount', $discount ); |
|
204 | + do_action('getpaid_update_discount', $discount); |
|
205 | 205 | } |
206 | 206 | |
207 | 207 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * GetPaid_Invoice_Data_Store class file. |
5 | 5 | * |
6 | 6 | */ |
7 | -if ( ! defined( 'ABSPATH' ) ) { |
|
7 | +if (!defined('ABSPATH')) { |
|
8 | 8 | exit; |
9 | 9 | } |
10 | 10 | |
@@ -114,61 +114,61 @@ discard block |
||
114 | 114 | * |
115 | 115 | * @param WPInv_Invoice $invoice Invoice object. |
116 | 116 | */ |
117 | - public function create( &$invoice ) { |
|
118 | - $invoice->set_version( WPINV_VERSION ); |
|
119 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
117 | + public function create(&$invoice) { |
|
118 | + $invoice->set_version(WPINV_VERSION); |
|
119 | + $invoice->set_date_created(current_time('mysql')); |
|
120 | 120 | |
121 | 121 | // Create a new post. |
122 | 122 | $id = wp_insert_post( |
123 | 123 | apply_filters( |
124 | 124 | 'getpaid_new_invoice_data', |
125 | 125 | array( |
126 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
127 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
128 | - 'post_status' => $this->get_post_status( $invoice ), |
|
126 | + 'post_date' => $invoice->get_date_created('edit'), |
|
127 | + 'post_type' => $invoice->get_post_type('edit'), |
|
128 | + 'post_status' => $this->get_post_status($invoice), |
|
129 | 129 | 'ping_status' => 'closed', |
130 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
131 | - 'post_title' => $invoice->get_title( 'edit' ), |
|
132 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
133 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
130 | + 'post_author' => $invoice->get_user_id('edit'), |
|
131 | + 'post_title' => $invoice->get_title('edit'), |
|
132 | + 'post_excerpt' => $invoice->get_description('edit'), |
|
133 | + 'post_parent' => $invoice->get_parent_id('edit'), |
|
134 | 134 | ) |
135 | 135 | ), |
136 | 136 | true |
137 | 137 | ); |
138 | 138 | |
139 | - if ( $id && ! is_wp_error( $id ) ) { |
|
139 | + if ($id && !is_wp_error($id)) { |
|
140 | 140 | |
141 | 141 | // Update the new id and regenerate a title. |
142 | - $invoice->set_id( $id ); |
|
142 | + $invoice->set_id($id); |
|
143 | 143 | |
144 | 144 | $invoice->maybe_set_number(); |
145 | 145 | |
146 | 146 | wp_update_post( |
147 | 147 | array( |
148 | 148 | 'ID' => $invoice->get_id(), |
149 | - 'post_title' => $invoice->get_number( 'edit' ), |
|
150 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
149 | + 'post_title' => $invoice->get_number('edit'), |
|
150 | + 'post_name' => $invoice->get_path('edit'), |
|
151 | 151 | ) |
152 | 152 | ); |
153 | 153 | |
154 | 154 | // Save special fields and items. |
155 | - $this->save_special_fields( $invoice ); |
|
156 | - $this->save_items( $invoice ); |
|
155 | + $this->save_special_fields($invoice); |
|
156 | + $this->save_items($invoice); |
|
157 | 157 | |
158 | 158 | // Update meta data. |
159 | - $this->update_post_meta( $invoice ); |
|
159 | + $this->update_post_meta($invoice); |
|
160 | 160 | $invoice->save_meta_data(); |
161 | 161 | |
162 | 162 | // Apply changes. |
163 | 163 | $invoice->apply_changes(); |
164 | - $this->clear_caches( $invoice ); |
|
164 | + $this->clear_caches($invoice); |
|
165 | 165 | |
166 | 166 | // Fires after a new invoice is created. |
167 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
167 | + do_action('getpaid_new_invoice', $invoice); |
|
168 | 168 | return true; |
169 | 169 | } |
170 | 170 | |
171 | - if ( is_wp_error( $id ) ) { |
|
171 | + if (is_wp_error($id)) { |
|
172 | 172 | $invoice->last_error = $id->get_error_message(); |
173 | 173 | } |
174 | 174 | |
@@ -181,14 +181,14 @@ discard block |
||
181 | 181 | * @param WPInv_Invoice $invoice Invoice object. |
182 | 182 | * |
183 | 183 | */ |
184 | - public function read( &$invoice ) { |
|
184 | + public function read(&$invoice) { |
|
185 | 185 | |
186 | 186 | $invoice->set_defaults(); |
187 | - $invoice_object = get_post( $invoice->get_id() ); |
|
187 | + $invoice_object = get_post($invoice->get_id()); |
|
188 | 188 | |
189 | - if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) { |
|
190 | - $invoice->last_error = __( 'Invalid invoice.', 'invoicing' ); |
|
191 | - $invoice->set_id( 0 ); |
|
189 | + if (!$invoice->get_id() || !$invoice_object || !getpaid_is_invoice_post_type($invoice_object->post_type)) { |
|
190 | + $invoice->last_error = __('Invalid invoice.', 'invoicing'); |
|
191 | + $invoice->set_id(0); |
|
192 | 192 | return false; |
193 | 193 | } |
194 | 194 | |
@@ -206,14 +206,14 @@ discard block |
||
206 | 206 | ) |
207 | 207 | ); |
208 | 208 | |
209 | - $invoice->set_type( $invoice_object->post_type ); |
|
209 | + $invoice->set_type($invoice_object->post_type); |
|
210 | 210 | |
211 | - $this->read_object_data( $invoice, $invoice_object ); |
|
212 | - $this->add_special_fields( $invoice ); |
|
213 | - $this->add_items( $invoice ); |
|
211 | + $this->read_object_data($invoice, $invoice_object); |
|
212 | + $this->add_special_fields($invoice); |
|
213 | + $this->add_items($invoice); |
|
214 | 214 | $invoice->read_meta_data(); |
215 | - $invoice->set_object_read( true ); |
|
216 | - do_action( 'getpaid_read_invoice', $invoice ); |
|
215 | + $invoice->set_object_read(true); |
|
216 | + do_action('getpaid_read_invoice', $invoice); |
|
217 | 217 | |
218 | 218 | } |
219 | 219 | |
@@ -222,35 +222,35 @@ discard block |
||
222 | 222 | * |
223 | 223 | * @param WPInv_Invoice $invoice Invoice object. |
224 | 224 | */ |
225 | - public function update( &$invoice ) { |
|
225 | + public function update(&$invoice) { |
|
226 | 226 | $invoice->save_meta_data(); |
227 | - $invoice->set_version( WPINV_VERSION ); |
|
227 | + $invoice->set_version(WPINV_VERSION); |
|
228 | 228 | |
229 | - if ( null === $invoice->get_date_created( 'edit' ) ) { |
|
230 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
229 | + if (null === $invoice->get_date_created('edit')) { |
|
230 | + $invoice->set_date_created(current_time('mysql')); |
|
231 | 231 | } |
232 | 232 | |
233 | 233 | // Ensure both the key and number are set. |
234 | 234 | $invoice->get_path(); |
235 | 235 | |
236 | 236 | // Grab the current status so we can compare. |
237 | - $previous_status = get_post_status( $invoice->get_id() ); |
|
237 | + $previous_status = get_post_status($invoice->get_id()); |
|
238 | 238 | |
239 | 239 | $changes = $invoice->get_changes(); |
240 | 240 | |
241 | 241 | // Only update the post when the post data changes. |
242 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) { |
|
242 | + if (array_intersect(array('date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path'), array_keys($changes))) { |
|
243 | 243 | $post_data = array( |
244 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
245 | - 'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ), |
|
246 | - 'post_status' => $invoice->get_status( 'edit' ), |
|
247 | - 'post_title' => $invoice->get_name( 'edit' ), |
|
248 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
249 | - 'post_modified' => $invoice->get_date_modified( 'edit' ), |
|
250 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
251 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
252 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
253 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
244 | + 'post_date' => $invoice->get_date_created('edit'), |
|
245 | + 'post_date_gmt' => $invoice->get_date_created_gmt('edit'), |
|
246 | + 'post_status' => $invoice->get_status('edit'), |
|
247 | + 'post_title' => $invoice->get_name('edit'), |
|
248 | + 'post_author' => $invoice->get_user_id('edit'), |
|
249 | + 'post_modified' => $invoice->get_date_modified('edit'), |
|
250 | + 'post_excerpt' => $invoice->get_description('edit'), |
|
251 | + 'post_parent' => $invoice->get_parent_id('edit'), |
|
252 | + 'post_name' => $invoice->get_path('edit'), |
|
253 | + 'post_type' => $invoice->get_post_type('edit'), |
|
254 | 254 | ); |
255 | 255 | |
256 | 256 | /** |
@@ -261,35 +261,35 @@ discard block |
||
261 | 261 | * This ensures hooks are fired by either WP itself (admin screen save), |
262 | 262 | * or an update purely from CRUD. |
263 | 263 | */ |
264 | - if ( doing_action( 'save_post' ) ) { |
|
265 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) ); |
|
266 | - clean_post_cache( $invoice->get_id() ); |
|
264 | + if (doing_action('save_post')) { |
|
265 | + $GLOBALS['wpdb']->update($GLOBALS['wpdb']->posts, $post_data, array('ID' => $invoice->get_id())); |
|
266 | + clean_post_cache($invoice->get_id()); |
|
267 | 267 | } else { |
268 | - wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) ); |
|
268 | + wp_update_post(array_merge(array('ID' => $invoice->get_id()), $post_data)); |
|
269 | 269 | } |
270 | - $invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
270 | + $invoice->read_meta_data(true); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
271 | 271 | } |
272 | 272 | |
273 | 273 | // Update meta data. |
274 | - $this->update_post_meta( $invoice ); |
|
274 | + $this->update_post_meta($invoice); |
|
275 | 275 | |
276 | 276 | // Save special fields and items. |
277 | - $this->save_special_fields( $invoice ); |
|
278 | - $this->save_items( $invoice ); |
|
277 | + $this->save_special_fields($invoice); |
|
278 | + $this->save_items($invoice); |
|
279 | 279 | |
280 | 280 | // Apply the changes. |
281 | 281 | $invoice->apply_changes(); |
282 | 282 | |
283 | 283 | // Clear caches. |
284 | - $this->clear_caches( $invoice ); |
|
284 | + $this->clear_caches($invoice); |
|
285 | 285 | |
286 | 286 | // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
287 | - $new_status = $invoice->get_status( 'edit' ); |
|
287 | + $new_status = $invoice->get_status('edit'); |
|
288 | 288 | |
289 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
290 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
289 | + if ($new_status !== $previous_status && in_array($previous_status, array('new', 'auto-draft', 'draft'), true)) { |
|
290 | + do_action('getpaid_new_invoice', $invoice); |
|
291 | 291 | } else { |
292 | - do_action( 'getpaid_update_invoice', $invoice ); |
|
292 | + do_action('getpaid_update_invoice', $invoice); |
|
293 | 293 | } |
294 | 294 | |
295 | 295 | } |
@@ -305,45 +305,45 @@ discard block |
||
305 | 305 | * |
306 | 306 | * @param WPInv_Invoice $invoice Invoice object. |
307 | 307 | */ |
308 | - public function add_special_fields( &$invoice ) { |
|
308 | + public function add_special_fields(&$invoice) { |
|
309 | 309 | global $wpdb; |
310 | 310 | |
311 | 311 | // Maybe retrieve from the cache. |
312 | - $data = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
312 | + $data = wp_cache_get($invoice->get_id(), 'getpaid_invoice_special_fields'); |
|
313 | 313 | |
314 | 314 | // If not found, retrieve from the db. |
315 | - if ( false === $data ) { |
|
315 | + if (false === $data) { |
|
316 | 316 | $table = $wpdb->prefix . 'getpaid_invoices'; |
317 | 317 | |
318 | 318 | $data = $wpdb->get_row( |
319 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ), |
|
319 | + $wpdb->prepare("SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id()), |
|
320 | 320 | ARRAY_A |
321 | 321 | ); |
322 | 322 | |
323 | 323 | // Update the cache with our data |
324 | - wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' ); |
|
324 | + wp_cache_set($invoice->get_id(), $data, 'getpaid_invoice_special_fields'); |
|
325 | 325 | |
326 | 326 | } |
327 | 327 | |
328 | 328 | // Abort if the data does not exist. |
329 | - if ( empty( $data ) ) { |
|
330 | - $invoice->set_object_read( true ); |
|
331 | - $invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) ); |
|
329 | + if (empty($data)) { |
|
330 | + $invoice->set_object_read(true); |
|
331 | + $invoice->set_props(wpinv_get_user_address($invoice->get_user_id())); |
|
332 | 332 | return; |
333 | 333 | } |
334 | 334 | |
335 | 335 | $props = array(); |
336 | 336 | |
337 | - foreach ( $this->database_fields_to_props as $db_field => $prop ) { |
|
337 | + foreach ($this->database_fields_to_props as $db_field => $prop) { |
|
338 | 338 | |
339 | - if ( $db_field == 'post_id' ) { |
|
339 | + if ($db_field == 'post_id') { |
|
340 | 340 | continue; |
341 | 341 | } |
342 | 342 | |
343 | - $props[ $prop ] = $data[ $db_field ]; |
|
343 | + $props[$prop] = $data[$db_field]; |
|
344 | 344 | } |
345 | 345 | |
346 | - $invoice->set_props( $props ); |
|
346 | + $invoice->set_props($props); |
|
347 | 347 | |
348 | 348 | } |
349 | 349 | |
@@ -354,14 +354,14 @@ discard block |
||
354 | 354 | * @param WPInv_Invoice $invoice The Invoice object. |
355 | 355 | * @return array A mapping of field keys => prop names, filtered by ones that should be updated. |
356 | 356 | */ |
357 | - protected function get_special_fields_to_update( $invoice ) { |
|
357 | + protected function get_special_fields_to_update($invoice) { |
|
358 | 358 | $fields_to_update = array(); |
359 | - $changed_props = $invoice->get_changes(); |
|
359 | + $changed_props = $invoice->get_changes(); |
|
360 | 360 | |
361 | 361 | // Props should be updated if they are a part of the $changed array or don't exist yet. |
362 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
363 | - if ( array_key_exists( $prop, $changed_props ) ) { |
|
364 | - $fields_to_update[ $database_field ] = $prop; |
|
362 | + foreach ($this->database_fields_to_props as $database_field => $prop) { |
|
363 | + if (array_key_exists($prop, $changed_props)) { |
|
364 | + $fields_to_update[$database_field] = $prop; |
|
365 | 365 | } |
366 | 366 | } |
367 | 367 | |
@@ -374,25 +374,25 @@ discard block |
||
374 | 374 | * @param WPInv_Invoice $invoice WPInv_Invoice object. |
375 | 375 | * @since 1.0.19 |
376 | 376 | */ |
377 | - protected function update_special_fields( &$invoice ) { |
|
377 | + protected function update_special_fields(&$invoice) { |
|
378 | 378 | global $wpdb; |
379 | 379 | |
380 | 380 | $updated_props = array(); |
381 | - $fields_to_update = $this->get_special_fields_to_update( $invoice ); |
|
381 | + $fields_to_update = $this->get_special_fields_to_update($invoice); |
|
382 | 382 | |
383 | - foreach ( $fields_to_update as $database_field => $prop ) { |
|
384 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
385 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
386 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
387 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
383 | + foreach ($fields_to_update as $database_field => $prop) { |
|
384 | + $value = $invoice->{"get_$prop"}('edit'); |
|
385 | + $value = is_string($value) ? wp_slash($value) : $value; |
|
386 | + $value = is_bool($value) ? (int) $value : $value; |
|
387 | + $updated_props[$database_field] = maybe_serialize($value); |
|
388 | 388 | } |
389 | 389 | |
390 | - if ( ! empty( $updated_props ) ) { |
|
390 | + if (!empty($updated_props)) { |
|
391 | 391 | |
392 | 392 | $table = $wpdb->prefix . 'getpaid_invoices'; |
393 | - $wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) ); |
|
394 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
395 | - do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props ); |
|
393 | + $wpdb->update($table, $updated_props, array('post_id' => $invoice->get_id())); |
|
394 | + wp_cache_delete($invoice->get_id(), 'getpaid_invoice_special_fields'); |
|
395 | + do_action('getpaid_invoice_update_database_fields', $invoice, $updated_props); |
|
396 | 396 | |
397 | 397 | } |
398 | 398 | |
@@ -404,22 +404,22 @@ discard block |
||
404 | 404 | * @param WPInv_Invoice $invoice WPInv_Invoice object. |
405 | 405 | * @since 1.0.19 |
406 | 406 | */ |
407 | - protected function insert_special_fields( &$invoice ) { |
|
407 | + protected function insert_special_fields(&$invoice) { |
|
408 | 408 | global $wpdb; |
409 | 409 | |
410 | - $updated_props = array(); |
|
410 | + $updated_props = array(); |
|
411 | 411 | |
412 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
413 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
414 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
415 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
416 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
412 | + foreach ($this->database_fields_to_props as $database_field => $prop) { |
|
413 | + $value = $invoice->{"get_$prop"}('edit'); |
|
414 | + $value = is_string($value) ? wp_slash($value) : $value; |
|
415 | + $value = is_bool($value) ? (int) $value : $value; |
|
416 | + $updated_props[$database_field] = maybe_serialize($value); |
|
417 | 417 | } |
418 | 418 | |
419 | 419 | $table = $wpdb->prefix . 'getpaid_invoices'; |
420 | - $wpdb->insert( $table, $updated_props ); |
|
421 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
422 | - do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props ); |
|
420 | + $wpdb->insert($table, $updated_props); |
|
421 | + wp_cache_delete($invoice->get_id(), 'getpaid_invoice_special_fields'); |
|
422 | + do_action('getpaid_invoice_insert_database_fields', $invoice, $updated_props); |
|
423 | 423 | |
424 | 424 | } |
425 | 425 | |
@@ -428,7 +428,7 @@ discard block |
||
428 | 428 | * |
429 | 429 | * @param WPInv_Invoice $invoice Invoice object. |
430 | 430 | */ |
431 | - public function save_special_fields( &$invoice ) { |
|
431 | + public function save_special_fields(&$invoice) { |
|
432 | 432 | global $wpdb; |
433 | 433 | |
434 | 434 | // The invoices table. |
@@ -436,13 +436,13 @@ discard block |
||
436 | 436 | $id = (int) $invoice->get_id(); |
437 | 437 | $invoice->maybe_set_key(); |
438 | 438 | |
439 | - if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) { |
|
439 | + if ($wpdb->get_var("SELECT `post_id` FROM $table WHERE `post_id`= $id")) { |
|
440 | 440 | |
441 | - $this->update_special_fields( $invoice ); |
|
441 | + $this->update_special_fields($invoice); |
|
442 | 442 | |
443 | 443 | } else { |
444 | 444 | |
445 | - $this->insert_special_fields( $invoice ); |
|
445 | + $this->insert_special_fields($invoice); |
|
446 | 446 | |
447 | 447 | } |
448 | 448 | |
@@ -453,46 +453,46 @@ discard block |
||
453 | 453 | * |
454 | 454 | * @param WPInv_Invoice $invoice Invoice object. |
455 | 455 | */ |
456 | - public function add_items( &$invoice ) { |
|
456 | + public function add_items(&$invoice) { |
|
457 | 457 | global $wpdb; |
458 | 458 | |
459 | 459 | // Maybe retrieve from the cache. |
460 | - $items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
460 | + $items = wp_cache_get($invoice->get_id(), 'getpaid_invoice_cart_details'); |
|
461 | 461 | |
462 | 462 | // If not found, retrieve from the db. |
463 | - if ( false === $items ) { |
|
463 | + if (false === $items) { |
|
464 | 464 | $table = $wpdb->prefix . 'getpaid_invoice_items'; |
465 | 465 | |
466 | 466 | $items = $wpdb->get_results( |
467 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() ) |
|
467 | + $wpdb->prepare("SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id()) |
|
468 | 468 | ); |
469 | 469 | |
470 | 470 | // Update the cache with our data |
471 | - wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' ); |
|
471 | + wp_cache_set($invoice->get_id(), $items, 'getpaid_invoice_cart_details'); |
|
472 | 472 | |
473 | 473 | } |
474 | 474 | |
475 | 475 | // Abort if no items found. |
476 | - if ( empty( $items ) ) { |
|
476 | + if (empty($items)) { |
|
477 | 477 | return; |
478 | 478 | } |
479 | 479 | |
480 | 480 | $_items = array(); |
481 | - foreach ( $items as $item_data ) { |
|
482 | - $item = new GetPaid_Form_Item( $item_data->item_id ); |
|
481 | + foreach ($items as $item_data) { |
|
482 | + $item = new GetPaid_Form_Item($item_data->item_id); |
|
483 | 483 | |
484 | 484 | // Set item data. |
485 | - $item->item_tax = wpinv_sanitize_amount( $item_data->tax ); |
|
486 | - $item->item_discount = wpinv_sanitize_amount( $item_data->discount ); |
|
487 | - $item->set_name( $item_data->item_name ); |
|
488 | - $item->set_description( $item_data->item_description ); |
|
489 | - $item->set_price( $item_data->item_price ); |
|
490 | - $item->set_quantity( $item_data->quantity ); |
|
491 | - $item->set_item_meta( $item_data->meta ); |
|
485 | + $item->item_tax = wpinv_sanitize_amount($item_data->tax); |
|
486 | + $item->item_discount = wpinv_sanitize_amount($item_data->discount); |
|
487 | + $item->set_name($item_data->item_name); |
|
488 | + $item->set_description($item_data->item_description); |
|
489 | + $item->set_price($item_data->item_price); |
|
490 | + $item->set_quantity($item_data->quantity); |
|
491 | + $item->set_item_meta($item_data->meta); |
|
492 | 492 | $_items[] = $item; |
493 | 493 | } |
494 | 494 | |
495 | - $invoice->set_items( $_items ); |
|
495 | + $invoice->set_items($_items); |
|
496 | 496 | } |
497 | 497 | |
498 | 498 | /** |
@@ -500,20 +500,20 @@ discard block |
||
500 | 500 | * |
501 | 501 | * @param WPInv_Invoice $invoice Invoice object. |
502 | 502 | */ |
503 | - public function save_items( $invoice ) { |
|
503 | + public function save_items($invoice) { |
|
504 | 504 | |
505 | 505 | // Delete previously existing items. |
506 | - $this->delete_items( $invoice ); |
|
506 | + $this->delete_items($invoice); |
|
507 | 507 | |
508 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
508 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
509 | 509 | |
510 | - foreach ( $invoice->get_cart_details() as $item_data ) { |
|
511 | - $item_data = array_map( 'maybe_serialize', $item_data ); |
|
512 | - $GLOBALS['wpdb']->insert( $table, $item_data ); |
|
510 | + foreach ($invoice->get_cart_details() as $item_data) { |
|
511 | + $item_data = array_map('maybe_serialize', $item_data); |
|
512 | + $GLOBALS['wpdb']->insert($table, $item_data); |
|
513 | 513 | } |
514 | 514 | |
515 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
516 | - do_action( 'getpaid_invoice_save_items', $invoice ); |
|
515 | + wp_cache_delete($invoice->get_id(), 'getpaid_invoice_cart_details'); |
|
516 | + do_action('getpaid_invoice_save_items', $invoice); |
|
517 | 517 | |
518 | 518 | } |
519 | 519 | |
@@ -522,9 +522,9 @@ discard block |
||
522 | 522 | * |
523 | 523 | * @param WPInv_Invoice $invoice Invoice object. |
524 | 524 | */ |
525 | - public function delete_items( $invoice ) { |
|
525 | + public function delete_items($invoice) { |
|
526 | 526 | $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
527 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
527 | + return $GLOBALS['wpdb']->delete($table, array('post_id' => $invoice->get_id())); |
|
528 | 528 | } |
529 | 529 | |
530 | 530 | /** |
@@ -532,9 +532,9 @@ discard block |
||
532 | 532 | * |
533 | 533 | * @param WPInv_Invoice $invoice Invoice object. |
534 | 534 | */ |
535 | - public function delete_special_fields( $invoice ) { |
|
535 | + public function delete_special_fields($invoice) { |
|
536 | 536 | $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices'; |
537 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
537 | + return $GLOBALS['wpdb']->delete($table, array('post_id' => $invoice->get_id())); |
|
538 | 538 | } |
539 | 539 | |
540 | 540 | /** |
@@ -545,10 +545,10 @@ discard block |
||
545 | 545 | * @param WPInv_Invoice $object GetPaid_Data object. |
546 | 546 | * @return string |
547 | 547 | */ |
548 | - protected function get_post_status( $object ) { |
|
549 | - $object_status = $object->get_status( 'edit' ); |
|
548 | + protected function get_post_status($object) { |
|
549 | + $object_status = $object->get_status('edit'); |
|
550 | 550 | |
551 | - if ( ! $object_status ) { |
|
551 | + if (!$object_status) { |
|
552 | 552 | $object_status = $object->get_default_status(); |
553 | 553 | } |
554 | 554 |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | * |
6 | 6 | */ |
7 | 7 | if ( ! defined( 'ABSPATH' ) ) { |
8 | - exit; |
|
8 | + exit; |
|
9 | 9 | } |
10 | 10 | |
11 | 11 | /** |
@@ -15,545 +15,545 @@ discard block |
||
15 | 15 | */ |
16 | 16 | class GetPaid_Invoice_Data_Store extends GetPaid_Data_Store_WP { |
17 | 17 | |
18 | - /** |
|
19 | - * Data stored in meta keys, but not considered "meta" for a discount. |
|
20 | - * |
|
21 | - * @since 1.0.19 |
|
22 | - * @var array |
|
23 | - */ |
|
24 | - protected $internal_meta_keys = array( |
|
25 | - '_wpinv_subscr_profile_id', |
|
26 | - '_wpinv_subscription_id', |
|
27 | - '_wpinv_taxes', |
|
28 | - '_wpinv_fees', |
|
29 | - '_wpinv_discounts', |
|
30 | - '_wpinv_submission_id', |
|
31 | - '_wpinv_payment_form', |
|
32 | - '_wpinv_is_viewed', |
|
33 | - '_wpinv_phone', |
|
34 | - '_wpinv_company_id', |
|
35 | - 'wpinv_shipping', |
|
36 | - 'wpinv_email_cc', |
|
37 | - 'wpinv_template', |
|
38 | - 'wpinv_created_via', |
|
39 | - ); |
|
40 | - |
|
41 | - /** |
|
42 | - * A map of meta keys to data props. |
|
43 | - * |
|
44 | - * @since 1.0.19 |
|
45 | - * |
|
46 | - * @var array |
|
47 | - */ |
|
48 | - protected $meta_key_to_props = array( |
|
49 | - '_wpinv_subscr_profile_id' => 'remote_subscription_id', |
|
50 | - '_wpinv_subscription_id' => 'subscription_id', |
|
51 | - '_wpinv_taxes' => 'taxes', |
|
52 | - '_wpinv_fees' => 'fees', |
|
53 | - '_wpinv_discounts' => 'discounts', |
|
54 | - '_wpinv_submission_id' => 'submission_id', |
|
55 | - '_wpinv_payment_form' => 'payment_form', |
|
56 | - '_wpinv_is_viewed' => 'is_viewed', |
|
57 | - 'wpinv_email_cc' => 'email_cc', |
|
58 | - 'wpinv_template' => 'template', |
|
59 | - 'wpinv_created_via' => 'created_via', |
|
60 | - '_wpinv_phone' => 'phone', |
|
61 | - '_wpinv_company_id' => 'company_id', |
|
62 | - 'wpinv_shipping' => 'shipping', |
|
63 | - ); |
|
64 | - |
|
65 | - /** |
|
66 | - * A map of database fields to data props. |
|
67 | - * |
|
68 | - * @since 1.0.19 |
|
69 | - * |
|
70 | - * @var array |
|
71 | - */ |
|
72 | - protected $database_fields_to_props = array( |
|
73 | - 'post_id' => 'id', |
|
74 | - 'number' => 'number', |
|
75 | - 'currency' => 'currency', |
|
76 | - 'invoice_key' => 'key', |
|
77 | - 'type' => 'type', |
|
78 | - 'mode' => 'mode', |
|
79 | - 'user_ip' => 'user_ip', |
|
80 | - 'first_name' => 'first_name', |
|
81 | - 'last_name' => 'last_name', |
|
82 | - 'address' => 'address', |
|
83 | - 'city' => 'city', |
|
84 | - 'state' => 'state', |
|
85 | - 'country' => 'country', |
|
86 | - 'zip' => 'zip', |
|
87 | - 'zip' => 'zip', |
|
88 | - 'adddress_confirmed' => 'address_confirmed', |
|
89 | - 'gateway' => 'gateway', |
|
90 | - 'transaction_id' => 'transaction_id', |
|
91 | - 'currency' => 'currency', |
|
92 | - 'subtotal' => 'subtotal', |
|
93 | - 'tax' => 'total_tax', |
|
94 | - 'fees_total' => 'total_fees', |
|
95 | - 'discount' => 'total_discount', |
|
96 | - 'total' => 'total', |
|
97 | - 'discount_code' => 'discount_code', |
|
98 | - 'disable_taxes' => 'disable_taxes', |
|
99 | - 'due_date' => 'due_date', |
|
100 | - 'completed_date' => 'completed_date', |
|
101 | - 'company' => 'company', |
|
102 | - 'vat_number' => 'vat_number', |
|
103 | - 'vat_rate' => 'vat_rate', |
|
104 | - 'customer_id' => 'customer_id', |
|
105 | - ); |
|
106 | - |
|
107 | - /* |
|
18 | + /** |
|
19 | + * Data stored in meta keys, but not considered "meta" for a discount. |
|
20 | + * |
|
21 | + * @since 1.0.19 |
|
22 | + * @var array |
|
23 | + */ |
|
24 | + protected $internal_meta_keys = array( |
|
25 | + '_wpinv_subscr_profile_id', |
|
26 | + '_wpinv_subscription_id', |
|
27 | + '_wpinv_taxes', |
|
28 | + '_wpinv_fees', |
|
29 | + '_wpinv_discounts', |
|
30 | + '_wpinv_submission_id', |
|
31 | + '_wpinv_payment_form', |
|
32 | + '_wpinv_is_viewed', |
|
33 | + '_wpinv_phone', |
|
34 | + '_wpinv_company_id', |
|
35 | + 'wpinv_shipping', |
|
36 | + 'wpinv_email_cc', |
|
37 | + 'wpinv_template', |
|
38 | + 'wpinv_created_via', |
|
39 | + ); |
|
40 | + |
|
41 | + /** |
|
42 | + * A map of meta keys to data props. |
|
43 | + * |
|
44 | + * @since 1.0.19 |
|
45 | + * |
|
46 | + * @var array |
|
47 | + */ |
|
48 | + protected $meta_key_to_props = array( |
|
49 | + '_wpinv_subscr_profile_id' => 'remote_subscription_id', |
|
50 | + '_wpinv_subscription_id' => 'subscription_id', |
|
51 | + '_wpinv_taxes' => 'taxes', |
|
52 | + '_wpinv_fees' => 'fees', |
|
53 | + '_wpinv_discounts' => 'discounts', |
|
54 | + '_wpinv_submission_id' => 'submission_id', |
|
55 | + '_wpinv_payment_form' => 'payment_form', |
|
56 | + '_wpinv_is_viewed' => 'is_viewed', |
|
57 | + 'wpinv_email_cc' => 'email_cc', |
|
58 | + 'wpinv_template' => 'template', |
|
59 | + 'wpinv_created_via' => 'created_via', |
|
60 | + '_wpinv_phone' => 'phone', |
|
61 | + '_wpinv_company_id' => 'company_id', |
|
62 | + 'wpinv_shipping' => 'shipping', |
|
63 | + ); |
|
64 | + |
|
65 | + /** |
|
66 | + * A map of database fields to data props. |
|
67 | + * |
|
68 | + * @since 1.0.19 |
|
69 | + * |
|
70 | + * @var array |
|
71 | + */ |
|
72 | + protected $database_fields_to_props = array( |
|
73 | + 'post_id' => 'id', |
|
74 | + 'number' => 'number', |
|
75 | + 'currency' => 'currency', |
|
76 | + 'invoice_key' => 'key', |
|
77 | + 'type' => 'type', |
|
78 | + 'mode' => 'mode', |
|
79 | + 'user_ip' => 'user_ip', |
|
80 | + 'first_name' => 'first_name', |
|
81 | + 'last_name' => 'last_name', |
|
82 | + 'address' => 'address', |
|
83 | + 'city' => 'city', |
|
84 | + 'state' => 'state', |
|
85 | + 'country' => 'country', |
|
86 | + 'zip' => 'zip', |
|
87 | + 'zip' => 'zip', |
|
88 | + 'adddress_confirmed' => 'address_confirmed', |
|
89 | + 'gateway' => 'gateway', |
|
90 | + 'transaction_id' => 'transaction_id', |
|
91 | + 'currency' => 'currency', |
|
92 | + 'subtotal' => 'subtotal', |
|
93 | + 'tax' => 'total_tax', |
|
94 | + 'fees_total' => 'total_fees', |
|
95 | + 'discount' => 'total_discount', |
|
96 | + 'total' => 'total', |
|
97 | + 'discount_code' => 'discount_code', |
|
98 | + 'disable_taxes' => 'disable_taxes', |
|
99 | + 'due_date' => 'due_date', |
|
100 | + 'completed_date' => 'completed_date', |
|
101 | + 'company' => 'company', |
|
102 | + 'vat_number' => 'vat_number', |
|
103 | + 'vat_rate' => 'vat_rate', |
|
104 | + 'customer_id' => 'customer_id', |
|
105 | + ); |
|
106 | + |
|
107 | + /* |
|
108 | 108 | |-------------------------------------------------------------------------- |
109 | 109 | | CRUD Methods |
110 | 110 | |-------------------------------------------------------------------------- |
111 | 111 | */ |
112 | 112 | |
113 | - /** |
|
114 | - * Method to create a new invoice in the database. |
|
115 | - * |
|
116 | - * @param WPInv_Invoice $invoice Invoice object. |
|
117 | - */ |
|
118 | - public function create( &$invoice ) { |
|
119 | - $invoice->set_version( WPINV_VERSION ); |
|
120 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
121 | - |
|
122 | - // Create a new post. |
|
123 | - $id = wp_insert_post( |
|
124 | - apply_filters( |
|
125 | - 'getpaid_new_invoice_data', |
|
126 | - array( |
|
127 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
128 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
129 | - 'post_status' => $this->get_post_status( $invoice ), |
|
130 | - 'ping_status' => 'closed', |
|
131 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
132 | - 'post_title' => $invoice->get_title( 'edit' ), |
|
133 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
134 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
135 | - ) |
|
136 | - ), |
|
137 | - true |
|
138 | - ); |
|
139 | - |
|
140 | - if ( $id && ! is_wp_error( $id ) ) { |
|
141 | - |
|
142 | - // Update the new id and regenerate a title. |
|
143 | - $invoice->set_id( $id ); |
|
144 | - |
|
145 | - $invoice->maybe_set_number(); |
|
146 | - |
|
147 | - wp_update_post( |
|
148 | - array( |
|
149 | - 'ID' => $invoice->get_id(), |
|
150 | - 'post_title' => $invoice->get_number( 'edit' ), |
|
151 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
152 | - ) |
|
153 | - ); |
|
154 | - |
|
155 | - // Save special fields and items. |
|
156 | - $this->save_special_fields( $invoice ); |
|
157 | - $this->save_items( $invoice ); |
|
158 | - |
|
159 | - // Update meta data. |
|
160 | - $this->update_post_meta( $invoice ); |
|
161 | - $invoice->save_meta_data(); |
|
162 | - |
|
163 | - // Apply changes. |
|
164 | - $invoice->apply_changes(); |
|
165 | - $this->clear_caches( $invoice ); |
|
166 | - |
|
167 | - // Fires after a new invoice is created. |
|
168 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
169 | - return true; |
|
170 | - } |
|
171 | - |
|
172 | - if ( is_wp_error( $id ) ) { |
|
173 | - $invoice->last_error = $id->get_error_message(); |
|
174 | - } |
|
175 | - |
|
176 | - return false; |
|
177 | - } |
|
178 | - |
|
179 | - /** |
|
180 | - * Method to read an invoice from the database. |
|
181 | - * |
|
182 | - * @param WPInv_Invoice $invoice Invoice object. |
|
183 | - * |
|
184 | - */ |
|
185 | - public function read( &$invoice ) { |
|
186 | - |
|
187 | - $invoice->set_defaults(); |
|
188 | - $invoice_object = get_post( $invoice->get_id() ); |
|
189 | - |
|
190 | - if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) { |
|
191 | - $invoice->last_error = __( 'Invalid invoice.', 'invoicing' ); |
|
192 | - $invoice->set_id( 0 ); |
|
193 | - return false; |
|
194 | - } |
|
195 | - |
|
196 | - $invoice->set_props( |
|
197 | - array( |
|
198 | - 'date_created' => 0 < $invoice_object->post_date ? $invoice_object->post_date : null, |
|
199 | - 'date_modified' => 0 < $invoice_object->post_modified ? $invoice_object->post_modified : null, |
|
200 | - 'status' => $invoice_object->post_status, |
|
201 | - 'author' => $invoice_object->post_author, |
|
202 | - 'description' => $invoice_object->post_excerpt, |
|
203 | - 'parent_id' => $invoice_object->post_parent, |
|
204 | - 'name' => $invoice_object->post_title, |
|
205 | - 'path' => $invoice_object->post_name, |
|
206 | - 'post_type' => $invoice_object->post_type, |
|
207 | - ) |
|
208 | - ); |
|
209 | - |
|
210 | - $invoice->set_type( $invoice_object->post_type ); |
|
211 | - |
|
212 | - $this->read_object_data( $invoice, $invoice_object ); |
|
213 | - $this->add_special_fields( $invoice ); |
|
214 | - $this->add_items( $invoice ); |
|
215 | - $invoice->read_meta_data(); |
|
216 | - $invoice->set_object_read( true ); |
|
217 | - do_action( 'getpaid_read_invoice', $invoice ); |
|
218 | - |
|
219 | - } |
|
220 | - |
|
221 | - /** |
|
222 | - * Method to update an invoice in the database. |
|
223 | - * |
|
224 | - * @param WPInv_Invoice $invoice Invoice object. |
|
225 | - */ |
|
226 | - public function update( &$invoice ) { |
|
227 | - $invoice->save_meta_data(); |
|
228 | - $invoice->set_version( WPINV_VERSION ); |
|
229 | - |
|
230 | - if ( null === $invoice->get_date_created( 'edit' ) ) { |
|
231 | - $invoice->set_date_created( current_time( 'mysql' ) ); |
|
232 | - } |
|
233 | - |
|
234 | - // Ensure both the key and number are set. |
|
235 | - $invoice->get_path(); |
|
236 | - |
|
237 | - // Grab the current status so we can compare. |
|
238 | - $previous_status = get_post_status( $invoice->get_id() ); |
|
239 | - |
|
240 | - $changes = $invoice->get_changes(); |
|
241 | - |
|
242 | - // Only update the post when the post data changes. |
|
243 | - if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) { |
|
244 | - $post_data = array( |
|
245 | - 'post_date' => $invoice->get_date_created( 'edit' ), |
|
246 | - 'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ), |
|
247 | - 'post_status' => $invoice->get_status( 'edit' ), |
|
248 | - 'post_title' => $invoice->get_name( 'edit' ), |
|
249 | - 'post_author' => $invoice->get_user_id( 'edit' ), |
|
250 | - 'post_modified' => $invoice->get_date_modified( 'edit' ), |
|
251 | - 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
252 | - 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
253 | - 'post_name' => $invoice->get_path( 'edit' ), |
|
254 | - 'post_type' => $invoice->get_post_type( 'edit' ), |
|
255 | - ); |
|
256 | - |
|
257 | - /** |
|
258 | - * When updating this object, to prevent infinite loops, use $wpdb |
|
259 | - * to update data, since wp_update_post spawns more calls to the |
|
260 | - * save_post action. |
|
261 | - * |
|
262 | - * This ensures hooks are fired by either WP itself (admin screen save), |
|
263 | - * or an update purely from CRUD. |
|
264 | - */ |
|
265 | - if ( doing_action( 'save_post' ) ) { |
|
266 | - $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) ); |
|
267 | - clean_post_cache( $invoice->get_id() ); |
|
268 | - } else { |
|
269 | - wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) ); |
|
270 | - } |
|
271 | - $invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
272 | - } |
|
273 | - |
|
274 | - // Update meta data. |
|
275 | - $this->update_post_meta( $invoice ); |
|
276 | - |
|
277 | - // Save special fields and items. |
|
278 | - $this->save_special_fields( $invoice ); |
|
279 | - $this->save_items( $invoice ); |
|
280 | - |
|
281 | - // Apply the changes. |
|
282 | - $invoice->apply_changes(); |
|
283 | - |
|
284 | - // Clear caches. |
|
285 | - $this->clear_caches( $invoice ); |
|
286 | - |
|
287 | - // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
288 | - $new_status = $invoice->get_status( 'edit' ); |
|
289 | - |
|
290 | - if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
291 | - do_action( 'getpaid_new_invoice', $invoice ); |
|
292 | - } else { |
|
293 | - do_action( 'getpaid_update_invoice', $invoice ); |
|
294 | - } |
|
295 | - |
|
296 | - } |
|
297 | - |
|
298 | - /* |
|
113 | + /** |
|
114 | + * Method to create a new invoice in the database. |
|
115 | + * |
|
116 | + * @param WPInv_Invoice $invoice Invoice object. |
|
117 | + */ |
|
118 | + public function create( &$invoice ) { |
|
119 | + $invoice->set_version( WPINV_VERSION ); |
|
120 | + $invoice->set_date_created( current_time( 'mysql' ) ); |
|
121 | + |
|
122 | + // Create a new post. |
|
123 | + $id = wp_insert_post( |
|
124 | + apply_filters( |
|
125 | + 'getpaid_new_invoice_data', |
|
126 | + array( |
|
127 | + 'post_date' => $invoice->get_date_created( 'edit' ), |
|
128 | + 'post_type' => $invoice->get_post_type( 'edit' ), |
|
129 | + 'post_status' => $this->get_post_status( $invoice ), |
|
130 | + 'ping_status' => 'closed', |
|
131 | + 'post_author' => $invoice->get_user_id( 'edit' ), |
|
132 | + 'post_title' => $invoice->get_title( 'edit' ), |
|
133 | + 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
134 | + 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
135 | + ) |
|
136 | + ), |
|
137 | + true |
|
138 | + ); |
|
139 | + |
|
140 | + if ( $id && ! is_wp_error( $id ) ) { |
|
141 | + |
|
142 | + // Update the new id and regenerate a title. |
|
143 | + $invoice->set_id( $id ); |
|
144 | + |
|
145 | + $invoice->maybe_set_number(); |
|
146 | + |
|
147 | + wp_update_post( |
|
148 | + array( |
|
149 | + 'ID' => $invoice->get_id(), |
|
150 | + 'post_title' => $invoice->get_number( 'edit' ), |
|
151 | + 'post_name' => $invoice->get_path( 'edit' ), |
|
152 | + ) |
|
153 | + ); |
|
154 | + |
|
155 | + // Save special fields and items. |
|
156 | + $this->save_special_fields( $invoice ); |
|
157 | + $this->save_items( $invoice ); |
|
158 | + |
|
159 | + // Update meta data. |
|
160 | + $this->update_post_meta( $invoice ); |
|
161 | + $invoice->save_meta_data(); |
|
162 | + |
|
163 | + // Apply changes. |
|
164 | + $invoice->apply_changes(); |
|
165 | + $this->clear_caches( $invoice ); |
|
166 | + |
|
167 | + // Fires after a new invoice is created. |
|
168 | + do_action( 'getpaid_new_invoice', $invoice ); |
|
169 | + return true; |
|
170 | + } |
|
171 | + |
|
172 | + if ( is_wp_error( $id ) ) { |
|
173 | + $invoice->last_error = $id->get_error_message(); |
|
174 | + } |
|
175 | + |
|
176 | + return false; |
|
177 | + } |
|
178 | + |
|
179 | + /** |
|
180 | + * Method to read an invoice from the database. |
|
181 | + * |
|
182 | + * @param WPInv_Invoice $invoice Invoice object. |
|
183 | + * |
|
184 | + */ |
|
185 | + public function read( &$invoice ) { |
|
186 | + |
|
187 | + $invoice->set_defaults(); |
|
188 | + $invoice_object = get_post( $invoice->get_id() ); |
|
189 | + |
|
190 | + if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) { |
|
191 | + $invoice->last_error = __( 'Invalid invoice.', 'invoicing' ); |
|
192 | + $invoice->set_id( 0 ); |
|
193 | + return false; |
|
194 | + } |
|
195 | + |
|
196 | + $invoice->set_props( |
|
197 | + array( |
|
198 | + 'date_created' => 0 < $invoice_object->post_date ? $invoice_object->post_date : null, |
|
199 | + 'date_modified' => 0 < $invoice_object->post_modified ? $invoice_object->post_modified : null, |
|
200 | + 'status' => $invoice_object->post_status, |
|
201 | + 'author' => $invoice_object->post_author, |
|
202 | + 'description' => $invoice_object->post_excerpt, |
|
203 | + 'parent_id' => $invoice_object->post_parent, |
|
204 | + 'name' => $invoice_object->post_title, |
|
205 | + 'path' => $invoice_object->post_name, |
|
206 | + 'post_type' => $invoice_object->post_type, |
|
207 | + ) |
|
208 | + ); |
|
209 | + |
|
210 | + $invoice->set_type( $invoice_object->post_type ); |
|
211 | + |
|
212 | + $this->read_object_data( $invoice, $invoice_object ); |
|
213 | + $this->add_special_fields( $invoice ); |
|
214 | + $this->add_items( $invoice ); |
|
215 | + $invoice->read_meta_data(); |
|
216 | + $invoice->set_object_read( true ); |
|
217 | + do_action( 'getpaid_read_invoice', $invoice ); |
|
218 | + |
|
219 | + } |
|
220 | + |
|
221 | + /** |
|
222 | + * Method to update an invoice in the database. |
|
223 | + * |
|
224 | + * @param WPInv_Invoice $invoice Invoice object. |
|
225 | + */ |
|
226 | + public function update( &$invoice ) { |
|
227 | + $invoice->save_meta_data(); |
|
228 | + $invoice->set_version( WPINV_VERSION ); |
|
229 | + |
|
230 | + if ( null === $invoice->get_date_created( 'edit' ) ) { |
|
231 | + $invoice->set_date_created( current_time( 'mysql' ) ); |
|
232 | + } |
|
233 | + |
|
234 | + // Ensure both the key and number are set. |
|
235 | + $invoice->get_path(); |
|
236 | + |
|
237 | + // Grab the current status so we can compare. |
|
238 | + $previous_status = get_post_status( $invoice->get_id() ); |
|
239 | + |
|
240 | + $changes = $invoice->get_changes(); |
|
241 | + |
|
242 | + // Only update the post when the post data changes. |
|
243 | + if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) { |
|
244 | + $post_data = array( |
|
245 | + 'post_date' => $invoice->get_date_created( 'edit' ), |
|
246 | + 'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ), |
|
247 | + 'post_status' => $invoice->get_status( 'edit' ), |
|
248 | + 'post_title' => $invoice->get_name( 'edit' ), |
|
249 | + 'post_author' => $invoice->get_user_id( 'edit' ), |
|
250 | + 'post_modified' => $invoice->get_date_modified( 'edit' ), |
|
251 | + 'post_excerpt' => $invoice->get_description( 'edit' ), |
|
252 | + 'post_parent' => $invoice->get_parent_id( 'edit' ), |
|
253 | + 'post_name' => $invoice->get_path( 'edit' ), |
|
254 | + 'post_type' => $invoice->get_post_type( 'edit' ), |
|
255 | + ); |
|
256 | + |
|
257 | + /** |
|
258 | + * When updating this object, to prevent infinite loops, use $wpdb |
|
259 | + * to update data, since wp_update_post spawns more calls to the |
|
260 | + * save_post action. |
|
261 | + * |
|
262 | + * This ensures hooks are fired by either WP itself (admin screen save), |
|
263 | + * or an update purely from CRUD. |
|
264 | + */ |
|
265 | + if ( doing_action( 'save_post' ) ) { |
|
266 | + $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) ); |
|
267 | + clean_post_cache( $invoice->get_id() ); |
|
268 | + } else { |
|
269 | + wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) ); |
|
270 | + } |
|
271 | + $invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook. |
|
272 | + } |
|
273 | + |
|
274 | + // Update meta data. |
|
275 | + $this->update_post_meta( $invoice ); |
|
276 | + |
|
277 | + // Save special fields and items. |
|
278 | + $this->save_special_fields( $invoice ); |
|
279 | + $this->save_items( $invoice ); |
|
280 | + |
|
281 | + // Apply the changes. |
|
282 | + $invoice->apply_changes(); |
|
283 | + |
|
284 | + // Clear caches. |
|
285 | + $this->clear_caches( $invoice ); |
|
286 | + |
|
287 | + // Fire a hook depending on the status - this should be considered a creation if it was previously draft status. |
|
288 | + $new_status = $invoice->get_status( 'edit' ); |
|
289 | + |
|
290 | + if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) { |
|
291 | + do_action( 'getpaid_new_invoice', $invoice ); |
|
292 | + } else { |
|
293 | + do_action( 'getpaid_update_invoice', $invoice ); |
|
294 | + } |
|
295 | + |
|
296 | + } |
|
297 | + |
|
298 | + /* |
|
299 | 299 | |-------------------------------------------------------------------------- |
300 | 300 | | Additional Methods |
301 | 301 | |-------------------------------------------------------------------------- |
302 | 302 | */ |
303 | 303 | |
304 | - /** |
|
304 | + /** |
|
305 | 305 | * Retrieves special fields and adds to the invoice. |
306 | - * |
|
307 | - * @param WPInv_Invoice $invoice Invoice object. |
|
306 | + * |
|
307 | + * @param WPInv_Invoice $invoice Invoice object. |
|
308 | 308 | */ |
309 | 309 | public function add_special_fields( &$invoice ) { |
310 | - global $wpdb; |
|
311 | - |
|
312 | - // Maybe retrieve from the cache. |
|
313 | - $data = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
314 | - |
|
315 | - // If not found, retrieve from the db. |
|
316 | - if ( false === $data ) { |
|
317 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
318 | - |
|
319 | - $data = $wpdb->get_row( |
|
320 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ), |
|
321 | - ARRAY_A |
|
322 | - ); |
|
323 | - |
|
324 | - // Update the cache with our data |
|
325 | - wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' ); |
|
326 | - |
|
327 | - } |
|
328 | - |
|
329 | - // Abort if the data does not exist. |
|
330 | - if ( empty( $data ) ) { |
|
331 | - $invoice->set_object_read( true ); |
|
332 | - $invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) ); |
|
333 | - return; |
|
334 | - } |
|
335 | - |
|
336 | - $props = array(); |
|
337 | - |
|
338 | - foreach ( $this->database_fields_to_props as $db_field => $prop ) { |
|
339 | - |
|
340 | - if ( $db_field == 'post_id' ) { |
|
341 | - continue; |
|
342 | - } |
|
343 | - |
|
344 | - $props[ $prop ] = $data[ $db_field ]; |
|
345 | - } |
|
346 | - |
|
347 | - $invoice->set_props( $props ); |
|
348 | - |
|
349 | - } |
|
350 | - |
|
351 | - /** |
|
352 | - * Gets a list of special fields that need updated based on change state |
|
353 | - * or if they are present in the database or not. |
|
354 | - * |
|
355 | - * @param WPInv_Invoice $invoice The Invoice object. |
|
356 | - * @return array A mapping of field keys => prop names, filtered by ones that should be updated. |
|
357 | - */ |
|
358 | - protected function get_special_fields_to_update( $invoice ) { |
|
359 | - $fields_to_update = array(); |
|
360 | - $changed_props = $invoice->get_changes(); |
|
361 | - |
|
362 | - // Props should be updated if they are a part of the $changed array or don't exist yet. |
|
363 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
364 | - if ( array_key_exists( $prop, $changed_props ) ) { |
|
365 | - $fields_to_update[ $database_field ] = $prop; |
|
366 | - } |
|
367 | - } |
|
368 | - |
|
369 | - return $fields_to_update; |
|
370 | - } |
|
371 | - |
|
372 | - /** |
|
373 | - * Helper method that updates all the database fields for an invoice based on it's settings in the WPInv_Invoice class. |
|
374 | - * |
|
375 | - * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
376 | - * @since 1.0.19 |
|
377 | - */ |
|
378 | - protected function update_special_fields( &$invoice ) { |
|
379 | - global $wpdb; |
|
380 | - |
|
381 | - $updated_props = array(); |
|
382 | - $fields_to_update = $this->get_special_fields_to_update( $invoice ); |
|
383 | - |
|
384 | - foreach ( $fields_to_update as $database_field => $prop ) { |
|
385 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
386 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
387 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
388 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
389 | - } |
|
390 | - |
|
391 | - if ( ! empty( $updated_props ) ) { |
|
392 | - |
|
393 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
394 | - $wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) ); |
|
395 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
396 | - do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props ); |
|
397 | - |
|
398 | - } |
|
399 | - |
|
400 | - } |
|
401 | - |
|
402 | - /** |
|
403 | - * Helper method that inserts special fields to the database. |
|
404 | - * |
|
405 | - * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
406 | - * @since 1.0.19 |
|
407 | - */ |
|
408 | - protected function insert_special_fields( &$invoice ) { |
|
409 | - global $wpdb; |
|
410 | - |
|
411 | - $updated_props = array(); |
|
412 | - |
|
413 | - foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
414 | - $value = $invoice->{"get_$prop"}( 'edit' ); |
|
415 | - $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
416 | - $value = is_bool( $value ) ? (int) $value : $value; |
|
417 | - $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
418 | - } |
|
419 | - |
|
420 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
421 | - $wpdb->insert( $table, $updated_props ); |
|
422 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
423 | - do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props ); |
|
424 | - |
|
425 | - } |
|
426 | - |
|
427 | - /** |
|
310 | + global $wpdb; |
|
311 | + |
|
312 | + // Maybe retrieve from the cache. |
|
313 | + $data = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
314 | + |
|
315 | + // If not found, retrieve from the db. |
|
316 | + if ( false === $data ) { |
|
317 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
318 | + |
|
319 | + $data = $wpdb->get_row( |
|
320 | + $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ), |
|
321 | + ARRAY_A |
|
322 | + ); |
|
323 | + |
|
324 | + // Update the cache with our data |
|
325 | + wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' ); |
|
326 | + |
|
327 | + } |
|
328 | + |
|
329 | + // Abort if the data does not exist. |
|
330 | + if ( empty( $data ) ) { |
|
331 | + $invoice->set_object_read( true ); |
|
332 | + $invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) ); |
|
333 | + return; |
|
334 | + } |
|
335 | + |
|
336 | + $props = array(); |
|
337 | + |
|
338 | + foreach ( $this->database_fields_to_props as $db_field => $prop ) { |
|
339 | + |
|
340 | + if ( $db_field == 'post_id' ) { |
|
341 | + continue; |
|
342 | + } |
|
343 | + |
|
344 | + $props[ $prop ] = $data[ $db_field ]; |
|
345 | + } |
|
346 | + |
|
347 | + $invoice->set_props( $props ); |
|
348 | + |
|
349 | + } |
|
350 | + |
|
351 | + /** |
|
352 | + * Gets a list of special fields that need updated based on change state |
|
353 | + * or if they are present in the database or not. |
|
354 | + * |
|
355 | + * @param WPInv_Invoice $invoice The Invoice object. |
|
356 | + * @return array A mapping of field keys => prop names, filtered by ones that should be updated. |
|
357 | + */ |
|
358 | + protected function get_special_fields_to_update( $invoice ) { |
|
359 | + $fields_to_update = array(); |
|
360 | + $changed_props = $invoice->get_changes(); |
|
361 | + |
|
362 | + // Props should be updated if they are a part of the $changed array or don't exist yet. |
|
363 | + foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
364 | + if ( array_key_exists( $prop, $changed_props ) ) { |
|
365 | + $fields_to_update[ $database_field ] = $prop; |
|
366 | + } |
|
367 | + } |
|
368 | + |
|
369 | + return $fields_to_update; |
|
370 | + } |
|
371 | + |
|
372 | + /** |
|
373 | + * Helper method that updates all the database fields for an invoice based on it's settings in the WPInv_Invoice class. |
|
374 | + * |
|
375 | + * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
376 | + * @since 1.0.19 |
|
377 | + */ |
|
378 | + protected function update_special_fields( &$invoice ) { |
|
379 | + global $wpdb; |
|
380 | + |
|
381 | + $updated_props = array(); |
|
382 | + $fields_to_update = $this->get_special_fields_to_update( $invoice ); |
|
383 | + |
|
384 | + foreach ( $fields_to_update as $database_field => $prop ) { |
|
385 | + $value = $invoice->{"get_$prop"}( 'edit' ); |
|
386 | + $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
387 | + $value = is_bool( $value ) ? (int) $value : $value; |
|
388 | + $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
389 | + } |
|
390 | + |
|
391 | + if ( ! empty( $updated_props ) ) { |
|
392 | + |
|
393 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
394 | + $wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) ); |
|
395 | + wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
396 | + do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props ); |
|
397 | + |
|
398 | + } |
|
399 | + |
|
400 | + } |
|
401 | + |
|
402 | + /** |
|
403 | + * Helper method that inserts special fields to the database. |
|
404 | + * |
|
405 | + * @param WPInv_Invoice $invoice WPInv_Invoice object. |
|
406 | + * @since 1.0.19 |
|
407 | + */ |
|
408 | + protected function insert_special_fields( &$invoice ) { |
|
409 | + global $wpdb; |
|
410 | + |
|
411 | + $updated_props = array(); |
|
412 | + |
|
413 | + foreach ( $this->database_fields_to_props as $database_field => $prop ) { |
|
414 | + $value = $invoice->{"get_$prop"}( 'edit' ); |
|
415 | + $value = is_string( $value ) ? wp_slash( $value ) : $value; |
|
416 | + $value = is_bool( $value ) ? (int) $value : $value; |
|
417 | + $updated_props[ $database_field ] = maybe_serialize( $value ); |
|
418 | + } |
|
419 | + |
|
420 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
421 | + $wpdb->insert( $table, $updated_props ); |
|
422 | + wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' ); |
|
423 | + do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props ); |
|
424 | + |
|
425 | + } |
|
426 | + |
|
427 | + /** |
|
428 | 428 | * Saves all special fields. |
429 | - * |
|
430 | - * @param WPInv_Invoice $invoice Invoice object. |
|
429 | + * |
|
430 | + * @param WPInv_Invoice $invoice Invoice object. |
|
431 | 431 | */ |
432 | 432 | public function save_special_fields( &$invoice ) { |
433 | - global $wpdb; |
|
433 | + global $wpdb; |
|
434 | 434 | |
435 | - // The invoices table. |
|
436 | - $table = $wpdb->prefix . 'getpaid_invoices'; |
|
437 | - $id = (int) $invoice->get_id(); |
|
438 | - $invoice->maybe_set_key(); |
|
435 | + // The invoices table. |
|
436 | + $table = $wpdb->prefix . 'getpaid_invoices'; |
|
437 | + $id = (int) $invoice->get_id(); |
|
438 | + $invoice->maybe_set_key(); |
|
439 | 439 | |
440 | - if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) { |
|
440 | + if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) { |
|
441 | 441 | |
442 | - $this->update_special_fields( $invoice ); |
|
442 | + $this->update_special_fields( $invoice ); |
|
443 | 443 | |
444 | - } else { |
|
444 | + } else { |
|
445 | 445 | |
446 | - $this->insert_special_fields( $invoice ); |
|
446 | + $this->insert_special_fields( $invoice ); |
|
447 | 447 | |
448 | - } |
|
448 | + } |
|
449 | 449 | |
450 | - } |
|
450 | + } |
|
451 | 451 | |
452 | - /** |
|
452 | + /** |
|
453 | 453 | * Set's up cart details. |
454 | - * |
|
455 | - * @param WPInv_Invoice $invoice Invoice object. |
|
454 | + * |
|
455 | + * @param WPInv_Invoice $invoice Invoice object. |
|
456 | 456 | */ |
457 | 457 | public function add_items( &$invoice ) { |
458 | - global $wpdb; |
|
458 | + global $wpdb; |
|
459 | 459 | |
460 | - // Maybe retrieve from the cache. |
|
461 | - $items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
460 | + // Maybe retrieve from the cache. |
|
461 | + $items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
462 | 462 | |
463 | - // If not found, retrieve from the db. |
|
464 | - if ( false === $items ) { |
|
465 | - $table = $wpdb->prefix . 'getpaid_invoice_items'; |
|
463 | + // If not found, retrieve from the db. |
|
464 | + if ( false === $items ) { |
|
465 | + $table = $wpdb->prefix . 'getpaid_invoice_items'; |
|
466 | 466 | |
467 | - $items = $wpdb->get_results( |
|
468 | - $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() ) |
|
469 | - ); |
|
467 | + $items = $wpdb->get_results( |
|
468 | + $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() ) |
|
469 | + ); |
|
470 | 470 | |
471 | - // Update the cache with our data |
|
472 | - wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' ); |
|
471 | + // Update the cache with our data |
|
472 | + wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' ); |
|
473 | 473 | |
474 | - } |
|
474 | + } |
|
475 | 475 | |
476 | - // Abort if no items found. |
|
476 | + // Abort if no items found. |
|
477 | 477 | if ( empty( $items ) ) { |
478 | 478 | return; |
479 | - } |
|
480 | - |
|
481 | - $_items = array(); |
|
482 | - foreach ( $items as $item_data ) { |
|
483 | - $item = new GetPaid_Form_Item( $item_data->item_id ); |
|
484 | - |
|
485 | - // Set item data. |
|
486 | - $item->item_tax = wpinv_sanitize_amount( $item_data->tax ); |
|
487 | - $item->item_discount = wpinv_sanitize_amount( $item_data->discount ); |
|
488 | - $item->set_name( $item_data->item_name ); |
|
489 | - $item->set_description( $item_data->item_description ); |
|
490 | - $item->set_price( $item_data->item_price ); |
|
491 | - $item->set_quantity( $item_data->quantity ); |
|
492 | - $item->set_item_meta( $item_data->meta ); |
|
493 | - $_items[] = $item; |
|
494 | - } |
|
495 | - |
|
496 | - $invoice->set_items( $_items ); |
|
497 | - } |
|
498 | - |
|
499 | - /** |
|
479 | + } |
|
480 | + |
|
481 | + $_items = array(); |
|
482 | + foreach ( $items as $item_data ) { |
|
483 | + $item = new GetPaid_Form_Item( $item_data->item_id ); |
|
484 | + |
|
485 | + // Set item data. |
|
486 | + $item->item_tax = wpinv_sanitize_amount( $item_data->tax ); |
|
487 | + $item->item_discount = wpinv_sanitize_amount( $item_data->discount ); |
|
488 | + $item->set_name( $item_data->item_name ); |
|
489 | + $item->set_description( $item_data->item_description ); |
|
490 | + $item->set_price( $item_data->item_price ); |
|
491 | + $item->set_quantity( $item_data->quantity ); |
|
492 | + $item->set_item_meta( $item_data->meta ); |
|
493 | + $_items[] = $item; |
|
494 | + } |
|
495 | + |
|
496 | + $invoice->set_items( $_items ); |
|
497 | + } |
|
498 | + |
|
499 | + /** |
|
500 | 500 | * Saves cart details. |
501 | - * |
|
502 | - * @param WPInv_Invoice $invoice Invoice object. |
|
501 | + * |
|
502 | + * @param WPInv_Invoice $invoice Invoice object. |
|
503 | 503 | */ |
504 | 504 | public function save_items( $invoice ) { |
505 | 505 | |
506 | - // Delete previously existing items. |
|
507 | - $this->delete_items( $invoice ); |
|
506 | + // Delete previously existing items. |
|
507 | + $this->delete_items( $invoice ); |
|
508 | 508 | |
509 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
509 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
510 | 510 | |
511 | - foreach ( $invoice->get_cart_details() as $item_data ) { |
|
512 | - $item_data = array_map( 'maybe_serialize', $item_data ); |
|
513 | - $GLOBALS['wpdb']->insert( $table, $item_data ); |
|
514 | - } |
|
511 | + foreach ( $invoice->get_cart_details() as $item_data ) { |
|
512 | + $item_data = array_map( 'maybe_serialize', $item_data ); |
|
513 | + $GLOBALS['wpdb']->insert( $table, $item_data ); |
|
514 | + } |
|
515 | 515 | |
516 | - wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
517 | - do_action( 'getpaid_invoice_save_items', $invoice ); |
|
516 | + wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' ); |
|
517 | + do_action( 'getpaid_invoice_save_items', $invoice ); |
|
518 | 518 | |
519 | - } |
|
519 | + } |
|
520 | 520 | |
521 | - /** |
|
521 | + /** |
|
522 | 522 | * Deletes an invoice's cart details from the database. |
523 | - * |
|
524 | - * @param WPInv_Invoice $invoice Invoice object. |
|
523 | + * |
|
524 | + * @param WPInv_Invoice $invoice Invoice object. |
|
525 | 525 | */ |
526 | 526 | public function delete_items( $invoice ) { |
527 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
528 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
529 | - } |
|
527 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items'; |
|
528 | + return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
529 | + } |
|
530 | 530 | |
531 | - /** |
|
531 | + /** |
|
532 | 532 | * Deletes an invoice's special fields from the database. |
533 | - * |
|
534 | - * @param WPInv_Invoice $invoice Invoice object. |
|
533 | + * |
|
534 | + * @param WPInv_Invoice $invoice Invoice object. |
|
535 | 535 | */ |
536 | 536 | public function delete_special_fields( $invoice ) { |
537 | - $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices'; |
|
538 | - return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
539 | - } |
|
540 | - |
|
541 | - /** |
|
542 | - * Get the status to save to the post object. |
|
543 | - * |
|
544 | - * |
|
545 | - * @since 1.0.19 |
|
546 | - * @param WPInv_Invoice $object GetPaid_Data object. |
|
547 | - * @return string |
|
548 | - */ |
|
549 | - protected function get_post_status( $object ) { |
|
550 | - $object_status = $object->get_status( 'edit' ); |
|
551 | - |
|
552 | - if ( ! $object_status ) { |
|
553 | - $object_status = $object->get_default_status(); |
|
554 | - } |
|
555 | - |
|
556 | - return $object_status; |
|
557 | - } |
|
537 | + $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices'; |
|
538 | + return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) ); |
|
539 | + } |
|
540 | + |
|
541 | + /** |
|
542 | + * Get the status to save to the post object. |
|
543 | + * |
|
544 | + * |
|
545 | + * @since 1.0.19 |
|
546 | + * @param WPInv_Invoice $object GetPaid_Data object. |
|
547 | + * @return string |
|
548 | + */ |
|
549 | + protected function get_post_status( $object ) { |
|
550 | + $object_status = $object->get_status( 'edit' ); |
|
551 | + |
|
552 | + if ( ! $object_status ) { |
|
553 | + $object_status = $object->get_default_status(); |
|
554 | + } |
|
555 | + |
|
556 | + return $object_status; |
|
557 | + } |
|
558 | 558 | |
559 | 559 | } |
@@ -12,8 +12,8 @@ discard block |
||
12 | 12 | class WPInv_Subscriptions { |
13 | 13 | |
14 | 14 | /** |
15 | - * Class constructor. |
|
16 | - */ |
|
15 | + * Class constructor. |
|
16 | + */ |
|
17 | 17 | public function __construct() { |
18 | 18 | |
19 | 19 | // Fire gateway specific hooks when a subscription changes. |
@@ -89,12 +89,12 @@ discard block |
||
89 | 89 | } |
90 | 90 | |
91 | 91 | /** |
92 | - * Processes subscription status changes. |
|
92 | + * Processes subscription status changes. |
|
93 | 93 | * |
94 | 94 | * @param WPInv_Subscription $subscription |
95 | 95 | * @param string $from |
96 | 96 | * @param string $to |
97 | - */ |
|
97 | + */ |
|
98 | 98 | public function process_subscription_status_change( $subscription, $from, $to ) { |
99 | 99 | |
100 | 100 | $gateway = $subscription->get_gateway(); |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | /** |
9 | 9 | * Main Subscriptions class. |
10 | 10 | * |
@@ -17,28 +17,28 @@ discard block |
||
17 | 17 | public function __construct() { |
18 | 18 | |
19 | 19 | // Fire gateway specific hooks when a subscription changes. |
20 | - add_action( 'getpaid_subscription_status_changed', array( $this, 'process_subscription_status_change' ), 10, 3 ); |
|
20 | + add_action('getpaid_subscription_status_changed', array($this, 'process_subscription_status_change'), 10, 3); |
|
21 | 21 | |
22 | 22 | // De-activate a subscription whenever the invoice changes payment statuses. |
23 | 23 | // add_action( 'getpaid_invoice_status_wpi-refunded', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
24 | - add_action( 'getpaid_invoice_status_wpi-failed', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
|
25 | - add_action( 'getpaid_invoice_status_wpi-cancelled', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
|
26 | - add_action( 'getpaid_invoice_status_wpi-pending', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 ); |
|
24 | + add_action('getpaid_invoice_status_wpi-failed', array($this, 'maybe_deactivate_invoice_subscription'), 20); |
|
25 | + add_action('getpaid_invoice_status_wpi-cancelled', array($this, 'maybe_deactivate_invoice_subscription'), 20); |
|
26 | + add_action('getpaid_invoice_status_wpi-pending', array($this, 'maybe_deactivate_invoice_subscription'), 20); |
|
27 | 27 | |
28 | 28 | // Handles subscription cancelations. |
29 | - add_action( 'getpaid_authenticated_action_subscription_cancel', array( $this, 'user_cancel_single_subscription' ) ); |
|
29 | + add_action('getpaid_authenticated_action_subscription_cancel', array($this, 'user_cancel_single_subscription')); |
|
30 | 30 | |
31 | 31 | // Create a subscription whenever an invoice is created, (and update it when it is updated). |
32 | - add_action( 'wpinv_invoice_metabox_saved', array( $this, 'maybe_update_invoice_subscription' ), 5 ); |
|
33 | - add_action( 'getpaid_checkout_invoice_updated', array( $this, 'maybe_update_invoice_subscription' ), 5 ); |
|
32 | + add_action('wpinv_invoice_metabox_saved', array($this, 'maybe_update_invoice_subscription'), 5); |
|
33 | + add_action('getpaid_checkout_invoice_updated', array($this, 'maybe_update_invoice_subscription'), 5); |
|
34 | 34 | |
35 | 35 | // Handles admin subscription update actions. |
36 | - add_action( 'getpaid_authenticated_admin_action_update_single_subscription', array( $this, 'admin_update_single_subscription' ) ); |
|
37 | - add_action( 'getpaid_authenticated_admin_action_subscription_manual_renew', array( $this, 'admin_renew_single_subscription' ) ); |
|
38 | - add_action( 'getpaid_authenticated_admin_action_subscription_manual_delete', array( $this, 'admin_delete_single_subscription' ) ); |
|
36 | + add_action('getpaid_authenticated_admin_action_update_single_subscription', array($this, 'admin_update_single_subscription')); |
|
37 | + add_action('getpaid_authenticated_admin_action_subscription_manual_renew', array($this, 'admin_renew_single_subscription')); |
|
38 | + add_action('getpaid_authenticated_admin_action_subscription_manual_delete', array($this, 'admin_delete_single_subscription')); |
|
39 | 39 | |
40 | 40 | // Filter invoice item row actions. |
41 | - add_action( 'getpaid-invoice-page-line-item-actions', array( $this, 'filter_invoice_line_item_actions' ), 10, 3 ); |
|
41 | + add_action('getpaid-invoice-page-line-item-actions', array($this, 'filter_invoice_line_item_actions'), 10, 3); |
|
42 | 42 | } |
43 | 43 | |
44 | 44 | /** |
@@ -47,19 +47,19 @@ discard block |
||
47 | 47 | * @param WPInv_Invoice $invoice |
48 | 48 | * @return WPInv_Subscription|bool |
49 | 49 | */ |
50 | - public function get_invoice_subscription( $invoice ) { |
|
50 | + public function get_invoice_subscription($invoice) { |
|
51 | 51 | $subscription_id = $invoice->get_subscription_id(); |
52 | 52 | |
53 | 53 | // Fallback to the parent invoice if the child invoice has no subscription id. |
54 | - if ( empty( $subscription_id ) && $invoice->is_renewal() ) { |
|
54 | + if (empty($subscription_id) && $invoice->is_renewal()) { |
|
55 | 55 | $subscription_id = $invoice->get_parent_payment()->get_subscription_id(); |
56 | 56 | } |
57 | 57 | |
58 | 58 | // Fetch the subscription. |
59 | - $subscription = new WPInv_Subscription( $subscription_id ); |
|
59 | + $subscription = new WPInv_Subscription($subscription_id); |
|
60 | 60 | |
61 | 61 | // Return subscription or use a fallback for backwards compatibility. |
62 | - return $subscription->exists() ? $subscription : wpinv_get_invoice_subscription( $invoice ); |
|
62 | + return $subscription->exists() ? $subscription : wpinv_get_invoice_subscription($invoice); |
|
63 | 63 | } |
64 | 64 | |
65 | 65 | /** |
@@ -67,21 +67,21 @@ discard block |
||
67 | 67 | * |
68 | 68 | * @param WPInv_Invoice $invoice |
69 | 69 | */ |
70 | - public function maybe_deactivate_invoice_subscription( $invoice ) { |
|
70 | + public function maybe_deactivate_invoice_subscription($invoice) { |
|
71 | 71 | |
72 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
72 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
73 | 73 | |
74 | - if ( empty( $subscriptions ) ) { |
|
74 | + if (empty($subscriptions)) { |
|
75 | 75 | return; |
76 | 76 | } |
77 | 77 | |
78 | - if ( ! is_array( $subscriptions ) ) { |
|
79 | - $subscriptions = array( $subscriptions ); |
|
78 | + if (!is_array($subscriptions)) { |
|
79 | + $subscriptions = array($subscriptions); |
|
80 | 80 | } |
81 | 81 | |
82 | - foreach ( $subscriptions as $subscription ) { |
|
83 | - if ( $subscription->is_active() ) { |
|
84 | - $subscription->set_status( 'pending' ); |
|
82 | + foreach ($subscriptions as $subscription) { |
|
83 | + if ($subscription->is_active()) { |
|
84 | + $subscription->set_status('pending'); |
|
85 | 85 | $subscription->save(); |
86 | 86 | } |
87 | 87 | } |
@@ -95,15 +95,15 @@ discard block |
||
95 | 95 | * @param string $from |
96 | 96 | * @param string $to |
97 | 97 | */ |
98 | - public function process_subscription_status_change( $subscription, $from, $to ) { |
|
98 | + public function process_subscription_status_change($subscription, $from, $to) { |
|
99 | 99 | |
100 | 100 | $gateway = $subscription->get_gateway(); |
101 | 101 | |
102 | - if ( ! empty( $gateway ) ) { |
|
103 | - $gateway = sanitize_key( $gateway ); |
|
104 | - $from = sanitize_key( $from ); |
|
105 | - $to = sanitize_key( $to ); |
|
106 | - do_action( "getpaid_{$gateway}_subscription_$to", $subscription, $from ); |
|
102 | + if (!empty($gateway)) { |
|
103 | + $gateway = sanitize_key($gateway); |
|
104 | + $from = sanitize_key($from); |
|
105 | + $to = sanitize_key($to); |
|
106 | + do_action("getpaid_{$gateway}_subscription_$to", $subscription, $from); |
|
107 | 107 | } |
108 | 108 | |
109 | 109 | } |
@@ -116,8 +116,8 @@ discard block |
||
116 | 116 | * @deprecated |
117 | 117 | * @return mixed|string|void |
118 | 118 | */ |
119 | - public static function wpinv_get_pretty_subscription_frequency( $period, $frequency_count = 1 ) { |
|
120 | - return getpaid_get_subscription_period_label( $period, $frequency_count ); |
|
119 | + public static function wpinv_get_pretty_subscription_frequency($period, $frequency_count = 1) { |
|
120 | + return getpaid_get_subscription_period_label($period, $frequency_count); |
|
121 | 121 | } |
122 | 122 | |
123 | 123 | /** |
@@ -127,21 +127,21 @@ discard block |
||
127 | 127 | * @since 1.0.0 |
128 | 128 | * @return void |
129 | 129 | */ |
130 | - public function user_cancel_single_subscription( $data ) { |
|
130 | + public function user_cancel_single_subscription($data) { |
|
131 | 131 | |
132 | 132 | // Ensure there is a subscription to cancel. |
133 | - if ( empty( $data['subscription'] ) ) { |
|
133 | + if (empty($data['subscription'])) { |
|
134 | 134 | return; |
135 | 135 | } |
136 | 136 | |
137 | - $subscription = new WPInv_Subscription( (int) $data['subscription'] ); |
|
137 | + $subscription = new WPInv_Subscription((int) $data['subscription']); |
|
138 | 138 | |
139 | 139 | // Ensure that it exists and that it belongs to the current user. |
140 | - if ( ! $subscription->exists() || $subscription->get_customer_id() != get_current_user_id() ) { |
|
140 | + if (!$subscription->exists() || $subscription->get_customer_id() != get_current_user_id()) { |
|
141 | 141 | $notice = 'perm_cancel_subscription'; |
142 | 142 | |
143 | 143 | // Can it be cancelled. |
144 | - } elseif ( ! $subscription->can_cancel() ) { |
|
144 | + } elseif (!$subscription->can_cancel()) { |
|
145 | 145 | $notice = 'cannot_cancel_subscription'; |
146 | 146 | |
147 | 147 | // Cancel it. |
@@ -157,7 +157,7 @@ discard block |
||
157 | 157 | 'wpinv-notice' => $notice, |
158 | 158 | ); |
159 | 159 | |
160 | - wp_safe_redirect( add_query_arg( $redirect ) ); |
|
160 | + wp_safe_redirect(add_query_arg($redirect)); |
|
161 | 161 | exit; |
162 | 162 | |
163 | 163 | } |
@@ -169,41 +169,41 @@ discard block |
||
169 | 169 | * @param WPInv_Invoice $invoice |
170 | 170 | * @since 1.0.0 |
171 | 171 | */ |
172 | - public function maybe_create_invoice_subscription( $invoice ) { |
|
172 | + public function maybe_create_invoice_subscription($invoice) { |
|
173 | 173 | global $getpaid_subscriptions_skip_invoice_update; |
174 | 174 | |
175 | 175 | // Abort if it is not recurring. |
176 | - if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_free() || ! $invoice->is_recurring() || $invoice->is_renewal() ) { |
|
176 | + if (!$invoice->is_type('invoice') || $invoice->is_free() || !$invoice->is_recurring() || $invoice->is_renewal()) { |
|
177 | 177 | return; |
178 | 178 | } |
179 | 179 | |
180 | 180 | // Either group the subscriptions or only process a single suscription. |
181 | - if ( getpaid_should_group_subscriptions( $invoice ) ) { |
|
181 | + if (getpaid_should_group_subscriptions($invoice)) { |
|
182 | 182 | |
183 | 183 | $subscription_groups = array(); |
184 | 184 | $is_first = true; |
185 | 185 | |
186 | - foreach ( getpaid_calculate_subscription_totals( $invoice ) as $group_key => $totals ) { |
|
187 | - $subscription_groups[ $group_key ] = $this->create_invoice_subscription_group( $totals, $invoice, 0, $is_first ); |
|
186 | + foreach (getpaid_calculate_subscription_totals($invoice) as $group_key => $totals) { |
|
187 | + $subscription_groups[$group_key] = $this->create_invoice_subscription_group($totals, $invoice, 0, $is_first); |
|
188 | 188 | |
189 | - if ( $is_first ) { |
|
189 | + if ($is_first) { |
|
190 | 190 | $getpaid_subscriptions_skip_invoice_update = true; |
191 | - $invoice->set_subscription_id( $subscription_groups[ $group_key ]['subscription_id'] ); |
|
191 | + $invoice->set_subscription_id($subscription_groups[$group_key]['subscription_id']); |
|
192 | 192 | $invoice->save(); |
193 | 193 | $getpaid_subscriptions_skip_invoice_update = false; |
194 | 194 | } |
195 | 195 | |
196 | - $is_first = false; |
|
196 | + $is_first = false; |
|
197 | 197 | } |
198 | 198 | |
199 | 199 | // Cache subscription groups. |
200 | - update_post_meta( $invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups ); |
|
200 | + update_post_meta($invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups); |
|
201 | 201 | return true; |
202 | 202 | |
203 | 203 | } |
204 | 204 | |
205 | 205 | $subscription = new WPInv_Subscription(); |
206 | - return $this->update_invoice_subscription( $subscription, $invoice ); |
|
206 | + return $this->update_invoice_subscription($subscription, $invoice); |
|
207 | 207 | |
208 | 208 | } |
209 | 209 | |
@@ -218,46 +218,46 @@ discard block |
||
218 | 218 | * |
219 | 219 | * @since 2.3.0 |
220 | 220 | */ |
221 | - public function create_invoice_subscription_group( $totals, $invoice, $subscription_id = 0, $is_first = false ) { |
|
221 | + public function create_invoice_subscription_group($totals, $invoice, $subscription_id = 0, $is_first = false) { |
|
222 | 222 | |
223 | - $subscription = new WPInv_Subscription( (int) $subscription_id ); |
|
223 | + $subscription = new WPInv_Subscription((int) $subscription_id); |
|
224 | 224 | $initial_amt = $totals['initial_total']; |
225 | 225 | $recurring_amt = $totals['recurring_total']; |
226 | 226 | $fees = array(); |
227 | 227 | |
228 | 228 | // Maybe add recurring fees. |
229 | - if ( $is_first ) { |
|
229 | + if ($is_first) { |
|
230 | 230 | |
231 | - foreach ( $invoice->get_fees() as $i => $fee ) { |
|
232 | - if ( ! empty( $fee['recurring_fee'] ) ) { |
|
233 | - $initial_amt += wpinv_sanitize_amount( $fee['initial_fee'] ); |
|
234 | - $recurring_amt += wpinv_sanitize_amount( $fee['recurring_fee'] ); |
|
235 | - $fees[ $i ] = $fee; |
|
231 | + foreach ($invoice->get_fees() as $i => $fee) { |
|
232 | + if (!empty($fee['recurring_fee'])) { |
|
233 | + $initial_amt += wpinv_sanitize_amount($fee['initial_fee']); |
|
234 | + $recurring_amt += wpinv_sanitize_amount($fee['recurring_fee']); |
|
235 | + $fees[$i] = $fee; |
|
236 | 236 | } |
237 | 237 | } |
238 | 238 | } |
239 | 239 | |
240 | - $subscription->set_customer_id( $invoice->get_user_id() ); |
|
241 | - $subscription->set_parent_invoice_id( $invoice->get_id() ); |
|
242 | - $subscription->set_initial_amount( $initial_amt ); |
|
243 | - $subscription->set_recurring_amount( $recurring_amt ); |
|
244 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
245 | - $subscription->set_status( $invoice->is_paid() ? 'active' : 'pending' ); |
|
246 | - $subscription->set_product_id( $totals['item_id'] ); |
|
247 | - $subscription->set_period( $totals['period'] ); |
|
248 | - $subscription->set_frequency( $totals['interval'] ); |
|
249 | - $subscription->set_bill_times( $totals['recurring_limit'] ); |
|
250 | - $subscription->set_next_renewal_date( $totals['renews_on'] ); |
|
240 | + $subscription->set_customer_id($invoice->get_user_id()); |
|
241 | + $subscription->set_parent_invoice_id($invoice->get_id()); |
|
242 | + $subscription->set_initial_amount($initial_amt); |
|
243 | + $subscription->set_recurring_amount($recurring_amt); |
|
244 | + $subscription->set_date_created(current_time('mysql')); |
|
245 | + $subscription->set_status($invoice->is_paid() ? 'active' : 'pending'); |
|
246 | + $subscription->set_product_id($totals['item_id']); |
|
247 | + $subscription->set_period($totals['period']); |
|
248 | + $subscription->set_frequency($totals['interval']); |
|
249 | + $subscription->set_bill_times($totals['recurring_limit']); |
|
250 | + $subscription->set_next_renewal_date($totals['renews_on']); |
|
251 | 251 | |
252 | 252 | // Trial periods. |
253 | - if ( ! empty( $totals['trialling'] ) ) { |
|
254 | - $subscription->set_trial_period( $totals['trialling'] ); |
|
255 | - $subscription->set_status( 'trialling' ); |
|
253 | + if (!empty($totals['trialling'])) { |
|
254 | + $subscription->set_trial_period($totals['trialling']); |
|
255 | + $subscription->set_status('trialling'); |
|
256 | 256 | |
257 | 257 | // If initial amount is free, treat it as a free trial even if the subscription item does not have a free trial. |
258 | - } elseif ( empty( $initial_amt ) ) { |
|
259 | - $subscription->set_trial_period( $totals['interval'] . ' ' . $totals['period'] ); |
|
260 | - $subscription->set_status( 'trialling' ); |
|
258 | + } elseif (empty($initial_amt)) { |
|
259 | + $subscription->set_trial_period($totals['interval'] . ' ' . $totals['period']); |
|
260 | + $subscription->set_status('trialling'); |
|
261 | 261 | } |
262 | 262 | |
263 | 263 | $subscription->save(); |
@@ -275,86 +275,86 @@ discard block |
||
275 | 275 | * @param WPInv_Invoice $invoice |
276 | 276 | * @since 1.0.19 |
277 | 277 | */ |
278 | - public function maybe_update_invoice_subscription( $invoice ) { |
|
278 | + public function maybe_update_invoice_subscription($invoice) { |
|
279 | 279 | global $getpaid_subscriptions_skip_invoice_update; |
280 | 280 | |
281 | 281 | // Avoid infinite loops. |
282 | - if ( ! empty( $getpaid_subscriptions_skip_invoice_update ) ) { |
|
282 | + if (!empty($getpaid_subscriptions_skip_invoice_update)) { |
|
283 | 283 | return; |
284 | 284 | } |
285 | 285 | |
286 | 286 | // Do not process renewals. |
287 | - if ( $invoice->is_renewal() ) { |
|
287 | + if ($invoice->is_renewal()) { |
|
288 | 288 | return; |
289 | 289 | } |
290 | 290 | |
291 | 291 | // Delete existing subscriptions if available and the invoice is not recurring. |
292 | - if ( ! $invoice->is_recurring() ) { |
|
293 | - $this->delete_invoice_subscriptions( $invoice ); |
|
292 | + if (!$invoice->is_recurring()) { |
|
293 | + $this->delete_invoice_subscriptions($invoice); |
|
294 | 294 | return; |
295 | 295 | } |
296 | 296 | |
297 | 297 | // Fetch existing subscriptions. |
298 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
298 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
299 | 299 | |
300 | 300 | // Create new ones if no existing subscriptions. |
301 | - if ( empty( $subscriptions ) ) { |
|
302 | - return $this->maybe_create_invoice_subscription( $invoice ); |
|
301 | + if (empty($subscriptions)) { |
|
302 | + return $this->maybe_create_invoice_subscription($invoice); |
|
303 | 303 | } |
304 | 304 | |
305 | 305 | // Abort if an invoice is paid and already has a subscription. |
306 | - if ( $invoice->is_paid() || $invoice->is_refunded() ) { |
|
306 | + if ($invoice->is_paid() || $invoice->is_refunded()) { |
|
307 | 307 | return; |
308 | 308 | } |
309 | 309 | |
310 | - $is_grouped = is_array( $subscriptions ); |
|
311 | - $should_group = getpaid_should_group_subscriptions( $invoice ); |
|
310 | + $is_grouped = is_array($subscriptions); |
|
311 | + $should_group = getpaid_should_group_subscriptions($invoice); |
|
312 | 312 | |
313 | 313 | // Ensure that the subscriptions are only grouped if there are more than 1 recurring items. |
314 | - if ( $is_grouped != $should_group ) { |
|
315 | - $this->delete_invoice_subscriptions( $invoice ); |
|
316 | - delete_post_meta( $invoice->get_id(), 'getpaid_subscription_groups' ); |
|
317 | - return $this->maybe_create_invoice_subscription( $invoice ); |
|
314 | + if ($is_grouped != $should_group) { |
|
315 | + $this->delete_invoice_subscriptions($invoice); |
|
316 | + delete_post_meta($invoice->get_id(), 'getpaid_subscription_groups'); |
|
317 | + return $this->maybe_create_invoice_subscription($invoice); |
|
318 | 318 | } |
319 | 319 | |
320 | 320 | // If there is only one recurring item... |
321 | - if ( ! $is_grouped ) { |
|
322 | - return $this->update_invoice_subscription( $subscriptions, $invoice ); |
|
321 | + if (!$is_grouped) { |
|
322 | + return $this->update_invoice_subscription($subscriptions, $invoice); |
|
323 | 323 | } |
324 | 324 | |
325 | 325 | // Process subscription groups. |
326 | - $current_groups = getpaid_get_invoice_subscription_groups( $invoice->get_id() ); |
|
326 | + $current_groups = getpaid_get_invoice_subscription_groups($invoice->get_id()); |
|
327 | 327 | $subscription_groups = array(); |
328 | 328 | $is_first = true; |
329 | 329 | |
330 | 330 | // Create new subscription groups. |
331 | - foreach ( getpaid_calculate_subscription_totals( $invoice ) as $group_key => $totals ) { |
|
332 | - $subscription_id = isset( $current_groups[ $group_key ] ) ? $current_groups[ $group_key ]['subscription_id'] : 0; |
|
333 | - $subscription_groups[ $group_key ] = $this->create_invoice_subscription_group( $totals, $invoice, $subscription_id, $is_first ); |
|
331 | + foreach (getpaid_calculate_subscription_totals($invoice) as $group_key => $totals) { |
|
332 | + $subscription_id = isset($current_groups[$group_key]) ? $current_groups[$group_key]['subscription_id'] : 0; |
|
333 | + $subscription_groups[$group_key] = $this->create_invoice_subscription_group($totals, $invoice, $subscription_id, $is_first); |
|
334 | 334 | |
335 | - if ( $is_first && $invoice->get_subscription_id() !== $subscription_groups[ $group_key ]['subscription_id'] ) { |
|
335 | + if ($is_first && $invoice->get_subscription_id() !== $subscription_groups[$group_key]['subscription_id']) { |
|
336 | 336 | $getpaid_subscriptions_skip_invoice_update = true; |
337 | - $invoice->set_subscription_id( $subscription_groups[ $group_key ]['subscription_id'] ); |
|
337 | + $invoice->set_subscription_id($subscription_groups[$group_key]['subscription_id']); |
|
338 | 338 | $invoice->save(); |
339 | 339 | $getpaid_subscriptions_skip_invoice_update = false; |
340 | 340 | } |
341 | 341 | |
342 | - $is_first = false; |
|
342 | + $is_first = false; |
|
343 | 343 | } |
344 | 344 | |
345 | 345 | // Delete non-existent subscription groups. |
346 | - foreach ( $current_groups as $group_key => $data ) { |
|
347 | - if ( ! isset( $subscription_groups[ $group_key ] ) ) { |
|
348 | - $subscription = new WPInv_Subscription( (int) $data['subscription_id'] ); |
|
346 | + foreach ($current_groups as $group_key => $data) { |
|
347 | + if (!isset($subscription_groups[$group_key])) { |
|
348 | + $subscription = new WPInv_Subscription((int) $data['subscription_id']); |
|
349 | 349 | |
350 | - if ( $subscription->exists() ) { |
|
351 | - $subscription->delete( true ); |
|
350 | + if ($subscription->exists()) { |
|
351 | + $subscription->delete(true); |
|
352 | 352 | } |
353 | 353 | } |
354 | 354 | } |
355 | 355 | |
356 | 356 | // Cache subscription groups. |
357 | - update_post_meta( $invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups ); |
|
357 | + update_post_meta($invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups); |
|
358 | 358 | return true; |
359 | 359 | |
360 | 360 | } |
@@ -364,20 +364,20 @@ discard block |
||
364 | 364 | * |
365 | 365 | * @param WPInv_Invoice $invoice |
366 | 366 | */ |
367 | - public function delete_invoice_subscriptions( $invoice ) { |
|
367 | + public function delete_invoice_subscriptions($invoice) { |
|
368 | 368 | |
369 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
369 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
370 | 370 | |
371 | - if ( empty( $subscriptions ) ) { |
|
371 | + if (empty($subscriptions)) { |
|
372 | 372 | return; |
373 | 373 | } |
374 | 374 | |
375 | - if ( ! is_array( $subscriptions ) ) { |
|
376 | - $subscriptions = array( $subscriptions ); |
|
375 | + if (!is_array($subscriptions)) { |
|
376 | + $subscriptions = array($subscriptions); |
|
377 | 377 | } |
378 | 378 | |
379 | - foreach ( $subscriptions as $subscription ) { |
|
380 | - $subscription->delete( true ); |
|
379 | + foreach ($subscriptions as $subscription) { |
|
380 | + $subscription->delete(true); |
|
381 | 381 | } |
382 | 382 | |
383 | 383 | } |
@@ -390,57 +390,57 @@ discard block |
||
390 | 390 | * @param WPInv_Invoice $invoice |
391 | 391 | * @since 1.0.19 |
392 | 392 | */ |
393 | - public function update_invoice_subscription( $subscription, $invoice ) { |
|
393 | + public function update_invoice_subscription($subscription, $invoice) { |
|
394 | 394 | |
395 | 395 | // Delete the subscription if an invoice is free or nolonger recurring. |
396 | - if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_free() || ! $invoice->is_recurring() ) { |
|
396 | + if (!$invoice->is_type('invoice') || $invoice->is_free() || !$invoice->is_recurring()) { |
|
397 | 397 | return $subscription->delete(); |
398 | 398 | } |
399 | 399 | |
400 | - $subscription->set_customer_id( $invoice->get_user_id() ); |
|
401 | - $subscription->set_parent_invoice_id( $invoice->get_id() ); |
|
402 | - $subscription->set_initial_amount( $invoice->get_initial_total() ); |
|
403 | - $subscription->set_recurring_amount( $invoice->get_recurring_total() ); |
|
404 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
405 | - $subscription->set_status( $invoice->is_paid() ? 'active' : 'pending' ); |
|
400 | + $subscription->set_customer_id($invoice->get_user_id()); |
|
401 | + $subscription->set_parent_invoice_id($invoice->get_id()); |
|
402 | + $subscription->set_initial_amount($invoice->get_initial_total()); |
|
403 | + $subscription->set_recurring_amount($invoice->get_recurring_total()); |
|
404 | + $subscription->set_date_created(current_time('mysql')); |
|
405 | + $subscription->set_status($invoice->is_paid() ? 'active' : 'pending'); |
|
406 | 406 | |
407 | 407 | // Get the recurring item and abort if it does not exist. |
408 | - $subscription_item = $invoice->get_recurring( true ); |
|
409 | - if ( ! $subscription_item->get_id() ) { |
|
410 | - $invoice->set_subscription_id( 0 ); |
|
408 | + $subscription_item = $invoice->get_recurring(true); |
|
409 | + if (!$subscription_item->get_id()) { |
|
410 | + $invoice->set_subscription_id(0); |
|
411 | 411 | $invoice->save(); |
412 | 412 | return $subscription->delete(); |
413 | 413 | } |
414 | 414 | |
415 | - $subscription->set_product_id( $subscription_item->get_id() ); |
|
416 | - $subscription->set_period( $subscription_item->get_recurring_period( true ) ); |
|
417 | - $subscription->set_frequency( $subscription_item->get_recurring_interval() ); |
|
418 | - $subscription->set_bill_times( $subscription_item->get_recurring_limit() ); |
|
415 | + $subscription->set_product_id($subscription_item->get_id()); |
|
416 | + $subscription->set_period($subscription_item->get_recurring_period(true)); |
|
417 | + $subscription->set_frequency($subscription_item->get_recurring_interval()); |
|
418 | + $subscription->set_bill_times($subscription_item->get_recurring_limit()); |
|
419 | 419 | |
420 | 420 | // Calculate the next renewal date. |
421 | - $period = $subscription_item->get_recurring_period( true ); |
|
421 | + $period = $subscription_item->get_recurring_period(true); |
|
422 | 422 | $interval = $subscription_item->get_recurring_interval(); |
423 | 423 | |
424 | 424 | // If the subscription item has a trial period... |
425 | - if ( $subscription_item->has_free_trial() ) { |
|
426 | - $period = $subscription_item->get_trial_period( true ); |
|
425 | + if ($subscription_item->has_free_trial()) { |
|
426 | + $period = $subscription_item->get_trial_period(true); |
|
427 | 427 | $interval = $subscription_item->get_trial_interval(); |
428 | - $subscription->set_trial_period( $interval . ' ' . $period ); |
|
429 | - $subscription->set_status( 'trialling' ); |
|
428 | + $subscription->set_trial_period($interval . ' ' . $period); |
|
429 | + $subscription->set_status('trialling'); |
|
430 | 430 | } |
431 | 431 | |
432 | 432 | // If initial amount is free, treat it as a free trial even if the subscription item does not have a free trial. |
433 | - if ( $invoice->has_free_trial() ) { |
|
434 | - $subscription->set_trial_period( $interval . ' ' . $period ); |
|
435 | - $subscription->set_status( 'trialling' ); |
|
433 | + if ($invoice->has_free_trial()) { |
|
434 | + $subscription->set_trial_period($interval . ' ' . $period); |
|
435 | + $subscription->set_status('trialling'); |
|
436 | 436 | } |
437 | 437 | |
438 | 438 | // Calculate the next renewal date. |
439 | - $expiration = date( 'Y-m-d H:i:s', strtotime( "+$interval $period", strtotime( $subscription->get_date_created() ) ) ); |
|
439 | + $expiration = date('Y-m-d H:i:s', strtotime("+$interval $period", strtotime($subscription->get_date_created()))); |
|
440 | 440 | |
441 | - $subscription->set_next_renewal_date( $expiration ); |
|
441 | + $subscription->set_next_renewal_date($expiration); |
|
442 | 442 | $subscription->save(); |
443 | - $invoice->set_subscription_id( $subscription->get_id() ); |
|
443 | + $invoice->set_subscription_id($subscription->get_id()); |
|
444 | 444 | return $subscription->get_id(); |
445 | 445 | |
446 | 446 | } |
@@ -451,34 +451,34 @@ discard block |
||
451 | 451 | * @param array $data |
452 | 452 | * @since 1.0.19 |
453 | 453 | */ |
454 | - public function admin_update_single_subscription( $args ) { |
|
454 | + public function admin_update_single_subscription($args) { |
|
455 | 455 | |
456 | 456 | // Ensure the subscription exists and that a status has been given. |
457 | - if ( empty( $args['subscription_id'] ) ) { |
|
457 | + if (empty($args['subscription_id'])) { |
|
458 | 458 | return; |
459 | 459 | } |
460 | 460 | |
461 | 461 | // Retrieve the subscriptions. |
462 | - $subscription = new WPInv_Subscription( $args['subscription_id'] ); |
|
462 | + $subscription = new WPInv_Subscription($args['subscription_id']); |
|
463 | 463 | |
464 | - if ( $subscription->get_id() ) { |
|
464 | + if ($subscription->get_id()) { |
|
465 | 465 | |
466 | 466 | $subscription->set_props( |
467 | 467 | array( |
468 | - 'status' => isset( $args['subscription_status'] ) ? $args['subscription_status'] : null, |
|
469 | - 'profile_id' => isset( $args['wpinv_subscription_profile_id'] ) ? $args['wpinv_subscription_profile_id'] : null, |
|
470 | - 'date_created' => ! empty( $args['wpinv_subscription_date_created'] ) ? $args['wpinv_subscription_date_created'] : null, |
|
471 | - 'expiration' => ! empty( $args['wpinv_subscription_expiration'] ) ? $args['wpinv_subscription_expiration'] : null, |
|
472 | - 'bill_times' => ! empty( $args['wpinv_subscription_max_bill_times'] ) ? $args['wpinv_subscription_max_bill_times'] : null, |
|
468 | + 'status' => isset($args['subscription_status']) ? $args['subscription_status'] : null, |
|
469 | + 'profile_id' => isset($args['wpinv_subscription_profile_id']) ? $args['wpinv_subscription_profile_id'] : null, |
|
470 | + 'date_created' => !empty($args['wpinv_subscription_date_created']) ? $args['wpinv_subscription_date_created'] : null, |
|
471 | + 'expiration' => !empty($args['wpinv_subscription_expiration']) ? $args['wpinv_subscription_expiration'] : null, |
|
472 | + 'bill_times' => !empty($args['wpinv_subscription_max_bill_times']) ? $args['wpinv_subscription_max_bill_times'] : null, |
|
473 | 473 | ) |
474 | 474 | ); |
475 | 475 | |
476 | 476 | $changes = $subscription->get_changes(); |
477 | 477 | |
478 | 478 | $subscription->save(); |
479 | - getpaid_admin()->show_info( __( 'Subscription updated', 'invoicing' ) ); |
|
479 | + getpaid_admin()->show_info(__('Subscription updated', 'invoicing')); |
|
480 | 480 | |
481 | - do_action( 'getpaid_admin_updated_subscription', $subscription, $args, $changes ); |
|
481 | + do_action('getpaid_admin_updated_subscription', $subscription, $args, $changes); |
|
482 | 482 | } |
483 | 483 | |
484 | 484 | } |
@@ -489,27 +489,27 @@ discard block |
||
489 | 489 | * @param array $data |
490 | 490 | * @since 1.0.19 |
491 | 491 | */ |
492 | - public function admin_renew_single_subscription( $args ) { |
|
492 | + public function admin_renew_single_subscription($args) { |
|
493 | 493 | |
494 | 494 | // Ensure the subscription exists and that a status has been given. |
495 | - if ( empty( $args['id'] ) ) { |
|
495 | + if (empty($args['id'])) { |
|
496 | 496 | return; |
497 | 497 | } |
498 | 498 | |
499 | 499 | // Retrieve the subscriptions. |
500 | - $subscription = new WPInv_Subscription( $args['id'] ); |
|
500 | + $subscription = new WPInv_Subscription($args['id']); |
|
501 | 501 | |
502 | - if ( $subscription->get_id() ) { |
|
502 | + if ($subscription->get_id()) { |
|
503 | 503 | |
504 | - do_action( 'getpaid_admin_renew_subscription', $subscription ); |
|
504 | + do_action('getpaid_admin_renew_subscription', $subscription); |
|
505 | 505 | |
506 | - $args = array( 'transaction_id', $subscription->get_parent_invoice()->generate_key( 'renewal_' ) ); |
|
506 | + $args = array('transaction_id', $subscription->get_parent_invoice()->generate_key('renewal_')); |
|
507 | 507 | |
508 | - if ( ! $subscription->add_payment( $args ) ) { |
|
509 | - getpaid_admin()->show_error( __( 'We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing' ) ); |
|
508 | + if (!$subscription->add_payment($args)) { |
|
509 | + getpaid_admin()->show_error(__('We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing')); |
|
510 | 510 | } else { |
511 | 511 | $subscription->renew(); |
512 | - getpaid_admin()->show_info( __( 'This subscription has been renewed and extended.', 'invoicing' ) ); |
|
512 | + getpaid_admin()->show_info(__('This subscription has been renewed and extended.', 'invoicing')); |
|
513 | 513 | } |
514 | 514 | |
515 | 515 | wp_safe_redirect( |
@@ -532,20 +532,20 @@ discard block |
||
532 | 532 | * @param array $data |
533 | 533 | * @since 1.0.19 |
534 | 534 | */ |
535 | - public function admin_delete_single_subscription( $args ) { |
|
535 | + public function admin_delete_single_subscription($args) { |
|
536 | 536 | |
537 | 537 | // Ensure the subscription exists and that a status has been given. |
538 | - if ( empty( $args['id'] ) ) { |
|
538 | + if (empty($args['id'])) { |
|
539 | 539 | return; |
540 | 540 | } |
541 | 541 | |
542 | 542 | // Retrieve the subscriptions. |
543 | - $subscription = new WPInv_Subscription( $args['id'] ); |
|
543 | + $subscription = new WPInv_Subscription($args['id']); |
|
544 | 544 | |
545 | - if ( $subscription->delete() ) { |
|
546 | - getpaid_admin()->show_info( __( 'This subscription has been deleted.', 'invoicing' ) ); |
|
545 | + if ($subscription->delete()) { |
|
546 | + getpaid_admin()->show_info(__('This subscription has been deleted.', 'invoicing')); |
|
547 | 547 | } else { |
548 | - getpaid_admin()->show_error( __( 'We are unable to delete this subscription. Please try again.', 'invoicing' ) ); |
|
548 | + getpaid_admin()->show_error(__('We are unable to delete this subscription. Please try again.', 'invoicing')); |
|
549 | 549 | } |
550 | 550 | |
551 | 551 | $redirected = wp_safe_redirect( |
@@ -558,7 +558,7 @@ discard block |
||
558 | 558 | ) |
559 | 559 | ); |
560 | 560 | |
561 | - if ( $redirected ) { |
|
561 | + if ($redirected) { |
|
562 | 562 | exit; |
563 | 563 | } |
564 | 564 | |
@@ -571,16 +571,16 @@ discard block |
||
571 | 571 | * @param WPInv_Item $item |
572 | 572 | * @param WPInv_Invoice $invoice |
573 | 573 | */ |
574 | - public function filter_invoice_line_item_actions( $actions, $item, $invoice ) { |
|
574 | + public function filter_invoice_line_item_actions($actions, $item, $invoice) { |
|
575 | 575 | |
576 | 576 | // Abort if this invoice uses subscription groups. |
577 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
578 | - if ( ! $invoice->is_recurring() || ! is_object( $subscriptions ) ) { |
|
577 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
578 | + if (!$invoice->is_recurring() || !is_object($subscriptions)) { |
|
579 | 579 | return $actions; |
580 | 580 | } |
581 | 581 | |
582 | 582 | // Fetch item subscription. |
583 | - $args = array( |
|
583 | + $args = array( |
|
584 | 584 | 'invoice_in' => $invoice->is_parent() ? $invoice->get_id() : $invoice->get_parent_id(), |
585 | 585 | 'product_in' => $item->get_id(), |
586 | 586 | 'number' => 1, |
@@ -588,13 +588,13 @@ discard block |
||
588 | 588 | 'fields' => 'id', |
589 | 589 | ); |
590 | 590 | |
591 | - $subscription = new GetPaid_Subscriptions_Query( $args ); |
|
591 | + $subscription = new GetPaid_Subscriptions_Query($args); |
|
592 | 592 | $subscription = $subscription->get_results(); |
593 | 593 | |
594 | 594 | // In case we found a match... |
595 | - if ( ! empty( $subscription ) ) { |
|
596 | - $url = esc_url( add_query_arg( 'subscription', (int) $subscription[0], get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ) ); |
|
597 | - $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>'; |
|
595 | + if (!empty($subscription)) { |
|
596 | + $url = esc_url(add_query_arg('subscription', (int) $subscription[0], get_permalink((int) wpinv_get_option('invoice_subscription_page')))); |
|
597 | + $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __('Manage Subscription', 'invoicing') . '</a>'; |
|
598 | 598 | } |
599 | 599 | |
600 | 600 | return $actions; |
@@ -271,26 +271,26 @@ discard block |
||
271 | 271 | } |
272 | 272 | |
273 | 273 | function wpinv_get_chosen_gateway( $invoice_id = 0 ) { |
274 | - $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
274 | + $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
275 | 275 | |
276 | 276 | $chosen = false; |
277 | 277 | if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) { |
278 | 278 | $chosen = $invoice->get_gateway(); |
279 | 279 | } |
280 | 280 | |
281 | - $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
281 | + $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
282 | 282 | |
283 | - if ( false !== $chosen ) { |
|
284 | - $chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
285 | - } |
|
283 | + if ( false !== $chosen ) { |
|
284 | + $chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
285 | + } |
|
286 | 286 | |
287 | - if ( ! empty( $chosen ) ) { |
|
288 | - $enabled_gateway = urldecode( $chosen ); |
|
289 | - } elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
290 | - $enabled_gateway = 'manual'; |
|
291 | - } else { |
|
292 | - $enabled_gateway = wpinv_get_default_gateway(); |
|
293 | - } |
|
287 | + if ( ! empty( $chosen ) ) { |
|
288 | + $enabled_gateway = urldecode( $chosen ); |
|
289 | + } elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
290 | + $enabled_gateway = 'manual'; |
|
291 | + } else { |
|
292 | + $enabled_gateway = wpinv_get_default_gateway(); |
|
293 | + } |
|
294 | 294 | |
295 | 295 | if ( ! wpinv_is_gateway_active( $enabled_gateway ) && ! empty( $gateways ) ) { |
296 | 296 | if ( wpinv_is_gateway_active( wpinv_get_default_gateway() ) ) { |
@@ -300,7 +300,7 @@ discard block |
||
300 | 300 | } |
301 | 301 | } |
302 | 302 | |
303 | - return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
303 | + return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
304 | 304 | } |
305 | 305 | |
306 | 306 | function wpinv_record_gateway_error( $title = '', $message = '' ) { |
@@ -308,22 +308,22 @@ discard block |
||
308 | 308 | } |
309 | 309 | |
310 | 310 | function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) { |
311 | - $ret = 0; |
|
312 | - $args = array( |
|
313 | - 'meta_key' => '_wpinv_gateway', |
|
314 | - 'meta_value' => $gateway_id, |
|
315 | - 'nopaging' => true, |
|
316 | - 'post_type' => 'wpi_invoice', |
|
317 | - 'post_status' => $status, |
|
318 | - 'fields' => 'ids', |
|
319 | - ); |
|
320 | - |
|
321 | - $payments = new WP_Query( $args ); |
|
322 | - |
|
323 | - if ( $payments ) { |
|
324 | - $ret = $payments->post_count; |
|
311 | + $ret = 0; |
|
312 | + $args = array( |
|
313 | + 'meta_key' => '_wpinv_gateway', |
|
314 | + 'meta_value' => $gateway_id, |
|
315 | + 'nopaging' => true, |
|
316 | + 'post_type' => 'wpi_invoice', |
|
317 | + 'post_status' => $status, |
|
318 | + 'fields' => 'ids', |
|
319 | + ); |
|
320 | + |
|
321 | + $payments = new WP_Query( $args ); |
|
322 | + |
|
323 | + if ( $payments ) { |
|
324 | + $ret = $payments->post_count; |
|
325 | 325 | } |
326 | - return $ret; |
|
326 | + return $ret; |
|
327 | 327 | } |
328 | 328 | |
329 | 329 | /** |
@@ -3,7 +3,7 @@ discard block |
||
3 | 3 | * Contains gateway functions. |
4 | 4 | * |
5 | 5 | */ |
6 | -defined( 'ABSPATH' ) || exit; |
|
6 | +defined('ABSPATH') || exit; |
|
7 | 7 | |
8 | 8 | /** |
9 | 9 | * Returns an array of payment gateways. |
@@ -11,30 +11,30 @@ discard block |
||
11 | 11 | * @return array |
12 | 12 | */ |
13 | 13 | function wpinv_get_payment_gateways() { |
14 | - return apply_filters( 'wpinv_payment_gateways', array() ); |
|
14 | + return apply_filters('wpinv_payment_gateways', array()); |
|
15 | 15 | } |
16 | 16 | |
17 | -function wpinv_payment_gateway_titles( $all_gateways ) { |
|
17 | +function wpinv_payment_gateway_titles($all_gateways) { |
|
18 | 18 | |
19 | 19 | $options = wpinv_get_options(); |
20 | 20 | $gateways = array(); |
21 | - foreach ( $all_gateways as $key => $gateway ) { |
|
22 | - if ( ! empty( $options[ $key . '_title' ] ) ) { |
|
23 | - $all_gateways[ $key ]['checkout_label'] = __( $options[ $key . '_title' ], 'invoicing' ); |
|
21 | + foreach ($all_gateways as $key => $gateway) { |
|
22 | + if (!empty($options[$key . '_title'])) { |
|
23 | + $all_gateways[$key]['checkout_label'] = __($options[$key . '_title'], 'invoicing'); |
|
24 | 24 | } |
25 | 25 | |
26 | - $gateways[ $key ] = isset( $options[ $key . '_ordering' ] ) ? $options[ $key . '_ordering' ] : ( isset( $gateway['ordering'] ) ? $gateway['ordering'] : '' ); |
|
26 | + $gateways[$key] = isset($options[$key . '_ordering']) ? $options[$key . '_ordering'] : (isset($gateway['ordering']) ? $gateway['ordering'] : ''); |
|
27 | 27 | } |
28 | 28 | |
29 | - asort( $gateways ); |
|
29 | + asort($gateways); |
|
30 | 30 | |
31 | - foreach ( $gateways as $gateway => $key ) { |
|
32 | - $gateways[ $gateway ] = $all_gateways[ $gateway ]; |
|
31 | + foreach ($gateways as $gateway => $key) { |
|
32 | + $gateways[$gateway] = $all_gateways[$gateway]; |
|
33 | 33 | } |
34 | 34 | |
35 | 35 | return $gateways; |
36 | 36 | } |
37 | -add_filter( 'wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1 ); |
|
37 | +add_filter('wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1); |
|
38 | 38 | |
39 | 39 | /** |
40 | 40 | * Returns an array of enabled gateways. |
@@ -42,36 +42,36 @@ discard block |
||
42 | 42 | * @param bool $sort |
43 | 43 | * @return array |
44 | 44 | */ |
45 | -function wpinv_get_enabled_payment_gateways( $sort = false ) { |
|
45 | +function wpinv_get_enabled_payment_gateways($sort = false) { |
|
46 | 46 | |
47 | 47 | $enabled = array(); |
48 | 48 | |
49 | - foreach ( wpinv_get_payment_gateways() as $gateway => $data ) { |
|
49 | + foreach (wpinv_get_payment_gateways() as $gateway => $data) { |
|
50 | 50 | |
51 | - if ( (int) wpinv_get_option( "{$gateway}_active", $gateway === 'manual' ) === 1 ) { |
|
52 | - $enabled[ $gateway ] = $data; |
|
51 | + if ((int) wpinv_get_option("{$gateway}_active", $gateway === 'manual') === 1) { |
|
52 | + $enabled[$gateway] = $data; |
|
53 | 53 | } |
54 | 54 | } |
55 | 55 | |
56 | - if ( true === $sort ) { |
|
57 | - uasort( $enabled, 'wpinv_sort_gateway_order' ); |
|
56 | + if (true === $sort) { |
|
57 | + uasort($enabled, 'wpinv_sort_gateway_order'); |
|
58 | 58 | |
59 | 59 | // Reorder our gateways so the default is first |
60 | 60 | $default_gateway_id = wpinv_get_default_gateway(); |
61 | - if ( isset( $enabled[ $default_gateway_id ] ) ) { |
|
61 | + if (isset($enabled[$default_gateway_id])) { |
|
62 | 62 | $default_gateway = array( |
63 | - $default_gateway_id => $enabled[ $default_gateway_id ], |
|
63 | + $default_gateway_id => $enabled[$default_gateway_id], |
|
64 | 64 | ); |
65 | 65 | |
66 | - unset( $enabled[ $default_gateway_id ] ); |
|
67 | - $enabled = array_merge( $default_gateway, $enabled ); |
|
66 | + unset($enabled[$default_gateway_id]); |
|
67 | + $enabled = array_merge($default_gateway, $enabled); |
|
68 | 68 | } |
69 | 69 | } |
70 | 70 | |
71 | - return apply_filters( 'wpinv_enabled_payment_gateways', $enabled ); |
|
71 | + return apply_filters('wpinv_enabled_payment_gateways', $enabled); |
|
72 | 72 | } |
73 | 73 | |
74 | -function wpinv_sort_gateway_order( $a, $b ) { |
|
74 | +function wpinv_sort_gateway_order($a, $b) { |
|
75 | 75 | return $a['ordering'] - $b['ordering']; |
76 | 76 | } |
77 | 77 | |
@@ -81,9 +81,9 @@ discard block |
||
81 | 81 | * @param string $gateway |
82 | 82 | * @return bool |
83 | 83 | */ |
84 | -function wpinv_is_gateway_active( $gateway ) { |
|
85 | - $is_active = (int) wpinv_get_option( "{$gateway}_active", $gateway === 'manual' ) === 1; |
|
86 | - return apply_filters( 'wpinv_is_gateway_active', $is_active, $gateway ); |
|
84 | +function wpinv_is_gateway_active($gateway) { |
|
85 | + $is_active = (int) wpinv_get_option("{$gateway}_active", $gateway === 'manual') === 1; |
|
86 | + return apply_filters('wpinv_is_gateway_active', $is_active, $gateway); |
|
87 | 87 | } |
88 | 88 | |
89 | 89 | /** |
@@ -92,11 +92,11 @@ discard block |
||
92 | 92 | * @return string|false |
93 | 93 | */ |
94 | 94 | function wpinv_get_default_gateway() { |
95 | - $default = wpinv_get_option( 'default_gateway' ); |
|
95 | + $default = wpinv_get_option('default_gateway'); |
|
96 | 96 | $gateways = wpinv_get_enabled_payment_gateways(); |
97 | - $default = ! empty( $default ) && isset( $gateways[ $default ] ) ? $default : false; |
|
97 | + $default = !empty($default) && isset($gateways[$default]) ? $default : false; |
|
98 | 98 | |
99 | - return apply_filters( 'wpinv_default_gateway', $default ); |
|
99 | + return apply_filters('wpinv_default_gateway', $default); |
|
100 | 100 | } |
101 | 101 | |
102 | 102 | /** |
@@ -105,17 +105,17 @@ discard block |
||
105 | 105 | * @param string $gateway The gateway to key. |
106 | 106 | * @return string |
107 | 107 | */ |
108 | -function wpinv_get_gateway_admin_label( $gateway ) { |
|
108 | +function wpinv_get_gateway_admin_label($gateway) { |
|
109 | 109 | |
110 | - if ( empty( $gateway ) || 'none' == $gateway ) { |
|
111 | - return esc_html__( 'No Gateway', 'invoicing' ); |
|
110 | + if (empty($gateway) || 'none' == $gateway) { |
|
111 | + return esc_html__('No Gateway', 'invoicing'); |
|
112 | 112 | } |
113 | 113 | |
114 | 114 | $gateways = wpinv_get_payment_gateways(); |
115 | - $label = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['admin_label'] : $gateway; |
|
116 | - $gateway = apply_filters( 'wpinv_gateway_admin_label', $label, $gateway ); |
|
115 | + $label = isset($gateways[$gateway]) ? $gateways[$gateway]['admin_label'] : $gateway; |
|
116 | + $gateway = apply_filters('wpinv_gateway_admin_label', $label, $gateway); |
|
117 | 117 | |
118 | - return wpinv_clean( $gateway ); |
|
118 | + return wpinv_clean($gateway); |
|
119 | 119 | } |
120 | 120 | |
121 | 121 | /** |
@@ -123,48 +123,48 @@ discard block |
||
123 | 123 | * |
124 | 124 | * @param string $gateway |
125 | 125 | */ |
126 | -function wpinv_get_gateway_description( $gateway ) { |
|
126 | +function wpinv_get_gateway_description($gateway) { |
|
127 | 127 | |
128 | 128 | $options = wpinv_get_options(); |
129 | - $description = ! empty( $options[ $gateway . '_desc' ] ) ? $options[ $gateway . '_desc' ] : ''; |
|
129 | + $description = !empty($options[$gateway . '_desc']) ? $options[$gateway . '_desc'] : ''; |
|
130 | 130 | |
131 | - return apply_filters( 'wpinv_gateway_description', $description, $gateway ); |
|
131 | + return apply_filters('wpinv_gateway_description', $description, $gateway); |
|
132 | 132 | } |
133 | 133 | |
134 | -function wpinv_get_gateway_button_label( $gateway ) { |
|
135 | - return apply_filters( 'wpinv_gateway_' . $gateway . '_button_label', '' ); |
|
134 | +function wpinv_get_gateway_button_label($gateway) { |
|
135 | + return apply_filters('wpinv_gateway_' . $gateway . '_button_label', ''); |
|
136 | 136 | } |
137 | 137 | |
138 | -function wpinv_get_gateway_checkout_label( $gateway ) { |
|
138 | +function wpinv_get_gateway_checkout_label($gateway) { |
|
139 | 139 | $gateways = wpinv_get_payment_gateways(); |
140 | - $label = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['checkout_label'] : $gateway; |
|
140 | + $label = isset($gateways[$gateway]) ? $gateways[$gateway]['checkout_label'] : $gateway; |
|
141 | 141 | |
142 | - if ( $gateway == 'none' ) { |
|
143 | - $label = __( 'None', 'invoicing' ); |
|
142 | + if ($gateway == 'none') { |
|
143 | + $label = __('None', 'invoicing'); |
|
144 | 144 | } |
145 | 145 | |
146 | - return apply_filters( 'wpinv_gateway_checkout_label', ucfirst( $label ), $gateway ); |
|
146 | + return apply_filters('wpinv_gateway_checkout_label', ucfirst($label), $gateway); |
|
147 | 147 | } |
148 | 148 | |
149 | -function wpinv_settings_sections_gateways( $settings ) { |
|
149 | +function wpinv_settings_sections_gateways($settings) { |
|
150 | 150 | $gateways = wpinv_get_payment_gateways(); |
151 | - ksort( $gateways ); |
|
151 | + ksort($gateways); |
|
152 | 152 | |
153 | - foreach ( $gateways as $key => $gateway ) { |
|
154 | - $settings[ $key ] = $gateway['admin_label']; |
|
153 | + foreach ($gateways as $key => $gateway) { |
|
154 | + $settings[$key] = $gateway['admin_label']; |
|
155 | 155 | } |
156 | 156 | |
157 | 157 | return $settings; |
158 | 158 | } |
159 | -add_filter( 'wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1 ); |
|
159 | +add_filter('wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1); |
|
160 | 160 | |
161 | 161 | /** |
162 | 162 | * Adds GateWay settings. |
163 | 163 | */ |
164 | -function wpinv_settings_gateways( $settings ) { |
|
164 | +function wpinv_settings_gateways($settings) { |
|
165 | 165 | |
166 | 166 | // Loop through each gateway. |
167 | - foreach ( wpinv_get_payment_gateways() as $key => $gateway ) { |
|
167 | + foreach (wpinv_get_payment_gateways() as $key => $gateway) { |
|
168 | 168 | |
169 | 169 | $gateway_settings = array( |
170 | 170 | |
@@ -172,7 +172,7 @@ discard block |
||
172 | 172 | "{$key}_header" => array( |
173 | 173 | |
174 | 174 | 'id' => "{$key}_gateway_header", |
175 | - 'name' => '<h3>' . wp_sprintf( __( '%s Settings', 'invoicing' ), $gateway['admin_label'] ) . '</h3>', |
|
175 | + 'name' => '<h3>' . wp_sprintf(__('%s Settings', 'invoicing'), $gateway['admin_label']) . '</h3>', |
|
176 | 176 | 'custom' => $key, |
177 | 177 | 'type' => 'gateway_header', |
178 | 178 | |
@@ -181,8 +181,8 @@ discard block |
||
181 | 181 | // Activate/Deactivate a gateway. |
182 | 182 | "{$key}_active" => array( |
183 | 183 | 'id' => $key . '_active', |
184 | - 'name' => __( 'Activate', 'invoicing' ), |
|
185 | - 'desc' => wp_sprintf( __( 'Enable %s', 'invoicing' ), $gateway['admin_label'] ), |
|
184 | + 'name' => __('Activate', 'invoicing'), |
|
185 | + 'desc' => wp_sprintf(__('Enable %s', 'invoicing'), $gateway['admin_label']), |
|
186 | 186 | 'type' => 'checkbox', |
187 | 187 | 'std' => $key === 'manual' ? '1' : '0', |
188 | 188 | ), |
@@ -190,8 +190,8 @@ discard block |
||
190 | 190 | // Activate/Deactivate sandbox. |
191 | 191 | "{$key}_sandbox" => array( |
192 | 192 | 'id' => $key . '_sandbox', |
193 | - 'name' => __( 'Sandbox', 'invoicing' ), |
|
194 | - 'desc' => __( 'Enable sandbox to test payments', 'invoicing' ), |
|
193 | + 'name' => __('Sandbox', 'invoicing'), |
|
194 | + 'desc' => __('Enable sandbox to test payments', 'invoicing'), |
|
195 | 195 | 'type' => 'checkbox', |
196 | 196 | 'std' => '1', |
197 | 197 | ), |
@@ -199,52 +199,52 @@ discard block |
||
199 | 199 | // Checkout title. |
200 | 200 | "{$key}_title" => array( |
201 | 201 | 'id' => $key . '_title', |
202 | - 'name' => __( 'Checkout Title', 'invoicing' ), |
|
203 | - 'std' => isset( $gateway['checkout_label'] ) ? $gateway['checkout_label'] : '', |
|
202 | + 'name' => __('Checkout Title', 'invoicing'), |
|
203 | + 'std' => isset($gateway['checkout_label']) ? $gateway['checkout_label'] : '', |
|
204 | 204 | 'type' => 'text', |
205 | 205 | ), |
206 | 206 | |
207 | 207 | // Checkout description. |
208 | 208 | "{$key}_desc" => array( |
209 | 209 | 'id' => $key . '_desc', |
210 | - 'name' => __( 'Checkout Description', 'invoicing' ), |
|
211 | - 'std' => apply_filters( "getpaid_default_{$key}_checkout_description", '' ), |
|
210 | + 'name' => __('Checkout Description', 'invoicing'), |
|
211 | + 'std' => apply_filters("getpaid_default_{$key}_checkout_description", ''), |
|
212 | 212 | 'type' => 'text', |
213 | 213 | ), |
214 | 214 | |
215 | 215 | // Checkout order. |
216 | 216 | "{$key}_ordering" => array( |
217 | 217 | 'id' => $key . '_ordering', |
218 | - 'name' => __( 'Priority', 'invoicing' ), |
|
219 | - 'std' => apply_filters( "getpaid_default_{$key}_checkout_description", '' ), |
|
218 | + 'name' => __('Priority', 'invoicing'), |
|
219 | + 'std' => apply_filters("getpaid_default_{$key}_checkout_description", ''), |
|
220 | 220 | 'type' => 'number', |
221 | 221 | 'step' => '1', |
222 | 222 | 'min' => '0', |
223 | 223 | 'max' => '100000', |
224 | - 'std' => isset( $gateway['ordering'] ) ? $gateway['ordering'] : '10', |
|
224 | + 'std' => isset($gateway['ordering']) ? $gateway['ordering'] : '10', |
|
225 | 225 | ), |
226 | 226 | |
227 | 227 | ); |
228 | 228 | |
229 | 229 | // Maybe remove the sandbox. |
230 | - if ( ! getpaid_payment_gateway_supports( $key, 'sandbox' ) ) { |
|
231 | - unset( $gateway_settings[ "{$key}_sandbox" ] ); |
|
230 | + if (!getpaid_payment_gateway_supports($key, 'sandbox')) { |
|
231 | + unset($gateway_settings["{$key}_sandbox"]); |
|
232 | 232 | } |
233 | 233 | |
234 | - $gateway_settings = apply_filters( 'wpinv_gateway_settings', $gateway_settings, $key, $gateway ); |
|
235 | - $gateway_settings = apply_filters( 'wpinv_gateway_settings_' . $key, $gateway_settings, $gateway ); |
|
234 | + $gateway_settings = apply_filters('wpinv_gateway_settings', $gateway_settings, $key, $gateway); |
|
235 | + $gateway_settings = apply_filters('wpinv_gateway_settings_' . $key, $gateway_settings, $gateway); |
|
236 | 236 | |
237 | - $settings[ $key ] = $gateway_settings; |
|
237 | + $settings[$key] = $gateway_settings; |
|
238 | 238 | } |
239 | 239 | |
240 | - do_action( 'getpaid_after_gateway_settings', $settings ); |
|
240 | + do_action('getpaid_after_gateway_settings', $settings); |
|
241 | 241 | return $settings; |
242 | 242 | |
243 | 243 | } |
244 | -add_filter( 'wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1 ); |
|
244 | +add_filter('wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1); |
|
245 | 245 | |
246 | -function wpinv_gateway_header_callback( $args ) { |
|
247 | - echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr( $args['custom'] ) . '" />'; |
|
246 | +function wpinv_gateway_header_callback($args) { |
|
247 | + echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr($args['custom']) . '" />'; |
|
248 | 248 | } |
249 | 249 | |
250 | 250 | /** |
@@ -255,60 +255,60 @@ discard block |
||
255 | 255 | * @return bool |
256 | 256 | * @since 2.3.0 |
257 | 257 | */ |
258 | -function getpaid_payment_gateway_supports( $gateway, $feature ) { |
|
258 | +function getpaid_payment_gateway_supports($gateway, $feature) { |
|
259 | 259 | |
260 | 260 | $supports = false; |
261 | 261 | |
262 | - $supports = apply_filters( "getpaid_{$gateway}_supports_{$feature}", false ); |
|
262 | + $supports = apply_filters("getpaid_{$gateway}_supports_{$feature}", false); |
|
263 | 263 | |
264 | 264 | // Backwards compatibility. |
265 | - $supports = apply_filters( "wpinv_{$gateway}_supports_{$feature}", $supports ); |
|
266 | - $supports = apply_filters( "wpinv_{$gateway}_support_{$feature}", $supports ); |
|
265 | + $supports = apply_filters("wpinv_{$gateway}_supports_{$feature}", $supports); |
|
266 | + $supports = apply_filters("wpinv_{$gateway}_support_{$feature}", $supports); |
|
267 | 267 | |
268 | - $supports = apply_filters( "getpaid_gateway_supports_{$feature}", $supports, $gateway ); |
|
269 | - $supports = apply_filters( 'getpaid_payment_gateway_supports', $supports, $feature, $gateway ); |
|
268 | + $supports = apply_filters("getpaid_gateway_supports_{$feature}", $supports, $gateway); |
|
269 | + $supports = apply_filters('getpaid_payment_gateway_supports', $supports, $feature, $gateway); |
|
270 | 270 | |
271 | 271 | return $supports; |
272 | 272 | } |
273 | 273 | |
274 | -function wpinv_get_chosen_gateway( $invoice_id = 0 ) { |
|
275 | - $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
274 | +function wpinv_get_chosen_gateway($invoice_id = 0) { |
|
275 | + $gateways = array_keys(wpinv_get_enabled_payment_gateways()); |
|
276 | 276 | |
277 | 277 | $chosen = false; |
278 | - if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) { |
|
278 | + if ($invoice_id > 0 && $invoice = wpinv_get_invoice($invoice_id)) { |
|
279 | 279 | $chosen = $invoice->get_gateway(); |
280 | 280 | } |
281 | 281 | |
282 | - $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
282 | + $chosen = isset($_REQUEST['payment-mode']) ? sanitize_text_field($_REQUEST['payment-mode']) : $chosen; |
|
283 | 283 | |
284 | - if ( false !== $chosen ) { |
|
285 | - $chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
284 | + if (false !== $chosen) { |
|
285 | + $chosen = preg_replace('/[^a-zA-Z0-9-_]+/', '', $chosen); |
|
286 | 286 | } |
287 | 287 | |
288 | - if ( ! empty( $chosen ) ) { |
|
289 | - $enabled_gateway = urldecode( $chosen ); |
|
290 | - } elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
288 | + if (!empty($chosen)) { |
|
289 | + $enabled_gateway = urldecode($chosen); |
|
290 | + } elseif (!empty($invoice) && (float) $invoice->get_subtotal() <= 0) { |
|
291 | 291 | $enabled_gateway = 'manual'; |
292 | 292 | } else { |
293 | 293 | $enabled_gateway = wpinv_get_default_gateway(); |
294 | 294 | } |
295 | 295 | |
296 | - if ( ! wpinv_is_gateway_active( $enabled_gateway ) && ! empty( $gateways ) ) { |
|
297 | - if ( wpinv_is_gateway_active( wpinv_get_default_gateway() ) ) { |
|
296 | + if (!wpinv_is_gateway_active($enabled_gateway) && !empty($gateways)) { |
|
297 | + if (wpinv_is_gateway_active(wpinv_get_default_gateway())) { |
|
298 | 298 | $enabled_gateway = wpinv_get_default_gateway(); |
299 | 299 | } else { |
300 | 300 | $enabled_gateway = $gateways[0]; |
301 | 301 | } |
302 | 302 | } |
303 | 303 | |
304 | - return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
304 | + return apply_filters('wpinv_chosen_gateway', $enabled_gateway); |
|
305 | 305 | } |
306 | 306 | |
307 | -function wpinv_record_gateway_error( $title = '', $message = '' ) { |
|
308 | - return wpinv_error_log( $message, $title ); |
|
307 | +function wpinv_record_gateway_error($title = '', $message = '') { |
|
308 | + return wpinv_error_log($message, $title); |
|
309 | 309 | } |
310 | 310 | |
311 | -function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) { |
|
311 | +function wpinv_count_sales_by_gateway($gateway_id = 'paypal', $status = 'publish') { |
|
312 | 312 | $ret = 0; |
313 | 313 | $args = array( |
314 | 314 | 'meta_key' => '_wpinv_gateway', |
@@ -319,9 +319,9 @@ discard block |
||
319 | 319 | 'fields' => 'ids', |
320 | 320 | ); |
321 | 321 | |
322 | - $payments = new WP_Query( $args ); |
|
322 | + $payments = new WP_Query($args); |
|
323 | 323 | |
324 | - if ( $payments ) { |
|
324 | + if ($payments) { |
|
325 | 325 | $ret = $payments->post_count; |
326 | 326 | } |
327 | 327 | return $ret; |
@@ -330,11 +330,11 @@ discard block |
||
330 | 330 | /** |
331 | 331 | * Displays the ipn url field. |
332 | 332 | */ |
333 | -function wpinv_ipn_url_callback( $args ) { |
|
334 | - $sanitize_id = esc_attr( wpinv_sanitize_key( $args['id'] ) ); |
|
333 | +function wpinv_ipn_url_callback($args) { |
|
334 | + $sanitize_id = esc_attr(wpinv_sanitize_key($args['id'])); |
|
335 | 335 | |
336 | - echo '<input class="regular-text" type="text" ' . ( $args['readonly'] ? ' readonly' : '' ) . ' value="' . esc_attr( $args['std'] ) . '" name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" onClick="this.select()">'; |
|
337 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']">' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
336 | + echo '<input class="regular-text" type="text" ' . ($args['readonly'] ? ' readonly' : '') . ' value="' . esc_attr($args['std']) . '" name="wpinv_settings[' . esc_attr($sanitize_id) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" onClick="this.select()">'; |
|
337 | + echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']">' . wp_kses_post($args['desc']) . '</label>'; |
|
338 | 338 | |
339 | 339 | } |
340 | 340 | |
@@ -345,10 +345,10 @@ discard block |
||
345 | 345 | * |
346 | 346 | * @return bool |
347 | 347 | */ |
348 | -function wpinv_is_test_mode( $gateway = '' ) { |
|
349 | - $sandbox = empty( $gateway ) ? false : wpinv_get_option( "{$gateway}_sandbox", true ); |
|
350 | - $supports = getpaid_payment_gateway_supports( $gateway, 'sandbox' ); |
|
351 | - return apply_filters( 'wpinv_is_test_mode', $sandbox && $supports, $gateway ); |
|
348 | +function wpinv_is_test_mode($gateway = '') { |
|
349 | + $sandbox = empty($gateway) ? false : wpinv_get_option("{$gateway}_sandbox", true); |
|
350 | + $supports = getpaid_payment_gateway_supports($gateway, 'sandbox'); |
|
351 | + return apply_filters('wpinv_is_test_mode', $sandbox && $supports, $gateway); |
|
352 | 352 | } |
353 | 353 | |
354 | 354 | /** |
@@ -359,7 +359,7 @@ discard block |
||
359 | 359 | * |
360 | 360 | * @return string |
361 | 361 | */ |
362 | -function wpinv_get_ipn_url( $gateway = false, $args = array() ) { |
|
362 | +function wpinv_get_ipn_url($gateway = false, $args = array()) { |
|
363 | 363 | $args = wp_parse_args( |
364 | 364 | array( |
365 | 365 | 'wpi-listener' => 'IPN', |
@@ -368,7 +368,7 @@ discard block |
||
368 | 368 | $args |
369 | 369 | ); |
370 | 370 | |
371 | - return apply_filters( 'wpinv_ipn_url', add_query_arg( $args, home_url( 'index.php' ) ), $gateway, $args ); |
|
371 | + return apply_filters('wpinv_ipn_url', add_query_arg($args, home_url('index.php')), $gateway, $args); |
|
372 | 372 | |
373 | 373 | } |
374 | 374 | |
@@ -379,34 +379,34 @@ discard block |
||
379 | 379 | * |
380 | 380 | * @return string |
381 | 381 | */ |
382 | -function getpaid_get_non_query_string_ipn_url( $gateway ) { |
|
383 | - $gateway = wpinv_sanitize_key( $gateway ); |
|
384 | - return home_url( "getpaid-ipn/$gateway" ); |
|
382 | +function getpaid_get_non_query_string_ipn_url($gateway) { |
|
383 | + $gateway = wpinv_sanitize_key($gateway); |
|
384 | + return home_url("getpaid-ipn/$gateway"); |
|
385 | 385 | } |
386 | 386 | |
387 | 387 | |
388 | 388 | /** |
389 | 389 | * Retrieves request data with slashes removed slashes. |
390 | 390 | */ |
391 | -function wpinv_get_post_data( $method = 'request' ) { |
|
391 | +function wpinv_get_post_data($method = 'request') { |
|
392 | 392 | |
393 | - if ( $method == 'post' ) { |
|
394 | - return wp_kses_post_deep( wp_unslash( $_POST ) ); |
|
393 | + if ($method == 'post') { |
|
394 | + return wp_kses_post_deep(wp_unslash($_POST)); |
|
395 | 395 | } |
396 | 396 | |
397 | - if ( $method == 'get' ) { |
|
398 | - return wp_kses_post_deep( wp_unslash( $_GET ) ); |
|
397 | + if ($method == 'get') { |
|
398 | + return wp_kses_post_deep(wp_unslash($_GET)); |
|
399 | 399 | } |
400 | 400 | |
401 | - return wp_kses_post_deep( wp_unslash( $_REQUEST ) ); |
|
401 | + return wp_kses_post_deep(wp_unslash($_REQUEST)); |
|
402 | 402 | |
403 | 403 | } |
404 | 404 | |
405 | 405 | /** |
406 | 406 | * Checks if a given gateway supports subscription payments. |
407 | 407 | */ |
408 | -function wpinv_gateway_support_subscription( $gateway ) { |
|
409 | - return getpaid_payment_gateway_supports( $gateway, 'subscription' ); |
|
408 | +function wpinv_gateway_support_subscription($gateway) { |
|
409 | + return getpaid_payment_gateway_supports($gateway, 'subscription'); |
|
410 | 410 | } |
411 | 411 | |
412 | 412 | /** |
@@ -415,18 +415,18 @@ discard block |
||
415 | 415 | * @param array $gateways an array of gateways. |
416 | 416 | * @param GetPaid_Payment_Form $form payment form. |
417 | 417 | */ |
418 | -function wpinv_payment_gateways_on_cart( $gateways, $form ) { |
|
418 | +function wpinv_payment_gateways_on_cart($gateways, $form) { |
|
419 | 419 | |
420 | - if ( $form->is_recurring() ) { |
|
420 | + if ($form->is_recurring()) { |
|
421 | 421 | |
422 | - foreach ( array_keys( $gateways ) as $gateway ) { |
|
422 | + foreach (array_keys($gateways) as $gateway) { |
|
423 | 423 | |
424 | - if ( ! wpinv_gateway_support_subscription( $gateway ) ) { |
|
425 | - unset( $gateways[ $gateway ] ); |
|
424 | + if (!wpinv_gateway_support_subscription($gateway)) { |
|
425 | + unset($gateways[$gateway]); |
|
426 | 426 | } |
427 | 427 | } |
428 | 428 | } |
429 | 429 | |
430 | 430 | return $gateways; |
431 | 431 | } |
432 | -add_filter( 'getpaid_payment_form_gateways', 'wpinv_payment_gateways_on_cart', 10, 2 ); |
|
432 | +add_filter('getpaid_payment_form_gateways', 'wpinv_payment_gateways_on_cart', 10, 2); |
@@ -12,256 +12,256 @@ |
||
12 | 12 | defined( 'ABSPATH' ) || exit; |
13 | 13 | |
14 | 14 | return array( |
15 | - 'US' => __( 'United States', 'invoicing' ), |
|
16 | - 'CA' => __( 'Canada', 'invoicing' ), |
|
17 | - 'GB' => __( 'United Kingdom', 'invoicing' ), |
|
18 | - 'AF' => __( 'Afghanistan', 'invoicing' ), |
|
19 | - 'AX' => __( 'Aland Islands', 'invoicing' ), |
|
20 | - 'AL' => __( 'Albania', 'invoicing' ), |
|
21 | - 'DZ' => __( 'Algeria', 'invoicing' ), |
|
22 | - 'AS' => __( 'American Samoa', 'invoicing' ), |
|
23 | - 'AD' => __( 'Andorra', 'invoicing' ), |
|
24 | - 'AO' => __( 'Angola', 'invoicing' ), |
|
25 | - 'AI' => __( 'Anguilla', 'invoicing' ), |
|
26 | - 'AQ' => __( 'Antarctica', 'invoicing' ), |
|
27 | - 'AG' => __( 'Antigua and Barbuda', 'invoicing' ), |
|
28 | - 'AR' => __( 'Argentina', 'invoicing' ), |
|
29 | - 'AM' => __( 'Armenia', 'invoicing' ), |
|
30 | - 'AW' => __( 'Aruba', 'invoicing' ), |
|
31 | - 'AU' => __( 'Australia', 'invoicing' ), |
|
32 | - 'AT' => __( 'Austria', 'invoicing' ), |
|
33 | - 'AZ' => __( 'Azerbaijan', 'invoicing' ), |
|
34 | - 'BS' => __( 'Bahamas', 'invoicing' ), |
|
35 | - 'BH' => __( 'Bahrain', 'invoicing' ), |
|
36 | - 'BD' => __( 'Bangladesh', 'invoicing' ), |
|
37 | - 'BB' => __( 'Barbados', 'invoicing' ), |
|
38 | - 'BY' => __( 'Belarus', 'invoicing' ), |
|
39 | - 'BE' => __( 'Belgium', 'invoicing' ), |
|
40 | - 'BZ' => __( 'Belize', 'invoicing' ), |
|
41 | - 'BJ' => __( 'Benin', 'invoicing' ), |
|
42 | - 'BM' => __( 'Bermuda', 'invoicing' ), |
|
43 | - 'BT' => __( 'Bhutan', 'invoicing' ), |
|
44 | - 'BO' => __( 'Bolivia', 'invoicing' ), |
|
45 | - 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ), |
|
46 | - 'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ), |
|
47 | - 'BW' => __( 'Botswana', 'invoicing' ), |
|
48 | - 'BV' => __( 'Bouvet Island', 'invoicing' ), |
|
49 | - 'BR' => __( 'Brazil', 'invoicing' ), |
|
50 | - 'IO' => __( 'British Indian Ocean Territory', 'invoicing' ), |
|
51 | - 'BN' => __( 'Brunei Darrussalam', 'invoicing' ), |
|
52 | - 'BG' => __( 'Bulgaria', 'invoicing' ), |
|
53 | - 'BF' => __( 'Burkina Faso', 'invoicing' ), |
|
54 | - 'BI' => __( 'Burundi', 'invoicing' ), |
|
55 | - 'KH' => __( 'Cambodia', 'invoicing' ), |
|
56 | - 'CM' => __( 'Cameroon', 'invoicing' ), |
|
57 | - 'CV' => __( 'Cape Verde', 'invoicing' ), |
|
58 | - 'KY' => __( 'Cayman Islands', 'invoicing' ), |
|
59 | - 'CF' => __( 'Central African Republic', 'invoicing' ), |
|
60 | - 'TD' => __( 'Chad', 'invoicing' ), |
|
61 | - 'CL' => __( 'Chile', 'invoicing' ), |
|
62 | - 'CN' => __( 'China', 'invoicing' ), |
|
63 | - 'CX' => __( 'Christmas Island', 'invoicing' ), |
|
64 | - 'CC' => __( 'Cocos Islands', 'invoicing' ), |
|
65 | - 'CO' => __( 'Colombia', 'invoicing' ), |
|
66 | - 'KM' => __( 'Comoros', 'invoicing' ), |
|
67 | - 'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ), |
|
68 | - 'CG' => __( 'Congo, Republic of', 'invoicing' ), |
|
69 | - 'CK' => __( 'Cook Islands', 'invoicing' ), |
|
70 | - 'CR' => __( 'Costa Rica', 'invoicing' ), |
|
71 | - 'CI' => __( 'Cote d\'Ivoire', 'invoicing' ), |
|
72 | - 'HR' => __( 'Croatia/Hrvatska', 'invoicing' ), |
|
73 | - 'CU' => __( 'Cuba', 'invoicing' ), |
|
74 | - 'CW' => __( 'CuraÇao', 'invoicing' ), |
|
75 | - 'CY' => __( 'Cyprus', 'invoicing' ), |
|
76 | - 'CZ' => __( 'Czech Republic', 'invoicing' ), |
|
77 | - 'DK' => __( 'Denmark', 'invoicing' ), |
|
78 | - 'DJ' => __( 'Djibouti', 'invoicing' ), |
|
79 | - 'DM' => __( 'Dominica', 'invoicing' ), |
|
80 | - 'DO' => __( 'Dominican Republic', 'invoicing' ), |
|
81 | - 'TP' => __( 'East Timor', 'invoicing' ), |
|
82 | - 'EC' => __( 'Ecuador', 'invoicing' ), |
|
83 | - 'EG' => __( 'Egypt', 'invoicing' ), |
|
84 | - 'GQ' => __( 'Equatorial Guinea', 'invoicing' ), |
|
85 | - 'SV' => __( 'El Salvador', 'invoicing' ), |
|
86 | - 'ER' => __( 'Eritrea', 'invoicing' ), |
|
87 | - 'EE' => __( 'Estonia', 'invoicing' ), |
|
88 | - 'ET' => __( 'Ethiopia', 'invoicing' ), |
|
89 | - 'FK' => __( 'Falkland Islands', 'invoicing' ), |
|
90 | - 'FO' => __( 'Faroe Islands', 'invoicing' ), |
|
91 | - 'FJ' => __( 'Fiji', 'invoicing' ), |
|
92 | - 'FI' => __( 'Finland', 'invoicing' ), |
|
93 | - 'FR' => __( 'France', 'invoicing' ), |
|
94 | - 'GF' => __( 'French Guiana', 'invoicing' ), |
|
95 | - 'PF' => __( 'French Polynesia', 'invoicing' ), |
|
96 | - 'TF' => __( 'French Southern Territories', 'invoicing' ), |
|
97 | - 'GA' => __( 'Gabon', 'invoicing' ), |
|
98 | - 'GM' => __( 'Gambia', 'invoicing' ), |
|
99 | - 'GE' => __( 'Georgia', 'invoicing' ), |
|
100 | - 'DE' => __( 'Germany', 'invoicing' ), |
|
101 | - 'GR' => __( 'Greece', 'invoicing' ), |
|
102 | - 'GH' => __( 'Ghana', 'invoicing' ), |
|
103 | - 'GI' => __( 'Gibraltar', 'invoicing' ), |
|
104 | - 'GL' => __( 'Greenland', 'invoicing' ), |
|
105 | - 'GD' => __( 'Grenada', 'invoicing' ), |
|
106 | - 'GP' => __( 'Guadeloupe', 'invoicing' ), |
|
107 | - 'GU' => __( 'Guam', 'invoicing' ), |
|
108 | - 'GT' => __( 'Guatemala', 'invoicing' ), |
|
109 | - 'GG' => __( 'Guernsey', 'invoicing' ), |
|
110 | - 'GN' => __( 'Guinea', 'invoicing' ), |
|
111 | - 'GW' => __( 'Guinea-Bissau', 'invoicing' ), |
|
112 | - 'GY' => __( 'Guyana', 'invoicing' ), |
|
113 | - 'HT' => __( 'Haiti', 'invoicing' ), |
|
114 | - 'HM' => __( 'Heard and McDonald Islands', 'invoicing' ), |
|
115 | - 'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ), |
|
116 | - 'HN' => __( 'Honduras', 'invoicing' ), |
|
117 | - 'HK' => __( 'Hong Kong', 'invoicing' ), |
|
118 | - 'HU' => __( 'Hungary', 'invoicing' ), |
|
119 | - 'IS' => __( 'Iceland', 'invoicing' ), |
|
120 | - 'IN' => __( 'India', 'invoicing' ), |
|
121 | - 'ID' => __( 'Indonesia', 'invoicing' ), |
|
122 | - 'IR' => __( 'Iran', 'invoicing' ), |
|
123 | - 'IQ' => __( 'Iraq', 'invoicing' ), |
|
124 | - 'IE' => __( 'Ireland', 'invoicing' ), |
|
125 | - 'IM' => __( 'Isle of Man', 'invoicing' ), |
|
126 | - 'IL' => __( 'Israel', 'invoicing' ), |
|
127 | - 'IT' => __( 'Italy', 'invoicing' ), |
|
128 | - 'JM' => __( 'Jamaica', 'invoicing' ), |
|
129 | - 'JP' => __( 'Japan', 'invoicing' ), |
|
130 | - 'JE' => __( 'Jersey', 'invoicing' ), |
|
131 | - 'JO' => __( 'Jordan', 'invoicing' ), |
|
132 | - 'KZ' => __( 'Kazakhstan', 'invoicing' ), |
|
133 | - 'KE' => __( 'Kenya', 'invoicing' ), |
|
134 | - 'KI' => __( 'Kiribati', 'invoicing' ), |
|
135 | - 'KW' => __( 'Kuwait', 'invoicing' ), |
|
136 | - 'KG' => __( 'Kyrgyzstan', 'invoicing' ), |
|
137 | - 'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ), |
|
138 | - 'LV' => __( 'Latvia', 'invoicing' ), |
|
139 | - 'LB' => __( 'Lebanon', 'invoicing' ), |
|
140 | - 'LS' => __( 'Lesotho', 'invoicing' ), |
|
141 | - 'LR' => __( 'Liberia', 'invoicing' ), |
|
142 | - 'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ), |
|
143 | - 'LI' => __( 'Liechtenstein', 'invoicing' ), |
|
144 | - 'LT' => __( 'Lithuania', 'invoicing' ), |
|
145 | - 'LU' => __( 'Luxembourg', 'invoicing' ), |
|
146 | - 'MO' => __( 'Macau', 'invoicing' ), |
|
147 | - 'MK' => __( 'Macedonia', 'invoicing' ), |
|
148 | - 'MG' => __( 'Madagascar', 'invoicing' ), |
|
149 | - 'MW' => __( 'Malawi', 'invoicing' ), |
|
150 | - 'MY' => __( 'Malaysia', 'invoicing' ), |
|
151 | - 'MV' => __( 'Maldives', 'invoicing' ), |
|
152 | - 'ML' => __( 'Mali', 'invoicing' ), |
|
153 | - 'MT' => __( 'Malta', 'invoicing' ), |
|
154 | - 'MH' => __( 'Marshall Islands', 'invoicing' ), |
|
155 | - 'MQ' => __( 'Martinique', 'invoicing' ), |
|
156 | - 'MR' => __( 'Mauritania', 'invoicing' ), |
|
157 | - 'MU' => __( 'Mauritius', 'invoicing' ), |
|
158 | - 'YT' => __( 'Mayotte', 'invoicing' ), |
|
159 | - 'MX' => __( 'Mexico', 'invoicing' ), |
|
160 | - 'FM' => __( 'Micronesia', 'invoicing' ), |
|
161 | - 'MD' => __( 'Moldova, Republic of', 'invoicing' ), |
|
162 | - 'MC' => __( 'Monaco', 'invoicing' ), |
|
163 | - 'MN' => __( 'Mongolia', 'invoicing' ), |
|
164 | - 'ME' => __( 'Montenegro', 'invoicing' ), |
|
165 | - 'MS' => __( 'Montserrat', 'invoicing' ), |
|
166 | - 'MA' => __( 'Morocco', 'invoicing' ), |
|
167 | - 'MZ' => __( 'Mozambique', 'invoicing' ), |
|
168 | - 'MM' => __( 'Myanmar', 'invoicing' ), |
|
169 | - 'NA' => __( 'Namibia', 'invoicing' ), |
|
170 | - 'NR' => __( 'Nauru', 'invoicing' ), |
|
171 | - 'NP' => __( 'Nepal', 'invoicing' ), |
|
172 | - 'NL' => __( 'Netherlands', 'invoicing' ), |
|
173 | - 'AN' => __( 'Netherlands Antilles', 'invoicing' ), |
|
174 | - 'NC' => __( 'New Caledonia', 'invoicing' ), |
|
175 | - 'NZ' => __( 'New Zealand', 'invoicing' ), |
|
176 | - 'NI' => __( 'Nicaragua', 'invoicing' ), |
|
177 | - 'NE' => __( 'Niger', 'invoicing' ), |
|
178 | - 'NG' => __( 'Nigeria', 'invoicing' ), |
|
179 | - 'NU' => __( 'Niue', 'invoicing' ), |
|
180 | - 'NF' => __( 'Norfolk Island', 'invoicing' ), |
|
181 | - 'KP' => __( 'North Korea', 'invoicing' ), |
|
182 | - 'MP' => __( 'Northern Mariana Islands', 'invoicing' ), |
|
183 | - 'NO' => __( 'Norway', 'invoicing' ), |
|
184 | - 'OM' => __( 'Oman', 'invoicing' ), |
|
185 | - 'PK' => __( 'Pakistan', 'invoicing' ), |
|
186 | - 'PW' => __( 'Palau', 'invoicing' ), |
|
187 | - 'PS' => __( 'Palestinian Territories', 'invoicing' ), |
|
188 | - 'PA' => __( 'Panama', 'invoicing' ), |
|
189 | - 'PG' => __( 'Papua New Guinea', 'invoicing' ), |
|
190 | - 'PY' => __( 'Paraguay', 'invoicing' ), |
|
191 | - 'PE' => __( 'Peru', 'invoicing' ), |
|
192 | - 'PH' => __( 'Philippines', 'invoicing' ), |
|
193 | - 'PN' => __( 'Pitcairn Island', 'invoicing' ), |
|
194 | - 'PL' => __( 'Poland', 'invoicing' ), |
|
195 | - 'PT' => __( 'Portugal', 'invoicing' ), |
|
196 | - 'PR' => __( 'Puerto Rico', 'invoicing' ), |
|
197 | - 'QA' => __( 'Qatar', 'invoicing' ), |
|
198 | - 'XK' => __( 'Republic of Kosovo', 'invoicing' ), |
|
199 | - 'RE' => __( 'Reunion Island', 'invoicing' ), |
|
200 | - 'RO' => __( 'Romania', 'invoicing' ), |
|
201 | - 'RU' => __( 'Russian Federation', 'invoicing' ), |
|
202 | - 'RW' => __( 'Rwanda', 'invoicing' ), |
|
203 | - 'BL' => __( 'Saint Barthélemy', 'invoicing' ), |
|
204 | - 'SH' => __( 'Saint Helena', 'invoicing' ), |
|
205 | - 'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ), |
|
206 | - 'LC' => __( 'Saint Lucia', 'invoicing' ), |
|
207 | - 'MF' => __( 'Saint Martin (French)', 'invoicing' ), |
|
208 | - 'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ), |
|
209 | - 'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ), |
|
210 | - 'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ), |
|
211 | - 'SM' => __( 'San Marino', 'invoicing' ), |
|
212 | - 'ST' => __( 'São Tomé and Príncipe', 'invoicing' ), |
|
213 | - 'SA' => __( 'Saudi Arabia', 'invoicing' ), |
|
214 | - 'SN' => __( 'Senegal', 'invoicing' ), |
|
215 | - 'RS' => __( 'Serbia', 'invoicing' ), |
|
216 | - 'SC' => __( 'Seychelles', 'invoicing' ), |
|
217 | - 'SL' => __( 'Sierra Leone', 'invoicing' ), |
|
218 | - 'SG' => __( 'Singapore', 'invoicing' ), |
|
219 | - 'SK' => __( 'Slovak Republic', 'invoicing' ), |
|
220 | - 'SI' => __( 'Slovenia', 'invoicing' ), |
|
221 | - 'SB' => __( 'Solomon Islands', 'invoicing' ), |
|
222 | - 'SO' => __( 'Somalia', 'invoicing' ), |
|
223 | - 'ZA' => __( 'South Africa', 'invoicing' ), |
|
224 | - 'GS' => __( 'South Georgia', 'invoicing' ), |
|
225 | - 'KR' => __( 'South Korea', 'invoicing' ), |
|
226 | - 'SS' => __( 'South Sudan', 'invoicing' ), |
|
227 | - 'ES' => __( 'Spain', 'invoicing' ), |
|
228 | - 'LK' => __( 'Sri Lanka', 'invoicing' ), |
|
229 | - 'SD' => __( 'Sudan', 'invoicing' ), |
|
230 | - 'SR' => __( 'Suriname', 'invoicing' ), |
|
231 | - 'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ), |
|
232 | - 'SZ' => __( 'Swaziland', 'invoicing' ), |
|
233 | - 'SE' => __( 'Sweden', 'invoicing' ), |
|
234 | - 'CH' => __( 'Switzerland', 'invoicing' ), |
|
235 | - 'SY' => __( 'Syrian Arab Republic', 'invoicing' ), |
|
236 | - 'TW' => __( 'Taiwan', 'invoicing' ), |
|
237 | - 'TJ' => __( 'Tajikistan', 'invoicing' ), |
|
238 | - 'TZ' => __( 'Tanzania', 'invoicing' ), |
|
239 | - 'TH' => __( 'Thailand', 'invoicing' ), |
|
240 | - 'TL' => __( 'Timor-Leste', 'invoicing' ), |
|
241 | - 'TG' => __( 'Togo', 'invoicing' ), |
|
242 | - 'TK' => __( 'Tokelau', 'invoicing' ), |
|
243 | - 'TO' => __( 'Tonga', 'invoicing' ), |
|
244 | - 'TT' => __( 'Trinidad and Tobago', 'invoicing' ), |
|
245 | - 'TN' => __( 'Tunisia', 'invoicing' ), |
|
246 | - 'TR' => __( 'Turkey', 'invoicing' ), |
|
247 | - 'TM' => __( 'Turkmenistan', 'invoicing' ), |
|
248 | - 'TC' => __( 'Turks and Caicos Islands', 'invoicing' ), |
|
249 | - 'TV' => __( 'Tuvalu', 'invoicing' ), |
|
250 | - 'UG' => __( 'Uganda', 'invoicing' ), |
|
251 | - 'UA' => __( 'Ukraine', 'invoicing' ), |
|
252 | - 'AE' => __( 'United Arab Emirates', 'invoicing' ), |
|
253 | - 'UY' => __( 'Uruguay', 'invoicing' ), |
|
254 | - 'UM' => __( 'US Minor Outlying Islands', 'invoicing' ), |
|
255 | - 'UZ' => __( 'Uzbekistan', 'invoicing' ), |
|
256 | - 'VU' => __( 'Vanuatu', 'invoicing' ), |
|
257 | - 'VE' => __( 'Venezuela', 'invoicing' ), |
|
258 | - 'VN' => __( 'Vietnam', 'invoicing' ), |
|
259 | - 'VG' => __( 'Virgin Islands (British)', 'invoicing' ), |
|
260 | - 'VI' => __( 'Virgin Islands (USA)', 'invoicing' ), |
|
261 | - 'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ), |
|
262 | - 'EH' => __( 'Western Sahara', 'invoicing' ), |
|
263 | - 'WS' => __( 'Western Samoa', 'invoicing' ), |
|
264 | - 'YE' => __( 'Yemen', 'invoicing' ), |
|
265 | - 'ZM' => __( 'Zambia', 'invoicing' ), |
|
266 | - 'ZW' => __( 'Zimbabwe', 'invoicing' ), |
|
15 | + 'US' => __( 'United States', 'invoicing' ), |
|
16 | + 'CA' => __( 'Canada', 'invoicing' ), |
|
17 | + 'GB' => __( 'United Kingdom', 'invoicing' ), |
|
18 | + 'AF' => __( 'Afghanistan', 'invoicing' ), |
|
19 | + 'AX' => __( 'Aland Islands', 'invoicing' ), |
|
20 | + 'AL' => __( 'Albania', 'invoicing' ), |
|
21 | + 'DZ' => __( 'Algeria', 'invoicing' ), |
|
22 | + 'AS' => __( 'American Samoa', 'invoicing' ), |
|
23 | + 'AD' => __( 'Andorra', 'invoicing' ), |
|
24 | + 'AO' => __( 'Angola', 'invoicing' ), |
|
25 | + 'AI' => __( 'Anguilla', 'invoicing' ), |
|
26 | + 'AQ' => __( 'Antarctica', 'invoicing' ), |
|
27 | + 'AG' => __( 'Antigua and Barbuda', 'invoicing' ), |
|
28 | + 'AR' => __( 'Argentina', 'invoicing' ), |
|
29 | + 'AM' => __( 'Armenia', 'invoicing' ), |
|
30 | + 'AW' => __( 'Aruba', 'invoicing' ), |
|
31 | + 'AU' => __( 'Australia', 'invoicing' ), |
|
32 | + 'AT' => __( 'Austria', 'invoicing' ), |
|
33 | + 'AZ' => __( 'Azerbaijan', 'invoicing' ), |
|
34 | + 'BS' => __( 'Bahamas', 'invoicing' ), |
|
35 | + 'BH' => __( 'Bahrain', 'invoicing' ), |
|
36 | + 'BD' => __( 'Bangladesh', 'invoicing' ), |
|
37 | + 'BB' => __( 'Barbados', 'invoicing' ), |
|
38 | + 'BY' => __( 'Belarus', 'invoicing' ), |
|
39 | + 'BE' => __( 'Belgium', 'invoicing' ), |
|
40 | + 'BZ' => __( 'Belize', 'invoicing' ), |
|
41 | + 'BJ' => __( 'Benin', 'invoicing' ), |
|
42 | + 'BM' => __( 'Bermuda', 'invoicing' ), |
|
43 | + 'BT' => __( 'Bhutan', 'invoicing' ), |
|
44 | + 'BO' => __( 'Bolivia', 'invoicing' ), |
|
45 | + 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ), |
|
46 | + 'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ), |
|
47 | + 'BW' => __( 'Botswana', 'invoicing' ), |
|
48 | + 'BV' => __( 'Bouvet Island', 'invoicing' ), |
|
49 | + 'BR' => __( 'Brazil', 'invoicing' ), |
|
50 | + 'IO' => __( 'British Indian Ocean Territory', 'invoicing' ), |
|
51 | + 'BN' => __( 'Brunei Darrussalam', 'invoicing' ), |
|
52 | + 'BG' => __( 'Bulgaria', 'invoicing' ), |
|
53 | + 'BF' => __( 'Burkina Faso', 'invoicing' ), |
|
54 | + 'BI' => __( 'Burundi', 'invoicing' ), |
|
55 | + 'KH' => __( 'Cambodia', 'invoicing' ), |
|
56 | + 'CM' => __( 'Cameroon', 'invoicing' ), |
|
57 | + 'CV' => __( 'Cape Verde', 'invoicing' ), |
|
58 | + 'KY' => __( 'Cayman Islands', 'invoicing' ), |
|
59 | + 'CF' => __( 'Central African Republic', 'invoicing' ), |
|
60 | + 'TD' => __( 'Chad', 'invoicing' ), |
|
61 | + 'CL' => __( 'Chile', 'invoicing' ), |
|
62 | + 'CN' => __( 'China', 'invoicing' ), |
|
63 | + 'CX' => __( 'Christmas Island', 'invoicing' ), |
|
64 | + 'CC' => __( 'Cocos Islands', 'invoicing' ), |
|
65 | + 'CO' => __( 'Colombia', 'invoicing' ), |
|
66 | + 'KM' => __( 'Comoros', 'invoicing' ), |
|
67 | + 'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ), |
|
68 | + 'CG' => __( 'Congo, Republic of', 'invoicing' ), |
|
69 | + 'CK' => __( 'Cook Islands', 'invoicing' ), |
|
70 | + 'CR' => __( 'Costa Rica', 'invoicing' ), |
|
71 | + 'CI' => __( 'Cote d\'Ivoire', 'invoicing' ), |
|
72 | + 'HR' => __( 'Croatia/Hrvatska', 'invoicing' ), |
|
73 | + 'CU' => __( 'Cuba', 'invoicing' ), |
|
74 | + 'CW' => __( 'CuraÇao', 'invoicing' ), |
|
75 | + 'CY' => __( 'Cyprus', 'invoicing' ), |
|
76 | + 'CZ' => __( 'Czech Republic', 'invoicing' ), |
|
77 | + 'DK' => __( 'Denmark', 'invoicing' ), |
|
78 | + 'DJ' => __( 'Djibouti', 'invoicing' ), |
|
79 | + 'DM' => __( 'Dominica', 'invoicing' ), |
|
80 | + 'DO' => __( 'Dominican Republic', 'invoicing' ), |
|
81 | + 'TP' => __( 'East Timor', 'invoicing' ), |
|
82 | + 'EC' => __( 'Ecuador', 'invoicing' ), |
|
83 | + 'EG' => __( 'Egypt', 'invoicing' ), |
|
84 | + 'GQ' => __( 'Equatorial Guinea', 'invoicing' ), |
|
85 | + 'SV' => __( 'El Salvador', 'invoicing' ), |
|
86 | + 'ER' => __( 'Eritrea', 'invoicing' ), |
|
87 | + 'EE' => __( 'Estonia', 'invoicing' ), |
|
88 | + 'ET' => __( 'Ethiopia', 'invoicing' ), |
|
89 | + 'FK' => __( 'Falkland Islands', 'invoicing' ), |
|
90 | + 'FO' => __( 'Faroe Islands', 'invoicing' ), |
|
91 | + 'FJ' => __( 'Fiji', 'invoicing' ), |
|
92 | + 'FI' => __( 'Finland', 'invoicing' ), |
|
93 | + 'FR' => __( 'France', 'invoicing' ), |
|
94 | + 'GF' => __( 'French Guiana', 'invoicing' ), |
|
95 | + 'PF' => __( 'French Polynesia', 'invoicing' ), |
|
96 | + 'TF' => __( 'French Southern Territories', 'invoicing' ), |
|
97 | + 'GA' => __( 'Gabon', 'invoicing' ), |
|
98 | + 'GM' => __( 'Gambia', 'invoicing' ), |
|
99 | + 'GE' => __( 'Georgia', 'invoicing' ), |
|
100 | + 'DE' => __( 'Germany', 'invoicing' ), |
|
101 | + 'GR' => __( 'Greece', 'invoicing' ), |
|
102 | + 'GH' => __( 'Ghana', 'invoicing' ), |
|
103 | + 'GI' => __( 'Gibraltar', 'invoicing' ), |
|
104 | + 'GL' => __( 'Greenland', 'invoicing' ), |
|
105 | + 'GD' => __( 'Grenada', 'invoicing' ), |
|
106 | + 'GP' => __( 'Guadeloupe', 'invoicing' ), |
|
107 | + 'GU' => __( 'Guam', 'invoicing' ), |
|
108 | + 'GT' => __( 'Guatemala', 'invoicing' ), |
|
109 | + 'GG' => __( 'Guernsey', 'invoicing' ), |
|
110 | + 'GN' => __( 'Guinea', 'invoicing' ), |
|
111 | + 'GW' => __( 'Guinea-Bissau', 'invoicing' ), |
|
112 | + 'GY' => __( 'Guyana', 'invoicing' ), |
|
113 | + 'HT' => __( 'Haiti', 'invoicing' ), |
|
114 | + 'HM' => __( 'Heard and McDonald Islands', 'invoicing' ), |
|
115 | + 'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ), |
|
116 | + 'HN' => __( 'Honduras', 'invoicing' ), |
|
117 | + 'HK' => __( 'Hong Kong', 'invoicing' ), |
|
118 | + 'HU' => __( 'Hungary', 'invoicing' ), |
|
119 | + 'IS' => __( 'Iceland', 'invoicing' ), |
|
120 | + 'IN' => __( 'India', 'invoicing' ), |
|
121 | + 'ID' => __( 'Indonesia', 'invoicing' ), |
|
122 | + 'IR' => __( 'Iran', 'invoicing' ), |
|
123 | + 'IQ' => __( 'Iraq', 'invoicing' ), |
|
124 | + 'IE' => __( 'Ireland', 'invoicing' ), |
|
125 | + 'IM' => __( 'Isle of Man', 'invoicing' ), |
|
126 | + 'IL' => __( 'Israel', 'invoicing' ), |
|
127 | + 'IT' => __( 'Italy', 'invoicing' ), |
|
128 | + 'JM' => __( 'Jamaica', 'invoicing' ), |
|
129 | + 'JP' => __( 'Japan', 'invoicing' ), |
|
130 | + 'JE' => __( 'Jersey', 'invoicing' ), |
|
131 | + 'JO' => __( 'Jordan', 'invoicing' ), |
|
132 | + 'KZ' => __( 'Kazakhstan', 'invoicing' ), |
|
133 | + 'KE' => __( 'Kenya', 'invoicing' ), |
|
134 | + 'KI' => __( 'Kiribati', 'invoicing' ), |
|
135 | + 'KW' => __( 'Kuwait', 'invoicing' ), |
|
136 | + 'KG' => __( 'Kyrgyzstan', 'invoicing' ), |
|
137 | + 'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ), |
|
138 | + 'LV' => __( 'Latvia', 'invoicing' ), |
|
139 | + 'LB' => __( 'Lebanon', 'invoicing' ), |
|
140 | + 'LS' => __( 'Lesotho', 'invoicing' ), |
|
141 | + 'LR' => __( 'Liberia', 'invoicing' ), |
|
142 | + 'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ), |
|
143 | + 'LI' => __( 'Liechtenstein', 'invoicing' ), |
|
144 | + 'LT' => __( 'Lithuania', 'invoicing' ), |
|
145 | + 'LU' => __( 'Luxembourg', 'invoicing' ), |
|
146 | + 'MO' => __( 'Macau', 'invoicing' ), |
|
147 | + 'MK' => __( 'Macedonia', 'invoicing' ), |
|
148 | + 'MG' => __( 'Madagascar', 'invoicing' ), |
|
149 | + 'MW' => __( 'Malawi', 'invoicing' ), |
|
150 | + 'MY' => __( 'Malaysia', 'invoicing' ), |
|
151 | + 'MV' => __( 'Maldives', 'invoicing' ), |
|
152 | + 'ML' => __( 'Mali', 'invoicing' ), |
|
153 | + 'MT' => __( 'Malta', 'invoicing' ), |
|
154 | + 'MH' => __( 'Marshall Islands', 'invoicing' ), |
|
155 | + 'MQ' => __( 'Martinique', 'invoicing' ), |
|
156 | + 'MR' => __( 'Mauritania', 'invoicing' ), |
|
157 | + 'MU' => __( 'Mauritius', 'invoicing' ), |
|
158 | + 'YT' => __( 'Mayotte', 'invoicing' ), |
|
159 | + 'MX' => __( 'Mexico', 'invoicing' ), |
|
160 | + 'FM' => __( 'Micronesia', 'invoicing' ), |
|
161 | + 'MD' => __( 'Moldova, Republic of', 'invoicing' ), |
|
162 | + 'MC' => __( 'Monaco', 'invoicing' ), |
|
163 | + 'MN' => __( 'Mongolia', 'invoicing' ), |
|
164 | + 'ME' => __( 'Montenegro', 'invoicing' ), |
|
165 | + 'MS' => __( 'Montserrat', 'invoicing' ), |
|
166 | + 'MA' => __( 'Morocco', 'invoicing' ), |
|
167 | + 'MZ' => __( 'Mozambique', 'invoicing' ), |
|
168 | + 'MM' => __( 'Myanmar', 'invoicing' ), |
|
169 | + 'NA' => __( 'Namibia', 'invoicing' ), |
|
170 | + 'NR' => __( 'Nauru', 'invoicing' ), |
|
171 | + 'NP' => __( 'Nepal', 'invoicing' ), |
|
172 | + 'NL' => __( 'Netherlands', 'invoicing' ), |
|
173 | + 'AN' => __( 'Netherlands Antilles', 'invoicing' ), |
|
174 | + 'NC' => __( 'New Caledonia', 'invoicing' ), |
|
175 | + 'NZ' => __( 'New Zealand', 'invoicing' ), |
|
176 | + 'NI' => __( 'Nicaragua', 'invoicing' ), |
|
177 | + 'NE' => __( 'Niger', 'invoicing' ), |
|
178 | + 'NG' => __( 'Nigeria', 'invoicing' ), |
|
179 | + 'NU' => __( 'Niue', 'invoicing' ), |
|
180 | + 'NF' => __( 'Norfolk Island', 'invoicing' ), |
|
181 | + 'KP' => __( 'North Korea', 'invoicing' ), |
|
182 | + 'MP' => __( 'Northern Mariana Islands', 'invoicing' ), |
|
183 | + 'NO' => __( 'Norway', 'invoicing' ), |
|
184 | + 'OM' => __( 'Oman', 'invoicing' ), |
|
185 | + 'PK' => __( 'Pakistan', 'invoicing' ), |
|
186 | + 'PW' => __( 'Palau', 'invoicing' ), |
|
187 | + 'PS' => __( 'Palestinian Territories', 'invoicing' ), |
|
188 | + 'PA' => __( 'Panama', 'invoicing' ), |
|
189 | + 'PG' => __( 'Papua New Guinea', 'invoicing' ), |
|
190 | + 'PY' => __( 'Paraguay', 'invoicing' ), |
|
191 | + 'PE' => __( 'Peru', 'invoicing' ), |
|
192 | + 'PH' => __( 'Philippines', 'invoicing' ), |
|
193 | + 'PN' => __( 'Pitcairn Island', 'invoicing' ), |
|
194 | + 'PL' => __( 'Poland', 'invoicing' ), |
|
195 | + 'PT' => __( 'Portugal', 'invoicing' ), |
|
196 | + 'PR' => __( 'Puerto Rico', 'invoicing' ), |
|
197 | + 'QA' => __( 'Qatar', 'invoicing' ), |
|
198 | + 'XK' => __( 'Republic of Kosovo', 'invoicing' ), |
|
199 | + 'RE' => __( 'Reunion Island', 'invoicing' ), |
|
200 | + 'RO' => __( 'Romania', 'invoicing' ), |
|
201 | + 'RU' => __( 'Russian Federation', 'invoicing' ), |
|
202 | + 'RW' => __( 'Rwanda', 'invoicing' ), |
|
203 | + 'BL' => __( 'Saint Barthélemy', 'invoicing' ), |
|
204 | + 'SH' => __( 'Saint Helena', 'invoicing' ), |
|
205 | + 'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ), |
|
206 | + 'LC' => __( 'Saint Lucia', 'invoicing' ), |
|
207 | + 'MF' => __( 'Saint Martin (French)', 'invoicing' ), |
|
208 | + 'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ), |
|
209 | + 'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ), |
|
210 | + 'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ), |
|
211 | + 'SM' => __( 'San Marino', 'invoicing' ), |
|
212 | + 'ST' => __( 'São Tomé and Príncipe', 'invoicing' ), |
|
213 | + 'SA' => __( 'Saudi Arabia', 'invoicing' ), |
|
214 | + 'SN' => __( 'Senegal', 'invoicing' ), |
|
215 | + 'RS' => __( 'Serbia', 'invoicing' ), |
|
216 | + 'SC' => __( 'Seychelles', 'invoicing' ), |
|
217 | + 'SL' => __( 'Sierra Leone', 'invoicing' ), |
|
218 | + 'SG' => __( 'Singapore', 'invoicing' ), |
|
219 | + 'SK' => __( 'Slovak Republic', 'invoicing' ), |
|
220 | + 'SI' => __( 'Slovenia', 'invoicing' ), |
|
221 | + 'SB' => __( 'Solomon Islands', 'invoicing' ), |
|
222 | + 'SO' => __( 'Somalia', 'invoicing' ), |
|
223 | + 'ZA' => __( 'South Africa', 'invoicing' ), |
|
224 | + 'GS' => __( 'South Georgia', 'invoicing' ), |
|
225 | + 'KR' => __( 'South Korea', 'invoicing' ), |
|
226 | + 'SS' => __( 'South Sudan', 'invoicing' ), |
|
227 | + 'ES' => __( 'Spain', 'invoicing' ), |
|
228 | + 'LK' => __( 'Sri Lanka', 'invoicing' ), |
|
229 | + 'SD' => __( 'Sudan', 'invoicing' ), |
|
230 | + 'SR' => __( 'Suriname', 'invoicing' ), |
|
231 | + 'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ), |
|
232 | + 'SZ' => __( 'Swaziland', 'invoicing' ), |
|
233 | + 'SE' => __( 'Sweden', 'invoicing' ), |
|
234 | + 'CH' => __( 'Switzerland', 'invoicing' ), |
|
235 | + 'SY' => __( 'Syrian Arab Republic', 'invoicing' ), |
|
236 | + 'TW' => __( 'Taiwan', 'invoicing' ), |
|
237 | + 'TJ' => __( 'Tajikistan', 'invoicing' ), |
|
238 | + 'TZ' => __( 'Tanzania', 'invoicing' ), |
|
239 | + 'TH' => __( 'Thailand', 'invoicing' ), |
|
240 | + 'TL' => __( 'Timor-Leste', 'invoicing' ), |
|
241 | + 'TG' => __( 'Togo', 'invoicing' ), |
|
242 | + 'TK' => __( 'Tokelau', 'invoicing' ), |
|
243 | + 'TO' => __( 'Tonga', 'invoicing' ), |
|
244 | + 'TT' => __( 'Trinidad and Tobago', 'invoicing' ), |
|
245 | + 'TN' => __( 'Tunisia', 'invoicing' ), |
|
246 | + 'TR' => __( 'Turkey', 'invoicing' ), |
|
247 | + 'TM' => __( 'Turkmenistan', 'invoicing' ), |
|
248 | + 'TC' => __( 'Turks and Caicos Islands', 'invoicing' ), |
|
249 | + 'TV' => __( 'Tuvalu', 'invoicing' ), |
|
250 | + 'UG' => __( 'Uganda', 'invoicing' ), |
|
251 | + 'UA' => __( 'Ukraine', 'invoicing' ), |
|
252 | + 'AE' => __( 'United Arab Emirates', 'invoicing' ), |
|
253 | + 'UY' => __( 'Uruguay', 'invoicing' ), |
|
254 | + 'UM' => __( 'US Minor Outlying Islands', 'invoicing' ), |
|
255 | + 'UZ' => __( 'Uzbekistan', 'invoicing' ), |
|
256 | + 'VU' => __( 'Vanuatu', 'invoicing' ), |
|
257 | + 'VE' => __( 'Venezuela', 'invoicing' ), |
|
258 | + 'VN' => __( 'Vietnam', 'invoicing' ), |
|
259 | + 'VG' => __( 'Virgin Islands (British)', 'invoicing' ), |
|
260 | + 'VI' => __( 'Virgin Islands (USA)', 'invoicing' ), |
|
261 | + 'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ), |
|
262 | + 'EH' => __( 'Western Sahara', 'invoicing' ), |
|
263 | + 'WS' => __( 'Western Samoa', 'invoicing' ), |
|
264 | + 'YE' => __( 'Yemen', 'invoicing' ), |
|
265 | + 'ZM' => __( 'Zambia', 'invoicing' ), |
|
266 | + 'ZW' => __( 'Zimbabwe', 'invoicing' ), |
|
267 | 267 | ); |
@@ -9,259 +9,259 @@ |
||
9 | 9 | * @version 1.0.14 |
10 | 10 | */ |
11 | 11 | |
12 | -defined( 'ABSPATH' ) || exit; |
|
12 | +defined('ABSPATH') || exit; |
|
13 | 13 | |
14 | 14 | return array( |
15 | - 'US' => __( 'United States', 'invoicing' ), |
|
16 | - 'CA' => __( 'Canada', 'invoicing' ), |
|
17 | - 'GB' => __( 'United Kingdom', 'invoicing' ), |
|
18 | - 'AF' => __( 'Afghanistan', 'invoicing' ), |
|
19 | - 'AX' => __( 'Aland Islands', 'invoicing' ), |
|
20 | - 'AL' => __( 'Albania', 'invoicing' ), |
|
21 | - 'DZ' => __( 'Algeria', 'invoicing' ), |
|
22 | - 'AS' => __( 'American Samoa', 'invoicing' ), |
|
23 | - 'AD' => __( 'Andorra', 'invoicing' ), |
|
24 | - 'AO' => __( 'Angola', 'invoicing' ), |
|
25 | - 'AI' => __( 'Anguilla', 'invoicing' ), |
|
26 | - 'AQ' => __( 'Antarctica', 'invoicing' ), |
|
27 | - 'AG' => __( 'Antigua and Barbuda', 'invoicing' ), |
|
28 | - 'AR' => __( 'Argentina', 'invoicing' ), |
|
29 | - 'AM' => __( 'Armenia', 'invoicing' ), |
|
30 | - 'AW' => __( 'Aruba', 'invoicing' ), |
|
31 | - 'AU' => __( 'Australia', 'invoicing' ), |
|
32 | - 'AT' => __( 'Austria', 'invoicing' ), |
|
33 | - 'AZ' => __( 'Azerbaijan', 'invoicing' ), |
|
34 | - 'BS' => __( 'Bahamas', 'invoicing' ), |
|
35 | - 'BH' => __( 'Bahrain', 'invoicing' ), |
|
36 | - 'BD' => __( 'Bangladesh', 'invoicing' ), |
|
37 | - 'BB' => __( 'Barbados', 'invoicing' ), |
|
38 | - 'BY' => __( 'Belarus', 'invoicing' ), |
|
39 | - 'BE' => __( 'Belgium', 'invoicing' ), |
|
40 | - 'BZ' => __( 'Belize', 'invoicing' ), |
|
41 | - 'BJ' => __( 'Benin', 'invoicing' ), |
|
42 | - 'BM' => __( 'Bermuda', 'invoicing' ), |
|
43 | - 'BT' => __( 'Bhutan', 'invoicing' ), |
|
44 | - 'BO' => __( 'Bolivia', 'invoicing' ), |
|
45 | - 'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ), |
|
46 | - 'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ), |
|
47 | - 'BW' => __( 'Botswana', 'invoicing' ), |
|
48 | - 'BV' => __( 'Bouvet Island', 'invoicing' ), |
|
49 | - 'BR' => __( 'Brazil', 'invoicing' ), |
|
50 | - 'IO' => __( 'British Indian Ocean Territory', 'invoicing' ), |
|
51 | - 'BN' => __( 'Brunei Darrussalam', 'invoicing' ), |
|
52 | - 'BG' => __( 'Bulgaria', 'invoicing' ), |
|
53 | - 'BF' => __( 'Burkina Faso', 'invoicing' ), |
|
54 | - 'BI' => __( 'Burundi', 'invoicing' ), |
|
55 | - 'KH' => __( 'Cambodia', 'invoicing' ), |
|
56 | - 'CM' => __( 'Cameroon', 'invoicing' ), |
|
57 | - 'CV' => __( 'Cape Verde', 'invoicing' ), |
|
58 | - 'KY' => __( 'Cayman Islands', 'invoicing' ), |
|
59 | - 'CF' => __( 'Central African Republic', 'invoicing' ), |
|
60 | - 'TD' => __( 'Chad', 'invoicing' ), |
|
61 | - 'CL' => __( 'Chile', 'invoicing' ), |
|
62 | - 'CN' => __( 'China', 'invoicing' ), |
|
63 | - 'CX' => __( 'Christmas Island', 'invoicing' ), |
|
64 | - 'CC' => __( 'Cocos Islands', 'invoicing' ), |
|
65 | - 'CO' => __( 'Colombia', 'invoicing' ), |
|
66 | - 'KM' => __( 'Comoros', 'invoicing' ), |
|
67 | - 'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ), |
|
68 | - 'CG' => __( 'Congo, Republic of', 'invoicing' ), |
|
69 | - 'CK' => __( 'Cook Islands', 'invoicing' ), |
|
70 | - 'CR' => __( 'Costa Rica', 'invoicing' ), |
|
71 | - 'CI' => __( 'Cote d\'Ivoire', 'invoicing' ), |
|
72 | - 'HR' => __( 'Croatia/Hrvatska', 'invoicing' ), |
|
73 | - 'CU' => __( 'Cuba', 'invoicing' ), |
|
74 | - 'CW' => __( 'CuraÇao', 'invoicing' ), |
|
75 | - 'CY' => __( 'Cyprus', 'invoicing' ), |
|
76 | - 'CZ' => __( 'Czech Republic', 'invoicing' ), |
|
77 | - 'DK' => __( 'Denmark', 'invoicing' ), |
|
78 | - 'DJ' => __( 'Djibouti', 'invoicing' ), |
|
79 | - 'DM' => __( 'Dominica', 'invoicing' ), |
|
80 | - 'DO' => __( 'Dominican Republic', 'invoicing' ), |
|
81 | - 'TP' => __( 'East Timor', 'invoicing' ), |
|
82 | - 'EC' => __( 'Ecuador', 'invoicing' ), |
|
83 | - 'EG' => __( 'Egypt', 'invoicing' ), |
|
84 | - 'GQ' => __( 'Equatorial Guinea', 'invoicing' ), |
|
85 | - 'SV' => __( 'El Salvador', 'invoicing' ), |
|
86 | - 'ER' => __( 'Eritrea', 'invoicing' ), |
|
87 | - 'EE' => __( 'Estonia', 'invoicing' ), |
|
88 | - 'ET' => __( 'Ethiopia', 'invoicing' ), |
|
89 | - 'FK' => __( 'Falkland Islands', 'invoicing' ), |
|
90 | - 'FO' => __( 'Faroe Islands', 'invoicing' ), |
|
91 | - 'FJ' => __( 'Fiji', 'invoicing' ), |
|
92 | - 'FI' => __( 'Finland', 'invoicing' ), |
|
93 | - 'FR' => __( 'France', 'invoicing' ), |
|
94 | - 'GF' => __( 'French Guiana', 'invoicing' ), |
|
95 | - 'PF' => __( 'French Polynesia', 'invoicing' ), |
|
96 | - 'TF' => __( 'French Southern Territories', 'invoicing' ), |
|
97 | - 'GA' => __( 'Gabon', 'invoicing' ), |
|
98 | - 'GM' => __( 'Gambia', 'invoicing' ), |
|
99 | - 'GE' => __( 'Georgia', 'invoicing' ), |
|
100 | - 'DE' => __( 'Germany', 'invoicing' ), |
|
101 | - 'GR' => __( 'Greece', 'invoicing' ), |
|
102 | - 'GH' => __( 'Ghana', 'invoicing' ), |
|
103 | - 'GI' => __( 'Gibraltar', 'invoicing' ), |
|
104 | - 'GL' => __( 'Greenland', 'invoicing' ), |
|
105 | - 'GD' => __( 'Grenada', 'invoicing' ), |
|
106 | - 'GP' => __( 'Guadeloupe', 'invoicing' ), |
|
107 | - 'GU' => __( 'Guam', 'invoicing' ), |
|
108 | - 'GT' => __( 'Guatemala', 'invoicing' ), |
|
109 | - 'GG' => __( 'Guernsey', 'invoicing' ), |
|
110 | - 'GN' => __( 'Guinea', 'invoicing' ), |
|
111 | - 'GW' => __( 'Guinea-Bissau', 'invoicing' ), |
|
112 | - 'GY' => __( 'Guyana', 'invoicing' ), |
|
113 | - 'HT' => __( 'Haiti', 'invoicing' ), |
|
114 | - 'HM' => __( 'Heard and McDonald Islands', 'invoicing' ), |
|
115 | - 'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ), |
|
116 | - 'HN' => __( 'Honduras', 'invoicing' ), |
|
117 | - 'HK' => __( 'Hong Kong', 'invoicing' ), |
|
118 | - 'HU' => __( 'Hungary', 'invoicing' ), |
|
119 | - 'IS' => __( 'Iceland', 'invoicing' ), |
|
120 | - 'IN' => __( 'India', 'invoicing' ), |
|
121 | - 'ID' => __( 'Indonesia', 'invoicing' ), |
|
122 | - 'IR' => __( 'Iran', 'invoicing' ), |
|
123 | - 'IQ' => __( 'Iraq', 'invoicing' ), |
|
124 | - 'IE' => __( 'Ireland', 'invoicing' ), |
|
125 | - 'IM' => __( 'Isle of Man', 'invoicing' ), |
|
126 | - 'IL' => __( 'Israel', 'invoicing' ), |
|
127 | - 'IT' => __( 'Italy', 'invoicing' ), |
|
128 | - 'JM' => __( 'Jamaica', 'invoicing' ), |
|
129 | - 'JP' => __( 'Japan', 'invoicing' ), |
|
130 | - 'JE' => __( 'Jersey', 'invoicing' ), |
|
131 | - 'JO' => __( 'Jordan', 'invoicing' ), |
|
132 | - 'KZ' => __( 'Kazakhstan', 'invoicing' ), |
|
133 | - 'KE' => __( 'Kenya', 'invoicing' ), |
|
134 | - 'KI' => __( 'Kiribati', 'invoicing' ), |
|
135 | - 'KW' => __( 'Kuwait', 'invoicing' ), |
|
136 | - 'KG' => __( 'Kyrgyzstan', 'invoicing' ), |
|
137 | - 'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ), |
|
138 | - 'LV' => __( 'Latvia', 'invoicing' ), |
|
139 | - 'LB' => __( 'Lebanon', 'invoicing' ), |
|
140 | - 'LS' => __( 'Lesotho', 'invoicing' ), |
|
141 | - 'LR' => __( 'Liberia', 'invoicing' ), |
|
142 | - 'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ), |
|
143 | - 'LI' => __( 'Liechtenstein', 'invoicing' ), |
|
144 | - 'LT' => __( 'Lithuania', 'invoicing' ), |
|
145 | - 'LU' => __( 'Luxembourg', 'invoicing' ), |
|
146 | - 'MO' => __( 'Macau', 'invoicing' ), |
|
147 | - 'MK' => __( 'Macedonia', 'invoicing' ), |
|
148 | - 'MG' => __( 'Madagascar', 'invoicing' ), |
|
149 | - 'MW' => __( 'Malawi', 'invoicing' ), |
|
150 | - 'MY' => __( 'Malaysia', 'invoicing' ), |
|
151 | - 'MV' => __( 'Maldives', 'invoicing' ), |
|
152 | - 'ML' => __( 'Mali', 'invoicing' ), |
|
153 | - 'MT' => __( 'Malta', 'invoicing' ), |
|
154 | - 'MH' => __( 'Marshall Islands', 'invoicing' ), |
|
155 | - 'MQ' => __( 'Martinique', 'invoicing' ), |
|
156 | - 'MR' => __( 'Mauritania', 'invoicing' ), |
|
157 | - 'MU' => __( 'Mauritius', 'invoicing' ), |
|
158 | - 'YT' => __( 'Mayotte', 'invoicing' ), |
|
159 | - 'MX' => __( 'Mexico', 'invoicing' ), |
|
160 | - 'FM' => __( 'Micronesia', 'invoicing' ), |
|
161 | - 'MD' => __( 'Moldova, Republic of', 'invoicing' ), |
|
162 | - 'MC' => __( 'Monaco', 'invoicing' ), |
|
163 | - 'MN' => __( 'Mongolia', 'invoicing' ), |
|
164 | - 'ME' => __( 'Montenegro', 'invoicing' ), |
|
165 | - 'MS' => __( 'Montserrat', 'invoicing' ), |
|
166 | - 'MA' => __( 'Morocco', 'invoicing' ), |
|
167 | - 'MZ' => __( 'Mozambique', 'invoicing' ), |
|
168 | - 'MM' => __( 'Myanmar', 'invoicing' ), |
|
169 | - 'NA' => __( 'Namibia', 'invoicing' ), |
|
170 | - 'NR' => __( 'Nauru', 'invoicing' ), |
|
171 | - 'NP' => __( 'Nepal', 'invoicing' ), |
|
172 | - 'NL' => __( 'Netherlands', 'invoicing' ), |
|
173 | - 'AN' => __( 'Netherlands Antilles', 'invoicing' ), |
|
174 | - 'NC' => __( 'New Caledonia', 'invoicing' ), |
|
175 | - 'NZ' => __( 'New Zealand', 'invoicing' ), |
|
176 | - 'NI' => __( 'Nicaragua', 'invoicing' ), |
|
177 | - 'NE' => __( 'Niger', 'invoicing' ), |
|
178 | - 'NG' => __( 'Nigeria', 'invoicing' ), |
|
179 | - 'NU' => __( 'Niue', 'invoicing' ), |
|
180 | - 'NF' => __( 'Norfolk Island', 'invoicing' ), |
|
181 | - 'KP' => __( 'North Korea', 'invoicing' ), |
|
182 | - 'MP' => __( 'Northern Mariana Islands', 'invoicing' ), |
|
183 | - 'NO' => __( 'Norway', 'invoicing' ), |
|
184 | - 'OM' => __( 'Oman', 'invoicing' ), |
|
185 | - 'PK' => __( 'Pakistan', 'invoicing' ), |
|
186 | - 'PW' => __( 'Palau', 'invoicing' ), |
|
187 | - 'PS' => __( 'Palestinian Territories', 'invoicing' ), |
|
188 | - 'PA' => __( 'Panama', 'invoicing' ), |
|
189 | - 'PG' => __( 'Papua New Guinea', 'invoicing' ), |
|
190 | - 'PY' => __( 'Paraguay', 'invoicing' ), |
|
191 | - 'PE' => __( 'Peru', 'invoicing' ), |
|
192 | - 'PH' => __( 'Philippines', 'invoicing' ), |
|
193 | - 'PN' => __( 'Pitcairn Island', 'invoicing' ), |
|
194 | - 'PL' => __( 'Poland', 'invoicing' ), |
|
195 | - 'PT' => __( 'Portugal', 'invoicing' ), |
|
196 | - 'PR' => __( 'Puerto Rico', 'invoicing' ), |
|
197 | - 'QA' => __( 'Qatar', 'invoicing' ), |
|
198 | - 'XK' => __( 'Republic of Kosovo', 'invoicing' ), |
|
199 | - 'RE' => __( 'Reunion Island', 'invoicing' ), |
|
200 | - 'RO' => __( 'Romania', 'invoicing' ), |
|
201 | - 'RU' => __( 'Russian Federation', 'invoicing' ), |
|
202 | - 'RW' => __( 'Rwanda', 'invoicing' ), |
|
203 | - 'BL' => __( 'Saint Barthélemy', 'invoicing' ), |
|
204 | - 'SH' => __( 'Saint Helena', 'invoicing' ), |
|
205 | - 'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ), |
|
206 | - 'LC' => __( 'Saint Lucia', 'invoicing' ), |
|
207 | - 'MF' => __( 'Saint Martin (French)', 'invoicing' ), |
|
208 | - 'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ), |
|
209 | - 'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ), |
|
210 | - 'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ), |
|
211 | - 'SM' => __( 'San Marino', 'invoicing' ), |
|
212 | - 'ST' => __( 'São Tomé and Príncipe', 'invoicing' ), |
|
213 | - 'SA' => __( 'Saudi Arabia', 'invoicing' ), |
|
214 | - 'SN' => __( 'Senegal', 'invoicing' ), |
|
215 | - 'RS' => __( 'Serbia', 'invoicing' ), |
|
216 | - 'SC' => __( 'Seychelles', 'invoicing' ), |
|
217 | - 'SL' => __( 'Sierra Leone', 'invoicing' ), |
|
218 | - 'SG' => __( 'Singapore', 'invoicing' ), |
|
219 | - 'SK' => __( 'Slovak Republic', 'invoicing' ), |
|
220 | - 'SI' => __( 'Slovenia', 'invoicing' ), |
|
221 | - 'SB' => __( 'Solomon Islands', 'invoicing' ), |
|
222 | - 'SO' => __( 'Somalia', 'invoicing' ), |
|
223 | - 'ZA' => __( 'South Africa', 'invoicing' ), |
|
224 | - 'GS' => __( 'South Georgia', 'invoicing' ), |
|
225 | - 'KR' => __( 'South Korea', 'invoicing' ), |
|
226 | - 'SS' => __( 'South Sudan', 'invoicing' ), |
|
227 | - 'ES' => __( 'Spain', 'invoicing' ), |
|
228 | - 'LK' => __( 'Sri Lanka', 'invoicing' ), |
|
229 | - 'SD' => __( 'Sudan', 'invoicing' ), |
|
230 | - 'SR' => __( 'Suriname', 'invoicing' ), |
|
231 | - 'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ), |
|
232 | - 'SZ' => __( 'Swaziland', 'invoicing' ), |
|
233 | - 'SE' => __( 'Sweden', 'invoicing' ), |
|
234 | - 'CH' => __( 'Switzerland', 'invoicing' ), |
|
235 | - 'SY' => __( 'Syrian Arab Republic', 'invoicing' ), |
|
236 | - 'TW' => __( 'Taiwan', 'invoicing' ), |
|
237 | - 'TJ' => __( 'Tajikistan', 'invoicing' ), |
|
238 | - 'TZ' => __( 'Tanzania', 'invoicing' ), |
|
239 | - 'TH' => __( 'Thailand', 'invoicing' ), |
|
240 | - 'TL' => __( 'Timor-Leste', 'invoicing' ), |
|
241 | - 'TG' => __( 'Togo', 'invoicing' ), |
|
242 | - 'TK' => __( 'Tokelau', 'invoicing' ), |
|
243 | - 'TO' => __( 'Tonga', 'invoicing' ), |
|
244 | - 'TT' => __( 'Trinidad and Tobago', 'invoicing' ), |
|
245 | - 'TN' => __( 'Tunisia', 'invoicing' ), |
|
246 | - 'TR' => __( 'Turkey', 'invoicing' ), |
|
247 | - 'TM' => __( 'Turkmenistan', 'invoicing' ), |
|
248 | - 'TC' => __( 'Turks and Caicos Islands', 'invoicing' ), |
|
249 | - 'TV' => __( 'Tuvalu', 'invoicing' ), |
|
250 | - 'UG' => __( 'Uganda', 'invoicing' ), |
|
251 | - 'UA' => __( 'Ukraine', 'invoicing' ), |
|
252 | - 'AE' => __( 'United Arab Emirates', 'invoicing' ), |
|
253 | - 'UY' => __( 'Uruguay', 'invoicing' ), |
|
254 | - 'UM' => __( 'US Minor Outlying Islands', 'invoicing' ), |
|
255 | - 'UZ' => __( 'Uzbekistan', 'invoicing' ), |
|
256 | - 'VU' => __( 'Vanuatu', 'invoicing' ), |
|
257 | - 'VE' => __( 'Venezuela', 'invoicing' ), |
|
258 | - 'VN' => __( 'Vietnam', 'invoicing' ), |
|
259 | - 'VG' => __( 'Virgin Islands (British)', 'invoicing' ), |
|
260 | - 'VI' => __( 'Virgin Islands (USA)', 'invoicing' ), |
|
261 | - 'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ), |
|
262 | - 'EH' => __( 'Western Sahara', 'invoicing' ), |
|
263 | - 'WS' => __( 'Western Samoa', 'invoicing' ), |
|
264 | - 'YE' => __( 'Yemen', 'invoicing' ), |
|
265 | - 'ZM' => __( 'Zambia', 'invoicing' ), |
|
266 | - 'ZW' => __( 'Zimbabwe', 'invoicing' ), |
|
15 | + 'US' => __('United States', 'invoicing'), |
|
16 | + 'CA' => __('Canada', 'invoicing'), |
|
17 | + 'GB' => __('United Kingdom', 'invoicing'), |
|
18 | + 'AF' => __('Afghanistan', 'invoicing'), |
|
19 | + 'AX' => __('Aland Islands', 'invoicing'), |
|
20 | + 'AL' => __('Albania', 'invoicing'), |
|
21 | + 'DZ' => __('Algeria', 'invoicing'), |
|
22 | + 'AS' => __('American Samoa', 'invoicing'), |
|
23 | + 'AD' => __('Andorra', 'invoicing'), |
|
24 | + 'AO' => __('Angola', 'invoicing'), |
|
25 | + 'AI' => __('Anguilla', 'invoicing'), |
|
26 | + 'AQ' => __('Antarctica', 'invoicing'), |
|
27 | + 'AG' => __('Antigua and Barbuda', 'invoicing'), |
|
28 | + 'AR' => __('Argentina', 'invoicing'), |
|
29 | + 'AM' => __('Armenia', 'invoicing'), |
|
30 | + 'AW' => __('Aruba', 'invoicing'), |
|
31 | + 'AU' => __('Australia', 'invoicing'), |
|
32 | + 'AT' => __('Austria', 'invoicing'), |
|
33 | + 'AZ' => __('Azerbaijan', 'invoicing'), |
|
34 | + 'BS' => __('Bahamas', 'invoicing'), |
|
35 | + 'BH' => __('Bahrain', 'invoicing'), |
|
36 | + 'BD' => __('Bangladesh', 'invoicing'), |
|
37 | + 'BB' => __('Barbados', 'invoicing'), |
|
38 | + 'BY' => __('Belarus', 'invoicing'), |
|
39 | + 'BE' => __('Belgium', 'invoicing'), |
|
40 | + 'BZ' => __('Belize', 'invoicing'), |
|
41 | + 'BJ' => __('Benin', 'invoicing'), |
|
42 | + 'BM' => __('Bermuda', 'invoicing'), |
|
43 | + 'BT' => __('Bhutan', 'invoicing'), |
|
44 | + 'BO' => __('Bolivia', 'invoicing'), |
|
45 | + 'BQ' => __('Bonaire, Saint Eustatius and Saba', 'invoicing'), |
|
46 | + 'BA' => __('Bosnia and Herzegovina', 'invoicing'), |
|
47 | + 'BW' => __('Botswana', 'invoicing'), |
|
48 | + 'BV' => __('Bouvet Island', 'invoicing'), |
|
49 | + 'BR' => __('Brazil', 'invoicing'), |
|
50 | + 'IO' => __('British Indian Ocean Territory', 'invoicing'), |
|
51 | + 'BN' => __('Brunei Darrussalam', 'invoicing'), |
|
52 | + 'BG' => __('Bulgaria', 'invoicing'), |
|
53 | + 'BF' => __('Burkina Faso', 'invoicing'), |
|
54 | + 'BI' => __('Burundi', 'invoicing'), |
|
55 | + 'KH' => __('Cambodia', 'invoicing'), |
|
56 | + 'CM' => __('Cameroon', 'invoicing'), |
|
57 | + 'CV' => __('Cape Verde', 'invoicing'), |
|
58 | + 'KY' => __('Cayman Islands', 'invoicing'), |
|
59 | + 'CF' => __('Central African Republic', 'invoicing'), |
|
60 | + 'TD' => __('Chad', 'invoicing'), |
|
61 | + 'CL' => __('Chile', 'invoicing'), |
|
62 | + 'CN' => __('China', 'invoicing'), |
|
63 | + 'CX' => __('Christmas Island', 'invoicing'), |
|
64 | + 'CC' => __('Cocos Islands', 'invoicing'), |
|
65 | + 'CO' => __('Colombia', 'invoicing'), |
|
66 | + 'KM' => __('Comoros', 'invoicing'), |
|
67 | + 'CD' => __('Congo, Democratic People\'s Republic', 'invoicing'), |
|
68 | + 'CG' => __('Congo, Republic of', 'invoicing'), |
|
69 | + 'CK' => __('Cook Islands', 'invoicing'), |
|
70 | + 'CR' => __('Costa Rica', 'invoicing'), |
|
71 | + 'CI' => __('Cote d\'Ivoire', 'invoicing'), |
|
72 | + 'HR' => __('Croatia/Hrvatska', 'invoicing'), |
|
73 | + 'CU' => __('Cuba', 'invoicing'), |
|
74 | + 'CW' => __('CuraÇao', 'invoicing'), |
|
75 | + 'CY' => __('Cyprus', 'invoicing'), |
|
76 | + 'CZ' => __('Czech Republic', 'invoicing'), |
|
77 | + 'DK' => __('Denmark', 'invoicing'), |
|
78 | + 'DJ' => __('Djibouti', 'invoicing'), |
|
79 | + 'DM' => __('Dominica', 'invoicing'), |
|
80 | + 'DO' => __('Dominican Republic', 'invoicing'), |
|
81 | + 'TP' => __('East Timor', 'invoicing'), |
|
82 | + 'EC' => __('Ecuador', 'invoicing'), |
|
83 | + 'EG' => __('Egypt', 'invoicing'), |
|
84 | + 'GQ' => __('Equatorial Guinea', 'invoicing'), |
|
85 | + 'SV' => __('El Salvador', 'invoicing'), |
|
86 | + 'ER' => __('Eritrea', 'invoicing'), |
|
87 | + 'EE' => __('Estonia', 'invoicing'), |
|
88 | + 'ET' => __('Ethiopia', 'invoicing'), |
|
89 | + 'FK' => __('Falkland Islands', 'invoicing'), |
|
90 | + 'FO' => __('Faroe Islands', 'invoicing'), |
|
91 | + 'FJ' => __('Fiji', 'invoicing'), |
|
92 | + 'FI' => __('Finland', 'invoicing'), |
|
93 | + 'FR' => __('France', 'invoicing'), |
|
94 | + 'GF' => __('French Guiana', 'invoicing'), |
|
95 | + 'PF' => __('French Polynesia', 'invoicing'), |
|
96 | + 'TF' => __('French Southern Territories', 'invoicing'), |
|
97 | + 'GA' => __('Gabon', 'invoicing'), |
|
98 | + 'GM' => __('Gambia', 'invoicing'), |
|
99 | + 'GE' => __('Georgia', 'invoicing'), |
|
100 | + 'DE' => __('Germany', 'invoicing'), |
|
101 | + 'GR' => __('Greece', 'invoicing'), |
|
102 | + 'GH' => __('Ghana', 'invoicing'), |
|
103 | + 'GI' => __('Gibraltar', 'invoicing'), |
|
104 | + 'GL' => __('Greenland', 'invoicing'), |
|
105 | + 'GD' => __('Grenada', 'invoicing'), |
|
106 | + 'GP' => __('Guadeloupe', 'invoicing'), |
|
107 | + 'GU' => __('Guam', 'invoicing'), |
|
108 | + 'GT' => __('Guatemala', 'invoicing'), |
|
109 | + 'GG' => __('Guernsey', 'invoicing'), |
|
110 | + 'GN' => __('Guinea', 'invoicing'), |
|
111 | + 'GW' => __('Guinea-Bissau', 'invoicing'), |
|
112 | + 'GY' => __('Guyana', 'invoicing'), |
|
113 | + 'HT' => __('Haiti', 'invoicing'), |
|
114 | + 'HM' => __('Heard and McDonald Islands', 'invoicing'), |
|
115 | + 'VA' => __('Holy See (City Vatican State)', 'invoicing'), |
|
116 | + 'HN' => __('Honduras', 'invoicing'), |
|
117 | + 'HK' => __('Hong Kong', 'invoicing'), |
|
118 | + 'HU' => __('Hungary', 'invoicing'), |
|
119 | + 'IS' => __('Iceland', 'invoicing'), |
|
120 | + 'IN' => __('India', 'invoicing'), |
|
121 | + 'ID' => __('Indonesia', 'invoicing'), |
|
122 | + 'IR' => __('Iran', 'invoicing'), |
|
123 | + 'IQ' => __('Iraq', 'invoicing'), |
|
124 | + 'IE' => __('Ireland', 'invoicing'), |
|
125 | + 'IM' => __('Isle of Man', 'invoicing'), |
|
126 | + 'IL' => __('Israel', 'invoicing'), |
|
127 | + 'IT' => __('Italy', 'invoicing'), |
|
128 | + 'JM' => __('Jamaica', 'invoicing'), |
|
129 | + 'JP' => __('Japan', 'invoicing'), |
|
130 | + 'JE' => __('Jersey', 'invoicing'), |
|
131 | + 'JO' => __('Jordan', 'invoicing'), |
|
132 | + 'KZ' => __('Kazakhstan', 'invoicing'), |
|
133 | + 'KE' => __('Kenya', 'invoicing'), |
|
134 | + 'KI' => __('Kiribati', 'invoicing'), |
|
135 | + 'KW' => __('Kuwait', 'invoicing'), |
|
136 | + 'KG' => __('Kyrgyzstan', 'invoicing'), |
|
137 | + 'LA' => __('Lao People\'s Democratic Republic', 'invoicing'), |
|
138 | + 'LV' => __('Latvia', 'invoicing'), |
|
139 | + 'LB' => __('Lebanon', 'invoicing'), |
|
140 | + 'LS' => __('Lesotho', 'invoicing'), |
|
141 | + 'LR' => __('Liberia', 'invoicing'), |
|
142 | + 'LY' => __('Libyan Arab Jamahiriya', 'invoicing'), |
|
143 | + 'LI' => __('Liechtenstein', 'invoicing'), |
|
144 | + 'LT' => __('Lithuania', 'invoicing'), |
|
145 | + 'LU' => __('Luxembourg', 'invoicing'), |
|
146 | + 'MO' => __('Macau', 'invoicing'), |
|
147 | + 'MK' => __('Macedonia', 'invoicing'), |
|
148 | + 'MG' => __('Madagascar', 'invoicing'), |
|
149 | + 'MW' => __('Malawi', 'invoicing'), |
|
150 | + 'MY' => __('Malaysia', 'invoicing'), |
|
151 | + 'MV' => __('Maldives', 'invoicing'), |
|
152 | + 'ML' => __('Mali', 'invoicing'), |
|
153 | + 'MT' => __('Malta', 'invoicing'), |
|
154 | + 'MH' => __('Marshall Islands', 'invoicing'), |
|
155 | + 'MQ' => __('Martinique', 'invoicing'), |
|
156 | + 'MR' => __('Mauritania', 'invoicing'), |
|
157 | + 'MU' => __('Mauritius', 'invoicing'), |
|
158 | + 'YT' => __('Mayotte', 'invoicing'), |
|
159 | + 'MX' => __('Mexico', 'invoicing'), |
|
160 | + 'FM' => __('Micronesia', 'invoicing'), |
|
161 | + 'MD' => __('Moldova, Republic of', 'invoicing'), |
|
162 | + 'MC' => __('Monaco', 'invoicing'), |
|
163 | + 'MN' => __('Mongolia', 'invoicing'), |
|
164 | + 'ME' => __('Montenegro', 'invoicing'), |
|
165 | + 'MS' => __('Montserrat', 'invoicing'), |
|
166 | + 'MA' => __('Morocco', 'invoicing'), |
|
167 | + 'MZ' => __('Mozambique', 'invoicing'), |
|
168 | + 'MM' => __('Myanmar', 'invoicing'), |
|
169 | + 'NA' => __('Namibia', 'invoicing'), |
|
170 | + 'NR' => __('Nauru', 'invoicing'), |
|
171 | + 'NP' => __('Nepal', 'invoicing'), |
|
172 | + 'NL' => __('Netherlands', 'invoicing'), |
|
173 | + 'AN' => __('Netherlands Antilles', 'invoicing'), |
|
174 | + 'NC' => __('New Caledonia', 'invoicing'), |
|
175 | + 'NZ' => __('New Zealand', 'invoicing'), |
|
176 | + 'NI' => __('Nicaragua', 'invoicing'), |
|
177 | + 'NE' => __('Niger', 'invoicing'), |
|
178 | + 'NG' => __('Nigeria', 'invoicing'), |
|
179 | + 'NU' => __('Niue', 'invoicing'), |
|
180 | + 'NF' => __('Norfolk Island', 'invoicing'), |
|
181 | + 'KP' => __('North Korea', 'invoicing'), |
|
182 | + 'MP' => __('Northern Mariana Islands', 'invoicing'), |
|
183 | + 'NO' => __('Norway', 'invoicing'), |
|
184 | + 'OM' => __('Oman', 'invoicing'), |
|
185 | + 'PK' => __('Pakistan', 'invoicing'), |
|
186 | + 'PW' => __('Palau', 'invoicing'), |
|
187 | + 'PS' => __('Palestinian Territories', 'invoicing'), |
|
188 | + 'PA' => __('Panama', 'invoicing'), |
|
189 | + 'PG' => __('Papua New Guinea', 'invoicing'), |
|
190 | + 'PY' => __('Paraguay', 'invoicing'), |
|
191 | + 'PE' => __('Peru', 'invoicing'), |
|
192 | + 'PH' => __('Philippines', 'invoicing'), |
|
193 | + 'PN' => __('Pitcairn Island', 'invoicing'), |
|
194 | + 'PL' => __('Poland', 'invoicing'), |
|
195 | + 'PT' => __('Portugal', 'invoicing'), |
|
196 | + 'PR' => __('Puerto Rico', 'invoicing'), |
|
197 | + 'QA' => __('Qatar', 'invoicing'), |
|
198 | + 'XK' => __('Republic of Kosovo', 'invoicing'), |
|
199 | + 'RE' => __('Reunion Island', 'invoicing'), |
|
200 | + 'RO' => __('Romania', 'invoicing'), |
|
201 | + 'RU' => __('Russian Federation', 'invoicing'), |
|
202 | + 'RW' => __('Rwanda', 'invoicing'), |
|
203 | + 'BL' => __('Saint Barthélemy', 'invoicing'), |
|
204 | + 'SH' => __('Saint Helena', 'invoicing'), |
|
205 | + 'KN' => __('Saint Kitts and Nevis', 'invoicing'), |
|
206 | + 'LC' => __('Saint Lucia', 'invoicing'), |
|
207 | + 'MF' => __('Saint Martin (French)', 'invoicing'), |
|
208 | + 'SX' => __('Saint Martin (Dutch)', 'invoicing'), |
|
209 | + 'PM' => __('Saint Pierre and Miquelon', 'invoicing'), |
|
210 | + 'VC' => __('Saint Vincent and the Grenadines', 'invoicing'), |
|
211 | + 'SM' => __('San Marino', 'invoicing'), |
|
212 | + 'ST' => __('São Tomé and Príncipe', 'invoicing'), |
|
213 | + 'SA' => __('Saudi Arabia', 'invoicing'), |
|
214 | + 'SN' => __('Senegal', 'invoicing'), |
|
215 | + 'RS' => __('Serbia', 'invoicing'), |
|
216 | + 'SC' => __('Seychelles', 'invoicing'), |
|
217 | + 'SL' => __('Sierra Leone', 'invoicing'), |
|
218 | + 'SG' => __('Singapore', 'invoicing'), |
|
219 | + 'SK' => __('Slovak Republic', 'invoicing'), |
|
220 | + 'SI' => __('Slovenia', 'invoicing'), |
|
221 | + 'SB' => __('Solomon Islands', 'invoicing'), |
|
222 | + 'SO' => __('Somalia', 'invoicing'), |
|
223 | + 'ZA' => __('South Africa', 'invoicing'), |
|
224 | + 'GS' => __('South Georgia', 'invoicing'), |
|
225 | + 'KR' => __('South Korea', 'invoicing'), |
|
226 | + 'SS' => __('South Sudan', 'invoicing'), |
|
227 | + 'ES' => __('Spain', 'invoicing'), |
|
228 | + 'LK' => __('Sri Lanka', 'invoicing'), |
|
229 | + 'SD' => __('Sudan', 'invoicing'), |
|
230 | + 'SR' => __('Suriname', 'invoicing'), |
|
231 | + 'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'), |
|
232 | + 'SZ' => __('Swaziland', 'invoicing'), |
|
233 | + 'SE' => __('Sweden', 'invoicing'), |
|
234 | + 'CH' => __('Switzerland', 'invoicing'), |
|
235 | + 'SY' => __('Syrian Arab Republic', 'invoicing'), |
|
236 | + 'TW' => __('Taiwan', 'invoicing'), |
|
237 | + 'TJ' => __('Tajikistan', 'invoicing'), |
|
238 | + 'TZ' => __('Tanzania', 'invoicing'), |
|
239 | + 'TH' => __('Thailand', 'invoicing'), |
|
240 | + 'TL' => __('Timor-Leste', 'invoicing'), |
|
241 | + 'TG' => __('Togo', 'invoicing'), |
|
242 | + 'TK' => __('Tokelau', 'invoicing'), |
|
243 | + 'TO' => __('Tonga', 'invoicing'), |
|
244 | + 'TT' => __('Trinidad and Tobago', 'invoicing'), |
|
245 | + 'TN' => __('Tunisia', 'invoicing'), |
|
246 | + 'TR' => __('Turkey', 'invoicing'), |
|
247 | + 'TM' => __('Turkmenistan', 'invoicing'), |
|
248 | + 'TC' => __('Turks and Caicos Islands', 'invoicing'), |
|
249 | + 'TV' => __('Tuvalu', 'invoicing'), |
|
250 | + 'UG' => __('Uganda', 'invoicing'), |
|
251 | + 'UA' => __('Ukraine', 'invoicing'), |
|
252 | + 'AE' => __('United Arab Emirates', 'invoicing'), |
|
253 | + 'UY' => __('Uruguay', 'invoicing'), |
|
254 | + 'UM' => __('US Minor Outlying Islands', 'invoicing'), |
|
255 | + 'UZ' => __('Uzbekistan', 'invoicing'), |
|
256 | + 'VU' => __('Vanuatu', 'invoicing'), |
|
257 | + 'VE' => __('Venezuela', 'invoicing'), |
|
258 | + 'VN' => __('Vietnam', 'invoicing'), |
|
259 | + 'VG' => __('Virgin Islands (British)', 'invoicing'), |
|
260 | + 'VI' => __('Virgin Islands (USA)', 'invoicing'), |
|
261 | + 'WF' => __('Wallis and Futuna Islands', 'invoicing'), |
|
262 | + 'EH' => __('Western Sahara', 'invoicing'), |
|
263 | + 'WS' => __('Western Samoa', 'invoicing'), |
|
264 | + 'YE' => __('Yemen', 'invoicing'), |
|
265 | + 'ZM' => __('Zambia', 'invoicing'), |
|
266 | + 'ZW' => __('Zimbabwe', 'invoicing'), |
|
267 | 267 | ); |
@@ -38,8 +38,8 @@ |
||
38 | 38 | $nonce = wp_create_nonce( 'reset_invoice_count' ); |
39 | 39 | $reset_number = '<a href="' . add_query_arg( |
40 | 40 | array( |
41 | - 'reset_invoice_count' => 1, |
|
42 | - '_nonce' => $nonce, |
|
41 | + 'reset_invoice_count' => 1, |
|
42 | + '_nonce' => $nonce, |
|
43 | 43 | ) |
44 | 44 | ) . '" class="btn button">' . __( 'Force Reset Sequence', 'invoicing' ) . '</a>'; |
45 | 45 | } |
@@ -8,40 +8,40 @@ discard block |
||
8 | 8 | * @version 1.0.19 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | $getpaid_pages = GetPaid_Installer::get_pages(); |
14 | -$pages = wpinv_get_pages( true ); |
|
14 | +$pages = wpinv_get_pages(true); |
|
15 | 15 | |
16 | 16 | $currencies = wpinv_get_currencies(); |
17 | 17 | |
18 | 18 | $currency_code_options = array(); |
19 | -foreach ( $currencies as $code => $name ) { |
|
20 | - $currency_code_options[ $code ] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol( $code ) . ')'; |
|
19 | +foreach ($currencies as $code => $name) { |
|
20 | + $currency_code_options[$code] = $code . ' - ' . $name . ' (' . wpinv_currency_symbol($code) . ')'; |
|
21 | 21 | } |
22 | 22 | |
23 | 23 | $invoice_number_padd_options = array(); |
24 | -for ( $i = 0; $i <= 20; $i++ ) { |
|
25 | - $invoice_number_padd_options[ $i ] = $i; |
|
24 | +for ($i = 0; $i <= 20; $i++) { |
|
25 | + $invoice_number_padd_options[$i] = $i; |
|
26 | 26 | } |
27 | 27 | |
28 | 28 | $currency_symbol = wpinv_currency_symbol(); |
29 | 29 | |
30 | 30 | $last_number = $reset_number = ''; |
31 | -if ( $last_invoice_number = get_option( 'wpinv_last_invoice_number' ) ) { |
|
32 | - $last_invoice_number = preg_replace( '/[^0-9]/', '', $last_invoice_number ); |
|
31 | +if ($last_invoice_number = get_option('wpinv_last_invoice_number')) { |
|
32 | + $last_invoice_number = preg_replace('/[^0-9]/', '', $last_invoice_number); |
|
33 | 33 | |
34 | - if ( ! empty( $last_invoice_number ) ) { |
|
35 | - $last_number = ' ' . wp_sprintf( __( "( Last Invoice's sequential number: <b>%s</b> )", 'invoicing' ), $last_invoice_number ); |
|
34 | + if (!empty($last_invoice_number)) { |
|
35 | + $last_number = ' ' . wp_sprintf(__("( Last Invoice's sequential number: <b>%s</b> )", 'invoicing'), $last_invoice_number); |
|
36 | 36 | } |
37 | 37 | |
38 | - $nonce = wp_create_nonce( 'reset_invoice_count' ); |
|
38 | + $nonce = wp_create_nonce('reset_invoice_count'); |
|
39 | 39 | $reset_number = '<a href="' . add_query_arg( |
40 | 40 | array( |
41 | 41 | 'reset_invoice_count' => 1, |
42 | 42 | '_nonce' => $nonce, |
43 | 43 | ) |
44 | - ) . '" class="btn button">' . __( 'Force Reset Sequence', 'invoicing' ) . '</a>'; |
|
44 | + ) . '" class="btn button">' . __('Force Reset Sequence', 'invoicing') . '</a>'; |
|
45 | 45 | } |
46 | 46 | |
47 | 47 | $alert_wrapper_start = '<p style="color: #F00">'; |
@@ -54,59 +54,59 @@ discard block |
||
54 | 54 | 'main' => array( |
55 | 55 | 'location_settings' => array( |
56 | 56 | 'id' => 'location_settings', |
57 | - 'name' => '<h3>' . __( 'Default Location', 'invoicing' ) . '</h3>', |
|
57 | + 'name' => '<h3>' . __('Default Location', 'invoicing') . '</h3>', |
|
58 | 58 | 'desc' => '', |
59 | 59 | 'type' => 'header', |
60 | 60 | ), |
61 | 61 | 'default_country' => array( |
62 | 62 | 'id' => 'default_country', |
63 | - 'name' => __( 'Default Country', 'invoicing' ), |
|
64 | - 'desc' => __( 'Where does your store operate from?', 'invoicing' ), |
|
63 | + 'name' => __('Default Country', 'invoicing'), |
|
64 | + 'desc' => __('Where does your store operate from?', 'invoicing'), |
|
65 | 65 | 'type' => 'select', |
66 | 66 | 'options' => wpinv_get_country_list(), |
67 | 67 | 'std' => 'GB', |
68 | 68 | 'class' => 'wpi_select2', |
69 | - 'placeholder' => __( 'Select a country', 'invoicing' ), |
|
69 | + 'placeholder' => __('Select a country', 'invoicing'), |
|
70 | 70 | ), |
71 | 71 | 'default_state' => array( |
72 | 72 | 'id' => 'default_state', |
73 | - 'name' => __( 'Default State / Province', 'invoicing' ), |
|
74 | - 'desc' => __( 'What state / province does your store operate from?', 'invoicing' ), |
|
73 | + 'name' => __('Default State / Province', 'invoicing'), |
|
74 | + 'desc' => __('What state / province does your store operate from?', 'invoicing'), |
|
75 | 75 | 'type' => 'country_states', |
76 | 76 | 'class' => 'wpi_select2', |
77 | - 'placeholder' => __( 'Select a state', 'invoicing' ), |
|
77 | + 'placeholder' => __('Select a state', 'invoicing'), |
|
78 | 78 | ), |
79 | 79 | 'store_name' => array( |
80 | 80 | 'id' => 'store_name', |
81 | - 'name' => __( 'Store Name', 'invoicing' ), |
|
82 | - 'desc' => __( 'Store name to print on invoices.', 'invoicing' ), |
|
83 | - 'std' => get_option( 'blogname' ), |
|
81 | + 'name' => __('Store Name', 'invoicing'), |
|
82 | + 'desc' => __('Store name to print on invoices.', 'invoicing'), |
|
83 | + 'std' => get_option('blogname'), |
|
84 | 84 | 'type' => 'text', |
85 | 85 | ), |
86 | 86 | 'logo' => array( |
87 | 87 | 'id' => 'logo', |
88 | - 'name' => __( 'Logo URL', 'invoicing' ), |
|
89 | - 'desc' => __( 'Store logo to print on invoices.', 'invoicing' ), |
|
88 | + 'name' => __('Logo URL', 'invoicing'), |
|
89 | + 'desc' => __('Store logo to print on invoices.', 'invoicing'), |
|
90 | 90 | 'type' => 'text', |
91 | 91 | ), |
92 | 92 | 'logo_width' => array( |
93 | 93 | 'id' => 'logo_width', |
94 | - 'name' => __( 'Logo width', 'invoicing' ), |
|
95 | - 'desc' => __( 'Logo width to use in invoice image.', 'invoicing' ), |
|
94 | + 'name' => __('Logo width', 'invoicing'), |
|
95 | + 'desc' => __('Logo width to use in invoice image.', 'invoicing'), |
|
96 | 96 | 'type' => 'number', |
97 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
97 | + 'placeholder' => __('Auto', 'invoicing'), |
|
98 | 98 | ), |
99 | 99 | 'logo_height' => array( |
100 | 100 | 'id' => 'logo_height', |
101 | - 'name' => __( 'Logo height', 'invoicing' ), |
|
102 | - 'desc' => __( 'Logo height to use in invoice image.', 'invoicing' ), |
|
101 | + 'name' => __('Logo height', 'invoicing'), |
|
102 | + 'desc' => __('Logo height to use in invoice image.', 'invoicing'), |
|
103 | 103 | 'type' => 'number', |
104 | - 'placeholder' => __( 'Auto', 'invoicing' ), |
|
104 | + 'placeholder' => __('Auto', 'invoicing'), |
|
105 | 105 | ), |
106 | 106 | 'store_address' => array( |
107 | 107 | 'id' => 'store_address', |
108 | - 'name' => __( 'Store Address', 'invoicing' ), |
|
109 | - 'desc' => __( 'Enter the store address to display on invoice', 'invoicing' ), |
|
108 | + 'name' => __('Store Address', 'invoicing'), |
|
109 | + 'desc' => __('Enter the store address to display on invoice', 'invoicing'), |
|
110 | 110 | 'type' => 'textarea', |
111 | 111 | ), |
112 | 112 | |
@@ -114,114 +114,114 @@ discard block |
||
114 | 114 | 'page_section' => array( |
115 | 115 | 'page_settings' => array( |
116 | 116 | 'id' => 'page_settings', |
117 | - 'name' => '<h3>' . __( 'Page Settings', 'invoicing' ) . '</h3>', |
|
117 | + 'name' => '<h3>' . __('Page Settings', 'invoicing') . '</h3>', |
|
118 | 118 | 'desc' => '', |
119 | 119 | 'type' => 'header', |
120 | 120 | ), |
121 | 121 | 'checkout_page' => array( |
122 | 122 | 'id' => 'checkout_page', |
123 | - 'name' => __( 'Checkout Page', 'invoicing' ), |
|
124 | - 'desc' => __( 'This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing' ), |
|
123 | + 'name' => __('Checkout Page', 'invoicing'), |
|
124 | + 'desc' => __('This is the checkout page where buyers will complete their payments. The <b>[wpinv_checkout]</b> short code must be on this page.', 'invoicing'), |
|
125 | 125 | 'type' => 'select', |
126 | 126 | 'options' => $pages, |
127 | 127 | 'class' => 'wpi_select2', |
128 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
129 | - 'default_content' => empty( $getpaid_pages['checkout_page'] ) ? '' : $getpaid_pages['checkout_page']['content'], |
|
128 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
129 | + 'default_content' => empty($getpaid_pages['checkout_page']) ? '' : $getpaid_pages['checkout_page']['content'], |
|
130 | 130 | 'help-tip' => true, |
131 | 131 | ), |
132 | 132 | 'success_page' => array( |
133 | 133 | 'id' => 'success_page', |
134 | - 'name' => __( 'Success Page', 'invoicing' ), |
|
135 | - 'desc' => __( 'This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing' ), |
|
134 | + 'name' => __('Success Page', 'invoicing'), |
|
135 | + 'desc' => __('This is the page buyers are sent to after completing their payments. The <b>[wpinv_receipt]</b> short code should be on this page.', 'invoicing'), |
|
136 | 136 | 'type' => 'select', |
137 | 137 | 'options' => $pages, |
138 | 138 | 'class' => 'wpi_select2', |
139 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
140 | - 'default_content' => empty( $getpaid_pages['success_page'] ) ? '' : $getpaid_pages['success_page']['content'], |
|
139 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
140 | + 'default_content' => empty($getpaid_pages['success_page']) ? '' : $getpaid_pages['success_page']['content'], |
|
141 | 141 | 'help-tip' => true, |
142 | 142 | ), |
143 | 143 | 'failure_page' => array( |
144 | 144 | 'id' => 'failure_page', |
145 | - 'name' => __( 'Failed Transaction Page', 'invoicing' ), |
|
146 | - 'desc' => __( 'This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing' ), |
|
145 | + 'name' => __('Failed Transaction Page', 'invoicing'), |
|
146 | + 'desc' => __('This is the page buyers are sent to if their transaction is cancelled or fails.', 'invoicing'), |
|
147 | 147 | 'type' => 'select', |
148 | 148 | 'options' => $pages, |
149 | 149 | 'class' => 'wpi_select2', |
150 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
151 | - 'default_content' => empty( $getpaid_pages['failure_page'] ) ? '' : $getpaid_pages['failure_page']['content'], |
|
150 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
151 | + 'default_content' => empty($getpaid_pages['failure_page']) ? '' : $getpaid_pages['failure_page']['content'], |
|
152 | 152 | 'help-tip' => true, |
153 | 153 | ), |
154 | 154 | 'invoice_history_page' => array( |
155 | 155 | 'id' => 'invoice_history_page', |
156 | - 'name' => __( 'Invoice History Page', 'invoicing' ), |
|
157 | - 'desc' => __( 'This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing' ), |
|
156 | + 'name' => __('Invoice History Page', 'invoicing'), |
|
157 | + 'desc' => __('This page shows an invoice history for the current user. The <b>[wpinv_history]</b> short code should be on this page.', 'invoicing'), |
|
158 | 158 | 'type' => 'select', |
159 | 159 | 'options' => $pages, |
160 | 160 | 'class' => 'wpi_select2', |
161 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
162 | - 'default_content' => empty( $getpaid_pages['invoice_history_page'] ) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
161 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
162 | + 'default_content' => empty($getpaid_pages['invoice_history_page']) ? '' : $getpaid_pages['invoice_history_page']['content'], |
|
163 | 163 | 'help-tip' => true, |
164 | 164 | ), |
165 | 165 | 'invoice_subscription_page' => array( |
166 | 166 | 'id' => 'invoice_subscription_page', |
167 | - 'name' => __( 'Invoice Subscriptions Page', 'invoicing' ), |
|
168 | - 'desc' => __( 'This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing' ), |
|
167 | + 'name' => __('Invoice Subscriptions Page', 'invoicing'), |
|
168 | + 'desc' => __('This page shows subscriptions history for the current user. The <b>[wpinv_subscriptions]</b> short code should be on this page.', 'invoicing'), |
|
169 | 169 | 'type' => 'select', |
170 | 170 | 'options' => $pages, |
171 | 171 | 'class' => 'wpi_select2', |
172 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
173 | - 'default_content' => empty( $getpaid_pages['invoice_subscription_page'] ) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
172 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
173 | + 'default_content' => empty($getpaid_pages['invoice_subscription_page']) ? '' : $getpaid_pages['invoice_subscription_page']['content'], |
|
174 | 174 | 'help-tip' => true, |
175 | 175 | ), |
176 | 176 | ), |
177 | 177 | 'currency_section' => array( |
178 | 178 | 'currency_settings' => array( |
179 | 179 | 'id' => 'currency_settings', |
180 | - 'name' => '<h3>' . __( 'Currency Settings', 'invoicing' ) . '</h3>', |
|
180 | + 'name' => '<h3>' . __('Currency Settings', 'invoicing') . '</h3>', |
|
181 | 181 | 'desc' => '', |
182 | 182 | 'type' => 'header', |
183 | 183 | ), |
184 | 184 | 'currency' => array( |
185 | 185 | 'id' => 'currency', |
186 | - 'name' => __( 'Currency', 'invoicing' ), |
|
187 | - 'desc' => __( 'Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing' ), |
|
186 | + 'name' => __('Currency', 'invoicing'), |
|
187 | + 'desc' => __('Choose your currency. Note that some payment gateways have currency restrictions.', 'invoicing'), |
|
188 | 188 | 'type' => 'select', |
189 | 189 | 'class' => 'wpi_select2', |
190 | 190 | 'options' => $currency_code_options, |
191 | 191 | ), |
192 | 192 | 'currency_position' => array( |
193 | 193 | 'id' => 'currency_position', |
194 | - 'name' => __( 'Currency Position', 'invoicing' ), |
|
195 | - 'desc' => __( 'Choose the location of the currency sign.', 'invoicing' ), |
|
194 | + 'name' => __('Currency Position', 'invoicing'), |
|
195 | + 'desc' => __('Choose the location of the currency sign.', 'invoicing'), |
|
196 | 196 | 'type' => 'select', |
197 | 197 | 'class' => 'wpi_select2', |
198 | 198 | 'options' => array( |
199 | - 'left' => __( 'Left', 'invoicing' ) . ' (' . $currency_symbol . wpinv_format_amount( '99.99' ) . ')', |
|
200 | - 'right' => __( 'Right', 'invoicing' ) . ' (' . wpinv_format_amount( '99.99' ) . $currency_symbol . ')', |
|
201 | - 'left_space' => __( 'Left with space', 'invoicing' ) . ' (' . $currency_symbol . ' ' . wpinv_format_amount( '99.99' ) . ')', |
|
202 | - 'right_space' => __( 'Right with space', 'invoicing' ) . ' (' . wpinv_format_amount( '99.99' ) . ' ' . $currency_symbol . ')', |
|
199 | + 'left' => __('Left', 'invoicing') . ' (' . $currency_symbol . wpinv_format_amount('99.99') . ')', |
|
200 | + 'right' => __('Right', 'invoicing') . ' (' . wpinv_format_amount('99.99') . $currency_symbol . ')', |
|
201 | + 'left_space' => __('Left with space', 'invoicing') . ' (' . $currency_symbol . ' ' . wpinv_format_amount('99.99') . ')', |
|
202 | + 'right_space' => __('Right with space', 'invoicing') . ' (' . wpinv_format_amount('99.99') . ' ' . $currency_symbol . ')', |
|
203 | 203 | ), |
204 | 204 | ), |
205 | 205 | 'thousands_separator' => array( |
206 | 206 | 'id' => 'thousands_separator', |
207 | - 'name' => __( 'Thousands Separator', 'invoicing' ), |
|
208 | - 'desc' => __( 'The symbol (usually , or .) to separate thousands', 'invoicing' ), |
|
207 | + 'name' => __('Thousands Separator', 'invoicing'), |
|
208 | + 'desc' => __('The symbol (usually , or .) to separate thousands', 'invoicing'), |
|
209 | 209 | 'type' => 'text', |
210 | 210 | 'size' => 'small', |
211 | 211 | 'std' => ',', |
212 | 212 | ), |
213 | 213 | 'decimal_separator' => array( |
214 | 214 | 'id' => 'decimal_separator', |
215 | - 'name' => __( 'Decimal Separator', 'invoicing' ), |
|
216 | - 'desc' => __( 'The symbol (usually , or .) to separate decimal points', 'invoicing' ), |
|
215 | + 'name' => __('Decimal Separator', 'invoicing'), |
|
216 | + 'desc' => __('The symbol (usually , or .) to separate decimal points', 'invoicing'), |
|
217 | 217 | 'type' => 'text', |
218 | 218 | 'size' => 'small', |
219 | 219 | 'std' => '.', |
220 | 220 | ), |
221 | 221 | 'decimals' => array( |
222 | 222 | 'id' => 'decimals', |
223 | - 'name' => __( 'Number of Decimals', 'invoicing' ), |
|
224 | - 'desc' => __( 'This sets the number of decimal points shown in displayed prices.', 'invoicing' ), |
|
223 | + 'name' => __('Number of Decimals', 'invoicing'), |
|
224 | + 'desc' => __('This sets the number of decimal points shown in displayed prices.', 'invoicing'), |
|
225 | 225 | 'type' => 'number', |
226 | 226 | 'size' => 'small', |
227 | 227 | 'std' => '2', |
@@ -233,21 +233,21 @@ discard block |
||
233 | 233 | 'labels' => array( |
234 | 234 | 'labels' => array( |
235 | 235 | 'id' => 'labels_settings', |
236 | - 'name' => '<h3>' . __( 'Invoice Labels', 'invoicing' ) . '</h3>', |
|
236 | + 'name' => '<h3>' . __('Invoice Labels', 'invoicing') . '</h3>', |
|
237 | 237 | 'desc' => '', |
238 | 238 | 'type' => 'header', |
239 | 239 | ), |
240 | 240 | 'vat_invoice_notice_label' => array( |
241 | 241 | 'id' => 'vat_invoice_notice_label', |
242 | - 'name' => __( 'Invoice Notice Label', 'invoicing' ), |
|
243 | - 'desc' => __( 'Use this to add an invoice notice section (label) to your invoices', 'invoicing' ), |
|
242 | + 'name' => __('Invoice Notice Label', 'invoicing'), |
|
243 | + 'desc' => __('Use this to add an invoice notice section (label) to your invoices', 'invoicing'), |
|
244 | 244 | 'type' => 'text', |
245 | 245 | 'size' => 'regular', |
246 | 246 | ), |
247 | 247 | 'vat_invoice_notice' => array( |
248 | 248 | 'id' => 'vat_invoice_notice', |
249 | - 'name' => __( 'Invoice notice', 'invoicing' ), |
|
250 | - 'desc' => __( 'Use this to add an invoice notice section (description) to your invoices', 'invoicing' ), |
|
249 | + 'name' => __('Invoice notice', 'invoicing'), |
|
250 | + 'desc' => __('Use this to add an invoice notice section (description) to your invoices', 'invoicing'), |
|
251 | 251 | 'type' => 'text', |
252 | 252 | 'size' => 'regular', |
253 | 253 | ), |
@@ -260,22 +260,22 @@ discard block |
||
260 | 260 | 'main' => array( |
261 | 261 | 'gateway_settings' => array( |
262 | 262 | 'id' => 'api_header', |
263 | - 'name' => '<h3>' . __( 'Gateway Settings', 'invoicing' ) . '</h3>', |
|
263 | + 'name' => '<h3>' . __('Gateway Settings', 'invoicing') . '</h3>', |
|
264 | 264 | 'desc' => '', |
265 | 265 | 'type' => 'header', |
266 | 266 | ), |
267 | 267 | 'gateways' => array( |
268 | 268 | 'id' => 'gateways', |
269 | - 'name' => __( 'Payment Gateways', 'invoicing' ), |
|
270 | - 'desc' => __( 'Choose the payment gateways you want to enable.', 'invoicing' ), |
|
269 | + 'name' => __('Payment Gateways', 'invoicing'), |
|
270 | + 'desc' => __('Choose the payment gateways you want to enable.', 'invoicing'), |
|
271 | 271 | 'type' => 'gateways', |
272 | - 'std' => array( 'manual' => 1 ), |
|
272 | + 'std' => array('manual' => 1), |
|
273 | 273 | 'options' => wpinv_get_payment_gateways(), |
274 | 274 | ), |
275 | 275 | 'default_gateway' => array( |
276 | 276 | 'id' => 'default_gateway', |
277 | - 'name' => __( 'Default Gateway', 'invoicing' ), |
|
278 | - 'desc' => __( 'This gateway will be loaded automatically with the checkout page.', 'invoicing' ), |
|
277 | + 'name' => __('Default Gateway', 'invoicing'), |
|
278 | + 'desc' => __('This gateway will be loaded automatically with the checkout page.', 'invoicing'), |
|
279 | 279 | 'type' => 'gateway_select', |
280 | 280 | 'std' => 'manual', |
281 | 281 | 'class' => 'wpi_select2', |
@@ -291,32 +291,32 @@ discard block |
||
291 | 291 | 'main' => array( |
292 | 292 | 'tax_settings' => array( |
293 | 293 | 'id' => 'tax_settings', |
294 | - 'name' => '<h3>' . __( 'Tax Settings', 'invoicing' ) . '</h3>', |
|
294 | + 'name' => '<h3>' . __('Tax Settings', 'invoicing') . '</h3>', |
|
295 | 295 | 'type' => 'header', |
296 | 296 | ), |
297 | 297 | |
298 | 298 | 'enable_taxes' => array( |
299 | 299 | 'id' => 'enable_taxes', |
300 | - 'name' => __( 'Enable Taxes', 'invoicing' ), |
|
301 | - 'desc' => __( 'Enable tax rates and calculations.', 'invoicing' ), |
|
300 | + 'name' => __('Enable Taxes', 'invoicing'), |
|
301 | + 'desc' => __('Enable tax rates and calculations.', 'invoicing'), |
|
302 | 302 | 'type' => 'checkbox', |
303 | 303 | 'std' => 0, |
304 | 304 | ), |
305 | 305 | |
306 | 306 | 'tax_subtotal_rounding' => array( |
307 | 307 | 'id' => 'tax_subtotal_rounding', |
308 | - 'name' => __( 'Rounding', 'invoicing' ), |
|
309 | - 'desc' => __( 'Round tax at subtotal level, instead of rounding per tax rate', 'invoicing' ), |
|
308 | + 'name' => __('Rounding', 'invoicing'), |
|
309 | + 'desc' => __('Round tax at subtotal level, instead of rounding per tax rate', 'invoicing'), |
|
310 | 310 | 'type' => 'checkbox', |
311 | 311 | 'std' => 1, |
312 | 312 | ), |
313 | 313 | |
314 | 314 | 'prices_include_tax' => array( |
315 | 315 | 'id' => 'prices_include_tax', |
316 | - 'name' => __( 'Prices entered with tax', 'invoicing' ), |
|
316 | + 'name' => __('Prices entered with tax', 'invoicing'), |
|
317 | 317 | 'options' => array( |
318 | - 'yes' => __( 'Yes, I will enter prices inclusive of tax', 'invoicing' ), |
|
319 | - 'no' => __( 'No, I will enter prices exclusive of tax', 'invoicing' ), |
|
318 | + 'yes' => __('Yes, I will enter prices inclusive of tax', 'invoicing'), |
|
319 | + 'no' => __('No, I will enter prices exclusive of tax', 'invoicing'), |
|
320 | 320 | ), |
321 | 321 | 'type' => 'select', |
322 | 322 | 'std' => 'no', |
@@ -324,10 +324,10 @@ discard block |
||
324 | 324 | |
325 | 325 | 'tax_base' => array( |
326 | 326 | 'id' => 'tax_base', |
327 | - 'name' => __( 'Calculate tax based on', 'invoicing' ), |
|
327 | + 'name' => __('Calculate tax based on', 'invoicing'), |
|
328 | 328 | 'options' => array( |
329 | - 'billing' => __( 'Customer billing address', 'invoicing' ), |
|
330 | - 'base' => __( 'Shop base address', 'invoicing' ), |
|
329 | + 'billing' => __('Customer billing address', 'invoicing'), |
|
330 | + 'base' => __('Shop base address', 'invoicing'), |
|
331 | 331 | ), |
332 | 332 | 'type' => 'select', |
333 | 333 | 'std' => 'billing', |
@@ -335,24 +335,24 @@ discard block |
||
335 | 335 | |
336 | 336 | 'vat_same_country_rule' => array( |
337 | 337 | 'id' => 'vat_same_country_rule', |
338 | - 'name' => __( 'Same country rule', 'invoicing' ), |
|
339 | - 'desc' => __( 'What should happen if a customer is from the same country as your business?', 'invoicing' ), |
|
338 | + 'name' => __('Same country rule', 'invoicing'), |
|
339 | + 'desc' => __('What should happen if a customer is from the same country as your business?', 'invoicing'), |
|
340 | 340 | 'type' => 'select', |
341 | 341 | 'options' => array( |
342 | - 'no' => __( 'Do not charge tax', 'invoicing' ), |
|
343 | - 'always' => __( 'Charge tax unless vat number is validated', 'invoicing' ), |
|
344 | - 'vat_too' => __( 'Charge tax even if vat number is validated', 'invoicing' ), |
|
342 | + 'no' => __('Do not charge tax', 'invoicing'), |
|
343 | + 'always' => __('Charge tax unless vat number is validated', 'invoicing'), |
|
344 | + 'vat_too' => __('Charge tax even if vat number is validated', 'invoicing'), |
|
345 | 345 | ), |
346 | - 'placeholder' => __( 'Select an option', 'invoicing' ), |
|
346 | + 'placeholder' => __('Select an option', 'invoicing'), |
|
347 | 347 | 'std' => 'vat_too', |
348 | 348 | ), |
349 | 349 | |
350 | 350 | 'tax_display_totals' => array( |
351 | 351 | 'id' => 'tax_display_totals', |
352 | - 'name' => __( 'Display tax totals', 'invoicing' ), |
|
352 | + 'name' => __('Display tax totals', 'invoicing'), |
|
353 | 353 | 'options' => array( |
354 | - 'single' => __( 'As a single total', 'invoicing' ), |
|
355 | - 'individual' => __( 'As individual tax rates', 'invoicing' ), |
|
354 | + 'single' => __('As a single total', 'invoicing'), |
|
355 | + 'individual' => __('As individual tax rates', 'invoicing'), |
|
356 | 356 | ), |
357 | 357 | 'type' => 'select', |
358 | 358 | 'std' => 'individual', |
@@ -360,8 +360,8 @@ discard block |
||
360 | 360 | |
361 | 361 | 'tax_rate' => array( |
362 | 362 | 'id' => 'tax_rate', |
363 | - 'name' => __( 'Fallback Tax Rate', 'invoicing' ), |
|
364 | - 'desc' => __( 'Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing' ), |
|
363 | + 'name' => __('Fallback Tax Rate', 'invoicing'), |
|
364 | + 'desc' => __('Enter a percentage, such as 6.5. Customers not in a specific rate will be charged this rate.', 'invoicing'), |
|
365 | 365 | 'type' => 'number', |
366 | 366 | 'size' => 'small', |
367 | 367 | 'min' => '0', |
@@ -373,8 +373,8 @@ discard block |
||
373 | 373 | 'rules' => array( |
374 | 374 | 'tax_rules' => array( |
375 | 375 | 'id' => 'tax_rules', |
376 | - 'name' => '<h3>' . __( 'Tax Rules', 'invoicing' ) . '</h3>', |
|
377 | - 'desc' => __( 'Create/Update tax rules', 'invoicing' ), |
|
376 | + 'name' => '<h3>' . __('Tax Rules', 'invoicing') . '</h3>', |
|
377 | + 'desc' => __('Create/Update tax rules', 'invoicing'), |
|
378 | 378 | 'type' => 'tax_rules', |
379 | 379 | ), |
380 | 380 | ), |
@@ -382,8 +382,8 @@ discard block |
||
382 | 382 | 'rates' => array( |
383 | 383 | 'tax_rates' => array( |
384 | 384 | 'id' => 'tax_rates', |
385 | - 'name' => '<h3>' . __( 'Tax Rates', 'invoicing' ) . '</h3>', |
|
386 | - 'desc' => __( 'Enter tax rates for specific regions.', 'invoicing' ), |
|
385 | + 'name' => '<h3>' . __('Tax Rates', 'invoicing') . '</h3>', |
|
386 | + 'desc' => __('Enter tax rates for specific regions.', 'invoicing'), |
|
387 | 387 | 'type' => 'tax_rates', |
388 | 388 | ), |
389 | 389 | ), |
@@ -392,31 +392,31 @@ discard block |
||
392 | 392 | |
393 | 393 | 'vat_company_name' => array( |
394 | 394 | 'id' => 'vat_company_name', |
395 | - 'name' => __( 'Company Name', 'invoicing' ), |
|
396 | - 'desc' => wp_sprintf( __( 'Verify your company name and VAT number on the %1$sEU VIES System.%2$s', 'invoicing' ), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>' ), |
|
395 | + 'name' => __('Company Name', 'invoicing'), |
|
396 | + 'desc' => wp_sprintf(__('Verify your company name and VAT number on the %1$sEU VIES System.%2$s', 'invoicing'), '<a href="http://ec.europa.eu/taxation_customs/vies/" target="_blank">', '</a>'), |
|
397 | 397 | 'type' => 'text', |
398 | 398 | 'size' => 'regular', |
399 | 399 | ), |
400 | 400 | |
401 | 401 | 'vat_number' => array( |
402 | 402 | 'id' => 'vat_number', |
403 | - 'name' => __( 'VAT Number', 'invoicing' ), |
|
404 | - 'desc' => __( 'Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing' ), |
|
403 | + 'name' => __('VAT Number', 'invoicing'), |
|
404 | + 'desc' => __('Enter your VAT number including the country identifier, eg: GB123456789', 'invoicing'), |
|
405 | 405 | 'type' => 'text', |
406 | 406 | 'size' => 'regular', |
407 | 407 | ), |
408 | 408 | |
409 | 409 | 'vat_prevent_b2c_purchase' => array( |
410 | 410 | 'id' => 'vat_prevent_b2c_purchase', |
411 | - 'name' => __( 'Prevent B2C Sales', 'invoicing' ), |
|
412 | - 'desc' => __( 'Require everyone in the EU to provide a VAT number.', 'invoicing' ), |
|
411 | + 'name' => __('Prevent B2C Sales', 'invoicing'), |
|
412 | + 'desc' => __('Require everyone in the EU to provide a VAT number.', 'invoicing'), |
|
413 | 413 | 'type' => 'checkbox', |
414 | 414 | ), |
415 | 415 | |
416 | 416 | 'validate_vat_number' => array( |
417 | 417 | 'id' => 'validate_vat_number', |
418 | - 'name' => __( 'Validate VAT Number', 'invoicing' ), |
|
419 | - 'desc' => __( 'Validate VAT numbers with VIES.', 'invoicing' ), |
|
418 | + 'name' => __('Validate VAT Number', 'invoicing'), |
|
419 | + 'desc' => __('Validate VAT numbers with VIES.', 'invoicing'), |
|
420 | 420 | 'type' => 'checkbox', |
421 | 421 | ), |
422 | 422 | |
@@ -431,66 +431,66 @@ discard block |
||
431 | 431 | 'main' => array( |
432 | 432 | 'email_settings_header' => array( |
433 | 433 | 'id' => 'email_settings_header', |
434 | - 'name' => '<h3>' . __( 'Email Sender Options', 'invoicing' ) . '</h3>', |
|
434 | + 'name' => '<h3>' . __('Email Sender Options', 'invoicing') . '</h3>', |
|
435 | 435 | 'type' => 'header', |
436 | 436 | ), |
437 | 437 | 'email_from_name' => array( |
438 | 438 | 'id' => 'email_from_name', |
439 | - 'name' => __( 'From Name', 'invoicing' ), |
|
440 | - 'desc' => __( 'Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing' ), |
|
441 | - 'std' => esc_attr( get_bloginfo( 'name', 'display' ) ), |
|
439 | + 'name' => __('From Name', 'invoicing'), |
|
440 | + 'desc' => __('Enter the sender\'s name appears in outgoing invoice emails. This should be your site name.', 'invoicing'), |
|
441 | + 'std' => esc_attr(get_bloginfo('name', 'display')), |
|
442 | 442 | 'type' => 'text', |
443 | 443 | ), |
444 | 444 | 'email_from' => array( |
445 | 445 | 'id' => 'email_from', |
446 | - 'name' => __( 'From Email', 'invoicing' ), |
|
447 | - 'desc' => sprintf( __( 'Email address to send invoice emails from. This will act as the "from" address. %1$s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%2$s', 'invoicing' ), $alert_wrapper_start, $alert_wrapper_close ), |
|
448 | - 'std' => get_option( 'admin_email' ), |
|
446 | + 'name' => __('From Email', 'invoicing'), |
|
447 | + 'desc' => sprintf(__('Email address to send invoice emails from. This will act as the "from" address. %1$s If emails are not being sent it may be that your hosting prevents emails being sent if the email domains do not match.%2$s', 'invoicing'), $alert_wrapper_start, $alert_wrapper_close), |
|
448 | + 'std' => get_option('admin_email'), |
|
449 | 449 | 'type' => 'text', |
450 | 450 | ), |
451 | 451 | 'admin_email' => array( |
452 | 452 | 'id' => 'admin_email', |
453 | - 'name' => __( 'Admin Email', 'invoicing' ), |
|
454 | - 'desc' => __( 'Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing' ), |
|
455 | - 'std' => get_option( 'admin_email' ), |
|
453 | + 'name' => __('Admin Email', 'invoicing'), |
|
454 | + 'desc' => __('Where should we send admin notifications? This will is also act as the "reply-to" address for invoice emails', 'invoicing'), |
|
455 | + 'std' => get_option('admin_email'), |
|
456 | 456 | 'type' => 'text', |
457 | 457 | ), |
458 | 458 | 'skip_email_free_invoice' => array( |
459 | 459 | 'id' => 'skip_email_free_invoice', |
460 | - 'name' => __( 'Skip Free Invoices', 'invoicing' ), |
|
461 | - 'desc' => __( 'Check this to disable sending emails for free invoices.', 'invoicing' ), |
|
460 | + 'name' => __('Skip Free Invoices', 'invoicing'), |
|
461 | + 'desc' => __('Check this to disable sending emails for free invoices.', 'invoicing'), |
|
462 | 462 | 'type' => 'checkbox', |
463 | 463 | 'std' => false, |
464 | 464 | ), |
465 | 465 | 'overdue_settings_header' => array( |
466 | 466 | 'id' => 'overdue_settings_header', |
467 | - 'name' => '<h3>' . __( 'Due Date Settings', 'invoicing' ) . '</h3>', |
|
467 | + 'name' => '<h3>' . __('Due Date Settings', 'invoicing') . '</h3>', |
|
468 | 468 | 'type' => 'header', |
469 | 469 | ), |
470 | 470 | 'overdue_active' => array( |
471 | 471 | 'id' => 'overdue_active', |
472 | - 'name' => __( 'Enable Due Date', 'invoicing' ), |
|
473 | - 'desc' => __( 'Check this to enable due date option for invoices.', 'invoicing' ), |
|
472 | + 'name' => __('Enable Due Date', 'invoicing'), |
|
473 | + 'desc' => __('Check this to enable due date option for invoices.', 'invoicing'), |
|
474 | 474 | 'type' => 'checkbox', |
475 | 475 | 'std' => false, |
476 | 476 | ), |
477 | 477 | 'email_template_header' => array( |
478 | 478 | 'id' => 'email_template_header', |
479 | - 'name' => '<h3>' . __( 'Email Template', 'invoicing' ) . '</h3>', |
|
479 | + 'name' => '<h3>' . __('Email Template', 'invoicing') . '</h3>', |
|
480 | 480 | 'type' => 'header', |
481 | 481 | ), |
482 | 482 | 'email_header_image' => array( |
483 | 483 | 'id' => 'email_header_image', |
484 | - 'name' => __( 'Header Image', 'invoicing' ), |
|
485 | - 'desc' => __( 'URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing' ), |
|
484 | + 'name' => __('Header Image', 'invoicing'), |
|
485 | + 'desc' => __('URL to an image you want to show in the email header. Upload images using the media uploader (Admin > Media).', 'invoicing'), |
|
486 | 486 | 'std' => '', |
487 | 487 | 'type' => 'text', |
488 | 488 | ), |
489 | 489 | 'email_footer_text' => array( |
490 | 490 | 'id' => 'email_footer_text', |
491 | - 'name' => __( 'Footer Text', 'invoicing' ), |
|
492 | - 'desc' => __( 'The text to appear in the footer of all invoice emails.', 'invoicing' ), |
|
493 | - 'std' => get_bloginfo( 'name', 'display' ) . ' - ' . __( 'Powered by GetPaid', 'invoicing' ), |
|
491 | + 'name' => __('Footer Text', 'invoicing'), |
|
492 | + 'desc' => __('The text to appear in the footer of all invoice emails.', 'invoicing'), |
|
493 | + 'std' => get_bloginfo('name', 'display') . ' - ' . __('Powered by GetPaid', 'invoicing'), |
|
494 | 494 | 'type' => 'textarea', |
495 | 495 | 'class' => 'regular-text', |
496 | 496 | 'rows' => 2, |
@@ -498,29 +498,29 @@ discard block |
||
498 | 498 | ), |
499 | 499 | 'email_base_color' => array( |
500 | 500 | 'id' => 'email_base_color', |
501 | - 'name' => __( 'Base Color', 'invoicing' ), |
|
502 | - 'desc' => __( 'The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing' ), |
|
501 | + 'name' => __('Base Color', 'invoicing'), |
|
502 | + 'desc' => __('The base color for invoice email template. Default <code>#557da2</code>.', 'invoicing'), |
|
503 | 503 | 'std' => '#557da2', |
504 | 504 | 'type' => 'color', |
505 | 505 | ), |
506 | 506 | 'email_background_color' => array( |
507 | 507 | 'id' => 'email_background_color', |
508 | - 'name' => __( 'Background Color', 'invoicing' ), |
|
509 | - 'desc' => __( 'The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing' ), |
|
508 | + 'name' => __('Background Color', 'invoicing'), |
|
509 | + 'desc' => __('The background color of email template. Default <code>#f5f5f5</code>.', 'invoicing'), |
|
510 | 510 | 'std' => '#f5f5f5', |
511 | 511 | 'type' => 'color', |
512 | 512 | ), |
513 | 513 | 'email_body_background_color' => array( |
514 | 514 | 'id' => 'email_body_background_color', |
515 | - 'name' => __( 'Body Background Color', 'invoicing' ), |
|
516 | - 'desc' => __( 'The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing' ), |
|
515 | + 'name' => __('Body Background Color', 'invoicing'), |
|
516 | + 'desc' => __('The main body background color of email template. Default <code>#fdfdfd</code>.', 'invoicing'), |
|
517 | 517 | 'std' => '#fdfdfd', |
518 | 518 | 'type' => 'color', |
519 | 519 | ), |
520 | 520 | 'email_text_color' => array( |
521 | 521 | 'id' => 'email_text_color', |
522 | - 'name' => __( 'Body Text Color', 'invoicing' ), |
|
523 | - 'desc' => __( 'The main body text color. Default <code>#505050</code>.', 'invoicing' ), |
|
522 | + 'name' => __('Body Text Color', 'invoicing'), |
|
523 | + 'desc' => __('The main body text color. Default <code>#505050</code>.', 'invoicing'), |
|
524 | 524 | 'std' => '#505050', |
525 | 525 | 'type' => 'color', |
526 | 526 | ), |
@@ -535,7 +535,7 @@ discard block |
||
535 | 535 | ), |
536 | 536 | |
537 | 537 | // Integrations. |
538 | - 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'settings', 'id' ), |
|
538 | + 'integrations' => wp_list_pluck(getpaid_get_integration_settings(), 'settings', 'id'), |
|
539 | 539 | |
540 | 540 | /** Privacy Settings */ |
541 | 541 | 'privacy' => apply_filters( |
@@ -544,17 +544,17 @@ discard block |
||
544 | 544 | 'main' => array( |
545 | 545 | 'invoicing_privacy_policy_settings' => array( |
546 | 546 | 'id' => 'invoicing_privacy_policy_settings', |
547 | - 'name' => '<h3>' . __( 'Privacy Policy', 'invoicing' ) . '</h3>', |
|
547 | + 'name' => '<h3>' . __('Privacy Policy', 'invoicing') . '</h3>', |
|
548 | 548 | 'type' => 'header', |
549 | 549 | ), |
550 | 550 | 'privacy_page' => array( |
551 | 551 | 'id' => 'privacy_page', |
552 | - 'name' => __( 'Privacy Page', 'invoicing' ), |
|
553 | - 'desc' => __( 'If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing' ), |
|
552 | + 'name' => __('Privacy Page', 'invoicing'), |
|
553 | + 'desc' => __('If no privacy policy page set in Settings->Privacy default settings, this page will be used on checkout page.', 'invoicing'), |
|
554 | 554 | 'type' => 'select', |
555 | - 'options' => wpinv_get_pages( true, __( 'Select a page', 'invoicing' ) ), |
|
555 | + 'options' => wpinv_get_pages(true, __('Select a page', 'invoicing')), |
|
556 | 556 | 'class' => 'wpi_select2', |
557 | - 'placeholder' => __( 'Select a page', 'invoicing' ), |
|
557 | + 'placeholder' => __('Select a page', 'invoicing'), |
|
558 | 558 | ), |
559 | 559 | ), |
560 | 560 | ) |
@@ -566,19 +566,19 @@ discard block |
||
566 | 566 | 'main' => array( |
567 | 567 | 'invoice_number_format_settings' => array( |
568 | 568 | 'id' => 'invoice_number_format_settings', |
569 | - 'name' => '<h3>' . __( 'Invoice Number', 'invoicing' ) . '</h3>', |
|
569 | + 'name' => '<h3>' . __('Invoice Number', 'invoicing') . '</h3>', |
|
570 | 570 | 'type' => 'header', |
571 | 571 | ), |
572 | 572 | 'sequential_invoice_number' => array( |
573 | 573 | 'id' => 'sequential_invoice_number', |
574 | - 'name' => __( 'Sequential Invoice Numbers', 'invoicing' ), |
|
575 | - 'desc' => __( 'Check this box to enable sequential invoice numbers.', 'invoicing' ) . $reset_number, |
|
574 | + 'name' => __('Sequential Invoice Numbers', 'invoicing'), |
|
575 | + 'desc' => __('Check this box to enable sequential invoice numbers.', 'invoicing') . $reset_number, |
|
576 | 576 | 'type' => 'checkbox', |
577 | 577 | ), |
578 | 578 | 'invoice_sequence_start' => array( |
579 | 579 | 'id' => 'invoice_sequence_start', |
580 | - 'name' => __( 'Sequential Starting Number', 'invoicing' ), |
|
581 | - 'desc' => __( 'The number at which the invoice number sequence should begin.', 'invoicing' ) . $last_number, |
|
580 | + 'name' => __('Sequential Starting Number', 'invoicing'), |
|
581 | + 'desc' => __('The number at which the invoice number sequence should begin.', 'invoicing') . $last_number, |
|
582 | 582 | 'type' => 'number', |
583 | 583 | 'size' => 'small', |
584 | 584 | 'std' => '1', |
@@ -586,8 +586,8 @@ discard block |
||
586 | 586 | ), |
587 | 587 | 'invoice_number_padd' => array( |
588 | 588 | 'id' => 'invoice_number_padd', |
589 | - 'name' => __( 'Minimum Digits', 'invoicing' ), |
|
590 | - 'desc' => __( 'If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing' ), |
|
589 | + 'name' => __('Minimum Digits', 'invoicing'), |
|
590 | + 'desc' => __('If the invoice number has less digits than this number, it is left padded with 0s. Ex: invoice number 108 will padded to 00108 if digits set to 5. The default 0 means no padding.', 'invoicing'), |
|
591 | 591 | 'type' => 'select', |
592 | 592 | 'options' => $invoice_number_padd_options, |
593 | 593 | 'std' => 5, |
@@ -595,8 +595,8 @@ discard block |
||
595 | 595 | ), |
596 | 596 | 'invoice_number_prefix' => array( |
597 | 597 | 'id' => 'invoice_number_prefix', |
598 | - 'name' => __( 'Invoice Number Prefix', 'invoicing' ), |
|
599 | - 'desc' => __( 'Prefix for all invoice numbers. Ex: INV-', 'invoicing' ), |
|
598 | + 'name' => __('Invoice Number Prefix', 'invoicing'), |
|
599 | + 'desc' => __('Prefix for all invoice numbers. Ex: INV-', 'invoicing'), |
|
600 | 600 | 'type' => 'text', |
601 | 601 | 'size' => 'regular', |
602 | 602 | 'std' => 'INV-', |
@@ -604,77 +604,77 @@ discard block |
||
604 | 604 | ), |
605 | 605 | 'invoice_number_postfix' => array( |
606 | 606 | 'id' => 'invoice_number_postfix', |
607 | - 'name' => __( 'Invoice Number Postfix', 'invoicing' ), |
|
608 | - 'desc' => __( 'Postfix for all invoice numbers.', 'invoicing' ), |
|
607 | + 'name' => __('Invoice Number Postfix', 'invoicing'), |
|
608 | + 'desc' => __('Postfix for all invoice numbers.', 'invoicing'), |
|
609 | 609 | 'type' => 'text', |
610 | 610 | 'size' => 'regular', |
611 | 611 | 'std' => '', |
612 | 612 | ), |
613 | 613 | 'checkout_settings' => array( |
614 | 614 | 'id' => 'checkout_settings', |
615 | - 'name' => '<h3>' . __( 'Checkout Settings', 'invoicing' ) . '</h3>', |
|
615 | + 'name' => '<h3>' . __('Checkout Settings', 'invoicing') . '</h3>', |
|
616 | 616 | 'type' => 'header', |
617 | 617 | ), |
618 | 618 | 'disable_new_user_emails' => array( |
619 | 619 | 'id' => 'disable_new_user_emails', |
620 | - 'name' => __( 'Disable new user emails', 'invoicing' ), |
|
621 | - 'desc' => __( 'Do not send an email to customers when a new user account is created for them.', 'invoicing' ), |
|
620 | + 'name' => __('Disable new user emails', 'invoicing'), |
|
621 | + 'desc' => __('Do not send an email to customers when a new user account is created for them.', 'invoicing'), |
|
622 | 622 | 'type' => 'checkbox', |
623 | 623 | ), |
624 | 624 | 'login_to_checkout' => array( |
625 | 625 | 'id' => 'login_to_checkout', |
626 | - 'name' => __( 'Require Login To Checkout', 'invoicing' ), |
|
627 | - 'desc' => __( 'If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing' ), |
|
626 | + 'name' => __('Require Login To Checkout', 'invoicing'), |
|
627 | + 'desc' => __('If ticked then user needs to be logged in to view or pay invoice, can only view or pay their own invoice. If unticked then anyone can view or pay the invoice.', 'invoicing'), |
|
628 | 628 | 'type' => 'checkbox', |
629 | 629 | ), |
630 | 630 | 'enable_recaptcha' => array( |
631 | 631 | 'id' => 'enable_recaptcha', |
632 | - 'name' => __( 'Enable reCAPTCHA', 'invoicing' ), |
|
633 | - 'desc' => __( 'If ticked then reCAPTCHA will be enabled on the checkout page.', 'invoicing' ), |
|
632 | + 'name' => __('Enable reCAPTCHA', 'invoicing'), |
|
633 | + 'desc' => __('If ticked then reCAPTCHA will be enabled on the checkout page.', 'invoicing'), |
|
634 | 634 | 'type' => 'checkbox', |
635 | 635 | ), |
636 | 636 | 'recaptcha_version' => array( |
637 | 637 | 'id' => 'recaptcha_version', |
638 | - 'name' => __( 'reCAPTCHA Version', 'invoicing' ), |
|
639 | - 'desc' => __( 'Select the version of reCAPTCHA you would like to use.', 'invoicing' ), |
|
638 | + 'name' => __('reCAPTCHA Version', 'invoicing'), |
|
639 | + 'desc' => __('Select the version of reCAPTCHA you would like to use.', 'invoicing'), |
|
640 | 640 | 'type' => 'select', |
641 | 641 | 'options' => array( |
642 | - 'v2' => __( 'reCAPTCHA v2', 'invoicing' ), |
|
643 | - 'v3' => __( 'reCAPTCHA v3', 'invoicing' ), |
|
642 | + 'v2' => __('reCAPTCHA v2', 'invoicing'), |
|
643 | + 'v3' => __('reCAPTCHA v3', 'invoicing'), |
|
644 | 644 | ), |
645 | 645 | 'std' => 'v2', |
646 | 646 | ), |
647 | 647 | 'recaptcha_site_key' => array( |
648 | 648 | 'id' => 'recaptcha_site_key', |
649 | - 'name' => __( 'reCAPTCHA Site Key', 'invoicing' ), |
|
650 | - 'desc' => __( 'Enter your reCAPTCHA site key.', 'invoicing' ) . ' <a href="https://www.google.com/recaptcha/admin/create" target="_blank">' . __( 'Generate a site key.', 'invoicing' ) . '</a>', |
|
649 | + 'name' => __('reCAPTCHA Site Key', 'invoicing'), |
|
650 | + 'desc' => __('Enter your reCAPTCHA site key.', 'invoicing') . ' <a href="https://www.google.com/recaptcha/admin/create" target="_blank">' . __('Generate a site key.', 'invoicing') . '</a>', |
|
651 | 651 | 'type' => 'text', |
652 | 652 | 'size' => 'regular', |
653 | 653 | ), |
654 | 654 | 'recaptcha_secret_key' => array( |
655 | 655 | 'id' => 'recaptcha_secret_key', |
656 | - 'name' => __( 'reCAPTCHA Secret Key', 'invoicing' ), |
|
657 | - 'desc' => __( 'Enter your reCAPTCHA secret key.', 'invoicing' ), |
|
656 | + 'name' => __('reCAPTCHA Secret Key', 'invoicing'), |
|
657 | + 'desc' => __('Enter your reCAPTCHA secret key.', 'invoicing'), |
|
658 | 658 | 'type' => 'text', |
659 | 659 | 'size' => 'regular', |
660 | 660 | ), |
661 | 661 | 'maxmind_license_key' => array( |
662 | 662 | 'id' => 'maxmind_license_key', |
663 | - 'name' => __( 'MaxMind License Key', 'invoicing' ), |
|
663 | + 'name' => __('MaxMind License Key', 'invoicing'), |
|
664 | 664 | 'type' => 'text', |
665 | 665 | 'size' => 'regular', |
666 | - 'desc' => __( "Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing' ) . ' <a href="https://support.maxmind.com/hc/en-us/articles/4407111582235-Generate-a-License-Key">' . __( 'How to generate a free license key.', 'invoicing' ) . '</a>', |
|
666 | + 'desc' => __("Enter you license key if you would like to use MaxMind to automatically detect a customer's country.", 'invoicing') . ' <a href="https://support.maxmind.com/hc/en-us/articles/4407111582235-Generate-a-License-Key">' . __('How to generate a free license key.', 'invoicing') . '</a>', |
|
667 | 667 | ), |
668 | 668 | |
669 | 669 | 'uninstall_settings' => array( |
670 | 670 | 'id' => 'uninstall_settings', |
671 | - 'name' => '<h3>' . __( 'Uninstall Settings', 'invoicing' ) . '</h3>', |
|
671 | + 'name' => '<h3>' . __('Uninstall Settings', 'invoicing') . '</h3>', |
|
672 | 672 | 'type' => 'header', |
673 | 673 | ), |
674 | 674 | 'remove_data_on_unistall' => array( |
675 | 675 | 'id' => 'remove_data_on_unistall', |
676 | - 'name' => __( 'Remove Data on Uninstall?', 'invoicing' ), |
|
677 | - 'desc' => __( 'Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing' ), |
|
676 | + 'name' => __('Remove Data on Uninstall?', 'invoicing'), |
|
677 | + 'desc' => __('Check this box if you would like Invoicing plugin to completely remove all of its data when the plugin is deleted/uninstalled.', 'invoicing'), |
|
678 | 678 | 'type' => 'checkbox', |
679 | 679 | 'std' => '', |
680 | 680 | ), |
@@ -683,13 +683,13 @@ discard block |
||
683 | 683 | 'custom-css' => array( |
684 | 684 | 'css_settings' => array( |
685 | 685 | 'id' => 'css_settings', |
686 | - 'name' => '<h3>' . __( 'Custom CSS', 'invoicing' ) . '</h3>', |
|
686 | + 'name' => '<h3>' . __('Custom CSS', 'invoicing') . '</h3>', |
|
687 | 687 | 'type' => 'header', |
688 | 688 | ), |
689 | 689 | 'template_custom_css' => array( |
690 | 690 | 'id' => 'template_custom_css', |
691 | - 'name' => __( 'Invoice Template CSS', 'invoicing' ), |
|
692 | - 'desc' => __( 'Add CSS to modify appearance of the print invoice page.', 'invoicing' ), |
|
691 | + 'name' => __('Invoice Template CSS', 'invoicing'), |
|
692 | + 'desc' => __('Add CSS to modify appearance of the print invoice page.', 'invoicing'), |
|
693 | 693 | 'type' => 'textarea', |
694 | 694 | 'class' => 'regular-text', |
695 | 695 | 'rows' => 10, |
@@ -704,8 +704,8 @@ discard block |
||
704 | 704 | 'main' => array( |
705 | 705 | 'tool_settings' => array( |
706 | 706 | 'id' => 'tool_settings', |
707 | - 'name' => '<h3>' . __( 'Diagnostic Tools', 'invoicing' ) . '</h3>', |
|
708 | - 'desc' => __( 'Invoicing diagnostic tools', 'invoicing' ), |
|
707 | + 'name' => '<h3>' . __('Diagnostic Tools', 'invoicing') . '</h3>', |
|
708 | + 'desc' => __('Invoicing diagnostic tools', 'invoicing'), |
|
709 | 709 | 'type' => 'tools', |
710 | 710 | ), |
711 | 711 | ), |
@@ -9,41 +9,41 @@ discard block |
||
9 | 9 | * @version 1.0.19 |
10 | 10 | */ |
11 | 11 | |
12 | -defined( 'ABSPATH' ) || exit; |
|
12 | +defined('ABSPATH') || exit; |
|
13 | 13 | |
14 | 14 | return array( |
15 | 15 | |
16 | 16 | array( |
17 | 17 | 'type' => 'heading', |
18 | - 'name' => __( 'Heading', 'invoicing' ), |
|
18 | + 'name' => __('Heading', 'invoicing'), |
|
19 | 19 | 'defaults' => array( |
20 | 20 | 'level' => 'h2', |
21 | - 'text' => __( 'Heading', 'invoicing' ), |
|
21 | + 'text' => __('Heading', 'invoicing'), |
|
22 | 22 | ), |
23 | 23 | ), |
24 | 24 | |
25 | 25 | array( |
26 | 26 | 'type' => 'paragraph', |
27 | - 'name' => __( 'Paragraph', 'invoicing' ), |
|
27 | + 'name' => __('Paragraph', 'invoicing'), |
|
28 | 28 | 'defaults' => array( |
29 | - 'text' => __( 'Paragraph text', 'invoicing' ), |
|
29 | + 'text' => __('Paragraph text', 'invoicing'), |
|
30 | 30 | ), |
31 | 31 | ), |
32 | 32 | |
33 | 33 | array( |
34 | 34 | 'type' => 'alert', |
35 | - 'name' => __( 'Alert', 'invoicing' ), |
|
35 | + 'name' => __('Alert', 'invoicing'), |
|
36 | 36 | 'defaults' => array( |
37 | 37 | 'value' => '', |
38 | 38 | 'class' => 'alert-warning', |
39 | - 'text' => __( 'Alert', 'invoicing' ), |
|
39 | + 'text' => __('Alert', 'invoicing'), |
|
40 | 40 | 'dismissible' => false, |
41 | 41 | ), |
42 | 42 | ), |
43 | 43 | |
44 | 44 | array( |
45 | 45 | 'type' => 'separator', |
46 | - 'name' => __( 'Separator', 'invoicing' ), |
|
46 | + 'name' => __('Separator', 'invoicing'), |
|
47 | 47 | 'defaults' => array( |
48 | 48 | 'value' => '', |
49 | 49 | ), |
@@ -51,11 +51,11 @@ discard block |
||
51 | 51 | |
52 | 52 | array( |
53 | 53 | 'type' => 'text', |
54 | - 'name' => __( 'Text Input', 'invoicing' ), |
|
54 | + 'name' => __('Text Input', 'invoicing'), |
|
55 | 55 | 'defaults' => array( |
56 | - 'placeholder' => __( 'Enter some text', 'invoicing' ), |
|
56 | + 'placeholder' => __('Enter some text', 'invoicing'), |
|
57 | 57 | 'value' => '', |
58 | - 'label' => __( 'Field Label', 'invoicing' ), |
|
58 | + 'label' => __('Field Label', 'invoicing'), |
|
59 | 59 | 'description' => '', |
60 | 60 | 'required' => false, |
61 | 61 | ), |
@@ -63,11 +63,11 @@ discard block |
||
63 | 63 | |
64 | 64 | array( |
65 | 65 | 'type' => 'textarea', |
66 | - 'name' => __( 'Textarea', 'invoicing' ), |
|
66 | + 'name' => __('Textarea', 'invoicing'), |
|
67 | 67 | 'defaults' => array( |
68 | - 'placeholder' => __( 'Enter your text here', 'invoicing' ), |
|
68 | + 'placeholder' => __('Enter your text here', 'invoicing'), |
|
69 | 69 | 'value' => '', |
70 | - 'label' => __( 'Textarea Label', 'invoicing' ), |
|
70 | + 'label' => __('Textarea Label', 'invoicing'), |
|
71 | 71 | 'description' => '', |
72 | 72 | 'required' => false, |
73 | 73 | ), |
@@ -75,27 +75,27 @@ discard block |
||
75 | 75 | |
76 | 76 | array( |
77 | 77 | 'type' => 'select', |
78 | - 'name' => __( 'Dropdown', 'invoicing' ), |
|
78 | + 'name' => __('Dropdown', 'invoicing'), |
|
79 | 79 | 'defaults' => array( |
80 | - 'placeholder' => __( 'Select a value', 'invoicing' ), |
|
80 | + 'placeholder' => __('Select a value', 'invoicing'), |
|
81 | 81 | 'value' => '', |
82 | - 'label' => __( 'Dropdown Label', 'invoicing' ), |
|
82 | + 'label' => __('Dropdown Label', 'invoicing'), |
|
83 | 83 | 'description' => '', |
84 | 84 | 'required' => false, |
85 | 85 | 'options' => array( |
86 | - esc_attr__( 'Option One', 'invoicing' ), |
|
87 | - esc_attr__( 'Option Two', 'invoicing' ), |
|
88 | - esc_attr__( 'Option Three', 'invoicing' ), |
|
86 | + esc_attr__('Option One', 'invoicing'), |
|
87 | + esc_attr__('Option Two', 'invoicing'), |
|
88 | + esc_attr__('Option Three', 'invoicing'), |
|
89 | 89 | ), |
90 | 90 | ), |
91 | 91 | ), |
92 | 92 | |
93 | 93 | array( |
94 | 94 | 'type' => 'checkbox', |
95 | - 'name' => __( 'Checkbox', 'invoicing' ), |
|
95 | + 'name' => __('Checkbox', 'invoicing'), |
|
96 | 96 | 'defaults' => array( |
97 | 97 | 'value' => '', |
98 | - 'label' => __( 'Checkbox Label', 'invoicing' ), |
|
98 | + 'label' => __('Checkbox Label', 'invoicing'), |
|
99 | 99 | 'description' => '', |
100 | 100 | 'required' => false, |
101 | 101 | ), |
@@ -103,23 +103,23 @@ discard block |
||
103 | 103 | |
104 | 104 | array( |
105 | 105 | 'type' => 'radio', |
106 | - 'name' => __( 'Radio', 'invoicing' ), |
|
106 | + 'name' => __('Radio', 'invoicing'), |
|
107 | 107 | 'defaults' => array( |
108 | - 'label' => __( 'Select one choice', 'invoicing' ), |
|
108 | + 'label' => __('Select one choice', 'invoicing'), |
|
109 | 109 | 'options' => array( |
110 | - esc_attr__( 'Choice One', 'invoicing' ), |
|
111 | - esc_attr__( 'Choice Two', 'invoicing' ), |
|
112 | - esc_attr__( 'Choice Three', 'invoicing' ), |
|
110 | + esc_attr__('Choice One', 'invoicing'), |
|
111 | + esc_attr__('Choice Two', 'invoicing'), |
|
112 | + esc_attr__('Choice Three', 'invoicing'), |
|
113 | 113 | ), |
114 | 114 | ), |
115 | 115 | ), |
116 | 116 | |
117 | 117 | array( |
118 | 118 | 'type' => 'date', |
119 | - 'name' => __( 'Date', 'invoicing' ), |
|
119 | + 'name' => __('Date', 'invoicing'), |
|
120 | 120 | 'defaults' => array( |
121 | 121 | 'value' => '', |
122 | - 'label' => __( 'Date', 'invoicing' ), |
|
122 | + 'label' => __('Date', 'invoicing'), |
|
123 | 123 | 'description' => '', |
124 | 124 | 'single' => 'single', |
125 | 125 | 'required' => false, |
@@ -128,10 +128,10 @@ discard block |
||
128 | 128 | |
129 | 129 | array( |
130 | 130 | 'type' => 'time', |
131 | - 'name' => __( 'Time', 'invoicing' ), |
|
131 | + 'name' => __('Time', 'invoicing'), |
|
132 | 132 | 'defaults' => array( |
133 | 133 | 'value' => '', |
134 | - 'label' => __( 'Time', 'invoicing' ), |
|
134 | + 'label' => __('Time', 'invoicing'), |
|
135 | 135 | 'description' => '', |
136 | 136 | 'required' => false, |
137 | 137 | ), |
@@ -139,11 +139,11 @@ discard block |
||
139 | 139 | |
140 | 140 | array( |
141 | 141 | 'type' => 'number', |
142 | - 'name' => __( 'Number', 'invoicing' ), |
|
142 | + 'name' => __('Number', 'invoicing'), |
|
143 | 143 | 'defaults' => array( |
144 | 144 | 'placeholder' => '', |
145 | 145 | 'value' => '', |
146 | - 'label' => __( 'Number', 'invoicing' ), |
|
146 | + 'label' => __('Number', 'invoicing'), |
|
147 | 147 | 'description' => '', |
148 | 148 | 'required' => false, |
149 | 149 | ), |
@@ -151,11 +151,11 @@ discard block |
||
151 | 151 | |
152 | 152 | array( |
153 | 153 | 'type' => 'website', |
154 | - 'name' => __( 'Website', 'invoicing' ), |
|
154 | + 'name' => __('Website', 'invoicing'), |
|
155 | 155 | 'defaults' => array( |
156 | 156 | 'placeholder' => 'http://example.com', |
157 | 157 | 'value' => '', |
158 | - 'label' => __( 'Website', 'invoicing' ), |
|
158 | + 'label' => __('Website', 'invoicing'), |
|
159 | 159 | 'description' => '', |
160 | 160 | 'required' => false, |
161 | 161 | ), |
@@ -163,11 +163,11 @@ discard block |
||
163 | 163 | |
164 | 164 | array( |
165 | 165 | 'type' => 'email', |
166 | - 'name' => __( 'Email', 'invoicing' ), |
|
166 | + 'name' => __('Email', 'invoicing'), |
|
167 | 167 | 'defaults' => array( |
168 | 168 | 'placeholder' => '[email protected]', |
169 | 169 | 'value' => '', |
170 | - 'label' => __( 'Email Address', 'invoicing' ), |
|
170 | + 'label' => __('Email Address', 'invoicing'), |
|
171 | 171 | 'description' => '', |
172 | 172 | 'required' => false, |
173 | 173 | ), |
@@ -175,31 +175,31 @@ discard block |
||
175 | 175 | |
176 | 176 | array( |
177 | 177 | 'type' => 'file_upload', |
178 | - 'name' => __( 'File Upload', 'invoicing' ), |
|
178 | + 'name' => __('File Upload', 'invoicing'), |
|
179 | 179 | 'defaults' => array( |
180 | 180 | 'value' => '', |
181 | - 'label' => __( 'Upload File', 'invoicing' ), |
|
181 | + 'label' => __('Upload File', 'invoicing'), |
|
182 | 182 | 'description' => '', |
183 | 183 | 'required' => false, |
184 | 184 | 'max_file_num' => 1, |
185 | - 'file_types' => array( 'jpg|jpeg|jpe', 'gif', 'png' ), |
|
185 | + 'file_types' => array('jpg|jpeg|jpe', 'gif', 'png'), |
|
186 | 186 | ), |
187 | 187 | ), |
188 | 188 | |
189 | 189 | array( |
190 | 190 | 'type' => 'address', |
191 | - 'name' => __( 'Address', 'invoicing' ), |
|
191 | + 'name' => __('Address', 'invoicing'), |
|
192 | 192 | 'defaults' => array( |
193 | 193 | |
194 | 194 | 'address_type' => 'billing', |
195 | - 'billing_address_title' => __( 'Billing Address', 'invoicing' ), |
|
196 | - 'shipping_address_title' => __( 'Shipping Address', 'invoicing' ), |
|
197 | - 'shipping_address_toggle' => __( 'Same billing & shipping address.', 'invoicing' ), |
|
195 | + 'billing_address_title' => __('Billing Address', 'invoicing'), |
|
196 | + 'shipping_address_title' => __('Shipping Address', 'invoicing'), |
|
197 | + 'shipping_address_toggle' => __('Same billing & shipping address.', 'invoicing'), |
|
198 | 198 | 'fields' => array( |
199 | 199 | array( |
200 | 200 | 'placeholder' => 'Jon', |
201 | 201 | 'value' => '', |
202 | - 'label' => __( 'First Name', 'invoicing' ), |
|
202 | + 'label' => __('First Name', 'invoicing'), |
|
203 | 203 | 'description' => '', |
204 | 204 | 'required' => false, |
205 | 205 | 'visible' => true, |
@@ -210,7 +210,7 @@ discard block |
||
210 | 210 | array( |
211 | 211 | 'placeholder' => 'Snow', |
212 | 212 | 'value' => '', |
213 | - 'label' => __( 'Last Name', 'invoicing' ), |
|
213 | + 'label' => __('Last Name', 'invoicing'), |
|
214 | 214 | 'description' => '', |
215 | 215 | 'required' => false, |
216 | 216 | 'visible' => true, |
@@ -221,7 +221,7 @@ discard block |
||
221 | 221 | array( |
222 | 222 | 'placeholder' => '', |
223 | 223 | 'value' => '', |
224 | - 'label' => __( 'Address', 'invoicing' ), |
|
224 | + 'label' => __('Address', 'invoicing'), |
|
225 | 225 | 'description' => '', |
226 | 226 | 'required' => false, |
227 | 227 | 'visible' => true, |
@@ -232,7 +232,7 @@ discard block |
||
232 | 232 | array( |
233 | 233 | 'placeholder' => '', |
234 | 234 | 'value' => '', |
235 | - 'label' => __( 'City', 'invoicing' ), |
|
235 | + 'label' => __('City', 'invoicing'), |
|
236 | 236 | 'description' => '', |
237 | 237 | 'required' => false, |
238 | 238 | 'visible' => true, |
@@ -241,9 +241,9 @@ discard block |
||
241 | 241 | ), |
242 | 242 | |
243 | 243 | array( |
244 | - 'placeholder' => __( 'Select your country' ), |
|
244 | + 'placeholder' => __('Select your country'), |
|
245 | 245 | 'value' => '', |
246 | - 'label' => __( 'Country', 'invoicing' ), |
|
246 | + 'label' => __('Country', 'invoicing'), |
|
247 | 247 | 'description' => '', |
248 | 248 | 'required' => false, |
249 | 249 | 'visible' => true, |
@@ -252,9 +252,9 @@ discard block |
||
252 | 252 | ), |
253 | 253 | |
254 | 254 | array( |
255 | - 'placeholder' => __( 'Choose a state', 'invoicing' ), |
|
255 | + 'placeholder' => __('Choose a state', 'invoicing'), |
|
256 | 256 | 'value' => '', |
257 | - 'label' => __( 'State / Province', 'invoicing' ), |
|
257 | + 'label' => __('State / Province', 'invoicing'), |
|
258 | 258 | 'description' => '', |
259 | 259 | 'required' => false, |
260 | 260 | 'visible' => true, |
@@ -265,7 +265,7 @@ discard block |
||
265 | 265 | array( |
266 | 266 | 'placeholder' => '', |
267 | 267 | 'value' => '', |
268 | - 'label' => __( 'ZIP / Postcode', 'invoicing' ), |
|
268 | + 'label' => __('ZIP / Postcode', 'invoicing'), |
|
269 | 269 | 'description' => '', |
270 | 270 | 'required' => false, |
271 | 271 | 'visible' => true, |
@@ -276,7 +276,7 @@ discard block |
||
276 | 276 | array( |
277 | 277 | 'placeholder' => '', |
278 | 278 | 'value' => '', |
279 | - 'label' => __( 'Phone', 'invoicing' ), |
|
279 | + 'label' => __('Phone', 'invoicing'), |
|
280 | 280 | 'description' => '', |
281 | 281 | 'required' => false, |
282 | 282 | 'visible' => true, |
@@ -287,7 +287,7 @@ discard block |
||
287 | 287 | array( |
288 | 288 | 'placeholder' => '', |
289 | 289 | 'value' => '', |
290 | - 'label' => __( 'Company', 'invoicing' ), |
|
290 | + 'label' => __('Company', 'invoicing'), |
|
291 | 291 | 'description' => '', |
292 | 292 | 'required' => false, |
293 | 293 | 'visible' => false, |
@@ -298,7 +298,7 @@ discard block |
||
298 | 298 | array( |
299 | 299 | 'placeholder' => '', |
300 | 300 | 'value' => '', |
301 | - 'label' => __( 'Company ID', 'invoicing' ), |
|
301 | + 'label' => __('Company ID', 'invoicing'), |
|
302 | 302 | 'description' => '', |
303 | 303 | 'required' => false, |
304 | 304 | 'visible' => false, |
@@ -309,7 +309,7 @@ discard block |
||
309 | 309 | array( |
310 | 310 | 'placeholder' => '', |
311 | 311 | 'value' => '', |
312 | - 'label' => __( 'VAT Number', 'invoicing' ), |
|
312 | + 'label' => __('VAT Number', 'invoicing'), |
|
313 | 313 | 'description' => '', |
314 | 314 | 'required' => false, |
315 | 315 | 'visible' => false, |
@@ -322,11 +322,11 @@ discard block |
||
322 | 322 | |
323 | 323 | array( |
324 | 324 | 'type' => 'billing_email', |
325 | - 'name' => __( 'Billing Email', 'invoicing' ), |
|
325 | + 'name' => __('Billing Email', 'invoicing'), |
|
326 | 326 | 'defaults' => array( |
327 | 327 | 'placeholder' => '[email protected]', |
328 | 328 | 'value' => '', |
329 | - 'label' => __( 'Billing Email', 'invoicing' ), |
|
329 | + 'label' => __('Billing Email', 'invoicing'), |
|
330 | 330 | 'description' => '', |
331 | 331 | 'premade' => true, |
332 | 332 | ), |
@@ -334,18 +334,18 @@ discard block |
||
334 | 334 | |
335 | 335 | array( |
336 | 336 | 'type' => 'discount', |
337 | - 'name' => __( 'Discount Input', 'invoicing' ), |
|
337 | + 'name' => __('Discount Input', 'invoicing'), |
|
338 | 338 | 'defaults' => array( |
339 | 339 | 'value' => '', |
340 | - 'input_label' => __( 'Coupon Code', 'invoicing' ), |
|
341 | - 'button_label' => __( 'Apply Coupon', 'invoicing' ), |
|
342 | - 'description' => __( 'Have a discount code? Enter it above.', 'invoicing' ), |
|
340 | + 'input_label' => __('Coupon Code', 'invoicing'), |
|
341 | + 'button_label' => __('Apply Coupon', 'invoicing'), |
|
342 | + 'description' => __('Have a discount code? Enter it above.', 'invoicing'), |
|
343 | 343 | ), |
344 | 344 | ), |
345 | 345 | |
346 | 346 | array( |
347 | 347 | 'type' => 'items', |
348 | - 'name' => __( 'Items', 'invoicing' ), |
|
348 | + 'name' => __('Items', 'invoicing'), |
|
349 | 349 | 'defaults' => array( |
350 | 350 | 'value' => '', |
351 | 351 | 'items_type' => 'total', |
@@ -357,22 +357,22 @@ discard block |
||
357 | 357 | |
358 | 358 | array( |
359 | 359 | 'type' => 'price_input', |
360 | - 'name' => __( 'Price Input', 'invoicing' ), |
|
360 | + 'name' => __('Price Input', 'invoicing'), |
|
361 | 361 | 'defaults' => array( |
362 | - 'placeholder' => wpinv_format_amount( 0 ), |
|
363 | - 'value' => wpinv_format_amount( 0 ), |
|
364 | - 'minimum' => wpinv_format_amount( 0 ), |
|
365 | - 'label' => __( 'Enter Amount', 'invoicing' ), |
|
362 | + 'placeholder' => wpinv_format_amount(0), |
|
363 | + 'value' => wpinv_format_amount(0), |
|
364 | + 'minimum' => wpinv_format_amount(0), |
|
365 | + 'label' => __('Enter Amount', 'invoicing'), |
|
366 | 366 | 'description' => '', |
367 | 367 | ), |
368 | 368 | ), |
369 | 369 | |
370 | 370 | array( |
371 | 371 | 'type' => 'price_select', |
372 | - 'name' => __( 'Price Select', 'invoicing' ), |
|
372 | + 'name' => __('Price Select', 'invoicing'), |
|
373 | 373 | 'defaults' => array( |
374 | 374 | 'description' => '', |
375 | - 'label' => __( 'Select Amount', 'invoicing' ), |
|
375 | + 'label' => __('Select Amount', 'invoicing'), |
|
376 | 376 | 'options' => 'Option 1|10, Option 2|20', |
377 | 377 | 'placeholder' => '', |
378 | 378 | 'select_type' => 'select', |
@@ -381,39 +381,39 @@ discard block |
||
381 | 381 | |
382 | 382 | array( |
383 | 383 | 'type' => 'pay_button', |
384 | - 'name' => __( 'Payment Button', 'invoicing' ), |
|
384 | + 'name' => __('Payment Button', 'invoicing'), |
|
385 | 385 | 'defaults' => array( |
386 | 386 | 'value' => '', |
387 | 387 | 'class' => 'btn-primary', |
388 | - 'label' => __( 'Pay %price% »', 'invoicing' ), |
|
389 | - 'free' => __( 'Continue »', 'invoicing' ), |
|
390 | - 'description' => __( 'By continuing with our payment, you are agreeing to our privacy policy and terms of service.', 'invoicing' ), |
|
388 | + 'label' => __('Pay %price% »', 'invoicing'), |
|
389 | + 'free' => __('Continue »', 'invoicing'), |
|
390 | + 'description' => __('By continuing with our payment, you are agreeing to our privacy policy and terms of service.', 'invoicing'), |
|
391 | 391 | 'premade' => true, |
392 | 392 | ), |
393 | 393 | ), |
394 | 394 | |
395 | 395 | array( |
396 | 396 | 'type' => 'gateway_select', |
397 | - 'name' => __( 'Gateway Select', 'invoicing' ), |
|
397 | + 'name' => __('Gateway Select', 'invoicing'), |
|
398 | 398 | 'defaults' => array( |
399 | - 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
399 | + 'text' => __('Select Payment Method', 'invoicing'), |
|
400 | 400 | 'premade' => true, |
401 | 401 | ), |
402 | 402 | ), |
403 | 403 | |
404 | 404 | array( |
405 | 405 | 'type' => 'total_payable', |
406 | - 'name' => __( 'Total Payable', 'invoicing' ), |
|
406 | + 'name' => __('Total Payable', 'invoicing'), |
|
407 | 407 | 'defaults' => array( |
408 | - 'text' => __( 'Total to pay:', 'invoicing' ), |
|
408 | + 'text' => __('Total to pay:', 'invoicing'), |
|
409 | 409 | ), |
410 | 410 | ), |
411 | 411 | |
412 | 412 | array( |
413 | 413 | 'type' => 'ip_address', |
414 | - 'name' => __( 'IP Address', 'invoicing' ), |
|
414 | + 'name' => __('IP Address', 'invoicing'), |
|
415 | 415 | 'defaults' => array( |
416 | - 'text' => __( 'Your IP address is:', 'invoicing' ), |
|
416 | + 'text' => __('Your IP address is:', 'invoicing'), |
|
417 | 417 | ), |
418 | 418 | ), |
419 | 419 | ); |