Passed
Push — master ( 31f474...7d7341 )
by Kiran
10:27 queued 05:04
created
includes/data-stores/class-getpaid-data.php 2 patches
Indentation   +857 added lines, -857 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 }
Please login to merge, or discard this patch.
Spacing   +162 added lines, -162 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 }
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-subscription-data-store.php 2 patches
Indentation   +182 added lines, -182 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 	|--------------------------------------------------------------------------
Please login to merge, or discard this patch.
Spacing   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 	/*
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-discount-data-store.php 2 patches
Indentation   +188 added lines, -188 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 	|--------------------------------------------------------------------------
Please login to merge, or discard this patch.
Spacing   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 	}
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-invoice-data-store.php 2 patches
Spacing   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 
Please login to merge, or discard this patch.
Indentation   +490 added lines, -490 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 }
Please login to merge, or discard this patch.
includes/class-wpinv-subscriptions.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -12,8 +12,8 @@  discard block
 block discarded – undo
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
 block discarded – undo
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();
Please login to merge, or discard this patch.
Spacing   +171 added lines, -171 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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;
Please login to merge, or discard this patch.
includes/wpinv-gateway-functions.php 2 patches
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -271,26 +271,26 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 /**
Please login to merge, or discard this patch.
Spacing   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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);
Please login to merge, or discard this patch.
includes/data/countries.php 2 patches
Indentation   +252 added lines, -252 removed lines patch added patch discarded remove patch
@@ -12,256 +12,256 @@
 block discarded – undo
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&Ccedil;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&eacute;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&atilde;o Tom&eacute; and Pr&iacute;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&Ccedil;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&eacute;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&atilde;o Tom&eacute; and Pr&iacute;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
 );
Please login to merge, or discard this patch.
Spacing   +253 added lines, -253 removed lines patch added patch discarded remove patch
@@ -9,259 +9,259 @@
 block discarded – undo
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&Ccedil;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&eacute;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&atilde;o Tom&eacute; and Pr&iacute;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&Ccedil;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&eacute;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&atilde;o Tom&eacute; and Pr&iacute;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
 );
Please login to merge, or discard this patch.
includes/data/admin-settings.php 2 patches
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -38,8 +38,8 @@
 block discarded – undo
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
 }
Please login to merge, or discard this patch.
Spacing   +184 added lines, -184 removed lines patch added patch discarded remove patch
@@ -8,40 +8,40 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
             ),
Please login to merge, or discard this patch.
includes/data/payment-form-elements.php 1 patch
Spacing   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -9,41 +9,41 @@  discard block
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 block discarded – undo
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
 );
Please login to merge, or discard this patch.