Passed
Pull Request — master (#281)
by Kiran
04:07
created
includes/data/phone-codes.php 2 patches
Indentation   +257 added lines, -257 removed lines patch added patch discarded remove patch
@@ -10,261 +10,261 @@
 block discarded – undo
10 10
 defined( 'ABSPATH' ) || exit;
11 11
 
12 12
 return array(
13
-	'BD' => '+880',
14
-	'BE' => '+32',
15
-	'BF' => '+226',
16
-	'BG' => '+359',
17
-	'BA' => '+387',
18
-	'BB' => '+1246',
19
-	'WF' => '+681',
20
-	'BL' => '+590',
21
-	'BM' => '+1441',
22
-	'BN' => '+673',
23
-	'BO' => '+591',
24
-	'BH' => '+973',
25
-	'BI' => '+257',
26
-	'BJ' => '+229',
27
-	'BT' => '+975',
28
-	'JM' => '+1876',
29
-	'BV' => '',
30
-	'BW' => '+267',
31
-	'WS' => '+685',
32
-	'BQ' => '+599',
33
-	'BR' => '+55',
34
-	'BS' => '+1242',
35
-	'JE' => '+441534',
36
-	'BY' => '+375',
37
-	'BZ' => '+501',
38
-	'RU' => '+7',
39
-	'RW' => '+250',
40
-	'RS' => '+381',
41
-	'TL' => '+670',
42
-	'RE' => '+262',
43
-	'TM' => '+993',
44
-	'TJ' => '+992',
45
-	'RO' => '+40',
46
-	'TK' => '+690',
47
-	'GW' => '+245',
48
-	'GU' => '+1671',
49
-	'GT' => '+502',
50
-	'GS' => '',
51
-	'GR' => '+30',
52
-	'GQ' => '+240',
53
-	'GP' => '+590',
54
-	'JP' => '+81',
55
-	'GY' => '+592',
56
-	'GG' => '+441481',
57
-	'GF' => '+594',
58
-	'GE' => '+995',
59
-	'GD' => '+1473',
60
-	'GB' => '+44',
61
-	'GA' => '+241',
62
-	'SV' => '+503',
63
-	'GN' => '+224',
64
-	'GM' => '+220',
65
-	'GL' => '+299',
66
-	'GI' => '+350',
67
-	'GH' => '+233',
68
-	'OM' => '+968',
69
-	'TN' => '+216',
70
-	'JO' => '+962',
71
-	'HR' => '+385',
72
-	'HT' => '+509',
73
-	'HU' => '+36',
74
-	'HK' => '+852',
75
-	'HN' => '+504',
76
-	'HM' => '',
77
-	'VE' => '+58',
78
-	'PR' => array(
79
-		'+1787',
80
-		'+1939',
81
-	),
82
-	'PS' => '+970',
83
-	'PW' => '+680',
84
-	'PT' => '+351',
85
-	'SJ' => '+47',
86
-	'PY' => '+595',
87
-	'IQ' => '+964',
88
-	'PA' => '+507',
89
-	'PF' => '+689',
90
-	'PG' => '+675',
91
-	'PE' => '+51',
92
-	'PK' => '+92',
93
-	'PH' => '+63',
94
-	'PN' => '+870',
95
-	'PL' => '+48',
96
-	'PM' => '+508',
97
-	'ZM' => '+260',
98
-	'EH' => '+212',
99
-	'EE' => '+372',
100
-	'EG' => '+20',
101
-	'ZA' => '+27',
102
-	'EC' => '+593',
103
-	'IT' => '+39',
104
-	'VN' => '+84',
105
-	'SB' => '+677',
106
-	'ET' => '+251',
107
-	'SO' => '+252',
108
-	'ZW' => '+263',
109
-	'SA' => '+966',
110
-	'ES' => '+34',
111
-	'ER' => '+291',
112
-	'ME' => '+382',
113
-	'MD' => '+373',
114
-	'MG' => '+261',
115
-	'MF' => '+590',
116
-	'MA' => '+212',
117
-	'MC' => '+377',
118
-	'UZ' => '+998',
119
-	'MM' => '+95',
120
-	'ML' => '+223',
121
-	'MO' => '+853',
122
-	'MN' => '+976',
123
-	'MH' => '+692',
124
-	'MK' => '+389',
125
-	'MU' => '+230',
126
-	'MT' => '+356',
127
-	'MW' => '+265',
128
-	'MV' => '+960',
129
-	'MQ' => '+596',
130
-	'MP' => '+1670',
131
-	'MS' => '+1664',
132
-	'MR' => '+222',
133
-	'IM' => '+441624',
134
-	'UG' => '+256',
135
-	'TZ' => '+255',
136
-	'MY' => '+60',
137
-	'MX' => '+52',
138
-	'IL' => '+972',
139
-	'FR' => '+33',
140
-	'IO' => '+246',
141
-	'SH' => '+290',
142
-	'FI' => '+358',
143
-	'FJ' => '+679',
144
-	'FK' => '+500',
145
-	'FM' => '+691',
146
-	'FO' => '+298',
147
-	'NI' => '+505',
148
-	'NL' => '+31',
149
-	'NO' => '+47',
150
-	'NA' => '+264',
151
-	'VU' => '+678',
152
-	'NC' => '+687',
153
-	'NE' => '+227',
154
-	'NF' => '+672',
155
-	'NG' => '+234',
156
-	'NZ' => '+64',
157
-	'NP' => '+977',
158
-	'NR' => '+674',
159
-	'NU' => '+683',
160
-	'CK' => '+682',
161
-	'XK' => '',
162
-	'CI' => '+225',
163
-	'CH' => '+41',
164
-	'CO' => '+57',
165
-	'CN' => '+86',
166
-	'CM' => '+237',
167
-	'CL' => '+56',
168
-	'CC' => '+61',
169
-	'CA' => '+1',
170
-	'CG' => '+242',
171
-	'CF' => '+236',
172
-	'CD' => '+243',
173
-	'CZ' => '+420',
174
-	'CY' => '+357',
175
-	'CX' => '+61',
176
-	'CR' => '+506',
177
-	'CW' => '+599',
178
-	'CV' => '+238',
179
-	'CU' => '+53',
180
-	'SZ' => '+268',
181
-	'SY' => '+963',
182
-	'SX' => '+599',
183
-	'KG' => '+996',
184
-	'KE' => '+254',
185
-	'SS' => '+211',
186
-	'SR' => '+597',
187
-	'KI' => '+686',
188
-	'KH' => '+855',
189
-	'KN' => '+1869',
190
-	'KM' => '+269',
191
-	'ST' => '+239',
192
-	'SK' => '+421',
193
-	'KR' => '+82',
194
-	'SI' => '+386',
195
-	'KP' => '+850',
196
-	'KW' => '+965',
197
-	'SN' => '+221',
198
-	'SM' => '+378',
199
-	'SL' => '+232',
200
-	'SC' => '+248',
201
-	'KZ' => '+7',
202
-	'KY' => '+1345',
203
-	'SG' => '+65',
204
-	'SE' => '+46',
205
-	'SD' => '+249',
206
-	'DO' => array(
207
-		'+1809',
208
-		'+1829',
209
-		'+1849',
210
-	),
211
-	'DM' => '+1767',
212
-	'DJ' => '+253',
213
-	'DK' => '+45',
214
-	'VG' => '+1284',
215
-	'DE' => '+49',
216
-	'YE' => '+967',
217
-	'DZ' => '+213',
218
-	'US' => '+1',
219
-	'UY' => '+598',
220
-	'YT' => '+262',
221
-	'UM' => '+1',
222
-	'LB' => '+961',
223
-	'LC' => '+1758',
224
-	'LA' => '+856',
225
-	'TV' => '+688',
226
-	'TW' => '+886',
227
-	'TT' => '+1868',
228
-	'TR' => '+90',
229
-	'LK' => '+94',
230
-	'LI' => '+423',
231
-	'LV' => '+371',
232
-	'TO' => '+676',
233
-	'LT' => '+370',
234
-	'LU' => '+352',
235
-	'LR' => '+231',
236
-	'LS' => '+266',
237
-	'TH' => '+66',
238
-	'TF' => '',
239
-	'TG' => '+228',
240
-	'TD' => '+235',
241
-	'TC' => '+1649',
242
-	'LY' => '+218',
243
-	'VA' => '+379',
244
-	'VC' => '+1784',
245
-	'AE' => '+971',
246
-	'AD' => '+376',
247
-	'AG' => '+1268',
248
-	'AF' => '+93',
249
-	'AI' => '+1264',
250
-	'VI' => '+1340',
251
-	'IS' => '+354',
252
-	'IR' => '+98',
253
-	'AM' => '+374',
254
-	'AL' => '+355',
255
-	'AO' => '+244',
256
-	'AQ' => '',
257
-	'AS' => '+1684',
258
-	'AR' => '+54',
259
-	'AU' => '+61',
260
-	'AT' => '+43',
261
-	'AW' => '+297',
262
-	'IN' => '+91',
263
-	'AX' => '+35818',
264
-	'AZ' => '+994',
265
-	'IE' => '+353',
266
-	'ID' => '+62',
267
-	'UA' => '+380',
268
-	'QA' => '+974',
269
-	'MZ' => '+258',
13
+    'BD' => '+880',
14
+    'BE' => '+32',
15
+    'BF' => '+226',
16
+    'BG' => '+359',
17
+    'BA' => '+387',
18
+    'BB' => '+1246',
19
+    'WF' => '+681',
20
+    'BL' => '+590',
21
+    'BM' => '+1441',
22
+    'BN' => '+673',
23
+    'BO' => '+591',
24
+    'BH' => '+973',
25
+    'BI' => '+257',
26
+    'BJ' => '+229',
27
+    'BT' => '+975',
28
+    'JM' => '+1876',
29
+    'BV' => '',
30
+    'BW' => '+267',
31
+    'WS' => '+685',
32
+    'BQ' => '+599',
33
+    'BR' => '+55',
34
+    'BS' => '+1242',
35
+    'JE' => '+441534',
36
+    'BY' => '+375',
37
+    'BZ' => '+501',
38
+    'RU' => '+7',
39
+    'RW' => '+250',
40
+    'RS' => '+381',
41
+    'TL' => '+670',
42
+    'RE' => '+262',
43
+    'TM' => '+993',
44
+    'TJ' => '+992',
45
+    'RO' => '+40',
46
+    'TK' => '+690',
47
+    'GW' => '+245',
48
+    'GU' => '+1671',
49
+    'GT' => '+502',
50
+    'GS' => '',
51
+    'GR' => '+30',
52
+    'GQ' => '+240',
53
+    'GP' => '+590',
54
+    'JP' => '+81',
55
+    'GY' => '+592',
56
+    'GG' => '+441481',
57
+    'GF' => '+594',
58
+    'GE' => '+995',
59
+    'GD' => '+1473',
60
+    'GB' => '+44',
61
+    'GA' => '+241',
62
+    'SV' => '+503',
63
+    'GN' => '+224',
64
+    'GM' => '+220',
65
+    'GL' => '+299',
66
+    'GI' => '+350',
67
+    'GH' => '+233',
68
+    'OM' => '+968',
69
+    'TN' => '+216',
70
+    'JO' => '+962',
71
+    'HR' => '+385',
72
+    'HT' => '+509',
73
+    'HU' => '+36',
74
+    'HK' => '+852',
75
+    'HN' => '+504',
76
+    'HM' => '',
77
+    'VE' => '+58',
78
+    'PR' => array(
79
+        '+1787',
80
+        '+1939',
81
+    ),
82
+    'PS' => '+970',
83
+    'PW' => '+680',
84
+    'PT' => '+351',
85
+    'SJ' => '+47',
86
+    'PY' => '+595',
87
+    'IQ' => '+964',
88
+    'PA' => '+507',
89
+    'PF' => '+689',
90
+    'PG' => '+675',
91
+    'PE' => '+51',
92
+    'PK' => '+92',
93
+    'PH' => '+63',
94
+    'PN' => '+870',
95
+    'PL' => '+48',
96
+    'PM' => '+508',
97
+    'ZM' => '+260',
98
+    'EH' => '+212',
99
+    'EE' => '+372',
100
+    'EG' => '+20',
101
+    'ZA' => '+27',
102
+    'EC' => '+593',
103
+    'IT' => '+39',
104
+    'VN' => '+84',
105
+    'SB' => '+677',
106
+    'ET' => '+251',
107
+    'SO' => '+252',
108
+    'ZW' => '+263',
109
+    'SA' => '+966',
110
+    'ES' => '+34',
111
+    'ER' => '+291',
112
+    'ME' => '+382',
113
+    'MD' => '+373',
114
+    'MG' => '+261',
115
+    'MF' => '+590',
116
+    'MA' => '+212',
117
+    'MC' => '+377',
118
+    'UZ' => '+998',
119
+    'MM' => '+95',
120
+    'ML' => '+223',
121
+    'MO' => '+853',
122
+    'MN' => '+976',
123
+    'MH' => '+692',
124
+    'MK' => '+389',
125
+    'MU' => '+230',
126
+    'MT' => '+356',
127
+    'MW' => '+265',
128
+    'MV' => '+960',
129
+    'MQ' => '+596',
130
+    'MP' => '+1670',
131
+    'MS' => '+1664',
132
+    'MR' => '+222',
133
+    'IM' => '+441624',
134
+    'UG' => '+256',
135
+    'TZ' => '+255',
136
+    'MY' => '+60',
137
+    'MX' => '+52',
138
+    'IL' => '+972',
139
+    'FR' => '+33',
140
+    'IO' => '+246',
141
+    'SH' => '+290',
142
+    'FI' => '+358',
143
+    'FJ' => '+679',
144
+    'FK' => '+500',
145
+    'FM' => '+691',
146
+    'FO' => '+298',
147
+    'NI' => '+505',
148
+    'NL' => '+31',
149
+    'NO' => '+47',
150
+    'NA' => '+264',
151
+    'VU' => '+678',
152
+    'NC' => '+687',
153
+    'NE' => '+227',
154
+    'NF' => '+672',
155
+    'NG' => '+234',
156
+    'NZ' => '+64',
157
+    'NP' => '+977',
158
+    'NR' => '+674',
159
+    'NU' => '+683',
160
+    'CK' => '+682',
161
+    'XK' => '',
162
+    'CI' => '+225',
163
+    'CH' => '+41',
164
+    'CO' => '+57',
165
+    'CN' => '+86',
166
+    'CM' => '+237',
167
+    'CL' => '+56',
168
+    'CC' => '+61',
169
+    'CA' => '+1',
170
+    'CG' => '+242',
171
+    'CF' => '+236',
172
+    'CD' => '+243',
173
+    'CZ' => '+420',
174
+    'CY' => '+357',
175
+    'CX' => '+61',
176
+    'CR' => '+506',
177
+    'CW' => '+599',
178
+    'CV' => '+238',
179
+    'CU' => '+53',
180
+    'SZ' => '+268',
181
+    'SY' => '+963',
182
+    'SX' => '+599',
183
+    'KG' => '+996',
184
+    'KE' => '+254',
185
+    'SS' => '+211',
186
+    'SR' => '+597',
187
+    'KI' => '+686',
188
+    'KH' => '+855',
189
+    'KN' => '+1869',
190
+    'KM' => '+269',
191
+    'ST' => '+239',
192
+    'SK' => '+421',
193
+    'KR' => '+82',
194
+    'SI' => '+386',
195
+    'KP' => '+850',
196
+    'KW' => '+965',
197
+    'SN' => '+221',
198
+    'SM' => '+378',
199
+    'SL' => '+232',
200
+    'SC' => '+248',
201
+    'KZ' => '+7',
202
+    'KY' => '+1345',
203
+    'SG' => '+65',
204
+    'SE' => '+46',
205
+    'SD' => '+249',
206
+    'DO' => array(
207
+        '+1809',
208
+        '+1829',
209
+        '+1849',
210
+    ),
211
+    'DM' => '+1767',
212
+    'DJ' => '+253',
213
+    'DK' => '+45',
214
+    'VG' => '+1284',
215
+    'DE' => '+49',
216
+    'YE' => '+967',
217
+    'DZ' => '+213',
218
+    'US' => '+1',
219
+    'UY' => '+598',
220
+    'YT' => '+262',
221
+    'UM' => '+1',
222
+    'LB' => '+961',
223
+    'LC' => '+1758',
224
+    'LA' => '+856',
225
+    'TV' => '+688',
226
+    'TW' => '+886',
227
+    'TT' => '+1868',
228
+    'TR' => '+90',
229
+    'LK' => '+94',
230
+    'LI' => '+423',
231
+    'LV' => '+371',
232
+    'TO' => '+676',
233
+    'LT' => '+370',
234
+    'LU' => '+352',
235
+    'LR' => '+231',
236
+    'LS' => '+266',
237
+    'TH' => '+66',
238
+    'TF' => '',
239
+    'TG' => '+228',
240
+    'TD' => '+235',
241
+    'TC' => '+1649',
242
+    'LY' => '+218',
243
+    'VA' => '+379',
244
+    'VC' => '+1784',
245
+    'AE' => '+971',
246
+    'AD' => '+376',
247
+    'AG' => '+1268',
248
+    'AF' => '+93',
249
+    'AI' => '+1264',
250
+    'VI' => '+1340',
251
+    'IS' => '+354',
252
+    'IR' => '+98',
253
+    'AM' => '+374',
254
+    'AL' => '+355',
255
+    'AO' => '+244',
256
+    'AQ' => '',
257
+    'AS' => '+1684',
258
+    'AR' => '+54',
259
+    'AU' => '+61',
260
+    'AT' => '+43',
261
+    'AW' => '+297',
262
+    'IN' => '+91',
263
+    'AX' => '+35818',
264
+    'AZ' => '+994',
265
+    'IE' => '+353',
266
+    'ID' => '+62',
267
+    'UA' => '+380',
268
+    'QA' => '+974',
269
+    'MZ' => '+258',
270 270
 );
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@
 block discarded – undo
7 7
  * @package Invoicing/data
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 return array(
13 13
 	'BD' => '+880',
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Ç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' => __('Phillipines', 'invoicing'),
193
-	'PN' => __('Pitcairn Island', 'invoicing'),
194
-	'PL' => __('Poland', 'invoicing'),
195
-	'PT' => __('Portugal', 'invoicing'),
196
-	'PR' => __('Puerto Rico', 'invoicing'),
197
-	'QA' => __('Qatar', 'invoicing'),
198
-	'XK' => __('Republic of Kosovo', 'invoicing'),
199
-	'RE' => __('Reunion Island', 'invoicing'),
200
-	'RO' => __('Romania', 'invoicing'),
201
-	'RU' => __('Russian Federation', 'invoicing'),
202
-	'RW' => __('Rwanda', 'invoicing'),
203
-	'BL' => __('Saint Barthélemy', 'invoicing'),
204
-	'SH' => __('Saint Helena', 'invoicing'),
205
-	'KN' => __('Saint Kitts and Nevis', 'invoicing'),
206
-	'LC' => __('Saint Lucia', 'invoicing'),
207
-	'MF' => __('Saint Martin (French)', 'invoicing'),
208
-	'SX' => __('Saint Martin (Dutch)', 'invoicing'),
209
-	'PM' => __('Saint Pierre and Miquelon', 'invoicing'),
210
-	'VC' => __('Saint Vincent and the Grenadines', 'invoicing'),
211
-	'SM' => __('San Marino', 'invoicing'),
212
-	'ST' => __('São Tomé and Príncipe', 'invoicing'),
213
-	'SA' => __('Saudi Arabia', 'invoicing'),
214
-	'SN' => __('Senegal', 'invoicing'),
215
-	'RS' => __('Serbia', 'invoicing'),
216
-	'SC' => __('Seychelles', 'invoicing'),
217
-	'SL' => __('Sierra Leone', 'invoicing'),
218
-	'SG' => __('Singapore', 'invoicing'),
219
-	'SK' => __('Slovak Republic', 'invoicing'),
220
-	'SI' => __('Slovenia', 'invoicing'),
221
-	'SB' => __('Solomon Islands', 'invoicing'),
222
-	'SO' => __('Somalia', 'invoicing'),
223
-	'ZA' => __('South Africa', 'invoicing'),
224
-	'GS' => __('South Georgia', 'invoicing'),
225
-	'KR' => __('South Korea', 'invoicing'),
226
-	'SS' => __('South Sudan', 'invoicing'),
227
-	'ES' => __('Spain', 'invoicing'),
228
-	'LK' => __('Sri Lanka', 'invoicing'),
229
-	'SD' => __('Sudan', 'invoicing'),
230
-	'SR' => __('Suriname', 'invoicing'),
231
-	'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'),
232
-	'SZ' => __('Swaziland', 'invoicing'),
233
-	'SE' => __('Sweden', 'invoicing'),
234
-	'CH' => __('Switzerland', 'invoicing'),
235
-	'SY' => __('Syrian Arab Republic', 'invoicing'),
236
-	'TW' => __('Taiwan', 'invoicing'),
237
-	'TJ' => __('Tajikistan', 'invoicing'),
238
-	'TZ' => __('Tanzania', 'invoicing'),
239
-	'TH' => __('Thailand', 'invoicing'),
240
-	'TL' => __('Timor-Leste', 'invoicing'),
241
-	'TG' => __('Togo', 'invoicing'),
242
-	'TK' => __('Tokelau', 'invoicing'),
243
-	'TO' => __('Tonga', 'invoicing'),
244
-	'TT' => __('Trinidad and Tobago', 'invoicing'),
245
-	'TN' => __('Tunisia', 'invoicing'),
246
-	'TR' => __('Turkey', 'invoicing'),
247
-	'TM' => __('Turkmenistan', 'invoicing'),
248
-	'TC' => __('Turks and Caicos Islands', 'invoicing'),
249
-	'TV' => __('Tuvalu', 'invoicing'),
250
-	'UG' => __('Uganda', 'invoicing'),
251
-	'UA' => __('Ukraine', 'invoicing'),
252
-	'AE' => __('United Arab Emirates', 'invoicing'),
253
-	'UY' => __('Uruguay', 'invoicing'),
254
-	'UM' => __('US Minor Outlying Islands', 'invoicing'),
255
-	'UZ' => __('Uzbekistan', 'invoicing'),
256
-	'VU' => __('Vanuatu', 'invoicing'),
257
-	'VE' => __('Venezuela', 'invoicing'),
258
-	'VN' => __('Vietnam', 'invoicing'),
259
-	'VG' => __('Virgin Islands (British)', 'invoicing'),
260
-	'VI' => __('Virgin Islands (USA)', 'invoicing'),
261
-	'WF' => __('Wallis and Futuna Islands', 'invoicing'),
262
-	'EH' => __('Western Sahara', 'invoicing'),
263
-	'WS' => __('Western Samoa', 'invoicing'),
264
-	'YE' => __('Yemen', 'invoicing'),
265
-	'ZM' => __('Zambia', 'invoicing'),
266
-	'ZW' => __('Zimbabwe', 'invoicing'),
15
+    'US' => __('United States', 'invoicing'),
16
+    'CA' => __('Canada', 'invoicing'),
17
+    'GB' => __('United Kingdom', 'invoicing'),
18
+    'AF' => __('Afghanistan', 'invoicing'),
19
+    'AX' => __('Aland Islands', 'invoicing'),
20
+    'AL' => __('Albania', 'invoicing'),
21
+    'DZ' => __('Algeria', 'invoicing'),
22
+    'AS' => __('American Samoa', 'invoicing'),
23
+    'AD' => __('Andorra', 'invoicing'),
24
+    'AO' => __('Angola', 'invoicing'),
25
+    'AI' => __('Anguilla', 'invoicing'),
26
+    'AQ' => __('Antarctica', 'invoicing'),
27
+    'AG' => __('Antigua and Barbuda', 'invoicing'),
28
+    'AR' => __('Argentina', 'invoicing'),
29
+    'AM' => __('Armenia', 'invoicing'),
30
+    'AW' => __('Aruba', 'invoicing'),
31
+    'AU' => __('Australia', 'invoicing'),
32
+    'AT' => __('Austria', 'invoicing'),
33
+    'AZ' => __('Azerbaijan', 'invoicing'),
34
+    'BS' => __('Bahamas', 'invoicing'),
35
+    'BH' => __('Bahrain', 'invoicing'),
36
+    'BD' => __('Bangladesh', 'invoicing'),
37
+    'BB' => __('Barbados', 'invoicing'),
38
+    'BY' => __('Belarus', 'invoicing'),
39
+    'BE' => __('Belgium', 'invoicing'),
40
+    'BZ' => __('Belize', 'invoicing'),
41
+    'BJ' => __('Benin', 'invoicing'),
42
+    'BM' => __('Bermuda', 'invoicing'),
43
+    'BT' => __('Bhutan', 'invoicing'),
44
+    'BO' => __('Bolivia', 'invoicing'),
45
+    'BQ' => __('Bonaire, Saint Eustatius and Saba', 'invoicing'),
46
+    'BA' => __('Bosnia and Herzegovina', 'invoicing'),
47
+    'BW' => __('Botswana', 'invoicing'),
48
+    'BV' => __('Bouvet Island', 'invoicing'),
49
+    'BR' => __('Brazil', 'invoicing'),
50
+    'IO' => __('British Indian Ocean Territory', 'invoicing'),
51
+    'BN' => __('Brunei Darrussalam', 'invoicing'),
52
+    'BG' => __('Bulgaria', 'invoicing'),
53
+    'BF' => __('Burkina Faso', 'invoicing'),
54
+    'BI' => __('Burundi', 'invoicing'),
55
+    'KH' => __('Cambodia', 'invoicing'),
56
+    'CM' => __('Cameroon', 'invoicing'),
57
+    'CV' => __('Cape Verde', 'invoicing'),
58
+    'KY' => __('Cayman Islands', 'invoicing'),
59
+    'CF' => __('Central African Republic', 'invoicing'),
60
+    'TD' => __('Chad', 'invoicing'),
61
+    'CL' => __('Chile', 'invoicing'),
62
+    'CN' => __('China', 'invoicing'),
63
+    'CX' => __('Christmas Island', 'invoicing'),
64
+    'CC' => __('Cocos Islands', 'invoicing'),
65
+    'CO' => __('Colombia', 'invoicing'),
66
+    'KM' => __('Comoros', 'invoicing'),
67
+    'CD' => __('Congo, Democratic People\'s Republic', 'invoicing'),
68
+    'CG' => __('Congo, Republic of', 'invoicing'),
69
+    'CK' => __('Cook Islands', 'invoicing'),
70
+    'CR' => __('Costa Rica', 'invoicing'),
71
+    'CI' => __('Cote d\'Ivoire', 'invoicing'),
72
+    'HR' => __('Croatia/Hrvatska', 'invoicing'),
73
+    'CU' => __('Cuba', 'invoicing'),
74
+    'CW' => __('CuraÇao', 'invoicing'),
75
+    'CY' => __('Cyprus', 'invoicing'),
76
+    'CZ' => __('Czech Republic', 'invoicing'),
77
+    'DK' => __('Denmark', 'invoicing'),
78
+    'DJ' => __('Djibouti', 'invoicing'),
79
+    'DM' => __('Dominica', 'invoicing'),
80
+    'DO' => __('Dominican Republic', 'invoicing'),
81
+    'TP' => __('East Timor', 'invoicing'),
82
+    'EC' => __('Ecuador', 'invoicing'),
83
+    'EG' => __('Egypt', 'invoicing'),
84
+    'GQ' => __('Equatorial Guinea', 'invoicing'),
85
+    'SV' => __('El Salvador', 'invoicing'),
86
+    'ER' => __('Eritrea', 'invoicing'),
87
+    'EE' => __('Estonia', 'invoicing'),
88
+    'ET' => __('Ethiopia', 'invoicing'),
89
+    'FK' => __('Falkland Islands', 'invoicing'),
90
+    'FO' => __('Faroe Islands', 'invoicing'),
91
+    'FJ' => __('Fiji', 'invoicing'),
92
+    'FI' => __('Finland', 'invoicing'),
93
+    'FR' => __('France', 'invoicing'),
94
+    'GF' => __('French Guiana', 'invoicing'),
95
+    'PF' => __('French Polynesia', 'invoicing'),
96
+    'TF' => __('French Southern Territories', 'invoicing'),
97
+    'GA' => __('Gabon', 'invoicing'),
98
+    'GM' => __('Gambia', 'invoicing'),
99
+    'GE' => __('Georgia', 'invoicing'),
100
+    'DE' => __('Germany', 'invoicing'),
101
+    'GR' => __('Greece', 'invoicing'),
102
+    'GH' => __('Ghana', 'invoicing'),
103
+    'GI' => __('Gibraltar', 'invoicing'),
104
+    'GL' => __('Greenland', 'invoicing'),
105
+    'GD' => __('Grenada', 'invoicing'),
106
+    'GP' => __('Guadeloupe', 'invoicing'),
107
+    'GU' => __('Guam', 'invoicing'),
108
+    'GT' => __('Guatemala', 'invoicing'),
109
+    'GG' => __('Guernsey', 'invoicing'),
110
+    'GN' => __('Guinea', 'invoicing'),
111
+    'GW' => __('Guinea-Bissau', 'invoicing'),
112
+    'GY' => __('Guyana', 'invoicing'),
113
+    'HT' => __('Haiti', 'invoicing'),
114
+    'HM' => __('Heard and McDonald Islands', 'invoicing'),
115
+    'VA' => __('Holy See (City Vatican State)', 'invoicing'),
116
+    'HN' => __('Honduras', 'invoicing'),
117
+    'HK' => __('Hong Kong', 'invoicing'),
118
+    'HU' => __('Hungary', 'invoicing'),
119
+    'IS' => __('Iceland', 'invoicing'),
120
+    'IN' => __('India', 'invoicing'),
121
+    'ID' => __('Indonesia', 'invoicing'),
122
+    'IR' => __('Iran', 'invoicing'),
123
+    'IQ' => __('Iraq', 'invoicing'),
124
+    'IE' => __('Ireland', 'invoicing'),
125
+    'IM' => __('Isle of Man', 'invoicing'),
126
+    'IL' => __('Israel', 'invoicing'),
127
+    'IT' => __('Italy', 'invoicing'),
128
+    'JM' => __('Jamaica', 'invoicing'),
129
+    'JP' => __('Japan', 'invoicing'),
130
+    'JE' => __('Jersey', 'invoicing'),
131
+    'JO' => __('Jordan', 'invoicing'),
132
+    'KZ' => __('Kazakhstan', 'invoicing'),
133
+    'KE' => __('Kenya', 'invoicing'),
134
+    'KI' => __('Kiribati', 'invoicing'),
135
+    'KW' => __('Kuwait', 'invoicing'),
136
+    'KG' => __('Kyrgyzstan', 'invoicing'),
137
+    'LA' => __('Lao People\'s Democratic Republic', 'invoicing'),
138
+    'LV' => __('Latvia', 'invoicing'),
139
+    'LB' => __('Lebanon', 'invoicing'),
140
+    'LS' => __('Lesotho', 'invoicing'),
141
+    'LR' => __('Liberia', 'invoicing'),
142
+    'LY' => __('Libyan Arab Jamahiriya', 'invoicing'),
143
+    'LI' => __('Liechtenstein', 'invoicing'),
144
+    'LT' => __('Lithuania', 'invoicing'),
145
+    'LU' => __('Luxembourg', 'invoicing'),
146
+    'MO' => __('Macau', 'invoicing'),
147
+    'MK' => __('Macedonia', 'invoicing'),
148
+    'MG' => __('Madagascar', 'invoicing'),
149
+    'MW' => __('Malawi', 'invoicing'),
150
+    'MY' => __('Malaysia', 'invoicing'),
151
+    'MV' => __('Maldives', 'invoicing'),
152
+    'ML' => __('Mali', 'invoicing'),
153
+    'MT' => __('Malta', 'invoicing'),
154
+    'MH' => __('Marshall Islands', 'invoicing'),
155
+    'MQ' => __('Martinique', 'invoicing'),
156
+    'MR' => __('Mauritania', 'invoicing'),
157
+    'MU' => __('Mauritius', 'invoicing'),
158
+    'YT' => __('Mayotte', 'invoicing'),
159
+    'MX' => __('Mexico', 'invoicing'),
160
+    'FM' => __('Micronesia', 'invoicing'),
161
+    'MD' => __('Moldova, Republic of', 'invoicing'),
162
+    'MC' => __('Monaco', 'invoicing'),
163
+    'MN' => __('Mongolia', 'invoicing'),
164
+    'ME' => __('Montenegro', 'invoicing'),
165
+    'MS' => __('Montserrat', 'invoicing'),
166
+    'MA' => __('Morocco', 'invoicing'),
167
+    'MZ' => __('Mozambique', 'invoicing'),
168
+    'MM' => __('Myanmar', 'invoicing'),
169
+    'NA' => __('Namibia', 'invoicing'),
170
+    'NR' => __('Nauru', 'invoicing'),
171
+    'NP' => __('Nepal', 'invoicing'),
172
+    'NL' => __('Netherlands', 'invoicing'),
173
+    'AN' => __('Netherlands Antilles', 'invoicing'),
174
+    'NC' => __('New Caledonia', 'invoicing'),
175
+    'NZ' => __('New Zealand', 'invoicing'),
176
+    'NI' => __('Nicaragua', 'invoicing'),
177
+    'NE' => __('Niger', 'invoicing'),
178
+    'NG' => __('Nigeria', 'invoicing'),
179
+    'NU' => __('Niue', 'invoicing'),
180
+    'NF' => __('Norfolk Island', 'invoicing'),
181
+    'KP' => __('North Korea', 'invoicing'),
182
+    'MP' => __('Northern Mariana Islands', 'invoicing'),
183
+    'NO' => __('Norway', 'invoicing'),
184
+    'OM' => __('Oman', 'invoicing'),
185
+    'PK' => __('Pakistan', 'invoicing'),
186
+    'PW' => __('Palau', 'invoicing'),
187
+    'PS' => __('Palestinian Territories', 'invoicing'),
188
+    'PA' => __('Panama', 'invoicing'),
189
+    'PG' => __('Papua New Guinea', 'invoicing'),
190
+    'PY' => __('Paraguay', 'invoicing'),
191
+    'PE' => __('Peru', 'invoicing'),
192
+    'PH' => __('Phillipines', 'invoicing'),
193
+    'PN' => __('Pitcairn Island', 'invoicing'),
194
+    'PL' => __('Poland', 'invoicing'),
195
+    'PT' => __('Portugal', 'invoicing'),
196
+    'PR' => __('Puerto Rico', 'invoicing'),
197
+    'QA' => __('Qatar', 'invoicing'),
198
+    'XK' => __('Republic of Kosovo', 'invoicing'),
199
+    'RE' => __('Reunion Island', 'invoicing'),
200
+    'RO' => __('Romania', 'invoicing'),
201
+    'RU' => __('Russian Federation', 'invoicing'),
202
+    'RW' => __('Rwanda', 'invoicing'),
203
+    'BL' => __('Saint Barthélemy', 'invoicing'),
204
+    'SH' => __('Saint Helena', 'invoicing'),
205
+    'KN' => __('Saint Kitts and Nevis', 'invoicing'),
206
+    'LC' => __('Saint Lucia', 'invoicing'),
207
+    'MF' => __('Saint Martin (French)', 'invoicing'),
208
+    'SX' => __('Saint Martin (Dutch)', 'invoicing'),
209
+    'PM' => __('Saint Pierre and Miquelon', 'invoicing'),
210
+    'VC' => __('Saint Vincent and the Grenadines', 'invoicing'),
211
+    'SM' => __('San Marino', 'invoicing'),
212
+    'ST' => __('São Tomé and Príncipe', 'invoicing'),
213
+    'SA' => __('Saudi Arabia', 'invoicing'),
214
+    'SN' => __('Senegal', 'invoicing'),
215
+    'RS' => __('Serbia', 'invoicing'),
216
+    'SC' => __('Seychelles', 'invoicing'),
217
+    'SL' => __('Sierra Leone', 'invoicing'),
218
+    'SG' => __('Singapore', 'invoicing'),
219
+    'SK' => __('Slovak Republic', 'invoicing'),
220
+    'SI' => __('Slovenia', 'invoicing'),
221
+    'SB' => __('Solomon Islands', 'invoicing'),
222
+    'SO' => __('Somalia', 'invoicing'),
223
+    'ZA' => __('South Africa', 'invoicing'),
224
+    'GS' => __('South Georgia', 'invoicing'),
225
+    'KR' => __('South Korea', 'invoicing'),
226
+    'SS' => __('South Sudan', 'invoicing'),
227
+    'ES' => __('Spain', 'invoicing'),
228
+    'LK' => __('Sri Lanka', 'invoicing'),
229
+    'SD' => __('Sudan', 'invoicing'),
230
+    'SR' => __('Suriname', 'invoicing'),
231
+    'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'),
232
+    'SZ' => __('Swaziland', 'invoicing'),
233
+    'SE' => __('Sweden', 'invoicing'),
234
+    'CH' => __('Switzerland', 'invoicing'),
235
+    'SY' => __('Syrian Arab Republic', 'invoicing'),
236
+    'TW' => __('Taiwan', 'invoicing'),
237
+    'TJ' => __('Tajikistan', 'invoicing'),
238
+    'TZ' => __('Tanzania', 'invoicing'),
239
+    'TH' => __('Thailand', 'invoicing'),
240
+    'TL' => __('Timor-Leste', 'invoicing'),
241
+    'TG' => __('Togo', 'invoicing'),
242
+    'TK' => __('Tokelau', 'invoicing'),
243
+    'TO' => __('Tonga', 'invoicing'),
244
+    'TT' => __('Trinidad and Tobago', 'invoicing'),
245
+    'TN' => __('Tunisia', 'invoicing'),
246
+    'TR' => __('Turkey', 'invoicing'),
247
+    'TM' => __('Turkmenistan', 'invoicing'),
248
+    'TC' => __('Turks and Caicos Islands', 'invoicing'),
249
+    'TV' => __('Tuvalu', 'invoicing'),
250
+    'UG' => __('Uganda', 'invoicing'),
251
+    'UA' => __('Ukraine', 'invoicing'),
252
+    'AE' => __('United Arab Emirates', 'invoicing'),
253
+    'UY' => __('Uruguay', 'invoicing'),
254
+    'UM' => __('US Minor Outlying Islands', 'invoicing'),
255
+    'UZ' => __('Uzbekistan', 'invoicing'),
256
+    'VU' => __('Vanuatu', 'invoicing'),
257
+    'VE' => __('Venezuela', 'invoicing'),
258
+    'VN' => __('Vietnam', 'invoicing'),
259
+    'VG' => __('Virgin Islands (British)', 'invoicing'),
260
+    'VI' => __('Virgin Islands (USA)', 'invoicing'),
261
+    'WF' => __('Wallis and Futuna Islands', 'invoicing'),
262
+    'EH' => __('Western Sahara', 'invoicing'),
263
+    'WS' => __('Western Samoa', 'invoicing'),
264
+    'YE' => __('Yemen', 'invoicing'),
265
+    'ZM' => __('Zambia', 'invoicing'),
266
+    'ZW' => __('Zimbabwe', 'invoicing'),
267 267
 );
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@
 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 15
 	'US' => __('United States', 'invoicing'),
Please login to merge, or discard this patch.
includes/class-wpinv-privacy.php 2 patches
Indentation   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -31,25 +31,25 @@
 block discarded – undo
31 31
     public function get_privacy_message() {
32 32
 
33 33
         $content = '<div class="wp-suggested-text">' .
34
-                   '<h2>' . __( 'Invoices and checkout', 'invoicing' ) . '</h2>' .
35
-                   '<p class="privacy-policy-tutorial">' . __( 'Example privacy texts.', 'invoicing' ) . '</p>' .
36
-                   '<p>' . __( 'We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing' ) . '</p>' .
37
-                   '<p>' . __( 'Handling this data also allows us to:', 'invoicing' ) . '</p>' .
38
-                   '<ul>' .
39
-                   '<li>' . __( '- Send you important account/order/service information.', 'invoicing' ) . '</li>' .
40
-                   '<li>' . __( '- Estimate taxes based on your location.', 'invoicing' ) . '</li>' .
41
-                   '<li>' . __( '- Respond to your queries or complaints.', 'invoicing' ) . '</li>' .
42
-                   '<li>' . __( '- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' .
43
-                   '<li>' . __( '- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing' ) . '</li>' .
44
-                   '<li>' . __( '- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' .
45
-                   '</ul>' .
46
-                   '<p>' . __( 'In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing' ) . '</p>' .
47
-                   '<h2>' . __( 'What we share with others', 'invoicing' ) . '</h2>' .
48
-                   '<p>' . __( 'We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing' ) . '</p>' .
49
-                   '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing' ) . '</p>' .
50
-                   '<p>' . __( 'We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing' ) . '</p>' .
51
-                   '<p>' . __( 'Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing' ) . '</p>' .
52
-                   '</div>';
34
+                    '<h2>' . __( 'Invoices and checkout', 'invoicing' ) . '</h2>' .
35
+                    '<p class="privacy-policy-tutorial">' . __( 'Example privacy texts.', 'invoicing' ) . '</p>' .
36
+                    '<p>' . __( 'We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing' ) . '</p>' .
37
+                    '<p>' . __( 'Handling this data also allows us to:', 'invoicing' ) . '</p>' .
38
+                    '<ul>' .
39
+                    '<li>' . __( '- Send you important account/order/service information.', 'invoicing' ) . '</li>' .
40
+                    '<li>' . __( '- Estimate taxes based on your location.', 'invoicing' ) . '</li>' .
41
+                    '<li>' . __( '- Respond to your queries or complaints.', 'invoicing' ) . '</li>' .
42
+                    '<li>' . __( '- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' .
43
+                    '<li>' . __( '- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing' ) . '</li>' .
44
+                    '<li>' . __( '- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' .
45
+                    '</ul>' .
46
+                    '<p>' . __( 'In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing' ) . '</p>' .
47
+                    '<h2>' . __( 'What we share with others', 'invoicing' ) . '</h2>' .
48
+                    '<p>' . __( 'We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing' ) . '</p>' .
49
+                    '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing' ) . '</p>' .
50
+                    '<p>' . __( 'We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing' ) . '</p>' .
51
+                    '<p>' . __( 'Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing' ) . '</p>' .
52
+                    '</div>';
53 53
 
54 54
         return apply_filters( 'wpinv_privacy_policy_content', $content );
55 55
     }
Please login to merge, or discard this patch.
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Privacy/GDPR related functionality which ties into WordPress functionality.
4 4
  */
5 5
 
6
-defined( 'ABSPATH' ) || exit;
6
+defined('ABSPATH') || exit;
7 7
 
8 8
 /**
9 9
  * WPInv_Privacy Class.
@@ -14,13 +14,13 @@  discard block
 block discarded – undo
14 14
      * Init - hook into events.
15 15
      */
16 16
     public function __construct() {
17
-        parent::__construct( __( 'Invoicing', 'invoicing' ) );
17
+        parent::__construct(__('Invoicing', 'invoicing'));
18 18
 
19 19
         // Include supporting classes.
20 20
         include_once 'class-wpinv-privacy-exporters.php';
21 21
 
22 22
         // This hook registers Invoicing data exporters.
23
-        $this->add_exporter( 'wpinv-customer-invoices', __( 'Customer Invoices', 'invoicing' ), array( 'WPInv_Privacy_Exporters', 'customer_invoice_data_exporter' ) );
23
+        $this->add_exporter('wpinv-customer-invoices', __('Customer Invoices', 'invoicing'), array('WPInv_Privacy_Exporters', 'customer_invoice_data_exporter'));
24 24
     }
25 25
 
26 26
     /**
@@ -31,27 +31,27 @@  discard block
 block discarded – undo
31 31
     public function get_privacy_message() {
32 32
 
33 33
         $content = '<div class="wp-suggested-text">' .
34
-                   '<h2>' . __( 'Invoices and checkout', 'invoicing' ) . '</h2>' .
35
-                   '<p class="privacy-policy-tutorial">' . __( 'Example privacy texts.', 'invoicing' ) . '</p>' .
36
-                   '<p>' . __( 'We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing' ) . '</p>' .
37
-                   '<p>' . __( 'Handling this data also allows us to:', 'invoicing' ) . '</p>' .
34
+                   '<h2>' . __('Invoices and checkout', 'invoicing') . '</h2>' .
35
+                   '<p class="privacy-policy-tutorial">' . __('Example privacy texts.', 'invoicing') . '</p>' .
36
+                   '<p>' . __('We collect information about you during the checkout process on our site. This information may include, but is not limited to, your name, email address, phone number, address, IP and any other details that might be requested from you for the purpose of processing your payment and retaining your invoice details for legal reasons.', 'invoicing') . '</p>' .
37
+                   '<p>' . __('Handling this data also allows us to:', 'invoicing') . '</p>' .
38 38
                    '<ul>' .
39
-                   '<li>' . __( '- Send you important account/order/service information.', 'invoicing' ) . '</li>' .
40
-                   '<li>' . __( '- Estimate taxes based on your location.', 'invoicing' ) . '</li>' .
41
-                   '<li>' . __( '- Respond to your queries or complaints.', 'invoicing' ) . '</li>' .
42
-                   '<li>' . __( '- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' .
43
-                   '<li>' . __( '- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing' ) . '</li>' .
44
-                   '<li>' . __( '- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing' ) . '</li>' .
39
+                   '<li>' . __('- Send you important account/order/service information.', 'invoicing') . '</li>' .
40
+                   '<li>' . __('- Estimate taxes based on your location.', 'invoicing') . '</li>' .
41
+                   '<li>' . __('- Respond to your queries or complaints.', 'invoicing') . '</li>' .
42
+                   '<li>' . __('- Process payments and to prevent fraudulent transactions. We do this on the basis of our legitimate business interests.', 'invoicing') . '</li>' .
43
+                   '<li>' . __('- Retain historical payment and invoice history. We do this on the basis of legal obligations.', 'invoicing') . '</li>' .
44
+                   '<li>' . __('- Set up and administer your account, provide technical and/or customer support, and to verify your identity. We do this on the basis of our legitimate business interests.', 'invoicing') . '</li>' .
45 45
                    '</ul>' .
46
-                   '<p>' . __( 'In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing' ) . '</p>' .
47
-                   '<h2>' . __( 'What we share with others', 'invoicing' ) . '</h2>' .
48
-                   '<p>' . __( 'We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing' ) . '</p>' .
49
-                   '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing' ) . '</p>' .
50
-                   '<p>' . __( 'We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing' ) . '</p>' .
51
-                   '<p>' . __( 'Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing' ) . '</p>' .
46
+                   '<p>' . __('In addition to collecting information at checkout we may also use and store your contact details when manually creating invoices for require payments relating to prior contractual agreements or agreed terms.', 'invoicing') . '</p>' .
47
+                   '<h2>' . __('What we share with others', 'invoicing') . '</h2>' .
48
+                   '<p>' . __('We share information with third parties who help us provide our payment and invoicing services to you; for example --', 'invoicing') . '</p>' .
49
+                   '<p class="privacy-policy-tutorial">' . __('In this subsection you should list which third party payment processors you’re using to take payments since these may handle customer data. We’ve included PayPal as an example, but you should remove this if you’re not using PayPal.', 'invoicing') . '</p>' .
50
+                   '<p>' . __('We accept payments through PayPal. When processing payments, some of your data will be passed to PayPal, including information required to process or support the payment, such as the purchase total and billing information.', 'invoicing') . '</p>' .
51
+                   '<p>' . __('Please see the <a href="https://www.paypal.com/us/webapps/mpp/ua/privacy-full">PayPal Privacy Policy</a> for more details.', 'invoicing') . '</p>' .
52 52
                    '</div>';
53 53
 
54
-        return apply_filters( 'wpinv_privacy_policy_content', $content );
54
+        return apply_filters('wpinv_privacy_policy_content', $content);
55 55
     }
56 56
 
57 57
 }
Please login to merge, or discard this patch.
includes/class-wpinv-privacy-exporters.php 1 patch
Spacing   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Personal data exporters.
4 4
  */
5 5
 
6
-defined( 'ABSPATH' ) || exit;
6
+defined('ABSPATH') || exit;
7 7
 
8 8
 /**
9 9
  * WPInv_Privacy_Exporters Class.
@@ -17,38 +17,38 @@  discard block
 block discarded – undo
17 17
      * @param int    $page  Page.
18 18
      * @return array An array of invoice data in name value pairs
19 19
      */
20
-    public static function customer_invoice_data_exporter( $email_address, $page ) {
20
+    public static function customer_invoice_data_exporter($email_address, $page) {
21 21
         $done           = false;
22 22
         $page           = (int) $page;
23 23
         $data_to_export = array();
24 24
 
25
-        $user           = get_user_by( 'email', $email_address );
26
-        if ( ! $user instanceof WP_User ) {
25
+        $user           = get_user_by('email', $email_address);
26
+        if (!$user instanceof WP_User) {
27 27
             return array(
28 28
                 'data' => $data_to_export,
29 29
                 'done' => true,
30 30
             );
31 31
         }
32 32
 
33
-        $args    = array(
33
+        $args = array(
34 34
             'limit'    => 30,
35 35
             'page'     => $page,
36 36
             'user'     => $user->ID,
37 37
         );
38 38
 
39
-        $invoices = wpinv_get_invoices( $args );
39
+        $invoices = wpinv_get_invoices($args);
40 40
 
41
-        if ( 0 < count( $invoices ) ) {
42
-            foreach ( $invoices as $invoice ) {
41
+        if (0 < count($invoices)) {
42
+            foreach ($invoices as $invoice) {
43 43
                 $data_to_export[] = array(
44 44
                     'group_id'          => 'customer_invoices',
45
-                    'group_label'       => __( 'Invoicing Data', 'invoicing' ),
46
-                    'group_description' => __( 'Customer invoicing data.', 'invoicing' ),
45
+                    'group_label'       => __('Invoicing Data', 'invoicing'),
46
+                    'group_description' => __('Customer invoicing data.', 'invoicing'),
47 47
                     'item_id'           => "wpinv-{$invoice->ID}",
48
-                    'data'              => self::get_customer_invoice_data( $invoice ),
48
+                    'data'              => self::get_customer_invoice_data($invoice),
49 49
                 );
50 50
             }
51
-            $done = 30 > count( $invoices );
51
+            $done = 30 > count($invoices);
52 52
         } else {
53 53
             $done = true;
54 54
         }
@@ -66,59 +66,59 @@  discard block
 block discarded – undo
66 66
      * @param WPInv_Invoice $invoice invoice object.
67 67
      * @return array
68 68
      */
69
-    public static function get_customer_invoice_data( $invoice ) {
69
+    public static function get_customer_invoice_data($invoice) {
70 70
         $personal_data = array();
71 71
 
72 72
         $props_to_export = array(
73
-            'number'               => __( 'Invoice Number', 'invoicing' ),
74
-            'created_date'         => __( 'Invoice Date', 'invoicing' ),
75
-            'status'               => __( 'Invoice Status', 'invoicing' ),
76
-            'total'                => __( 'Invoice Total', 'invoicing' ),
77
-            'items'                => __( 'Invoice Items', 'invoicing' ),
78
-            'first_name'           => __( 'First Name', 'invoicing' ),
79
-            'last_name'            => __( 'Last Name', 'invoicing' ),
80
-            'email'                => __( 'Email Address', 'invoicing' ),
81
-            '_wpinv_company'       => __( 'Company', 'invoicing' ),
82
-            'phone'                => __( 'Phone Number', 'invoicing' ),
83
-            'address'              => __( 'Address', 'invoicing' ),
84
-            '_wpinv_city'          => __( 'City', 'invoicing' ),
85
-            '_wpinv_country'       => __( 'Country', 'invoicing' ),
86
-            '_wpinv_state'         => __( 'State', 'invoicing' ),
87
-            '_wpinv_zip'           => __( 'Zip Code', 'invoicing' ),
73
+            'number'               => __('Invoice Number', 'invoicing'),
74
+            'created_date'         => __('Invoice Date', 'invoicing'),
75
+            'status'               => __('Invoice Status', 'invoicing'),
76
+            'total'                => __('Invoice Total', 'invoicing'),
77
+            'items'                => __('Invoice Items', 'invoicing'),
78
+            'first_name'           => __('First Name', 'invoicing'),
79
+            'last_name'            => __('Last Name', 'invoicing'),
80
+            'email'                => __('Email Address', 'invoicing'),
81
+            '_wpinv_company'       => __('Company', 'invoicing'),
82
+            'phone'                => __('Phone Number', 'invoicing'),
83
+            'address'              => __('Address', 'invoicing'),
84
+            '_wpinv_city'          => __('City', 'invoicing'),
85
+            '_wpinv_country'       => __('Country', 'invoicing'),
86
+            '_wpinv_state'         => __('State', 'invoicing'),
87
+            '_wpinv_zip'           => __('Zip Code', 'invoicing'),
88 88
         );
89 89
 
90
-        $subscription = wpinv_get_subscription( $invoice );
90
+        $subscription = wpinv_get_subscription($invoice);
91 91
         $period = $initial_amt = $bill_times = $billed = $renewal_date = '';
92 92
 
93
-        if ( $invoice->is_recurring() && !empty( $subscription ) ) {
94
-            $frequency = WPInv_Subscriptions::wpinv_get_pretty_subscription_frequency( $subscription->period,$subscription->frequency );
95
-            $period = wpinv_price( wpinv_format_amount( $subscription->recurring_amount ), wpinv_get_invoice_currency_code( $subscription->parent_payment_id ) ) . ' / ' . $frequency;
96
-            $initial_amt = wpinv_price( wpinv_format_amount( $subscription->initial_amount ), wpinv_get_invoice_currency_code( $subscription->parent_payment_id ) );
97
-            $bill_times = $subscription->get_times_billed() . ' / ' . ( ( $subscription->bill_times == 0 ) ? 'Until Cancelled' : $subscription->bill_times );
98
-            $renewal_date = ! empty( $subscription->expiration ) ? date_i18n( get_option( 'date_format' ), strtotime( $subscription->expiration ) ) : __( 'N/A', 'invoicing' );
99
-
100
-            $props_to_export['period'] = __( 'Billing Cycle', 'invoicing' );
101
-            $props_to_export['initial_amount'] = __( 'Initial Amount', 'invoicing' );
102
-            $props_to_export['bill_times'] = __( 'Times Billed', 'invoicing' );
103
-            $props_to_export['renewal_date'] = __( 'Renewal Date', 'invoicing' );
93
+        if ($invoice->is_recurring() && !empty($subscription)) {
94
+            $frequency = WPInv_Subscriptions::wpinv_get_pretty_subscription_frequency($subscription->period, $subscription->frequency);
95
+            $period = wpinv_price(wpinv_format_amount($subscription->recurring_amount), wpinv_get_invoice_currency_code($subscription->parent_payment_id)) . ' / ' . $frequency;
96
+            $initial_amt = wpinv_price(wpinv_format_amount($subscription->initial_amount), wpinv_get_invoice_currency_code($subscription->parent_payment_id));
97
+            $bill_times = $subscription->get_times_billed() . ' / ' . (($subscription->bill_times == 0) ? 'Until Cancelled' : $subscription->bill_times);
98
+            $renewal_date = !empty($subscription->expiration) ? date_i18n(get_option('date_format'), strtotime($subscription->expiration)) : __('N/A', 'invoicing');
99
+
100
+            $props_to_export['period'] = __('Billing Cycle', 'invoicing');
101
+            $props_to_export['initial_amount'] = __('Initial Amount', 'invoicing');
102
+            $props_to_export['bill_times'] = __('Times Billed', 'invoicing');
103
+            $props_to_export['renewal_date'] = __('Renewal Date', 'invoicing');
104 104
         }
105 105
 
106
-        $props_to_export['ip'] = __( 'IP Address', 'invoicing' );
107
-        $props_to_export['view_url'] = __( 'Invoice Link', 'invoicing' );
106
+        $props_to_export['ip'] = __('IP Address', 'invoicing');
107
+        $props_to_export['view_url'] = __('Invoice Link', 'invoicing');
108 108
 
109
-        $props_to_export = apply_filters( 'wpinv_privacy_export_invoice_personal_data_props', $props_to_export, $invoice, $subscription);
109
+        $props_to_export = apply_filters('wpinv_privacy_export_invoice_personal_data_props', $props_to_export, $invoice, $subscription);
110 110
 
111
-        foreach ( $props_to_export as $prop => $name ) {
111
+        foreach ($props_to_export as $prop => $name) {
112 112
             $value = '';
113 113
 
114
-            switch ( $prop ) {
114
+            switch ($prop) {
115 115
                 case 'items':
116 116
                     $item_names = array();
117
-                    foreach ( $invoice->get_cart_details() as $key => $cart_item ) {
118
-                        $item_quantity  = $cart_item['quantity'] > 0 ? absint( $cart_item['quantity'] ) : 1;
117
+                    foreach ($invoice->get_cart_details() as $key => $cart_item) {
118
+                        $item_quantity = $cart_item['quantity'] > 0 ? absint($cart_item['quantity']) : 1;
119 119
                         $item_names[] = $cart_item['name'] . ' x ' . $item_quantity;
120 120
                     }
121
-                    $value = implode( ', ', $item_names );
121
+                    $value = implode(', ', $item_names);
122 122
                     break;
123 123
                 case 'status':
124 124
                     $value = $invoice->get_status(true);
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
                     $value = $renewal_date;
140 140
                     break;
141 141
                 default:
142
-                    if ( is_callable( array( $invoice, 'get_' . $prop ) ) ) {
142
+                    if (is_callable(array($invoice, 'get_' . $prop))) {
143 143
                         $value = $invoice->{"get_$prop"}();
144 144
                     } else {
145 145
                         $value = $invoice->get_meta($prop);
@@ -147,9 +147,9 @@  discard block
 block discarded – undo
147 147
                     break;
148 148
             }
149 149
 
150
-            $value = apply_filters( 'wpi_privacy_export_invoice_personal_data_prop', $value, $prop, $invoice );
150
+            $value = apply_filters('wpi_privacy_export_invoice_personal_data_prop', $value, $prop, $invoice);
151 151
 
152
-            if ( $value ) {
152
+            if ($value) {
153 153
                 $personal_data[] = array(
154 154
                     'name'  => $name,
155 155
                     'value' => $value,
@@ -158,7 +158,7 @@  discard block
 block discarded – undo
158 158
 
159 159
         }
160 160
 
161
-        $personal_data = apply_filters( 'wpinv_privacy_export_invoice_personal_data', $personal_data, $invoice );
161
+        $personal_data = apply_filters('wpinv_privacy_export_invoice_personal_data', $personal_data, $invoice);
162 162
 
163 163
         return $personal_data;
164 164
 
Please login to merge, or discard this patch.
includes/admin/class-wpinv-admin-menus.php 1 patch
Spacing   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Setup menus in WP admin.
4 4
  */
5 5
 
6
-defined( 'ABSPATH' ) || exit;
6
+defined('ABSPATH') || exit;
7 7
 
8 8
 /**
9 9
  * WC_Admin_Menus Class.
@@ -13,40 +13,40 @@  discard block
 block discarded – undo
13 13
      * Hook in tabs.
14 14
      */
15 15
     public function __construct() {
16
-        add_action( 'admin_menu', array( $this, 'admin_menu' ), 10 );
17
-        add_action( 'admin_menu', array( $this, 'add_addons_menu' ), 99 );
18
-        add_action( 'admin_menu', array( $this, 'remove_admin_submenus' ), 10 );
19
-        add_action( 'admin_head-nav-menus.php', array( $this, 'add_nav_menu_meta_boxes' ) );
16
+        add_action('admin_menu', array($this, 'admin_menu'), 10);
17
+        add_action('admin_menu', array($this, 'add_addons_menu'), 99);
18
+        add_action('admin_menu', array($this, 'remove_admin_submenus'), 10);
19
+        add_action('admin_head-nav-menus.php', array($this, 'add_nav_menu_meta_boxes'));
20 20
     }
21 21
 
22 22
     public function admin_menu() {
23 23
         global $menu, $submenu;
24 24
 
25
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
25
+        if (!wpinv_current_user_can_manage_invoicing()) {
26 26
             return;
27 27
         }
28 28
 
29
-        $capability = apply_filters( 'invoicing_capability', wpinv_get_capability() );
29
+        $capability = apply_filters('invoicing_capability', wpinv_get_capability());
30 30
 
31
-        if ( wpinv_current_user_can_manage_invoicing() ) {
32
-            $menu[] = array( '', 'read', 'separator-wpinv', '', 'wp-menu-separator wpinv' );
31
+        if (wpinv_current_user_can_manage_invoicing()) {
32
+            $menu[] = array('', 'read', 'separator-wpinv', '', 'wp-menu-separator wpinv');
33 33
 
34 34
             // Allow users with 'manage_invocing' capability to create new invoices
35
-            $submenu['post-new.php?post_type=wpi_invoice'][]  = array( '', '', 'post-new.php?post_type=wpi_invoice', '' );
36
-            $submenu['post-new.php?post_type=wpi_item'][]     = array( '', '', 'post-new.php?post_type=wpi_item', '' );
37
-            $submenu['post-new.php?post_type=wpi_discount'][] = array( '', '', 'post-new.php?post_type=wpi_discount', '' );
35
+            $submenu['post-new.php?post_type=wpi_invoice'][]  = array('', '', 'post-new.php?post_type=wpi_invoice', '');
36
+            $submenu['post-new.php?post_type=wpi_item'][]     = array('', '', 'post-new.php?post_type=wpi_item', '');
37
+            $submenu['post-new.php?post_type=wpi_discount'][] = array('', '', 'post-new.php?post_type=wpi_discount', '');
38 38
 
39 39
         }
40 40
 
41
-        $wpi_invoice = get_post_type_object( 'wpi_invoice' );
41
+        $wpi_invoice = get_post_type_object('wpi_invoice');
42 42
 
43
-        add_menu_page( __( 'Invoicing', 'invoicing' ), __( 'Invoicing', 'invoicing' ), $capability, 'wpinv', null, $wpi_invoice->menu_icon, '54.123460' );
43
+        add_menu_page(__('Invoicing', 'invoicing'), __('Invoicing', 'invoicing'), $capability, 'wpinv', null, $wpi_invoice->menu_icon, '54.123460');
44 44
 
45
-        add_submenu_page( 'wpinv', __( 'Invoice Settings', 'invoicing' ), __( 'Settings', 'invoicing' ), $capability, 'wpinv-settings', array( $this, 'options_page' ));
45
+        add_submenu_page('wpinv', __('Invoice Settings', 'invoicing'), __('Settings', 'invoicing'), $capability, 'wpinv-settings', array($this, 'options_page'));
46 46
     }
47 47
 
48
-    public function add_addons_menu(){
49
-        if ( !apply_filters( 'wpi_show_addons_page', true ) ) {
48
+    public function add_addons_menu() {
49
+        if (!apply_filters('wpi_show_addons_page', true)) {
50 50
             return;
51 51
         }
52 52
 
@@ -56,78 +56,78 @@  discard block
 block discarded – undo
56 56
             __('Extensions', 'invoicing'),
57 57
             'manage_options',
58 58
             'wpi-addons',
59
-            array( $this, 'addons_page' )
59
+            array($this, 'addons_page')
60 60
         );
61 61
     }
62 62
 
63
-    public function addons_page(){
63
+    public function addons_page() {
64 64
         $addon_obj = new WPInv_Admin_Addons();
65 65
         $addon_obj->output();
66 66
     }
67 67
 
68 68
     function options_page() {
69
-        $page       = isset( $_GET['page'] )                ? strtolower( $_GET['page'] )               : false;
69
+        $page = isset($_GET['page']) ? strtolower($_GET['page']) : false;
70 70
 
71
-        if ( $page !== 'wpinv-settings' ) {
71
+        if ($page !== 'wpinv-settings') {
72 72
             return;
73 73
         }
74 74
 
75 75
         $settings_tabs = wpinv_get_settings_tabs();
76 76
         $settings_tabs = empty($settings_tabs) ? array() : $settings_tabs;
77
-        $active_tab    = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $settings_tabs ) ? sanitize_text_field( $_GET['tab'] ) : 'general';
78
-        $sections      = wpinv_get_settings_tab_sections( $active_tab );
77
+        $active_tab    = isset($_GET['tab']) && array_key_exists($_GET['tab'], $settings_tabs) ? sanitize_text_field($_GET['tab']) : 'general';
78
+        $sections      = wpinv_get_settings_tab_sections($active_tab);
79 79
         $key           = 'main';
80 80
 
81
-        if ( is_array( $sections ) ) {
82
-            $key = key( $sections );
81
+        if (is_array($sections)) {
82
+            $key = key($sections);
83 83
         }
84 84
 
85
-        $registered_sections = wpinv_get_settings_tab_sections( $active_tab );
86
-        $section             = isset( $_GET['section'] ) && ! empty( $registered_sections ) && array_key_exists( $_GET['section'], $registered_sections ) ? $_GET['section'] : $key;
85
+        $registered_sections = wpinv_get_settings_tab_sections($active_tab);
86
+        $section             = isset($_GET['section']) && !empty($registered_sections) && array_key_exists($_GET['section'], $registered_sections) ? $_GET['section'] : $key;
87 87
         ob_start();
88 88
         ?>
89 89
         <div class="wrap">
90 90
             <h1 class="nav-tab-wrapper">
91 91
                 <?php
92
-                foreach( wpinv_get_settings_tabs() as $tab_id => $tab_name ) {
93
-                    $tab_url = add_query_arg( array(
92
+                foreach (wpinv_get_settings_tabs() as $tab_id => $tab_name) {
93
+                    $tab_url = add_query_arg(array(
94 94
                         'settings-updated' => false,
95 95
                         'tab' => $tab_id,
96
-                    ) );
96
+                    ));
97 97
 
98 98
                     // Remove the section from the tabs so we always end up at the main section
99
-                    $tab_url = remove_query_arg( 'section', $tab_url );
100
-                    $tab_url = remove_query_arg( 'wpi_sub', $tab_url );
99
+                    $tab_url = remove_query_arg('section', $tab_url);
100
+                    $tab_url = remove_query_arg('wpi_sub', $tab_url);
101 101
 
102 102
                     $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
103 103
 
104
-                    echo '<a href="' . esc_url( $tab_url ) . '" title="' . esc_attr( $tab_name ) . '" class="nav-tab' . $active . '">';
105
-                    echo esc_html( $tab_name );
104
+                    echo '<a href="' . esc_url($tab_url) . '" title="' . esc_attr($tab_name) . '" class="nav-tab' . $active . '">';
105
+                    echo esc_html($tab_name);
106 106
                     echo '</a>';
107 107
                 }
108 108
                 ?>
109 109
             </h1>
110 110
             <?php
111
-            $number_of_sections = count( $sections );
111
+            $number_of_sections = count($sections);
112 112
             $number = 0;
113
-            if ( $number_of_sections > 1 ) {
113
+            if ($number_of_sections > 1) {
114 114
                 echo '<div><ul class="subsubsub">';
115
-                foreach( $sections as $section_id => $section_name ) {
115
+                foreach ($sections as $section_id => $section_name) {
116 116
                     echo '<li>';
117 117
                     $number++;
118
-                    $tab_url = add_query_arg( array(
118
+                    $tab_url = add_query_arg(array(
119 119
                         'settings-updated' => false,
120 120
                         'tab' => $active_tab,
121 121
                         'section' => $section_id
122
-                    ) );
123
-                    $tab_url = remove_query_arg( 'wpi_sub', $tab_url );
122
+                    ));
123
+                    $tab_url = remove_query_arg('wpi_sub', $tab_url);
124 124
                     $class = '';
125
-                    if ( $section == $section_id ) {
125
+                    if ($section == $section_id) {
126 126
                         $class = 'current';
127 127
                     }
128
-                    echo '<a class="' . $class . '" href="' . esc_url( $tab_url ) . '">' . $section_name . '</a>';
128
+                    echo '<a class="' . $class . '" href="' . esc_url($tab_url) . '">' . $section_name . '</a>';
129 129
 
130
-                    if ( $number != $number_of_sections ) {
130
+                    if ($number != $number_of_sections) {
131 131
                         echo ' | ';
132 132
                     }
133 133
                     echo '</li>';
@@ -139,19 +139,19 @@  discard block
 block discarded – undo
139 139
                 <form method="post" action="options.php">
140 140
                     <table class="form-table">
141 141
                         <?php
142
-                        settings_fields( 'wpinv_settings' );
142
+                        settings_fields('wpinv_settings');
143 143
 
144
-                        if ( 'main' === $section ) {
145
-                            do_action( 'wpinv_settings_tab_top', $active_tab );
144
+                        if ('main' === $section) {
145
+                            do_action('wpinv_settings_tab_top', $active_tab);
146 146
                         }
147 147
 
148
-                        do_action( 'wpinv_settings_tab_top_' . $active_tab . '_' . $section, $active_tab, $section );
149
-                        do_settings_sections( 'wpinv_settings_' . $active_tab . '_' . $section, $active_tab, $section );
150
-                        do_action( 'wpinv_settings_tab_bottom_' . $active_tab . '_' . $section, $active_tab, $section );
148
+                        do_action('wpinv_settings_tab_top_' . $active_tab . '_' . $section, $active_tab, $section);
149
+                        do_settings_sections('wpinv_settings_' . $active_tab . '_' . $section, $active_tab, $section);
150
+                        do_action('wpinv_settings_tab_bottom_' . $active_tab . '_' . $section, $active_tab, $section);
151 151
 
152 152
                         // For backwards compatibility
153
-                        if ( 'main' === $section ) {
154
-                            do_action( 'wpinv_settings_tab_bottom', $active_tab );
153
+                        if ('main' === $section) {
154
+                            do_action('wpinv_settings_tab_bottom', $active_tab);
155 155
                         }
156 156
                         ?>
157 157
                     </table>
@@ -165,18 +165,18 @@  discard block
 block discarded – undo
165 165
     }
166 166
 
167 167
     public function remove_admin_submenus() {
168
-        remove_submenu_page( 'edit.php?post_type=wpi_invoice', 'post-new.php?post_type=wpi_invoice' );
168
+        remove_submenu_page('edit.php?post_type=wpi_invoice', 'post-new.php?post_type=wpi_invoice');
169 169
     }
170 170
 
171
-    public function add_nav_menu_meta_boxes(){
172
-        add_meta_box( 'wpinv_endpoints_nav_link', __( 'Invoicing Pages', 'invoicing' ), array( $this, 'nav_menu_links' ), 'nav-menus', 'side', 'low' );
171
+    public function add_nav_menu_meta_boxes() {
172
+        add_meta_box('wpinv_endpoints_nav_link', __('Invoicing Pages', 'invoicing'), array($this, 'nav_menu_links'), 'nav-menus', 'side', 'low');
173 173
     }
174 174
 
175
-    public function nav_menu_links(){
175
+    public function nav_menu_links() {
176 176
         $endpoints = $this->get_menu_items();
177 177
         ?>
178 178
         <div id="invoicing-endpoints" class="posttypediv">
179
-        <?php if(!empty($endpoints['pages'])){ ?>
179
+        <?php if (!empty($endpoints['pages'])) { ?>
180 180
             <div id="tabs-panel-invoicing-endpoints" class="tabs-panel tabs-panel-active">
181 181
                 <ul id="invoicing-endpoints-checklist" class="categorychecklist form-no-clear">
182 182
                     <?php
@@ -188,29 +188,29 @@  discard block
 block discarded – undo
188 188
         <?php } ?>
189 189
         <p class="button-controls">
190 190
         <span class="list-controls">
191
-            <a href="<?php echo admin_url( 'nav-menus.php?page-tab=all&selectall=1#invoicing-endpoints' ); ?>" class="select-all"><?php _e( 'Select all', 'invoicing' ); ?></a>
191
+            <a href="<?php echo admin_url('nav-menus.php?page-tab=all&selectall=1#invoicing-endpoints'); ?>" class="select-all"><?php _e('Select all', 'invoicing'); ?></a>
192 192
         </span>
193 193
             <span class="add-to-menu">
194
-            <input type="submit" class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to menu', 'invoicing' ); ?>" name="add-post-type-menu-item" id="submit-invoicing-endpoints">
194
+            <input type="submit" class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to menu', 'invoicing'); ?>" name="add-post-type-menu-item" id="submit-invoicing-endpoints">
195 195
             <span class="spinner"></span>
196 196
         </span>
197 197
         </p>
198 198
         <?php
199 199
     }
200 200
 
201
-    public function get_menu_items(){
201
+    public function get_menu_items() {
202 202
         $items = array();
203 203
 
204
-        $wpinv_history_page_id = (int)wpinv_get_option( 'invoice_history_page' );
205
-        if($wpinv_history_page_id > 0){
204
+        $wpinv_history_page_id = (int) wpinv_get_option('invoice_history_page');
205
+        if ($wpinv_history_page_id > 0) {
206 206
             $item = new stdClass();
207 207
             $item->object_id = $wpinv_history_page_id;
208 208
             $item->db_id = 0;
209
-            $item->object =  'page';
209
+            $item->object = 'page';
210 210
             $item->menu_item_parent = 0;
211 211
             $item->type = 'post_type';
212
-            $item->title = __('Invoice History Page','invoicing');
213
-            $item->url = get_permalink( $wpinv_history_page_id );
212
+            $item->title = __('Invoice History Page', 'invoicing');
213
+            $item->url = get_permalink($wpinv_history_page_id);
214 214
             $item->target = '';
215 215
             $item->attr_title = '';
216 216
             $item->classes = array('wpinv-menu-item');
@@ -219,16 +219,16 @@  discard block
 block discarded – undo
219 219
             $items['pages'][] = $item;
220 220
         }
221 221
 
222
-        $wpinv_sub_history_page_id = (int)wpinv_get_option( 'invoice_subscription_page' );
223
-        if($wpinv_sub_history_page_id > 0){
222
+        $wpinv_sub_history_page_id = (int) wpinv_get_option('invoice_subscription_page');
223
+        if ($wpinv_sub_history_page_id > 0) {
224 224
             $item = new stdClass();
225 225
             $item->object_id = $wpinv_sub_history_page_id;
226 226
             $item->db_id = 0;
227
-            $item->object =  'page';
227
+            $item->object = 'page';
228 228
             $item->menu_item_parent = 0;
229 229
             $item->type = 'post_type';
230
-            $item->title = __('Invoice Subscriptions Page','invoicing');
231
-            $item->url = get_permalink( $wpinv_sub_history_page_id );
230
+            $item->title = __('Invoice Subscriptions Page', 'invoicing');
231
+            $item->url = get_permalink($wpinv_sub_history_page_id);
232 232
             $item->target = '';
233 233
             $item->attr_title = '';
234 234
             $item->classes = array('wpinv-menu-item');
@@ -237,16 +237,16 @@  discard block
 block discarded – undo
237 237
             $items['pages'][] = $item;
238 238
         }
239 239
 
240
-        $wpinv_checkout_page_id = (int)wpinv_get_option( 'checkout_page' );
241
-        if($wpinv_checkout_page_id > 0){
240
+        $wpinv_checkout_page_id = (int) wpinv_get_option('checkout_page');
241
+        if ($wpinv_checkout_page_id > 0) {
242 242
             $item = new stdClass();
243 243
             $item->object_id = $wpinv_checkout_page_id;
244 244
             $item->db_id = 0;
245
-            $item->object =  'page';
245
+            $item->object = 'page';
246 246
             $item->menu_item_parent = 0;
247 247
             $item->type = 'post_type';
248
-            $item->title = __('Checkout Page','invoicing');
249
-            $item->url = get_permalink( $wpinv_checkout_page_id );
248
+            $item->title = __('Checkout Page', 'invoicing');
249
+            $item->url = get_permalink($wpinv_checkout_page_id);
250 250
             $item->target = '';
251 251
             $item->attr_title = '';
252 252
             $item->classes = array('wpinv-menu-item');
@@ -255,16 +255,16 @@  discard block
 block discarded – undo
255 255
             $items['pages'][] = $item;
256 256
         }
257 257
 
258
-        $wpinv_tandc_page_id = (int)wpinv_get_option( 'tandc_page' );
259
-        if($wpinv_tandc_page_id > 0){
258
+        $wpinv_tandc_page_id = (int) wpinv_get_option('tandc_page');
259
+        if ($wpinv_tandc_page_id > 0) {
260 260
             $item = new stdClass();
261 261
             $item->object_id = $wpinv_tandc_page_id;
262 262
             $item->db_id = 0;
263
-            $item->object =  'page';
263
+            $item->object = 'page';
264 264
             $item->menu_item_parent = 0;
265 265
             $item->type = 'post_type';
266
-            $item->title = __('Terms & Conditions','invoicing');
267
-            $item->url = get_permalink( $wpinv_tandc_page_id );
266
+            $item->title = __('Terms & Conditions', 'invoicing');
267
+            $item->url = get_permalink($wpinv_tandc_page_id);
268 268
             $item->target = '';
269 269
             $item->attr_title = '';
270 270
             $item->classes = array('wpinv-menu-item');
@@ -273,16 +273,16 @@  discard block
 block discarded – undo
273 273
             $items['pages'][] = $item;
274 274
         }
275 275
 
276
-        $wpinv_success_page_id = (int)wpinv_get_option( 'success_page' );
277
-        if($wpinv_success_page_id > 0){
276
+        $wpinv_success_page_id = (int) wpinv_get_option('success_page');
277
+        if ($wpinv_success_page_id > 0) {
278 278
             $item = new stdClass();
279 279
             $item->object_id = $wpinv_success_page_id;
280 280
             $item->db_id = 0;
281
-            $item->object =  'page';
281
+            $item->object = 'page';
282 282
             $item->menu_item_parent = 0;
283 283
             $item->type = 'post_type';
284
-            $item->title = __('Success Page','invoicing');
285
-            $item->url = get_permalink( $wpinv_success_page_id );
284
+            $item->title = __('Success Page', 'invoicing');
285
+            $item->url = get_permalink($wpinv_success_page_id);
286 286
             $item->target = '';
287 287
             $item->attr_title = '';
288 288
             $item->classes = array('wpinv-menu-item');
@@ -291,16 +291,16 @@  discard block
 block discarded – undo
291 291
             $items['pages'][] = $item;
292 292
         }
293 293
 
294
-        $wpinv_failure_page_id = (int)wpinv_get_option( 'failure_page' );
295
-        if($wpinv_failure_page_id > 0){
294
+        $wpinv_failure_page_id = (int) wpinv_get_option('failure_page');
295
+        if ($wpinv_failure_page_id > 0) {
296 296
             $item = new stdClass();
297 297
             $item->object_id = $wpinv_failure_page_id;
298 298
             $item->db_id = 0;
299
-            $item->object =  'page';
299
+            $item->object = 'page';
300 300
             $item->menu_item_parent = 0;
301 301
             $item->type = 'post_type';
302
-            $item->title = __('Failed Transaction Page','invoicing');
303
-            $item->url = get_permalink( $wpinv_failure_page_id );
302
+            $item->title = __('Failed Transaction Page', 'invoicing');
303
+            $item->url = get_permalink($wpinv_failure_page_id);
304 304
             $item->target = '';
305 305
             $item->attr_title = '';
306 306
             $item->classes = array('wpinv-menu-item');
@@ -309,7 +309,7 @@  discard block
 block discarded – undo
309 309
             $items['pages'][] = $item;
310 310
         }
311 311
 
312
-        return apply_filters( 'wpinv_menu_items', $items );
312
+        return apply_filters('wpinv_menu_items', $items);
313 313
     }
314 314
 
315 315
 }
Please login to merge, or discard this patch.
widgets/buy-item.php 2 patches
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -38,29 +38,29 @@  discard block
 block discarded – undo
38 38
                     'advanced'    => false
39 39
                 ),
40 40
                 'items'  => array(
41
-	                'title'       => __( 'Items to buy', 'invoicing' ),
42
-	                'desc'        => __( 'Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2 ', 'invoicing' ),
43
-	                'type'        => 'text',
44
-	                'desc_tip'    => true,
45
-	                'default'     => '',
46
-	                'placeholder' => __('Items to buy','invoicing'),
47
-	                'advanced'    => false
41
+                    'title'       => __( 'Items to buy', 'invoicing' ),
42
+                    'desc'        => __( 'Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2 ', 'invoicing' ),
43
+                    'type'        => 'text',
44
+                    'desc_tip'    => true,
45
+                    'default'     => '',
46
+                    'placeholder' => __('Items to buy','invoicing'),
47
+                    'advanced'    => false
48 48
                 ),
49 49
                 'label'  => array(
50
-	                'title'       => __( 'Button Label', 'invoicing' ),
51
-	                'desc'        => __( 'Enter button label. Default "Buy Now".', 'invoicing' ),
52
-	                'type'        => 'text',
53
-	                'desc_tip'    => true,
54
-	                'default'     => __( 'Buy Now', 'invoicing' ),
55
-	                'advanced'    => false
50
+                    'title'       => __( 'Button Label', 'invoicing' ),
51
+                    'desc'        => __( 'Enter button label. Default "Buy Now".', 'invoicing' ),
52
+                    'type'        => 'text',
53
+                    'desc_tip'    => true,
54
+                    'default'     => __( 'Buy Now', 'invoicing' ),
55
+                    'advanced'    => false
56 56
                 ),
57 57
                 'post_id'  => array(
58
-	                'title'       => __( 'Post ID', 'invoicing' ),
59
-	                'desc'        => __( 'Enter related post ID. This is for 3rd party add ons and not mandatory field.', 'invoicing' ),
60
-	                'type'        => 'number',
61
-	                'desc_tip'    => true,
62
-	                'default'     => '',
63
-	                'advanced'    => true
58
+                    'title'       => __( 'Post ID', 'invoicing' ),
59
+                    'desc'        => __( 'Enter related post ID. This is for 3rd party add ons and not mandatory field.', 'invoicing' ),
60
+                    'type'        => 'number',
61
+                    'desc_tip'    => true,
62
+                    'default'     => '',
63
+                    'advanced'    => true
64 64
                 ),
65 65
             )
66 66
 
@@ -70,43 +70,43 @@  discard block
 block discarded – undo
70 70
         parent::__construct( $options );
71 71
     }
72 72
 
73
-	/**
74
-	 * The Super block output function.
75
-	 *
76
-	 * @param array $args
77
-	 * @param array $widget_args
78
-	 * @param string $content
79
-	 *
80
-	 * @return string
81
-	 */
73
+    /**
74
+     * The Super block output function.
75
+     *
76
+     * @param array $args
77
+     * @param array $widget_args
78
+     * @param string $content
79
+     *
80
+     * @return string
81
+     */
82 82
     public function output( $args = array(), $widget_args = array(), $content = '' ) {
83 83
 
84
-	    $defaults = array(
85
-		    'items'     	=> '', // should be used like: item_id|quantity,item_id|quantity,item_id|quantity
86
-		    'label'  	    => __( 'Buy Now', 'invoicing' ), // the button title
87
-		    'post_id'   	=> '', // any related post_id
88
-	    );
84
+        $defaults = array(
85
+            'items'     	=> '', // should be used like: item_id|quantity,item_id|quantity,item_id|quantity
86
+            'label'  	    => __( 'Buy Now', 'invoicing' ), // the button title
87
+            'post_id'   	=> '', // any related post_id
88
+        );
89 89
 
90
-	    /**
91
-	     * Parse incoming $args into an array and merge it with $defaults
92
-	     */
93
-	    $args = wp_parse_args( $args, $defaults );
90
+        /**
91
+         * Parse incoming $args into an array and merge it with $defaults
92
+         */
93
+        $args = wp_parse_args( $args, $defaults );
94 94
 
95
-		$html = '<div class="wpi-buy-button-wrapper wpi-g">';
95
+        $html = '<div class="wpi-buy-button-wrapper wpi-g">';
96 96
 		
97
-		if ( empty( $args['items'] ) ) {
98
-			$html .= __( 'No items selected', 'invoicing' );
99
-		} else {
100
-			$post_id = isset( $args['post_id'] ) && is_numeric( $args['post_id'] ) ? sanitize_text_field( $args['post_id'] ) : 0;
101
-			$label   = isset( $args['label'] ) ? sanitize_text_field( $args['label'] ) : __( 'Buy Now', 'invoicing' );
102
-			$items   = esc_attr( $args['items'] );
103
-			$html   .= "<button class='button button-primary wpi-buy-button' type='button' onclick=\"wpi_buy(this, '$items','$post_id');\">$label</button>";
104
-		}
97
+        if ( empty( $args['items'] ) ) {
98
+            $html .= __( 'No items selected', 'invoicing' );
99
+        } else {
100
+            $post_id = isset( $args['post_id'] ) && is_numeric( $args['post_id'] ) ? sanitize_text_field( $args['post_id'] ) : 0;
101
+            $label   = isset( $args['label'] ) ? sanitize_text_field( $args['label'] ) : __( 'Buy Now', 'invoicing' );
102
+            $items   = esc_attr( $args['items'] );
103
+            $html   .= "<button class='button button-primary wpi-buy-button' type='button' onclick=\"wpi_buy(this, '$items','$post_id');\">$label</button>";
104
+        }
105 105
 	
106
-	    $html .= wp_nonce_field( 'wpinv_buy_items', 'wpinv_buy_nonce', true, false );
107
-	    $html .= '</div>';
106
+        $html .= wp_nonce_field( 'wpinv_buy_items', 'wpinv_buy_nonce', true, false );
107
+        $html .= '</div>';
108 108
 
109
-	    return $html;
109
+        return $html;
110 110
 
111 111
     }
112 112
 
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'ABSPATH' ) ) {
2
+if (!defined('ABSPATH')) {
3 3
     exit;
4 4
 }
5 5
 
@@ -23,40 +23,40 @@  discard block
 block discarded – undo
23 23
             'block-keywords'=> "['invoicing','buy', 'buy item']",
24 24
             'class_name'     => __CLASS__,
25 25
             'base_id'       => 'wpinv_buy',
26
-            'name'          => __('Invoicing > Buy Item Button','invoicing'),
26
+            'name'          => __('Invoicing > Buy Item Button', 'invoicing'),
27 27
             'widget_ops'    => array(
28 28
                 'classname'   => 'wpinv-buy-item-class  wpi-g',
29
-                'description' => esc_html__('Displays buy invoicing item button.','invoicing'),
29
+                'description' => esc_html__('Displays buy invoicing item button.', 'invoicing'),
30 30
             ),
31 31
             'arguments'     => array(
32 32
                 'title'  => array(
33
-                    'title'       => __( 'Widget title', 'invoicing' ),
34
-                    'desc'        => __( 'Enter widget title.', 'invoicing' ),
33
+                    'title'       => __('Widget title', 'invoicing'),
34
+                    'desc'        => __('Enter widget title.', 'invoicing'),
35 35
                     'type'        => 'text',
36 36
                     'desc_tip'    => true,
37 37
                     'default'     => '',
38 38
                     'advanced'    => false
39 39
                 ),
40 40
                 'items'  => array(
41
-	                'title'       => __( 'Items to buy', 'invoicing' ),
42
-	                'desc'        => __( 'Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2 ', 'invoicing' ),
41
+	                'title'       => __('Items to buy', 'invoicing'),
42
+	                'desc'        => __('Enter comma separated list of invoicing item id and quantity (item_id|quantity). Ex. 101|2 ', 'invoicing'),
43 43
 	                'type'        => 'text',
44 44
 	                'desc_tip'    => true,
45 45
 	                'default'     => '',
46
-	                'placeholder' => __('Items to buy','invoicing'),
46
+	                'placeholder' => __('Items to buy', 'invoicing'),
47 47
 	                'advanced'    => false
48 48
                 ),
49 49
                 'label'  => array(
50
-	                'title'       => __( 'Button Label', 'invoicing' ),
51
-	                'desc'        => __( 'Enter button label. Default "Buy Now".', 'invoicing' ),
50
+	                'title'       => __('Button Label', 'invoicing'),
51
+	                'desc'        => __('Enter button label. Default "Buy Now".', 'invoicing'),
52 52
 	                'type'        => 'text',
53 53
 	                'desc_tip'    => true,
54
-	                'default'     => __( 'Buy Now', 'invoicing' ),
54
+	                'default'     => __('Buy Now', 'invoicing'),
55 55
 	                'advanced'    => false
56 56
                 ),
57 57
                 'post_id'  => array(
58
-	                'title'       => __( 'Post ID', 'invoicing' ),
59
-	                'desc'        => __( 'Enter related post ID. This is for 3rd party add ons and not mandatory field.', 'invoicing' ),
58
+	                'title'       => __('Post ID', 'invoicing'),
59
+	                'desc'        => __('Enter related post ID. This is for 3rd party add ons and not mandatory field.', 'invoicing'),
60 60
 	                'type'        => 'number',
61 61
 	                'desc_tip'    => true,
62 62
 	                'default'     => '',
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
         );
68 68
 
69 69
 
70
-        parent::__construct( $options );
70
+        parent::__construct($options);
71 71
     }
72 72
 
73 73
 	/**
@@ -79,31 +79,31 @@  discard block
 block discarded – undo
79 79
 	 *
80 80
 	 * @return string
81 81
 	 */
82
-    public function output( $args = array(), $widget_args = array(), $content = '' ) {
82
+    public function output($args = array(), $widget_args = array(), $content = '') {
83 83
 
84 84
 	    $defaults = array(
85 85
 		    'items'     	=> '', // should be used like: item_id|quantity,item_id|quantity,item_id|quantity
86
-		    'label'  	    => __( 'Buy Now', 'invoicing' ), // the button title
86
+		    'label'  	    => __('Buy Now', 'invoicing'), // the button title
87 87
 		    'post_id'   	=> '', // any related post_id
88 88
 	    );
89 89
 
90 90
 	    /**
91 91
 	     * Parse incoming $args into an array and merge it with $defaults
92 92
 	     */
93
-	    $args = wp_parse_args( $args, $defaults );
93
+	    $args = wp_parse_args($args, $defaults);
94 94
 
95 95
 		$html = '<div class="wpi-buy-button-wrapper wpi-g">';
96 96
 		
97
-		if ( empty( $args['items'] ) ) {
98
-			$html .= __( 'No items selected', 'invoicing' );
97
+		if (empty($args['items'])) {
98
+			$html .= __('No items selected', 'invoicing');
99 99
 		} else {
100
-			$post_id = isset( $args['post_id'] ) && is_numeric( $args['post_id'] ) ? sanitize_text_field( $args['post_id'] ) : 0;
101
-			$label   = isset( $args['label'] ) ? sanitize_text_field( $args['label'] ) : __( 'Buy Now', 'invoicing' );
102
-			$items   = esc_attr( $args['items'] );
100
+			$post_id = isset($args['post_id']) && is_numeric($args['post_id']) ? sanitize_text_field($args['post_id']) : 0;
101
+			$label   = isset($args['label']) ? sanitize_text_field($args['label']) : __('Buy Now', 'invoicing');
102
+			$items   = esc_attr($args['items']);
103 103
 			$html   .= "<button class='button button-primary wpi-buy-button' type='button' onclick=\"wpi_buy(this, '$items','$post_id');\">$label</button>";
104 104
 		}
105 105
 	
106
-	    $html .= wp_nonce_field( 'wpinv_buy_items', 'wpinv_buy_nonce', true, false );
106
+	    $html .= wp_nonce_field('wpinv_buy_items', 'wpinv_buy_nonce', true, false);
107 107
 	    $html .= '</div>';
108 108
 
109 109
 	    return $html;
Please login to merge, or discard this patch.
includes/api/class-wpinv-rest-invoice-controller.php 2 patches
Indentation   +1272 added lines, -1272 removed lines patch added patch discarded remove patch
@@ -20,31 +20,31 @@  discard block
 block discarded – undo
20 20
 class WPInv_REST_Invoice_Controller extends WP_REST_Posts_Controller {
21 21
 
22 22
     /**
23
-	 * Post type.
24
-	 *
25
-	 * @var string
26
-	 */
27
-	protected $post_type = 'wpi_invoice';
23
+     * Post type.
24
+     *
25
+     * @var string
26
+     */
27
+    protected $post_type = 'wpi_invoice';
28 28
 	
29
-	/**
30
-	 * Cached results of get_item_schema.
31
-	 *
32
-	 * @since 1.0.13
33
-	 * @var array
34
-	 */
35
-	protected $schema;
29
+    /**
30
+     * Cached results of get_item_schema.
31
+     *
32
+     * @since 1.0.13
33
+     * @var array
34
+     */
35
+    protected $schema;
36 36
 
37 37
     /**
38
-	 * Constructor.
39
-	 *
40
-	 * @since 1.0.13
41
-	 *
42
-	 * @param string $namespace Api Namespace
43
-	 */
44
-	public function __construct( $namespace ) {
38
+     * Constructor.
39
+     *
40
+     * @since 1.0.13
41
+     *
42
+     * @param string $namespace Api Namespace
43
+     */
44
+    public function __construct( $namespace ) {
45 45
         
46 46
         // Set api namespace...
47
-		$this->namespace = $namespace;
47
+        $this->namespace = $namespace;
48 48
 
49 49
         // ... and the rest base
50 50
         $this->rest_base = 'invoices';
@@ -52,79 +52,79 @@  discard block
 block discarded – undo
52 52
     }
53 53
     
54 54
     /**
55
-	 * Checks if a given request has access to read invoices.
55
+     * Checks if a given request has access to read invoices.
56 56
      * 
57
-	 *
58
-	 * @since 1.0.13
59
-	 *
60
-	 * @param WP_REST_Request $request Full details about the request.
61
-	 * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
62
-	 */
63
-	public function get_items_permissions_check( $request ) {
57
+     *
58
+     * @since 1.0.13
59
+     *
60
+     * @param WP_REST_Request $request Full details about the request.
61
+     * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
62
+     */
63
+    public function get_items_permissions_check( $request ) {
64 64
 	
65 65
         $post_type = get_post_type_object( $this->post_type );
66 66
 
67
-		if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
68
-			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
69
-		}
67
+        if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
68
+            return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
69
+        }
70 70
 
71
-		if ( ! is_user_logged_in() ) {
72
-			return new WP_Error( 'rest_forbidden', __( 'Sorry, you must be logged in to view items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
73
-		}
71
+        if ( ! is_user_logged_in() ) {
72
+            return new WP_Error( 'rest_forbidden', __( 'Sorry, you must be logged in to view items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
73
+        }
74 74
 
75
-		// Read checks will be evaluated on a per invoice basis
75
+        // Read checks will be evaluated on a per invoice basis
76 76
 
77
-		return true;
77
+        return true;
78 78
 
79 79
     }
80 80
     
81 81
     /**
82
-	 * Retrieves a collection of invoices.
83
-	 *
84
-	 * @since 1.0.13
85
-	 *
86
-	 * @param WP_REST_Request $request Full details about the request.
87
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
88
-	 */
89
-	public function get_items( $request ) {
82
+     * Retrieves a collection of invoices.
83
+     *
84
+     * @since 1.0.13
85
+     *
86
+     * @param WP_REST_Request $request Full details about the request.
87
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
88
+     */
89
+    public function get_items( $request ) {
90 90
 		
91
-		// Retrieve request query parameters.
92
-		$args          = $this->get_request_collection_params( $request );
91
+        // Retrieve request query parameters.
92
+        $args          = $this->get_request_collection_params( $request );
93 93
 		
94
-		// WP_Query Args.
95
-		$wp_query_args = $this->get_collection_wp_query_params( $args, $request );
94
+        // WP_Query Args.
95
+        $wp_query_args = $this->get_collection_wp_query_params( $args, $request );
96 96
 		
97
-		// Get invoice ids...
98
-		$query         = new WP_Query( $wp_query_args );
99
-
100
-		// ... and map them into invoice objects.
101
-		$_invoices     = array_map( array( $this, 'get_post' ), $query->posts );
102
-
103
-		// Prepare the retrieved invoices
104
-		$invoices      = array();
105
-
106
-		foreach( $_invoices as $invoice ) {
107
-			if ( $this->check_read_permission( $invoice ) ) {
108
-				$invoices[] = $this->prepare_response_for_collection( $this->prepare_item_for_response( $invoice, $request ) );
109
-			}
110
-		}
111
-
112
-		// Prepare the response.
113
-		$response = rest_ensure_response( $invoices );
114
-		$response->header( 'X-WP-Total', (int) $query->found_posts );
115
-		$response->header( 'X-WP-TotalPages', (int) $query->max_num_pages );
116
-
117
-		/**
118
-		 * Filters the responses for invoices requests.
119
-		 *
120
-		 *
121
-		 * @since 1.0.13
122
-		 *
123
-		 *
124
-		 * @param arrWP_REST_Response $response    Response object.
125
-		 * @param WP_REST_Request     $request The request used.
97
+        // Get invoice ids...
98
+        $query         = new WP_Query( $wp_query_args );
99
+
100
+        // ... and map them into invoice objects.
101
+        $_invoices     = array_map( array( $this, 'get_post' ), $query->posts );
102
+
103
+        // Prepare the retrieved invoices
104
+        $invoices      = array();
105
+
106
+        foreach( $_invoices as $invoice ) {
107
+            if ( $this->check_read_permission( $invoice ) ) {
108
+                $invoices[] = $this->prepare_response_for_collection( $this->prepare_item_for_response( $invoice, $request ) );
109
+            }
110
+        }
111
+
112
+        // Prepare the response.
113
+        $response = rest_ensure_response( $invoices );
114
+        $response->header( 'X-WP-Total', (int) $query->found_posts );
115
+        $response->header( 'X-WP-TotalPages', (int) $query->max_num_pages );
116
+
117
+        /**
118
+         * Filters the responses for invoices requests.
119
+         *
120
+         *
121
+         * @since 1.0.13
122
+         *
123
+         *
124
+         * @param arrWP_REST_Response $response    Response object.
125
+         * @param WP_REST_Request     $request The request used.
126 126
          * @param array               $args Array of args used to retrieve the invoices
127
-		 */
127
+         */
128 128
         $response       = apply_filters( "wpinv_rest_invoices_response", $response, $request, $args );
129 129
 
130 130
         return rest_ensure_response( $response );
@@ -132,25 +132,25 @@  discard block
 block discarded – undo
132 132
     }
133 133
 
134 134
     /**
135
-	 * Get the post, if the ID is valid.
136
-	 *
137
-	 * @since 1.0.13
138
-	 *
139
-	 * @param int $invoice_id Supplied ID.
140
-	 * @return WPInv_Invoice|WP_Error Invoice object if ID is valid, WP_Error otherwise.
141
-	 */
142
-	protected function get_post( $invoice_id ) {
135
+     * Get the post, if the ID is valid.
136
+     *
137
+     * @since 1.0.13
138
+     *
139
+     * @param int $invoice_id Supplied ID.
140
+     * @return WPInv_Invoice|WP_Error Invoice object if ID is valid, WP_Error otherwise.
141
+     */
142
+    protected function get_post( $invoice_id ) {
143 143
 		
144
-		$error     = new WP_Error( 'rest_invoice_invalid_id', __( 'Invalid item ID.', 'invoicing' ), array( 'status' => 404 ) );
144
+        $error     = new WP_Error( 'rest_invoice_invalid_id', __( 'Invalid item ID.', 'invoicing' ), array( 'status' => 404 ) );
145 145
 
146 146
         // Ids start from 1
147 147
         if ( (int) $invoice_id <= 0 ) {
148
-			return $error;
149
-		}
148
+            return $error;
149
+        }
150 150
 
151
-		$invoice = wpinv_get_invoice( (int) $invoice_id );
152
-		if ( empty( $invoice ) || $this->post_type !== $invoice->post_type ) {
153
-			return $error;
151
+        $invoice = wpinv_get_invoice( (int) $invoice_id );
152
+        if ( empty( $invoice ) || $this->post_type !== $invoice->post_type ) {
153
+            return $error;
154 154
         }
155 155
 
156 156
         return $invoice;
@@ -158,77 +158,77 @@  discard block
 block discarded – undo
158 158
     }
159 159
 
160 160
     /**
161
-	 * Checks if a given request has access to read an invoice.
162
-	 *
163
-	 * @since 1.0.13
164
-	 *
165
-	 * @param WP_REST_Request $request Full details about the request.
166
-	 * @return bool|WP_Error True if the request has read access for the invoice, WP_Error object otherwise.
167
-	 */
168
-	public function get_item_permissions_check( $request ) {
161
+     * Checks if a given request has access to read an invoice.
162
+     *
163
+     * @since 1.0.13
164
+     *
165
+     * @param WP_REST_Request $request Full details about the request.
166
+     * @return bool|WP_Error True if the request has read access for the invoice, WP_Error object otherwise.
167
+     */
168
+    public function get_item_permissions_check( $request ) {
169 169
 
170 170
         // Retrieve the invoice object.
171 171
         $invoice = $this->get_post( $request['id'] );
172 172
         
173 173
         // Ensure it is valid.
174
-		if ( is_wp_error( $invoice ) ) {
175
-			return $invoice;
176
-		}
174
+        if ( is_wp_error( $invoice ) ) {
175
+            return $invoice;
176
+        }
177 177
 
178
-		if ( $invoice ) {
179
-			return $this->check_read_permission( $invoice );
180
-		}
178
+        if ( $invoice ) {
179
+            return $this->check_read_permission( $invoice );
180
+        }
181 181
 
182
-		return true;
182
+        return true;
183 183
     }
184 184
     
185 185
     /**
186
-	 * Checks if an invoice can be read.
187
-	 * 
188
-	 * An invoice can be read by site admins and owners of the invoice
189
-	 *
190
-	 *
191
-	 * @since 1.0.13
192
-	 *
193
-	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
194
-	 * @return bool Whether the post can be read.
195
-	 */
196
-	public function check_read_permission( $invoice ) {
197
-		return wpinv_user_can_view_invoice( $invoice->ID );
186
+     * Checks if an invoice can be read.
187
+     * 
188
+     * An invoice can be read by site admins and owners of the invoice
189
+     *
190
+     *
191
+     * @since 1.0.13
192
+     *
193
+     * @param WPInv_Invoice $invoice WPInv_Invoice object.
194
+     * @return bool Whether the post can be read.
195
+     */
196
+    public function check_read_permission( $invoice ) {
197
+        return wpinv_user_can_view_invoice( $invoice->ID );
198 198
     }
199 199
     
200 200
     /**
201
-	 * Retrieves a single invoice.
202
-	 *
203
-	 * @since 1.0.13
204
-	 *
205
-	 * @param WP_REST_Request $request Full details about the request.
206
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
207
-	 */
208
-	public function get_item( $request ) {
201
+     * Retrieves a single invoice.
202
+     *
203
+     * @since 1.0.13
204
+     *
205
+     * @param WP_REST_Request $request Full details about the request.
206
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
207
+     */
208
+    public function get_item( $request ) {
209 209
 
210 210
         // Fetch the invoice.
211 211
         $invoice = $this->get_post( $request['id'] );
212 212
         
213 213
         // Abort early if it does not exist
214
-		if ( is_wp_error( $invoice ) ) {
215
-			return $invoice;
216
-		}
217
-
218
-		// Prepare the response
219
-		$response = $this->prepare_item_for_response( $invoice, $request );
220
-		$response->link_header( 'alternate', esc_url( $invoice->get_view_url() ), array( 'type' => 'text/html' ) );
221
-
222
-		/**
223
-		 * Filters the responses for single invoice requests.
224
-		 *
225
-		 *
226
-		 * @since 1.0.13
227
-		 * @var WP_HTTP_Response
228
-		 *
229
-		 * @param WP_HTTP_Response $response Response.
230
-		 * @param WP_REST_Request  $request The request used.
231
-		 */
214
+        if ( is_wp_error( $invoice ) ) {
215
+            return $invoice;
216
+        }
217
+
218
+        // Prepare the response
219
+        $response = $this->prepare_item_for_response( $invoice, $request );
220
+        $response->link_header( 'alternate', esc_url( $invoice->get_view_url() ), array( 'type' => 'text/html' ) );
221
+
222
+        /**
223
+         * Filters the responses for single invoice requests.
224
+         *
225
+         *
226
+         * @since 1.0.13
227
+         * @var WP_HTTP_Response
228
+         *
229
+         * @param WP_HTTP_Response $response Response.
230
+         * @param WP_REST_Request  $request The request used.
231
+         */
232 232
         $response       = apply_filters( "wpinv_rest_get_invoice_response", $response, $request );
233 233
 
234 234
         return rest_ensure_response( $response );
@@ -236,23 +236,23 @@  discard block
 block discarded – undo
236 236
     }
237 237
     
238 238
     /**
239
-	 * Checks if a given request has access to create an invoice.
240
-	 *
241
-	 * @since 1.0.13
242
-	 *
243
-	 * @param WP_REST_Request $request Full details about the request.
244
-	 * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
245
-	 */
246
-	public function create_item_permissions_check( $request ) {
239
+     * Checks if a given request has access to create an invoice.
240
+     *
241
+     * @since 1.0.13
242
+     *
243
+     * @param WP_REST_Request $request Full details about the request.
244
+     * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
245
+     */
246
+    public function create_item_permissions_check( $request ) {
247 247
 	
248
-		if ( ! empty( $request['id'] ) ) {
249
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
250
-		}
248
+        if ( ! empty( $request['id'] ) ) {
249
+            return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
250
+        }
251 251
 
252
-		$post_type = get_post_type_object( $this->post_type );
252
+        $post_type = get_post_type_object( $this->post_type );
253 253
 
254
-		if ( ! current_user_can( $post_type->cap->create_posts ) && ! wpinv_current_user_can_manage_invoicing() ) {
255
-			return new WP_Error( 
254
+        if ( ! current_user_can( $post_type->cap->create_posts ) && ! wpinv_current_user_can_manage_invoicing() ) {
255
+            return new WP_Error( 
256 256
                 'rest_cannot_create',
257 257
                 __( 'Sorry, you are not allowed to create items as this user.', 'invoicing' ), 
258 258
                 array( 
@@ -261,90 +261,90 @@  discard block
 block discarded – undo
261 261
             );
262 262
         }
263 263
 
264
-		return true;
264
+        return true;
265 265
     }
266 266
     
267 267
     /**
268
-	 * Creates a single invoice.
269
-	 *
270
-	 * @since 1.0.13
271
-	 *
272
-	 * @param WP_REST_Request $request Full details about the request.
273
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
274
-	 */
275
-	public function create_item( $request ) {
276
-
277
-		if ( ! empty( $request['id'] ) ) {
278
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
279
-		}
280
-
281
-		$request->set_param( 'context', 'edit' );
282
-
283
-		// Prepare the updated data.
284
-		$invoice_data = $this->prepare_item_for_database( $request );
285
-
286
-		if ( is_wp_error( $invoice_data ) ) {
287
-			return $invoice_data;
288
-		}
289
-
290
-		// Try creating the invoice
291
-		$invoice_data['post_type']    = $this->post_type;
292
-		$invoice_data['private_note'] = __( 'Created via API.', 'invoicing' );
268
+     * Creates a single invoice.
269
+     *
270
+     * @since 1.0.13
271
+     *
272
+     * @param WP_REST_Request $request Full details about the request.
273
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
274
+     */
275
+    public function create_item( $request ) {
276
+
277
+        if ( ! empty( $request['id'] ) ) {
278
+            return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
279
+        }
280
+
281
+        $request->set_param( 'context', 'edit' );
282
+
283
+        // Prepare the updated data.
284
+        $invoice_data = $this->prepare_item_for_database( $request );
285
+
286
+        if ( is_wp_error( $invoice_data ) ) {
287
+            return $invoice_data;
288
+        }
289
+
290
+        // Try creating the invoice
291
+        $invoice_data['post_type']    = $this->post_type;
292
+        $invoice_data['private_note'] = __( 'Created via API.', 'invoicing' );
293 293
         $invoice = wpinv_insert_invoice( $invoice_data, true );
294 294
 
295
-		if ( is_wp_error( $invoice ) ) {
295
+        if ( is_wp_error( $invoice ) ) {
296 296
             return $invoice;
297
-		}
298
-
299
-		// Prepare the response
300
-		$response = $this->prepare_item_for_response( $invoice, $request );
301
-
302
-		/**
303
-		 * Fires after a single invoice is created or updated via the REST API.
304
-		 *
305
-		 * @since 1.0.13
306
-		 *
307
-		 * @param WPinv_Invoice   $invoice  Inserted or updated invoice object.
308
-		 * @param WP_REST_Request $request  Request object.
309
-		 * @param bool            $creating True when creating a post, false when updating.
310
-		 */
311
-		do_action( "wpinv_rest_insert_invoice", $invoice, $request, true );
312
-
313
-		/**
314
-		 * Filters the responses for creating single invoice requests.
315
-		 *
316
-		 *
317
-		 * @since 1.0.13
318
-		 *
319
-		 *
320
-		 * @param array           $invoice_data Invoice properties.
321
-		 * @param WP_REST_Request $request The request used.
322
-		 */
297
+        }
298
+
299
+        // Prepare the response
300
+        $response = $this->prepare_item_for_response( $invoice, $request );
301
+
302
+        /**
303
+         * Fires after a single invoice is created or updated via the REST API.
304
+         *
305
+         * @since 1.0.13
306
+         *
307
+         * @param WPinv_Invoice   $invoice  Inserted or updated invoice object.
308
+         * @param WP_REST_Request $request  Request object.
309
+         * @param bool            $creating True when creating a post, false when updating.
310
+         */
311
+        do_action( "wpinv_rest_insert_invoice", $invoice, $request, true );
312
+
313
+        /**
314
+         * Filters the responses for creating single invoice requests.
315
+         *
316
+         *
317
+         * @since 1.0.13
318
+         *
319
+         *
320
+         * @param array           $invoice_data Invoice properties.
321
+         * @param WP_REST_Request $request The request used.
322
+         */
323 323
         $response       = apply_filters( "wpinv_rest_create_invoice_response", $response, $request );
324 324
 
325 325
         return rest_ensure_response( $response );
326
-	}
327
-
328
-	/**
329
-	 * Checks if a given request has access to update an invoice.
330
-	 *
331
-	 * @since 1.0.13
332
-	 *
333
-	 * @param WP_REST_Request $request Full details about the request.
334
-	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
335
-	 */
336
-	public function update_item_permissions_check( $request ) {
337
-
338
-		// Retrieve the invoice.
339
-		$invoice = $this->get_post( $request['id'] );
340
-		if ( is_wp_error( $invoice ) ) {
341
-			return $invoice;
342
-		}
343
-
344
-		$post_type = get_post_type_object( $this->post_type );
345
-
346
-		if ( ! current_user_can(  $post_type->cap->edit_post, $invoice->ID  ) ) {
347
-			return new WP_Error( 
326
+    }
327
+
328
+    /**
329
+     * Checks if a given request has access to update an invoice.
330
+     *
331
+     * @since 1.0.13
332
+     *
333
+     * @param WP_REST_Request $request Full details about the request.
334
+     * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
335
+     */
336
+    public function update_item_permissions_check( $request ) {
337
+
338
+        // Retrieve the invoice.
339
+        $invoice = $this->get_post( $request['id'] );
340
+        if ( is_wp_error( $invoice ) ) {
341
+            return $invoice;
342
+        }
343
+
344
+        $post_type = get_post_type_object( $this->post_type );
345
+
346
+        if ( ! current_user_can(  $post_type->cap->edit_post, $invoice->ID  ) ) {
347
+            return new WP_Error( 
348 348
                 'rest_cannot_edit', 
349 349
                 __( 'Sorry, you are not allowed to update this item.', 'invoicing' ), 
350 350
                 array( 
@@ -353,162 +353,162 @@  discard block
 block discarded – undo
353 353
             );
354 354
         }
355 355
 
356
-		return true;
357
-	}
358
-
359
-	/**
360
-	 * Updates a single invoice.
361
-	 *
362
-	 * @since 1.0.13
363
-	 *
364
-	 * @param WP_REST_Request $request Full details about the request.
365
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
366
-	 */
367
-	public function update_item( $request ) {
356
+        return true;
357
+    }
358
+
359
+    /**
360
+     * Updates a single invoice.
361
+     *
362
+     * @since 1.0.13
363
+     *
364
+     * @param WP_REST_Request $request Full details about the request.
365
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
366
+     */
367
+    public function update_item( $request ) {
368 368
 		
369
-		// Ensure the invoice exists.
369
+        // Ensure the invoice exists.
370 370
         $valid_check = $this->get_post( $request['id'] );
371 371
         
372 372
         // Abort early if it does not exist
373
-		if ( is_wp_error( $valid_check ) ) {
374
-			return $valid_check;
375
-		}
373
+        if ( is_wp_error( $valid_check ) ) {
374
+            return $valid_check;
375
+        }
376 376
 
377
-		$request->set_param( 'context', 'edit' );
377
+        $request->set_param( 'context', 'edit' );
378 378
 
379
-		// Prepare the updated data.
380
-		$data_to_update = $this->prepare_item_for_database( $request );
379
+        // Prepare the updated data.
380
+        $data_to_update = $this->prepare_item_for_database( $request );
381 381
 
382
-		if ( is_wp_error( $data_to_update ) ) {
383
-			return $data_to_update;
384
-		}
382
+        if ( is_wp_error( $data_to_update ) ) {
383
+            return $data_to_update;
384
+        }
385 385
 
386
-		// Abort if no invoice data is provided
386
+        // Abort if no invoice data is provided
387 387
         if( empty( $data_to_update ) ) {
388 388
             return new WP_Error( 'missing_data', __( 'An update request cannot be empty.', 'invoicing' ) );
389 389
         }
390 390
 
391
-		// Include the invoice ID
392
-		$data_to_update['ID'] = $request['id'];
393
-
394
-		// Update the invoice
395
-		$updated_invoice = wpinv_update_invoice( $data_to_update, true );
396
-
397
-		// Incase the update operation failed...
398
-		if ( is_wp_error( $updated_invoice ) ) {
399
-			return $updated_invoice;
400
-		}
401
-
402
-		// Prepare the response
403
-		$response = $this->prepare_item_for_response( $updated_invoice, $request );
404
-
405
-		/** This action is documented in includes/class-wpinv-rest-invoice-controller.php */
406
-		do_action( "wpinv_rest_insert_invoice", $updated_invoice, $request, false );
407
-
408
-		/**
409
-		 * Filters the responses for updating single invoice requests.
410
-		 *
411
-		 *
412
-		 * @since 1.0.13
413
-		 *
414
-		 *
415
-		 * @param array           $invoice_data Invoice properties.
416
-		 * @param WP_REST_Request $request The request used.
417
-		 */
391
+        // Include the invoice ID
392
+        $data_to_update['ID'] = $request['id'];
393
+
394
+        // Update the invoice
395
+        $updated_invoice = wpinv_update_invoice( $data_to_update, true );
396
+
397
+        // Incase the update operation failed...
398
+        if ( is_wp_error( $updated_invoice ) ) {
399
+            return $updated_invoice;
400
+        }
401
+
402
+        // Prepare the response
403
+        $response = $this->prepare_item_for_response( $updated_invoice, $request );
404
+
405
+        /** This action is documented in includes/class-wpinv-rest-invoice-controller.php */
406
+        do_action( "wpinv_rest_insert_invoice", $updated_invoice, $request, false );
407
+
408
+        /**
409
+         * Filters the responses for updating single invoice requests.
410
+         *
411
+         *
412
+         * @since 1.0.13
413
+         *
414
+         *
415
+         * @param array           $invoice_data Invoice properties.
416
+         * @param WP_REST_Request $request The request used.
417
+         */
418 418
         $response       = apply_filters( "wpinv_rest_update_invoice_response", $response, $request );
419 419
 
420 420
         return rest_ensure_response( $response );
421
-	}
422
-
423
-	/**
424
-	 * Checks if a given request has access to delete an invoice.
425
-	 *
426
-	 * @since 1.0.13
427
-	 *
428
-	 * @param WP_REST_Request $request Full details about the request.
429
-	 * @return true|WP_Error True if the request has access to delete the invoice, WP_Error object otherwise.
430
-	 */
431
-	public function delete_item_permissions_check( $request ) {
432
-
433
-		// Retrieve the invoice.
434
-		$invoice = $this->get_post( $request['id'] );
435
-		if ( is_wp_error( $invoice ) ) {
436
-			return $invoice;
437
-		}
438
-
439
-		// Ensure the current user can delete invoices
440
-		if ( wpinv_current_user_can_manage_invoicing() ||  current_user_can( 'delete_invoices', $request['id'] ) ) {
441
-			return true;
442
-		}
443
-
444
-		return new WP_Error( 
445
-			'rest_cannot_delete', 
446
-			__( 'Sorry, you are not allowed to delete this item.', 'invoicing' ), 
447
-			array( 
448
-				'status' => rest_authorization_required_code(),
449
-			)
450
-		);
451
-	}
452
-
453
-	/**
454
-	 * Deletes a single invoice.
455
-	 *
456
-	 * @since 1.0.13
457
-	 *
458
-	 * @param WP_REST_Request $request Full details about the request.
459
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
460
-	 */
461
-	public function delete_item( $request ) {
421
+    }
422
+
423
+    /**
424
+     * Checks if a given request has access to delete an invoice.
425
+     *
426
+     * @since 1.0.13
427
+     *
428
+     * @param WP_REST_Request $request Full details about the request.
429
+     * @return true|WP_Error True if the request has access to delete the invoice, WP_Error object otherwise.
430
+     */
431
+    public function delete_item_permissions_check( $request ) {
432
+
433
+        // Retrieve the invoice.
434
+        $invoice = $this->get_post( $request['id'] );
435
+        if ( is_wp_error( $invoice ) ) {
436
+            return $invoice;
437
+        }
438
+
439
+        // Ensure the current user can delete invoices
440
+        if ( wpinv_current_user_can_manage_invoicing() ||  current_user_can( 'delete_invoices', $request['id'] ) ) {
441
+            return true;
442
+        }
443
+
444
+        return new WP_Error( 
445
+            'rest_cannot_delete', 
446
+            __( 'Sorry, you are not allowed to delete this item.', 'invoicing' ), 
447
+            array( 
448
+                'status' => rest_authorization_required_code(),
449
+            )
450
+        );
451
+    }
452
+
453
+    /**
454
+     * Deletes a single invoice.
455
+     *
456
+     * @since 1.0.13
457
+     *
458
+     * @param WP_REST_Request $request Full details about the request.
459
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
460
+     */
461
+    public function delete_item( $request ) {
462 462
 		
463
-		// Retrieve the invoice.
464
-		$invoice = $this->get_post( $request['id'] );
465
-		if ( is_wp_error( $invoice ) ) {
466
-			return $invoice;
467
-		}
463
+        // Retrieve the invoice.
464
+        $invoice = $this->get_post( $request['id'] );
465
+        if ( is_wp_error( $invoice ) ) {
466
+            return $invoice;
467
+        }
468 468
 
469
-		$request->set_param( 'context', 'edit' );
469
+        $request->set_param( 'context', 'edit' );
470 470
 
471
-		// Prepare the invoice id
472
-		$id    = $invoice->ID;
471
+        // Prepare the invoice id
472
+        $id    = $invoice->ID;
473 473
 
474
-		// Prepare the response
475
-		$response = $this->prepare_item_for_response( $invoice, $request );
474
+        // Prepare the response
475
+        $response = $this->prepare_item_for_response( $invoice, $request );
476 476
 
477
-		// Check if the user wants to bypass the trash...
478
-		$force_delete = (bool) $request['force'];
477
+        // Check if the user wants to bypass the trash...
478
+        $force_delete = (bool) $request['force'];
479 479
 
480
-		// Try deleting the invoice.
481
-		$deleted = wp_delete_post( $id, $force_delete );
480
+        // Try deleting the invoice.
481
+        $deleted = wp_delete_post( $id, $force_delete );
482 482
 
483
-		// Abort early if we can't delete the invoice.
484
-		if ( ! $deleted ) {
485
-			return new WP_Error( 'rest_cannot_delete', __( 'The item cannot be deleted.', 'invoicing' ), array( 'status' => 500 ) );
486
-		}
483
+        // Abort early if we can't delete the invoice.
484
+        if ( ! $deleted ) {
485
+            return new WP_Error( 'rest_cannot_delete', __( 'The item cannot be deleted.', 'invoicing' ), array( 'status' => 500 ) );
486
+        }
487 487
 
488
-		/**
489
-		 * Fires immediately after a single invoice is deleted or trashed via the REST API.
490
-		 *
491
-		 *
492
-		 * @since 1.0.13
493
-		 *
494
-		 * @param WPInv_Invoice    $invoice  The deleted or trashed invoice.
495
-		 * @param WP_REST_Request  $request  The request sent to the API.
496
-		 */
497
-		do_action( "wpinv_rest_delete_invoice", $invoice, $request );
488
+        /**
489
+         * Fires immediately after a single invoice is deleted or trashed via the REST API.
490
+         *
491
+         *
492
+         * @since 1.0.13
493
+         *
494
+         * @param WPInv_Invoice    $invoice  The deleted or trashed invoice.
495
+         * @param WP_REST_Request  $request  The request sent to the API.
496
+         */
497
+        do_action( "wpinv_rest_delete_invoice", $invoice, $request );
498 498
 
499
-		return $response;
499
+        return $response;
500 500
 
501
-	}
501
+    }
502 502
     
503 503
     
504 504
     /**
505
-	 * Retrieves the query params for the invoices collection.
506
-	 *
507
-	 * @since 1.0.13
508
-	 *
509
-	 * @return array Collection parameters.
510
-	 */
511
-	public function get_collection_params() {
505
+     * Retrieves the query params for the invoices collection.
506
+     *
507
+     * @since 1.0.13
508
+     *
509
+     * @return array Collection parameters.
510
+     */
511
+    public function get_collection_params() {
512 512
         
513 513
         $query_params               = array(
514 514
 
@@ -526,11 +526,11 @@  discard block
 block discarded – undo
526 526
 
527 527
             // User.
528 528
             'user'                  => array(
529
-				'description'       => __( 'Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing' ),
530
-				'type'              => 'string',
531
-			),
529
+                'description'       => __( 'Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing' ),
530
+                'type'              => 'string',
531
+            ),
532 532
 
533
-			// Exclude certain users
533
+            // Exclude certain users
534 534
             'exclude_users'  	    => array(
535 535
                 'description' 		=> __( 'Exclude items from specific users.', 'invoicing' ),
536 536
                 'type'        		=> 'array',
@@ -540,59 +540,59 @@  discard block
 block discarded – undo
540 540
                 'default'     		=> array(),
541 541
             ),
542 542
 			
543
-			// Items before.
543
+            // Items before.
544 544
             'before_date'           => array(
545
-				'description'       => __( 'Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
546
-				'type'              => 'string',
547
-			),
545
+                'description'       => __( 'Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
546
+                'type'              => 'string',
547
+            ),
548 548
 
549 549
             'meta_key'           => array(
550
-				'description'       => __( 'Filter items by custom field key.', 'invoicing' ),
551
-				'type'              => 'string',
552
-			),
550
+                'description'       => __( 'Filter items by custom field key.', 'invoicing' ),
551
+                'type'              => 'string',
552
+            ),
553 553
 
554 554
             'meta_compare_key'           => array(
555
-				'description'       => __( 'Comparison operator to test the `meta_key`.', 'invoicing' ),
556
-				'type'              => 'string',
557
-				'default'              => '=',
558
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
559
-			),
555
+                'description'       => __( 'Comparison operator to test the `meta_key`.', 'invoicing' ),
556
+                'type'              => 'string',
557
+                'default'              => '=',
558
+                'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
559
+            ),
560 560
 
561 561
             'meta_value'           => array(
562
-				'description'       => __( 'Filter items by custom field value.', 'invoicing' ),
563
-				'type'              => 'string',
564
-			),
562
+                'description'       => __( 'Filter items by custom field value.', 'invoicing' ),
563
+                'type'              => 'string',
564
+            ),
565 565
 
566 566
             'meta_compare'           => array(
567
-				'description'       => __( 'Comparison operator to test the `meta_value`.', 'invoicing' ),
568
-				'type'              => 'string',
569
-				'default'              => '=',
570
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
571
-			),
572
-
573
-			'meta_value_num'           => array(
574
-				'description'       => __( 'Filter items by a numeric custom field value.', 'invoicing' ),
575
-				'type'              => 'integer',
576
-			),
577
-
578
-			// items after.
567
+                'description'       => __( 'Comparison operator to test the `meta_value`.', 'invoicing' ),
568
+                'type'              => 'string',
569
+                'default'              => '=',
570
+                'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
571
+            ),
572
+
573
+            'meta_value_num'           => array(
574
+                'description'       => __( 'Filter items by a numeric custom field value.', 'invoicing' ),
575
+                'type'              => 'integer',
576
+            ),
577
+
578
+            // items after.
579 579
             'after_date'            => array(
580
-				'description'       => __( 'Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
581
-				'type'              => 'string',
580
+                'description'       => __( 'Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
581
+                'type'              => 'string',
582 582
             ),
583 583
             
584 584
             // Number of results per page
585 585
             'limit'                 => array(
586
-				'description'       => __( 'Number of items to fetch.', 'invoicing' ),
587
-				'type'              => 'integer',
588
-				'default'           => (int) get_option( 'posts_per_page' ),
586
+                'description'       => __( 'Number of items to fetch.', 'invoicing' ),
587
+                'type'              => 'integer',
588
+                'default'           => (int) get_option( 'posts_per_page' ),
589 589
             ),
590 590
 
591 591
             // Pagination
592 592
             'page'     => array(
593
-				'description'       => __( 'Current page to fetch.', 'invoicing' ),
594
-				'type'              => 'integer',
595
-				'default'           => 1,
593
+                'description'       => __( 'Current page to fetch.', 'invoicing' ),
594
+                'type'              => 'integer',
595
+                'default'           => 1,
596 596
             ),
597 597
 
598 598
             // limit to certain items
@@ -603,9 +603,9 @@  discard block
 block discarded – undo
603 603
                     'type' => 'integer',
604 604
                 ),
605 605
                 'default'     => array(),
606
-			),
606
+            ),
607 607
 			
608
-			// Exclude certain items
608
+            // Exclude certain items
609 609
             'exclude'  => array(
610 610
                 'description' => __( 'Ensure result set excludes specific IDs.', 'invoicing' ),
611 611
                 'type'        => 'array',
@@ -624,9 +624,9 @@  discard block
 block discarded – undo
624 624
                     'date',
625 625
                     'id',
626 626
                     'modified',
627
-					'title',
628
-					'meta_value',
629
-					'meta_value_num'
627
+                    'title',
628
+                    'meta_value',
629
+                    'meta_value_num'
630 630
                 ),
631 631
             ),
632 632
 
@@ -639,932 +639,932 @@  discard block
 block discarded – undo
639 639
             ),
640 640
         );
641 641
 
642
-		/**
643
-		 * Filter collection parameters for the invoices controller.
644
-		 *
645
-		 *
646
-		 * @since 1.0.13
647
-		 *
648
-		 * @param array        $query_params JSON Schema-formatted collection parameters.
649
-		 */
650
-		return apply_filters( "wpinv_rest_invoices_collection_params", $query_params );
651
-	}
642
+        /**
643
+         * Filter collection parameters for the invoices controller.
644
+         *
645
+         *
646
+         * @since 1.0.13
647
+         *
648
+         * @param array        $query_params JSON Schema-formatted collection parameters.
649
+         */
650
+        return apply_filters( "wpinv_rest_invoices_collection_params", $query_params );
651
+    }
652 652
 	
653
-	/**
654
-	 * Retrieves the request query params for the invoices collection.
655
-	 *
656
-	 * @since 1.0.15
657
-	 * @param WP_REST_Request $request Full details about the request.
658
-	 * @return array Request collection parameters.
659
-	 */
660
-	public function get_request_collection_params( $request ) {
653
+    /**
654
+     * Retrieves the request query params for the invoices collection.
655
+     *
656
+     * @since 1.0.15
657
+     * @param WP_REST_Request $request Full details about the request.
658
+     * @return array Request collection parameters.
659
+     */
660
+    public function get_request_collection_params( $request ) {
661 661
 		
662
-		// Retrieve the list of registered invoice query parameters.
663
-		$registered = $this->get_collection_params();
662
+        // Retrieve the list of registered invoice query parameters.
663
+        $registered = $this->get_collection_params();
664 664
 
665
-		// Default args
666
-		$args       = array(
665
+        // Default args
666
+        $args       = array(
667 667
             'status'                => $this->get_post_statuses(),
668 668
             'user'                  => null,
669 669
             'exclude_users'  	    => array(),
670
-			'before_date'           => null,
670
+            'before_date'           => null,
671 671
             'meta_key'              => null,
672 672
             'meta_compare_key'      => '=',
673 673
             'meta_value'            => null,
674 674
             'meta_compare'          => '=',
675
-			'meta_value_num'        => null,
675
+            'meta_value_num'        => null,
676 676
             'after_date'            => null,
677 677
             'limit'                 => (int) get_option( 'posts_per_page' ),
678
-			'page'     				=> 1,
679
-			'include'				=> array(),
678
+            'page'     				=> 1,
679
+            'include'				=> array(),
680 680
             'exclude'  				=> array(),
681 681
             'orderby'  		  		=> 'date',
682 682
             'order'    				=> 'DESC',
683
-		);
683
+        );
684 684
 
685
-		// Add any params from the requests.
686
-		foreach ( array_keys( $registered ) as $key ) {
685
+        // Add any params from the requests.
686
+        foreach ( array_keys( $registered ) as $key ) {
687 687
             if ( isset( $request[ $key] ) ) {
688 688
                 $args[ $key ] = $request[ $key];
689 689
             }
690 690
         }
691 691
 		
692
-		/**
693
-		 * Filters the requests collection parameters for the invoices controller.
694
-		 *
695
-		 *
696
-		 * @since 1.0.15
697
-		 *
698
-		 * @param array           $args    Request query args.
699
-		 * @param WP_REST_Request $request Full details about the request.
700
-		 */
701
-		return apply_filters( "wpinv_rest_invoices_collection_request_params", $args, $request );
702
-	}
692
+        /**
693
+         * Filters the requests collection parameters for the invoices controller.
694
+         *
695
+         *
696
+         * @since 1.0.15
697
+         *
698
+         * @param array           $args    Request query args.
699
+         * @param WP_REST_Request $request Full details about the request.
700
+         */
701
+        return apply_filters( "wpinv_rest_invoices_collection_request_params", $args, $request );
702
+    }
703 703
 	
704
-	/**
705
-	 * Retrieves the WP_Query params for the invoices collection.
706
-	 *
707
-	 * @since 1.0.15
708
-	 * @param array           $args Request args.
709
-	 * @param WP_REST_Request $request Full details about the request.
710
-	 * @return array WP_Query parameters.
711
-	 */
712
-	public function get_collection_wp_query_params( $args, $request ) {
704
+    /**
705
+     * Retrieves the WP_Query params for the invoices collection.
706
+     *
707
+     * @since 1.0.15
708
+     * @param array           $args Request args.
709
+     * @param WP_REST_Request $request Full details about the request.
710
+     * @return array WP_Query parameters.
711
+     */
712
+    public function get_collection_wp_query_params( $args, $request ) {
713 713
 		
714
-		// Prepare the parameters.
715
-		$wp_query_args = array(
716
-			'post_type'        => $this->post_type,
717
-			'post_status'      => $args['status'],
718
-			'author'           => $args['user'],
719
-			'author__not_in'   => $args['exclude_users'],
720
-			'posts_per_page'   => $args['limit'],
721
-			'paged'            => $args['page'],
722
-			'meta_key'         => $args['meta_key'],
723
-			'meta_compare_key' => $args['meta_compare_key'],
724
-			'meta_value'       => $args['meta_value'],
725
-			'meta_compare'     => $args['meta_compare'],
726
-			'meta_value_num'   => $args['meta_value_num'],
727
-			'post__in'         => $args['include'],
728
-			'post__in'         => $args['exclude'],
729
-			'date_query'       => array( array() ),
730
-			'fields'           => 'ids',
731
-			'orderby'          => $args['orderby'],
732
-			'order'            => $args['order'],
733
-		);
734
-
735
-		// Only admins can view other user's invoices.
736
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
737
-			$wp_query_args['author'] = get_current_user_id();
738
-		}
739
-
740
-		// No date specific params provided.
741
-		if ( empty( $args['before_date'] ) && empty( $args['after_date'] ) ) {
742
-			unset( $wp_query_args['date_query'] );
743
-		}
744
-
745
-		if ( ! empty( $args['before_date'] ) ) {
746
-			$wp_query_args['date_query'][0]['before'] = $args['before_date'];
747
-		}
748
-
749
-		if ( ! empty( $args['after_date'] ) ) {
750
-			$wp_query_args['date_query'][0]['after'] = $args['after_date'];
751
-		}
752
-
753
-		// Remove empty variables.
754
-		$wp_query_args = array_filter( $wp_query_args );
755
-
756
-		// This can be zero.
757
-		if ( ! is_null( $args['meta_value_num'] ) ) {
758
-			$wp_query_args['meta_value_num'] = $args['meta_value_num'];
759
-		}
714
+        // Prepare the parameters.
715
+        $wp_query_args = array(
716
+            'post_type'        => $this->post_type,
717
+            'post_status'      => $args['status'],
718
+            'author'           => $args['user'],
719
+            'author__not_in'   => $args['exclude_users'],
720
+            'posts_per_page'   => $args['limit'],
721
+            'paged'            => $args['page'],
722
+            'meta_key'         => $args['meta_key'],
723
+            'meta_compare_key' => $args['meta_compare_key'],
724
+            'meta_value'       => $args['meta_value'],
725
+            'meta_compare'     => $args['meta_compare'],
726
+            'meta_value_num'   => $args['meta_value_num'],
727
+            'post__in'         => $args['include'],
728
+            'post__in'         => $args['exclude'],
729
+            'date_query'       => array( array() ),
730
+            'fields'           => 'ids',
731
+            'orderby'          => $args['orderby'],
732
+            'order'            => $args['order'],
733
+        );
734
+
735
+        // Only admins can view other user's invoices.
736
+        if ( ! wpinv_current_user_can_manage_invoicing() ) {
737
+            $wp_query_args['author'] = get_current_user_id();
738
+        }
739
+
740
+        // No date specific params provided.
741
+        if ( empty( $args['before_date'] ) && empty( $args['after_date'] ) ) {
742
+            unset( $wp_query_args['date_query'] );
743
+        }
744
+
745
+        if ( ! empty( $args['before_date'] ) ) {
746
+            $wp_query_args['date_query'][0]['before'] = $args['before_date'];
747
+        }
748
+
749
+        if ( ! empty( $args['after_date'] ) ) {
750
+            $wp_query_args['date_query'][0]['after'] = $args['after_date'];
751
+        }
752
+
753
+        // Remove empty variables.
754
+        $wp_query_args = array_filter( $wp_query_args );
755
+
756
+        // This can be zero.
757
+        if ( ! is_null( $args['meta_value_num'] ) ) {
758
+            $wp_query_args['meta_value_num'] = $args['meta_value_num'];
759
+        }
760 760
 		
761
-		/**
762
-		 * Filters the invoices collection WP_Query parameters for the invoices controller.
763
-		 *
764
-		 *
765
-		 * @since 1.0.15
766
-		 *
767
-		 * @param array           $args          Request args.
768
-		 * @param array           $wp_query_args Generated WP_Query args args.
769
-		 * @param WP_REST_Request $request       Full details about the request.
770
-		 */
771
-		return apply_filters( "wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request );
761
+        /**
762
+         * Filters the invoices collection WP_Query parameters for the invoices controller.
763
+         *
764
+         *
765
+         * @since 1.0.15
766
+         *
767
+         * @param array           $args          Request args.
768
+         * @param array           $wp_query_args Generated WP_Query args args.
769
+         * @param WP_REST_Request $request       Full details about the request.
770
+         */
771
+        return apply_filters( "wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request );
772 772
     }
773 773
     
774 774
     /**
775
-	 * Checks if a given post type can be viewed or managed.
776
-	 *
777
-	 * @since 1.0.13
778
-	 *
779
-	 * @param object|string $post_type Post type name or object.
780
-	 * @return bool Whether the post type is allowed in REST.
781
-	 */
782
-	protected function check_is_post_type_allowed( $post_type ) {
783
-		return true;
784
-	}
785
-
786
-	/**
787
-	 * Prepares a single invoice for create or update.
788
-	 *
789
-	 * @since 1.0.13
790
-	 *
791
-	 * @param WP_REST_Request $request Request object.
792
-	 * @return array|WP_Error Invoice Properties or WP_Error.
793
-	 */
794
-	protected function prepare_item_for_database( $request ) {
795
-		$prepared_invoice = new stdClass();
796
-
797
-		// Post ID.
798
-		if ( isset( $request['id'] ) ) {
799
-			$existing_invoice = $this->get_post( $request['id'] );
800
-			if ( is_wp_error( $existing_invoice ) ) {
801
-				return $existing_invoice;
802
-			}
803
-
804
-			$prepared_invoice->ID 		  = $existing_invoice->ID;
805
-			$prepared_invoice->invoice_id = $existing_invoice->ID;
806
-		}
807
-
808
-		$schema = $this->get_item_schema();
809
-
810
-		// Invoice owner.
811
-		if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
812
-			$prepared_invoice->user_id = (int) $request['user_id'];
813
-		}
814
-
815
-		// Cart details.
816
-		if ( ! empty( $schema['properties']['cart_details'] ) && isset( $request['cart_details'] ) ) {
817
-			$prepared_invoice->cart_details = (array) $request['cart_details'];
818
-		}
819
-
820
-		// Invoice status.
821
-		if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
822
-
823
-			if ( in_array( $request['status'], $this->get_post_statuses(), true ) ) {
824
-				$prepared_invoice->status = $request['status'];
825
-			}
826
-
827
-		}
828
-
829
-		// User info
830
-		if ( ! empty( $schema['properties']['user_info'] ) && isset( $request['user_info'] ) ) {
831
-			$prepared_invoice->user_info = array();
832
-			$user_info = (array) $request['user_info'];
833
-
834
-			foreach( $user_info as $prop => $value ) {
835
-
836
-				if ( ! empty( $schema['properties']['user_info']['properties'][$prop] ) ) {
837
-
838
-					$prepared_invoice->user_info[$prop] = $value;
775
+     * Checks if a given post type can be viewed or managed.
776
+     *
777
+     * @since 1.0.13
778
+     *
779
+     * @param object|string $post_type Post type name or object.
780
+     * @return bool Whether the post type is allowed in REST.
781
+     */
782
+    protected function check_is_post_type_allowed( $post_type ) {
783
+        return true;
784
+    }
785
+
786
+    /**
787
+     * Prepares a single invoice for create or update.
788
+     *
789
+     * @since 1.0.13
790
+     *
791
+     * @param WP_REST_Request $request Request object.
792
+     * @return array|WP_Error Invoice Properties or WP_Error.
793
+     */
794
+    protected function prepare_item_for_database( $request ) {
795
+        $prepared_invoice = new stdClass();
796
+
797
+        // Post ID.
798
+        if ( isset( $request['id'] ) ) {
799
+            $existing_invoice = $this->get_post( $request['id'] );
800
+            if ( is_wp_error( $existing_invoice ) ) {
801
+                return $existing_invoice;
802
+            }
803
+
804
+            $prepared_invoice->ID 		  = $existing_invoice->ID;
805
+            $prepared_invoice->invoice_id = $existing_invoice->ID;
806
+        }
807
+
808
+        $schema = $this->get_item_schema();
809
+
810
+        // Invoice owner.
811
+        if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
812
+            $prepared_invoice->user_id = (int) $request['user_id'];
813
+        }
814
+
815
+        // Cart details.
816
+        if ( ! empty( $schema['properties']['cart_details'] ) && isset( $request['cart_details'] ) ) {
817
+            $prepared_invoice->cart_details = (array) $request['cart_details'];
818
+        }
819
+
820
+        // Invoice status.
821
+        if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
822
+
823
+            if ( in_array( $request['status'], $this->get_post_statuses(), true ) ) {
824
+                $prepared_invoice->status = $request['status'];
825
+            }
826
+
827
+        }
828
+
829
+        // User info
830
+        if ( ! empty( $schema['properties']['user_info'] ) && isset( $request['user_info'] ) ) {
831
+            $prepared_invoice->user_info = array();
832
+            $user_info = (array) $request['user_info'];
833
+
834
+            foreach( $user_info as $prop => $value ) {
835
+
836
+                if ( ! empty( $schema['properties']['user_info']['properties'][$prop] ) ) {
837
+
838
+                    $prepared_invoice->user_info[$prop] = $value;
839 839
 		
840
-				}
840
+                }
841 841
 
842
-			}
842
+            }
843 843
 
844
-		}
844
+        }
845 845
 
846
-		// IP
847
-		if ( ! empty( $schema['properties']['ip'] ) && isset( $request['ip'] ) ) {
848
-			$prepared_invoice->ip = $request['ip'];
849
-		}
846
+        // IP
847
+        if ( ! empty( $schema['properties']['ip'] ) && isset( $request['ip'] ) ) {
848
+            $prepared_invoice->ip = $request['ip'];
849
+        }
850 850
 
851
-		// Payment details
852
-		$prepared_invoice->payment_details = array();
851
+        // Payment details
852
+        $prepared_invoice->payment_details = array();
853 853
 
854
-		if ( ! empty( $schema['properties']['gateway'] ) && isset( $request['gateway'] ) ) {
855
-			$prepared_invoice->payment_details['gateway'] = $request['gateway'];
856
-		}
854
+        if ( ! empty( $schema['properties']['gateway'] ) && isset( $request['gateway'] ) ) {
855
+            $prepared_invoice->payment_details['gateway'] = $request['gateway'];
856
+        }
857 857
 
858
-		if ( ! empty( $schema['properties']['gateway_title'] ) && isset( $request['gateway_title'] ) ) {
859
-			$prepared_invoice->payment_details['gateway_title'] = $request['gateway_title'];
860
-		}
858
+        if ( ! empty( $schema['properties']['gateway_title'] ) && isset( $request['gateway_title'] ) ) {
859
+            $prepared_invoice->payment_details['gateway_title'] = $request['gateway_title'];
860
+        }
861 861
 
862
-		if ( ! empty( $schema['properties']['currency'] ) && isset( $request['currency'] ) ) {
863
-			$prepared_invoice->payment_details['currency'] = $request['currency'];
864
-		}
862
+        if ( ! empty( $schema['properties']['currency'] ) && isset( $request['currency'] ) ) {
863
+            $prepared_invoice->payment_details['currency'] = $request['currency'];
864
+        }
865 865
 
866
-		if ( ! empty( $schema['properties']['transaction_id'] ) && isset( $request['transaction_id'] ) ) {
867
-			$prepared_invoice->payment_details['transaction_id'] = $request['transaction_id'];
868
-		}
866
+        if ( ! empty( $schema['properties']['transaction_id'] ) && isset( $request['transaction_id'] ) ) {
867
+            $prepared_invoice->payment_details['transaction_id'] = $request['transaction_id'];
868
+        }
869 869
 
870
-		// Dates
871
-		if ( ! empty( $schema['properties']['date'] ) && isset( $request['date'] ) ) {
872
-			$post_date = rest_get_date_with_gmt( $request['date'] );
870
+        // Dates
871
+        if ( ! empty( $schema['properties']['date'] ) && isset( $request['date'] ) ) {
872
+            $post_date = rest_get_date_with_gmt( $request['date'] );
873 873
 
874
-			if ( ! empty( $post_date ) ) {
875
-				$prepared_invoice->post_date = $post_date[0];
876
-			}
874
+            if ( ! empty( $post_date ) ) {
875
+                $prepared_invoice->post_date = $post_date[0];
876
+            }
877 877
 			
878
-		}
878
+        }
879 879
 
880
-		if ( ! empty( $schema['properties']['due_date'] ) && isset( $request['due_date'] ) ) {
881
-			$due_date = rest_get_date_with_gmt( $request['due_date'] );
880
+        if ( ! empty( $schema['properties']['due_date'] ) && isset( $request['due_date'] ) ) {
881
+            $due_date = rest_get_date_with_gmt( $request['due_date'] );
882 882
 
883
-			if ( ! empty( $due_date ) ) {
884
-				$prepared_invoice->due_date = $due_date[0];
885
-			}
883
+            if ( ! empty( $due_date ) ) {
884
+                $prepared_invoice->due_date = $due_date[0];
885
+            }
886 886
 
887
-		}
887
+        }
888 888
 
889
-		if ( ! empty( $schema['properties']['valid_until'] ) && isset( $request['valid_until'] ) ) {
889
+        if ( ! empty( $schema['properties']['valid_until'] ) && isset( $request['valid_until'] ) ) {
890 890
 
891
-			if ( ! empty( $request['valid_until'] ) ) {
892
-				$prepared_invoice->valid_until = gmdate( 'Y-m-d', strtotime( $request['valid_until'] ) );
893
-			} else {
894
-				$prepared_invoice->valid_until = '';
895
-			}
891
+            if ( ! empty( $request['valid_until'] ) ) {
892
+                $prepared_invoice->valid_until = gmdate( 'Y-m-d', strtotime( $request['valid_until'] ) );
893
+            } else {
894
+                $prepared_invoice->valid_until = '';
895
+            }
896 896
 
897
-		}
897
+        }
898 898
 
899
-		$invoice_data = (array) wp_unslash( $prepared_invoice );
899
+        $invoice_data = (array) wp_unslash( $prepared_invoice );
900 900
 
901
-		/**
902
-		 * Filters an invoice before it is inserted via the REST API.
903
-		 *
904
-		 * @since 1.0.13
905
-		 *
906
-		 * @param array        $invoice_data An array of invoice data
907
-		 * @param WP_REST_Request $request       Request object.
908
-		 */
909
-		return apply_filters( "wpinv_rest_pre_insert_invoice", $invoice_data, $request );
901
+        /**
902
+         * Filters an invoice before it is inserted via the REST API.
903
+         *
904
+         * @since 1.0.13
905
+         *
906
+         * @param array        $invoice_data An array of invoice data
907
+         * @param WP_REST_Request $request       Request object.
908
+         */
909
+        return apply_filters( "wpinv_rest_pre_insert_invoice", $invoice_data, $request );
910 910
 
911
-	}
911
+    }
912 912
 
913
-	/**
914
-	 * Prepares a single invoice output for response.
915
-	 *
916
-	 * @since 1.0.13
917
-	 *
918
-	 * @param WPInv_Invoice   $invoice    Invoice object.
919
-	 * @param WP_REST_Request $request Request object.
920
-	 * @return WP_REST_Response Response object.
921
-	 */
922
-	public function prepare_item_for_response( $invoice, $request ) {
913
+    /**
914
+     * Prepares a single invoice output for response.
915
+     *
916
+     * @since 1.0.13
917
+     *
918
+     * @param WPInv_Invoice   $invoice    Invoice object.
919
+     * @param WP_REST_Request $request Request object.
920
+     * @return WP_REST_Response Response object.
921
+     */
922
+    public function prepare_item_for_response( $invoice, $request ) {
923 923
 
924
-		$GLOBALS['post'] = get_post( $invoice->ID );
924
+        $GLOBALS['post'] = get_post( $invoice->ID );
925 925
 
926
-		setup_postdata( $invoice->ID );
926
+        setup_postdata( $invoice->ID );
927 927
 
928
-		// Fetch the fields to include in this response.
929
-		$fields = $this->get_fields_for_response( $request );
928
+        // Fetch the fields to include in this response.
929
+        $fields = $this->get_fields_for_response( $request );
930 930
 
931
-		// Base fields for every invoice.
932
-		$data = array();
931
+        // Base fields for every invoice.
932
+        $data = array();
933 933
 
934
-		// Set up ID
935
-		if ( rest_is_field_included( 'id', $fields ) ) {
936
-			$data['id'] = $invoice->ID;
937
-		}
934
+        // Set up ID
935
+        if ( rest_is_field_included( 'id', $fields ) ) {
936
+            $data['id'] = $invoice->ID;
937
+        }
938 938
 
939 939
 
940
-		// Basic properties
941
-		$invoice_properties = array(
942
-			'title', 'email', 'ip', 
943
-			'key', 'number', 'transaction_id', 'mode',
944
-			'gateway', 'gateway_title',
945
-			'total', 'discount', 'discount_code', 
946
-			'tax', 'fees_total', 'subtotal', 'currency',
947
-			'status', 'status_nicename', 'post_type'
948
-		);
949
-
950
-		foreach( $invoice_properties as $property ) {
940
+        // Basic properties
941
+        $invoice_properties = array(
942
+            'title', 'email', 'ip', 
943
+            'key', 'number', 'transaction_id', 'mode',
944
+            'gateway', 'gateway_title',
945
+            'total', 'discount', 'discount_code', 
946
+            'tax', 'fees_total', 'subtotal', 'currency',
947
+            'status', 'status_nicename', 'post_type'
948
+        );
951 949
 
952
-			if ( rest_is_field_included( $property, $fields ) ) {
953
-				$data[$property] = $invoice->get( $property );
954
-			}
955
-
956
-		}
957
-
958
-		// Valid until
959
-		if ( rest_is_field_included( 'valid_until', $fields ) && $this->post_type === 'wpi_quote' ) {
960
-			$data['valid_until'] = get_post_meta( $invoice->ID, 'wpinv_quote_valid_until', true );
961
-		}
962
-
963
-		// Cart details
964
-		if ( rest_is_field_included( 'cart_details', $fields ) ) {
965
-			$data['cart_details'] = $invoice->get( 'cart_details' );
966
-		}
967
-
968
-		//Dates
969
-		$invoice_properties = array( 'date', 'due_date', 'completed_date' );
970
-
971
-		foreach( $invoice_properties as $property ) {
972
-
973
-			if ( rest_is_field_included( $property, $fields ) ) {
974
-				$data[$property] = $this->prepare_date_response( '0000-00-00 00:00:00', $invoice->get( $property ) );
975
-			}
976
-
977
-		}
978
-
979
-		// User id
980
-		if ( rest_is_field_included( 'user_id', $fields ) ) {
981
-			$data['user_id'] = (int) $invoice->get( 'user_id' );
982
-		}
983
-
984
-		// User info
985
-		$user_info = array( 'first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone' );
986
-
987
-		foreach( $user_info as $property ) {
988
-
989
-			if ( rest_is_field_included( "user_info.$property", $fields ) ) {
990
-				$data['user_info'][$property] = $invoice->get( $property );
991
-			}
992
-
993
-		}
994
-
995
-		// Slug
996
-		if ( rest_is_field_included( 'slug', $fields ) ) {
997
-			$data['slug'] = $invoice->get( 'post_name' );
998
-		}
999
-
1000
-		// View invoice link
1001
-		if ( rest_is_field_included( 'link', $fields ) ) {
1002
-			$data['link'] = esc_url( $invoice->get_view_url() );
1003
-		}
1004
-
1005
-
1006
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
1007
-		$data    = $this->add_additional_fields_to_object( $data, $request );
1008
-		$data    = $this->filter_response_by_context( $data, $context );
1009
-
1010
-		// Wrap the data in a response object.
1011
-		$response = rest_ensure_response( $data );
1012
-
1013
-		$links = $this->prepare_links( $invoice );
1014
-		$response->add_links( $links );
1015
-
1016
-		if ( ! empty( $links['self']['href'] ) ) {
1017
-			$actions = $this->get_available_actions( $invoice, $request );
1018
-
1019
-			$self = $links['self']['href'];
1020
-
1021
-			foreach ( $actions as $rel ) {
1022
-				$response->add_link( $rel, $self );
1023
-			}
1024
-		}
1025
-
1026
-		/**
1027
-		 * Filters the invoice data for a response.
1028
-		 *
1029
-		 * @since 1.0.13
1030
-		 *
1031
-		 * @param WP_REST_Response $response The response object.
1032
-		 * @param WPInv_Invoice    $invoice  The invoice object.
1033
-		 * @param WP_REST_Request  $request  Request object.
1034
-		 */
1035
-		return apply_filters( "wpinv_rest_prepare_invoice", $response, $invoice, $request );
1036
-	}
1037
-
1038
-	/**
1039
-	 * Gets an array of fields to be included on the response.
1040
-	 *
1041
-	 * Included fields are based on item schema and `_fields=` request argument.
1042
-	 *
1043
-	 * @since 1.0.13
1044
-	 *
1045
-	 * @param WP_REST_Request $request Full details about the request.
1046
-	 * @return array Fields to be included in the response.
1047
-	 */
1048
-	public function get_fields_for_response( $request ) {
1049
-		$schema     = $this->get_item_schema();
1050
-		$properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
1051
-
1052
-		$additional_fields = $this->get_additional_fields();
1053
-		foreach ( $additional_fields as $field_name => $field_options ) {
1054
-			// For back-compat, include any field with an empty schema
1055
-			// because it won't be present in $this->get_item_schema().
1056
-			if ( is_null( $field_options['schema'] ) ) {
1057
-				$properties[ $field_name ] = $field_options;
1058
-			}
1059
-		}
1060
-
1061
-		// Exclude fields that specify a different context than the request context.
1062
-		$context = $request['context'];
1063
-		if ( $context ) {
1064
-			foreach ( $properties as $name => $options ) {
1065
-				if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
1066
-					unset( $properties[ $name ] );
1067
-				}
1068
-			}
1069
-		}
1070
-
1071
-		$fields = array_keys( $properties );
1072
-
1073
-		if ( ! isset( $request['_fields'] ) ) {
1074
-			return $fields;
1075
-		}
1076
-		$requested_fields = wpinv_parse_list( $request['_fields'] );
1077
-		if ( 0 === count( $requested_fields ) ) {
1078
-			return $fields;
1079
-		}
1080
-		// Trim off outside whitespace from the comma delimited list.
1081
-		$requested_fields = array_map( 'trim', $requested_fields );
1082
-		// Always persist 'id', because it can be needed for add_additional_fields_to_object().
1083
-		if ( in_array( 'id', $fields, true ) ) {
1084
-			$requested_fields[] = 'id';
1085
-		}
1086
-		// Return the list of all requested fields which appear in the schema.
1087
-		return array_reduce(
1088
-			$requested_fields,
1089
-			function( $response_fields, $field ) use ( $fields ) {
1090
-				if ( in_array( $field, $fields, true ) ) {
1091
-					$response_fields[] = $field;
1092
-					return $response_fields;
1093
-				}
1094
-				// Check for nested fields if $field is not a direct match.
1095
-				$nested_fields = explode( '.', $field );
1096
-				// A nested field is included so long as its top-level property is
1097
-				// present in the schema.
1098
-				if ( in_array( $nested_fields[0], $fields, true ) ) {
1099
-					$response_fields[] = $field;
1100
-				}
1101
-				return $response_fields;
1102
-			},
1103
-			array()
1104
-		);
1105
-	}
1106
-
1107
-	/**
1108
-	 * Retrieves the invoice's schema, conforming to JSON Schema.
1109
-	 *
1110
-	 * @since 1.0.13
1111
-	 *
1112
-	 * @return array Invoice schema data.
1113
-	 */
1114
-	public function get_item_schema() {
1115
-
1116
-		// Maybe retrieve the schema from cache.
1117
-		if ( $this->schema ) {
1118
-			return $this->add_additional_fields_schema( $this->schema );
1119
-		}
1120
-
1121
-		$schema = array(
1122
-			'$schema'    => 'http://json-schema.org/draft-04/schema#',
1123
-			'title'      => $this->post_type,
1124
-			'type'       => 'object',
1125
-
1126
-			// Base properties for every Invoice.
1127
-			'properties' 		  => array(
1128
-
1129
-				'title'			  => array(
1130
-					'description' => __( 'The title for the invoice.', 'invoicing' ),
1131
-					'type'        => 'string',
1132
-					'context'     => array( 'view', 'edit', 'embed' ),
1133
-					'readonly'    => true,
1134
-				),
1135
-
1136
-				'user_id'		  => array(
1137
-					'description' => __( 'The ID of the owner of the invoice.', 'invoicing' ),
1138
-					'type'        => 'integer',
1139
-					'context'     => array( 'view', 'edit', 'embed' ),
1140
-				),
1141
-
1142
-				'email'		  	  => array(
1143
-					'description' => __( 'The email of the owner of the invoice.', 'invoicing' ),
1144
-					'type'        => 'string',
1145
-					'context'     => array( 'view', 'edit', 'embed' ),
1146
-					'readonly'    => true,
1147
-				),
1148
-
1149
-				'ip'			  => array(
1150
-					'description' => __( 'The IP of the owner of the invoice.', 'invoicing' ),
1151
-					'type'        => 'string',
1152
-					'context'     => array( 'view', 'edit', 'embed' ),
1153
-				),
1154
-
1155
-				'user_info'       => array(
1156
-					'description' => __( 'Information about the owner of the invoice.', 'invoicing' ),
1157
-					'type'        => 'object',
1158
-					'context'     => array( 'view', 'edit', 'embed' ),
1159
-					'properties'  => array(
1160
-
1161
-						'first_name'      => array(
1162
-							'description' => __( 'The first name of the owner of the invoice.', 'invoicing' ),
1163
-							'type'        => 'string',
1164
-							'context'     => array( 'view', 'edit', 'embed' ),
1165
-						),
1166
-
1167
-						'last_name'       => array(
1168
-							'description' => __( 'The last name of the owner of the invoice.', 'invoicing' ),
1169
-							'type'        => 'string',
1170
-							'context'     => array( 'view', 'edit', 'embed' ),
1171
-						),
1172
-
1173
-						'company'         => array(
1174
-							'description' => __( 'The company of the owner of the invoice.', 'invoicing' ),
1175
-							'type'        => 'string',
1176
-							'context'     => array( 'view', 'edit', 'embed' ),
1177
-						),
1178
-
1179
-						'vat_number'      => array(
1180
-							'description' => __( 'The VAT number of the owner of the invoice.', 'invoicing' ),
1181
-							'type'        => 'string',
1182
-							'context'     => array( 'view', 'edit', 'embed' ),
1183
-						),
1184
-
1185
-						'vat_rate'        => array(
1186
-							'description' => __( 'The VAT rate applied on the invoice.', 'invoicing' ),
1187
-							'type'        => 'string',
1188
-							'context'     => array( 'view', 'edit', 'embed' ),
1189
-						),
1190
-
1191
-						'address'        => array(
1192
-							'description' => __( 'The address of the invoice owner.', 'invoicing' ),
1193
-							'type'        => 'string',
1194
-							'context'     => array( 'view', 'edit', 'embed' ),
1195
-						),
1196
-
1197
-						'city'            => array(
1198
-							'description' => __( 'The city of the invoice owner.', 'invoicing' ),
1199
-							'type'        => 'string',
1200
-							'context'     => array( 'view', 'edit', 'embed' ),
1201
-						),
1202
-
1203
-						'country'         => array(
1204
-							'description' => __( 'The country of the invoice owner.', 'invoicing' ),
1205
-							'type'        => 'string',
1206
-							'context'     => array( 'view', 'edit', 'embed' ),
1207
-						),
1208
-
1209
-						'state'           => array(
1210
-							'description' => __( 'The state of the invoice owner.', 'invoicing' ),
1211
-							'type'        => 'string',
1212
-							'context'     => array( 'view', 'edit', 'embed' ),
1213
-						),
1214
-
1215
-						'zip'             => array(
1216
-							'description' => __( 'The zip code of the invoice owner.', 'invoicing' ),
1217
-							'type'        => 'string',
1218
-							'context'     => array( 'view', 'edit', 'embed' ),
1219
-						),
1220
-
1221
-						'phone'             => array(
1222
-							'description' => __( 'The phone number of the invoice owner.', 'invoicing' ),
1223
-							'type'        => 'string',
1224
-							'context'     => array( 'view', 'edit', 'embed' ),
1225
-						),
1226
-					),
1227
-				),
1228
-
1229
-				'id'           => array(
1230
-					'description' => __( 'Unique identifier for the invoice.', 'invoicing' ),
1231
-					'type'        => 'integer',
1232
-					'context'     => array( 'view', 'edit', 'embed' ),
1233
-					'readonly'    => true,
1234
-				),
1235
-
1236
-				'key'			  => array(
1237
-					'description' => __( 'A unique key for the invoice.', 'invoicing' ),
1238
-					'type'        => 'string',
1239
-					'context'     => array( 'view', 'edit', 'embed' ),
1240
-					'readonly'    => true,
1241
-				),
1242
-
1243
-				'number'		  => array(
1244
-					'description' => __( 'The invoice number.', 'invoicing' ),
1245
-					'type'        => 'string',
1246
-					'context'     => array( 'view', 'edit', 'embed' ),
1247
-					'readonly'    => true,
1248
-				),
1249
-
1250
-				'transaction_id'  => array(
1251
-					'description' => __( 'The transaction id of the invoice.', 'invoicing' ),
1252
-					'type'        => 'string',
1253
-					'context'     => array( 'view', 'edit', 'embed' ),
1254
-				),
1255
-
1256
-				'gateway'		  => array(
1257
-					'description' => __( 'The gateway used to process the invoice.', 'invoicing' ),
1258
-					'type'        => 'string',
1259
-					'context'     => array( 'view', 'edit', 'embed' ),
1260
-				),
1261
-
1262
-				'gateway_title'	  => array(
1263
-					'description' => __( 'The title of the gateway used to process the invoice.', 'invoicing' ),
1264
-					'type'        => 'string',
1265
-					'context'     => array( 'view', 'edit', 'embed' ),
1266
-				),
1267
-
1268
-				'total'	  		  => array(
1269
-					'description' => __( 'The total amount of the invoice.', 'invoicing' ),
1270
-					'type'        => 'number',
1271
-					'context'     => array( 'view', 'edit', 'embed' ),
1272
-					'readonly'    => true,
1273
-				),
1274
-
1275
-				'discount'		  => array(
1276
-					'description' => __( 'The discount applied to the invoice.', 'invoicing' ),
1277
-					'type'        => 'number',
1278
-					'context'     => array( 'view', 'edit', 'embed' ),
1279
-					'readonly'    => true,
1280
-				),
1281
-
1282
-				'discount_code'	  => array(
1283
-					'description' => __( 'The discount code applied to the invoice.', 'invoicing' ),
1284
-					'type'        => 'string',
1285
-					'context'     => array( 'view', 'edit', 'embed' ),
1286
-					'readonly'    => true,
1287
-				),
1288
-
1289
-				'tax'	  		  => array(
1290
-					'description' => __( 'The tax applied to the invoice.', 'invoicing' ),
1291
-					'type'        => 'number',
1292
-					'context'     => array( 'view', 'edit', 'embed' ),
1293
-					'readonly'    => true,
1294
-				),
1295
-
1296
-				'fees_total'	  => array(
1297
-					'description' => __( 'The total fees applied to the invoice.', 'invoicing' ),
1298
-					'type'        => 'number',
1299
-					'context'     => array( 'view', 'edit', 'embed' ),
1300
-					'readonly'    => true,
1301
-				),
1302
-
1303
-				'subtotal'	  	  => array(
1304
-					'description' => __( 'The sub-total for the invoice.', 'invoicing' ),
1305
-					'type'        => 'number',
1306
-					'context'     => array( 'view', 'edit', 'embed' ),
1307
-					'readonly'    => true,
1308
-				),
1309
-
1310
-				'currency'	  	  => array(
1311
-					'description' => __( 'The currency used to process the invoice.', 'invoicing' ),
1312
-					'type'        => 'string',
1313
-					'context'     => array( 'view', 'edit', 'embed' ),
1314
-				),
1315
-
1316
-				'cart_details'	  => array(
1317
-					'description' => __( 'The cart details for invoice.', 'invoicing' ),
1318
-					'type'        => 'array',
1319
-					'context'     => array( 'view', 'edit', 'embed' ),
1320
-					'required'	  => true,
1321
-				),
1322
-
1323
-				'date'         => array(
1324
-					'description' => __( "The date the invoice was published, in the site's timezone.", 'invoicing' ),
1325
-					'type'        => array( 'string', 'null' ),
1326
-					'format'      => 'date-time',
1327
-					'context'     => array( 'view', 'edit', 'embed' ),
1328
-				),
1329
-
1330
-				'due_date'     => array(
1331
-					'description' => __( 'The due date for the invoice.', 'invoicing' ),
1332
-					'type'        => array( 'string', 'null' ),
1333
-					'format'      => 'date-time',
1334
-					'context'     => array( 'view', 'edit', 'embed' ),
1335
-				),
1336
-
1337
-				'completed_date'  => array(
1338
-					'description' => __( 'The completed date for the invoice.', 'invoicing' ),
1339
-					'type'        => array( 'string', 'null' ),
1340
-					'format'      => 'date-time',
1341
-					'context'     => array( 'view', 'edit', 'embed' ),
1342
-					'readonly'    => true,
1343
-				),
950
+        foreach( $invoice_properties as $property ) {
951
+
952
+            if ( rest_is_field_included( $property, $fields ) ) {
953
+                $data[$property] = $invoice->get( $property );
954
+            }
955
+
956
+        }
957
+
958
+        // Valid until
959
+        if ( rest_is_field_included( 'valid_until', $fields ) && $this->post_type === 'wpi_quote' ) {
960
+            $data['valid_until'] = get_post_meta( $invoice->ID, 'wpinv_quote_valid_until', true );
961
+        }
962
+
963
+        // Cart details
964
+        if ( rest_is_field_included( 'cart_details', $fields ) ) {
965
+            $data['cart_details'] = $invoice->get( 'cart_details' );
966
+        }
967
+
968
+        //Dates
969
+        $invoice_properties = array( 'date', 'due_date', 'completed_date' );
970
+
971
+        foreach( $invoice_properties as $property ) {
972
+
973
+            if ( rest_is_field_included( $property, $fields ) ) {
974
+                $data[$property] = $this->prepare_date_response( '0000-00-00 00:00:00', $invoice->get( $property ) );
975
+            }
976
+
977
+        }
978
+
979
+        // User id
980
+        if ( rest_is_field_included( 'user_id', $fields ) ) {
981
+            $data['user_id'] = (int) $invoice->get( 'user_id' );
982
+        }
983
+
984
+        // User info
985
+        $user_info = array( 'first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone' );
986
+
987
+        foreach( $user_info as $property ) {
988
+
989
+            if ( rest_is_field_included( "user_info.$property", $fields ) ) {
990
+                $data['user_info'][$property] = $invoice->get( $property );
991
+            }
992
+
993
+        }
994
+
995
+        // Slug
996
+        if ( rest_is_field_included( 'slug', $fields ) ) {
997
+            $data['slug'] = $invoice->get( 'post_name' );
998
+        }
999
+
1000
+        // View invoice link
1001
+        if ( rest_is_field_included( 'link', $fields ) ) {
1002
+            $data['link'] = esc_url( $invoice->get_view_url() );
1003
+        }
1004
+
1005
+
1006
+        $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
1007
+        $data    = $this->add_additional_fields_to_object( $data, $request );
1008
+        $data    = $this->filter_response_by_context( $data, $context );
1009
+
1010
+        // Wrap the data in a response object.
1011
+        $response = rest_ensure_response( $data );
1012
+
1013
+        $links = $this->prepare_links( $invoice );
1014
+        $response->add_links( $links );
1015
+
1016
+        if ( ! empty( $links['self']['href'] ) ) {
1017
+            $actions = $this->get_available_actions( $invoice, $request );
1018
+
1019
+            $self = $links['self']['href'];
1020
+
1021
+            foreach ( $actions as $rel ) {
1022
+                $response->add_link( $rel, $self );
1023
+            }
1024
+        }
1025
+
1026
+        /**
1027
+         * Filters the invoice data for a response.
1028
+         *
1029
+         * @since 1.0.13
1030
+         *
1031
+         * @param WP_REST_Response $response The response object.
1032
+         * @param WPInv_Invoice    $invoice  The invoice object.
1033
+         * @param WP_REST_Request  $request  Request object.
1034
+         */
1035
+        return apply_filters( "wpinv_rest_prepare_invoice", $response, $invoice, $request );
1036
+    }
1037
+
1038
+    /**
1039
+     * Gets an array of fields to be included on the response.
1040
+     *
1041
+     * Included fields are based on item schema and `_fields=` request argument.
1042
+     *
1043
+     * @since 1.0.13
1044
+     *
1045
+     * @param WP_REST_Request $request Full details about the request.
1046
+     * @return array Fields to be included in the response.
1047
+     */
1048
+    public function get_fields_for_response( $request ) {
1049
+        $schema     = $this->get_item_schema();
1050
+        $properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
1051
+
1052
+        $additional_fields = $this->get_additional_fields();
1053
+        foreach ( $additional_fields as $field_name => $field_options ) {
1054
+            // For back-compat, include any field with an empty schema
1055
+            // because it won't be present in $this->get_item_schema().
1056
+            if ( is_null( $field_options['schema'] ) ) {
1057
+                $properties[ $field_name ] = $field_options;
1058
+            }
1059
+        }
1060
+
1061
+        // Exclude fields that specify a different context than the request context.
1062
+        $context = $request['context'];
1063
+        if ( $context ) {
1064
+            foreach ( $properties as $name => $options ) {
1065
+                if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
1066
+                    unset( $properties[ $name ] );
1067
+                }
1068
+            }
1069
+        }
1070
+
1071
+        $fields = array_keys( $properties );
1072
+
1073
+        if ( ! isset( $request['_fields'] ) ) {
1074
+            return $fields;
1075
+        }
1076
+        $requested_fields = wpinv_parse_list( $request['_fields'] );
1077
+        if ( 0 === count( $requested_fields ) ) {
1078
+            return $fields;
1079
+        }
1080
+        // Trim off outside whitespace from the comma delimited list.
1081
+        $requested_fields = array_map( 'trim', $requested_fields );
1082
+        // Always persist 'id', because it can be needed for add_additional_fields_to_object().
1083
+        if ( in_array( 'id', $fields, true ) ) {
1084
+            $requested_fields[] = 'id';
1085
+        }
1086
+        // Return the list of all requested fields which appear in the schema.
1087
+        return array_reduce(
1088
+            $requested_fields,
1089
+            function( $response_fields, $field ) use ( $fields ) {
1090
+                if ( in_array( $field, $fields, true ) ) {
1091
+                    $response_fields[] = $field;
1092
+                    return $response_fields;
1093
+                }
1094
+                // Check for nested fields if $field is not a direct match.
1095
+                $nested_fields = explode( '.', $field );
1096
+                // A nested field is included so long as its top-level property is
1097
+                // present in the schema.
1098
+                if ( in_array( $nested_fields[0], $fields, true ) ) {
1099
+                    $response_fields[] = $field;
1100
+                }
1101
+                return $response_fields;
1102
+            },
1103
+            array()
1104
+        );
1105
+    }
1106
+
1107
+    /**
1108
+     * Retrieves the invoice's schema, conforming to JSON Schema.
1109
+     *
1110
+     * @since 1.0.13
1111
+     *
1112
+     * @return array Invoice schema data.
1113
+     */
1114
+    public function get_item_schema() {
1115
+
1116
+        // Maybe retrieve the schema from cache.
1117
+        if ( $this->schema ) {
1118
+            return $this->add_additional_fields_schema( $this->schema );
1119
+        }
1120
+
1121
+        $schema = array(
1122
+            '$schema'    => 'http://json-schema.org/draft-04/schema#',
1123
+            'title'      => $this->post_type,
1124
+            'type'       => 'object',
1125
+
1126
+            // Base properties for every Invoice.
1127
+            'properties' 		  => array(
1128
+
1129
+                'title'			  => array(
1130
+                    'description' => __( 'The title for the invoice.', 'invoicing' ),
1131
+                    'type'        => 'string',
1132
+                    'context'     => array( 'view', 'edit', 'embed' ),
1133
+                    'readonly'    => true,
1134
+                ),
1135
+
1136
+                'user_id'		  => array(
1137
+                    'description' => __( 'The ID of the owner of the invoice.', 'invoicing' ),
1138
+                    'type'        => 'integer',
1139
+                    'context'     => array( 'view', 'edit', 'embed' ),
1140
+                ),
1141
+
1142
+                'email'		  	  => array(
1143
+                    'description' => __( 'The email of the owner of the invoice.', 'invoicing' ),
1144
+                    'type'        => 'string',
1145
+                    'context'     => array( 'view', 'edit', 'embed' ),
1146
+                    'readonly'    => true,
1147
+                ),
1148
+
1149
+                'ip'			  => array(
1150
+                    'description' => __( 'The IP of the owner of the invoice.', 'invoicing' ),
1151
+                    'type'        => 'string',
1152
+                    'context'     => array( 'view', 'edit', 'embed' ),
1153
+                ),
1154
+
1155
+                'user_info'       => array(
1156
+                    'description' => __( 'Information about the owner of the invoice.', 'invoicing' ),
1157
+                    'type'        => 'object',
1158
+                    'context'     => array( 'view', 'edit', 'embed' ),
1159
+                    'properties'  => array(
1160
+
1161
+                        'first_name'      => array(
1162
+                            'description' => __( 'The first name of the owner of the invoice.', 'invoicing' ),
1163
+                            'type'        => 'string',
1164
+                            'context'     => array( 'view', 'edit', 'embed' ),
1165
+                        ),
1166
+
1167
+                        'last_name'       => array(
1168
+                            'description' => __( 'The last name of the owner of the invoice.', 'invoicing' ),
1169
+                            'type'        => 'string',
1170
+                            'context'     => array( 'view', 'edit', 'embed' ),
1171
+                        ),
1172
+
1173
+                        'company'         => array(
1174
+                            'description' => __( 'The company of the owner of the invoice.', 'invoicing' ),
1175
+                            'type'        => 'string',
1176
+                            'context'     => array( 'view', 'edit', 'embed' ),
1177
+                        ),
1178
+
1179
+                        'vat_number'      => array(
1180
+                            'description' => __( 'The VAT number of the owner of the invoice.', 'invoicing' ),
1181
+                            'type'        => 'string',
1182
+                            'context'     => array( 'view', 'edit', 'embed' ),
1183
+                        ),
1184
+
1185
+                        'vat_rate'        => array(
1186
+                            'description' => __( 'The VAT rate applied on the invoice.', 'invoicing' ),
1187
+                            'type'        => 'string',
1188
+                            'context'     => array( 'view', 'edit', 'embed' ),
1189
+                        ),
1190
+
1191
+                        'address'        => array(
1192
+                            'description' => __( 'The address of the invoice owner.', 'invoicing' ),
1193
+                            'type'        => 'string',
1194
+                            'context'     => array( 'view', 'edit', 'embed' ),
1195
+                        ),
1196
+
1197
+                        'city'            => array(
1198
+                            'description' => __( 'The city of the invoice owner.', 'invoicing' ),
1199
+                            'type'        => 'string',
1200
+                            'context'     => array( 'view', 'edit', 'embed' ),
1201
+                        ),
1202
+
1203
+                        'country'         => array(
1204
+                            'description' => __( 'The country of the invoice owner.', 'invoicing' ),
1205
+                            'type'        => 'string',
1206
+                            'context'     => array( 'view', 'edit', 'embed' ),
1207
+                        ),
1208
+
1209
+                        'state'           => array(
1210
+                            'description' => __( 'The state of the invoice owner.', 'invoicing' ),
1211
+                            'type'        => 'string',
1212
+                            'context'     => array( 'view', 'edit', 'embed' ),
1213
+                        ),
1214
+
1215
+                        'zip'             => array(
1216
+                            'description' => __( 'The zip code of the invoice owner.', 'invoicing' ),
1217
+                            'type'        => 'string',
1218
+                            'context'     => array( 'view', 'edit', 'embed' ),
1219
+                        ),
1220
+
1221
+                        'phone'             => array(
1222
+                            'description' => __( 'The phone number of the invoice owner.', 'invoicing' ),
1223
+                            'type'        => 'string',
1224
+                            'context'     => array( 'view', 'edit', 'embed' ),
1225
+                        ),
1226
+                    ),
1227
+                ),
1228
+
1229
+                'id'           => array(
1230
+                    'description' => __( 'Unique identifier for the invoice.', 'invoicing' ),
1231
+                    'type'        => 'integer',
1232
+                    'context'     => array( 'view', 'edit', 'embed' ),
1233
+                    'readonly'    => true,
1234
+                ),
1235
+
1236
+                'key'			  => array(
1237
+                    'description' => __( 'A unique key for the invoice.', 'invoicing' ),
1238
+                    'type'        => 'string',
1239
+                    'context'     => array( 'view', 'edit', 'embed' ),
1240
+                    'readonly'    => true,
1241
+                ),
1242
+
1243
+                'number'		  => array(
1244
+                    'description' => __( 'The invoice number.', 'invoicing' ),
1245
+                    'type'        => 'string',
1246
+                    'context'     => array( 'view', 'edit', 'embed' ),
1247
+                    'readonly'    => true,
1248
+                ),
1249
+
1250
+                'transaction_id'  => array(
1251
+                    'description' => __( 'The transaction id of the invoice.', 'invoicing' ),
1252
+                    'type'        => 'string',
1253
+                    'context'     => array( 'view', 'edit', 'embed' ),
1254
+                ),
1255
+
1256
+                'gateway'		  => array(
1257
+                    'description' => __( 'The gateway used to process the invoice.', 'invoicing' ),
1258
+                    'type'        => 'string',
1259
+                    'context'     => array( 'view', 'edit', 'embed' ),
1260
+                ),
1261
+
1262
+                'gateway_title'	  => array(
1263
+                    'description' => __( 'The title of the gateway used to process the invoice.', 'invoicing' ),
1264
+                    'type'        => 'string',
1265
+                    'context'     => array( 'view', 'edit', 'embed' ),
1266
+                ),
1267
+
1268
+                'total'	  		  => array(
1269
+                    'description' => __( 'The total amount of the invoice.', 'invoicing' ),
1270
+                    'type'        => 'number',
1271
+                    'context'     => array( 'view', 'edit', 'embed' ),
1272
+                    'readonly'    => true,
1273
+                ),
1274
+
1275
+                'discount'		  => array(
1276
+                    'description' => __( 'The discount applied to the invoice.', 'invoicing' ),
1277
+                    'type'        => 'number',
1278
+                    'context'     => array( 'view', 'edit', 'embed' ),
1279
+                    'readonly'    => true,
1280
+                ),
1281
+
1282
+                'discount_code'	  => array(
1283
+                    'description' => __( 'The discount code applied to the invoice.', 'invoicing' ),
1284
+                    'type'        => 'string',
1285
+                    'context'     => array( 'view', 'edit', 'embed' ),
1286
+                    'readonly'    => true,
1287
+                ),
1288
+
1289
+                'tax'	  		  => array(
1290
+                    'description' => __( 'The tax applied to the invoice.', 'invoicing' ),
1291
+                    'type'        => 'number',
1292
+                    'context'     => array( 'view', 'edit', 'embed' ),
1293
+                    'readonly'    => true,
1294
+                ),
1295
+
1296
+                'fees_total'	  => array(
1297
+                    'description' => __( 'The total fees applied to the invoice.', 'invoicing' ),
1298
+                    'type'        => 'number',
1299
+                    'context'     => array( 'view', 'edit', 'embed' ),
1300
+                    'readonly'    => true,
1301
+                ),
1302
+
1303
+                'subtotal'	  	  => array(
1304
+                    'description' => __( 'The sub-total for the invoice.', 'invoicing' ),
1305
+                    'type'        => 'number',
1306
+                    'context'     => array( 'view', 'edit', 'embed' ),
1307
+                    'readonly'    => true,
1308
+                ),
1309
+
1310
+                'currency'	  	  => array(
1311
+                    'description' => __( 'The currency used to process the invoice.', 'invoicing' ),
1312
+                    'type'        => 'string',
1313
+                    'context'     => array( 'view', 'edit', 'embed' ),
1314
+                ),
1315
+
1316
+                'cart_details'	  => array(
1317
+                    'description' => __( 'The cart details for invoice.', 'invoicing' ),
1318
+                    'type'        => 'array',
1319
+                    'context'     => array( 'view', 'edit', 'embed' ),
1320
+                    'required'	  => true,
1321
+                ),
1322
+
1323
+                'date'         => array(
1324
+                    'description' => __( "The date the invoice was published, in the site's timezone.", 'invoicing' ),
1325
+                    'type'        => array( 'string', 'null' ),
1326
+                    'format'      => 'date-time',
1327
+                    'context'     => array( 'view', 'edit', 'embed' ),
1328
+                ),
1329
+
1330
+                'due_date'     => array(
1331
+                    'description' => __( 'The due date for the invoice.', 'invoicing' ),
1332
+                    'type'        => array( 'string', 'null' ),
1333
+                    'format'      => 'date-time',
1334
+                    'context'     => array( 'view', 'edit', 'embed' ),
1335
+                ),
1336
+
1337
+                'completed_date'  => array(
1338
+                    'description' => __( 'The completed date for the invoice.', 'invoicing' ),
1339
+                    'type'        => array( 'string', 'null' ),
1340
+                    'format'      => 'date-time',
1341
+                    'context'     => array( 'view', 'edit', 'embed' ),
1342
+                    'readonly'    => true,
1343
+                ),
1344 1344
 				
1345
-				'link'         => array(
1346
-					'description' => __( 'URL to the invoice.', 'invoicing' ),
1347
-					'type'        => 'string',
1348
-					'format'      => 'uri',
1349
-					'context'     => array( 'view', 'edit', 'embed' ),
1350
-					'readonly'    => true,
1351
-				),
1352
-
1353
-				'mode'       	  => array(
1354
-					'description' => __( 'The mode used to process the invoice.', 'invoicing' ),
1355
-					'type'        => 'string',
1356
-					'enum'        => array( 'live', 'test' ),
1357
-					'context'     => array( 'view', 'edit', 'embed' ),
1358
-					'readonly'    => true,
1359
-				),
1360
-
1361
-				'slug'       	  => array(
1362
-					'description' => __( 'An alphanumeric identifier for the invoice.', 'invoicing' ),
1363
-					'type'        => 'string',
1364
-					'context'     => array( 'view', 'edit', 'embed' ),
1365
-					'arg_options' => array(
1366
-						'sanitize_callback' => array( $this, 'sanitize_slug' ),
1367
-					),
1368
-					'readonly'    => true,
1369
-				),
1370
-
1371
-				'status'       	  => array(
1372
-					'description' => __( 'A named status for the invoice.', 'invoicing' ),
1373
-					'type'        => 'string',
1374
-					'enum'        => $this->get_post_statuses(),
1375
-					'context'     => array( 'view', 'edit' ),
1376
-					'default'	  => 'wpi-pending',
1377
-				),
1378
-
1379
-				'status_nicename' => array(
1380
-					'description' => __( 'A human-readable status name for the invoice.', 'invoicing' ),
1381
-					'type'        => 'string',
1382
-					'context'     => array( 'view', 'embed' ),
1383
-					'readonly'    => true,
1384
-				),
1385
-
1386
-				'post_type'       => array(
1387
-					'description' => __( 'The post type for the invoice.', 'invoicing' ),
1388
-					'type'        => 'string',
1389
-					'context'     => array( 'view' ),
1390
-					'readonly'    => true,
1391
-				),
1392
-			),
1393
-		);
1394
-
1395
-		// Add helpful links to the invoice schem.
1396
-		$schema['links'] = $this->get_schema_links();
1397
-
1398
-		/**
1399
-		 * Filters the invoice schema for the REST API.
1400
-		 *
1401
-		 * Enables adding extra properties to invoices.
1402
-		 *
1403
-		 * @since 1.0.13
1404
-		 *
1405
-		 * @param array   $schema    The invoice schema.
1406
-		 */
1345
+                'link'         => array(
1346
+                    'description' => __( 'URL to the invoice.', 'invoicing' ),
1347
+                    'type'        => 'string',
1348
+                    'format'      => 'uri',
1349
+                    'context'     => array( 'view', 'edit', 'embed' ),
1350
+                    'readonly'    => true,
1351
+                ),
1352
+
1353
+                'mode'       	  => array(
1354
+                    'description' => __( 'The mode used to process the invoice.', 'invoicing' ),
1355
+                    'type'        => 'string',
1356
+                    'enum'        => array( 'live', 'test' ),
1357
+                    'context'     => array( 'view', 'edit', 'embed' ),
1358
+                    'readonly'    => true,
1359
+                ),
1360
+
1361
+                'slug'       	  => array(
1362
+                    'description' => __( 'An alphanumeric identifier for the invoice.', 'invoicing' ),
1363
+                    'type'        => 'string',
1364
+                    'context'     => array( 'view', 'edit', 'embed' ),
1365
+                    'arg_options' => array(
1366
+                        'sanitize_callback' => array( $this, 'sanitize_slug' ),
1367
+                    ),
1368
+                    'readonly'    => true,
1369
+                ),
1370
+
1371
+                'status'       	  => array(
1372
+                    'description' => __( 'A named status for the invoice.', 'invoicing' ),
1373
+                    'type'        => 'string',
1374
+                    'enum'        => $this->get_post_statuses(),
1375
+                    'context'     => array( 'view', 'edit' ),
1376
+                    'default'	  => 'wpi-pending',
1377
+                ),
1378
+
1379
+                'status_nicename' => array(
1380
+                    'description' => __( 'A human-readable status name for the invoice.', 'invoicing' ),
1381
+                    'type'        => 'string',
1382
+                    'context'     => array( 'view', 'embed' ),
1383
+                    'readonly'    => true,
1384
+                ),
1385
+
1386
+                'post_type'       => array(
1387
+                    'description' => __( 'The post type for the invoice.', 'invoicing' ),
1388
+                    'type'        => 'string',
1389
+                    'context'     => array( 'view' ),
1390
+                    'readonly'    => true,
1391
+                ),
1392
+            ),
1393
+        );
1394
+
1395
+        // Add helpful links to the invoice schem.
1396
+        $schema['links'] = $this->get_schema_links();
1397
+
1398
+        /**
1399
+         * Filters the invoice schema for the REST API.
1400
+         *
1401
+         * Enables adding extra properties to invoices.
1402
+         *
1403
+         * @since 1.0.13
1404
+         *
1405
+         * @param array   $schema    The invoice schema.
1406
+         */
1407 1407
         $schema = apply_filters( "wpinv_rest_invoice_schema", $schema );
1408 1408
 
1409
-		// Cache the invoice schema.
1410
-		$this->schema = $schema;
1409
+        // Cache the invoice schema.
1410
+        $this->schema = $schema;
1411 1411
 		
1412
-		return $this->add_additional_fields_schema( $this->schema );
1413
-	}
1414
-
1415
-	/**
1416
-	 * Retrieve Link Description Objects that should be added to the Schema for the invoices collection.
1417
-	 *
1418
-	 * @since 1.0.13
1419
-	 *
1420
-	 * @return array
1421
-	 */
1422
-	protected function get_schema_links() {
1423
-
1424
-		$href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" );
1425
-
1426
-		$links = array();
1427
-
1428
-		$links[] = array(
1429
-			'rel'          => 'https://api.w.org/action-publish',
1430
-			'title'        => __( 'The current user can mark this invoice as completed.', 'invoicing' ),
1431
-			'href'         => $href,
1432
-			'targetSchema' => array(
1433
-				'type'       => 'object',
1434
-				'properties' => array(
1435
-					'status' => array(
1436
-						'type' => 'string',
1437
-						'enum' => array( 'publish', 'wpi-renewal' ),
1438
-					),
1439
-				),
1440
-			),
1441
-		);
1442
-
1443
-		$links[] = array(
1444
-			'rel'          => 'https://api.w.org/action-assign-author',
1445
-			'title'        => __( 'The current user can change the owner of this invoice.', 'invoicing' ),
1446
-			'href'         => $href,
1447
-			'targetSchema' => array(
1448
-				'type'       => 'object',
1449
-				'properties'   => array(
1450
-					'user_id'  => array(
1451
-						'type' => 'integer',
1452
-					),
1453
-				),
1454
-			),
1455
-		);
1456
-
1457
-		return $links;
1458
-	}
1459
-
1460
-	/**
1461
-	 * Prepares links for the request.
1462
-	 *
1463
-	 * @since 1.0.13
1464
-	 *
1465
-	 * @param WPInv_Invoice $invoice Invoice Object.
1466
-	 * @return array Links for the given invoice.
1467
-	 */
1468
-	protected function prepare_links( $invoice ) {
1469
-
1470
-		// Prepare the base REST API endpoint for invoices.
1471
-		$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
1472
-
1473
-		// Entity meta.
1474
-		$links = array(
1475
-			'self'       => array(
1476
-				'href' => rest_url( trailingslashit( $base ) . $invoice->ID ),
1477
-			),
1478
-			'collection' => array(
1479
-				'href' => rest_url( $base ),
1480
-			),
1481
-		);
1482
-
1483
-		if ( ! empty( $invoice->user_id ) ) {
1484
-			$links['user'] = array(
1485
-				'href'       => rest_url( 'wp/v2/users/' . $invoice->user_id ),
1486
-				'embeddable' => true,
1487
-			);
1488
-		}
1489
-
1490
-		/**
1491
-		 * Filters the returned invoice links for the REST API.
1492
-		 *
1493
-		 * Enables adding extra links to invoice API responses.
1494
-		 *
1495
-		 * @since 1.0.13
1496
-		 *
1497
-		 * @param array   $links    Rest links.
1498
-		 */
1499
-		return apply_filters( "wpinv_rest_invoice_links", $links );
1500
-
1501
-	}
1502
-
1503
-	/**
1504
-	 * Get the link relations available for the post and current user.
1505
-	 *
1506
-	 * @since 1.0.13
1507
-	 *
1508
-	 * @param WPInv_Invoice   $invoice    Invoice object.
1509
-	 * @param WP_REST_Request $request Request object.
1510
-	 * @return array List of link relations.
1511
-	 */
1512
-	protected function get_available_actions( $invoice, $request ) {
1513
-
1514
-		if ( 'edit' !== $request['context'] ) {
1515
-			return array();
1516
-		}
1517
-
1518
-		$rels = array();
1519
-
1520
-		// Retrieve the post type object.
1521
-		$post_type = get_post_type_object( $invoice->post_type );
1522
-
1523
-		// Mark invoice as completed.
1524
-		if ( current_user_can( $post_type->cap->publish_posts ) ) {
1525
-			$rels[] = 'https://api.w.org/action-publish';
1526
-		}
1527
-
1528
-		// Change the owner of the invoice.
1529
-		if ( current_user_can( $post_type->cap->edit_others_posts ) ) {
1530
-			$rels[] = 'https://api.w.org/action-assign-author';
1531
-		}
1532
-
1533
-		/**
1534
-		 * Filters the available invoice link relations for the REST API.
1535
-		 *
1536
-		 * Enables adding extra link relation for the current user and request to invoice responses.
1537
-		 *
1538
-		 * @since 1.0.13
1539
-		 *
1540
-		 * @param array   $rels    Available link relations.
1541
-		 */
1542
-		return apply_filters( "wpinv_rest_invoice_link_relations", $rels );
1543
-	}
1544
-
1545
-	/**
1546
-	 * Sanitizes and validates the list of post statuses.
1547
-	 *
1548
-	 * @since 1.0.13
1549
-	 *
1550
-	 * @param string|array    $statuses  One or more post statuses.
1551
-	 * @param WP_REST_Request $request   Full details about the request.
1552
-	 * @param string          $parameter Additional parameter to pass to validation.
1553
-	 * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
1554
-	 */
1555
-	public function sanitize_post_statuses( $statuses, $request, $parameter ) {
1556
-		return array_intersect( wp_parse_slug_list( $statuses ), $this->get_post_statuses() );
1557
-	}
1558
-
1559
-	/**
1560
-	 * Retrieves a valid list of post statuses.
1561
-	 *
1562
-	 * @since 1.0.15
1563
-	 *
1564
-	 * @return array A list of registered item statuses.
1565
-	 */
1566
-	public function get_post_statuses() {
1567
-		return array_keys( wpinv_get_invoice_statuses( true, true ) );
1568
-	}
1412
+        return $this->add_additional_fields_schema( $this->schema );
1413
+    }
1414
+
1415
+    /**
1416
+     * Retrieve Link Description Objects that should be added to the Schema for the invoices collection.
1417
+     *
1418
+     * @since 1.0.13
1419
+     *
1420
+     * @return array
1421
+     */
1422
+    protected function get_schema_links() {
1423
+
1424
+        $href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" );
1425
+
1426
+        $links = array();
1427
+
1428
+        $links[] = array(
1429
+            'rel'          => 'https://api.w.org/action-publish',
1430
+            'title'        => __( 'The current user can mark this invoice as completed.', 'invoicing' ),
1431
+            'href'         => $href,
1432
+            'targetSchema' => array(
1433
+                'type'       => 'object',
1434
+                'properties' => array(
1435
+                    'status' => array(
1436
+                        'type' => 'string',
1437
+                        'enum' => array( 'publish', 'wpi-renewal' ),
1438
+                    ),
1439
+                ),
1440
+            ),
1441
+        );
1442
+
1443
+        $links[] = array(
1444
+            'rel'          => 'https://api.w.org/action-assign-author',
1445
+            'title'        => __( 'The current user can change the owner of this invoice.', 'invoicing' ),
1446
+            'href'         => $href,
1447
+            'targetSchema' => array(
1448
+                'type'       => 'object',
1449
+                'properties'   => array(
1450
+                    'user_id'  => array(
1451
+                        'type' => 'integer',
1452
+                    ),
1453
+                ),
1454
+            ),
1455
+        );
1456
+
1457
+        return $links;
1458
+    }
1459
+
1460
+    /**
1461
+     * Prepares links for the request.
1462
+     *
1463
+     * @since 1.0.13
1464
+     *
1465
+     * @param WPInv_Invoice $invoice Invoice Object.
1466
+     * @return array Links for the given invoice.
1467
+     */
1468
+    protected function prepare_links( $invoice ) {
1469
+
1470
+        // Prepare the base REST API endpoint for invoices.
1471
+        $base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
1472
+
1473
+        // Entity meta.
1474
+        $links = array(
1475
+            'self'       => array(
1476
+                'href' => rest_url( trailingslashit( $base ) . $invoice->ID ),
1477
+            ),
1478
+            'collection' => array(
1479
+                'href' => rest_url( $base ),
1480
+            ),
1481
+        );
1482
+
1483
+        if ( ! empty( $invoice->user_id ) ) {
1484
+            $links['user'] = array(
1485
+                'href'       => rest_url( 'wp/v2/users/' . $invoice->user_id ),
1486
+                'embeddable' => true,
1487
+            );
1488
+        }
1489
+
1490
+        /**
1491
+         * Filters the returned invoice links for the REST API.
1492
+         *
1493
+         * Enables adding extra links to invoice API responses.
1494
+         *
1495
+         * @since 1.0.13
1496
+         *
1497
+         * @param array   $links    Rest links.
1498
+         */
1499
+        return apply_filters( "wpinv_rest_invoice_links", $links );
1500
+
1501
+    }
1502
+
1503
+    /**
1504
+     * Get the link relations available for the post and current user.
1505
+     *
1506
+     * @since 1.0.13
1507
+     *
1508
+     * @param WPInv_Invoice   $invoice    Invoice object.
1509
+     * @param WP_REST_Request $request Request object.
1510
+     * @return array List of link relations.
1511
+     */
1512
+    protected function get_available_actions( $invoice, $request ) {
1513
+
1514
+        if ( 'edit' !== $request['context'] ) {
1515
+            return array();
1516
+        }
1517
+
1518
+        $rels = array();
1519
+
1520
+        // Retrieve the post type object.
1521
+        $post_type = get_post_type_object( $invoice->post_type );
1522
+
1523
+        // Mark invoice as completed.
1524
+        if ( current_user_can( $post_type->cap->publish_posts ) ) {
1525
+            $rels[] = 'https://api.w.org/action-publish';
1526
+        }
1527
+
1528
+        // Change the owner of the invoice.
1529
+        if ( current_user_can( $post_type->cap->edit_others_posts ) ) {
1530
+            $rels[] = 'https://api.w.org/action-assign-author';
1531
+        }
1532
+
1533
+        /**
1534
+         * Filters the available invoice link relations for the REST API.
1535
+         *
1536
+         * Enables adding extra link relation for the current user and request to invoice responses.
1537
+         *
1538
+         * @since 1.0.13
1539
+         *
1540
+         * @param array   $rels    Available link relations.
1541
+         */
1542
+        return apply_filters( "wpinv_rest_invoice_link_relations", $rels );
1543
+    }
1544
+
1545
+    /**
1546
+     * Sanitizes and validates the list of post statuses.
1547
+     *
1548
+     * @since 1.0.13
1549
+     *
1550
+     * @param string|array    $statuses  One or more post statuses.
1551
+     * @param WP_REST_Request $request   Full details about the request.
1552
+     * @param string          $parameter Additional parameter to pass to validation.
1553
+     * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
1554
+     */
1555
+    public function sanitize_post_statuses( $statuses, $request, $parameter ) {
1556
+        return array_intersect( wp_parse_slug_list( $statuses ), $this->get_post_statuses() );
1557
+    }
1558
+
1559
+    /**
1560
+     * Retrieves a valid list of post statuses.
1561
+     *
1562
+     * @since 1.0.15
1563
+     *
1564
+     * @return array A list of registered item statuses.
1565
+     */
1566
+    public function get_post_statuses() {
1567
+        return array_keys( wpinv_get_invoice_statuses( true, true ) );
1568
+    }
1569 1569
     
1570 1570
 }
1571 1571
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +325 added lines, -325 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  * @since    1.0.13
9 9
  */
10 10
 
11
-if ( !defined( 'WPINC' ) ) {
11
+if (!defined('WPINC')) {
12 12
     exit;
13 13
 }
14 14
 
@@ -41,7 +41,7 @@  discard block
 block discarded – undo
41 41
 	 *
42 42
 	 * @param string $namespace Api Namespace
43 43
 	 */
44
-	public function __construct( $namespace ) {
44
+	public function __construct($namespace) {
45 45
         
46 46
         // Set api namespace...
47 47
 		$this->namespace = $namespace;
@@ -60,16 +60,16 @@  discard block
 block discarded – undo
60 60
 	 * @param WP_REST_Request $request Full details about the request.
61 61
 	 * @return true|WP_Error True if the request has read access, WP_Error object otherwise.
62 62
 	 */
63
-	public function get_items_permissions_check( $request ) {
63
+	public function get_items_permissions_check($request) {
64 64
 	
65
-        $post_type = get_post_type_object( $this->post_type );
65
+        $post_type = get_post_type_object($this->post_type);
66 66
 
67
-		if ( 'edit' === $request['context'] && ! current_user_can( $post_type->cap->edit_posts ) ) {
68
-			return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you are not allowed to edit items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
67
+		if ('edit' === $request['context'] && !current_user_can($post_type->cap->edit_posts)) {
68
+			return new WP_Error('rest_forbidden_context', __('Sorry, you are not allowed to edit items.', 'invoicing'), array('status' => rest_authorization_required_code()));
69 69
 		}
70 70
 
71
-		if ( ! is_user_logged_in() ) {
72
-			return new WP_Error( 'rest_forbidden', __( 'Sorry, you must be logged in to view items.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
71
+		if (!is_user_logged_in()) {
72
+			return new WP_Error('rest_forbidden', __('Sorry, you must be logged in to view items.', 'invoicing'), array('status' => rest_authorization_required_code()));
73 73
 		}
74 74
 
75 75
 		// Read checks will be evaluated on a per invoice basis
@@ -86,33 +86,33 @@  discard block
 block discarded – undo
86 86
 	 * @param WP_REST_Request $request Full details about the request.
87 87
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
88 88
 	 */
89
-	public function get_items( $request ) {
89
+	public function get_items($request) {
90 90
 		
91 91
 		// Retrieve request query parameters.
92
-		$args          = $this->get_request_collection_params( $request );
92
+		$args          = $this->get_request_collection_params($request);
93 93
 		
94 94
 		// WP_Query Args.
95
-		$wp_query_args = $this->get_collection_wp_query_params( $args, $request );
95
+		$wp_query_args = $this->get_collection_wp_query_params($args, $request);
96 96
 		
97 97
 		// Get invoice ids...
98
-		$query         = new WP_Query( $wp_query_args );
98
+		$query         = new WP_Query($wp_query_args);
99 99
 
100 100
 		// ... and map them into invoice objects.
101
-		$_invoices     = array_map( array( $this, 'get_post' ), $query->posts );
101
+		$_invoices     = array_map(array($this, 'get_post'), $query->posts);
102 102
 
103 103
 		// Prepare the retrieved invoices
104 104
 		$invoices      = array();
105 105
 
106
-		foreach( $_invoices as $invoice ) {
107
-			if ( $this->check_read_permission( $invoice ) ) {
108
-				$invoices[] = $this->prepare_response_for_collection( $this->prepare_item_for_response( $invoice, $request ) );
106
+		foreach ($_invoices as $invoice) {
107
+			if ($this->check_read_permission($invoice)) {
108
+				$invoices[] = $this->prepare_response_for_collection($this->prepare_item_for_response($invoice, $request));
109 109
 			}
110 110
 		}
111 111
 
112 112
 		// Prepare the response.
113
-		$response = rest_ensure_response( $invoices );
114
-		$response->header( 'X-WP-Total', (int) $query->found_posts );
115
-		$response->header( 'X-WP-TotalPages', (int) $query->max_num_pages );
113
+		$response = rest_ensure_response($invoices);
114
+		$response->header('X-WP-Total', (int) $query->found_posts);
115
+		$response->header('X-WP-TotalPages', (int) $query->max_num_pages);
116 116
 
117 117
 		/**
118 118
 		 * Filters the responses for invoices requests.
@@ -125,9 +125,9 @@  discard block
 block discarded – undo
125 125
 		 * @param WP_REST_Request     $request The request used.
126 126
          * @param array               $args Array of args used to retrieve the invoices
127 127
 		 */
128
-        $response       = apply_filters( "wpinv_rest_invoices_response", $response, $request, $args );
128
+        $response = apply_filters("wpinv_rest_invoices_response", $response, $request, $args);
129 129
 
130
-        return rest_ensure_response( $response );
130
+        return rest_ensure_response($response);
131 131
         
132 132
     }
133 133
 
@@ -139,17 +139,17 @@  discard block
 block discarded – undo
139 139
 	 * @param int $invoice_id Supplied ID.
140 140
 	 * @return WPInv_Invoice|WP_Error Invoice object if ID is valid, WP_Error otherwise.
141 141
 	 */
142
-	protected function get_post( $invoice_id ) {
142
+	protected function get_post($invoice_id) {
143 143
 		
144
-		$error     = new WP_Error( 'rest_invoice_invalid_id', __( 'Invalid item ID.', 'invoicing' ), array( 'status' => 404 ) );
144
+		$error = new WP_Error('rest_invoice_invalid_id', __('Invalid item ID.', 'invoicing'), array('status' => 404));
145 145
 
146 146
         // Ids start from 1
147
-        if ( (int) $invoice_id <= 0 ) {
147
+        if ((int) $invoice_id <= 0) {
148 148
 			return $error;
149 149
 		}
150 150
 
151
-		$invoice = wpinv_get_invoice( (int) $invoice_id );
152
-		if ( empty( $invoice ) || $this->post_type !== $invoice->post_type ) {
151
+		$invoice = wpinv_get_invoice((int) $invoice_id);
152
+		if (empty($invoice) || $this->post_type !== $invoice->post_type) {
153 153
 			return $error;
154 154
         }
155 155
 
@@ -165,18 +165,18 @@  discard block
 block discarded – undo
165 165
 	 * @param WP_REST_Request $request Full details about the request.
166 166
 	 * @return bool|WP_Error True if the request has read access for the invoice, WP_Error object otherwise.
167 167
 	 */
168
-	public function get_item_permissions_check( $request ) {
168
+	public function get_item_permissions_check($request) {
169 169
 
170 170
         // Retrieve the invoice object.
171
-        $invoice = $this->get_post( $request['id'] );
171
+        $invoice = $this->get_post($request['id']);
172 172
         
173 173
         // Ensure it is valid.
174
-		if ( is_wp_error( $invoice ) ) {
174
+		if (is_wp_error($invoice)) {
175 175
 			return $invoice;
176 176
 		}
177 177
 
178
-		if ( $invoice ) {
179
-			return $this->check_read_permission( $invoice );
178
+		if ($invoice) {
179
+			return $this->check_read_permission($invoice);
180 180
 		}
181 181
 
182 182
 		return true;
@@ -193,8 +193,8 @@  discard block
 block discarded – undo
193 193
 	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
194 194
 	 * @return bool Whether the post can be read.
195 195
 	 */
196
-	public function check_read_permission( $invoice ) {
197
-		return wpinv_user_can_view_invoice( $invoice->ID );
196
+	public function check_read_permission($invoice) {
197
+		return wpinv_user_can_view_invoice($invoice->ID);
198 198
     }
199 199
     
200 200
     /**
@@ -205,19 +205,19 @@  discard block
 block discarded – undo
205 205
 	 * @param WP_REST_Request $request Full details about the request.
206 206
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
207 207
 	 */
208
-	public function get_item( $request ) {
208
+	public function get_item($request) {
209 209
 
210 210
         // Fetch the invoice.
211
-        $invoice = $this->get_post( $request['id'] );
211
+        $invoice = $this->get_post($request['id']);
212 212
         
213 213
         // Abort early if it does not exist
214
-		if ( is_wp_error( $invoice ) ) {
214
+		if (is_wp_error($invoice)) {
215 215
 			return $invoice;
216 216
 		}
217 217
 
218 218
 		// Prepare the response
219
-		$response = $this->prepare_item_for_response( $invoice, $request );
220
-		$response->link_header( 'alternate', esc_url( $invoice->get_view_url() ), array( 'type' => 'text/html' ) );
219
+		$response = $this->prepare_item_for_response($invoice, $request);
220
+		$response->link_header('alternate', esc_url($invoice->get_view_url()), array('type' => 'text/html'));
221 221
 
222 222
 		/**
223 223
 		 * Filters the responses for single invoice requests.
@@ -229,9 +229,9 @@  discard block
 block discarded – undo
229 229
 		 * @param WP_HTTP_Response $response Response.
230 230
 		 * @param WP_REST_Request  $request The request used.
231 231
 		 */
232
-        $response       = apply_filters( "wpinv_rest_get_invoice_response", $response, $request );
232
+        $response = apply_filters("wpinv_rest_get_invoice_response", $response, $request);
233 233
 
234
-        return rest_ensure_response( $response );
234
+        return rest_ensure_response($response);
235 235
 
236 236
     }
237 237
     
@@ -243,18 +243,18 @@  discard block
 block discarded – undo
243 243
 	 * @param WP_REST_Request $request Full details about the request.
244 244
 	 * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
245 245
 	 */
246
-	public function create_item_permissions_check( $request ) {
246
+	public function create_item_permissions_check($request) {
247 247
 	
248
-		if ( ! empty( $request['id'] ) ) {
249
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
248
+		if (!empty($request['id'])) {
249
+			return new WP_Error('rest_invoice_exists', __('Cannot create existing item.', 'invoicing'), array('status' => 400));
250 250
 		}
251 251
 
252
-		$post_type = get_post_type_object( $this->post_type );
252
+		$post_type = get_post_type_object($this->post_type);
253 253
 
254
-		if ( ! current_user_can( $post_type->cap->create_posts ) && ! wpinv_current_user_can_manage_invoicing() ) {
254
+		if (!current_user_can($post_type->cap->create_posts) && !wpinv_current_user_can_manage_invoicing()) {
255 255
 			return new WP_Error( 
256 256
                 'rest_cannot_create',
257
-                __( 'Sorry, you are not allowed to create items as this user.', 'invoicing' ), 
257
+                __('Sorry, you are not allowed to create items as this user.', 'invoicing'), 
258 258
                 array( 
259 259
                     'status' => rest_authorization_required_code(),
260 260
                 )
@@ -272,32 +272,32 @@  discard block
 block discarded – undo
272 272
 	 * @param WP_REST_Request $request Full details about the request.
273 273
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
274 274
 	 */
275
-	public function create_item( $request ) {
275
+	public function create_item($request) {
276 276
 
277
-		if ( ! empty( $request['id'] ) ) {
278
-			return new WP_Error( 'rest_invoice_exists', __( 'Cannot create existing item.', 'invoicing' ), array( 'status' => 400 ) );
277
+		if (!empty($request['id'])) {
278
+			return new WP_Error('rest_invoice_exists', __('Cannot create existing item.', 'invoicing'), array('status' => 400));
279 279
 		}
280 280
 
281
-		$request->set_param( 'context', 'edit' );
281
+		$request->set_param('context', 'edit');
282 282
 
283 283
 		// Prepare the updated data.
284
-		$invoice_data = $this->prepare_item_for_database( $request );
284
+		$invoice_data = $this->prepare_item_for_database($request);
285 285
 
286
-		if ( is_wp_error( $invoice_data ) ) {
286
+		if (is_wp_error($invoice_data)) {
287 287
 			return $invoice_data;
288 288
 		}
289 289
 
290 290
 		// Try creating the invoice
291 291
 		$invoice_data['post_type']    = $this->post_type;
292
-		$invoice_data['private_note'] = __( 'Created via API.', 'invoicing' );
293
-        $invoice = wpinv_insert_invoice( $invoice_data, true );
292
+		$invoice_data['private_note'] = __('Created via API.', 'invoicing');
293
+        $invoice = wpinv_insert_invoice($invoice_data, true);
294 294
 
295
-		if ( is_wp_error( $invoice ) ) {
295
+		if (is_wp_error($invoice)) {
296 296
             return $invoice;
297 297
 		}
298 298
 
299 299
 		// Prepare the response
300
-		$response = $this->prepare_item_for_response( $invoice, $request );
300
+		$response = $this->prepare_item_for_response($invoice, $request);
301 301
 
302 302
 		/**
303 303
 		 * Fires after a single invoice is created or updated via the REST API.
@@ -308,7 +308,7 @@  discard block
 block discarded – undo
308 308
 		 * @param WP_REST_Request $request  Request object.
309 309
 		 * @param bool            $creating True when creating a post, false when updating.
310 310
 		 */
311
-		do_action( "wpinv_rest_insert_invoice", $invoice, $request, true );
311
+		do_action("wpinv_rest_insert_invoice", $invoice, $request, true);
312 312
 
313 313
 		/**
314 314
 		 * Filters the responses for creating single invoice requests.
@@ -320,9 +320,9 @@  discard block
 block discarded – undo
320 320
 		 * @param array           $invoice_data Invoice properties.
321 321
 		 * @param WP_REST_Request $request The request used.
322 322
 		 */
323
-        $response       = apply_filters( "wpinv_rest_create_invoice_response", $response, $request );
323
+        $response = apply_filters("wpinv_rest_create_invoice_response", $response, $request);
324 324
 
325
-        return rest_ensure_response( $response );
325
+        return rest_ensure_response($response);
326 326
 	}
327 327
 
328 328
 	/**
@@ -333,20 +333,20 @@  discard block
 block discarded – undo
333 333
 	 * @param WP_REST_Request $request Full details about the request.
334 334
 	 * @return true|WP_Error True if the request has access to update the item, WP_Error object otherwise.
335 335
 	 */
336
-	public function update_item_permissions_check( $request ) {
336
+	public function update_item_permissions_check($request) {
337 337
 
338 338
 		// Retrieve the invoice.
339
-		$invoice = $this->get_post( $request['id'] );
340
-		if ( is_wp_error( $invoice ) ) {
339
+		$invoice = $this->get_post($request['id']);
340
+		if (is_wp_error($invoice)) {
341 341
 			return $invoice;
342 342
 		}
343 343
 
344
-		$post_type = get_post_type_object( $this->post_type );
344
+		$post_type = get_post_type_object($this->post_type);
345 345
 
346
-		if ( ! current_user_can(  $post_type->cap->edit_post, $invoice->ID  ) ) {
346
+		if (!current_user_can($post_type->cap->edit_post, $invoice->ID)) {
347 347
 			return new WP_Error( 
348 348
                 'rest_cannot_edit', 
349
-                __( 'Sorry, you are not allowed to update this item.', 'invoicing' ), 
349
+                __('Sorry, you are not allowed to update this item.', 'invoicing'), 
350 350
                 array( 
351 351
                     'status' => rest_authorization_required_code(),
352 352
                 )
@@ -364,46 +364,46 @@  discard block
 block discarded – undo
364 364
 	 * @param WP_REST_Request $request Full details about the request.
365 365
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
366 366
 	 */
367
-	public function update_item( $request ) {
367
+	public function update_item($request) {
368 368
 		
369 369
 		// Ensure the invoice exists.
370
-        $valid_check = $this->get_post( $request['id'] );
370
+        $valid_check = $this->get_post($request['id']);
371 371
         
372 372
         // Abort early if it does not exist
373
-		if ( is_wp_error( $valid_check ) ) {
373
+		if (is_wp_error($valid_check)) {
374 374
 			return $valid_check;
375 375
 		}
376 376
 
377
-		$request->set_param( 'context', 'edit' );
377
+		$request->set_param('context', 'edit');
378 378
 
379 379
 		// Prepare the updated data.
380
-		$data_to_update = $this->prepare_item_for_database( $request );
380
+		$data_to_update = $this->prepare_item_for_database($request);
381 381
 
382
-		if ( is_wp_error( $data_to_update ) ) {
382
+		if (is_wp_error($data_to_update)) {
383 383
 			return $data_to_update;
384 384
 		}
385 385
 
386 386
 		// Abort if no invoice data is provided
387
-        if( empty( $data_to_update ) ) {
388
-            return new WP_Error( 'missing_data', __( 'An update request cannot be empty.', 'invoicing' ) );
387
+        if (empty($data_to_update)) {
388
+            return new WP_Error('missing_data', __('An update request cannot be empty.', 'invoicing'));
389 389
         }
390 390
 
391 391
 		// Include the invoice ID
392 392
 		$data_to_update['ID'] = $request['id'];
393 393
 
394 394
 		// Update the invoice
395
-		$updated_invoice = wpinv_update_invoice( $data_to_update, true );
395
+		$updated_invoice = wpinv_update_invoice($data_to_update, true);
396 396
 
397 397
 		// Incase the update operation failed...
398
-		if ( is_wp_error( $updated_invoice ) ) {
398
+		if (is_wp_error($updated_invoice)) {
399 399
 			return $updated_invoice;
400 400
 		}
401 401
 
402 402
 		// Prepare the response
403
-		$response = $this->prepare_item_for_response( $updated_invoice, $request );
403
+		$response = $this->prepare_item_for_response($updated_invoice, $request);
404 404
 
405 405
 		/** This action is documented in includes/class-wpinv-rest-invoice-controller.php */
406
-		do_action( "wpinv_rest_insert_invoice", $updated_invoice, $request, false );
406
+		do_action("wpinv_rest_insert_invoice", $updated_invoice, $request, false);
407 407
 
408 408
 		/**
409 409
 		 * Filters the responses for updating single invoice requests.
@@ -415,9 +415,9 @@  discard block
 block discarded – undo
415 415
 		 * @param array           $invoice_data Invoice properties.
416 416
 		 * @param WP_REST_Request $request The request used.
417 417
 		 */
418
-        $response       = apply_filters( "wpinv_rest_update_invoice_response", $response, $request );
418
+        $response = apply_filters("wpinv_rest_update_invoice_response", $response, $request);
419 419
 
420
-        return rest_ensure_response( $response );
420
+        return rest_ensure_response($response);
421 421
 	}
422 422
 
423 423
 	/**
@@ -428,22 +428,22 @@  discard block
 block discarded – undo
428 428
 	 * @param WP_REST_Request $request Full details about the request.
429 429
 	 * @return true|WP_Error True if the request has access to delete the invoice, WP_Error object otherwise.
430 430
 	 */
431
-	public function delete_item_permissions_check( $request ) {
431
+	public function delete_item_permissions_check($request) {
432 432
 
433 433
 		// Retrieve the invoice.
434
-		$invoice = $this->get_post( $request['id'] );
435
-		if ( is_wp_error( $invoice ) ) {
434
+		$invoice = $this->get_post($request['id']);
435
+		if (is_wp_error($invoice)) {
436 436
 			return $invoice;
437 437
 		}
438 438
 
439 439
 		// Ensure the current user can delete invoices
440
-		if ( wpinv_current_user_can_manage_invoicing() ||  current_user_can( 'delete_invoices', $request['id'] ) ) {
440
+		if (wpinv_current_user_can_manage_invoicing() || current_user_can('delete_invoices', $request['id'])) {
441 441
 			return true;
442 442
 		}
443 443
 
444 444
 		return new WP_Error( 
445 445
 			'rest_cannot_delete', 
446
-			__( 'Sorry, you are not allowed to delete this item.', 'invoicing' ), 
446
+			__('Sorry, you are not allowed to delete this item.', 'invoicing'), 
447 447
 			array( 
448 448
 				'status' => rest_authorization_required_code(),
449 449
 			)
@@ -458,31 +458,31 @@  discard block
 block discarded – undo
458 458
 	 * @param WP_REST_Request $request Full details about the request.
459 459
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
460 460
 	 */
461
-	public function delete_item( $request ) {
461
+	public function delete_item($request) {
462 462
 		
463 463
 		// Retrieve the invoice.
464
-		$invoice = $this->get_post( $request['id'] );
465
-		if ( is_wp_error( $invoice ) ) {
464
+		$invoice = $this->get_post($request['id']);
465
+		if (is_wp_error($invoice)) {
466 466
 			return $invoice;
467 467
 		}
468 468
 
469
-		$request->set_param( 'context', 'edit' );
469
+		$request->set_param('context', 'edit');
470 470
 
471 471
 		// Prepare the invoice id
472
-		$id    = $invoice->ID;
472
+		$id = $invoice->ID;
473 473
 
474 474
 		// Prepare the response
475
-		$response = $this->prepare_item_for_response( $invoice, $request );
475
+		$response = $this->prepare_item_for_response($invoice, $request);
476 476
 
477 477
 		// Check if the user wants to bypass the trash...
478 478
 		$force_delete = (bool) $request['force'];
479 479
 
480 480
 		// Try deleting the invoice.
481
-		$deleted = wp_delete_post( $id, $force_delete );
481
+		$deleted = wp_delete_post($id, $force_delete);
482 482
 
483 483
 		// Abort early if we can't delete the invoice.
484
-		if ( ! $deleted ) {
485
-			return new WP_Error( 'rest_cannot_delete', __( 'The item cannot be deleted.', 'invoicing' ), array( 'status' => 500 ) );
484
+		if (!$deleted) {
485
+			return new WP_Error('rest_cannot_delete', __('The item cannot be deleted.', 'invoicing'), array('status' => 500));
486 486
 		}
487 487
 
488 488
 		/**
@@ -494,7 +494,7 @@  discard block
 block discarded – undo
494 494
 		 * @param WPInv_Invoice    $invoice  The deleted or trashed invoice.
495 495
 		 * @param WP_REST_Request  $request  The request sent to the API.
496 496
 		 */
497
-		do_action( "wpinv_rest_delete_invoice", $invoice, $request );
497
+		do_action("wpinv_rest_delete_invoice", $invoice, $request);
498 498
 
499 499
 		return $response;
500 500
 
@@ -510,29 +510,29 @@  discard block
 block discarded – undo
510 510
 	 */
511 511
 	public function get_collection_params() {
512 512
         
513
-        $query_params               = array(
513
+        $query_params = array(
514 514
 
515 515
             // item status.
516 516
             'status'                => array(
517 517
                 'default'           => $this->get_post_statuses(),
518
-                'description'       => __( 'Limit result set to items assigned one or more statuses.', 'invoicing' ),
518
+                'description'       => __('Limit result set to items assigned one or more statuses.', 'invoicing'),
519 519
                 'type'              => 'array',
520 520
                 'items'             => array(
521 521
                     'enum'          => $this->get_post_statuses(),
522 522
                     'type'          => 'string',
523 523
                 ),
524
-                'sanitize_callback' => array( $this, 'sanitize_post_statuses' ),
524
+                'sanitize_callback' => array($this, 'sanitize_post_statuses'),
525 525
             ),
526 526
 
527 527
             // User.
528 528
             'user'                  => array(
529
-				'description'       => __( 'Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing' ),
529
+				'description'       => __('Limit result set to items for a specif user. Accepts a user ID, or comma-separated list of IDs', 'invoicing'),
530 530
 				'type'              => 'string',
531 531
 			),
532 532
 
533 533
 			// Exclude certain users
534 534
             'exclude_users'  	    => array(
535
-                'description' 		=> __( 'Exclude items from specific users.', 'invoicing' ),
535
+                'description' 		=> __('Exclude items from specific users.', 'invoicing'),
536 536
                 'type'        		=> 'array',
537 537
                 'items'       		=> array(
538 538
                     'type' => 'integer',
@@ -542,62 +542,62 @@  discard block
 block discarded – undo
542 542
 			
543 543
 			// Items before.
544 544
             'before_date'           => array(
545
-				'description'       => __( 'Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
545
+				'description'       => __('Limit result set to items created before a specific date. Accepts strtotime()-compatible string.', 'invoicing'),
546 546
 				'type'              => 'string',
547 547
 			),
548 548
 
549 549
             'meta_key'           => array(
550
-				'description'       => __( 'Filter items by custom field key.', 'invoicing' ),
550
+				'description'       => __('Filter items by custom field key.', 'invoicing'),
551 551
 				'type'              => 'string',
552 552
 			),
553 553
 
554 554
             'meta_compare_key'           => array(
555
-				'description'       => __( 'Comparison operator to test the `meta_key`.', 'invoicing' ),
555
+				'description'       => __('Comparison operator to test the `meta_key`.', 'invoicing'),
556 556
 				'type'              => 'string',
557 557
 				'default'              => '=',
558
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
558
+				'enum'        		=> array_map('trim', explode(',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE')),
559 559
 			),
560 560
 
561 561
             'meta_value'           => array(
562
-				'description'       => __( 'Filter items by custom field value.', 'invoicing' ),
562
+				'description'       => __('Filter items by custom field value.', 'invoicing'),
563 563
 				'type'              => 'string',
564 564
 			),
565 565
 
566 566
             'meta_compare'           => array(
567
-				'description'       => __( 'Comparison operator to test the `meta_value`.', 'invoicing' ),
567
+				'description'       => __('Comparison operator to test the `meta_value`.', 'invoicing'),
568 568
 				'type'              => 'string',
569 569
 				'default'              => '=',
570
-				'enum'        		=> array_map( 'trim', explode( ',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE' ) ),
570
+				'enum'        		=> array_map('trim', explode(',', '=, !=, >, >=, <, <=, LIKE NOT, LIKE, IN, NOT IN, BETWEEN, NOT BETWEEN, NOT EXISTS, REGEXP, NOT REGEXP, RLIKE')),
571 571
 			),
572 572
 
573 573
 			'meta_value_num'           => array(
574
-				'description'       => __( 'Filter items by a numeric custom field value.', 'invoicing' ),
574
+				'description'       => __('Filter items by a numeric custom field value.', 'invoicing'),
575 575
 				'type'              => 'integer',
576 576
 			),
577 577
 
578 578
 			// items after.
579 579
             'after_date'            => array(
580
-				'description'       => __( 'Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing' ),
580
+				'description'       => __('Limit result set to items created after a specific date. Accepts strtotime()-compatible string.', 'invoicing'),
581 581
 				'type'              => 'string',
582 582
             ),
583 583
             
584 584
             // Number of results per page
585 585
             'limit'                 => array(
586
-				'description'       => __( 'Number of items to fetch.', 'invoicing' ),
586
+				'description'       => __('Number of items to fetch.', 'invoicing'),
587 587
 				'type'              => 'integer',
588
-				'default'           => (int) get_option( 'posts_per_page' ),
588
+				'default'           => (int) get_option('posts_per_page'),
589 589
             ),
590 590
 
591 591
             // Pagination
592 592
             'page'     => array(
593
-				'description'       => __( 'Current page to fetch.', 'invoicing' ),
593
+				'description'       => __('Current page to fetch.', 'invoicing'),
594 594
 				'type'              => 'integer',
595 595
 				'default'           => 1,
596 596
             ),
597 597
 
598 598
             // limit to certain items
599 599
             'include'  => array(
600
-                'description' => __( 'Limit result set to specific IDs.', 'invoicing' ),
600
+                'description' => __('Limit result set to specific IDs.', 'invoicing'),
601 601
                 'type'        => 'array',
602 602
                 'items'       => array(
603 603
                     'type' => 'integer',
@@ -607,7 +607,7 @@  discard block
 block discarded – undo
607 607
 			
608 608
 			// Exclude certain items
609 609
             'exclude'  => array(
610
-                'description' => __( 'Ensure result set excludes specific IDs.', 'invoicing' ),
610
+                'description' => __('Ensure result set excludes specific IDs.', 'invoicing'),
611 611
                 'type'        => 'array',
612 612
                 'items'       => array(
613 613
                     'type' => 'integer',
@@ -617,7 +617,7 @@  discard block
 block discarded – undo
617 617
 
618 618
             // Order items by
619 619
             'orderby'  		  => array(
620
-                'description' => __( 'Sort retrieved items by parameter.', 'invoicing' ),
620
+                'description' => __('Sort retrieved items by parameter.', 'invoicing'),
621 621
                 'type'        => 'string',
622 622
                 'default'     => 'date',
623 623
                 'enum'        => array(
@@ -632,10 +632,10 @@  discard block
 block discarded – undo
632 632
 
633 633
             // How to order
634 634
             'order'    => array(
635
-                'description' => __( 'Designates ascending or descending order of ítems.', 'invoicing' ),
635
+                'description' => __('Designates ascending or descending order of ítems.', 'invoicing'),
636 636
                 'type'        => 'string',
637 637
                 'default'     => 'DESC',
638
-                'enum'        => array( 'ASC', 'DESC' ),
638
+                'enum'        => array('ASC', 'DESC'),
639 639
             ),
640 640
         );
641 641
 
@@ -647,7 +647,7 @@  discard block
 block discarded – undo
647 647
 		 *
648 648
 		 * @param array        $query_params JSON Schema-formatted collection parameters.
649 649
 		 */
650
-		return apply_filters( "wpinv_rest_invoices_collection_params", $query_params );
650
+		return apply_filters("wpinv_rest_invoices_collection_params", $query_params);
651 651
 	}
652 652
 	
653 653
 	/**
@@ -657,7 +657,7 @@  discard block
 block discarded – undo
657 657
 	 * @param WP_REST_Request $request Full details about the request.
658 658
 	 * @return array Request collection parameters.
659 659
 	 */
660
-	public function get_request_collection_params( $request ) {
660
+	public function get_request_collection_params($request) {
661 661
 		
662 662
 		// Retrieve the list of registered invoice query parameters.
663 663
 		$registered = $this->get_collection_params();
@@ -674,7 +674,7 @@  discard block
 block discarded – undo
674 674
             'meta_compare'          => '=',
675 675
 			'meta_value_num'        => null,
676 676
             'after_date'            => null,
677
-            'limit'                 => (int) get_option( 'posts_per_page' ),
677
+            'limit'                 => (int) get_option('posts_per_page'),
678 678
 			'page'     				=> 1,
679 679
 			'include'				=> array(),
680 680
             'exclude'  				=> array(),
@@ -683,9 +683,9 @@  discard block
 block discarded – undo
683 683
 		);
684 684
 
685 685
 		// Add any params from the requests.
686
-		foreach ( array_keys( $registered ) as $key ) {
687
-            if ( isset( $request[ $key] ) ) {
688
-                $args[ $key ] = $request[ $key];
686
+		foreach (array_keys($registered) as $key) {
687
+            if (isset($request[$key])) {
688
+                $args[$key] = $request[$key];
689 689
             }
690 690
         }
691 691
 		
@@ -698,7 +698,7 @@  discard block
 block discarded – undo
698 698
 		 * @param array           $args    Request query args.
699 699
 		 * @param WP_REST_Request $request Full details about the request.
700 700
 		 */
701
-		return apply_filters( "wpinv_rest_invoices_collection_request_params", $args, $request );
701
+		return apply_filters("wpinv_rest_invoices_collection_request_params", $args, $request);
702 702
 	}
703 703
 	
704 704
 	/**
@@ -709,7 +709,7 @@  discard block
 block discarded – undo
709 709
 	 * @param WP_REST_Request $request Full details about the request.
710 710
 	 * @return array WP_Query parameters.
711 711
 	 */
712
-	public function get_collection_wp_query_params( $args, $request ) {
712
+	public function get_collection_wp_query_params($args, $request) {
713 713
 		
714 714
 		// Prepare the parameters.
715 715
 		$wp_query_args = array(
@@ -726,35 +726,35 @@  discard block
 block discarded – undo
726 726
 			'meta_value_num'   => $args['meta_value_num'],
727 727
 			'post__in'         => $args['include'],
728 728
 			'post__in'         => $args['exclude'],
729
-			'date_query'       => array( array() ),
729
+			'date_query'       => array(array()),
730 730
 			'fields'           => 'ids',
731 731
 			'orderby'          => $args['orderby'],
732 732
 			'order'            => $args['order'],
733 733
 		);
734 734
 
735 735
 		// Only admins can view other user's invoices.
736
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
736
+		if (!wpinv_current_user_can_manage_invoicing()) {
737 737
 			$wp_query_args['author'] = get_current_user_id();
738 738
 		}
739 739
 
740 740
 		// No date specific params provided.
741
-		if ( empty( $args['before_date'] ) && empty( $args['after_date'] ) ) {
742
-			unset( $wp_query_args['date_query'] );
741
+		if (empty($args['before_date']) && empty($args['after_date'])) {
742
+			unset($wp_query_args['date_query']);
743 743
 		}
744 744
 
745
-		if ( ! empty( $args['before_date'] ) ) {
745
+		if (!empty($args['before_date'])) {
746 746
 			$wp_query_args['date_query'][0]['before'] = $args['before_date'];
747 747
 		}
748 748
 
749
-		if ( ! empty( $args['after_date'] ) ) {
749
+		if (!empty($args['after_date'])) {
750 750
 			$wp_query_args['date_query'][0]['after'] = $args['after_date'];
751 751
 		}
752 752
 
753 753
 		// Remove empty variables.
754
-		$wp_query_args = array_filter( $wp_query_args );
754
+		$wp_query_args = array_filter($wp_query_args);
755 755
 
756 756
 		// This can be zero.
757
-		if ( ! is_null( $args['meta_value_num'] ) ) {
757
+		if (!is_null($args['meta_value_num'])) {
758 758
 			$wp_query_args['meta_value_num'] = $args['meta_value_num'];
759 759
 		}
760 760
 		
@@ -768,7 +768,7 @@  discard block
 block discarded – undo
768 768
 		 * @param array           $wp_query_args Generated WP_Query args args.
769 769
 		 * @param WP_REST_Request $request       Full details about the request.
770 770
 		 */
771
-		return apply_filters( "wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request );
771
+		return apply_filters("wpinv_rest_invoices_collection_wp_query_params", $wp_query_args, $args, $request);
772 772
     }
773 773
     
774 774
     /**
@@ -779,7 +779,7 @@  discard block
 block discarded – undo
779 779
 	 * @param object|string $post_type Post type name or object.
780 780
 	 * @return bool Whether the post type is allowed in REST.
781 781
 	 */
782
-	protected function check_is_post_type_allowed( $post_type ) {
782
+	protected function check_is_post_type_allowed($post_type) {
783 783
 		return true;
784 784
 	}
785 785
 
@@ -791,49 +791,49 @@  discard block
 block discarded – undo
791 791
 	 * @param WP_REST_Request $request Request object.
792 792
 	 * @return array|WP_Error Invoice Properties or WP_Error.
793 793
 	 */
794
-	protected function prepare_item_for_database( $request ) {
794
+	protected function prepare_item_for_database($request) {
795 795
 		$prepared_invoice = new stdClass();
796 796
 
797 797
 		// Post ID.
798
-		if ( isset( $request['id'] ) ) {
799
-			$existing_invoice = $this->get_post( $request['id'] );
800
-			if ( is_wp_error( $existing_invoice ) ) {
798
+		if (isset($request['id'])) {
799
+			$existing_invoice = $this->get_post($request['id']);
800
+			if (is_wp_error($existing_invoice)) {
801 801
 				return $existing_invoice;
802 802
 			}
803 803
 
804
-			$prepared_invoice->ID 		  = $existing_invoice->ID;
804
+			$prepared_invoice->ID = $existing_invoice->ID;
805 805
 			$prepared_invoice->invoice_id = $existing_invoice->ID;
806 806
 		}
807 807
 
808 808
 		$schema = $this->get_item_schema();
809 809
 
810 810
 		// Invoice owner.
811
-		if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) {
811
+		if (!empty($schema['properties']['user_id']) && isset($request['user_id'])) {
812 812
 			$prepared_invoice->user_id = (int) $request['user_id'];
813 813
 		}
814 814
 
815 815
 		// Cart details.
816
-		if ( ! empty( $schema['properties']['cart_details'] ) && isset( $request['cart_details'] ) ) {
816
+		if (!empty($schema['properties']['cart_details']) && isset($request['cart_details'])) {
817 817
 			$prepared_invoice->cart_details = (array) $request['cart_details'];
818 818
 		}
819 819
 
820 820
 		// Invoice status.
821
-		if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) {
821
+		if (!empty($schema['properties']['status']) && isset($request['status'])) {
822 822
 
823
-			if ( in_array( $request['status'], $this->get_post_statuses(), true ) ) {
823
+			if (in_array($request['status'], $this->get_post_statuses(), true)) {
824 824
 				$prepared_invoice->status = $request['status'];
825 825
 			}
826 826
 
827 827
 		}
828 828
 
829 829
 		// User info
830
-		if ( ! empty( $schema['properties']['user_info'] ) && isset( $request['user_info'] ) ) {
830
+		if (!empty($schema['properties']['user_info']) && isset($request['user_info'])) {
831 831
 			$prepared_invoice->user_info = array();
832 832
 			$user_info = (array) $request['user_info'];
833 833
 
834
-			foreach( $user_info as $prop => $value ) {
834
+			foreach ($user_info as $prop => $value) {
835 835
 
836
-				if ( ! empty( $schema['properties']['user_info']['properties'][$prop] ) ) {
836
+				if (!empty($schema['properties']['user_info']['properties'][$prop])) {
837 837
 
838 838
 					$prepared_invoice->user_info[$prop] = $value;
839 839
 		
@@ -844,59 +844,59 @@  discard block
 block discarded – undo
844 844
 		}
845 845
 
846 846
 		// IP
847
-		if ( ! empty( $schema['properties']['ip'] ) && isset( $request['ip'] ) ) {
847
+		if (!empty($schema['properties']['ip']) && isset($request['ip'])) {
848 848
 			$prepared_invoice->ip = $request['ip'];
849 849
 		}
850 850
 
851 851
 		// Payment details
852 852
 		$prepared_invoice->payment_details = array();
853 853
 
854
-		if ( ! empty( $schema['properties']['gateway'] ) && isset( $request['gateway'] ) ) {
854
+		if (!empty($schema['properties']['gateway']) && isset($request['gateway'])) {
855 855
 			$prepared_invoice->payment_details['gateway'] = $request['gateway'];
856 856
 		}
857 857
 
858
-		if ( ! empty( $schema['properties']['gateway_title'] ) && isset( $request['gateway_title'] ) ) {
858
+		if (!empty($schema['properties']['gateway_title']) && isset($request['gateway_title'])) {
859 859
 			$prepared_invoice->payment_details['gateway_title'] = $request['gateway_title'];
860 860
 		}
861 861
 
862
-		if ( ! empty( $schema['properties']['currency'] ) && isset( $request['currency'] ) ) {
862
+		if (!empty($schema['properties']['currency']) && isset($request['currency'])) {
863 863
 			$prepared_invoice->payment_details['currency'] = $request['currency'];
864 864
 		}
865 865
 
866
-		if ( ! empty( $schema['properties']['transaction_id'] ) && isset( $request['transaction_id'] ) ) {
866
+		if (!empty($schema['properties']['transaction_id']) && isset($request['transaction_id'])) {
867 867
 			$prepared_invoice->payment_details['transaction_id'] = $request['transaction_id'];
868 868
 		}
869 869
 
870 870
 		// Dates
871
-		if ( ! empty( $schema['properties']['date'] ) && isset( $request['date'] ) ) {
872
-			$post_date = rest_get_date_with_gmt( $request['date'] );
871
+		if (!empty($schema['properties']['date']) && isset($request['date'])) {
872
+			$post_date = rest_get_date_with_gmt($request['date']);
873 873
 
874
-			if ( ! empty( $post_date ) ) {
874
+			if (!empty($post_date)) {
875 875
 				$prepared_invoice->post_date = $post_date[0];
876 876
 			}
877 877
 			
878 878
 		}
879 879
 
880
-		if ( ! empty( $schema['properties']['due_date'] ) && isset( $request['due_date'] ) ) {
881
-			$due_date = rest_get_date_with_gmt( $request['due_date'] );
880
+		if (!empty($schema['properties']['due_date']) && isset($request['due_date'])) {
881
+			$due_date = rest_get_date_with_gmt($request['due_date']);
882 882
 
883
-			if ( ! empty( $due_date ) ) {
883
+			if (!empty($due_date)) {
884 884
 				$prepared_invoice->due_date = $due_date[0];
885 885
 			}
886 886
 
887 887
 		}
888 888
 
889
-		if ( ! empty( $schema['properties']['valid_until'] ) && isset( $request['valid_until'] ) ) {
889
+		if (!empty($schema['properties']['valid_until']) && isset($request['valid_until'])) {
890 890
 
891
-			if ( ! empty( $request['valid_until'] ) ) {
892
-				$prepared_invoice->valid_until = gmdate( 'Y-m-d', strtotime( $request['valid_until'] ) );
891
+			if (!empty($request['valid_until'])) {
892
+				$prepared_invoice->valid_until = gmdate('Y-m-d', strtotime($request['valid_until']));
893 893
 			} else {
894 894
 				$prepared_invoice->valid_until = '';
895 895
 			}
896 896
 
897 897
 		}
898 898
 
899
-		$invoice_data = (array) wp_unslash( $prepared_invoice );
899
+		$invoice_data = (array) wp_unslash($prepared_invoice);
900 900
 
901 901
 		/**
902 902
 		 * Filters an invoice before it is inserted via the REST API.
@@ -906,7 +906,7 @@  discard block
 block discarded – undo
906 906
 		 * @param array        $invoice_data An array of invoice data
907 907
 		 * @param WP_REST_Request $request       Request object.
908 908
 		 */
909
-		return apply_filters( "wpinv_rest_pre_insert_invoice", $invoice_data, $request );
909
+		return apply_filters("wpinv_rest_pre_insert_invoice", $invoice_data, $request);
910 910
 
911 911
 	}
912 912
 
@@ -919,20 +919,20 @@  discard block
 block discarded – undo
919 919
 	 * @param WP_REST_Request $request Request object.
920 920
 	 * @return WP_REST_Response Response object.
921 921
 	 */
922
-	public function prepare_item_for_response( $invoice, $request ) {
922
+	public function prepare_item_for_response($invoice, $request) {
923 923
 
924
-		$GLOBALS['post'] = get_post( $invoice->ID );
924
+		$GLOBALS['post'] = get_post($invoice->ID);
925 925
 
926
-		setup_postdata( $invoice->ID );
926
+		setup_postdata($invoice->ID);
927 927
 
928 928
 		// Fetch the fields to include in this response.
929
-		$fields = $this->get_fields_for_response( $request );
929
+		$fields = $this->get_fields_for_response($request);
930 930
 
931 931
 		// Base fields for every invoice.
932 932
 		$data = array();
933 933
 
934 934
 		// Set up ID
935
-		if ( rest_is_field_included( 'id', $fields ) ) {
935
+		if (rest_is_field_included('id', $fields)) {
936 936
 			$data['id'] = $invoice->ID;
937 937
 		}
938 938
 
@@ -947,79 +947,79 @@  discard block
 block discarded – undo
947 947
 			'status', 'status_nicename', 'post_type'
948 948
 		);
949 949
 
950
-		foreach( $invoice_properties as $property ) {
950
+		foreach ($invoice_properties as $property) {
951 951
 
952
-			if ( rest_is_field_included( $property, $fields ) ) {
953
-				$data[$property] = $invoice->get( $property );
952
+			if (rest_is_field_included($property, $fields)) {
953
+				$data[$property] = $invoice->get($property);
954 954
 			}
955 955
 
956 956
 		}
957 957
 
958 958
 		// Valid until
959
-		if ( rest_is_field_included( 'valid_until', $fields ) && $this->post_type === 'wpi_quote' ) {
960
-			$data['valid_until'] = get_post_meta( $invoice->ID, 'wpinv_quote_valid_until', true );
959
+		if (rest_is_field_included('valid_until', $fields) && $this->post_type === 'wpi_quote') {
960
+			$data['valid_until'] = get_post_meta($invoice->ID, 'wpinv_quote_valid_until', true);
961 961
 		}
962 962
 
963 963
 		// Cart details
964
-		if ( rest_is_field_included( 'cart_details', $fields ) ) {
965
-			$data['cart_details'] = $invoice->get( 'cart_details' );
964
+		if (rest_is_field_included('cart_details', $fields)) {
965
+			$data['cart_details'] = $invoice->get('cart_details');
966 966
 		}
967 967
 
968 968
 		//Dates
969
-		$invoice_properties = array( 'date', 'due_date', 'completed_date' );
969
+		$invoice_properties = array('date', 'due_date', 'completed_date');
970 970
 
971
-		foreach( $invoice_properties as $property ) {
971
+		foreach ($invoice_properties as $property) {
972 972
 
973
-			if ( rest_is_field_included( $property, $fields ) ) {
974
-				$data[$property] = $this->prepare_date_response( '0000-00-00 00:00:00', $invoice->get( $property ) );
973
+			if (rest_is_field_included($property, $fields)) {
974
+				$data[$property] = $this->prepare_date_response('0000-00-00 00:00:00', $invoice->get($property));
975 975
 			}
976 976
 
977 977
 		}
978 978
 
979 979
 		// User id
980
-		if ( rest_is_field_included( 'user_id', $fields ) ) {
981
-			$data['user_id'] = (int) $invoice->get( 'user_id' );
980
+		if (rest_is_field_included('user_id', $fields)) {
981
+			$data['user_id'] = (int) $invoice->get('user_id');
982 982
 		}
983 983
 
984 984
 		// User info
985
-		$user_info = array( 'first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone' );
985
+		$user_info = array('first_name', 'last_name', 'company', 'vat_number', 'vat_rate', 'address', 'city', 'country', 'state', 'zip', 'phone');
986 986
 
987
-		foreach( $user_info as $property ) {
987
+		foreach ($user_info as $property) {
988 988
 
989
-			if ( rest_is_field_included( "user_info.$property", $fields ) ) {
990
-				$data['user_info'][$property] = $invoice->get( $property );
989
+			if (rest_is_field_included("user_info.$property", $fields)) {
990
+				$data['user_info'][$property] = $invoice->get($property);
991 991
 			}
992 992
 
993 993
 		}
994 994
 
995 995
 		// Slug
996
-		if ( rest_is_field_included( 'slug', $fields ) ) {
997
-			$data['slug'] = $invoice->get( 'post_name' );
996
+		if (rest_is_field_included('slug', $fields)) {
997
+			$data['slug'] = $invoice->get('post_name');
998 998
 		}
999 999
 
1000 1000
 		// View invoice link
1001
-		if ( rest_is_field_included( 'link', $fields ) ) {
1002
-			$data['link'] = esc_url( $invoice->get_view_url() );
1001
+		if (rest_is_field_included('link', $fields)) {
1002
+			$data['link'] = esc_url($invoice->get_view_url());
1003 1003
 		}
1004 1004
 
1005 1005
 
1006
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
1007
-		$data    = $this->add_additional_fields_to_object( $data, $request );
1008
-		$data    = $this->filter_response_by_context( $data, $context );
1006
+		$context = !empty($request['context']) ? $request['context'] : 'view';
1007
+		$data    = $this->add_additional_fields_to_object($data, $request);
1008
+		$data    = $this->filter_response_by_context($data, $context);
1009 1009
 
1010 1010
 		// Wrap the data in a response object.
1011
-		$response = rest_ensure_response( $data );
1011
+		$response = rest_ensure_response($data);
1012 1012
 
1013
-		$links = $this->prepare_links( $invoice );
1014
-		$response->add_links( $links );
1013
+		$links = $this->prepare_links($invoice);
1014
+		$response->add_links($links);
1015 1015
 
1016
-		if ( ! empty( $links['self']['href'] ) ) {
1017
-			$actions = $this->get_available_actions( $invoice, $request );
1016
+		if (!empty($links['self']['href'])) {
1017
+			$actions = $this->get_available_actions($invoice, $request);
1018 1018
 
1019 1019
 			$self = $links['self']['href'];
1020 1020
 
1021
-			foreach ( $actions as $rel ) {
1022
-				$response->add_link( $rel, $self );
1021
+			foreach ($actions as $rel) {
1022
+				$response->add_link($rel, $self);
1023 1023
 			}
1024 1024
 		}
1025 1025
 
@@ -1032,7 +1032,7 @@  discard block
 block discarded – undo
1032 1032
 		 * @param WPInv_Invoice    $invoice  The invoice object.
1033 1033
 		 * @param WP_REST_Request  $request  Request object.
1034 1034
 		 */
1035
-		return apply_filters( "wpinv_rest_prepare_invoice", $response, $invoice, $request );
1035
+		return apply_filters("wpinv_rest_prepare_invoice", $response, $invoice, $request);
1036 1036
 	}
1037 1037
 
1038 1038
 	/**
@@ -1045,57 +1045,57 @@  discard block
 block discarded – undo
1045 1045
 	 * @param WP_REST_Request $request Full details about the request.
1046 1046
 	 * @return array Fields to be included in the response.
1047 1047
 	 */
1048
-	public function get_fields_for_response( $request ) {
1048
+	public function get_fields_for_response($request) {
1049 1049
 		$schema     = $this->get_item_schema();
1050
-		$properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
1050
+		$properties = isset($schema['properties']) ? $schema['properties'] : array();
1051 1051
 
1052 1052
 		$additional_fields = $this->get_additional_fields();
1053
-		foreach ( $additional_fields as $field_name => $field_options ) {
1053
+		foreach ($additional_fields as $field_name => $field_options) {
1054 1054
 			// For back-compat, include any field with an empty schema
1055 1055
 			// because it won't be present in $this->get_item_schema().
1056
-			if ( is_null( $field_options['schema'] ) ) {
1057
-				$properties[ $field_name ] = $field_options;
1056
+			if (is_null($field_options['schema'])) {
1057
+				$properties[$field_name] = $field_options;
1058 1058
 			}
1059 1059
 		}
1060 1060
 
1061 1061
 		// Exclude fields that specify a different context than the request context.
1062 1062
 		$context = $request['context'];
1063
-		if ( $context ) {
1064
-			foreach ( $properties as $name => $options ) {
1065
-				if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
1066
-					unset( $properties[ $name ] );
1063
+		if ($context) {
1064
+			foreach ($properties as $name => $options) {
1065
+				if (!empty($options['context']) && !in_array($context, $options['context'], true)) {
1066
+					unset($properties[$name]);
1067 1067
 				}
1068 1068
 			}
1069 1069
 		}
1070 1070
 
1071
-		$fields = array_keys( $properties );
1071
+		$fields = array_keys($properties);
1072 1072
 
1073
-		if ( ! isset( $request['_fields'] ) ) {
1073
+		if (!isset($request['_fields'])) {
1074 1074
 			return $fields;
1075 1075
 		}
1076
-		$requested_fields = wpinv_parse_list( $request['_fields'] );
1077
-		if ( 0 === count( $requested_fields ) ) {
1076
+		$requested_fields = wpinv_parse_list($request['_fields']);
1077
+		if (0 === count($requested_fields)) {
1078 1078
 			return $fields;
1079 1079
 		}
1080 1080
 		// Trim off outside whitespace from the comma delimited list.
1081
-		$requested_fields = array_map( 'trim', $requested_fields );
1081
+		$requested_fields = array_map('trim', $requested_fields);
1082 1082
 		// Always persist 'id', because it can be needed for add_additional_fields_to_object().
1083
-		if ( in_array( 'id', $fields, true ) ) {
1083
+		if (in_array('id', $fields, true)) {
1084 1084
 			$requested_fields[] = 'id';
1085 1085
 		}
1086 1086
 		// Return the list of all requested fields which appear in the schema.
1087 1087
 		return array_reduce(
1088 1088
 			$requested_fields,
1089
-			function( $response_fields, $field ) use ( $fields ) {
1090
-				if ( in_array( $field, $fields, true ) ) {
1089
+			function($response_fields, $field) use ($fields) {
1090
+				if (in_array($field, $fields, true)) {
1091 1091
 					$response_fields[] = $field;
1092 1092
 					return $response_fields;
1093 1093
 				}
1094 1094
 				// Check for nested fields if $field is not a direct match.
1095
-				$nested_fields = explode( '.', $field );
1095
+				$nested_fields = explode('.', $field);
1096 1096
 				// A nested field is included so long as its top-level property is
1097 1097
 				// present in the schema.
1098
-				if ( in_array( $nested_fields[0], $fields, true ) ) {
1098
+				if (in_array($nested_fields[0], $fields, true)) {
1099 1099
 					$response_fields[] = $field;
1100 1100
 				}
1101 1101
 				return $response_fields;
@@ -1114,8 +1114,8 @@  discard block
 block discarded – undo
1114 1114
 	public function get_item_schema() {
1115 1115
 
1116 1116
 		// Maybe retrieve the schema from cache.
1117
-		if ( $this->schema ) {
1118
-			return $this->add_additional_fields_schema( $this->schema );
1117
+		if ($this->schema) {
1118
+			return $this->add_additional_fields_schema($this->schema);
1119 1119
 		}
1120 1120
 
1121 1121
 		$schema = array(
@@ -1127,266 +1127,266 @@  discard block
 block discarded – undo
1127 1127
 			'properties' 		  => array(
1128 1128
 
1129 1129
 				'title'			  => array(
1130
-					'description' => __( 'The title for the invoice.', 'invoicing' ),
1130
+					'description' => __('The title for the invoice.', 'invoicing'),
1131 1131
 					'type'        => 'string',
1132
-					'context'     => array( 'view', 'edit', 'embed' ),
1132
+					'context'     => array('view', 'edit', 'embed'),
1133 1133
 					'readonly'    => true,
1134 1134
 				),
1135 1135
 
1136 1136
 				'user_id'		  => array(
1137
-					'description' => __( 'The ID of the owner of the invoice.', 'invoicing' ),
1137
+					'description' => __('The ID of the owner of the invoice.', 'invoicing'),
1138 1138
 					'type'        => 'integer',
1139
-					'context'     => array( 'view', 'edit', 'embed' ),
1139
+					'context'     => array('view', 'edit', 'embed'),
1140 1140
 				),
1141 1141
 
1142 1142
 				'email'		  	  => array(
1143
-					'description' => __( 'The email of the owner of the invoice.', 'invoicing' ),
1143
+					'description' => __('The email of the owner of the invoice.', 'invoicing'),
1144 1144
 					'type'        => 'string',
1145
-					'context'     => array( 'view', 'edit', 'embed' ),
1145
+					'context'     => array('view', 'edit', 'embed'),
1146 1146
 					'readonly'    => true,
1147 1147
 				),
1148 1148
 
1149 1149
 				'ip'			  => array(
1150
-					'description' => __( 'The IP of the owner of the invoice.', 'invoicing' ),
1150
+					'description' => __('The IP of the owner of the invoice.', 'invoicing'),
1151 1151
 					'type'        => 'string',
1152
-					'context'     => array( 'view', 'edit', 'embed' ),
1152
+					'context'     => array('view', 'edit', 'embed'),
1153 1153
 				),
1154 1154
 
1155 1155
 				'user_info'       => array(
1156
-					'description' => __( 'Information about the owner of the invoice.', 'invoicing' ),
1156
+					'description' => __('Information about the owner of the invoice.', 'invoicing'),
1157 1157
 					'type'        => 'object',
1158
-					'context'     => array( 'view', 'edit', 'embed' ),
1158
+					'context'     => array('view', 'edit', 'embed'),
1159 1159
 					'properties'  => array(
1160 1160
 
1161 1161
 						'first_name'      => array(
1162
-							'description' => __( 'The first name of the owner of the invoice.', 'invoicing' ),
1162
+							'description' => __('The first name of the owner of the invoice.', 'invoicing'),
1163 1163
 							'type'        => 'string',
1164
-							'context'     => array( 'view', 'edit', 'embed' ),
1164
+							'context'     => array('view', 'edit', 'embed'),
1165 1165
 						),
1166 1166
 
1167 1167
 						'last_name'       => array(
1168
-							'description' => __( 'The last name of the owner of the invoice.', 'invoicing' ),
1168
+							'description' => __('The last name of the owner of the invoice.', 'invoicing'),
1169 1169
 							'type'        => 'string',
1170
-							'context'     => array( 'view', 'edit', 'embed' ),
1170
+							'context'     => array('view', 'edit', 'embed'),
1171 1171
 						),
1172 1172
 
1173 1173
 						'company'         => array(
1174
-							'description' => __( 'The company of the owner of the invoice.', 'invoicing' ),
1174
+							'description' => __('The company of the owner of the invoice.', 'invoicing'),
1175 1175
 							'type'        => 'string',
1176
-							'context'     => array( 'view', 'edit', 'embed' ),
1176
+							'context'     => array('view', 'edit', 'embed'),
1177 1177
 						),
1178 1178
 
1179 1179
 						'vat_number'      => array(
1180
-							'description' => __( 'The VAT number of the owner of the invoice.', 'invoicing' ),
1180
+							'description' => __('The VAT number of the owner of the invoice.', 'invoicing'),
1181 1181
 							'type'        => 'string',
1182
-							'context'     => array( 'view', 'edit', 'embed' ),
1182
+							'context'     => array('view', 'edit', 'embed'),
1183 1183
 						),
1184 1184
 
1185 1185
 						'vat_rate'        => array(
1186
-							'description' => __( 'The VAT rate applied on the invoice.', 'invoicing' ),
1186
+							'description' => __('The VAT rate applied on the invoice.', 'invoicing'),
1187 1187
 							'type'        => 'string',
1188
-							'context'     => array( 'view', 'edit', 'embed' ),
1188
+							'context'     => array('view', 'edit', 'embed'),
1189 1189
 						),
1190 1190
 
1191 1191
 						'address'        => array(
1192
-							'description' => __( 'The address of the invoice owner.', 'invoicing' ),
1192
+							'description' => __('The address of the invoice owner.', 'invoicing'),
1193 1193
 							'type'        => 'string',
1194
-							'context'     => array( 'view', 'edit', 'embed' ),
1194
+							'context'     => array('view', 'edit', 'embed'),
1195 1195
 						),
1196 1196
 
1197 1197
 						'city'            => array(
1198
-							'description' => __( 'The city of the invoice owner.', 'invoicing' ),
1198
+							'description' => __('The city of the invoice owner.', 'invoicing'),
1199 1199
 							'type'        => 'string',
1200
-							'context'     => array( 'view', 'edit', 'embed' ),
1200
+							'context'     => array('view', 'edit', 'embed'),
1201 1201
 						),
1202 1202
 
1203 1203
 						'country'         => array(
1204
-							'description' => __( 'The country of the invoice owner.', 'invoicing' ),
1204
+							'description' => __('The country of the invoice owner.', 'invoicing'),
1205 1205
 							'type'        => 'string',
1206
-							'context'     => array( 'view', 'edit', 'embed' ),
1206
+							'context'     => array('view', 'edit', 'embed'),
1207 1207
 						),
1208 1208
 
1209 1209
 						'state'           => array(
1210
-							'description' => __( 'The state of the invoice owner.', 'invoicing' ),
1210
+							'description' => __('The state of the invoice owner.', 'invoicing'),
1211 1211
 							'type'        => 'string',
1212
-							'context'     => array( 'view', 'edit', 'embed' ),
1212
+							'context'     => array('view', 'edit', 'embed'),
1213 1213
 						),
1214 1214
 
1215 1215
 						'zip'             => array(
1216
-							'description' => __( 'The zip code of the invoice owner.', 'invoicing' ),
1216
+							'description' => __('The zip code of the invoice owner.', 'invoicing'),
1217 1217
 							'type'        => 'string',
1218
-							'context'     => array( 'view', 'edit', 'embed' ),
1218
+							'context'     => array('view', 'edit', 'embed'),
1219 1219
 						),
1220 1220
 
1221 1221
 						'phone'             => array(
1222
-							'description' => __( 'The phone number of the invoice owner.', 'invoicing' ),
1222
+							'description' => __('The phone number of the invoice owner.', 'invoicing'),
1223 1223
 							'type'        => 'string',
1224
-							'context'     => array( 'view', 'edit', 'embed' ),
1224
+							'context'     => array('view', 'edit', 'embed'),
1225 1225
 						),
1226 1226
 					),
1227 1227
 				),
1228 1228
 
1229 1229
 				'id'           => array(
1230
-					'description' => __( 'Unique identifier for the invoice.', 'invoicing' ),
1230
+					'description' => __('Unique identifier for the invoice.', 'invoicing'),
1231 1231
 					'type'        => 'integer',
1232
-					'context'     => array( 'view', 'edit', 'embed' ),
1232
+					'context'     => array('view', 'edit', 'embed'),
1233 1233
 					'readonly'    => true,
1234 1234
 				),
1235 1235
 
1236 1236
 				'key'			  => array(
1237
-					'description' => __( 'A unique key for the invoice.', 'invoicing' ),
1237
+					'description' => __('A unique key for the invoice.', 'invoicing'),
1238 1238
 					'type'        => 'string',
1239
-					'context'     => array( 'view', 'edit', 'embed' ),
1239
+					'context'     => array('view', 'edit', 'embed'),
1240 1240
 					'readonly'    => true,
1241 1241
 				),
1242 1242
 
1243 1243
 				'number'		  => array(
1244
-					'description' => __( 'The invoice number.', 'invoicing' ),
1244
+					'description' => __('The invoice number.', 'invoicing'),
1245 1245
 					'type'        => 'string',
1246
-					'context'     => array( 'view', 'edit', 'embed' ),
1246
+					'context'     => array('view', 'edit', 'embed'),
1247 1247
 					'readonly'    => true,
1248 1248
 				),
1249 1249
 
1250 1250
 				'transaction_id'  => array(
1251
-					'description' => __( 'The transaction id of the invoice.', 'invoicing' ),
1251
+					'description' => __('The transaction id of the invoice.', 'invoicing'),
1252 1252
 					'type'        => 'string',
1253
-					'context'     => array( 'view', 'edit', 'embed' ),
1253
+					'context'     => array('view', 'edit', 'embed'),
1254 1254
 				),
1255 1255
 
1256 1256
 				'gateway'		  => array(
1257
-					'description' => __( 'The gateway used to process the invoice.', 'invoicing' ),
1257
+					'description' => __('The gateway used to process the invoice.', 'invoicing'),
1258 1258
 					'type'        => 'string',
1259
-					'context'     => array( 'view', 'edit', 'embed' ),
1259
+					'context'     => array('view', 'edit', 'embed'),
1260 1260
 				),
1261 1261
 
1262 1262
 				'gateway_title'	  => array(
1263
-					'description' => __( 'The title of the gateway used to process the invoice.', 'invoicing' ),
1263
+					'description' => __('The title of the gateway used to process the invoice.', 'invoicing'),
1264 1264
 					'type'        => 'string',
1265
-					'context'     => array( 'view', 'edit', 'embed' ),
1265
+					'context'     => array('view', 'edit', 'embed'),
1266 1266
 				),
1267 1267
 
1268 1268
 				'total'	  		  => array(
1269
-					'description' => __( 'The total amount of the invoice.', 'invoicing' ),
1269
+					'description' => __('The total amount of the invoice.', 'invoicing'),
1270 1270
 					'type'        => 'number',
1271
-					'context'     => array( 'view', 'edit', 'embed' ),
1271
+					'context'     => array('view', 'edit', 'embed'),
1272 1272
 					'readonly'    => true,
1273 1273
 				),
1274 1274
 
1275 1275
 				'discount'		  => array(
1276
-					'description' => __( 'The discount applied to the invoice.', 'invoicing' ),
1276
+					'description' => __('The discount applied to the invoice.', 'invoicing'),
1277 1277
 					'type'        => 'number',
1278
-					'context'     => array( 'view', 'edit', 'embed' ),
1278
+					'context'     => array('view', 'edit', 'embed'),
1279 1279
 					'readonly'    => true,
1280 1280
 				),
1281 1281
 
1282 1282
 				'discount_code'	  => array(
1283
-					'description' => __( 'The discount code applied to the invoice.', 'invoicing' ),
1283
+					'description' => __('The discount code applied to the invoice.', 'invoicing'),
1284 1284
 					'type'        => 'string',
1285
-					'context'     => array( 'view', 'edit', 'embed' ),
1285
+					'context'     => array('view', 'edit', 'embed'),
1286 1286
 					'readonly'    => true,
1287 1287
 				),
1288 1288
 
1289 1289
 				'tax'	  		  => array(
1290
-					'description' => __( 'The tax applied to the invoice.', 'invoicing' ),
1290
+					'description' => __('The tax applied to the invoice.', 'invoicing'),
1291 1291
 					'type'        => 'number',
1292
-					'context'     => array( 'view', 'edit', 'embed' ),
1292
+					'context'     => array('view', 'edit', 'embed'),
1293 1293
 					'readonly'    => true,
1294 1294
 				),
1295 1295
 
1296 1296
 				'fees_total'	  => array(
1297
-					'description' => __( 'The total fees applied to the invoice.', 'invoicing' ),
1297
+					'description' => __('The total fees applied to the invoice.', 'invoicing'),
1298 1298
 					'type'        => 'number',
1299
-					'context'     => array( 'view', 'edit', 'embed' ),
1299
+					'context'     => array('view', 'edit', 'embed'),
1300 1300
 					'readonly'    => true,
1301 1301
 				),
1302 1302
 
1303 1303
 				'subtotal'	  	  => array(
1304
-					'description' => __( 'The sub-total for the invoice.', 'invoicing' ),
1304
+					'description' => __('The sub-total for the invoice.', 'invoicing'),
1305 1305
 					'type'        => 'number',
1306
-					'context'     => array( 'view', 'edit', 'embed' ),
1306
+					'context'     => array('view', 'edit', 'embed'),
1307 1307
 					'readonly'    => true,
1308 1308
 				),
1309 1309
 
1310 1310
 				'currency'	  	  => array(
1311
-					'description' => __( 'The currency used to process the invoice.', 'invoicing' ),
1311
+					'description' => __('The currency used to process the invoice.', 'invoicing'),
1312 1312
 					'type'        => 'string',
1313
-					'context'     => array( 'view', 'edit', 'embed' ),
1313
+					'context'     => array('view', 'edit', 'embed'),
1314 1314
 				),
1315 1315
 
1316 1316
 				'cart_details'	  => array(
1317
-					'description' => __( 'The cart details for invoice.', 'invoicing' ),
1317
+					'description' => __('The cart details for invoice.', 'invoicing'),
1318 1318
 					'type'        => 'array',
1319
-					'context'     => array( 'view', 'edit', 'embed' ),
1319
+					'context'     => array('view', 'edit', 'embed'),
1320 1320
 					'required'	  => true,
1321 1321
 				),
1322 1322
 
1323 1323
 				'date'         => array(
1324
-					'description' => __( "The date the invoice was published, in the site's timezone.", 'invoicing' ),
1325
-					'type'        => array( 'string', 'null' ),
1324
+					'description' => __("The date the invoice was published, in the site's timezone.", 'invoicing'),
1325
+					'type'        => array('string', 'null'),
1326 1326
 					'format'      => 'date-time',
1327
-					'context'     => array( 'view', 'edit', 'embed' ),
1327
+					'context'     => array('view', 'edit', 'embed'),
1328 1328
 				),
1329 1329
 
1330 1330
 				'due_date'     => array(
1331
-					'description' => __( 'The due date for the invoice.', 'invoicing' ),
1332
-					'type'        => array( 'string', 'null' ),
1331
+					'description' => __('The due date for the invoice.', 'invoicing'),
1332
+					'type'        => array('string', 'null'),
1333 1333
 					'format'      => 'date-time',
1334
-					'context'     => array( 'view', 'edit', 'embed' ),
1334
+					'context'     => array('view', 'edit', 'embed'),
1335 1335
 				),
1336 1336
 
1337 1337
 				'completed_date'  => array(
1338
-					'description' => __( 'The completed date for the invoice.', 'invoicing' ),
1339
-					'type'        => array( 'string', 'null' ),
1338
+					'description' => __('The completed date for the invoice.', 'invoicing'),
1339
+					'type'        => array('string', 'null'),
1340 1340
 					'format'      => 'date-time',
1341
-					'context'     => array( 'view', 'edit', 'embed' ),
1341
+					'context'     => array('view', 'edit', 'embed'),
1342 1342
 					'readonly'    => true,
1343 1343
 				),
1344 1344
 				
1345 1345
 				'link'         => array(
1346
-					'description' => __( 'URL to the invoice.', 'invoicing' ),
1346
+					'description' => __('URL to the invoice.', 'invoicing'),
1347 1347
 					'type'        => 'string',
1348 1348
 					'format'      => 'uri',
1349
-					'context'     => array( 'view', 'edit', 'embed' ),
1349
+					'context'     => array('view', 'edit', 'embed'),
1350 1350
 					'readonly'    => true,
1351 1351
 				),
1352 1352
 
1353 1353
 				'mode'       	  => array(
1354
-					'description' => __( 'The mode used to process the invoice.', 'invoicing' ),
1354
+					'description' => __('The mode used to process the invoice.', 'invoicing'),
1355 1355
 					'type'        => 'string',
1356
-					'enum'        => array( 'live', 'test' ),
1357
-					'context'     => array( 'view', 'edit', 'embed' ),
1356
+					'enum'        => array('live', 'test'),
1357
+					'context'     => array('view', 'edit', 'embed'),
1358 1358
 					'readonly'    => true,
1359 1359
 				),
1360 1360
 
1361 1361
 				'slug'       	  => array(
1362
-					'description' => __( 'An alphanumeric identifier for the invoice.', 'invoicing' ),
1362
+					'description' => __('An alphanumeric identifier for the invoice.', 'invoicing'),
1363 1363
 					'type'        => 'string',
1364
-					'context'     => array( 'view', 'edit', 'embed' ),
1364
+					'context'     => array('view', 'edit', 'embed'),
1365 1365
 					'arg_options' => array(
1366
-						'sanitize_callback' => array( $this, 'sanitize_slug' ),
1366
+						'sanitize_callback' => array($this, 'sanitize_slug'),
1367 1367
 					),
1368 1368
 					'readonly'    => true,
1369 1369
 				),
1370 1370
 
1371 1371
 				'status'       	  => array(
1372
-					'description' => __( 'A named status for the invoice.', 'invoicing' ),
1372
+					'description' => __('A named status for the invoice.', 'invoicing'),
1373 1373
 					'type'        => 'string',
1374 1374
 					'enum'        => $this->get_post_statuses(),
1375
-					'context'     => array( 'view', 'edit' ),
1375
+					'context'     => array('view', 'edit'),
1376 1376
 					'default'	  => 'wpi-pending',
1377 1377
 				),
1378 1378
 
1379 1379
 				'status_nicename' => array(
1380
-					'description' => __( 'A human-readable status name for the invoice.', 'invoicing' ),
1380
+					'description' => __('A human-readable status name for the invoice.', 'invoicing'),
1381 1381
 					'type'        => 'string',
1382
-					'context'     => array( 'view', 'embed' ),
1382
+					'context'     => array('view', 'embed'),
1383 1383
 					'readonly'    => true,
1384 1384
 				),
1385 1385
 
1386 1386
 				'post_type'       => array(
1387
-					'description' => __( 'The post type for the invoice.', 'invoicing' ),
1387
+					'description' => __('The post type for the invoice.', 'invoicing'),
1388 1388
 					'type'        => 'string',
1389
-					'context'     => array( 'view' ),
1389
+					'context'     => array('view'),
1390 1390
 					'readonly'    => true,
1391 1391
 				),
1392 1392
 			),
@@ -1404,12 +1404,12 @@  discard block
 block discarded – undo
1404 1404
 		 *
1405 1405
 		 * @param array   $schema    The invoice schema.
1406 1406
 		 */
1407
-        $schema = apply_filters( "wpinv_rest_invoice_schema", $schema );
1407
+        $schema = apply_filters("wpinv_rest_invoice_schema", $schema);
1408 1408
 
1409 1409
 		// Cache the invoice schema.
1410 1410
 		$this->schema = $schema;
1411 1411
 		
1412
-		return $this->add_additional_fields_schema( $this->schema );
1412
+		return $this->add_additional_fields_schema($this->schema);
1413 1413
 	}
1414 1414
 
1415 1415
 	/**
@@ -1421,20 +1421,20 @@  discard block
 block discarded – undo
1421 1421
 	 */
1422 1422
 	protected function get_schema_links() {
1423 1423
 
1424
-		$href = rest_url( "{$this->namespace}/{$this->rest_base}/{id}" );
1424
+		$href = rest_url("{$this->namespace}/{$this->rest_base}/{id}");
1425 1425
 
1426 1426
 		$links = array();
1427 1427
 
1428 1428
 		$links[] = array(
1429 1429
 			'rel'          => 'https://api.w.org/action-publish',
1430
-			'title'        => __( 'The current user can mark this invoice as completed.', 'invoicing' ),
1430
+			'title'        => __('The current user can mark this invoice as completed.', 'invoicing'),
1431 1431
 			'href'         => $href,
1432 1432
 			'targetSchema' => array(
1433 1433
 				'type'       => 'object',
1434 1434
 				'properties' => array(
1435 1435
 					'status' => array(
1436 1436
 						'type' => 'string',
1437
-						'enum' => array( 'publish', 'wpi-renewal' ),
1437
+						'enum' => array('publish', 'wpi-renewal'),
1438 1438
 					),
1439 1439
 				),
1440 1440
 			),
@@ -1442,7 +1442,7 @@  discard block
 block discarded – undo
1442 1442
 
1443 1443
 		$links[] = array(
1444 1444
 			'rel'          => 'https://api.w.org/action-assign-author',
1445
-			'title'        => __( 'The current user can change the owner of this invoice.', 'invoicing' ),
1445
+			'title'        => __('The current user can change the owner of this invoice.', 'invoicing'),
1446 1446
 			'href'         => $href,
1447 1447
 			'targetSchema' => array(
1448 1448
 				'type'       => 'object',
@@ -1465,24 +1465,24 @@  discard block
 block discarded – undo
1465 1465
 	 * @param WPInv_Invoice $invoice Invoice Object.
1466 1466
 	 * @return array Links for the given invoice.
1467 1467
 	 */
1468
-	protected function prepare_links( $invoice ) {
1468
+	protected function prepare_links($invoice) {
1469 1469
 
1470 1470
 		// Prepare the base REST API endpoint for invoices.
1471
-		$base = sprintf( '%s/%s', $this->namespace, $this->rest_base );
1471
+		$base = sprintf('%s/%s', $this->namespace, $this->rest_base);
1472 1472
 
1473 1473
 		// Entity meta.
1474 1474
 		$links = array(
1475 1475
 			'self'       => array(
1476
-				'href' => rest_url( trailingslashit( $base ) . $invoice->ID ),
1476
+				'href' => rest_url(trailingslashit($base) . $invoice->ID),
1477 1477
 			),
1478 1478
 			'collection' => array(
1479
-				'href' => rest_url( $base ),
1479
+				'href' => rest_url($base),
1480 1480
 			),
1481 1481
 		);
1482 1482
 
1483
-		if ( ! empty( $invoice->user_id ) ) {
1483
+		if (!empty($invoice->user_id)) {
1484 1484
 			$links['user'] = array(
1485
-				'href'       => rest_url( 'wp/v2/users/' . $invoice->user_id ),
1485
+				'href'       => rest_url('wp/v2/users/' . $invoice->user_id),
1486 1486
 				'embeddable' => true,
1487 1487
 			);
1488 1488
 		}
@@ -1496,7 +1496,7 @@  discard block
 block discarded – undo
1496 1496
 		 *
1497 1497
 		 * @param array   $links    Rest links.
1498 1498
 		 */
1499
-		return apply_filters( "wpinv_rest_invoice_links", $links );
1499
+		return apply_filters("wpinv_rest_invoice_links", $links);
1500 1500
 
1501 1501
 	}
1502 1502
 
@@ -1509,24 +1509,24 @@  discard block
 block discarded – undo
1509 1509
 	 * @param WP_REST_Request $request Request object.
1510 1510
 	 * @return array List of link relations.
1511 1511
 	 */
1512
-	protected function get_available_actions( $invoice, $request ) {
1512
+	protected function get_available_actions($invoice, $request) {
1513 1513
 
1514
-		if ( 'edit' !== $request['context'] ) {
1514
+		if ('edit' !== $request['context']) {
1515 1515
 			return array();
1516 1516
 		}
1517 1517
 
1518 1518
 		$rels = array();
1519 1519
 
1520 1520
 		// Retrieve the post type object.
1521
-		$post_type = get_post_type_object( $invoice->post_type );
1521
+		$post_type = get_post_type_object($invoice->post_type);
1522 1522
 
1523 1523
 		// Mark invoice as completed.
1524
-		if ( current_user_can( $post_type->cap->publish_posts ) ) {
1524
+		if (current_user_can($post_type->cap->publish_posts)) {
1525 1525
 			$rels[] = 'https://api.w.org/action-publish';
1526 1526
 		}
1527 1527
 
1528 1528
 		// Change the owner of the invoice.
1529
-		if ( current_user_can( $post_type->cap->edit_others_posts ) ) {
1529
+		if (current_user_can($post_type->cap->edit_others_posts)) {
1530 1530
 			$rels[] = 'https://api.w.org/action-assign-author';
1531 1531
 		}
1532 1532
 
@@ -1539,7 +1539,7 @@  discard block
 block discarded – undo
1539 1539
 		 *
1540 1540
 		 * @param array   $rels    Available link relations.
1541 1541
 		 */
1542
-		return apply_filters( "wpinv_rest_invoice_link_relations", $rels );
1542
+		return apply_filters("wpinv_rest_invoice_link_relations", $rels);
1543 1543
 	}
1544 1544
 
1545 1545
 	/**
@@ -1552,8 +1552,8 @@  discard block
 block discarded – undo
1552 1552
 	 * @param string          $parameter Additional parameter to pass to validation.
1553 1553
 	 * @return array|WP_Error A list of valid statuses, otherwise WP_Error object.
1554 1554
 	 */
1555
-	public function sanitize_post_statuses( $statuses, $request, $parameter ) {
1556
-		return array_intersect( wp_parse_slug_list( $statuses ), $this->get_post_statuses() );
1555
+	public function sanitize_post_statuses($statuses, $request, $parameter) {
1556
+		return array_intersect(wp_parse_slug_list($statuses), $this->get_post_statuses());
1557 1557
 	}
1558 1558
 
1559 1559
 	/**
@@ -1564,7 +1564,7 @@  discard block
 block discarded – undo
1564 1564
 	 * @return array A list of registered item statuses.
1565 1565
 	 */
1566 1566
 	public function get_post_statuses() {
1567
-		return array_keys( wpinv_get_invoice_statuses( true, true ) );
1567
+		return array_keys(wpinv_get_invoice_statuses(true, true));
1568 1568
 	}
1569 1569
     
1570 1570
 }
1571 1571
\ No newline at end of file
Please login to merge, or discard this patch.
includes/class-wpinv-api.php 2 patches
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -58,14 +58,14 @@  discard block
 block discarded – undo
58 58
     }
59 59
 
60 60
 
61
-	/**
62
-	 * Registers routes
63
-	 *
61
+    /**
62
+     * Registers routes
63
+     *
64 64
      * @since 1.0.13
65
-	 */
66
-	public function register_rest_routes() {
65
+     */
66
+    public function register_rest_routes() {
67 67
 
68
-		// Invoices.
68
+        // Invoices.
69 69
         $this->invoices_controller->register_routes();
70 70
         
71 71
         // Items.
@@ -75,15 +75,15 @@  discard block
 block discarded – undo
75 75
         $this->discounts_controller->register_routes();
76 76
 
77 77
         /**
78
-		 * Fires when registering Invoicing REST routes.
79
-		 *
80
-		 *
81
-		 * @since 1.0.15
82
-		 *
83
-		 *
84
-		 * @param array           $invoice_data Invoice properties.
85
-		 * @param WP_REST_Request $request The request used.
86
-		 */
78
+         * Fires when registering Invoicing REST routes.
79
+         *
80
+         *
81
+         * @since 1.0.15
82
+         *
83
+         *
84
+         * @param array           $invoice_data Invoice properties.
85
+         * @param WP_REST_Request $request The request used.
86
+         */
87 87
         do_action( "wpinv_register_rest_routes", $this );
88 88
         
89 89
     }
Please login to merge, or discard this patch.
Spacing   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  */
8 8
  
9 9
 // MUST have WordPress.
10
-if ( !defined( 'WPINC' ) ) {
10
+if (!defined('WPINC')) {
11 11
     exit;
12 12
 }
13 13
 
@@ -19,7 +19,7 @@  discard block
 block discarded – undo
19 19
     /**
20 20
      * @param string A prefix for our REST routes
21 21
      */
22
-    public $api_namespace    = '';
22
+    public $api_namespace = '';
23 23
 
24 24
     /**
25 25
      * @param WPInv_REST_Invoice_Controller Invoices controller
@@ -42,19 +42,19 @@  discard block
 block discarded – undo
42 42
      * @since 1.0.13
43 43
      * Sets the API namespace and inits hooks
44 44
      */
45
-    public function __construct( $api_namespace = 'invoicing/v1' ) {
45
+    public function __construct($api_namespace = 'invoicing/v1') {
46 46
 
47 47
         // Include controllers and related files
48 48
         $this->includes();
49 49
 
50 50
         // Set up class variables
51
-        $this->api_namespace       = apply_filters( 'wpinv_rest_api_namespace', $api_namespace );
52
-        $this->invoices_controller = new WPInv_REST_Invoice_Controller( $this->api_namespace );
53
-        $this->items_controller    = new WPInv_REST_Items_Controller( $this->api_namespace );
54
-        $this->discounts_controller= new WPInv_REST_Discounts_Controller( $this->api_namespace );
51
+        $this->api_namespace       = apply_filters('wpinv_rest_api_namespace', $api_namespace);
52
+        $this->invoices_controller = new WPInv_REST_Invoice_Controller($this->api_namespace);
53
+        $this->items_controller    = new WPInv_REST_Items_Controller($this->api_namespace);
54
+        $this->discounts_controller = new WPInv_REST_Discounts_Controller($this->api_namespace);
55 55
 
56 56
         //Register REST routes
57
-        add_action( 'rest_api_init', array( $this, 'register_rest_routes' ) );
57
+        add_action('rest_api_init', array($this, 'register_rest_routes'));
58 58
     }
59 59
 
60 60
 
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
 		 * @param array           $invoice_data Invoice properties.
85 85
 		 * @param WP_REST_Request $request The request used.
86 86
 		 */
87
-        do_action( "wpinv_register_rest_routes", $this );
87
+        do_action("wpinv_register_rest_routes", $this);
88 88
         
89 89
     }
90 90
 
@@ -97,13 +97,13 @@  discard block
 block discarded – undo
97 97
     protected function includes() {
98 98
         
99 99
         // Invoices
100
-        require_once( WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-invoice-controller.php' );
100
+        require_once(WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-invoice-controller.php');
101 101
 
102 102
         // Items
103
-        require_once( WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-items-controller.php' );
103
+        require_once(WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-items-controller.php');
104 104
 
105 105
         // Discounts
106
-        require_once( WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-discounts-controller.php' );
106
+        require_once(WPINV_PLUGIN_DIR . 'includes/api/class-wpinv-rest-discounts-controller.php');
107 107
 
108 108
     }
109 109
     
Please login to merge, or discard this patch.
includes/wpinv-subscription.php 2 patches
Indentation   +456 added lines, -456 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
 
3 3
 // Exit if accessed directly
4 4
 if ( ! defined( 'ABSPATH' ) ) {
5
-	exit;
5
+    exit;
6 6
 }
7 7
 
8 8
 
@@ -13,183 +13,183 @@  discard block
 block discarded – undo
13 13
  */
14 14
 class WPInv_Subscription {
15 15
 
16
-	private $subs_db;
16
+    private $subs_db;
17
+
18
+    public $id                = 0;
19
+    public $customer_id       = 0;
20
+    public $period            = '';
21
+    public $initial_amount    = '';
22
+    public $recurring_amount  = '';
23
+    public $bill_times        = 0;
24
+    public $transaction_id    = '';
25
+    public $parent_payment_id = 0;
26
+    public $product_id        = 0;
27
+    public $created           = '0000-00-00 00:00:00';
28
+    public $expiration        = '0000-00-00 00:00:00';
29
+    public $trial_period      = '';
30
+    public $status            = 'pending';
31
+    public $profile_id        = '';
32
+    public $gateway           = '';
33
+    public $customer;
17 34
 
18
-	public $id                = 0;
19
-	public $customer_id       = 0;
20
-	public $period            = '';
21
-	public $initial_amount    = '';
22
-	public $recurring_amount  = '';
23
-	public $bill_times        = 0;
24
-	public $transaction_id    = '';
25
-	public $parent_payment_id = 0;
26
-	public $product_id        = 0;
27
-	public $created           = '0000-00-00 00:00:00';
28
-	public $expiration        = '0000-00-00 00:00:00';
29
-	public $trial_period      = '';
30
-	public $status            = 'pending';
31
-	public $profile_id        = '';
32
-	public $gateway           = '';
33
-	public $customer;
34
-
35
-	/**
36
-	 * Get us started
37
-	 *
38
-	 * @since  1.0.0
39
-	 * @return void
40
-	 */
41
-	function __construct( $_id_or_object = 0, $_by_profile_id = false ) {
35
+    /**
36
+     * Get us started
37
+     *
38
+     * @since  1.0.0
39
+     * @return void
40
+     */
41
+    function __construct( $_id_or_object = 0, $_by_profile_id = false ) {
42 42
 
43
-		$this->subs_db = new WPInv_Subscriptions_DB;
43
+        $this->subs_db = new WPInv_Subscriptions_DB;
44 44
 
45
-		if( $_by_profile_id ) {
45
+        if( $_by_profile_id ) {
46 46
 
47
-			$_sub = $this->subs_db->get_by( 'profile_id', $_id_or_object );
47
+            $_sub = $this->subs_db->get_by( 'profile_id', $_id_or_object );
48 48
 
49
-			if( empty( $_sub ) ) {
50
-				return false;
51
-			}
49
+            if( empty( $_sub ) ) {
50
+                return false;
51
+            }
52 52
 
53
-			$_id_or_object = $_sub;
53
+            $_id_or_object = $_sub;
54 54
 
55
-		}
55
+        }
56 56
 
57
-		return $this->setup_subscription( $_id_or_object );
58
-	}
57
+        return $this->setup_subscription( $_id_or_object );
58
+    }
59 59
 
60
-	/**
61
-	 * Setup the subscription object
62
-	 *
63
-	 * @since  1.0.0
64
-	 * @return void
65
-	 */
66
-	private function setup_subscription( $id_or_object = 0 ) {
60
+    /**
61
+     * Setup the subscription object
62
+     *
63
+     * @since  1.0.0
64
+     * @return void
65
+     */
66
+    private function setup_subscription( $id_or_object = 0 ) {
67 67
 
68
-		if( empty( $id_or_object ) ) {
69
-			return false;
70
-		}
68
+        if( empty( $id_or_object ) ) {
69
+            return false;
70
+        }
71 71
 
72
-		if( is_numeric( $id_or_object ) ) {
72
+        if( is_numeric( $id_or_object ) ) {
73 73
 
74
-			$sub = $this->subs_db->get( $id_or_object );
74
+            $sub = $this->subs_db->get( $id_or_object );
75 75
 
76
-		} elseif( is_object( $id_or_object ) ) {
76
+        } elseif( is_object( $id_or_object ) ) {
77 77
 
78
-			$sub = $id_or_object;
78
+            $sub = $id_or_object;
79 79
 
80
-		}
80
+        }
81 81
 
82
-		if( empty( $sub ) ) {
83
-			return false;
84
-		}
82
+        if( empty( $sub ) ) {
83
+            return false;
84
+        }
85 85
 
86
-		foreach( $sub as $key => $value ) {
87
-			$this->$key = $value;
88
-		}
86
+        foreach( $sub as $key => $value ) {
87
+            $this->$key = $value;
88
+        }
89 89
 
90
-		$this->customer = get_userdata( $this->customer_id );
91
-		$this->gateway  = wpinv_get_payment_gateway( $this->parent_payment_id );
90
+        $this->customer = get_userdata( $this->customer_id );
91
+        $this->gateway  = wpinv_get_payment_gateway( $this->parent_payment_id );
92 92
 
93
-		do_action( 'wpinv_recurring_setup_subscription', $this );
93
+        do_action( 'wpinv_recurring_setup_subscription', $this );
94 94
 
95
-		return $this;
96
-	}
95
+        return $this;
96
+    }
97 97
 
98
-	/**
99
-	 * Magic __get function to dispatch a call to retrieve a private property
100
-	 *
101
-	 * @since 1.0.0
102
-	 */
103
-	public function __get( $key ) {
98
+    /**
99
+     * Magic __get function to dispatch a call to retrieve a private property
100
+     *
101
+     * @since 1.0.0
102
+     */
103
+    public function __get( $key ) {
104 104
 
105
-		if( method_exists( $this, 'get_' . $key ) ) {
105
+        if( method_exists( $this, 'get_' . $key ) ) {
106 106
 
107
-			return call_user_func( array( $this, 'get_' . $key ) );
107
+            return call_user_func( array( $this, 'get_' . $key ) );
108 108
 
109
-		} else {
109
+        } else {
110 110
 
111
-			return new WP_Error( 'wpinv-subscription-invalid-property', sprintf( __( 'Can\'t get property %s', 'invoicing' ), $key ) );
111
+            return new WP_Error( 'wpinv-subscription-invalid-property', sprintf( __( 'Can\'t get property %s', 'invoicing' ), $key ) );
112 112
 
113
-		}
113
+        }
114 114
 
115
-	}
115
+    }
116 116
 
117
-	/**
118
-	 * Creates a subscription
119
-	 *
120
-	 * @since  1.0.0
121
-	 * @param  array  $data Array of attributes for a subscription
122
-	 * @return mixed  false if data isn't passed and class not instantiated for creation
123
-	 */
124
-	public function create( $data = array() ) {
117
+    /**
118
+     * Creates a subscription
119
+     *
120
+     * @since  1.0.0
121
+     * @param  array  $data Array of attributes for a subscription
122
+     * @return mixed  false if data isn't passed and class not instantiated for creation
123
+     */
124
+    public function create( $data = array() ) {
125 125
 
126
-		if ( $this->id != 0 ) {
127
-			return false;
128
-		}
126
+        if ( $this->id != 0 ) {
127
+            return false;
128
+        }
129 129
 
130
-		$defaults = array(
131
-			'customer_id'       => 0,
132
-			'frequency'         => '',
133
-			'period'            => '',
134
-			'initial_amount'    => '',
135
-			'recurring_amount'  => '',
136
-			'bill_times'        => 0,
137
-			'parent_payment_id' => 0,
138
-			'product_id'        => 0,
139
-			'created'           => '',
140
-			'expiration'        => '',
141
-			'status'            => '',
142
-			'profile_id'        => '',
143
-		);
130
+        $defaults = array(
131
+            'customer_id'       => 0,
132
+            'frequency'         => '',
133
+            'period'            => '',
134
+            'initial_amount'    => '',
135
+            'recurring_amount'  => '',
136
+            'bill_times'        => 0,
137
+            'parent_payment_id' => 0,
138
+            'product_id'        => 0,
139
+            'created'           => '',
140
+            'expiration'        => '',
141
+            'status'            => '',
142
+            'profile_id'        => '',
143
+        );
144 144
 
145
-		$args = wp_parse_args( $data, $defaults );
145
+        $args = wp_parse_args( $data, $defaults );
146 146
 
147
-		if( $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) {
147
+        if( $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) {
148 148
 
149
-			if( 'active' == $args['status'] || 'trialling' == $args['status'] ) {
149
+            if( 'active' == $args['status'] || 'trialling' == $args['status'] ) {
150 150
 
151
-				// Force an active subscription to expired if expiration date is in the past
152
-				$args['status'] = 'expired';
151
+                // Force an active subscription to expired if expiration date is in the past
152
+                $args['status'] = 'expired';
153 153
 
154
-			}
155
-		}
154
+            }
155
+        }
156 156
 
157
-		do_action( 'wpinv_subscription_pre_create', $args );
157
+        do_action( 'wpinv_subscription_pre_create', $args );
158 158
 
159
-		$id = $this->subs_db->insert( $args, 'subscription' );
159
+        $id = $this->subs_db->insert( $args, 'subscription' );
160 160
 
161
-		do_action( 'wpinv_subscription_post_create', $id, $args );
161
+        do_action( 'wpinv_subscription_post_create', $id, $args );
162 162
 
163
-		return $this->setup_subscription( $id );
163
+        return $this->setup_subscription( $id );
164 164
 
165
-	}
165
+    }
166 166
 
167
-	/**
168
-	 * Updates a subscription
169
-	 *
170
-	 * @since  1.0.0
171
-	 * @param  array $args Array of fields to update
172
-	 * @return bool
173
-	 */
174
-	public function update( $args = array() ) {
167
+    /**
168
+     * Updates a subscription
169
+     *
170
+     * @since  1.0.0
171
+     * @param  array $args Array of fields to update
172
+     * @return bool
173
+     */
174
+    public function update( $args = array() ) {
175 175
 
176
-		$ret = $this->subs_db->update( $this->id, $args );
176
+        $ret = $this->subs_db->update( $this->id, $args );
177 177
 
178
-		do_action( 'wpinv_recurring_update_subscription', $this->id, $args, $this );
178
+        do_action( 'wpinv_recurring_update_subscription', $this->id, $args, $this );
179 179
 
180
-		return $ret;
180
+        return $ret;
181 181
 
182
-	}
182
+    }
183 183
 
184
-	/**
185
-	 * Delete the subscription
186
-	 *
187
-	 * @since  1.0.0
188
-	 * @return bool
189
-	 */
190
-	public function delete() {
191
-		return $this->subs_db->delete( $this->id );
192
-	}
184
+    /**
185
+     * Delete the subscription
186
+     *
187
+     * @since  1.0.0
188
+     * @return bool
189
+     */
190
+    public function delete() {
191
+        return $this->subs_db->delete( $this->id );
192
+    }
193 193
 
194 194
     /**
195 195
      * Retrieves the parent payment ID
@@ -357,8 +357,8 @@  discard block
 block discarded – undo
357 357
             
358 358
             $invoice = wpinv_get_invoice( $invoice->ID );
359 359
 
360
-			// Send email notifications.
361
-			wpinv_completed_invoice_notification( $invoice->ID );
360
+            // Send email notifications.
361
+            wpinv_completed_invoice_notification( $invoice->ID );
362 362
 
363 363
             do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
364 364
             do_action( 'wpinv_recurring_record_payment', $invoice->ID, $this->parent_payment_id, $args['amount'], $args['transaction_id'] );
@@ -369,185 +369,185 @@  discard block
 block discarded – undo
369 369
         return false;
370 370
     }
371 371
 
372
-	/**
373
-	 * Retrieves the transaction ID from the subscription
374
-	 *
375
-	 * @since  1.0.0
376
-	 * @return bool
377
-	 */
378
-	public function get_transaction_id() {
372
+    /**
373
+     * Retrieves the transaction ID from the subscription
374
+     *
375
+     * @since  1.0.0
376
+     * @return bool
377
+     */
378
+    public function get_transaction_id() {
379 379
 
380
-		if( empty( $this->transaction_id ) ) {
380
+        if( empty( $this->transaction_id ) ) {
381 381
 
382
-			$txn_id = wpinv_get_payment_transaction_id( $this->parent_payment_id );
382
+            $txn_id = wpinv_get_payment_transaction_id( $this->parent_payment_id );
383 383
 
384
-			if( ! empty( $txn_id ) && (int) $this->parent_payment_id !== (int) $txn_id ) {
385
-				$this->set_transaction_id( $txn_id );
386
-			}
384
+            if( ! empty( $txn_id ) && (int) $this->parent_payment_id !== (int) $txn_id ) {
385
+                $this->set_transaction_id( $txn_id );
386
+            }
387 387
 
388
-		}
388
+        }
389 389
 
390
-		return $this->transaction_id;
390
+        return $this->transaction_id;
391 391
 
392
-	}
392
+    }
393 393
 
394
-	/**
395
-	 * Stores the transaction ID for the subscription purchase
396
-	 *
397
-	 * @since  1.0.0.4
398
-	 * @return bool
399
-	 */
400
-	public function set_transaction_id( $txn_id = '' ) {
401
-		$this->update( array( 'transaction_id' => $txn_id ) );
402
-		$this->transaction_id = $txn_id;
403
-	}
394
+    /**
395
+     * Stores the transaction ID for the subscription purchase
396
+     *
397
+     * @since  1.0.0.4
398
+     * @return bool
399
+     */
400
+    public function set_transaction_id( $txn_id = '' ) {
401
+        $this->update( array( 'transaction_id' => $txn_id ) );
402
+        $this->transaction_id = $txn_id;
403
+    }
404 404
 
405
-	/**
406
-	 * Renews a subscription
407
-	 *
408
-	 * @since  1.0.0
409
-	 * @return bool
410
-	 */
411
-	public function renew() {
405
+    /**
406
+     * Renews a subscription
407
+     *
408
+     * @since  1.0.0
409
+     * @return bool
410
+     */
411
+    public function renew() {
412 412
 
413
-		$expires = $this->get_expiration_time();
413
+        $expires = $this->get_expiration_time();
414 414
 
415 415
 
416
-		// Determine what date to use as the start for the new expiration calculation
417
-		if( $expires > current_time( 'timestamp' ) && $this->is_active() ) {
416
+        // Determine what date to use as the start for the new expiration calculation
417
+        if( $expires > current_time( 'timestamp' ) && $this->is_active() ) {
418 418
 
419
-			$base_date  = $expires;
419
+            $base_date  = $expires;
420 420
 
421
-		} else {
421
+        } else {
422 422
 
423
-			$base_date  = current_time( 'timestamp' );
423
+            $base_date  = current_time( 'timestamp' );
424 424
 
425
-		}
425
+        }
426 426
 
427
-		$last_day = wpinv_cal_days_in_month( CAL_GREGORIAN, date( 'n', $base_date ), date( 'Y', $base_date ) );
427
+        $last_day = wpinv_cal_days_in_month( CAL_GREGORIAN, date( 'n', $base_date ), date( 'Y', $base_date ) );
428 428
 
429 429
 
430
-		$frequency = isset($this->frequency) ? $this->frequency : 1;
431
-		$expiration = date( 'Y-m-d H:i:s', strtotime( '+' . $frequency . ' ' . $this->period  . ' 23:59:59', $base_date ) );
430
+        $frequency = isset($this->frequency) ? $this->frequency : 1;
431
+        $expiration = date( 'Y-m-d H:i:s', strtotime( '+' . $frequency . ' ' . $this->period  . ' 23:59:59', $base_date ) );
432 432
 
433
-		if( date( 'j', $base_date ) == $last_day && 'day' != $this->period ) {
434
-			$expiration = date( 'Y-m-d H:i:s', strtotime( $expiration . ' +2 days' ) );
435
-		}
433
+        if( date( 'j', $base_date ) == $last_day && 'day' != $this->period ) {
434
+            $expiration = date( 'Y-m-d H:i:s', strtotime( $expiration . ' +2 days' ) );
435
+        }
436 436
 
437
-		$expiration  = apply_filters( 'wpinv_subscription_renewal_expiration', $expiration, $this->id, $this );
437
+        $expiration  = apply_filters( 'wpinv_subscription_renewal_expiration', $expiration, $this->id, $this );
438 438
 
439
-		do_action( 'wpinv_subscription_pre_renew', $this->id, $expiration, $this );
439
+        do_action( 'wpinv_subscription_pre_renew', $this->id, $expiration, $this );
440 440
 
441
-		$this->status = 'active';
442
-		$times_billed = $this->get_times_billed();
441
+        $this->status = 'active';
442
+        $times_billed = $this->get_times_billed();
443 443
 
444
-		// Complete subscription if applicable
445
-		if ( $this->bill_times > 0 && $times_billed >= $this->bill_times ) {
446
-			$this->complete();
447
-			$this->status = 'completed';
448
-		}
444
+        // Complete subscription if applicable
445
+        if ( $this->bill_times > 0 && $times_billed >= $this->bill_times ) {
446
+            $this->complete();
447
+            $this->status = 'completed';
448
+        }
449 449
 
450
-		$args = array(
451
-			'expiration' => $expiration,
452
-			'status'     => $this->status,
453
-		);
450
+        $args = array(
451
+            'expiration' => $expiration,
452
+            'status'     => $this->status,
453
+        );
454 454
 
455 455
         $this->subs_db->update( $this->id, $args );
456 456
 
457
-		do_action( 'wpinv_subscription_post_renew', $this->id, $expiration, $this );
458
-		do_action( 'wpinv_recurring_set_subscription_status', $this->id, $this->status, $this );
457
+        do_action( 'wpinv_subscription_post_renew', $this->id, $expiration, $this );
458
+        do_action( 'wpinv_recurring_set_subscription_status', $this->id, $this->status, $this );
459 459
 
460
-	}
460
+    }
461 461
 
462
-	/**
463
-	 * Marks a subscription as completed
464
-	 *
465
-	 * Subscription is completed when the number of payments matches the billing_times field
466
-	 *
467
-	 * @since  1.0.0
468
-	 * @return void
469
-	 */
470
-	public function complete() {
462
+    /**
463
+     * Marks a subscription as completed
464
+     *
465
+     * Subscription is completed when the number of payments matches the billing_times field
466
+     *
467
+     * @since  1.0.0
468
+     * @return void
469
+     */
470
+    public function complete() {
471 471
 
472
-		// Only mark a subscription as complete if it's not already cancelled.
473
-		if ( 'cancelled' === $this->status ) {
474
-			return;
475
-		}
472
+        // Only mark a subscription as complete if it's not already cancelled.
473
+        if ( 'cancelled' === $this->status ) {
474
+            return;
475
+        }
476 476
 
477
-		$args = array(
478
-			'status' => 'completed'
479
-		);
477
+        $args = array(
478
+            'status' => 'completed'
479
+        );
480 480
 
481
-		if( $this->subs_db->update( $this->id, $args ) ) {
481
+        if( $this->subs_db->update( $this->id, $args ) ) {
482 482
 
483
-			$this->status = 'completed';
483
+            $this->status = 'completed';
484 484
 
485
-			do_action( 'wpinv_subscription_completed', $this->id, $this );
485
+            do_action( 'wpinv_subscription_completed', $this->id, $this );
486 486
 
487
-		}
487
+        }
488 488
 
489
-	}
489
+    }
490 490
 
491
-	/**
492
-	 * Marks a subscription as expired
493
-	 *
494
-	 * Subscription is completed when the billing times is reached
495
-	 *
496
-	 * @since  1.0.0
497
-	 * @param  $check_expiration bool True if expiration date should be checked with merchant processor before expiring
498
-	 * @return void
499
-	 */
500
-	public function expire( $check_expiration = false ) {
491
+    /**
492
+     * Marks a subscription as expired
493
+     *
494
+     * Subscription is completed when the billing times is reached
495
+     *
496
+     * @since  1.0.0
497
+     * @param  $check_expiration bool True if expiration date should be checked with merchant processor before expiring
498
+     * @return void
499
+     */
500
+    public function expire( $check_expiration = false ) {
501 501
 
502
-		$expiration = $this->expiration;
502
+        $expiration = $this->expiration;
503 503
 
504
-		if( $check_expiration ) {
504
+        if( $check_expiration ) {
505 505
 
506
-			// check_expiration() updates $this->expiration so compare to $expiration above
506
+            // check_expiration() updates $this->expiration so compare to $expiration above
507 507
 
508
-			if( $expiration < $this->get_expiration() && current_time( 'timestamp' ) < $this->get_expiration_time() ) {
508
+            if( $expiration < $this->get_expiration() && current_time( 'timestamp' ) < $this->get_expiration_time() ) {
509 509
 
510
-				return false; // Do not mark as expired since real expiration date is in the future
511
-			}
510
+                return false; // Do not mark as expired since real expiration date is in the future
511
+            }
512 512
 
513
-		}
513
+        }
514 514
 
515
-		$args = array(
516
-			'status' => 'expired'
517
-		);
515
+        $args = array(
516
+            'status' => 'expired'
517
+        );
518 518
 
519
-		if( $this->subs_db->update( $this->id, $args ) ) {
519
+        if( $this->subs_db->update( $this->id, $args ) ) {
520 520
 
521
-			$this->status = 'expired';
521
+            $this->status = 'expired';
522 522
 
523
-			do_action( 'wpinv_subscription_expired', $this->id, $this );
523
+            do_action( 'wpinv_subscription_expired', $this->id, $this );
524 524
 
525
-		}
525
+        }
526 526
 
527
-	}
527
+    }
528 528
 
529
-	/**
530
-	 * Marks a subscription as failing
531
-	 *
532
-	 * @since  2.4.2
533
-	 * @return void
534
-	 */
535
-	public function failing() {
529
+    /**
530
+     * Marks a subscription as failing
531
+     *
532
+     * @since  2.4.2
533
+     * @return void
534
+     */
535
+    public function failing() {
536 536
 
537
-		$args = array(
538
-			'status' => 'failing'
539
-		);
537
+        $args = array(
538
+            'status' => 'failing'
539
+        );
540 540
 
541
-		if( $this->subs_db->update( $this->id, $args ) ) {
541
+        if( $this->subs_db->update( $this->id, $args ) ) {
542 542
 
543
-			$this->status = 'failing';
543
+            $this->status = 'failing';
544 544
 
545
-			do_action( 'wpinv_subscription_failing', $this->id, $this );
545
+            do_action( 'wpinv_subscription_failing', $this->id, $this );
546 546
 
547 547
 
548
-		}
548
+        }
549 549
 
550
-	}
550
+    }
551 551
 
552 552
     /**
553 553
      * Marks a subscription as cancelled
@@ -581,22 +581,22 @@  discard block
 block discarded – undo
581 581
         }
582 582
     }
583 583
 
584
-	/**
585
-	 * Determines if subscription can be cancelled
586
-	 *
587
-	 * This method is filtered by payment gateways in order to return true on subscriptions
588
-	 * that can be cancelled with a profile ID through the merchant processor
589
-	 *
590
-	 * @since  1.0.0
591
-	 * @return bool
592
-	 */
593
-	public function can_cancel() {
584
+    /**
585
+     * Determines if subscription can be cancelled
586
+     *
587
+     * This method is filtered by payment gateways in order to return true on subscriptions
588
+     * that can be cancelled with a profile ID through the merchant processor
589
+     *
590
+     * @since  1.0.0
591
+     * @return bool
592
+     */
593
+    public function can_cancel() {
594 594
         $ret = false;
595
-	    if( $this->gateway === 'manual' || in_array( $this->status, $this->get_cancellable_statuses() ) ) {
595
+        if( $this->gateway === 'manual' || in_array( $this->status, $this->get_cancellable_statuses() ) ) {
596 596
             $ret = true;
597 597
         }
598
-		return apply_filters( 'wpinv_subscription_can_cancel', $ret, $this );
599
-	}
598
+        return apply_filters( 'wpinv_subscription_can_cancel', $ret, $this );
599
+    }
600 600
 
601 601
     /**
602 602
      * Returns an array of subscription statuses that can be cancelled
@@ -609,197 +609,197 @@  discard block
 block discarded – undo
609 609
         return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) );
610 610
     }
611 611
 
612
-	/**
613
-	 * Retrieves the URL to cancel subscription
614
-	 *
615
-	 * @since  1.0.0
616
-	 * @return string
617
-	 */
618
-	public function get_cancel_url() {
612
+    /**
613
+     * Retrieves the URL to cancel subscription
614
+     *
615
+     * @since  1.0.0
616
+     * @return string
617
+     */
618
+    public function get_cancel_url() {
619 619
 
620
-		$url = wp_nonce_url( add_query_arg( array( 'wpinv_action' => 'cancel_subscription', 'sub_id' => $this->id ) ), 'wpinv-recurring-cancel' );
620
+        $url = wp_nonce_url( add_query_arg( array( 'wpinv_action' => 'cancel_subscription', 'sub_id' => $this->id ) ), 'wpinv-recurring-cancel' );
621 621
 
622
-		return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
623
-	}
622
+        return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
623
+    }
624 624
 
625
-	/**
626
-	 * Determines if subscription can be manually renewed
627
-	 *
628
-	 * This method is filtered by payment gateways in order to return true on subscriptions
629
-	 * that can be renewed manually
630
-	 *
631
-	 * @since  2.5
632
-	 * @return bool
633
-	 */
634
-	public function can_renew() {
625
+    /**
626
+     * Determines if subscription can be manually renewed
627
+     *
628
+     * This method is filtered by payment gateways in order to return true on subscriptions
629
+     * that can be renewed manually
630
+     *
631
+     * @since  2.5
632
+     * @return bool
633
+     */
634
+    public function can_renew() {
635 635
 
636
-		return apply_filters( 'wpinv_subscription_can_renew', true, $this );
637
-	}
638
-
639
-	/**
640
-	 * Retrieves the URL to renew a subscription
641
-	 *
642
-	 * @since  2.5
643
-	 * @return string
644
-	 */
645
-	public function get_renew_url() {
646
-
647
-		$url = wp_nonce_url( add_query_arg( array( 'wpinv_action' => 'renew_subscription', 'sub_id' => $this->id ) ), 'wpinv-recurring-renew' );
648
-
649
-		return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
650
-	}
651
-
652
-	/**
653
-	 * Determines if subscription can have their payment method updated
654
-	 *
655
-	 * @since  1.0.0
656
-	 * @return bool
657
-	 */
658
-	public function can_update() {
659
-		return apply_filters( 'wpinv_subscription_can_update', false, $this );
660
-	}
661
-
662
-	/**
663
-	 * Retrieves the URL to update subscription
664
-	 *
665
-	 * @since  1.0.0
666
-	 * @return void
667
-	 */
668
-	public function get_update_url() {
669
-
670
-		$url = add_query_arg( array( 'action' => 'update', 'subscription_id' => $this->id ) );
671
-
672
-		return apply_filters( 'wpinv_subscription_update_url', $url, $this );
673
-	}
674
-
675
-	/**
676
-	 * Determines if subscription is active
677
-	 *
678
-	 * @since  1.0.0
679
-	 * @return void
680
-	 */
681
-	public function is_active() {
682
-
683
-		$ret = false;
684
-
685
-		if( ! $this->is_expired() && ( $this->status == 'active' || $this->status == 'cancelled' || $this->status == 'trialling' ) ) {
686
-			$ret = true;
687
-		}
688
-
689
-		return apply_filters( 'wpinv_subscription_is_active', $ret, $this->id, $this );
690
-
691
-	}
692
-
693
-	/**
694
-	 * Determines if subscription is expired
695
-	 *
696
-	 * @since  1.0.0
697
-	 * @return void
698
-	 */
699
-	public function is_expired() {
700
-
701
-		$ret = false;
702
-
703
-		if ( $this->status == 'expired' ) {
704
-
705
-			$ret = true;
706
-
707
-		} elseif( 'active' === $this->status || 'cancelled' === $this->status || $this->status == 'trialling'  ) {
708
-
709
-			$ret        = false;
710
-			$expiration = $this->get_expiration_time();
711
-
712
-			if( $expiration && strtotime( 'NOW', current_time( 'timestamp' ) ) > $expiration ) {
713
-				$ret = true;
714
-
715
-				if ( 'active' === $this->status || $this->status == 'trialling'  ) {
716
-					$this->expire();
717
-				}
718
-			}
719
-
720
-		}
721
-
722
-		return apply_filters( 'wpinv_subscription_is_expired', $ret, $this->id, $this );
723
-
724
-	}
725
-
726
-	/**
727
-	 * Retrieves the expiration date
728
-	 *
729
-	 * @since  1.0.0
730
-	 * @return string
731
-	 */
732
-	public function get_expiration() {
733
-		return $this->expiration;
734
-	}
735
-
736
-	/**
737
-	 * Retrieves the expiration date in a timestamp
738
-	 *
739
-	 * @since  1.0.0
740
-	 * @return int
741
-	 */
742
-	public function get_expiration_time() {
743
-		return strtotime( $this->expiration, current_time( 'timestamp' ) );
744
-	}
745
-
746
-	/**
747
-	 * Retrieves the subscription status
748
-	 *
749
-	 * @since  1.0.0
750
-	 * @return int
751
-	 */
752
-	public function get_status() {
753
-
754
-		// Monitor for page load delays on pages with large subscription lists (IE: Subscriptions table in admin)
755
-		$this->is_expired();
756
-		return $this->status;
757
-	}
758
-
759
-	/**
760
-	 * Retrieves the subscription status label
761
-	 *
762
-	 * @since  1.0.0
763
-	 * @return int
764
-	 */
765
-	public function get_status_label() {
766
-
767
-		switch( $this->get_status() ) {
768
-			case 'active' :
769
-				$status = __( 'Active', 'invoicing' );
770
-				break;
771
-
772
-			case 'cancelled' :
773
-				$status = __( 'Cancelled', 'invoicing' );
774
-				break;
775
-
776
-			case 'expired' :
777
-				$status = __( 'Expired', 'invoicing' );
778
-				break;
779
-
780
-			case 'pending' :
781
-				$status = __( 'Pending', 'invoicing' );
782
-				break;
783
-
784
-			case 'failing' :
785
-				$status = __( 'Failing', 'invoicing' );
786
-				break;
787
-
788
-			case 'trialling' :
789
-				$status = __( 'Trialling', 'invoicing' );
790
-				break;
791
-
792
-			case 'completed' :
793
-				$status = __( 'Completed', 'invoicing' );
794
-				break;
795
-
796
-			default:
797
-				$status = ucfirst( $this->get_status() );
798
-				break;
799
-		}
800
-
801
-		return $status;
802
-	}
636
+        return apply_filters( 'wpinv_subscription_can_renew', true, $this );
637
+    }
638
+
639
+    /**
640
+     * Retrieves the URL to renew a subscription
641
+     *
642
+     * @since  2.5
643
+     * @return string
644
+     */
645
+    public function get_renew_url() {
646
+
647
+        $url = wp_nonce_url( add_query_arg( array( 'wpinv_action' => 'renew_subscription', 'sub_id' => $this->id ) ), 'wpinv-recurring-renew' );
648
+
649
+        return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
650
+    }
651
+
652
+    /**
653
+     * Determines if subscription can have their payment method updated
654
+     *
655
+     * @since  1.0.0
656
+     * @return bool
657
+     */
658
+    public function can_update() {
659
+        return apply_filters( 'wpinv_subscription_can_update', false, $this );
660
+    }
661
+
662
+    /**
663
+     * Retrieves the URL to update subscription
664
+     *
665
+     * @since  1.0.0
666
+     * @return void
667
+     */
668
+    public function get_update_url() {
669
+
670
+        $url = add_query_arg( array( 'action' => 'update', 'subscription_id' => $this->id ) );
671
+
672
+        return apply_filters( 'wpinv_subscription_update_url', $url, $this );
673
+    }
674
+
675
+    /**
676
+     * Determines if subscription is active
677
+     *
678
+     * @since  1.0.0
679
+     * @return void
680
+     */
681
+    public function is_active() {
682
+
683
+        $ret = false;
684
+
685
+        if( ! $this->is_expired() && ( $this->status == 'active' || $this->status == 'cancelled' || $this->status == 'trialling' ) ) {
686
+            $ret = true;
687
+        }
688
+
689
+        return apply_filters( 'wpinv_subscription_is_active', $ret, $this->id, $this );
690
+
691
+    }
692
+
693
+    /**
694
+     * Determines if subscription is expired
695
+     *
696
+     * @since  1.0.0
697
+     * @return void
698
+     */
699
+    public function is_expired() {
700
+
701
+        $ret = false;
702
+
703
+        if ( $this->status == 'expired' ) {
704
+
705
+            $ret = true;
706
+
707
+        } elseif( 'active' === $this->status || 'cancelled' === $this->status || $this->status == 'trialling'  ) {
708
+
709
+            $ret        = false;
710
+            $expiration = $this->get_expiration_time();
711
+
712
+            if( $expiration && strtotime( 'NOW', current_time( 'timestamp' ) ) > $expiration ) {
713
+                $ret = true;
714
+
715
+                if ( 'active' === $this->status || $this->status == 'trialling'  ) {
716
+                    $this->expire();
717
+                }
718
+            }
719
+
720
+        }
721
+
722
+        return apply_filters( 'wpinv_subscription_is_expired', $ret, $this->id, $this );
723
+
724
+    }
725
+
726
+    /**
727
+     * Retrieves the expiration date
728
+     *
729
+     * @since  1.0.0
730
+     * @return string
731
+     */
732
+    public function get_expiration() {
733
+        return $this->expiration;
734
+    }
735
+
736
+    /**
737
+     * Retrieves the expiration date in a timestamp
738
+     *
739
+     * @since  1.0.0
740
+     * @return int
741
+     */
742
+    public function get_expiration_time() {
743
+        return strtotime( $this->expiration, current_time( 'timestamp' ) );
744
+    }
745
+
746
+    /**
747
+     * Retrieves the subscription status
748
+     *
749
+     * @since  1.0.0
750
+     * @return int
751
+     */
752
+    public function get_status() {
753
+
754
+        // Monitor for page load delays on pages with large subscription lists (IE: Subscriptions table in admin)
755
+        $this->is_expired();
756
+        return $this->status;
757
+    }
758
+
759
+    /**
760
+     * Retrieves the subscription status label
761
+     *
762
+     * @since  1.0.0
763
+     * @return int
764
+     */
765
+    public function get_status_label() {
766
+
767
+        switch( $this->get_status() ) {
768
+            case 'active' :
769
+                $status = __( 'Active', 'invoicing' );
770
+                break;
771
+
772
+            case 'cancelled' :
773
+                $status = __( 'Cancelled', 'invoicing' );
774
+                break;
775
+
776
+            case 'expired' :
777
+                $status = __( 'Expired', 'invoicing' );
778
+                break;
779
+
780
+            case 'pending' :
781
+                $status = __( 'Pending', 'invoicing' );
782
+                break;
783
+
784
+            case 'failing' :
785
+                $status = __( 'Failing', 'invoicing' );
786
+                break;
787
+
788
+            case 'trialling' :
789
+                $status = __( 'Trialling', 'invoicing' );
790
+                break;
791
+
792
+            case 'completed' :
793
+                $status = __( 'Completed', 'invoicing' );
794
+                break;
795
+
796
+            default:
797
+                $status = ucfirst( $this->get_status() );
798
+                break;
799
+        }
800
+
801
+        return $status;
802
+    }
803 803
 
804 804
     /**
805 805
      * Retrieves the subscription status label
Please login to merge, or discard this patch.
Spacing   +168 added lines, -168 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 // Exit if accessed directly
4
-if ( ! defined( 'ABSPATH' ) ) {
4
+if (!defined('ABSPATH')) {
5 5
 	exit;
6 6
 }
7 7
 
@@ -38,15 +38,15 @@  discard block
 block discarded – undo
38 38
 	 * @since  1.0.0
39 39
 	 * @return void
40 40
 	 */
41
-	function __construct( $_id_or_object = 0, $_by_profile_id = false ) {
41
+	function __construct($_id_or_object = 0, $_by_profile_id = false) {
42 42
 
43 43
 		$this->subs_db = new WPInv_Subscriptions_DB;
44 44
 
45
-		if( $_by_profile_id ) {
45
+		if ($_by_profile_id) {
46 46
 
47
-			$_sub = $this->subs_db->get_by( 'profile_id', $_id_or_object );
47
+			$_sub = $this->subs_db->get_by('profile_id', $_id_or_object);
48 48
 
49
-			if( empty( $_sub ) ) {
49
+			if (empty($_sub)) {
50 50
 				return false;
51 51
 			}
52 52
 
@@ -54,7 +54,7 @@  discard block
 block discarded – undo
54 54
 
55 55
 		}
56 56
 
57
-		return $this->setup_subscription( $_id_or_object );
57
+		return $this->setup_subscription($_id_or_object);
58 58
 	}
59 59
 
60 60
 	/**
@@ -63,34 +63,34 @@  discard block
 block discarded – undo
63 63
 	 * @since  1.0.0
64 64
 	 * @return void
65 65
 	 */
66
-	private function setup_subscription( $id_or_object = 0 ) {
66
+	private function setup_subscription($id_or_object = 0) {
67 67
 
68
-		if( empty( $id_or_object ) ) {
68
+		if (empty($id_or_object)) {
69 69
 			return false;
70 70
 		}
71 71
 
72
-		if( is_numeric( $id_or_object ) ) {
72
+		if (is_numeric($id_or_object)) {
73 73
 
74
-			$sub = $this->subs_db->get( $id_or_object );
74
+			$sub = $this->subs_db->get($id_or_object);
75 75
 
76
-		} elseif( is_object( $id_or_object ) ) {
76
+		} elseif (is_object($id_or_object)) {
77 77
 
78 78
 			$sub = $id_or_object;
79 79
 
80 80
 		}
81 81
 
82
-		if( empty( $sub ) ) {
82
+		if (empty($sub)) {
83 83
 			return false;
84 84
 		}
85 85
 
86
-		foreach( $sub as $key => $value ) {
86
+		foreach ($sub as $key => $value) {
87 87
 			$this->$key = $value;
88 88
 		}
89 89
 
90
-		$this->customer = get_userdata( $this->customer_id );
91
-		$this->gateway  = wpinv_get_payment_gateway( $this->parent_payment_id );
90
+		$this->customer = get_userdata($this->customer_id);
91
+		$this->gateway  = wpinv_get_payment_gateway($this->parent_payment_id);
92 92
 
93
-		do_action( 'wpinv_recurring_setup_subscription', $this );
93
+		do_action('wpinv_recurring_setup_subscription', $this);
94 94
 
95 95
 		return $this;
96 96
 	}
@@ -100,15 +100,15 @@  discard block
 block discarded – undo
100 100
 	 *
101 101
 	 * @since 1.0.0
102 102
 	 */
103
-	public function __get( $key ) {
103
+	public function __get($key) {
104 104
 
105
-		if( method_exists( $this, 'get_' . $key ) ) {
105
+		if (method_exists($this, 'get_' . $key)) {
106 106
 
107
-			return call_user_func( array( $this, 'get_' . $key ) );
107
+			return call_user_func(array($this, 'get_' . $key));
108 108
 
109 109
 		} else {
110 110
 
111
-			return new WP_Error( 'wpinv-subscription-invalid-property', sprintf( __( 'Can\'t get property %s', 'invoicing' ), $key ) );
111
+			return new WP_Error('wpinv-subscription-invalid-property', sprintf(__('Can\'t get property %s', 'invoicing'), $key));
112 112
 
113 113
 		}
114 114
 
@@ -121,9 +121,9 @@  discard block
 block discarded – undo
121 121
 	 * @param  array  $data Array of attributes for a subscription
122 122
 	 * @return mixed  false if data isn't passed and class not instantiated for creation
123 123
 	 */
124
-	public function create( $data = array() ) {
124
+	public function create($data = array()) {
125 125
 
126
-		if ( $this->id != 0 ) {
126
+		if ($this->id != 0) {
127 127
 			return false;
128 128
 		}
129 129
 
@@ -142,11 +142,11 @@  discard block
 block discarded – undo
142 142
 			'profile_id'        => '',
143 143
 		);
144 144
 
145
-		$args = wp_parse_args( $data, $defaults );
145
+		$args = wp_parse_args($data, $defaults);
146 146
 
147
-		if( $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) {
147
+		if ($args['expiration'] && strtotime('NOW', current_time('timestamp')) > strtotime($args['expiration'], current_time('timestamp'))) {
148 148
 
149
-			if( 'active' == $args['status'] || 'trialling' == $args['status'] ) {
149
+			if ('active' == $args['status'] || 'trialling' == $args['status']) {
150 150
 
151 151
 				// Force an active subscription to expired if expiration date is in the past
152 152
 				$args['status'] = 'expired';
@@ -154,13 +154,13 @@  discard block
 block discarded – undo
154 154
 			}
155 155
 		}
156 156
 
157
-		do_action( 'wpinv_subscription_pre_create', $args );
157
+		do_action('wpinv_subscription_pre_create', $args);
158 158
 
159
-		$id = $this->subs_db->insert( $args, 'subscription' );
159
+		$id = $this->subs_db->insert($args, 'subscription');
160 160
 
161
-		do_action( 'wpinv_subscription_post_create', $id, $args );
161
+		do_action('wpinv_subscription_post_create', $id, $args);
162 162
 
163
-		return $this->setup_subscription( $id );
163
+		return $this->setup_subscription($id);
164 164
 
165 165
 	}
166 166
 
@@ -171,11 +171,11 @@  discard block
 block discarded – undo
171 171
 	 * @param  array $args Array of fields to update
172 172
 	 * @return bool
173 173
 	 */
174
-	public function update( $args = array() ) {
174
+	public function update($args = array()) {
175 175
 
176
-		$ret = $this->subs_db->update( $this->id, $args );
176
+		$ret = $this->subs_db->update($this->id, $args);
177 177
 
178
-		do_action( 'wpinv_recurring_update_subscription', $this->id, $args, $this );
178
+		do_action('wpinv_recurring_update_subscription', $this->id, $args, $this);
179 179
 
180 180
 		return $ret;
181 181
 
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
 	 * @return bool
189 189
 	 */
190 190
 	public function delete() {
191
-		return $this->subs_db->delete( $this->id );
191
+		return $this->subs_db->delete($this->id);
192 192
 	}
193 193
 
194 194
     /**
@@ -208,14 +208,14 @@  discard block
 block discarded – undo
208 208
      * @return array
209 209
      */
210 210
     public function get_child_payments() {
211
-        $payments = get_posts( array(
211
+        $payments = get_posts(array(
212 212
             'post_parent'    => (int) $this->parent_payment_id,
213 213
             'posts_per_page' => '999',
214
-            'post_status'    => array( 'publish', 'wpi-processing', 'wpi-renewal' ),
214
+            'post_status'    => array('publish', 'wpi-processing', 'wpi-renewal'),
215 215
             'orderby'           => 'ID',
216 216
             'order'             => 'DESC',
217 217
             'post_type'      => 'wpi_invoice'
218
-        ) );
218
+        ));
219 219
 
220 220
         return $payments;
221 221
     }
@@ -228,9 +228,9 @@  discard block
 block discarded – undo
228 228
      */
229 229
     public function get_total_payments() {
230 230
         $child_payments = $this->get_child_payments();
231
-        $total_payments = !empty( $child_payments ) ? count( $child_payments ) : 0;
231
+        $total_payments = !empty($child_payments) ? count($child_payments) : 0;
232 232
 
233
-        if ( 'pending' != $this->status ) {
233
+        if ('pending' != $this->status) {
234 234
                 $total_payments++;
235 235
         }
236 236
 
@@ -244,9 +244,9 @@  discard block
 block discarded – undo
244 244
      * @return int
245 245
      */
246 246
     public function get_times_billed() {
247
-        $times_billed = (int)$this->get_total_payments();
247
+        $times_billed = (int) $this->get_total_payments();
248 248
 
249
-        if ( ! empty( $this->trial_period ) && $times_billed > 0 ) {
249
+        if (!empty($this->trial_period) && $times_billed > 0) {
250 250
             $times_billed--;
251 251
         }
252 252
 
@@ -260,51 +260,51 @@  discard block
 block discarded – undo
260 260
      * @param  array $args Array of values for the payment, including amount and transaction ID
261 261
      * @return bool
262 262
      */
263
-    public function add_payment( $args = array() ) {
264
-        if ( ! $this->parent_payment_id ) {
263
+    public function add_payment($args = array()) {
264
+        if (!$this->parent_payment_id) {
265 265
             return false;
266 266
         }
267 267
 
268
-        $args = wp_parse_args( $args, array(
268
+        $args = wp_parse_args($args, array(
269 269
             'amount'         => '',
270 270
             'transaction_id' => '',
271 271
             'gateway'        => ''
272
-        ) );
272
+        ));
273 273
         
274
-        if ( empty( $args['transaction_id'] ) || $this->payment_exists( $args['transaction_id'] ) ) {
274
+        if (empty($args['transaction_id']) || $this->payment_exists($args['transaction_id'])) {
275 275
             return false;
276 276
         }
277 277
         
278
-        $parent_invoice = wpinv_get_invoice( $this->parent_payment_id );
279
-        if ( empty( $parent_invoice->ID ) ) {
278
+        $parent_invoice = wpinv_get_invoice($this->parent_payment_id);
279
+        if (empty($parent_invoice->ID)) {
280 280
             return false;
281 281
         }
282 282
 
283 283
         $invoice = new WPInv_Invoice();
284
-        $invoice->set( 'post_type', 'wpi_invoice' );
285
-        $invoice->set( 'parent_invoice', $this->parent_payment_id );
286
-        $invoice->set( 'currency', $parent_invoice->get_currency() );
287
-        $invoice->set( 'transaction_id', $args['transaction_id'] );
288
-        $invoice->set( 'key', $parent_invoice->generate_key() );
289
-        $invoice->set( 'ip', $parent_invoice->ip );
290
-        $invoice->set( 'user_id', $parent_invoice->get_user_id() );
291
-        $invoice->set( 'first_name', $parent_invoice->get_first_name() );
292
-        $invoice->set( 'last_name', $parent_invoice->get_last_name() );
293
-        $invoice->set( 'phone', $parent_invoice->phone );
294
-        $invoice->set( 'address', $parent_invoice->address );
295
-        $invoice->set( 'city', $parent_invoice->city );
296
-        $invoice->set( 'country', $parent_invoice->country );
297
-        $invoice->set( 'state', $parent_invoice->state );
298
-        $invoice->set( 'zip', $parent_invoice->zip );
299
-        $invoice->set( 'company', $parent_invoice->company );
300
-        $invoice->set( 'vat_number', $parent_invoice->vat_number );
301
-        $invoice->set( 'vat_rate', $parent_invoice->vat_rate );
302
-        $invoice->set( 'adddress_confirmed', $parent_invoice->adddress_confirmed );
303
-
304
-        if ( empty( $args['gateway'] ) ) {
305
-            $invoice->set( 'gateway', $parent_invoice->get_gateway() );
284
+        $invoice->set('post_type', 'wpi_invoice');
285
+        $invoice->set('parent_invoice', $this->parent_payment_id);
286
+        $invoice->set('currency', $parent_invoice->get_currency());
287
+        $invoice->set('transaction_id', $args['transaction_id']);
288
+        $invoice->set('key', $parent_invoice->generate_key());
289
+        $invoice->set('ip', $parent_invoice->ip);
290
+        $invoice->set('user_id', $parent_invoice->get_user_id());
291
+        $invoice->set('first_name', $parent_invoice->get_first_name());
292
+        $invoice->set('last_name', $parent_invoice->get_last_name());
293
+        $invoice->set('phone', $parent_invoice->phone);
294
+        $invoice->set('address', $parent_invoice->address);
295
+        $invoice->set('city', $parent_invoice->city);
296
+        $invoice->set('country', $parent_invoice->country);
297
+        $invoice->set('state', $parent_invoice->state);
298
+        $invoice->set('zip', $parent_invoice->zip);
299
+        $invoice->set('company', $parent_invoice->company);
300
+        $invoice->set('vat_number', $parent_invoice->vat_number);
301
+        $invoice->set('vat_rate', $parent_invoice->vat_rate);
302
+        $invoice->set('adddress_confirmed', $parent_invoice->adddress_confirmed);
303
+
304
+        if (empty($args['gateway'])) {
305
+            $invoice->set('gateway', $parent_invoice->get_gateway());
306 306
         } else {
307
-            $invoice->set( 'gateway', $args['gateway'] );
307
+            $invoice->set('gateway', $args['gateway']);
308 308
         }
309 309
         
310 310
         $recurring_details = $parent_invoice->get_recurring_details();
@@ -312,11 +312,11 @@  discard block
 block discarded – undo
312 312
         // increase the earnings for each item in the subscription
313 313
         $items = $recurring_details['cart_details'];
314 314
         
315
-        if ( $items ) {        
315
+        if ($items) {        
316 316
             $add_items      = array();
317 317
             $cart_details   = array();
318 318
             
319
-            foreach ( $items as $item ) {
319
+            foreach ($items as $item) {
320 320
                 $add_item             = array();
321 321
                 $add_item['id']       = $item['id'];
322 322
                 $add_item['quantity'] = $item['quantity'];
@@ -326,7 +326,7 @@  discard block
 block discarded – undo
326 326
                 break;
327 327
             }
328 328
             
329
-            $invoice->set( 'items', $add_items );
329
+            $invoice->set('items', $add_items);
330 330
             $invoice->cart_details = $cart_details;
331 331
         }
332 332
         
@@ -336,32 +336,32 @@  discard block
 block discarded – undo
336 336
         $tax                = $recurring_details['tax'];
337 337
         $discount           = $recurring_details['discount'];
338 338
         
339
-        if ( $discount > 0 ) {
340
-            $invoice->set( 'discount_code', $parent_invoice->discount_code );
339
+        if ($discount > 0) {
340
+            $invoice->set('discount_code', $parent_invoice->discount_code);
341 341
         }
342 342
         
343
-        $invoice->subtotal = wpinv_round_amount( $subtotal );
344
-        $invoice->tax      = wpinv_round_amount( $tax );
345
-        $invoice->discount = wpinv_round_amount( $discount );
346
-        $invoice->total    = wpinv_round_amount( $total );
343
+        $invoice->subtotal = wpinv_round_amount($subtotal);
344
+        $invoice->tax      = wpinv_round_amount($tax);
345
+        $invoice->discount = wpinv_round_amount($discount);
346
+        $invoice->total    = wpinv_round_amount($total);
347 347
 
348
-        $invoice  = apply_filters( 'wpinv_subscription_add_payment_save', $invoice, $this, $args );
348
+        $invoice = apply_filters('wpinv_subscription_add_payment_save', $invoice, $this, $args);
349 349
 
350 350
         $invoice->save();
351
-        $invoice->update_meta( '_wpinv_subscription_id', $this->id );
351
+        $invoice->update_meta('_wpinv_subscription_id', $this->id);
352 352
         
353
-        if ( !empty( $invoice->ID ) ) {
354
-            wpinv_update_payment_status( $invoice->ID, 'publish' );
353
+        if (!empty($invoice->ID)) {
354
+            wpinv_update_payment_status($invoice->ID, 'publish');
355 355
             sleep(1);
356
-            wpinv_update_payment_status( $invoice->ID, 'wpi-renewal' );
356
+            wpinv_update_payment_status($invoice->ID, 'wpi-renewal');
357 357
             
358
-            $invoice = wpinv_get_invoice( $invoice->ID );
358
+            $invoice = wpinv_get_invoice($invoice->ID);
359 359
 
360 360
 			// Send email notifications.
361
-			wpinv_completed_invoice_notification( $invoice->ID );
361
+			wpinv_completed_invoice_notification($invoice->ID);
362 362
 
363
-            do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
364
-            do_action( 'wpinv_recurring_record_payment', $invoice->ID, $this->parent_payment_id, $args['amount'], $args['transaction_id'] );
363
+            do_action('wpinv_recurring_add_subscription_payment', $invoice, $this);
364
+            do_action('wpinv_recurring_record_payment', $invoice->ID, $this->parent_payment_id, $args['amount'], $args['transaction_id']);
365 365
             
366 366
             return $invoice->ID;
367 367
         }
@@ -377,12 +377,12 @@  discard block
 block discarded – undo
377 377
 	 */
378 378
 	public function get_transaction_id() {
379 379
 
380
-		if( empty( $this->transaction_id ) ) {
380
+		if (empty($this->transaction_id)) {
381 381
 
382
-			$txn_id = wpinv_get_payment_transaction_id( $this->parent_payment_id );
382
+			$txn_id = wpinv_get_payment_transaction_id($this->parent_payment_id);
383 383
 
384
-			if( ! empty( $txn_id ) && (int) $this->parent_payment_id !== (int) $txn_id ) {
385
-				$this->set_transaction_id( $txn_id );
384
+			if (!empty($txn_id) && (int) $this->parent_payment_id !== (int) $txn_id) {
385
+				$this->set_transaction_id($txn_id);
386 386
 			}
387 387
 
388 388
 		}
@@ -397,8 +397,8 @@  discard block
 block discarded – undo
397 397
 	 * @since  1.0.0.4
398 398
 	 * @return bool
399 399
 	 */
400
-	public function set_transaction_id( $txn_id = '' ) {
401
-		$this->update( array( 'transaction_id' => $txn_id ) );
400
+	public function set_transaction_id($txn_id = '') {
401
+		$this->update(array('transaction_id' => $txn_id));
402 402
 		$this->transaction_id = $txn_id;
403 403
 	}
404 404
 
@@ -414,35 +414,35 @@  discard block
 block discarded – undo
414 414
 
415 415
 
416 416
 		// Determine what date to use as the start for the new expiration calculation
417
-		if( $expires > current_time( 'timestamp' ) && $this->is_active() ) {
417
+		if ($expires > current_time('timestamp') && $this->is_active()) {
418 418
 
419
-			$base_date  = $expires;
419
+			$base_date = $expires;
420 420
 
421 421
 		} else {
422 422
 
423
-			$base_date  = current_time( 'timestamp' );
423
+			$base_date = current_time('timestamp');
424 424
 
425 425
 		}
426 426
 
427
-		$last_day = wpinv_cal_days_in_month( CAL_GREGORIAN, date( 'n', $base_date ), date( 'Y', $base_date ) );
427
+		$last_day = wpinv_cal_days_in_month(CAL_GREGORIAN, date('n', $base_date), date('Y', $base_date));
428 428
 
429 429
 
430 430
 		$frequency = isset($this->frequency) ? $this->frequency : 1;
431
-		$expiration = date( 'Y-m-d H:i:s', strtotime( '+' . $frequency . ' ' . $this->period  . ' 23:59:59', $base_date ) );
431
+		$expiration = date('Y-m-d H:i:s', strtotime('+' . $frequency . ' ' . $this->period . ' 23:59:59', $base_date));
432 432
 
433
-		if( date( 'j', $base_date ) == $last_day && 'day' != $this->period ) {
434
-			$expiration = date( 'Y-m-d H:i:s', strtotime( $expiration . ' +2 days' ) );
433
+		if (date('j', $base_date) == $last_day && 'day' != $this->period) {
434
+			$expiration = date('Y-m-d H:i:s', strtotime($expiration . ' +2 days'));
435 435
 		}
436 436
 
437
-		$expiration  = apply_filters( 'wpinv_subscription_renewal_expiration', $expiration, $this->id, $this );
437
+		$expiration  = apply_filters('wpinv_subscription_renewal_expiration', $expiration, $this->id, $this);
438 438
 
439
-		do_action( 'wpinv_subscription_pre_renew', $this->id, $expiration, $this );
439
+		do_action('wpinv_subscription_pre_renew', $this->id, $expiration, $this);
440 440
 
441 441
 		$this->status = 'active';
442 442
 		$times_billed = $this->get_times_billed();
443 443
 
444 444
 		// Complete subscription if applicable
445
-		if ( $this->bill_times > 0 && $times_billed >= $this->bill_times ) {
445
+		if ($this->bill_times > 0 && $times_billed >= $this->bill_times) {
446 446
 			$this->complete();
447 447
 			$this->status = 'completed';
448 448
 		}
@@ -452,10 +452,10 @@  discard block
 block discarded – undo
452 452
 			'status'     => $this->status,
453 453
 		);
454 454
 
455
-        $this->subs_db->update( $this->id, $args );
455
+        $this->subs_db->update($this->id, $args);
456 456
 
457
-		do_action( 'wpinv_subscription_post_renew', $this->id, $expiration, $this );
458
-		do_action( 'wpinv_recurring_set_subscription_status', $this->id, $this->status, $this );
457
+		do_action('wpinv_subscription_post_renew', $this->id, $expiration, $this);
458
+		do_action('wpinv_recurring_set_subscription_status', $this->id, $this->status, $this);
459 459
 
460 460
 	}
461 461
 
@@ -470,7 +470,7 @@  discard block
 block discarded – undo
470 470
 	public function complete() {
471 471
 
472 472
 		// Only mark a subscription as complete if it's not already cancelled.
473
-		if ( 'cancelled' === $this->status ) {
473
+		if ('cancelled' === $this->status) {
474 474
 			return;
475 475
 		}
476 476
 
@@ -478,11 +478,11 @@  discard block
 block discarded – undo
478 478
 			'status' => 'completed'
479 479
 		);
480 480
 
481
-		if( $this->subs_db->update( $this->id, $args ) ) {
481
+		if ($this->subs_db->update($this->id, $args)) {
482 482
 
483 483
 			$this->status = 'completed';
484 484
 
485
-			do_action( 'wpinv_subscription_completed', $this->id, $this );
485
+			do_action('wpinv_subscription_completed', $this->id, $this);
486 486
 
487 487
 		}
488 488
 
@@ -497,15 +497,15 @@  discard block
 block discarded – undo
497 497
 	 * @param  $check_expiration bool True if expiration date should be checked with merchant processor before expiring
498 498
 	 * @return void
499 499
 	 */
500
-	public function expire( $check_expiration = false ) {
500
+	public function expire($check_expiration = false) {
501 501
 
502 502
 		$expiration = $this->expiration;
503 503
 
504
-		if( $check_expiration ) {
504
+		if ($check_expiration) {
505 505
 
506 506
 			// check_expiration() updates $this->expiration so compare to $expiration above
507 507
 
508
-			if( $expiration < $this->get_expiration() && current_time( 'timestamp' ) < $this->get_expiration_time() ) {
508
+			if ($expiration < $this->get_expiration() && current_time('timestamp') < $this->get_expiration_time()) {
509 509
 
510 510
 				return false; // Do not mark as expired since real expiration date is in the future
511 511
 			}
@@ -516,11 +516,11 @@  discard block
 block discarded – undo
516 516
 			'status' => 'expired'
517 517
 		);
518 518
 
519
-		if( $this->subs_db->update( $this->id, $args ) ) {
519
+		if ($this->subs_db->update($this->id, $args)) {
520 520
 
521 521
 			$this->status = 'expired';
522 522
 
523
-			do_action( 'wpinv_subscription_expired', $this->id, $this );
523
+			do_action('wpinv_subscription_expired', $this->id, $this);
524 524
 
525 525
 		}
526 526
 
@@ -538,11 +538,11 @@  discard block
 block discarded – undo
538 538
 			'status' => 'failing'
539 539
 		);
540 540
 
541
-		if( $this->subs_db->update( $this->id, $args ) ) {
541
+		if ($this->subs_db->update($this->id, $args)) {
542 542
 
543 543
 			$this->status = 'failing';
544 544
 
545
-			do_action( 'wpinv_subscription_failing', $this->id, $this );
545
+			do_action('wpinv_subscription_failing', $this->id, $this);
546 546
 
547 547
 
548 548
 		}
@@ -556,7 +556,7 @@  discard block
 block discarded – undo
556 556
      * @return void
557 557
      */
558 558
     public function cancel() {
559
-        if ( 'cancelled' === $this->status ) {
559
+        if ('cancelled' === $this->status) {
560 560
             return; // Already cancelled
561 561
         }
562 562
 
@@ -564,20 +564,20 @@  discard block
 block discarded – undo
564 564
             'status' => 'cancelled'
565 565
         );
566 566
 
567
-        if ( $this->subs_db->update( $this->id, $args ) ) {
568
-            if ( is_user_logged_in() ) {
569
-                $userdata = get_userdata( get_current_user_id() );
567
+        if ($this->subs_db->update($this->id, $args)) {
568
+            if (is_user_logged_in()) {
569
+                $userdata = get_userdata(get_current_user_id());
570 570
                 $user     = $userdata->display_name;
571 571
             } else {
572
-                $user = __( 'gateway', 'invoicing' );
572
+                $user = __('gateway', 'invoicing');
573 573
             }
574 574
 
575
-            $note = sprintf( __( 'Subscription has been cancelled by %s', 'invoicing' ), $user );
576
-            wpinv_insert_payment_note( $this->parent_payment_id, $note, '', '', true );
575
+            $note = sprintf(__('Subscription has been cancelled by %s', 'invoicing'), $user);
576
+            wpinv_insert_payment_note($this->parent_payment_id, $note, '', '', true);
577 577
 
578 578
             $this->status = 'cancelled';
579 579
 
580
-            do_action( 'wpinv_subscription_cancelled', $this->id, $this );
580
+            do_action('wpinv_subscription_cancelled', $this->id, $this);
581 581
         }
582 582
     }
583 583
 
@@ -592,10 +592,10 @@  discard block
 block discarded – undo
592 592
 	 */
593 593
 	public function can_cancel() {
594 594
         $ret = false;
595
-	    if( $this->gateway === 'manual' || in_array( $this->status, $this->get_cancellable_statuses() ) ) {
595
+	    if ($this->gateway === 'manual' || in_array($this->status, $this->get_cancellable_statuses())) {
596 596
             $ret = true;
597 597
         }
598
-		return apply_filters( 'wpinv_subscription_can_cancel', $ret, $this );
598
+		return apply_filters('wpinv_subscription_can_cancel', $ret, $this);
599 599
 	}
600 600
 
601 601
     /**
@@ -606,7 +606,7 @@  discard block
 block discarded – undo
606 606
      * @return      array
607 607
      */
608 608
     public function get_cancellable_statuses() {
609
-        return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) );
609
+        return apply_filters('wpinv_recurring_cancellable_statuses', array('active', 'trialling', 'failing'));
610 610
     }
611 611
 
612 612
 	/**
@@ -617,9 +617,9 @@  discard block
 block discarded – undo
617 617
 	 */
618 618
 	public function get_cancel_url() {
619 619
 
620
-		$url = wp_nonce_url( add_query_arg( array( 'wpinv_action' => 'cancel_subscription', 'sub_id' => $this->id ) ), 'wpinv-recurring-cancel' );
620
+		$url = wp_nonce_url(add_query_arg(array('wpinv_action' => 'cancel_subscription', 'sub_id' => $this->id)), 'wpinv-recurring-cancel');
621 621
 
622
-		return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
622
+		return apply_filters('wpinv_subscription_cancel_url', $url, $this);
623 623
 	}
624 624
 
625 625
 	/**
@@ -633,7 +633,7 @@  discard block
 block discarded – undo
633 633
 	 */
634 634
 	public function can_renew() {
635 635
 
636
-		return apply_filters( 'wpinv_subscription_can_renew', true, $this );
636
+		return apply_filters('wpinv_subscription_can_renew', true, $this);
637 637
 	}
638 638
 
639 639
 	/**
@@ -644,9 +644,9 @@  discard block
 block discarded – undo
644 644
 	 */
645 645
 	public function get_renew_url() {
646 646
 
647
-		$url = wp_nonce_url( add_query_arg( array( 'wpinv_action' => 'renew_subscription', 'sub_id' => $this->id ) ), 'wpinv-recurring-renew' );
647
+		$url = wp_nonce_url(add_query_arg(array('wpinv_action' => 'renew_subscription', 'sub_id' => $this->id)), 'wpinv-recurring-renew');
648 648
 
649
-		return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
649
+		return apply_filters('wpinv_subscription_renew_url', $url, $this);
650 650
 	}
651 651
 
652 652
 	/**
@@ -656,7 +656,7 @@  discard block
 block discarded – undo
656 656
 	 * @return bool
657 657
 	 */
658 658
 	public function can_update() {
659
-		return apply_filters( 'wpinv_subscription_can_update', false, $this );
659
+		return apply_filters('wpinv_subscription_can_update', false, $this);
660 660
 	}
661 661
 
662 662
 	/**
@@ -667,9 +667,9 @@  discard block
 block discarded – undo
667 667
 	 */
668 668
 	public function get_update_url() {
669 669
 
670
-		$url = add_query_arg( array( 'action' => 'update', 'subscription_id' => $this->id ) );
670
+		$url = add_query_arg(array('action' => 'update', 'subscription_id' => $this->id));
671 671
 
672
-		return apply_filters( 'wpinv_subscription_update_url', $url, $this );
672
+		return apply_filters('wpinv_subscription_update_url', $url, $this);
673 673
 	}
674 674
 
675 675
 	/**
@@ -682,11 +682,11 @@  discard block
 block discarded – undo
682 682
 
683 683
 		$ret = false;
684 684
 
685
-		if( ! $this->is_expired() && ( $this->status == 'active' || $this->status == 'cancelled' || $this->status == 'trialling' ) ) {
685
+		if (!$this->is_expired() && ($this->status == 'active' || $this->status == 'cancelled' || $this->status == 'trialling')) {
686 686
 			$ret = true;
687 687
 		}
688 688
 
689
-		return apply_filters( 'wpinv_subscription_is_active', $ret, $this->id, $this );
689
+		return apply_filters('wpinv_subscription_is_active', $ret, $this->id, $this);
690 690
 
691 691
 	}
692 692
 
@@ -700,26 +700,26 @@  discard block
 block discarded – undo
700 700
 
701 701
 		$ret = false;
702 702
 
703
-		if ( $this->status == 'expired' ) {
703
+		if ($this->status == 'expired') {
704 704
 
705 705
 			$ret = true;
706 706
 
707
-		} elseif( 'active' === $this->status || 'cancelled' === $this->status || $this->status == 'trialling'  ) {
707
+		} elseif ('active' === $this->status || 'cancelled' === $this->status || $this->status == 'trialling') {
708 708
 
709 709
 			$ret        = false;
710 710
 			$expiration = $this->get_expiration_time();
711 711
 
712
-			if( $expiration && strtotime( 'NOW', current_time( 'timestamp' ) ) > $expiration ) {
712
+			if ($expiration && strtotime('NOW', current_time('timestamp')) > $expiration) {
713 713
 				$ret = true;
714 714
 
715
-				if ( 'active' === $this->status || $this->status == 'trialling'  ) {
715
+				if ('active' === $this->status || $this->status == 'trialling') {
716 716
 					$this->expire();
717 717
 				}
718 718
 			}
719 719
 
720 720
 		}
721 721
 
722
-		return apply_filters( 'wpinv_subscription_is_expired', $ret, $this->id, $this );
722
+		return apply_filters('wpinv_subscription_is_expired', $ret, $this->id, $this);
723 723
 
724 724
 	}
725 725
 
@@ -740,7 +740,7 @@  discard block
 block discarded – undo
740 740
 	 * @return int
741 741
 	 */
742 742
 	public function get_expiration_time() {
743
-		return strtotime( $this->expiration, current_time( 'timestamp' ) );
743
+		return strtotime($this->expiration, current_time('timestamp'));
744 744
 	}
745 745
 
746 746
 	/**
@@ -764,37 +764,37 @@  discard block
 block discarded – undo
764 764
 	 */
765 765
 	public function get_status_label() {
766 766
 
767
-		switch( $this->get_status() ) {
767
+		switch ($this->get_status()) {
768 768
 			case 'active' :
769
-				$status = __( 'Active', 'invoicing' );
769
+				$status = __('Active', 'invoicing');
770 770
 				break;
771 771
 
772 772
 			case 'cancelled' :
773
-				$status = __( 'Cancelled', 'invoicing' );
773
+				$status = __('Cancelled', 'invoicing');
774 774
 				break;
775 775
 
776 776
 			case 'expired' :
777
-				$status = __( 'Expired', 'invoicing' );
777
+				$status = __('Expired', 'invoicing');
778 778
 				break;
779 779
 
780 780
 			case 'pending' :
781
-				$status = __( 'Pending', 'invoicing' );
781
+				$status = __('Pending', 'invoicing');
782 782
 				break;
783 783
 
784 784
 			case 'failing' :
785
-				$status = __( 'Failing', 'invoicing' );
785
+				$status = __('Failing', 'invoicing');
786 786
 				break;
787 787
 
788 788
 			case 'trialling' :
789
-				$status = __( 'Trialling', 'invoicing' );
789
+				$status = __('Trialling', 'invoicing');
790 790
 				break;
791 791
 
792 792
 			case 'completed' :
793
-				$status = __( 'Completed', 'invoicing' );
793
+				$status = __('Completed', 'invoicing');
794 794
 				break;
795 795
 
796 796
 			default:
797
-				$status = ucfirst( $this->get_status() );
797
+				$status = ucfirst($this->get_status());
798 798
 				break;
799 799
 		}
800 800
 
@@ -809,51 +809,51 @@  discard block
 block discarded – undo
809 809
      */
810 810
     public function get_status_label_html() {
811 811
 
812
-        switch( $get_status = $this->get_status() ) {
812
+        switch ($get_status = $this->get_status()) {
813 813
             case 'active' :
814
-                $status = __( 'Active', 'invoicing' );
814
+                $status = __('Active', 'invoicing');
815 815
                 $class = 'label-info';
816 816
                 break;
817 817
 
818 818
             case 'cancelled' :
819
-                $status = __( 'Cancelled', 'invoicing' );
819
+                $status = __('Cancelled', 'invoicing');
820 820
                 $class = 'label-danger';
821 821
                 break;
822 822
 
823 823
             case 'expired' :
824
-                $status = __( 'Expired', 'invoicing' );
824
+                $status = __('Expired', 'invoicing');
825 825
                 $class = 'label-default';
826 826
                 break;
827 827
 
828 828
             case 'pending' :
829
-                $status = __( 'Pending', 'invoicing' );
829
+                $status = __('Pending', 'invoicing');
830 830
                 $class = 'label-primary';
831 831
                 break;
832 832
 
833 833
             case 'failing' :
834
-                $status = __( 'Failing', 'invoicing' );
834
+                $status = __('Failing', 'invoicing');
835 835
                 $class = 'label-danger';
836 836
                 break;
837 837
 
838 838
             case 'trialling' :
839
-                $status = __( 'Trialling', 'invoicing' );
839
+                $status = __('Trialling', 'invoicing');
840 840
                 $class = 'label-info';
841 841
                 break;
842 842
 
843 843
             case 'completed' :
844
-                $status = __( 'Completed', 'invoicing' );
844
+                $status = __('Completed', 'invoicing');
845 845
                 $class = 'label-success';
846 846
                 break;
847 847
 
848 848
             default:
849
-                $status = ucfirst( $this->get_status() );
849
+                $status = ucfirst($this->get_status());
850 850
                 $class = 'label-default';
851 851
                 break;
852 852
         }
853 853
 
854 854
         $label = '<span class="sub-status label label-sub-' . $get_status . ' ' . $class . '">' . $status . '</span>';
855 855
 
856
-        return apply_filters( 'wpinv_subscription_status_label_html', $label, $get_status, $status );
856
+        return apply_filters('wpinv_subscription_status_label_html', $label, $get_status, $status);
857 857
     }
858 858
 
859 859
     /**
@@ -863,18 +863,18 @@  discard block
 block discarded – undo
863 863
      * @param  string $txn_id The transaction ID from the merchant processor
864 864
      * @return bool
865 865
      */
866
-    public function payment_exists( $txn_id = '' ) {
866
+    public function payment_exists($txn_id = '') {
867 867
         global $wpdb;
868 868
 
869
-        if ( empty( $txn_id ) ) {
869
+        if (empty($txn_id)) {
870 870
             return false;
871 871
         }
872 872
 
873
-        $txn_id = esc_sql( $txn_id );
873
+        $txn_id = esc_sql($txn_id);
874 874
 
875
-        $purchase = $wpdb->get_var( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wpinv_transaction_id' AND meta_value = '{$txn_id}' LIMIT 1" );
875
+        $purchase = $wpdb->get_var("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wpinv_transaction_id' AND meta_value = '{$txn_id}' LIMIT 1");
876 876
 
877
-        if ( $purchase != null ) {
877
+        if ($purchase != null) {
878 878
             return true;
879 879
         }
880 880
 
Please login to merge, or discard this patch.