Passed
Push — master ( 0612be...57280a )
by Brian
05:11
created
includes/wpinv-payment-functions.php 2 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -235,7 +235,7 @@
 block discarded – undo
235 235
         do_action( 'getpaid_checkout_invoice_exception', $invoice );
236 236
     }
237 237
 
238
-	// Do we have any errors?
238
+    // Do we have any errors?
239 239
     if ( wpinv_get_errors() ) {
240 240
         wp_send_json_error( getpaid_get_errors_html( true, false ) );
241 241
     }
Please login to merge, or discard this patch.
Spacing   +90 added lines, -90 removed lines patch added patch discarded remove patch
@@ -1,155 +1,155 @@  discard block
 block discarded – undo
1 1
 <?php
2
-function wpinv_is_subscription_payment( $invoice = '' ) {
3
-    if ( empty( $invoice ) ) {
2
+function wpinv_is_subscription_payment($invoice = '') {
3
+    if (empty($invoice)) {
4 4
         return false;
5 5
     }
6 6
     
7
-    if ( !is_object( $invoice ) && is_scalar( $invoice ) ) {
8
-        $invoice = wpinv_get_invoice( $invoice );
7
+    if (!is_object($invoice) && is_scalar($invoice)) {
8
+        $invoice = wpinv_get_invoice($invoice);
9 9
     }
10 10
     
11
-    if ( empty( $invoice ) ) {
11
+    if (empty($invoice)) {
12 12
         return false;
13 13
     }
14 14
         
15
-    if ( $invoice->is_renewal() ) {
15
+    if ($invoice->is_renewal()) {
16 16
         return true;
17 17
     }
18 18
 
19 19
     return false;
20 20
 }
21 21
 
22
-function wpinv_payment_link_transaction_id( $invoice = '' ) {
23
-    if ( empty( $invoice ) ) {
22
+function wpinv_payment_link_transaction_id($invoice = '') {
23
+    if (empty($invoice)) {
24 24
         return false;
25 25
     }
26 26
     
27
-    if ( !is_object( $invoice ) && is_scalar( $invoice ) ) {
28
-        $invoice = wpinv_get_invoice( $invoice );
27
+    if (!is_object($invoice) && is_scalar($invoice)) {
28
+        $invoice = wpinv_get_invoice($invoice);
29 29
     }
30 30
     
31
-    if ( empty( $invoice ) ) {
31
+    if (empty($invoice)) {
32 32
         return false;
33 33
     }
34 34
 
35
-    return apply_filters( 'wpinv_payment_details_transaction_id-' . $invoice->gateway, $invoice->get_transaction_id(), $invoice->ID, $invoice );
35
+    return apply_filters('wpinv_payment_details_transaction_id-' . $invoice->gateway, $invoice->get_transaction_id(), $invoice->ID, $invoice);
36 36
 }
37 37
 
38
-function wpinv_subscription_initial_payment_desc( $amount, $period, $interval, $trial_period = '', $trial_interval = 0 ) {
39
-    $interval   = (int)$interval > 0 ? (int)$interval : 1;
38
+function wpinv_subscription_initial_payment_desc($amount, $period, $interval, $trial_period = '', $trial_interval = 0) {
39
+    $interval   = (int) $interval > 0 ? (int) $interval : 1;
40 40
     
41
-    if ( $trial_interval > 0 && !empty( $trial_period ) ) {
42
-        $amount = __( 'Free', 'invoicing' );
41
+    if ($trial_interval > 0 && !empty($trial_period)) {
42
+        $amount = __('Free', 'invoicing');
43 43
         $interval = $trial_interval;
44 44
         $period = $trial_period;
45 45
     }
46 46
     
47 47
     $description = '';
48
-    switch ( $period ) {
48
+    switch ($period) {
49 49
         case 'D' :
50 50
         case 'day' :
51
-            $description = wp_sprintf( _n( '%s for the first day.', '%s for the first %d days.', $interval, 'invoicing' ), $amount, $interval );
51
+            $description = wp_sprintf(_n('%s for the first day.', '%s for the first %d days.', $interval, 'invoicing'), $amount, $interval);
52 52
             break;
53 53
         case 'W' :
54 54
         case 'week' :
55
-            $description = wp_sprintf( _n( '%s for the first week.', '%s for the first %d weeks.', $interval, 'invoicing' ), $amount, $interval );
55
+            $description = wp_sprintf(_n('%s for the first week.', '%s for the first %d weeks.', $interval, 'invoicing'), $amount, $interval);
56 56
             break;
57 57
         case 'M' :
58 58
         case 'month' :
59
-            $description = wp_sprintf( _n( '%s for the first month.', '%s for the first %d months.', $interval, 'invoicing' ), $amount, $interval );
59
+            $description = wp_sprintf(_n('%s for the first month.', '%s for the first %d months.', $interval, 'invoicing'), $amount, $interval);
60 60
             break;
61 61
         case 'Y' :
62 62
         case 'year' :
63
-            $description = wp_sprintf( _n( '%s for the first year.', '%s for the first %d years.', $interval, 'invoicing' ), $amount, $interval );
63
+            $description = wp_sprintf(_n('%s for the first year.', '%s for the first %d years.', $interval, 'invoicing'), $amount, $interval);
64 64
             break;
65 65
     }
66 66
 
67
-    return apply_filters( 'wpinv_subscription_initial_payment_desc', $description, $amount, $period, $interval, $trial_period, $trial_interval  );
67
+    return apply_filters('wpinv_subscription_initial_payment_desc', $description, $amount, $period, $interval, $trial_period, $trial_interval);
68 68
 }
69 69
 
70
-function wpinv_subscription_recurring_payment_desc( $amount, $period, $interval, $bill_times = 0, $trial_period = '', $trial_interval = 0 ) {
71
-    $interval   = (int)$interval > 0 ? (int)$interval : 1;
72
-    $bill_times = (int)$bill_times > 0 ? (int)$bill_times : 0;
70
+function wpinv_subscription_recurring_payment_desc($amount, $period, $interval, $bill_times = 0, $trial_period = '', $trial_interval = 0) {
71
+    $interval   = (int) $interval > 0 ? (int) $interval : 1;
72
+    $bill_times = (int) $bill_times > 0 ? (int) $bill_times : 0;
73 73
     
74 74
     $description = '';
75
-    switch ( $period ) {
75
+    switch ($period) {
76 76
         case 'D' :
77 77
         case 'day' :            
78
-            if ( (int)$bill_times > 0 ) {
79
-                if ( $interval > 1 ) {
80
-                    if ( $bill_times > 1 ) {
81
-                        $description = wp_sprintf( __( '%s for each %d days, for %d installments.', 'invoicing' ), $amount, $interval, $bill_times );
78
+            if ((int) $bill_times > 0) {
79
+                if ($interval > 1) {
80
+                    if ($bill_times > 1) {
81
+                        $description = wp_sprintf(__('%s for each %d days, for %d installments.', 'invoicing'), $amount, $interval, $bill_times);
82 82
                     } else {
83
-                        $description = wp_sprintf( __( '%s for %d days.', 'invoicing' ), $amount, $interval );
83
+                        $description = wp_sprintf(__('%s for %d days.', 'invoicing'), $amount, $interval);
84 84
                     }
85 85
                 } else {
86
-                    $description = wp_sprintf( _n( '%s for one day.', '%s for each day, for %d installments.', $bill_times, 'invoicing' ), $amount, $bill_times );
86
+                    $description = wp_sprintf(_n('%s for one day.', '%s for each day, for %d installments.', $bill_times, 'invoicing'), $amount, $bill_times);
87 87
                 }
88 88
             } else {
89
-                $description = wp_sprintf( _n( '%s for each day.', '%s for each %d days.', $interval, 'invoicing'), $amount, $interval );
89
+                $description = wp_sprintf(_n('%s for each day.', '%s for each %d days.', $interval, 'invoicing'), $amount, $interval);
90 90
             }
91 91
             break;
92 92
         case 'W' :
93 93
         case 'week' :            
94
-            if ( (int)$bill_times > 0 ) {
95
-                if ( $interval > 1 ) {
96
-                    if ( $bill_times > 1 ) {
97
-                        $description = wp_sprintf( __( '%s for each %d weeks, for %d installments.', 'invoicing' ), $amount, $interval, $bill_times );
94
+            if ((int) $bill_times > 0) {
95
+                if ($interval > 1) {
96
+                    if ($bill_times > 1) {
97
+                        $description = wp_sprintf(__('%s for each %d weeks, for %d installments.', 'invoicing'), $amount, $interval, $bill_times);
98 98
                     } else {
99
-                        $description = wp_sprintf( __( '%s for %d weeks.', 'invoicing' ), $amount, $interval );
99
+                        $description = wp_sprintf(__('%s for %d weeks.', 'invoicing'), $amount, $interval);
100 100
                     }
101 101
                 } else {
102
-                    $description = wp_sprintf( _n( '%s for one week.', '%s for each week, for %d installments.', $bill_times, 'invoicing' ), $amount, $bill_times );
102
+                    $description = wp_sprintf(_n('%s for one week.', '%s for each week, for %d installments.', $bill_times, 'invoicing'), $amount, $bill_times);
103 103
                 }
104 104
             } else {
105
-                $description = wp_sprintf( _n( '%s for each week.', '%s for each %d weeks.', $interval, 'invoicing' ), $amount, $interval );
105
+                $description = wp_sprintf(_n('%s for each week.', '%s for each %d weeks.', $interval, 'invoicing'), $amount, $interval);
106 106
             }
107 107
             break;
108 108
         case 'M' :
109 109
         case 'month' :            
110
-            if ( (int)$bill_times > 0 ) {
111
-                if ( $interval > 1 ) {
112
-                    if ( $bill_times > 1 ) {
113
-                        $description = wp_sprintf( __( '%s for each %d months, for %d installments.', 'invoicing' ), $amount, $interval, $bill_times );
110
+            if ((int) $bill_times > 0) {
111
+                if ($interval > 1) {
112
+                    if ($bill_times > 1) {
113
+                        $description = wp_sprintf(__('%s for each %d months, for %d installments.', 'invoicing'), $amount, $interval, $bill_times);
114 114
                     } else {
115
-                        $description = wp_sprintf( __( '%s for %d months.', 'invoicing' ), $amount, $interval );
115
+                        $description = wp_sprintf(__('%s for %d months.', 'invoicing'), $amount, $interval);
116 116
                     }
117 117
                 } else {
118
-                    $description = wp_sprintf( _n( '%s for one month.', '%s for each month, for %d installments.', $bill_times, 'invoicing' ), $amount, $bill_times );
118
+                    $description = wp_sprintf(_n('%s for one month.', '%s for each month, for %d installments.', $bill_times, 'invoicing'), $amount, $bill_times);
119 119
                 }
120 120
             } else {
121
-                $description = wp_sprintf( _n( '%s for each month.', '%s for each %d months.', $interval, 'invoicing' ), $amount, $interval );
121
+                $description = wp_sprintf(_n('%s for each month.', '%s for each %d months.', $interval, 'invoicing'), $amount, $interval);
122 122
             }
123 123
             break;
124 124
         case 'Y' :
125 125
         case 'year' :            
126
-            if ( (int)$bill_times > 0 ) {
127
-                if ( $interval > 1 ) {
128
-                    if ( $bill_times > 1 ) {
129
-                        $description = wp_sprintf( __( '%s for each %d years, for %d installments.', 'invoicing' ), $amount, $interval, $bill_times );
126
+            if ((int) $bill_times > 0) {
127
+                if ($interval > 1) {
128
+                    if ($bill_times > 1) {
129
+                        $description = wp_sprintf(__('%s for each %d years, for %d installments.', 'invoicing'), $amount, $interval, $bill_times);
130 130
                     } else {
131
-                        $description = wp_sprintf( __( '%s for %d years.', 'invoicing'), $amount, $interval );
131
+                        $description = wp_sprintf(__('%s for %d years.', 'invoicing'), $amount, $interval);
132 132
                     }
133 133
                 } else {
134
-                    $description = wp_sprintf( _n( '%s for one year.', '%s for each year, for %d installments.', $bill_times, 'invoicing' ), $amount, $bill_times );
134
+                    $description = wp_sprintf(_n('%s for one year.', '%s for each year, for %d installments.', $bill_times, 'invoicing'), $amount, $bill_times);
135 135
                 }
136 136
             } else {
137
-                $description = wp_sprintf( _n( '%s for each year.', '%s for each %d years.', $interval, 'invoicing' ), $amount, $interval );
137
+                $description = wp_sprintf(_n('%s for each year.', '%s for each %d years.', $interval, 'invoicing'), $amount, $interval);
138 138
             }
139 139
             break;
140 140
     }
141 141
 
142
-    return apply_filters( 'wpinv_subscription_recurring_payment_desc', $description, $amount, $period, $interval, $bill_times, $trial_period, $trial_interval );
142
+    return apply_filters('wpinv_subscription_recurring_payment_desc', $description, $amount, $period, $interval, $bill_times, $trial_period, $trial_interval);
143 143
 }
144 144
 
145
-function wpinv_subscription_payment_desc( $invoice ) {
146
-    if ( empty( $invoice ) ) {
145
+function wpinv_subscription_payment_desc($invoice) {
146
+    if (empty($invoice)) {
147 147
         return NULL;
148 148
     }
149 149
 
150 150
     $description = '';
151
-    if ( $invoice->is_parent() && $item = $invoice->get_recurring( true ) ) {
152
-        if ( $item->has_free_trial() ) {
151
+    if ($invoice->is_parent() && $item = $invoice->get_recurring(true)) {
152
+        if ($item->has_free_trial()) {
153 153
             $trial_period = $item->get_trial_period();
154 154
             $trial_interval = $item->get_trial_interval();
155 155
         } else {
@@ -157,40 +157,40 @@  discard block
 block discarded – undo
157 157
             $trial_interval = 0;
158 158
         }
159 159
         
160
-        $description = wpinv_get_billing_cycle( $invoice->get_total(), $invoice->get_recurring_details( 'total' ), $item->get_recurring_period(), $item->get_recurring_interval(), $item->get_recurring_limit(), $trial_period, $trial_interval, $invoice->get_currency() );
160
+        $description = wpinv_get_billing_cycle($invoice->get_total(), $invoice->get_recurring_details('total'), $item->get_recurring_period(), $item->get_recurring_interval(), $item->get_recurring_limit(), $trial_period, $trial_interval, $invoice->get_currency());
161 161
     }
162 162
     
163
-    return apply_filters( 'wpinv_subscription_payment_desc', $description, $invoice );
163
+    return apply_filters('wpinv_subscription_payment_desc', $description, $invoice);
164 164
 }
165 165
 
166
-function wpinv_get_billing_cycle( $initial, $recurring, $period, $interval, $bill_times, $trial_period = '', $trial_interval = 0, $currency = '' ) {
167
-    $initial_total      = wpinv_round_amount( $initial );
168
-    $recurring_total    = wpinv_round_amount( $recurring );
166
+function wpinv_get_billing_cycle($initial, $recurring, $period, $interval, $bill_times, $trial_period = '', $trial_interval = 0, $currency = '') {
167
+    $initial_total      = wpinv_round_amount($initial);
168
+    $recurring_total    = wpinv_round_amount($recurring);
169 169
     
170
-    if ( $trial_interval > 0 && !empty( $trial_period ) ) {
170
+    if ($trial_interval > 0 && !empty($trial_period)) {
171 171
         // Free trial
172 172
     } else {
173
-        if ( $bill_times == 1 ) {
173
+        if ($bill_times == 1) {
174 174
             $recurring_total = $initial_total;
175
-        } else if ( $bill_times > 1 && $initial_total != $recurring_total ) {
175
+        } else if ($bill_times > 1 && $initial_total != $recurring_total) {
176 176
             $bill_times--;
177 177
         }
178 178
     }
179 179
     
180
-    $initial_amount     = wpinv_price( $initial_total, $currency );
181
-    $recurring_amount   = wpinv_price( $recurring_total, $currency );
180
+    $initial_amount     = wpinv_price($initial_total, $currency);
181
+    $recurring_amount   = wpinv_price($recurring_total, $currency);
182 182
     
183
-    $recurring          = wpinv_subscription_recurring_payment_desc( $recurring_amount, $period, $interval, $bill_times, $trial_period, $trial_interval );
183
+    $recurring          = wpinv_subscription_recurring_payment_desc($recurring_amount, $period, $interval, $bill_times, $trial_period, $trial_interval);
184 184
         
185
-    if ( $initial_total != $recurring_total ) {
186
-        $initial        = wpinv_subscription_initial_payment_desc( $initial_amount, $period, $interval, $trial_period, $trial_interval );
185
+    if ($initial_total != $recurring_total) {
186
+        $initial        = wpinv_subscription_initial_payment_desc($initial_amount, $period, $interval, $trial_period, $trial_interval);
187 187
         
188
-        $description    = wp_sprintf( __( '%s Then %s', 'invoicing' ), $initial, $recurring );
188
+        $description    = wp_sprintf(__('%s Then %s', 'invoicing'), $initial, $recurring);
189 189
     } else {
190 190
         $description    = $recurring;
191 191
     }
192 192
     
193
-    return apply_filters( 'wpinv_get_billing_cycle', $description, $initial, $recurring, $period, $interval, $bill_times, $trial_period, $trial_interval, $currency );
193
+    return apply_filters('wpinv_get_billing_cycle', $description, $initial, $recurring, $period, $interval, $bill_times, $trial_period, $trial_interval, $currency);
194 194
 }
195 195
 
196 196
 /**
@@ -200,27 +200,27 @@  discard block
 block discarded – undo
200 200
  * @param string $card_number Card number.
201 201
  * @return string
202 202
  */
203
-function getpaid_get_card_name( $card_number ) {
203
+function getpaid_get_card_name($card_number) {
204 204
 
205 205
     // Known regexes.
206 206
     $regexes = array(
207
-        '/^4/'                     => __( 'Visa', 'invoicing' ),
208
-        '/^5[1-5]/'                => __( 'Mastercard', 'invoicing' ),
209
-        '/^3[47]/'                 => __( 'Amex', 'invoicing' ),
210
-        '/^3(?:0[0-5]|[68])/'      => __( 'Diners Club', 'invoicing' ),
211
-        '/^6(?:011|5)/'            => __( 'Discover', 'invoicing' ),
212
-        '/^(?:2131|1800|35\d{3})/' => __( 'JCB', 'invoicing' ),
207
+        '/^4/'                     => __('Visa', 'invoicing'),
208
+        '/^5[1-5]/'                => __('Mastercard', 'invoicing'),
209
+        '/^3[47]/'                 => __('Amex', 'invoicing'),
210
+        '/^3(?:0[0-5]|[68])/'      => __('Diners Club', 'invoicing'),
211
+        '/^6(?:011|5)/'            => __('Discover', 'invoicing'),
212
+        '/^(?:2131|1800|35\d{3})/' => __('JCB', 'invoicing'),
213 213
     );
214 214
 
215 215
     // Confirm if one matches.
216
-    foreach ( $regexes as $regex => $card ) {
217
-        if ( preg_match ( $regex, $card_number ) >= 1 ) {
216
+    foreach ($regexes as $regex => $card) {
217
+        if (preg_match($regex, $card_number) >= 1) {
218 218
             return $card;
219 219
         }
220 220
     }
221 221
 
222 222
     // None matched.
223
-    return __( 'Card', 'invoicing' );
223
+    return __('Card', 'invoicing');
224 224
 
225 225
 }
226 226
 
@@ -229,16 +229,16 @@  discard block
 block discarded – undo
229 229
  * 
230 230
  * @param WPInv_Invoice|int|null $invoice
231 231
  */
232
-function wpinv_send_back_to_checkout( $invoice = null ) {
232
+function wpinv_send_back_to_checkout($invoice = null) {
233 233
 
234
-    if ( ! empty( $invoice ) ) {
235
-        do_action( 'getpaid_checkout_invoice_exception', $invoice );
234
+    if (!empty($invoice)) {
235
+        do_action('getpaid_checkout_invoice_exception', $invoice);
236 236
     }
237 237
 
238 238
 	// Do we have any errors?
239
-    if ( wpinv_get_errors() ) {
240
-        wp_send_json_error( getpaid_get_errors_html( true, false ) );
239
+    if (wpinv_get_errors()) {
240
+        wp_send_json_error(getpaid_get_errors_html(true, false));
241 241
     }
242 242
 
243
-    wp_send_json_error( __( 'An error occured while processing your payment. Please try again.', 'invoicing' ) );
243
+    wp_send_json_error(__('An error occured while processing your payment. Please try again.', 'invoicing'));
244 244
 }
Please login to merge, or discard this patch.
includes/class-wpinv-ajax.php 2 patches
Indentation   +58 added lines, -58 removed lines patch added patch discarded remove patch
@@ -14,70 +14,70 @@  discard block
 block discarded – undo
14 14
 class WPInv_Ajax {
15 15
 
16 16
     /**
17
-	 * Hook in ajax handlers.
18
-	 */
19
-	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
-		self::add_ajax_events();
17
+     * Hook in ajax handlers.
18
+     */
19
+    public static function init() {
20
+        add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
+        add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
22
+        self::add_ajax_events();
23 23
     }
24 24
 
25 25
     /**
26
-	 * Set GetPaid AJAX constant and headers.
27
-	 */
28
-	public static function define_ajax() {
29
-
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
-			}
36
-			$GLOBALS['wpdb']->hide_errors();
37
-		}
26
+     * Set GetPaid AJAX constant and headers.
27
+     */
28
+    public static function define_ajax() {
29
+
30
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
+            getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
+            getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
+            if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
+                /** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
35
+            }
36
+            $GLOBALS['wpdb']->hide_errors();
37
+        }
38 38
 
39 39
     }
40 40
     
41 41
     /**
42
-	 * Send headers for GetPaid Ajax Requests.
43
-	 *
44
-	 * @since 1.0.18
45
-	 */
46
-	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
48
-			send_origin_headers();
49
-			send_nosniff_header();
50
-			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
54
-		}
42
+     * Send headers for GetPaid Ajax Requests.
43
+     *
44
+     * @since 1.0.18
45
+     */
46
+    private static function wpinv_ajax_headers() {
47
+        if ( ! headers_sent() ) {
48
+            send_origin_headers();
49
+            send_nosniff_header();
50
+            nocache_headers();
51
+            header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
+            header( 'X-Robots-Tag: noindex' );
53
+            status_header( 200 );
54
+        }
55 55
     }
56 56
     
57 57
     /**
58
-	 * Check for GetPaid Ajax request and fire action.
59
-	 */
60
-	public static function do_wpinv_ajax() {
61
-		global $wp_query;
58
+     * Check for GetPaid Ajax request and fire action.
59
+     */
60
+    public static function do_wpinv_ajax() {
61
+        global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
-		}
63
+        if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
+            $wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
65
+        }
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+        $action = $wp_query->get( 'wpinv-ajax' );
68 68
 
69
-		if ( $action ) {
70
-			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
73
-			wp_die();
74
-		}
69
+        if ( $action ) {
70
+            self::wpinv_ajax_headers();
71
+            $action = sanitize_text_field( $action );
72
+            do_action( 'wpinv_ajax_' . $action );
73
+            wp_die();
74
+        }
75 75
 
76 76
     }
77 77
 
78 78
     /**
79
-	 * Hook in ajax methods.
80
-	 */
79
+     * Hook in ajax methods.
80
+     */
81 81
     public static function add_ajax_events() {
82 82
 
83 83
         // array( 'event' => is_frontend )
@@ -255,24 +255,24 @@  discard block
 block discarded – undo
255 255
         check_ajax_referer( 'getpaid_form_nonce' );
256 256
 
257 257
         // Is the request set up correctly?
258
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) {
259
-			echo aui()->alert(
260
-				array(
261
-					'type'    => 'warning',
262
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
263
-				)
258
+        if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) {
259
+            echo aui()->alert(
260
+                array(
261
+                    'type'    => 'warning',
262
+                    'content' => __( 'No payment form or item provided', 'invoicing' ),
263
+                )
264 264
             );
265 265
             exit;
266 266
         }
267 267
 
268 268
         // Payment form or button?
269
-		if ( ! empty( $_GET['form'] ) ) {
269
+        if ( ! empty( $_GET['form'] ) ) {
270 270
             getpaid_display_payment_form( urldecode( $_GET['form'] ) );
271
-		} else if( ! empty( $_GET['invoice'] ) ) {
272
-		    getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) );
271
+        } else if( ! empty( $_GET['invoice'] ) ) {
272
+            getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) );
273 273
         } else {
274
-			$items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) );
275
-		    getpaid_display_item_payment_form( $items );
274
+            $items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) );
275
+            getpaid_display_item_payment_form( $items );
276 276
         }
277 277
 
278 278
         exit;
Please login to merge, or discard this patch.
Spacing   +216 added lines, -216 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
  
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * WPInv_Ajax class.
@@ -17,8 +17,8 @@  discard block
 block discarded – undo
17 17
 	 * Hook in ajax handlers.
18 18
 	 */
19 19
 	public static function init() {
20
-		add_action( 'init', array( __CLASS__, 'define_ajax' ), 0 );
21
-		add_action( 'template_redirect', array( __CLASS__, 'do_wpinv_ajax' ), 0 );
20
+		add_action('init', array(__CLASS__, 'define_ajax'), 0);
21
+		add_action('template_redirect', array(__CLASS__, 'do_wpinv_ajax'), 0);
22 22
 		self::add_ajax_events();
23 23
     }
24 24
 
@@ -27,11 +27,11 @@  discard block
 block discarded – undo
27 27
 	 */
28 28
 	public static function define_ajax() {
29 29
 
30
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
31
-			getpaid_maybe_define_constant( 'DOING_AJAX', true );
32
-			getpaid_maybe_define_constant( 'WPInv_DOING_AJAX', true );
33
-			if ( ! WP_DEBUG || ( WP_DEBUG && ! WP_DEBUG_DISPLAY ) ) {
34
-				/** @scrutinizer ignore-unhandled */ @ini_set( 'display_errors', 0 );
30
+		if (!empty($_GET['wpinv-ajax'])) {
31
+			getpaid_maybe_define_constant('DOING_AJAX', true);
32
+			getpaid_maybe_define_constant('WPInv_DOING_AJAX', true);
33
+			if (!WP_DEBUG || (WP_DEBUG && !WP_DEBUG_DISPLAY)) {
34
+				/** @scrutinizer ignore-unhandled */ @ini_set('display_errors', 0);
35 35
 			}
36 36
 			$GLOBALS['wpdb']->hide_errors();
37 37
 		}
@@ -44,13 +44,13 @@  discard block
 block discarded – undo
44 44
 	 * @since 1.0.18
45 45
 	 */
46 46
 	private static function wpinv_ajax_headers() {
47
-		if ( ! headers_sent() ) {
47
+		if (!headers_sent()) {
48 48
 			send_origin_headers();
49 49
 			send_nosniff_header();
50 50
 			nocache_headers();
51
-			header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
52
-			header( 'X-Robots-Tag: noindex' );
53
-			status_header( 200 );
51
+			header('Content-Type: text/html; charset=' . get_option('blog_charset'));
52
+			header('X-Robots-Tag: noindex');
53
+			status_header(200);
54 54
 		}
55 55
     }
56 56
     
@@ -60,16 +60,16 @@  discard block
 block discarded – undo
60 60
 	public static function do_wpinv_ajax() {
61 61
 		global $wp_query;
62 62
 
63
-		if ( ! empty( $_GET['wpinv-ajax'] ) ) {
64
-			$wp_query->set( 'wpinv-ajax', sanitize_text_field( wp_unslash( $_GET['wpinv-ajax'] ) ) );
63
+		if (!empty($_GET['wpinv-ajax'])) {
64
+			$wp_query->set('wpinv-ajax', sanitize_text_field(wp_unslash($_GET['wpinv-ajax'])));
65 65
 		}
66 66
 
67
-		$action = $wp_query->get( 'wpinv-ajax' );
67
+		$action = $wp_query->get('wpinv-ajax');
68 68
 
69
-		if ( $action ) {
69
+		if ($action) {
70 70
 			self::wpinv_ajax_headers();
71
-			$action = sanitize_text_field( $action );
72
-			do_action( 'wpinv_ajax_' . $action );
71
+			$action = sanitize_text_field($action);
72
+			do_action('wpinv_ajax_' . $action);
73 73
 			wp_die();
74 74
 		}
75 75
 
@@ -102,36 +102,36 @@  discard block
 block discarded – undo
102 102
             'payment_form_refresh_prices' => true,
103 103
         );
104 104
 
105
-        foreach ( $ajax_events as $ajax_event => $nopriv ) {
106
-            add_action( 'wp_ajax_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
107
-            add_action( 'wp_ajax_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) );
105
+        foreach ($ajax_events as $ajax_event => $nopriv) {
106
+            add_action('wp_ajax_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
107
+            add_action('wp_ajax_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event));
108 108
 
109
-            if ( $nopriv ) {
110
-                add_action( 'wp_ajax_nopriv_wpinv_' . $ajax_event, array( __CLASS__, $ajax_event ) );
111
-                add_action( 'wp_ajax_nopriv_getpaid_' . $ajax_event, array( __CLASS__, $ajax_event ) );
112
-                add_action( 'wpinv_ajax_' . $ajax_event, array( __CLASS__, $ajax_event ) );
109
+            if ($nopriv) {
110
+                add_action('wp_ajax_nopriv_wpinv_' . $ajax_event, array(__CLASS__, $ajax_event));
111
+                add_action('wp_ajax_nopriv_getpaid_' . $ajax_event, array(__CLASS__, $ajax_event));
112
+                add_action('wpinv_ajax_' . $ajax_event, array(__CLASS__, $ajax_event));
113 113
             }
114 114
         }
115 115
     }
116 116
     
117 117
     public static function add_note() {
118
-        check_ajax_referer( 'add-invoice-note', '_nonce' );
118
+        check_ajax_referer('add-invoice-note', '_nonce');
119 119
 
120
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
120
+        if (!wpinv_current_user_can_manage_invoicing()) {
121 121
             die(-1);
122 122
         }
123 123
 
124
-        $post_id   = absint( $_POST['post_id'] );
125
-        $note      = wp_kses_post( trim( stripslashes( $_POST['note'] ) ) );
126
-        $note_type = sanitize_text_field( $_POST['note_type'] );
124
+        $post_id   = absint($_POST['post_id']);
125
+        $note      = wp_kses_post(trim(stripslashes($_POST['note'])));
126
+        $note_type = sanitize_text_field($_POST['note_type']);
127 127
 
128 128
         $is_customer_note = $note_type == 'customer' ? 1 : 0;
129 129
 
130
-        if ( $post_id > 0 ) {
131
-            $note_id = wpinv_insert_payment_note( $post_id, $note, $is_customer_note );
130
+        if ($post_id > 0) {
131
+            $note_id = wpinv_insert_payment_note($post_id, $note, $is_customer_note);
132 132
 
133
-            if ( $note_id > 0 && !is_wp_error( $note_id ) ) {
134
-                wpinv_get_invoice_note_line_item( $note_id );
133
+            if ($note_id > 0 && !is_wp_error($note_id)) {
134
+                wpinv_get_invoice_note_line_item($note_id);
135 135
             }
136 136
         }
137 137
 
@@ -139,16 +139,16 @@  discard block
 block discarded – undo
139 139
     }
140 140
 
141 141
     public static function delete_note() {
142
-        check_ajax_referer( 'delete-invoice-note', '_nonce' );
142
+        check_ajax_referer('delete-invoice-note', '_nonce');
143 143
 
144
-        if ( !wpinv_current_user_can_manage_invoicing() ) {
144
+        if (!wpinv_current_user_can_manage_invoicing()) {
145 145
             die(-1);
146 146
         }
147 147
 
148
-        $note_id = (int)$_POST['note_id'];
148
+        $note_id = (int) $_POST['note_id'];
149 149
 
150
-        if ( $note_id > 0 ) {
151
-            wp_delete_comment( $note_id, true );
150
+        if ($note_id > 0) {
151
+            wp_delete_comment($note_id, true);
152 152
         }
153 153
 
154 154
         die();
@@ -166,34 +166,34 @@  discard block
 block discarded – undo
166 166
     public static function get_billing_details() {
167 167
 
168 168
         // Verify nonce.
169
-        check_ajax_referer( 'wpinv-nonce' );
169
+        check_ajax_referer('wpinv-nonce');
170 170
 
171 171
         // Can the user manage the plugin?
172
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
172
+        if (!wpinv_current_user_can_manage_invoicing()) {
173 173
             die(-1);
174 174
         }
175 175
 
176 176
         // Do we have a user id?
177 177
         $user_id = $_GET['user_id'];
178 178
 
179
-        if ( empty( $user_id ) || ! is_numeric( $user_id ) ) {
179
+        if (empty($user_id) || !is_numeric($user_id)) {
180 180
             die(-1);
181 181
         }
182 182
 
183 183
         // Fetch the billing details.
184
-        $billing_details    = wpinv_get_user_address( $user_id );
185
-        $billing_details    = apply_filters( 'wpinv_ajax_billing_details', $billing_details, $user_id );
184
+        $billing_details    = wpinv_get_user_address($user_id);
185
+        $billing_details    = apply_filters('wpinv_ajax_billing_details', $billing_details, $user_id);
186 186
 
187 187
         // unset the user id and email.
188
-        $to_ignore = array( 'user_id', 'email' );
188
+        $to_ignore = array('user_id', 'email');
189 189
 
190
-        foreach ( $to_ignore as $key ) {
191
-            if ( isset( $billing_details[ $key ] ) ) {
192
-                unset( $billing_details[ $key ] );
190
+        foreach ($to_ignore as $key) {
191
+            if (isset($billing_details[$key])) {
192
+                unset($billing_details[$key]);
193 193
             }
194 194
         }
195 195
 
196
-        wp_send_json_success( $billing_details );
196
+        wp_send_json_success($billing_details);
197 197
 
198 198
     }
199 199
 
@@ -203,47 +203,47 @@  discard block
 block discarded – undo
203 203
     public static function check_new_user_email() {
204 204
 
205 205
         // Verify nonce.
206
-        check_ajax_referer( 'wpinv-nonce' );
206
+        check_ajax_referer('wpinv-nonce');
207 207
 
208 208
         // Can the user manage the plugin?
209
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
209
+        if (!wpinv_current_user_can_manage_invoicing()) {
210 210
             die(-1);
211 211
         }
212 212
 
213 213
         // We need an email address.
214
-        if ( empty( $_GET['email'] ) ) {
215
-            _e( "Provide the new user's email address", 'invoicing' );
214
+        if (empty($_GET['email'])) {
215
+            _e("Provide the new user's email address", 'invoicing');
216 216
             exit;
217 217
         }
218 218
 
219 219
         // Ensure the email is valid.
220
-        $email = sanitize_text_field( $_GET['email'] );
221
-        if ( ! is_email( $email ) ) {
222
-            _e( 'Invalid email address', 'invoicing' );
220
+        $email = sanitize_text_field($_GET['email']);
221
+        if (!is_email($email)) {
222
+            _e('Invalid email address', 'invoicing');
223 223
             exit;
224 224
         }
225 225
 
226 226
         // And it does not exist.
227
-        if ( email_exists( $email ) ) {
228
-            _e( 'A user with this email address already exists', 'invoicing' );
227
+        if (email_exists($email)) {
228
+            _e('A user with this email address already exists', 'invoicing');
229 229
             exit;
230 230
         }
231 231
 
232
-        wp_send_json_success( true );
232
+        wp_send_json_success(true);
233 233
     }
234 234
     
235 235
     public static function run_tool() {
236
-        check_ajax_referer( 'wpinv-nonce', '_nonce' );
237
-        if ( !wpinv_current_user_can_manage_invoicing() ) {
236
+        check_ajax_referer('wpinv-nonce', '_nonce');
237
+        if (!wpinv_current_user_can_manage_invoicing()) {
238 238
             die(-1);
239 239
         }
240 240
         
241
-        $tool = sanitize_text_field( $_POST['tool'] );
241
+        $tool = sanitize_text_field($_POST['tool']);
242 242
         
243
-        do_action( 'wpinv_run_tool' );
243
+        do_action('wpinv_run_tool');
244 244
         
245
-        if ( !empty( $tool ) ) {
246
-            do_action( 'wpinv_tool_' . $tool );
245
+        if (!empty($tool)) {
246
+            do_action('wpinv_tool_' . $tool);
247 247
         }
248 248
     }
249 249
 
@@ -253,27 +253,27 @@  discard block
 block discarded – undo
253 253
     public static function get_payment_form() {
254 254
 
255 255
         // Check nonce.
256
-        check_ajax_referer( 'getpaid_form_nonce' );
256
+        check_ajax_referer('getpaid_form_nonce');
257 257
 
258 258
         // Is the request set up correctly?
259
-		if ( empty( $_GET['form'] ) && empty( $_GET['item'] ) ) {
259
+		if (empty($_GET['form']) && empty($_GET['item'])) {
260 260
 			echo aui()->alert(
261 261
 				array(
262 262
 					'type'    => 'warning',
263
-					'content' => __( 'No payment form or item provided', 'invoicing' ),
263
+					'content' => __('No payment form or item provided', 'invoicing'),
264 264
 				)
265 265
             );
266 266
             exit;
267 267
         }
268 268
 
269 269
         // Payment form or button?
270
-		if ( ! empty( $_GET['form'] ) ) {
271
-            getpaid_display_payment_form( urldecode( $_GET['form'] ) );
272
-		} else if( ! empty( $_GET['invoice'] ) ) {
273
-		    getpaid_display_invoice_payment_form( urldecode( $_GET['invoice'] ) );
270
+		if (!empty($_GET['form'])) {
271
+            getpaid_display_payment_form(urldecode($_GET['form']));
272
+		} else if (!empty($_GET['invoice'])) {
273
+		    getpaid_display_invoice_payment_form(urldecode($_GET['invoice']));
274 274
         } else {
275
-			$items = getpaid_convert_items_to_array( urldecode( $_GET['item'] ) );
276
-		    getpaid_display_item_payment_form( $items );
275
+			$items = getpaid_convert_items_to_array(urldecode($_GET['item']));
276
+		    getpaid_display_item_payment_form($items);
277 277
         }
278 278
 
279 279
         exit;
@@ -288,17 +288,17 @@  discard block
 block discarded – undo
288 288
     public static function payment_form() {
289 289
 
290 290
         // Check nonce.
291
-        check_ajax_referer( 'getpaid_form_nonce' );
291
+        check_ajax_referer('getpaid_form_nonce');
292 292
 
293 293
         // ... form fields...
294
-        if ( empty( $_POST['getpaid_payment_form_submission'] ) ) {
295
-            _e( 'Error: Reload the page and try again.', 'invoicing' );
294
+        if (empty($_POST['getpaid_payment_form_submission'])) {
295
+            _e('Error: Reload the page and try again.', 'invoicing');
296 296
             exit;
297 297
         }
298 298
 
299 299
         // Process the payment form.
300
-        $checkout_class = apply_filters( 'getpaid_checkout_class', 'GetPaid_Checkout' );
301
-        $checkout       = new $checkout_class( new GetPaid_Payment_Form_Submission() );
300
+        $checkout_class = apply_filters('getpaid_checkout_class', 'GetPaid_Checkout');
301
+        $checkout       = new $checkout_class(new GetPaid_Payment_Form_Submission());
302 302
         $checkout->process_checkout();
303 303
 
304 304
         exit;
@@ -311,55 +311,55 @@  discard block
 block discarded – undo
311 311
      */
312 312
     public static function get_payment_form_states_field() {
313 313
 
314
-        if ( empty( $_GET['country'] ) || empty( $_GET['form'] ) ) {
314
+        if (empty($_GET['country']) || empty($_GET['form'])) {
315 315
             exit;
316 316
         }
317 317
 
318
-        $elements = getpaid_get_payment_form_elements( $_GET['form'] );
318
+        $elements = getpaid_get_payment_form_elements($_GET['form']);
319 319
 
320
-        if ( empty( $elements ) ) {
320
+        if (empty($elements)) {
321 321
             exit;
322 322
         }
323 323
 
324 324
         $address_fields = array();
325
-        foreach ( $elements as $element ) {
326
-            if ( 'address' === $element['type'] ) {
325
+        foreach ($elements as $element) {
326
+            if ('address' === $element['type']) {
327 327
                 $address_fields = $element;
328 328
                 break;
329 329
             }
330 330
         }
331 331
 
332
-        if ( empty( $address_fields ) ) {
332
+        if (empty($address_fields)) {
333 333
             exit;
334 334
         }
335 335
 
336
-        foreach ( $address_fields['fields'] as $address_field ) {
336
+        foreach ($address_fields['fields'] as $address_field) {
337 337
 
338
-            if ( 'wpinv_state' == $address_field['name'] ) {
338
+            if ('wpinv_state' == $address_field['name']) {
339 339
 
340
-                $wrap_class  = getpaid_get_form_element_grid_class( $address_field );
341
-                $wrap_class  = esc_attr( "$wrap_class getpaid-address-field-wrapper" );
342
-                $placeholder = empty( $address_field['placeholder'] ) ? '' : esc_attr( $address_field['placeholder'] );
343
-                $description = empty( $address_field['description'] ) ? '' : wp_kses_post( $address_field['description'] );
344
-                $value       = is_user_logged_in() ? get_user_meta( get_current_user_id(), '_wpinv_state', true ) : '';
345
-                $label       = empty( $address_field['label'] ) ? '' : wp_kses_post( $address_field['label'] );
340
+                $wrap_class  = getpaid_get_form_element_grid_class($address_field);
341
+                $wrap_class  = esc_attr("$wrap_class getpaid-address-field-wrapper");
342
+                $placeholder = empty($address_field['placeholder']) ? '' : esc_attr($address_field['placeholder']);
343
+                $description = empty($address_field['description']) ? '' : wp_kses_post($address_field['description']);
344
+                $value       = is_user_logged_in() ? get_user_meta(get_current_user_id(), '_wpinv_state', true) : '';
345
+                $label       = empty($address_field['label']) ? '' : wp_kses_post($address_field['label']);
346 346
 
347
-                if ( ! empty( $address_field['required'] ) ) {
347
+                if (!empty($address_field['required'])) {
348 348
                     $label .= "<span class='text-danger'> *</span>";
349 349
                 }
350 350
 
351
-                $html = getpaid_get_states_select_markup (
352
-                    sanitize_text_field( $_GET['country'] ),
351
+                $html = getpaid_get_states_select_markup(
352
+                    sanitize_text_field($_GET['country']),
353 353
                     $value,
354 354
                     $placeholder,
355 355
                     $label,
356 356
                     $description,
357
-                    ! empty( $address_field['required'] ),
357
+                    !empty($address_field['required']),
358 358
                     $wrap_class,
359
-                    wpinv_clean( $_GET['name'] )
359
+                    wpinv_clean($_GET['name'])
360 360
                 );
361 361
 
362
-                wp_send_json_success( $html );
362
+                wp_send_json_success($html);
363 363
                 exit;
364 364
 
365 365
             }
@@ -375,66 +375,66 @@  discard block
 block discarded – undo
375 375
     public static function recalculate_invoice_totals() {
376 376
 
377 377
         // Verify nonce.
378
-        check_ajax_referer( 'wpinv-nonce' );
378
+        check_ajax_referer('wpinv-nonce');
379 379
 
380
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
380
+        if (!wpinv_current_user_can_manage_invoicing()) {
381 381
             exit;
382 382
         }
383 383
 
384 384
         // We need an invoice.
385
-        if ( empty( $_POST['post_id'] ) ) {
385
+        if (empty($_POST['post_id'])) {
386 386
             exit;
387 387
         }
388 388
 
389 389
         // Fetch the invoice.
390
-        $invoice = new WPInv_Invoice( trim( $_POST['post_id'] ) );
390
+        $invoice = new WPInv_Invoice(trim($_POST['post_id']));
391 391
 
392 392
         // Ensure it exists.
393
-        if ( ! $invoice->get_id() ) {
393
+        if (!$invoice->get_id()) {
394 394
             exit;
395 395
         }
396 396
 
397 397
         // Maybe set the country, state, currency.
398
-        foreach ( array( 'country', 'state', 'currency', 'vat_number', 'discount_code' ) as $key ) {
399
-            if ( isset( $_POST[ $key ] ) ) {
398
+        foreach (array('country', 'state', 'currency', 'vat_number', 'discount_code') as $key) {
399
+            if (isset($_POST[$key])) {
400 400
                 $method = "set_$key";
401
-                $invoice->$method( sanitize_text_field( $_POST[ $key ] ) );
401
+                $invoice->$method(sanitize_text_field($_POST[$key]));
402 402
             }
403 403
         }
404 404
 
405 405
         // Maybe disable taxes.
406
-        $invoice->set_disable_taxes( ! empty( $_POST['taxes'] ) );
406
+        $invoice->set_disable_taxes(!empty($_POST['taxes']));
407 407
 
408 408
         // Discount code.
409
-        if ( ! $invoice->is_paid() && ! $invoice->is_refunded() ) {
410
-            $discount = new WPInv_Discount( $invoice->get_discount_code() );
411
-            if ( $discount->exists() ) {
412
-                $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
409
+        if (!$invoice->is_paid() && !$invoice->is_refunded()) {
410
+            $discount = new WPInv_Discount($invoice->get_discount_code());
411
+            if ($discount->exists()) {
412
+                $invoice->add_discount(getpaid_calculate_invoice_discount($invoice, $discount));
413 413
             } else {
414
-                $invoice->remove_discount( 'discount_code' );
414
+                $invoice->remove_discount('discount_code');
415 415
             }
416 416
         }
417 417
 
418 418
         // Recalculate totals.
419 419
         $invoice->recalculate_total();
420 420
 
421
-        $total = wpinv_price( $invoice->get_total(), $invoice->get_currency() );
421
+        $total = wpinv_price($invoice->get_total(), $invoice->get_currency());
422 422
 
423
-        if ( $invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total() ) {
424
-            $recurring_total = wpinv_price( $invoice->get_recurring_total(), $invoice->get_currency() );
425
-            $total          .= '<small class="form-text text-muted">' . sprintf( __( 'Recurring Price: %s', 'invoicing' ), $recurring_total ) . '</small>';
423
+        if ($invoice->is_recurring() && $invoice->is_parent() && $invoice->get_total() != $invoice->get_recurring_total()) {
424
+            $recurring_total = wpinv_price($invoice->get_recurring_total(), $invoice->get_currency());
425
+            $total          .= '<small class="form-text text-muted">' . sprintf(__('Recurring Price: %s', 'invoicing'), $recurring_total) . '</small>';
426 426
         }
427 427
 
428 428
         $totals = array(
429
-            'subtotal' => wpinv_price( $invoice->get_subtotal(), $invoice->get_currency() ),
430
-            'discount' => wpinv_price( $invoice->get_total_discount(), $invoice->get_currency() ),
431
-            'tax'      => wpinv_price( $invoice->get_total_tax(), $invoice->get_currency() ),
429
+            'subtotal' => wpinv_price($invoice->get_subtotal(), $invoice->get_currency()),
430
+            'discount' => wpinv_price($invoice->get_total_discount(), $invoice->get_currency()),
431
+            'tax'      => wpinv_price($invoice->get_total_tax(), $invoice->get_currency()),
432 432
             'total'    => $total,
433 433
         );
434 434
 
435
-        $totals = apply_filters( 'getpaid_invoice_totals', $totals, $invoice );
435
+        $totals = apply_filters('getpaid_invoice_totals', $totals, $invoice);
436 436
 
437
-        wp_send_json_success( compact( 'totals' ) );
437
+        wp_send_json_success(compact('totals'));
438 438
     }
439 439
 
440 440
     /**
@@ -443,33 +443,33 @@  discard block
 block discarded – undo
443 443
     public static function get_invoice_items() {
444 444
 
445 445
         // Verify nonce.
446
-        check_ajax_referer( 'wpinv-nonce' );
446
+        check_ajax_referer('wpinv-nonce');
447 447
 
448
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
448
+        if (!wpinv_current_user_can_manage_invoicing()) {
449 449
             exit;
450 450
         }
451 451
 
452 452
         // We need an invoice and items.
453
-        if ( empty( $_POST['post_id'] ) ) {
453
+        if (empty($_POST['post_id'])) {
454 454
             exit;
455 455
         }
456 456
 
457 457
         // Fetch the invoice.
458
-        $invoice = new WPInv_Invoice( trim( $_POST['post_id'] ) );
458
+        $invoice = new WPInv_Invoice(trim($_POST['post_id']));
459 459
 
460 460
         // Ensure it exists.
461
-        if ( ! $invoice->get_id() ) {
461
+        if (!$invoice->get_id()) {
462 462
             exit;
463 463
         }
464 464
 
465 465
         // Return an array of invoice items.
466 466
         $items = array();
467 467
 
468
-        foreach ( $invoice->get_items() as $item ) {
469
-            $items[] = $item->prepare_data_for_invoice_edit_ajax(  $invoice->get_currency(), $invoice->is_renewal()  );
468
+        foreach ($invoice->get_items() as $item) {
469
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency(), $invoice->is_renewal());
470 470
         }
471 471
 
472
-        wp_send_json_success( compact( 'items' ) );
472
+        wp_send_json_success(compact('items'));
473 473
     }
474 474
 
475 475
     /**
@@ -478,50 +478,50 @@  discard block
 block discarded – undo
478 478
     public static function edit_invoice_item() {
479 479
 
480 480
         // Verify nonce.
481
-        check_ajax_referer( 'wpinv-nonce' );
481
+        check_ajax_referer('wpinv-nonce');
482 482
 
483
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
483
+        if (!wpinv_current_user_can_manage_invoicing()) {
484 484
             exit;
485 485
         }
486 486
 
487 487
         // We need an invoice and item details.
488
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['data'] ) ) {
488
+        if (empty($_POST['post_id']) || empty($_POST['data'])) {
489 489
             exit;
490 490
         }
491 491
 
492 492
         // Fetch the invoice.
493
-        $invoice = new WPInv_Invoice( trim( $_POST['post_id'] ) );
493
+        $invoice = new WPInv_Invoice(trim($_POST['post_id']));
494 494
 
495 495
         // Ensure it exists and its not been paid for.
496
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
496
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
497 497
             exit;
498 498
         }
499 499
 
500 500
         // Format the data.
501
-        $data = wp_unslash( wp_list_pluck( $_POST['data'], 'value', 'field' ) );
501
+        $data = wp_unslash(wp_list_pluck($_POST['data'], 'value', 'field'));
502 502
 
503 503
         // Ensure that we have an item id.
504
-        if ( empty( $data['id'] ) ) {
504
+        if (empty($data['id'])) {
505 505
             exit;
506 506
         }
507 507
 
508 508
         // Abort if the invoice does not have the specified item.
509
-        $item = $invoice->get_item( (int) $data['id'] );
509
+        $item = $invoice->get_item((int) $data['id']);
510 510
 
511
-        if ( empty( $item ) ) {
511
+        if (empty($item)) {
512 512
             exit;
513 513
         }
514 514
 
515 515
         // Update the item.
516
-        $item->set_price( floatval( $data['price'] ) );
517
-        $item->set_name( sanitize_text_field( $data['name'] ) );
518
-        $item->set_description( wp_kses_post( $data['description'] ) );
519
-        $item->set_quantity( intval( $data['quantity'] ) );
516
+        $item->set_price(floatval($data['price']));
517
+        $item->set_name(sanitize_text_field($data['name']));
518
+        $item->set_description(wp_kses_post($data['description']));
519
+        $item->set_quantity(intval($data['quantity']));
520 520
 
521 521
         // Add it to the invoice.
522
-        $error = $invoice->add_item( $item );
522
+        $error = $invoice->add_item($item);
523 523
         $alert = false;
524
-        if ( is_wp_error( $error ) ) {
524
+        if (is_wp_error($error)) {
525 525
             $alert = $error->get_error_message();
526 526
         }
527 527
 
@@ -534,11 +534,11 @@  discard block
 block discarded – undo
534 534
         // Return an array of invoice items.
535 535
         $items = array();
536 536
 
537
-        foreach ( $invoice->get_items() as $item ) {
538
-            $items[] = $item->prepare_data_for_invoice_edit_ajax(  $invoice->get_currency()  );
537
+        foreach ($invoice->get_items() as $item) {
538
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
539 539
         }
540 540
 
541
-        wp_send_json_success( compact( 'items', 'alert' ) );
541
+        wp_send_json_success(compact('items', 'alert'));
542 542
     }
543 543
 
544 544
     /**
@@ -547,33 +547,33 @@  discard block
 block discarded – undo
547 547
     public static function remove_invoice_item() {
548 548
 
549 549
         // Verify nonce.
550
-        check_ajax_referer( 'wpinv-nonce' );
550
+        check_ajax_referer('wpinv-nonce');
551 551
 
552
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
552
+        if (!wpinv_current_user_can_manage_invoicing()) {
553 553
             exit;
554 554
         }
555 555
 
556 556
         // We need an invoice and an item.
557
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['item_id'] ) ) {
557
+        if (empty($_POST['post_id']) || empty($_POST['item_id'])) {
558 558
             exit;
559 559
         }
560 560
 
561 561
         // Fetch the invoice.
562
-        $invoice = new WPInv_Invoice( trim( $_POST['post_id'] ) );
562
+        $invoice = new WPInv_Invoice(trim($_POST['post_id']));
563 563
 
564 564
         // Ensure it exists and its not been paid for.
565
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
565
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
566 566
             exit;
567 567
         }
568 568
 
569 569
         // Abort if the invoice does not have the specified item.
570
-        $item = $invoice->get_item( (int) $_POST['item_id'] );
570
+        $item = $invoice->get_item((int) $_POST['item_id']);
571 571
 
572
-        if ( empty( $item ) ) {
572
+        if (empty($item)) {
573 573
             exit;
574 574
         }
575 575
 
576
-        $invoice->remove_item( (int) $_POST['item_id'] );
576
+        $invoice->remove_item((int) $_POST['item_id']);
577 577
 
578 578
         // Update totals.
579 579
         $invoice->recalculate_total();
@@ -584,11 +584,11 @@  discard block
 block discarded – undo
584 584
         // Return an array of invoice items.
585 585
         $items = array();
586 586
 
587
-        foreach ( $invoice->get_items() as $item ) {
588
-            $items[] = $item->prepare_data_for_invoice_edit_ajax(  $invoice->get_currency()  );
587
+        foreach ($invoice->get_items() as $item) {
588
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
589 589
         }
590 590
 
591
-        wp_send_json_success( compact( 'items' ) );
591
+        wp_send_json_success(compact('items'));
592 592
     }
593 593
 
594 594
     /**
@@ -597,39 +597,39 @@  discard block
 block discarded – undo
597 597
     public static function add_invoice_items() {
598 598
 
599 599
         // Verify nonce.
600
-        check_ajax_referer( 'wpinv-nonce' );
600
+        check_ajax_referer('wpinv-nonce');
601 601
 
602
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
602
+        if (!wpinv_current_user_can_manage_invoicing()) {
603 603
             exit;
604 604
         }
605 605
 
606 606
         // We need an invoice and items.
607
-        if ( empty( $_POST['post_id'] ) || empty( $_POST['items'] ) ) {
607
+        if (empty($_POST['post_id']) || empty($_POST['items'])) {
608 608
             exit;
609 609
         }
610 610
 
611 611
         // Fetch the invoice.
612
-        $invoice = new WPInv_Invoice( trim( $_POST['post_id'] ) );
612
+        $invoice = new WPInv_Invoice(trim($_POST['post_id']));
613 613
         $alert   = false;
614 614
 
615 615
         // Ensure it exists and its not been paid for.
616
-        if ( ! $invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded() ) {
616
+        if (!$invoice->get_id() || $invoice->is_paid() || $invoice->is_refunded()) {
617 617
             exit;
618 618
         }
619 619
 
620 620
         // Add the items.
621
-        foreach ( $_POST['items'] as $data ) {
621
+        foreach ($_POST['items'] as $data) {
622 622
 
623
-            $item = new GetPaid_Form_Item( $data[ 'id' ] );
623
+            $item = new GetPaid_Form_Item($data['id']);
624 624
 
625
-            if ( is_numeric( $data[ 'qty' ] ) && (float) $data[ 'qty' ] > 0 ) {
626
-                $item->set_quantity( $data[ 'qty' ] );
625
+            if (is_numeric($data['qty']) && (float) $data['qty'] > 0) {
626
+                $item->set_quantity($data['qty']);
627 627
             }
628 628
 
629
-            if ( $item->get_id() > 0 ) {
630
-                $error = $invoice->add_item( $item );
629
+            if ($item->get_id() > 0) {
630
+                $error = $invoice->add_item($item);
631 631
 
632
-                if ( is_wp_error( $error ) ) {
632
+                if (is_wp_error($error)) {
633 633
                     $alert = $error->get_error_message();
634 634
                 }
635 635
 
@@ -644,11 +644,11 @@  discard block
 block discarded – undo
644 644
         // Return an array of invoice items.
645 645
         $items = array();
646 646
 
647
-        foreach ( $invoice->get_items() as $item ) {
648
-            $items[] = $item->prepare_data_for_invoice_edit_ajax( $invoice->get_currency() );
647
+        foreach ($invoice->get_items() as $item) {
648
+            $items[] = $item->prepare_data_for_invoice_edit_ajax($invoice->get_currency());
649 649
         }
650 650
 
651
-        wp_send_json_success( compact( 'items', 'alert' ) );
651
+        wp_send_json_success(compact('items', 'alert'));
652 652
     }
653 653
 
654 654
     /**
@@ -657,15 +657,15 @@  discard block
 block discarded – undo
657 657
     public static function get_invoicing_items() {
658 658
 
659 659
         // Verify nonce.
660
-        check_ajax_referer( 'wpinv-nonce' );
660
+        check_ajax_referer('wpinv-nonce');
661 661
 
662
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
662
+        if (!wpinv_current_user_can_manage_invoicing()) {
663 663
             exit;
664 664
         }
665 665
 
666 666
         // We need a search term.
667
-        if ( empty( $_GET['search'] ) ) {
668
-            wp_send_json_success( array() );
667
+        if (empty($_GET['search'])) {
668
+            wp_send_json_success(array());
669 669
         }
670 670
 
671 671
         // Retrieve items.
@@ -674,8 +674,8 @@  discard block
 block discarded – undo
674 674
             'orderby'        => 'title',
675 675
             'order'          => 'ASC',
676 676
             'posts_per_page' => -1,
677
-            'post_status'    => array( 'publish' ),
678
-            's'              => trim( $_GET['search'] ),
677
+            'post_status'    => array('publish'),
678
+            's'              => trim($_GET['search']),
679 679
             'meta_query'     => array(
680 680
                 array(
681 681
                     'key'       => '_wpinv_type',
@@ -685,22 +685,22 @@  discard block
 block discarded – undo
685 685
             )
686 686
         );
687 687
 
688
-        $items = get_posts( apply_filters( 'getpaid_ajax_invoice_items_query_args', $item_args ) );
688
+        $items = get_posts(apply_filters('getpaid_ajax_invoice_items_query_args', $item_args));
689 689
         $data  = array();
690 690
 
691 691
 
692
-        $is_payment_form = ( ! empty( $_GET['post_id'] ) && 'wpi_payment_form' == get_post_type( $_GET['post_id'] ) );
692
+        $is_payment_form = (!empty($_GET['post_id']) && 'wpi_payment_form' == get_post_type($_GET['post_id']));
693 693
 
694
-        foreach ( $items as $item ) {
695
-            $item      = new GetPaid_Form_Item( $item );
694
+        foreach ($items as $item) {
695
+            $item = new GetPaid_Form_Item($item);
696 696
             $data[] = array(
697 697
                 'id'        => (int) $item->get_id(),
698
-                'text'      => strip_tags( $item->get_name() ),
699
-                'form_data' => $is_payment_form ? $item->prepare_data_for_use( false ) : '',
698
+                'text'      => strip_tags($item->get_name()),
699
+                'form_data' => $is_payment_form ? $item->prepare_data_for_use(false) : '',
700 700
             );
701 701
         }
702 702
 
703
-        wp_send_json_success( $data );
703
+        wp_send_json_success($data);
704 704
 
705 705
     }
706 706
 
@@ -710,36 +710,36 @@  discard block
 block discarded – undo
710 710
     public static function get_customers() {
711 711
 
712 712
         // Verify nonce.
713
-        check_ajax_referer( 'wpinv-nonce' );
713
+        check_ajax_referer('wpinv-nonce');
714 714
 
715
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
715
+        if (!wpinv_current_user_can_manage_invoicing()) {
716 716
             exit;
717 717
         }
718 718
 
719 719
         // We need a search term.
720
-        if ( empty( $_GET['search'] ) ) {
721
-            wp_send_json_success( array() );
720
+        if (empty($_GET['search'])) {
721
+            wp_send_json_success(array());
722 722
         }
723 723
 
724 724
         // Retrieve customers.
725 725
     
726 726
         $customer_args = array(
727
-            'fields'         => array( 'ID', 'user_email', 'display_name' ),
727
+            'fields'         => array('ID', 'user_email', 'display_name'),
728 728
             'orderby'        => 'display_name',
729
-            'search'         => sanitize_text_field( $_GET['search'] ),
729
+            'search'         => sanitize_text_field($_GET['search']),
730 730
         );
731 731
 
732
-        $customers = get_users( apply_filters( 'getpaid_ajax_invoice_customers_query_args', $customer_args ) );
732
+        $customers = get_users(apply_filters('getpaid_ajax_invoice_customers_query_args', $customer_args));
733 733
         $data      = array();
734 734
 
735
-        foreach ( $customers as $customer ) {
735
+        foreach ($customers as $customer) {
736 736
             $data[] = array(
737 737
                 'id'        => (int) $customer->ID,
738
-                'text'      => strip_tags( sprintf( _x( '%1$s (%2$s)', 'user dropdown', 'invoicing' ), $customer->display_name, $customer->user_email ) ),
738
+                'text'      => strip_tags(sprintf(_x('%1$s (%2$s)', 'user dropdown', 'invoicing'), $customer->display_name, $customer->user_email)),
739 739
             );
740 740
         }
741 741
 
742
-        wp_send_json_success( $data );
742
+        wp_send_json_success($data);
743 743
 
744 744
     }
745 745
 
@@ -749,28 +749,28 @@  discard block
 block discarded – undo
749 749
     public static function get_aui_states_field() {
750 750
 
751 751
         // Verify nonce.
752
-        check_ajax_referer( 'wpinv-nonce' );
752
+        check_ajax_referer('wpinv-nonce');
753 753
 
754 754
         // We need a country.
755
-        if ( empty( $_GET['country'] ) ) {
755
+        if (empty($_GET['country'])) {
756 756
             exit;
757 757
         }
758 758
 
759
-        $states = wpinv_get_country_states( sanitize_text_field( $_GET['country'] ) );
760
-        $state  = isset( $_GET['state'] ) ? sanitize_text_field( $_GET['state'] ) : wpinv_get_default_state();
761
-        $name   = isset( $_GET['name'] ) ? sanitize_text_field( $_GET['name'] ) : 'wpinv_state';
762
-        $class  = isset( $_GET['class'] ) ? sanitize_text_field( $_GET['class'] ) : 'form-control-sm';
759
+        $states = wpinv_get_country_states(sanitize_text_field($_GET['country']));
760
+        $state  = isset($_GET['state']) ? sanitize_text_field($_GET['state']) : wpinv_get_default_state();
761
+        $name   = isset($_GET['name']) ? sanitize_text_field($_GET['name']) : 'wpinv_state';
762
+        $class  = isset($_GET['class']) ? sanitize_text_field($_GET['class']) : 'form-control-sm';
763 763
 
764
-        if ( empty( $states ) ) {
764
+        if (empty($states)) {
765 765
 
766 766
             $html = aui()->input(
767 767
                 array(
768 768
                     'type'        => 'text',
769 769
                     'id'          => 'wpinv_state',
770 770
                     'name'        => $name,
771
-                    'label'       => __( 'State', 'invoicing' ),
771
+                    'label'       => __('State', 'invoicing'),
772 772
                     'label_type'  => 'vertical',
773
-                    'placeholder' => __( 'State', 'invoicing' ),
773
+                    'placeholder' => __('State', 'invoicing'),
774 774
                     'class'       => $class,
775 775
                     'value'       => $state,
776 776
                 )
@@ -782,9 +782,9 @@  discard block
 block discarded – undo
782 782
                 array(
783 783
                     'id'          => 'wpinv_state',
784 784
                     'name'        => $name,
785
-                    'label'       => __( 'State', 'invoicing' ),
785
+                    'label'       => __('State', 'invoicing'),
786 786
                     'label_type'  => 'vertical',
787
-                    'placeholder' => __( 'Select a state', 'invoicing' ),
787
+                    'placeholder' => __('Select a state', 'invoicing'),
788 788
                     'class'       => $class,
789 789
                     'value'       => $state,
790 790
                     'options'     => $states,
@@ -798,7 +798,7 @@  discard block
 block discarded – undo
798 798
         wp_send_json_success(
799 799
             array(
800 800
                 'html'   => $html,
801
-                'select' => ! empty ( $states )
801
+                'select' => !empty ($states)
802 802
             )
803 803
         );
804 804
 
@@ -812,11 +812,11 @@  discard block
 block discarded – undo
812 812
     public static function payment_form_refresh_prices() {
813 813
 
814 814
         // Check nonce.
815
-        check_ajax_referer( 'getpaid_form_nonce' );
815
+        check_ajax_referer('getpaid_form_nonce');
816 816
 
817 817
         // ... form fields...
818
-        if ( empty( $_POST['getpaid_payment_form_submission'] ) ) {
819
-            _e( 'Error: Reload the page and try again.', 'invoicing' );
818
+        if (empty($_POST['getpaid_payment_form_submission'])) {
819
+            _e('Error: Reload the page and try again.', 'invoicing');
820 820
             exit;
821 821
         }
822 822
 
@@ -824,18 +824,18 @@  discard block
 block discarded – undo
824 824
         $submission = new GetPaid_Payment_Form_Submission();
825 825
 
826 826
         // Do we have an error?
827
-        if ( ! empty( $submission->last_error ) ) {
827
+        if (!empty($submission->last_error)) {
828 828
             echo $submission->last_error;
829 829
             exit;
830 830
         }
831 831
 
832 832
         // Prepare the response.
833
-        $response = new GetPaid_Payment_Form_Submission_Refresh_Prices( $submission );
833
+        $response = new GetPaid_Payment_Form_Submission_Refresh_Prices($submission);
834 834
         
835 835
         // Filter the response.
836
-        $response = apply_filters( 'getpaid_payment_form_ajax_refresh_prices', $response->response, $submission );
836
+        $response = apply_filters('getpaid_payment_form_ajax_refresh_prices', $response->response, $submission);
837 837
 
838
-        wp_send_json_success( $response );
838
+        wp_send_json_success($response);
839 839
     }
840 840
 
841 841
 }
Please login to merge, or discard this patch.
widgets/subscriptions.php 2 patches
Indentation   +332 added lines, -332 removed lines patch added patch discarded remove patch
@@ -14,144 +14,144 @@  discard block
 block discarded – undo
14 14
  */
15 15
 class WPInv_Subscriptions_Widget extends WP_Super_Duper {
16 16
 
17
-	/**
18
-	 * Register the widget with WordPress.
19
-	 *
20
-	 */
21
-	public function __construct() {
22
-
23
-		$options = array(
24
-			'textdomain'    => 'invoicing',
25
-			'block-icon'    => 'controls-repeat',
26
-			'block-category'=> 'widgets',
27
-			'block-keywords'=> "['invoicing','subscriptions', 'getpaid']",
28
-			'class_name'     => __CLASS__,
29
-			'base_id'       => 'wpinv_subscriptions',
30
-			'name'          => __( 'GetPaid > Subscriptions', 'invoicing' ),
31
-			'widget_ops'    => array(
32
-				'classname'   => 'getpaid-subscriptions bsui',
33
-				'description' => esc_html__( "Displays the current user's subscriptions.", 'invoicing' ),
34
-			),
35
-			'arguments'     => array(
36
-				'title'  => array(
37
-					'title'       => __( 'Widget title', 'invoicing' ),
38
-					'desc'        => __( 'Enter widget title.', 'invoicing' ),
39
-					'type'        => 'text',
40
-					'desc_tip'    => true,
41
-					'default'     => '',
42
-					'advanced'    => false
43
-				),
44
-			)
45
-
46
-		);
47
-
48
-
49
-		parent::__construct( $options );
50
-	}
51
-
52
-	/**
53
-	 * Retrieves current user's subscriptions.
54
-	 *
55
-	 * @return GetPaid_Subscriptions_Query
56
-	 */
57
-	public function get_subscriptions() {
58
-
59
-		// Prepare license args.
60
-		$args  = array(
61
-			'customer_in' => get_current_user_id(),
62
-			'paged'       => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1,
63
-		);
64
-
65
-		return new GetPaid_Subscriptions_Query( $args );
66
-
67
-	}
68
-
69
-	/**
70
-	 * The Super block output function.
71
-	 *
72
-	 * @param array $args
73
-	 * @param array $widget_args
74
-	 * @param string $content
75
-	 *
76
-	 * @return mixed|string|bool
77
-	 */
78
-	public function output( $args = array(), $widget_args = array(), $content = '' ) {
79
-
80
-		// Ensure that the user is logged in.
81
-		if ( ! is_user_logged_in() ) {
82
-
83
-			return aui()->alert(
84
-				array(
85
-					'content' => wp_kses_post( __( 'You need to log-in or create an account to view this section.', 'invoicing' ) ),
86
-					'type'    => 'error',
87
-				)
88
-			);
89
-
90
-		}
91
-
92
-		// Are we displaying a single subscription?
93
-		if ( isset( $_GET['subscription'] ) ) {
94
-			return $this->display_single_subscription( trim( $_GET['subscription'] ) );
95
-		}
96
-
97
-		// Retrieve the user's subscriptions.
98
-		$subscriptions = $this->get_subscriptions();
99
-
100
-		// Start the output buffer.
101
-		ob_start();
102
-
103
-		// Backwards compatibility.
104
-		do_action( 'wpinv_before_user_subscriptions' );
105
-
106
-		// Display errors and notices.
107
-		wpinv_print_errors();
108
-
109
-		do_action( 'getpaid_license_manager_before_subscriptions', $subscriptions );
110
-
111
-		// Print the table header.
112
-		$this->print_table_header();
113
-
114
-		// Print table body.
115
-		$this->print_table_body( $subscriptions->get_results() );
116
-
117
-		// Print table footer.
118
-		$this->print_table_footer();
119
-
120
-		// Print the navigation.
121
-		$this->print_navigation( $subscriptions->get_total() );
122
-
123
-		// Backwards compatibility.
124
-		do_action( 'wpinv_after_user_subscriptions' );
125
-
126
-		// Return the output.
127
-		return ob_get_clean();
128
-
129
-	}
130
-
131
-	/**
132
-	 * Retrieves the subscription columns.
133
-	 *
134
-	 * @return array
135
-	 */
136
-	public function get_subscriptions_table_columns() {
17
+    /**
18
+     * Register the widget with WordPress.
19
+     *
20
+     */
21
+    public function __construct() {
22
+
23
+        $options = array(
24
+            'textdomain'    => 'invoicing',
25
+            'block-icon'    => 'controls-repeat',
26
+            'block-category'=> 'widgets',
27
+            'block-keywords'=> "['invoicing','subscriptions', 'getpaid']",
28
+            'class_name'     => __CLASS__,
29
+            'base_id'       => 'wpinv_subscriptions',
30
+            'name'          => __( 'GetPaid > Subscriptions', 'invoicing' ),
31
+            'widget_ops'    => array(
32
+                'classname'   => 'getpaid-subscriptions bsui',
33
+                'description' => esc_html__( "Displays the current user's subscriptions.", 'invoicing' ),
34
+            ),
35
+            'arguments'     => array(
36
+                'title'  => array(
37
+                    'title'       => __( 'Widget title', 'invoicing' ),
38
+                    'desc'        => __( 'Enter widget title.', 'invoicing' ),
39
+                    'type'        => 'text',
40
+                    'desc_tip'    => true,
41
+                    'default'     => '',
42
+                    'advanced'    => false
43
+                ),
44
+            )
45
+
46
+        );
47
+
48
+
49
+        parent::__construct( $options );
50
+    }
51
+
52
+    /**
53
+     * Retrieves current user's subscriptions.
54
+     *
55
+     * @return GetPaid_Subscriptions_Query
56
+     */
57
+    public function get_subscriptions() {
58
+
59
+        // Prepare license args.
60
+        $args  = array(
61
+            'customer_in' => get_current_user_id(),
62
+            'paged'       => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1,
63
+        );
64
+
65
+        return new GetPaid_Subscriptions_Query( $args );
66
+
67
+    }
68
+
69
+    /**
70
+     * The Super block output function.
71
+     *
72
+     * @param array $args
73
+     * @param array $widget_args
74
+     * @param string $content
75
+     *
76
+     * @return mixed|string|bool
77
+     */
78
+    public function output( $args = array(), $widget_args = array(), $content = '' ) {
79
+
80
+        // Ensure that the user is logged in.
81
+        if ( ! is_user_logged_in() ) {
82
+
83
+            return aui()->alert(
84
+                array(
85
+                    'content' => wp_kses_post( __( 'You need to log-in or create an account to view this section.', 'invoicing' ) ),
86
+                    'type'    => 'error',
87
+                )
88
+            );
89
+
90
+        }
91
+
92
+        // Are we displaying a single subscription?
93
+        if ( isset( $_GET['subscription'] ) ) {
94
+            return $this->display_single_subscription( trim( $_GET['subscription'] ) );
95
+        }
96
+
97
+        // Retrieve the user's subscriptions.
98
+        $subscriptions = $this->get_subscriptions();
99
+
100
+        // Start the output buffer.
101
+        ob_start();
102
+
103
+        // Backwards compatibility.
104
+        do_action( 'wpinv_before_user_subscriptions' );
105
+
106
+        // Display errors and notices.
107
+        wpinv_print_errors();
108
+
109
+        do_action( 'getpaid_license_manager_before_subscriptions', $subscriptions );
110
+
111
+        // Print the table header.
112
+        $this->print_table_header();
113
+
114
+        // Print table body.
115
+        $this->print_table_body( $subscriptions->get_results() );
116
+
117
+        // Print table footer.
118
+        $this->print_table_footer();
119
+
120
+        // Print the navigation.
121
+        $this->print_navigation( $subscriptions->get_total() );
122
+
123
+        // Backwards compatibility.
124
+        do_action( 'wpinv_after_user_subscriptions' );
125
+
126
+        // Return the output.
127
+        return ob_get_clean();
128
+
129
+    }
130
+
131
+    /**
132
+     * Retrieves the subscription columns.
133
+     *
134
+     * @return array
135
+     */
136
+    public function get_subscriptions_table_columns() {
137 137
 
138
-		$columns = array(
139
-			'subscription'   => __( 'Subscription', 'invoicing' ),
140
-			'amount'         => __( 'Amount', 'invoicing' ),
141
-			'renewal-date'   => __( 'Next payment', 'invoicing' ),
142
-			'status'         => __( 'Status', 'invoicing' ),
143
-		);
138
+        $columns = array(
139
+            'subscription'   => __( 'Subscription', 'invoicing' ),
140
+            'amount'         => __( 'Amount', 'invoicing' ),
141
+            'renewal-date'   => __( 'Next payment', 'invoicing' ),
142
+            'status'         => __( 'Status', 'invoicing' ),
143
+        );
144 144
 
145
-		return apply_filters( 'getpaid_frontend_subscriptions_table_columns', $columns );
146
-	}
145
+        return apply_filters( 'getpaid_frontend_subscriptions_table_columns', $columns );
146
+    }
147 147
 
148
-	/**
149
-	 * Displays the table header.
150
-	 *
151
-	 */
152
-	public function print_table_header() {
148
+    /**
149
+     * Displays the table header.
150
+     *
151
+     */
152
+    public function print_table_header() {
153 153
 
154
-		?>
154
+        ?>
155 155
 
156 156
 			<table class="table table-bordered table-striped">
157 157
 
@@ -167,121 +167,121 @@  discard block
 block discarded – undo
167 167
 
168 168
 		<?php
169 169
 
170
-	}
170
+    }
171 171
 
172
-	/**
173
-	 * Displays the table body.
174
-	 *
175
-	 * @param WPInv_Subscription[] $subscriptions
176
-	 */
177
-	public function print_table_body( $subscriptions ) {
172
+    /**
173
+     * Displays the table body.
174
+     *
175
+     * @param WPInv_Subscription[] $subscriptions
176
+     */
177
+    public function print_table_body( $subscriptions ) {
178 178
 
179
-		if ( empty( $subscriptions ) ) {
180
-			$this->print_table_body_no_subscriptions();
181
-		} else {
182
-			$this->print_table_body_subscriptions( $subscriptions );
183
-		}
179
+        if ( empty( $subscriptions ) ) {
180
+            $this->print_table_body_no_subscriptions();
181
+        } else {
182
+            $this->print_table_body_subscriptions( $subscriptions );
183
+        }
184 184
 
185
-	}
185
+    }
186 186
 
187
-	/**
188
-	 * Displays the table body if no subscriptions were found.
189
-	 *
190
-	 */
191
-	public function print_table_body_no_subscriptions() {
187
+    /**
188
+     * Displays the table body if no subscriptions were found.
189
+     *
190
+     */
191
+    public function print_table_body_no_subscriptions() {
192 192
 
193
-		?>
193
+        ?>
194 194
 		<tbody>
195 195
 
196 196
 			<tr>
197 197
 				<td colspan="<?php echo count( $this->get_subscriptions_table_columns() ); ?>">
198 198
 
199 199
 					<?php
200
-						echo aui()->alert(
201
-							array(
202
-								'content' => wp_kses_post( __( 'No subscriptions found.', 'invoicing' ) ),
203
-								'type'    => 'warning',
204
-							)
205
-						);
206
-					?>
200
+                        echo aui()->alert(
201
+                            array(
202
+                                'content' => wp_kses_post( __( 'No subscriptions found.', 'invoicing' ) ),
203
+                                'type'    => 'warning',
204
+                            )
205
+                        );
206
+                    ?>
207 207
 
208 208
 				</td>
209 209
 			</tr>
210 210
 
211 211
 		</tbody>
212 212
 		<?php
213
-	}
213
+    }
214 214
 
215
-	/**
216
-	 * Displays the table body if subscriptions were found.
217
-	 *
218
-	 * @param WPInv_Subscription[] $subscriptions
219
-	 */
220
-	public function print_table_body_subscriptions( $subscriptions ) {
215
+    /**
216
+     * Displays the table body if subscriptions were found.
217
+     *
218
+     * @param WPInv_Subscription[] $subscriptions
219
+     */
220
+    public function print_table_body_subscriptions( $subscriptions ) {
221 221
 
222
-		?>
222
+        ?>
223 223
 		<tbody>
224 224
 
225 225
 			<?php foreach ( $subscriptions as $subscription ) : ?>
226 226
 				<tr class="getpaid-subscriptions-table-row subscription-<?php echo (int) $subscription->get_id(); ?>">
227 227
 					<?php
228
-						wpinv_get_template(
229
-							'subscriptions/subscriptions-table-row.php',
230
-							array(
231
-								'subscription' => $subscription,
232
-								'widget'       => $this
233
-							)
234
-						);
235
-					?>
228
+                        wpinv_get_template(
229
+                            'subscriptions/subscriptions-table-row.php',
230
+                            array(
231
+                                'subscription' => $subscription,
232
+                                'widget'       => $this
233
+                            )
234
+                        );
235
+                    ?>
236 236
 				</tr>
237 237
 			<?php endforeach; ?>
238 238
 
239 239
 		</tbody>
240 240
 		<?php
241
-	}
242
-
243
-	/**
244
-	 * Adds row actions to a column
245
-	 *
246
-	 * @param string $content column content
247
-	 * @param WPInv_Subscription $subscription
248
-	 * @since       1.0.0
249
-	 * @return      string
250
-	 */
251
-	public function add_row_actions( $content, $subscription ) {
252
-
253
-		// Prepare row actions.
254
-		$actions = array();
255
-
256
-		// View subscription action.
257
-		$view_url        = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
258
-		$view_url        = esc_url( add_query_arg( 'subscription', (int) $subscription->get_id(), $view_url ) );
259
-		$actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>';
260
-
261
-		// Filter the actions.
262
-		$actions = apply_filters( 'getpaid_subscriptions_table_subscription_actions', $actions, $subscription );
263
-
264
-		$sanitized  = array();
265
-		foreach ( $actions as $key => $action ) {
266
-			$key         = sanitize_html_class( $key );
267
-			$action      = wp_kses_post( $action );
268
-			$sanitized[] = "<span class='$key'>$action</span>";
269
-		}
270
-
271
-		$row_actions  = "<small class='form-text getpaid-subscription-item-actions'>";
272
-		$row_actions .= implode( ' | ', $sanitized );
273
-		$row_actions .= '</small>';
274
-
275
-		return $content . $row_actions;
276
-	}
277
-
278
-	/**
279
-	 * Displays the table footer.
280
-	 *
281
-	 */
282
-	public function print_table_footer() {
283
-
284
-		?>
241
+    }
242
+
243
+    /**
244
+     * Adds row actions to a column
245
+     *
246
+     * @param string $content column content
247
+     * @param WPInv_Subscription $subscription
248
+     * @since       1.0.0
249
+     * @return      string
250
+     */
251
+    public function add_row_actions( $content, $subscription ) {
252
+
253
+        // Prepare row actions.
254
+        $actions = array();
255
+
256
+        // View subscription action.
257
+        $view_url        = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
258
+        $view_url        = esc_url( add_query_arg( 'subscription', (int) $subscription->get_id(), $view_url ) );
259
+        $actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>';
260
+
261
+        // Filter the actions.
262
+        $actions = apply_filters( 'getpaid_subscriptions_table_subscription_actions', $actions, $subscription );
263
+
264
+        $sanitized  = array();
265
+        foreach ( $actions as $key => $action ) {
266
+            $key         = sanitize_html_class( $key );
267
+            $action      = wp_kses_post( $action );
268
+            $sanitized[] = "<span class='$key'>$action</span>";
269
+        }
270
+
271
+        $row_actions  = "<small class='form-text getpaid-subscription-item-actions'>";
272
+        $row_actions .= implode( ' | ', $sanitized );
273
+        $row_actions .= '</small>';
274
+
275
+        return $content . $row_actions;
276
+    }
277
+
278
+    /**
279
+     * Displays the table footer.
280
+     *
281
+     */
282
+    public function print_table_footer() {
283
+
284
+        ?>
285 285
 
286 286
 				<tfoot>
287 287
 					<tr>
@@ -296,129 +296,129 @@  discard block
 block discarded – undo
296 296
 			</table>
297 297
 		<?php
298 298
 
299
-	}
299
+    }
300 300
 
301
-	/**
302
-	 * Displays the navigation.
303
-	 *
304
-	 * @param int $total
305
-	 */
306
-	public function print_navigation( $total ) {
301
+    /**
302
+     * Displays the navigation.
303
+     *
304
+     * @param int $total
305
+     */
306
+    public function print_navigation( $total ) {
307 307
 
308
-		if ( $total < 1 ) {
308
+        if ( $total < 1 ) {
309 309
 
310
-			// Out-of-bounds, run the query again without LIMIT for total count.
311
-			$args  = array(
312
-				'customer_in' => get_current_user_id(),
313
-				'fields'      => 'id',
314
-			);
310
+            // Out-of-bounds, run the query again without LIMIT for total count.
311
+            $args  = array(
312
+                'customer_in' => get_current_user_id(),
313
+                'fields'      => 'id',
314
+            );
315 315
 
316
-			$count_query = new GetPaid_Subscriptions_Query( $args );
317
-			$total       = $count_query->get_total();
318
-		}
316
+            $count_query = new GetPaid_Subscriptions_Query( $args );
317
+            $total       = $count_query->get_total();
318
+        }
319 319
 
320
-		// Abort if we do not have pages.
321
-		if ( 2 > $total ) {
322
-			return;
323
-		}
320
+        // Abort if we do not have pages.
321
+        if ( 2 > $total ) {
322
+            return;
323
+        }
324 324
 
325
-		?>
325
+        ?>
326 326
 
327 327
 		<div class="getpaid-subscriptions-pagination">
328 328
 			<?php
329
-				$big = 999999;
330
-
331
-				echo getpaid_paginate_links(
332
-					array(
333
-						'base'    => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
334
-						'format'  => '?paged=%#%',
335
-						'total'   => (int) ceil( $total / 10 ),
336
-					)
337
-				);
338
-			?>
329
+                $big = 999999;
330
+
331
+                echo getpaid_paginate_links(
332
+                    array(
333
+                        'base'    => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
334
+                        'format'  => '?paged=%#%',
335
+                        'total'   => (int) ceil( $total / 10 ),
336
+                    )
337
+                );
338
+            ?>
339 339
 		</div>
340 340
 
341 341
 		<?php
342
-	}
343
-
344
-	/**
345
-	 * Returns a single subscription's columns.
346
-	 *
347
-	 * @param WPInv_Subscription $subscription
348
-	 *
349
-	 * @return array
350
-	 */
351
-	public function get_single_subscription_columns( $subscription ) {
352
-
353
-		// Prepare subscription detail columns.
354
-		$fields = apply_filters(
355
-			'getpaid_single_subscription_details_fields',
356
-			array(
357
-				'status'           => __( 'Status', 'invoicing' ),
358
-				'initial_amount'   => __( 'Initial amount', 'invoicing' ),
359
-				'recurring_amount' => __( 'Recurring amount', 'invoicing' ),
360
-				'start_date'       => __( 'Start date', 'invoicing' ),
361
-				'expiry_date'      => __( 'Next payment', 'invoicing' ),
362
-				'payments'         => __( 'Payments', 'invoicing' ),
363
-				'item'             => __( 'Item', 'invoicing' ),
364
-			),
365
-			$subscription
366
-		);
367
-
368
-		if ( ! $subscription->is_active() || $subscription->is_last_renewal() ) {
369
-			$fields['expiry_date'] = __( 'End date', 'invoicing' );
370
-		}
371
-
372
-		if ( $subscription->get_initial_amount() == $subscription->get_recurring_amount() ) {
373
-			unset( $fields['initial_amount'] );
374
-		}
375
-
376
-		return $fields;
377
-	}
378
-
379
-	/**
380
-	 * Displays a single subscription.
381
-	 *
382
-	 * @param string $subscription
383
-	 *
384
-	 * @return string
385
-	 */
386
-	public function display_single_subscription( $subscription ) {
387
-
388
-		// Fetch the subscription.
389
-		$subscription = new WPInv_Subscription( (int) $subscription );
390
-
391
-		if ( ! $subscription->get_id() ) {
392
-
393
-			return aui()->alert(
394
-				array(
395
-					'content' => wp_kses_post( __( 'Subscription not found.', 'invoicing' ) ),
396
-					'type'    => 'error',
397
-				)
398
-			);
399
-
400
-		}
401
-
402
-		// Ensure that the user owns this subscription key.
403
-		if ( get_current_user_id() != $subscription->get_customer_id() ) {
404
-
405
-			return aui()->alert(
406
-				array(
407
-					'content' => wp_kses_post( __( 'You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing' ) ),
408
-					'type'    => 'error',
409
-				)
410
-			);
411
-
412
-		}
413
-
414
-		return wpinv_get_template_html(
415
-			'subscriptions/subscription-details.php',
416
-			array(
417
-				'subscription' => $subscription,
418
-				'widget'       => $this
419
-			)
420
-		);
421
-
422
-	}
342
+    }
343
+
344
+    /**
345
+     * Returns a single subscription's columns.
346
+     *
347
+     * @param WPInv_Subscription $subscription
348
+     *
349
+     * @return array
350
+     */
351
+    public function get_single_subscription_columns( $subscription ) {
352
+
353
+        // Prepare subscription detail columns.
354
+        $fields = apply_filters(
355
+            'getpaid_single_subscription_details_fields',
356
+            array(
357
+                'status'           => __( 'Status', 'invoicing' ),
358
+                'initial_amount'   => __( 'Initial amount', 'invoicing' ),
359
+                'recurring_amount' => __( 'Recurring amount', 'invoicing' ),
360
+                'start_date'       => __( 'Start date', 'invoicing' ),
361
+                'expiry_date'      => __( 'Next payment', 'invoicing' ),
362
+                'payments'         => __( 'Payments', 'invoicing' ),
363
+                'item'             => __( 'Item', 'invoicing' ),
364
+            ),
365
+            $subscription
366
+        );
367
+
368
+        if ( ! $subscription->is_active() || $subscription->is_last_renewal() ) {
369
+            $fields['expiry_date'] = __( 'End date', 'invoicing' );
370
+        }
371
+
372
+        if ( $subscription->get_initial_amount() == $subscription->get_recurring_amount() ) {
373
+            unset( $fields['initial_amount'] );
374
+        }
375
+
376
+        return $fields;
377
+    }
378
+
379
+    /**
380
+     * Displays a single subscription.
381
+     *
382
+     * @param string $subscription
383
+     *
384
+     * @return string
385
+     */
386
+    public function display_single_subscription( $subscription ) {
387
+
388
+        // Fetch the subscription.
389
+        $subscription = new WPInv_Subscription( (int) $subscription );
390
+
391
+        if ( ! $subscription->get_id() ) {
392
+
393
+            return aui()->alert(
394
+                array(
395
+                    'content' => wp_kses_post( __( 'Subscription not found.', 'invoicing' ) ),
396
+                    'type'    => 'error',
397
+                )
398
+            );
399
+
400
+        }
401
+
402
+        // Ensure that the user owns this subscription key.
403
+        if ( get_current_user_id() != $subscription->get_customer_id() ) {
404
+
405
+            return aui()->alert(
406
+                array(
407
+                    'content' => wp_kses_post( __( 'You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing' ) ),
408
+                    'type'    => 'error',
409
+                )
410
+            );
411
+
412
+        }
413
+
414
+        return wpinv_get_template_html(
415
+            'subscriptions/subscription-details.php',
416
+            array(
417
+                'subscription' => $subscription,
418
+                'widget'       => $this
419
+            )
420
+        );
421
+
422
+    }
423 423
 
424 424
 }
Please login to merge, or discard this patch.
Spacing   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  * @version 1.0.0
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * Contains the subscriptions widget.
@@ -27,15 +27,15 @@  discard block
 block discarded – undo
27 27
 			'block-keywords'=> "['invoicing','subscriptions', 'getpaid']",
28 28
 			'class_name'     => __CLASS__,
29 29
 			'base_id'       => 'wpinv_subscriptions',
30
-			'name'          => __( 'GetPaid > Subscriptions', 'invoicing' ),
30
+			'name'          => __('GetPaid > Subscriptions', 'invoicing'),
31 31
 			'widget_ops'    => array(
32 32
 				'classname'   => 'getpaid-subscriptions bsui',
33
-				'description' => esc_html__( "Displays the current user's subscriptions.", 'invoicing' ),
33
+				'description' => esc_html__("Displays the current user's subscriptions.", 'invoicing'),
34 34
 			),
35 35
 			'arguments'     => array(
36 36
 				'title'  => array(
37
-					'title'       => __( 'Widget title', 'invoicing' ),
38
-					'desc'        => __( 'Enter widget title.', 'invoicing' ),
37
+					'title'       => __('Widget title', 'invoicing'),
38
+					'desc'        => __('Enter widget title.', 'invoicing'),
39 39
 					'type'        => 'text',
40 40
 					'desc_tip'    => true,
41 41
 					'default'     => '',
@@ -46,7 +46,7 @@  discard block
 block discarded – undo
46 46
 		);
47 47
 
48 48
 
49
-		parent::__construct( $options );
49
+		parent::__construct($options);
50 50
 	}
51 51
 
52 52
 	/**
@@ -57,12 +57,12 @@  discard block
 block discarded – undo
57 57
 	public function get_subscriptions() {
58 58
 
59 59
 		// Prepare license args.
60
-		$args  = array(
60
+		$args = array(
61 61
 			'customer_in' => get_current_user_id(),
62
-			'paged'       => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1,
62
+			'paged'       => (get_query_var('paged')) ? absint(get_query_var('paged')) : 1,
63 63
 		);
64 64
 
65
-		return new GetPaid_Subscriptions_Query( $args );
65
+		return new GetPaid_Subscriptions_Query($args);
66 66
 
67 67
 	}
68 68
 
@@ -75,14 +75,14 @@  discard block
 block discarded – undo
75 75
 	 *
76 76
 	 * @return mixed|string|bool
77 77
 	 */
78
-	public function output( $args = array(), $widget_args = array(), $content = '' ) {
78
+	public function output($args = array(), $widget_args = array(), $content = '') {
79 79
 
80 80
 		// Ensure that the user is logged in.
81
-		if ( ! is_user_logged_in() ) {
81
+		if (!is_user_logged_in()) {
82 82
 
83 83
 			return aui()->alert(
84 84
 				array(
85
-					'content' => wp_kses_post( __( 'You need to log-in or create an account to view this section.', 'invoicing' ) ),
85
+					'content' => wp_kses_post(__('You need to log-in or create an account to view this section.', 'invoicing')),
86 86
 					'type'    => 'error',
87 87
 				)
88 88
 			);
@@ -90,8 +90,8 @@  discard block
 block discarded – undo
90 90
 		}
91 91
 
92 92
 		// Are we displaying a single subscription?
93
-		if ( isset( $_GET['subscription'] ) ) {
94
-			return $this->display_single_subscription( trim( $_GET['subscription'] ) );
93
+		if (isset($_GET['subscription'])) {
94
+			return $this->display_single_subscription(trim($_GET['subscription']));
95 95
 		}
96 96
 
97 97
 		// Retrieve the user's subscriptions.
@@ -101,27 +101,27 @@  discard block
 block discarded – undo
101 101
 		ob_start();
102 102
 
103 103
 		// Backwards compatibility.
104
-		do_action( 'wpinv_before_user_subscriptions' );
104
+		do_action('wpinv_before_user_subscriptions');
105 105
 
106 106
 		// Display errors and notices.
107 107
 		wpinv_print_errors();
108 108
 
109
-		do_action( 'getpaid_license_manager_before_subscriptions', $subscriptions );
109
+		do_action('getpaid_license_manager_before_subscriptions', $subscriptions);
110 110
 
111 111
 		// Print the table header.
112 112
 		$this->print_table_header();
113 113
 
114 114
 		// Print table body.
115
-		$this->print_table_body( $subscriptions->get_results() );
115
+		$this->print_table_body($subscriptions->get_results());
116 116
 
117 117
 		// Print table footer.
118 118
 		$this->print_table_footer();
119 119
 
120 120
 		// Print the navigation.
121
-		$this->print_navigation( $subscriptions->get_total() );
121
+		$this->print_navigation($subscriptions->get_total());
122 122
 
123 123
 		// Backwards compatibility.
124
-		do_action( 'wpinv_after_user_subscriptions' );
124
+		do_action('wpinv_after_user_subscriptions');
125 125
 
126 126
 		// Return the output.
127 127
 		return ob_get_clean();
@@ -136,13 +136,13 @@  discard block
 block discarded – undo
136 136
 	public function get_subscriptions_table_columns() {
137 137
 
138 138
 		$columns = array(
139
-			'subscription'   => __( 'Subscription', 'invoicing' ),
140
-			'amount'         => __( 'Amount', 'invoicing' ),
141
-			'renewal-date'   => __( 'Next payment', 'invoicing' ),
142
-			'status'         => __( 'Status', 'invoicing' ),
139
+			'subscription'   => __('Subscription', 'invoicing'),
140
+			'amount'         => __('Amount', 'invoicing'),
141
+			'renewal-date'   => __('Next payment', 'invoicing'),
142
+			'status'         => __('Status', 'invoicing'),
143 143
 		);
144 144
 
145
-		return apply_filters( 'getpaid_frontend_subscriptions_table_columns', $columns );
145
+		return apply_filters('getpaid_frontend_subscriptions_table_columns', $columns);
146 146
 	}
147 147
 
148 148
 	/**
@@ -157,9 +157,9 @@  discard block
 block discarded – undo
157 157
 
158 158
 				<thead>
159 159
 					<tr>
160
-						<?php foreach ( $this->get_subscriptions_table_columns() as $key => $label ) : ?>
161
-							<th scope="col" class="font-weight-bold getpaid-subscriptions-table-<?php echo sanitize_html_class( $key ); ?>">
162
-								<?php echo sanitize_text_field( $label ); ?>
160
+						<?php foreach ($this->get_subscriptions_table_columns() as $key => $label) : ?>
161
+							<th scope="col" class="font-weight-bold getpaid-subscriptions-table-<?php echo sanitize_html_class($key); ?>">
162
+								<?php echo sanitize_text_field($label); ?>
163 163
 							</th>
164 164
 						<?php endforeach; ?>
165 165
 					</tr>
@@ -174,12 +174,12 @@  discard block
 block discarded – undo
174 174
 	 *
175 175
 	 * @param WPInv_Subscription[] $subscriptions
176 176
 	 */
177
-	public function print_table_body( $subscriptions ) {
177
+	public function print_table_body($subscriptions) {
178 178
 
179
-		if ( empty( $subscriptions ) ) {
179
+		if (empty($subscriptions)) {
180 180
 			$this->print_table_body_no_subscriptions();
181 181
 		} else {
182
-			$this->print_table_body_subscriptions( $subscriptions );
182
+			$this->print_table_body_subscriptions($subscriptions);
183 183
 		}
184 184
 
185 185
 	}
@@ -194,12 +194,12 @@  discard block
 block discarded – undo
194 194
 		<tbody>
195 195
 
196 196
 			<tr>
197
-				<td colspan="<?php echo count( $this->get_subscriptions_table_columns() ); ?>">
197
+				<td colspan="<?php echo count($this->get_subscriptions_table_columns()); ?>">
198 198
 
199 199
 					<?php
200 200
 						echo aui()->alert(
201 201
 							array(
202
-								'content' => wp_kses_post( __( 'No subscriptions found.', 'invoicing' ) ),
202
+								'content' => wp_kses_post(__('No subscriptions found.', 'invoicing')),
203 203
 								'type'    => 'warning',
204 204
 							)
205 205
 						);
@@ -217,12 +217,12 @@  discard block
 block discarded – undo
217 217
 	 *
218 218
 	 * @param WPInv_Subscription[] $subscriptions
219 219
 	 */
220
-	public function print_table_body_subscriptions( $subscriptions ) {
220
+	public function print_table_body_subscriptions($subscriptions) {
221 221
 
222 222
 		?>
223 223
 		<tbody>
224 224
 
225
-			<?php foreach ( $subscriptions as $subscription ) : ?>
225
+			<?php foreach ($subscriptions as $subscription) : ?>
226 226
 				<tr class="getpaid-subscriptions-table-row subscription-<?php echo (int) $subscription->get_id(); ?>">
227 227
 					<?php
228 228
 						wpinv_get_template(
@@ -248,28 +248,28 @@  discard block
 block discarded – undo
248 248
 	 * @since       1.0.0
249 249
 	 * @return      string
250 250
 	 */
251
-	public function add_row_actions( $content, $subscription ) {
251
+	public function add_row_actions($content, $subscription) {
252 252
 
253 253
 		// Prepare row actions.
254 254
 		$actions = array();
255 255
 
256 256
 		// View subscription action.
257
-		$view_url        = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
258
-		$view_url        = esc_url( add_query_arg( 'subscription', (int) $subscription->get_id(), $view_url ) );
259
-		$actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>';
257
+		$view_url        = getpaid_get_tab_url('gp-subscriptions', get_permalink((int) wpinv_get_option('invoice_subscription_page')));
258
+		$view_url        = esc_url(add_query_arg('subscription', (int) $subscription->get_id(), $view_url));
259
+		$actions['view'] = "<a href='$view_url' class='text-decoration-none'>" . __('Manage Subscription', 'invoicing') . '</a>';
260 260
 
261 261
 		// Filter the actions.
262
-		$actions = apply_filters( 'getpaid_subscriptions_table_subscription_actions', $actions, $subscription );
262
+		$actions = apply_filters('getpaid_subscriptions_table_subscription_actions', $actions, $subscription);
263 263
 
264
-		$sanitized  = array();
265
-		foreach ( $actions as $key => $action ) {
266
-			$key         = sanitize_html_class( $key );
267
-			$action      = wp_kses_post( $action );
264
+		$sanitized = array();
265
+		foreach ($actions as $key => $action) {
266
+			$key         = sanitize_html_class($key);
267
+			$action      = wp_kses_post($action);
268 268
 			$sanitized[] = "<span class='$key'>$action</span>";
269 269
 		}
270 270
 
271 271
 		$row_actions  = "<small class='form-text getpaid-subscription-item-actions'>";
272
-		$row_actions .= implode( ' | ', $sanitized );
272
+		$row_actions .= implode(' | ', $sanitized);
273 273
 		$row_actions .= '</small>';
274 274
 
275 275
 		return $content . $row_actions;
@@ -285,9 +285,9 @@  discard block
 block discarded – undo
285 285
 
286 286
 				<tfoot>
287 287
 					<tr>
288
-						<?php foreach ( $this->get_subscriptions_table_columns() as $key => $label ) : ?>
289
-							<th class="font-weight-bold getpaid-subscriptions-<?php echo sanitize_html_class( $key ); ?>">
290
-								<?php echo sanitize_text_field( $label ); ?>
288
+						<?php foreach ($this->get_subscriptions_table_columns() as $key => $label) : ?>
289
+							<th class="font-weight-bold getpaid-subscriptions-<?php echo sanitize_html_class($key); ?>">
290
+								<?php echo sanitize_text_field($label); ?>
291 291
 							</th>
292 292
 						<?php endforeach; ?>
293 293
 					</tr>
@@ -303,22 +303,22 @@  discard block
 block discarded – undo
303 303
 	 *
304 304
 	 * @param int $total
305 305
 	 */
306
-	public function print_navigation( $total ) {
306
+	public function print_navigation($total) {
307 307
 
308
-		if ( $total < 1 ) {
308
+		if ($total < 1) {
309 309
 
310 310
 			// Out-of-bounds, run the query again without LIMIT for total count.
311
-			$args  = array(
311
+			$args = array(
312 312
 				'customer_in' => get_current_user_id(),
313 313
 				'fields'      => 'id',
314 314
 			);
315 315
 
316
-			$count_query = new GetPaid_Subscriptions_Query( $args );
316
+			$count_query = new GetPaid_Subscriptions_Query($args);
317 317
 			$total       = $count_query->get_total();
318 318
 		}
319 319
 
320 320
 		// Abort if we do not have pages.
321
-		if ( 2 > $total ) {
321
+		if (2 > $total) {
322 322
 			return;
323 323
 		}
324 324
 
@@ -330,9 +330,9 @@  discard block
 block discarded – undo
330 330
 
331 331
 				echo getpaid_paginate_links(
332 332
 					array(
333
-						'base'    => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
333
+						'base'    => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
334 334
 						'format'  => '?paged=%#%',
335
-						'total'   => (int) ceil( $total / 10 ),
335
+						'total'   => (int) ceil($total / 10),
336 336
 					)
337 337
 				);
338 338
 			?>
@@ -348,29 +348,29 @@  discard block
 block discarded – undo
348 348
 	 *
349 349
 	 * @return array
350 350
 	 */
351
-	public function get_single_subscription_columns( $subscription ) {
351
+	public function get_single_subscription_columns($subscription) {
352 352
 
353 353
 		// Prepare subscription detail columns.
354 354
 		$fields = apply_filters(
355 355
 			'getpaid_single_subscription_details_fields',
356 356
 			array(
357
-				'status'           => __( 'Status', 'invoicing' ),
358
-				'initial_amount'   => __( 'Initial amount', 'invoicing' ),
359
-				'recurring_amount' => __( 'Recurring amount', 'invoicing' ),
360
-				'start_date'       => __( 'Start date', 'invoicing' ),
361
-				'expiry_date'      => __( 'Next payment', 'invoicing' ),
362
-				'payments'         => __( 'Payments', 'invoicing' ),
363
-				'item'             => __( 'Item', 'invoicing' ),
357
+				'status'           => __('Status', 'invoicing'),
358
+				'initial_amount'   => __('Initial amount', 'invoicing'),
359
+				'recurring_amount' => __('Recurring amount', 'invoicing'),
360
+				'start_date'       => __('Start date', 'invoicing'),
361
+				'expiry_date'      => __('Next payment', 'invoicing'),
362
+				'payments'         => __('Payments', 'invoicing'),
363
+				'item'             => __('Item', 'invoicing'),
364 364
 			),
365 365
 			$subscription
366 366
 		);
367 367
 
368
-		if ( ! $subscription->is_active() || $subscription->is_last_renewal() ) {
369
-			$fields['expiry_date'] = __( 'End date', 'invoicing' );
368
+		if (!$subscription->is_active() || $subscription->is_last_renewal()) {
369
+			$fields['expiry_date'] = __('End date', 'invoicing');
370 370
 		}
371 371
 
372
-		if ( $subscription->get_initial_amount() == $subscription->get_recurring_amount() ) {
373
-			unset( $fields['initial_amount'] );
372
+		if ($subscription->get_initial_amount() == $subscription->get_recurring_amount()) {
373
+			unset($fields['initial_amount']);
374 374
 		}
375 375
 
376 376
 		return $fields;
@@ -383,16 +383,16 @@  discard block
 block discarded – undo
383 383
 	 *
384 384
 	 * @return string
385 385
 	 */
386
-	public function display_single_subscription( $subscription ) {
386
+	public function display_single_subscription($subscription) {
387 387
 
388 388
 		// Fetch the subscription.
389
-		$subscription = new WPInv_Subscription( (int) $subscription );
389
+		$subscription = new WPInv_Subscription((int) $subscription);
390 390
 
391
-		if ( ! $subscription->get_id() ) {
391
+		if (!$subscription->get_id()) {
392 392
 
393 393
 			return aui()->alert(
394 394
 				array(
395
-					'content' => wp_kses_post( __( 'Subscription not found.', 'invoicing' ) ),
395
+					'content' => wp_kses_post(__('Subscription not found.', 'invoicing')),
396 396
 					'type'    => 'error',
397 397
 				)
398 398
 			);
@@ -400,11 +400,11 @@  discard block
 block discarded – undo
400 400
 		}
401 401
 
402 402
 		// Ensure that the user owns this subscription key.
403
-		if ( get_current_user_id() != $subscription->get_customer_id() ) {
403
+		if (get_current_user_id() != $subscription->get_customer_id()) {
404 404
 
405 405
 			return aui()->alert(
406 406
 				array(
407
-					'content' => wp_kses_post( __( 'You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing' ) ),
407
+					'content' => wp_kses_post(__('You do not have permission to view this subscription. Ensure that you are logged in to the account that owns the subscription.', 'invoicing')),
408 408
 					'type'    => 'error',
409 409
 				)
410 410
 			);
Please login to merge, or discard this patch.
includes/invoice-functions.php 2 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
  * Checks if the current user cna view an invoice receipt.
68 68
  */
69 69
 function wpinv_can_view_receipt( $invoice ) {
70
-	return (bool) apply_filters( 'wpinv_can_view_receipt', wpinv_user_can_view_invoice( $invoice ), $invoice );
70
+    return (bool) apply_filters( 'wpinv_can_view_receipt', wpinv_user_can_view_invoice( $invoice ), $invoice );
71 71
 }
72 72
 
73 73
 /**
@@ -1256,21 +1256,21 @@  discard block
 block discarded – undo
1256 1256
  */
1257 1257
 function getpaid_get_invoice_status_classes() {
1258 1258
 
1259
-	return apply_filters(
1260
-		'getpaid_get_invoice_status_classes',
1261
-		array(
1259
+    return apply_filters(
1260
+        'getpaid_get_invoice_status_classes',
1261
+        array(
1262 1262
             'wpi-quote-declined' => 'badge-danger',
1263 1263
             'wpi-failed'         => 'badge-danger',
1264
-			'wpi-processing'     => 'badge-info',
1265
-			'wpi-onhold'         => 'badge-warning',
1266
-			'wpi-quote-accepted' => 'badge-success',
1267
-			'publish'            => 'badge-success',
1268
-			'wpi-renewal'        => 'badge-primary',
1264
+            'wpi-processing'     => 'badge-info',
1265
+            'wpi-onhold'         => 'badge-warning',
1266
+            'wpi-quote-accepted' => 'badge-success',
1267
+            'publish'            => 'badge-success',
1268
+            'wpi-renewal'        => 'badge-primary',
1269 1269
             'wpi-cancelled'      => 'badge-secondary',
1270 1270
             'wpi-pending'        => 'badge-dark',
1271 1271
             'wpi-quote-pending'  => 'badge-dark',
1272 1272
             'wpi-refunded'       => 'badge-secondary',
1273
-		)
1274
-	);
1273
+        )
1274
+    );
1275 1275
 
1276 1276
 }
Please login to merge, or discard this patch.
Spacing   +350 added lines, -350 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @package Invoicing
7 7
  */
8 8
  
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * Retrieves the current invoice.
@@ -14,15 +14,15 @@  discard block
 block discarded – undo
14 14
 function getpaid_get_current_invoice_id() {
15 15
 
16 16
     // Ensure that we have an invoice key.
17
-    if ( empty( $_GET['invoice_key'] ) ) {
17
+    if (empty($_GET['invoice_key'])) {
18 18
         return 0;
19 19
     }
20 20
 
21 21
     // Retrieve an invoice using the key.
22
-    $invoice = new WPInv_Invoice( $_GET['invoice_key'] );
22
+    $invoice = new WPInv_Invoice($_GET['invoice_key']);
23 23
 
24 24
     // Compare the invoice key and the parsed key.
25
-    if ( $invoice->get_id() != 0 && $invoice->get_key() == $_GET['invoice_key'] ) {
25
+    if ($invoice->get_id() != 0 && $invoice->get_key() == $_GET['invoice_key']) {
26 26
         return $invoice->get_id();
27 27
     }
28 28
 
@@ -32,42 +32,42 @@  discard block
 block discarded – undo
32 32
 /**
33 33
  * Checks if the current user cna view an invoice.
34 34
  */
35
-function wpinv_user_can_view_invoice( $invoice ) {
36
-    $invoice = new WPInv_Invoice( $invoice );
35
+function wpinv_user_can_view_invoice($invoice) {
36
+    $invoice = new WPInv_Invoice($invoice);
37 37
 
38 38
     // Abort if the invoice does not exist.
39
-    if ( 0 == $invoice->get_id() ) {
39
+    if (0 == $invoice->get_id()) {
40 40
         return false;
41 41
     }
42 42
 
43 43
     // Don't allow trash, draft status
44
-    if ( $invoice->is_draft() ) {
44
+    if ($invoice->is_draft()) {
45 45
         return false;
46 46
     }
47 47
 
48 48
     // If users are not required to login to check out, compare the invoice keys.
49
-    if ( ! wpinv_require_login_to_checkout() && isset( $_GET['invoice_key'] ) && trim( $_GET['invoice_key'] ) == $invoice->get_key() ) {
49
+    if (!wpinv_require_login_to_checkout() && isset($_GET['invoice_key']) && trim($_GET['invoice_key']) == $invoice->get_key()) {
50 50
         return true;
51 51
     }
52 52
 
53 53
     // Always enable for admins..
54
-    if ( wpinv_current_user_can_manage_invoicing() || current_user_can( 'view_invoices', $invoice->get_id() ) ) { // Admin user
54
+    if (wpinv_current_user_can_manage_invoicing() || current_user_can('view_invoices', $invoice->get_id())) { // Admin user
55 55
         return true;
56 56
     }
57 57
 
58 58
     // Else, ensure that this is their invoice.
59
-    if ( is_user_logged_in() && $invoice->get_user_id() == get_current_user_id() ) {
59
+    if (is_user_logged_in() && $invoice->get_user_id() == get_current_user_id()) {
60 60
         return true;
61 61
     }
62 62
 
63
-    return apply_filters( 'wpinv_current_user_can_view_invoice', false, $invoice );
63
+    return apply_filters('wpinv_current_user_can_view_invoice', false, $invoice);
64 64
 }
65 65
 
66 66
 /**
67 67
  * Checks if the current user cna view an invoice receipt.
68 68
  */
69
-function wpinv_can_view_receipt( $invoice ) {
70
-	return (bool) apply_filters( 'wpinv_can_view_receipt', wpinv_user_can_view_invoice( $invoice ), $invoice );
69
+function wpinv_can_view_receipt($invoice) {
70
+	return (bool) apply_filters('wpinv_can_view_receipt', wpinv_user_can_view_invoice($invoice), $invoice);
71 71
 }
72 72
 
73 73
 /**
@@ -77,16 +77,16 @@  discard block
 block discarded – undo
77 77
  */
78 78
 function getpaid_get_invoice_post_types() {
79 79
     $post_types = array(
80
-        'wpi_quote'   => __( 'Quote', 'invoicing' ),
81
-        'wpi_invoice' => __( 'Invoice', 'invoicing' ),
80
+        'wpi_quote'   => __('Quote', 'invoicing'),
81
+        'wpi_invoice' => __('Invoice', 'invoicing'),
82 82
     );
83 83
 
84 84
     // Ensure the quotes addon is installed.
85
-    if ( ! defined( 'WPINV_QUOTES_VERSION' ) ) {
86
-        unset( $post_types['wpi_quote'] );
85
+    if (!defined('WPINV_QUOTES_VERSION')) {
86
+        unset($post_types['wpi_quote']);
87 87
     }
88 88
 
89
-    return apply_filters( 'getpaid_invoice_post_types', $post_types );
89
+    return apply_filters('getpaid_invoice_post_types', $post_types);
90 90
 }
91 91
 
92 92
 /**
@@ -95,8 +95,8 @@  discard block
 block discarded – undo
95 95
  * 
96 96
  * @param string $post_type The post type to check for.
97 97
  */
98
-function getpaid_is_invoice_post_type( $post_type ) {
99
-    return is_scalar( $post_type ) && ! empty( $post_type ) && array_key_exists( $post_type, getpaid_get_invoice_post_types() );
98
+function getpaid_is_invoice_post_type($post_type) {
99
+    return is_scalar($post_type) && !empty($post_type) && array_key_exists($post_type, getpaid_get_invoice_post_types());
100 100
 }
101 101
 
102 102
 /**
@@ -106,9 +106,9 @@  discard block
 block discarded – undo
106 106
  * @param  bool  $wp_error       Whether to return false or WP_Error on failure.
107 107
  * @return int|WP_Error|WPInv_Invoice The value 0 or WP_Error on failure. The WPInv_Invoice object on success.
108 108
  */
109
-function wpinv_create_invoice( $data = array(), $deprecated = null, $wp_error = false ) {
110
-    $data[ 'invoice_id' ] = 0;
111
-    return wpinv_insert_invoice( $data, $wp_error );
109
+function wpinv_create_invoice($data = array(), $deprecated = null, $wp_error = false) {
110
+    $data['invoice_id'] = 0;
111
+    return wpinv_insert_invoice($data, $wp_error);
112 112
 }
113 113
 
114 114
 /**
@@ -118,36 +118,36 @@  discard block
 block discarded – undo
118 118
  * @param  bool  $wp_error       Whether to return false or WP_Error on failure.
119 119
  * @return int|WP_Error|WPInv_Invoice The value 0 or WP_Error on failure. The WPInv_Invoice object on success.
120 120
  */
121
-function wpinv_update_invoice( $data = array(), $wp_error = false ) {
121
+function wpinv_update_invoice($data = array(), $wp_error = false) {
122 122
 
123 123
     // Backwards compatibility.
124
-    if ( ! empty( $data['ID'] ) ) {
124
+    if (!empty($data['ID'])) {
125 125
         $data['invoice_id'] = $data['ID'];
126 126
     }
127 127
 
128 128
     // Do we have an invoice id?
129
-    if ( empty( $data['invoice_id'] ) ) {
130
-        return $wp_error ? new WP_Error( 'invalid_invoice_id', __( 'Invalid invoice ID.', 'invoicing' ) ) : 0;
129
+    if (empty($data['invoice_id'])) {
130
+        return $wp_error ? new WP_Error('invalid_invoice_id', __('Invalid invoice ID.', 'invoicing')) : 0;
131 131
     }
132 132
 
133 133
     // Retrieve the invoice.
134
-    $invoice = wpinv_get_invoice( $data['invoice_id'] );
134
+    $invoice = wpinv_get_invoice($data['invoice_id']);
135 135
 
136 136
     // And abort if it does not exist.
137
-    if ( empty( $invoice ) ) {
138
-        return $wp_error ? new WP_Error( 'missing_invoice', __( 'Invoice not found.', 'invoicing' ) ) : 0;
137
+    if (empty($invoice)) {
138
+        return $wp_error ? new WP_Error('missing_invoice', __('Invoice not found.', 'invoicing')) : 0;
139 139
     }
140 140
 
141 141
     // Do not update totals for paid / refunded invoices.
142
-    if ( $invoice->is_paid() || $invoice->is_refunded() ) {
142
+    if ($invoice->is_paid() || $invoice->is_refunded()) {
143 143
 
144
-        if ( ! empty( $data['items'] ) || ! empty( $data['cart_details'] ) ) {
145
-            return $wp_error ? new WP_Error( 'paid_invoice', __( 'You can not update cart items for invoices that have already been paid for.', 'invoicing' ) ) : 0;
144
+        if (!empty($data['items']) || !empty($data['cart_details'])) {
145
+            return $wp_error ? new WP_Error('paid_invoice', __('You can not update cart items for invoices that have already been paid for.', 'invoicing')) : 0;
146 146
         }
147 147
 
148 148
     }
149 149
 
150
-    return wpinv_insert_invoice( $data, $wp_error );
150
+    return wpinv_insert_invoice($data, $wp_error);
151 151
 
152 152
 }
153 153
 
@@ -158,34 +158,34 @@  discard block
 block discarded – undo
158 158
  * @param  bool  $wp_error       Whether to return false or WP_Error on failure.
159 159
  * @return int|WP_Error|WPInv_Invoice The value 0 or WP_Error on failure. The WPInv_Invoice object on success.
160 160
  */
161
-function wpinv_insert_invoice( $data = array(), $wp_error = false ) {
161
+function wpinv_insert_invoice($data = array(), $wp_error = false) {
162 162
 
163 163
     // Ensure that we have invoice data.
164
-    if ( empty( $data ) ) {
164
+    if (empty($data)) {
165 165
         return false;
166 166
     }
167 167
 
168 168
     // The invoice id will be provided when updating an invoice.
169
-    $data['invoice_id'] = ! empty( $data['invoice_id'] ) ? (int) $data['invoice_id'] : false;
169
+    $data['invoice_id'] = !empty($data['invoice_id']) ? (int) $data['invoice_id'] : false;
170 170
 
171 171
     // Retrieve the invoice.
172
-    $invoice = new WPInv_Invoice( $data['invoice_id'] );
172
+    $invoice = new WPInv_Invoice($data['invoice_id']);
173 173
 
174 174
     // Do we have an error?
175
-    if ( ! empty( $invoice->last_error ) ) {
176
-        return $wp_error ? new WP_Error( 'invalid_invoice_id', $invoice->last_error ) : 0;
175
+    if (!empty($invoice->last_error)) {
176
+        return $wp_error ? new WP_Error('invalid_invoice_id', $invoice->last_error) : 0;
177 177
     }
178 178
 
179 179
     // Backwards compatibility (billing address).
180
-    if ( ! empty( $data['user_info'] ) ) {
180
+    if (!empty($data['user_info'])) {
181 181
 
182
-        foreach ( $data['user_info'] as $key => $value ) {
182
+        foreach ($data['user_info'] as $key => $value) {
183 183
 
184
-            if ( $key == 'discounts' ) {
184
+            if ($key == 'discounts') {
185 185
                 $value = (array) $value;
186
-                $data[ 'discount_code' ] = empty( $value ) ? null : $value[0];
186
+                $data['discount_code'] = empty($value) ? null : $value[0];
187 187
             } else {
188
-                $data[ $key ] = $value;
188
+                $data[$key] = $value;
189 189
             }
190 190
 
191 191
         }
@@ -193,30 +193,30 @@  discard block
 block discarded – undo
193 193
     }
194 194
 
195 195
     // Backwards compatibility.
196
-    if ( ! empty( $data['payment_details'] ) ) {
196
+    if (!empty($data['payment_details'])) {
197 197
 
198
-        foreach ( $data['payment_details'] as $key => $value ) {
199
-            $data[ $key ] = $value;
198
+        foreach ($data['payment_details'] as $key => $value) {
199
+            $data[$key] = $value;
200 200
         }
201 201
 
202 202
     }
203 203
 
204 204
     // Set up the owner of the invoice.
205
-    $user_id = ! empty( $data['user_id'] ) ? wpinv_clean( $data['user_id'] ) : get_current_user_id();
205
+    $user_id = !empty($data['user_id']) ? wpinv_clean($data['user_id']) : get_current_user_id();
206 206
 
207 207
     // Make sure the user exists.
208
-    if ( ! get_userdata( $user_id ) ) {
209
-        return $wp_error ? new WP_Error( 'wpinv_invalid_user', __( 'There is no user with that ID.', 'invoicing' ) ) : 0;
208
+    if (!get_userdata($user_id)) {
209
+        return $wp_error ? new WP_Error('wpinv_invalid_user', __('There is no user with that ID.', 'invoicing')) : 0;
210 210
     }
211 211
 
212
-    $address = wpinv_get_user_address( $user_id );
212
+    $address = wpinv_get_user_address($user_id);
213 213
 
214
-    foreach ( $address as $key => $value ) {
214
+    foreach ($address as $key => $value) {
215 215
 
216
-        if ( $value == '' ) {
217
-            $address[ $key ] = null;
216
+        if ($value == '') {
217
+            $address[$key] = null;
218 218
         } else {
219
-            $address[ $key ] = wpinv_clean( $value );
219
+            $address[$key] = wpinv_clean($value);
220 220
         }
221 221
 
222 222
     }
@@ -227,103 +227,103 @@  discard block
 block discarded – undo
227 227
         array(
228 228
 
229 229
             // Basic info.
230
-            'template'             => isset( $data['template'] ) ? wpinv_clean( $data['template'] ) : null,
231
-            'email_cc'             => isset( $data['email_cc'] ) ? wpinv_clean( $data['email_cc'] ) : null,
232
-            'date_created'         => isset( $data['created_date'] ) ? wpinv_clean( $data['created_date'] ) : null,
233
-            'due_date'             => isset( $data['due_date'] ) ? wpinv_clean( $data['due_date'] ) : null,
234
-            'date_completed'       => isset( $data['date_completed'] ) ? wpinv_clean( $data['date_completed'] ) : null,
235
-            'number'               => isset( $data['number'] ) ? wpinv_clean( $data['number'] ) : null,
236
-            'key'                  => isset( $data['key'] ) ? wpinv_clean( $data['key'] ) : null,
237
-            'status'               => isset( $data['status'] ) ? wpinv_clean( $data['status'] ) : null,
238
-            'post_type'            => isset( $data['post_type'] ) ? wpinv_clean( $data['post_type'] ) : null,
239
-            'user_ip'              => isset( $data['ip'] ) ? wpinv_clean( $data['ip'] ) : wpinv_get_ip(),
240
-            'parent_id'            => isset( $data['parent'] ) ? intval( $data['parent'] ) : null,
241
-            'mode'                 => isset( $data['mode'] ) ? wpinv_clean( $data['mode'] ) : null,
242
-            'description'          => isset( $data['description'] ) ? wp_kses_post( $data['description'] ) : null,
230
+            'template'             => isset($data['template']) ? wpinv_clean($data['template']) : null,
231
+            'email_cc'             => isset($data['email_cc']) ? wpinv_clean($data['email_cc']) : null,
232
+            'date_created'         => isset($data['created_date']) ? wpinv_clean($data['created_date']) : null,
233
+            'due_date'             => isset($data['due_date']) ? wpinv_clean($data['due_date']) : null,
234
+            'date_completed'       => isset($data['date_completed']) ? wpinv_clean($data['date_completed']) : null,
235
+            'number'               => isset($data['number']) ? wpinv_clean($data['number']) : null,
236
+            'key'                  => isset($data['key']) ? wpinv_clean($data['key']) : null,
237
+            'status'               => isset($data['status']) ? wpinv_clean($data['status']) : null,
238
+            'post_type'            => isset($data['post_type']) ? wpinv_clean($data['post_type']) : null,
239
+            'user_ip'              => isset($data['ip']) ? wpinv_clean($data['ip']) : wpinv_get_ip(),
240
+            'parent_id'            => isset($data['parent']) ? intval($data['parent']) : null,
241
+            'mode'                 => isset($data['mode']) ? wpinv_clean($data['mode']) : null,
242
+            'description'          => isset($data['description']) ? wp_kses_post($data['description']) : null,
243 243
 
244 244
             // Payment info.
245
-            'disable_taxes'        => ! empty( $data['disable_taxes'] ),
246
-            'currency'             => isset( $data['currency'] ) ? wpinv_clean( $data['currency'] ) : wpinv_get_currency(),
247
-            'gateway'              => isset( $data['gateway'] ) ? wpinv_clean( $data['gateway'] ) : null,
248
-            'transaction_id'       => isset( $data['transaction_id'] ) ? wpinv_clean( $data['transaction_id'] ) : null,
249
-            'discount_code'        => isset( $data['discount_code'] ) ? wpinv_clean( $data['discount_code'] ) : null,
250
-            'payment_form'         => isset( $data['payment_form'] ) ? intval( $data['payment_form'] ) : null,
251
-            'submission_id'        => isset( $data['submission_id'] ) ? wpinv_clean( $data['submission_id'] ) : null,
252
-            'subscription_id'      => isset( $data['subscription_id'] ) ? wpinv_clean( $data['subscription_id'] ) : null,
253
-            'is_viewed'            => isset( $data['is_viewed'] ) ? wpinv_clean( $data['is_viewed'] ) : null,
254
-            'fees'                 => isset( $data['fees'] ) ? wpinv_clean( $data['fees'] ) : null,
255
-            'discounts'            => isset( $data['discounts'] ) ? wpinv_clean( $data['discounts'] ) : null,
256
-            'taxes'                => isset( $data['taxes'] ) ? wpinv_clean( $data['taxes'] ) : null,
245
+            'disable_taxes'        => !empty($data['disable_taxes']),
246
+            'currency'             => isset($data['currency']) ? wpinv_clean($data['currency']) : wpinv_get_currency(),
247
+            'gateway'              => isset($data['gateway']) ? wpinv_clean($data['gateway']) : null,
248
+            'transaction_id'       => isset($data['transaction_id']) ? wpinv_clean($data['transaction_id']) : null,
249
+            'discount_code'        => isset($data['discount_code']) ? wpinv_clean($data['discount_code']) : null,
250
+            'payment_form'         => isset($data['payment_form']) ? intval($data['payment_form']) : null,
251
+            'submission_id'        => isset($data['submission_id']) ? wpinv_clean($data['submission_id']) : null,
252
+            'subscription_id'      => isset($data['subscription_id']) ? wpinv_clean($data['subscription_id']) : null,
253
+            'is_viewed'            => isset($data['is_viewed']) ? wpinv_clean($data['is_viewed']) : null,
254
+            'fees'                 => isset($data['fees']) ? wpinv_clean($data['fees']) : null,
255
+            'discounts'            => isset($data['discounts']) ? wpinv_clean($data['discounts']) : null,
256
+            'taxes'                => isset($data['taxes']) ? wpinv_clean($data['taxes']) : null,
257 257
             
258 258
 
259 259
             // Billing details.
260 260
             'user_id'              => $data['user_id'],
261
-            'first_name'           => isset( $data['first_name'] ) ? wpinv_clean( $data['first_name'] ) : $address['first_name'],
262
-            'last_name'            => isset( $data['last_name'] ) ? wpinv_clean( $data['last_name'] ) : $address['last_name'],
263
-            'address'              => isset( $data['address'] ) ? wpinv_clean( $data['address'] ) : $address['address'] ,
264
-            'vat_number'           => isset( $data['vat_number'] ) ? wpinv_clean( $data['vat_number'] ) : $address['vat_number'],
265
-            'company'              => isset( $data['company'] ) ? wpinv_clean( $data['company'] ) : $address['company'],
266
-            'zip'                  => isset( $data['zip'] ) ? wpinv_clean( $data['zip'] ) : $address['zip'],
267
-            'state'                => isset( $data['state'] ) ? wpinv_clean( $data['state'] ) : $address['state'],
268
-            'city'                 => isset( $data['city'] ) ? wpinv_clean( $data['city'] ) : $address['city'],
269
-            'country'              => isset( $data['country'] ) ? wpinv_clean( $data['country'] ) : $address['country'],
270
-            'phone'                => isset( $data['phone'] ) ? wpinv_clean( $data['phone'] ) : $address['phone'],
271
-            'address_confirmed'    => ! empty( $data['address_confirmed'] ),
261
+            'first_name'           => isset($data['first_name']) ? wpinv_clean($data['first_name']) : $address['first_name'],
262
+            'last_name'            => isset($data['last_name']) ? wpinv_clean($data['last_name']) : $address['last_name'],
263
+            'address'              => isset($data['address']) ? wpinv_clean($data['address']) : $address['address'],
264
+            'vat_number'           => isset($data['vat_number']) ? wpinv_clean($data['vat_number']) : $address['vat_number'],
265
+            'company'              => isset($data['company']) ? wpinv_clean($data['company']) : $address['company'],
266
+            'zip'                  => isset($data['zip']) ? wpinv_clean($data['zip']) : $address['zip'],
267
+            'state'                => isset($data['state']) ? wpinv_clean($data['state']) : $address['state'],
268
+            'city'                 => isset($data['city']) ? wpinv_clean($data['city']) : $address['city'],
269
+            'country'              => isset($data['country']) ? wpinv_clean($data['country']) : $address['country'],
270
+            'phone'                => isset($data['phone']) ? wpinv_clean($data['phone']) : $address['phone'],
271
+            'address_confirmed'    => !empty($data['address_confirmed']),
272 272
 
273 273
         )
274 274
 
275 275
     );
276 276
 
277 277
     // Backwards compatibililty.
278
-    if ( ! empty( $data['cart_details'] ) && is_array( $data['cart_details'] ) ) {
278
+    if (!empty($data['cart_details']) && is_array($data['cart_details'])) {
279 279
         $data['items'] = array();
280 280
 
281
-        foreach( $data['cart_details'] as $_item ) {
281
+        foreach ($data['cart_details'] as $_item) {
282 282
 
283 283
             // Ensure that we have an item id.
284
-            if ( empty(  $_item['id']  ) ) {
284
+            if (empty($_item['id'])) {
285 285
                 continue;
286 286
             }
287 287
 
288 288
             // Retrieve the item.
289
-            $item = new GetPaid_Form_Item(  $_item['id']  );
289
+            $item = new GetPaid_Form_Item($_item['id']);
290 290
 
291 291
             // Ensure that it is purchasable.
292
-            if ( ! $item->can_purchase() ) {
292
+            if (!$item->can_purchase()) {
293 293
                 continue;
294 294
             }
295 295
 
296 296
             // Set quantity.
297
-            if ( ! empty( $_item['quantity'] ) && is_numeric( $_item['quantity'] ) ) {
298
-                $item->set_quantity( $_item['quantity'] );
297
+            if (!empty($_item['quantity']) && is_numeric($_item['quantity'])) {
298
+                $item->set_quantity($_item['quantity']);
299 299
             }
300 300
 
301 301
             // Set price.
302
-            if ( isset( $_item['item_price'] ) ) {
303
-                $item->set_price( $_item['item_price'] );
302
+            if (isset($_item['item_price'])) {
303
+                $item->set_price($_item['item_price']);
304 304
             }
305 305
 
306
-            if ( isset( $_item['custom_price'] ) ) {
307
-                $item->set_price( $_item['custom_price'] );
306
+            if (isset($_item['custom_price'])) {
307
+                $item->set_price($_item['custom_price']);
308 308
             }
309 309
 
310 310
             // Set name.
311
-            if ( ! empty( $_item['name'] ) ) {
312
-                $item->set_name( $_item['name'] );
311
+            if (!empty($_item['name'])) {
312
+                $item->set_name($_item['name']);
313 313
             }
314 314
 
315 315
             // Set description.
316
-            if ( isset( $_item['description'] ) ) {
317
-                $item->set_custom_description( $_item['description'] );
316
+            if (isset($_item['description'])) {
317
+                $item->set_custom_description($_item['description']);
318 318
             }
319 319
 
320 320
             // Set meta.
321
-            if ( isset( $_item['meta'] ) && is_array( $_item['meta'] ) ) {
321
+            if (isset($_item['meta']) && is_array($_item['meta'])) {
322 322
 
323
-                $item->set_item_meta( $_item['meta'] );
323
+                $item->set_item_meta($_item['meta']);
324 324
 
325
-                if ( isset( $_item['meta']['description'] ) ) {
326
-                    $item->set_custom_description( $_item['meta']['description'] );
325
+                if (isset($_item['meta']['description'])) {
326
+                    $item->set_custom_description($_item['meta']['description']);
327 327
                 }
328 328
 
329 329
             }
@@ -334,14 +334,14 @@  discard block
 block discarded – undo
334 334
     }
335 335
 
336 336
     // Add invoice items.
337
-    if ( ! empty( $data['items'] ) && is_array( $data['items'] ) ) {
337
+    if (!empty($data['items']) && is_array($data['items'])) {
338 338
 
339
-        $invoice->set_items( array() );
339
+        $invoice->set_items(array());
340 340
 
341
-        foreach ( $data['items'] as $item ) {
341
+        foreach ($data['items'] as $item) {
342 342
 
343
-            if ( is_object( $item ) && is_a( $item, 'GetPaid_Form_Item' ) && $item->can_purchase() ) {
344
-                $invoice->add_item( $item );
343
+            if (is_object($item) && is_a($item, 'GetPaid_Form_Item') && $item->can_purchase()) {
344
+                $invoice->add_item($item);
345 345
             }
346 346
 
347 347
         }
@@ -352,30 +352,30 @@  discard block
 block discarded – undo
352 352
     $invoice->recalculate_total();
353 353
     $invoice->save();
354 354
 
355
-    if ( ! $invoice->get_id() ) {
356
-        return $wp_error ? new WP_Error( 'wpinv_insert_invoice_error', __( 'An error occured when saving your invoice.', 'invoicing' ) ) : 0;
355
+    if (!$invoice->get_id()) {
356
+        return $wp_error ? new WP_Error('wpinv_insert_invoice_error', __('An error occured when saving your invoice.', 'invoicing')) : 0;
357 357
     }
358 358
 
359 359
     // Add private note.
360
-    if ( ! empty( $data['private_note'] ) ) {
361
-        $invoice->add_note( $data['private_note'] );
360
+    if (!empty($data['private_note'])) {
361
+        $invoice->add_note($data['private_note']);
362 362
     }
363 363
 
364 364
     // User notes.
365
-    if ( !empty( $data['user_note'] ) ) {
366
-        $invoice->add_note( $data['user_note'], true );
365
+    if (!empty($data['user_note'])) {
366
+        $invoice->add_note($data['user_note'], true);
367 367
     }
368 368
 
369 369
     // Created via.
370
-    if ( isset( $data['created_via'] ) ) {
371
-        update_post_meta( $invoice->get_id(), 'wpinv_created_via', $data['created_via'] );
370
+    if (isset($data['created_via'])) {
371
+        update_post_meta($invoice->get_id(), 'wpinv_created_via', $data['created_via']);
372 372
     }
373 373
 
374 374
     // Backwards compatiblity.
375
-    if ( $invoice->is_quote() ) {
375
+    if ($invoice->is_quote()) {
376 376
 
377
-        if ( isset( $data['valid_until'] ) ) {
378
-            update_post_meta( $invoice->get_id(), 'wpinv_quote_valid_until', $data['valid_until'] );
377
+        if (isset($data['valid_until'])) {
378
+            update_post_meta($invoice->get_id(), 'wpinv_quote_valid_until', $data['valid_until']);
379 379
         }
380 380
 
381 381
     }
@@ -390,18 +390,18 @@  discard block
 block discarded – undo
390 390
  * @param $bool $deprecated
391 391
  * @return WPInv_Invoice|null
392 392
  */
393
-function wpinv_get_invoice( $invoice = 0, $deprecated = false ) {
393
+function wpinv_get_invoice($invoice = 0, $deprecated = false) {
394 394
 
395 395
     // If we are retrieving the invoice from the cart...
396
-    if ( $deprecated && empty( $invoice ) ) {
396
+    if ($deprecated && empty($invoice)) {
397 397
         $invoice = (int) getpaid_get_current_invoice_id();
398 398
     }
399 399
 
400 400
     // Retrieve the invoice.
401
-    $invoice = new WPInv_Invoice( $invoice );
401
+    $invoice = new WPInv_Invoice($invoice);
402 402
 
403 403
     // Check if it exists.
404
-    if ( $invoice->get_id() != 0 ) {
404
+    if ($invoice->get_id() != 0) {
405 405
         return $invoice;
406 406
     }
407 407
 
@@ -414,15 +414,15 @@  discard block
 block discarded – undo
414 414
  * @param array $args Args to search for.
415 415
  * @return WPInv_Invoice[]|int[]|object
416 416
  */
417
-function wpinv_get_invoices( $args ) {
417
+function wpinv_get_invoices($args) {
418 418
 
419 419
     // Prepare args.
420 420
     $args = wp_parse_args(
421 421
         $args,
422 422
         array(
423
-            'status'   => array_keys( wpinv_get_invoice_statuses() ),
423
+            'status'   => array_keys(wpinv_get_invoice_statuses()),
424 424
             'type'     => 'wpi_invoice',
425
-            'limit'    => get_option( 'posts_per_page' ),
425
+            'limit'    => get_option('posts_per_page'),
426 426
             'return'   => 'objects',
427 427
         )
428 428
     );
@@ -440,24 +440,24 @@  discard block
 block discarded – undo
440 440
         'post__in'       => 'include',
441 441
     );
442 442
 
443
-    foreach ( $map_legacy as $to => $from ) {
444
-        if ( isset( $args[ $from ] ) ) {
445
-            $args[ $to ] = $args[ $from ];
446
-            unset( $args[ $from ] );
443
+    foreach ($map_legacy as $to => $from) {
444
+        if (isset($args[$from])) {
445
+            $args[$to] = $args[$from];
446
+            unset($args[$from]);
447 447
         }
448 448
     }
449 449
 
450 450
     // Backwards compatibility.
451
-    if ( ! empty( $args['email'] ) && empty( $args['user'] ) ) {
451
+    if (!empty($args['email']) && empty($args['user'])) {
452 452
         $args['user'] = $args['email'];
453
-        unset( $args['email'] );
453
+        unset($args['email']);
454 454
     }
455 455
 
456 456
     // Handle cases where the user is set as an email.
457
-    if ( ! empty( $args['author'] ) && is_email( $args['author'] ) ) {
458
-        $user = get_user_by( 'email', $args['user'] );
457
+    if (!empty($args['author']) && is_email($args['author'])) {
458
+        $user = get_user_by('email', $args['user']);
459 459
 
460
-        if ( $user ) {
460
+        if ($user) {
461 461
             $args['author'] = $user->user_email;
462 462
         }
463 463
 
@@ -468,31 +468,31 @@  discard block
 block discarded – undo
468 468
 
469 469
     // Show all posts.
470 470
     $paginate = true;
471
-    if ( isset( $args['paginate'] ) ) {
471
+    if (isset($args['paginate'])) {
472 472
 
473 473
         $paginate = $args['paginate'];
474
-        $args['no_found_rows'] = empty( $args['paginate'] );
475
-        unset( $args['paginate'] );
474
+        $args['no_found_rows'] = empty($args['paginate']);
475
+        unset($args['paginate']);
476 476
 
477 477
     }
478 478
 
479 479
     // Whether to return objects or fields.
480 480
     $return = $args['return'];
481
-    unset( $args['return'] );
481
+    unset($args['return']);
482 482
 
483 483
     // Get invoices.
484
-    $invoices = new WP_Query( apply_filters( 'wpinv_get_invoices_args', $args ) );
484
+    $invoices = new WP_Query(apply_filters('wpinv_get_invoices_args', $args));
485 485
 
486 486
     // Prepare the results.
487
-    if ( 'objects' === $return ) {
488
-        $results = array_map( 'wpinv_get_invoice', $invoices->posts );
489
-    } elseif ( 'self' === $return ) {
487
+    if ('objects' === $return) {
488
+        $results = array_map('wpinv_get_invoice', $invoices->posts);
489
+    } elseif ('self' === $return) {
490 490
         return $invoices;
491 491
     } else {
492 492
         $results = $invoices->posts;
493 493
     }
494 494
 
495
-    if ( $paginate ) {
495
+    if ($paginate) {
496 496
         return (object) array(
497 497
             'invoices'      => $results,
498 498
             'total'         => $invoices->found_posts,
@@ -510,8 +510,8 @@  discard block
 block discarded – undo
510 510
  * @param string $transaction_id The transaction id to check.
511 511
  * @return int Invoice id on success or 0 on failure
512 512
  */
513
-function wpinv_get_id_by_transaction_id( $transaction_id ) {
514
-    return WPInv_Invoice::get_invoice_id_by_field( $transaction_id, 'transaction_id' );
513
+function wpinv_get_id_by_transaction_id($transaction_id) {
514
+    return WPInv_Invoice::get_invoice_id_by_field($transaction_id, 'transaction_id');
515 515
 }
516 516
 
517 517
 /**
@@ -520,8 +520,8 @@  discard block
 block discarded – undo
520 520
  * @param string $invoice_number The invoice number to check.
521 521
  * @return int Invoice id on success or 0 on failure
522 522
  */
523
-function wpinv_get_id_by_invoice_number( $invoice_number ) {
524
-    return WPInv_Invoice::get_invoice_id_by_field( $invoice_number, 'number' );
523
+function wpinv_get_id_by_invoice_number($invoice_number) {
524
+    return WPInv_Invoice::get_invoice_id_by_field($invoice_number, 'number');
525 525
 }
526 526
 
527 527
 /**
@@ -530,8 +530,8 @@  discard block
 block discarded – undo
530 530
  * @param string $invoice_key The invoice key to check.
531 531
  * @return int Invoice id on success or 0 on failure
532 532
  */
533
-function wpinv_get_invoice_id_by_key( $invoice_key ) {
534
-    return WPInv_Invoice::get_invoice_id_by_field( $invoice_key, 'key' );
533
+function wpinv_get_invoice_id_by_key($invoice_key) {
534
+    return WPInv_Invoice::get_invoice_id_by_field($invoice_key, 'key');
535 535
 }
536 536
 
537 537
 /**
@@ -541,19 +541,19 @@  discard block
 block discarded – undo
541 541
  * @param string $type Optionally filter by type i.e customer|system
542 542
  * @return array|null
543 543
  */
544
-function wpinv_get_invoice_notes( $invoice = 0, $type = '' ) {
544
+function wpinv_get_invoice_notes($invoice = 0, $type = '') {
545 545
 
546 546
     // Prepare the invoice.
547
-    $invoice = wpinv_get_invoice( $invoice );
548
-    if ( empty( $invoice ) ) {
547
+    $invoice = wpinv_get_invoice($invoice);
548
+    if (empty($invoice)) {
549 549
         return NULL;
550 550
     }
551 551
 
552 552
     // Fetch notes.
553
-    $notes = getpaid_notes()->get_invoice_notes( $invoice->get_id(), $type );
553
+    $notes = getpaid_notes()->get_invoice_notes($invoice->get_id(), $type);
554 554
 
555 555
     // Filter the notes.
556
-    return apply_filters( 'wpinv_invoice_notes', $notes, $invoice->get_id(), $type );
556
+    return apply_filters('wpinv_invoice_notes', $notes, $invoice->get_id(), $type);
557 557
 }
558 558
 
559 559
 /**
@@ -561,10 +561,10 @@  discard block
 block discarded – undo
561 561
  * 
562 562
  * @param string $post_type
563 563
  */
564
-function wpinv_get_user_invoices_columns( $post_type = 'wpi_invoice' ) {
564
+function wpinv_get_user_invoices_columns($post_type = 'wpi_invoice') {
565 565
 
566
-    $label   = getpaid_get_post_type_label( $post_type, false );
567
-    $label   = empty( $label ) ? __( 'Invoice', 'invoicing' ) : sanitize_text_field( $label );
566
+    $label   = getpaid_get_post_type_label($post_type, false);
567
+    $label   = empty($label) ? __('Invoice', 'invoicing') : sanitize_text_field($label);
568 568
     $columns = array(
569 569
 
570 570
             'invoice-number'  => array(
@@ -573,22 +573,22 @@  discard block
 block discarded – undo
573 573
             ),
574 574
 
575 575
             'created-date'    => array(
576
-                'title' => __( 'Created Date', 'invoicing' ),
576
+                'title' => __('Created Date', 'invoicing'),
577 577
                 'class' => 'text-left'
578 578
             ),
579 579
 
580 580
             'payment-date'    => array(
581
-                'title' => __( 'Payment Date', 'invoicing' ),
581
+                'title' => __('Payment Date', 'invoicing'),
582 582
                 'class' => 'text-left'
583 583
             ),
584 584
 
585 585
             'invoice-status'  => array(
586
-                'title' => __( 'Status', 'invoicing' ),
586
+                'title' => __('Status', 'invoicing'),
587 587
                 'class' => 'text-center'
588 588
             ),
589 589
 
590 590
             'invoice-total'   => array(
591
-                'title' => __( 'Total', 'invoicing' ),
591
+                'title' => __('Total', 'invoicing'),
592 592
                 'class' => 'text-right'
593 593
             ),
594 594
 
@@ -599,7 +599,7 @@  discard block
 block discarded – undo
599 599
 
600 600
         );
601 601
 
602
-    return apply_filters( 'wpinv_user_invoices_columns', $columns, $post_type );
602
+    return apply_filters('wpinv_user_invoices_columns', $columns, $post_type);
603 603
 }
604 604
 
605 605
 /**
@@ -609,59 +609,59 @@  discard block
 block discarded – undo
609 609
 
610 610
     // Find the invoice.
611 611
     $invoice_id = getpaid_get_current_invoice_id();
612
-    $invoice = new WPInv_Invoice( $invoice_id );
612
+    $invoice = new WPInv_Invoice($invoice_id);
613 613
 
614 614
     // Abort if non was found.
615
-    if ( empty( $invoice_id ) || $invoice->is_draft() ) {
615
+    if (empty($invoice_id) || $invoice->is_draft()) {
616 616
 
617 617
         return aui()->alert(
618 618
             array(
619 619
                 'type'    => 'warning',
620
-                'content' => __( 'We could not find your invoice', 'invoicing' ),
620
+                'content' => __('We could not find your invoice', 'invoicing'),
621 621
             )
622 622
         );
623 623
 
624 624
     }
625 625
 
626 626
     // Can the user view this invoice?
627
-    if ( ! wpinv_can_view_receipt( $invoice_id ) ) {
627
+    if (!wpinv_can_view_receipt($invoice_id)) {
628 628
 
629 629
         return aui()->alert(
630 630
             array(
631 631
                 'type'    => 'warning',
632
-                'content' => __( 'You are not allowed to view this receipt', 'invoicing' ),
632
+                'content' => __('You are not allowed to view this receipt', 'invoicing'),
633 633
             )
634 634
         );
635 635
 
636 636
     }
637 637
 
638 638
     // Load the template.
639
-    return wpinv_get_template_html( 'invoice-receipt.php', compact( 'invoice' ) );
639
+    return wpinv_get_template_html('invoice-receipt.php', compact('invoice'));
640 640
 
641 641
 }
642 642
 
643 643
 /**
644 644
  * Displays the invoice history.
645 645
  */
646
-function getpaid_invoice_history( $user_id = 0, $post_type = 'wpi_invoice' ) {
646
+function getpaid_invoice_history($user_id = 0, $post_type = 'wpi_invoice') {
647 647
 
648 648
     // Ensure that we have a user id.
649
-    if ( empty( $user_id ) || ! is_numeric( $user_id ) ) {
649
+    if (empty($user_id) || !is_numeric($user_id)) {
650 650
         $user_id = get_current_user_id();
651 651
     }
652 652
 
653
-    $label = getpaid_get_post_type_label( $post_type );
654
-    $label = empty( $label ) ? __( 'Invoices', 'invoicing' ) : sanitize_text_field( $label );
653
+    $label = getpaid_get_post_type_label($post_type);
654
+    $label = empty($label) ? __('Invoices', 'invoicing') : sanitize_text_field($label);
655 655
 
656 656
     // View user id.
657
-    if ( empty( $user_id ) ) {
657
+    if (empty($user_id)) {
658 658
 
659 659
         return aui()->alert(
660 660
             array(
661 661
                 'type'    => 'warning',
662 662
                 'content' => sprintf(
663
-                    __( 'You must be logged in to view your %s.', 'invoicing' ),
664
-                    strtolower( $label )
663
+                    __('You must be logged in to view your %s.', 'invoicing'),
664
+                    strtolower($label)
665 665
                 )
666 666
             )
667 667
         );
@@ -672,23 +672,23 @@  discard block
 block discarded – undo
672 672
     $invoices = wpinv_get_invoices(
673 673
 
674 674
         array(
675
-            'page'      => ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1,
675
+            'page'      => (get_query_var('paged')) ? absint(get_query_var('paged')) : 1,
676 676
             'user'      => $user_id,
677 677
             'paginate'  => true,
678 678
             'type'      => $post_type,
679
-            'status'    => array_keys( wpinv_get_invoice_statuses( false, false, $post_type ) ),
679
+            'status'    => array_keys(wpinv_get_invoice_statuses(false, false, $post_type)),
680 680
         )
681 681
 
682 682
     );
683 683
 
684
-    if ( empty( $invoices->total ) ) {
684
+    if (empty($invoices->total)) {
685 685
 
686 686
         return aui()->alert(
687 687
             array(
688 688
                 'type'    => 'info',
689 689
                 'content' => sprintf(
690
-                    __( 'No %s found.', 'invoicing' ),
691
-                    strtolower( $label )
690
+                    __('No %s found.', 'invoicing'),
691
+                    strtolower($label)
692 692
                 )
693 693
             )
694 694
         );
@@ -696,38 +696,38 @@  discard block
 block discarded – undo
696 696
     }
697 697
 
698 698
     // Load the template.
699
-    return wpinv_get_template_html( 'invoice-history.php', compact( 'invoices', 'post_type' ) );
699
+    return wpinv_get_template_html('invoice-history.php', compact('invoices', 'post_type'));
700 700
 
701 701
 }
702 702
 
703 703
 /**
704 704
  * Formats an invoice number given an invoice type.
705 705
  */
706
-function wpinv_format_invoice_number( $number, $type = '' ) {
706
+function wpinv_format_invoice_number($number, $type = '') {
707 707
 
708 708
     // Allow other plugins to overide this.
709
-    $check = apply_filters( 'wpinv_pre_format_invoice_number', null, $number, $type );
710
-    if ( null !== $check ) {
709
+    $check = apply_filters('wpinv_pre_format_invoice_number', null, $number, $type);
710
+    if (null !== $check) {
711 711
         return $check;
712 712
     }
713 713
 
714 714
     // Ensure that we have a numeric number.
715
-    if ( ! is_numeric( $number ) ) {
715
+    if (!is_numeric($number)) {
716 716
         return $number;
717 717
     }
718 718
 
719 719
     // Format the number.
720
-    $padd             = absint( (int) wpinv_get_option( 'invoice_number_padd', 5 ) );
721
-    $prefix           = sanitize_text_field( (string) wpinv_get_option( 'invoice_number_prefix', 'INV-' ) );
722
-    $prefix           = sanitize_text_field( apply_filters( 'getpaid_invoice_type_prefix', $prefix, $type ) );
723
-    $postfix          = sanitize_text_field( (string) wpinv_get_option( 'invoice_number_postfix' ) );
724
-    $postfix          = sanitize_text_field( apply_filters( 'getpaid_invoice_type_postfix', $postfix, $type ) );
725
-    $formatted_number = zeroise( absint( $number ), $padd );
720
+    $padd             = absint((int) wpinv_get_option('invoice_number_padd', 5));
721
+    $prefix           = sanitize_text_field((string) wpinv_get_option('invoice_number_prefix', 'INV-'));
722
+    $prefix           = sanitize_text_field(apply_filters('getpaid_invoice_type_prefix', $prefix, $type));
723
+    $postfix          = sanitize_text_field((string) wpinv_get_option('invoice_number_postfix'));
724
+    $postfix          = sanitize_text_field(apply_filters('getpaid_invoice_type_postfix', $postfix, $type));
725
+    $formatted_number = zeroise(absint($number), $padd);
726 726
 
727 727
     // Add the prefix and post fix.
728 728
     $formatted_number = $prefix . $formatted_number . $postfix;
729 729
 
730
-    return apply_filters( 'wpinv_format_invoice_number', $formatted_number, $number, $prefix, $postfix, $padd );
730
+    return apply_filters('wpinv_format_invoice_number', $formatted_number, $number, $prefix, $postfix, $padd);
731 731
 }
732 732
 
733 733
 /**
@@ -736,58 +736,58 @@  discard block
 block discarded – undo
736 736
  * @param string $type.
737 737
  * @return int|null|bool
738 738
  */
739
-function wpinv_get_next_invoice_number( $type = '' ) {
739
+function wpinv_get_next_invoice_number($type = '') {
740 740
 
741 741
     // Allow plugins to overide this.
742
-    $check = apply_filters( 'wpinv_get_pre_next_invoice_number', null, $type );
743
-    if ( null !== $check ) {
742
+    $check = apply_filters('wpinv_get_pre_next_invoice_number', null, $type);
743
+    if (null !== $check) {
744 744
         return $check;
745 745
     }
746 746
 
747 747
     // Ensure sequential invoice numbers is active.
748
-    if ( ! wpinv_sequential_number_active() ) {
748
+    if (!wpinv_sequential_number_active()) {
749 749
         return false;
750 750
     }
751 751
 
752 752
     // Retrieve the current number and the start number.
753
-    $number = (int) get_option( 'wpinv_last_invoice_number', 0 );
754
-    $start  = absint( (int) wpinv_get_option( 'invoice_sequence_start', 1 ) );
753
+    $number = (int) get_option('wpinv_last_invoice_number', 0);
754
+    $start  = absint((int) wpinv_get_option('invoice_sequence_start', 1));
755 755
 
756 756
     // Ensure that we are starting at a positive integer.
757
-    $start  = max( $start, 1 );
757
+    $start  = max($start, 1);
758 758
 
759 759
     // If this is the first invoice, use the start number.
760
-    $number = max( $start, $number );
760
+    $number = max($start, $number);
761 761
 
762 762
     // Format the invoice number.
763
-    $formatted_number = wpinv_format_invoice_number( $number, $type );
763
+    $formatted_number = wpinv_format_invoice_number($number, $type);
764 764
 
765 765
     // Ensure that this number is unique.
766
-    $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $formatted_number, 'number' );
766
+    $invoice_id = WPInv_Invoice::get_invoice_id_by_field($formatted_number, 'number');
767 767
 
768 768
     // We found a match. Nice.
769
-    if ( empty( $invoice_id ) ) {
770
-        update_option( 'wpinv_last_invoice_number', $number );
771
-        return apply_filters( 'wpinv_get_next_invoice_number', $number );
769
+    if (empty($invoice_id)) {
770
+        update_option('wpinv_last_invoice_number', $number);
771
+        return apply_filters('wpinv_get_next_invoice_number', $number);
772 772
     }
773 773
 
774
-    update_option( 'wpinv_last_invoice_number', $number + 1 );
775
-    return wpinv_get_next_invoice_number( $type );
774
+    update_option('wpinv_last_invoice_number', $number + 1);
775
+    return wpinv_get_next_invoice_number($type);
776 776
 
777 777
 }
778 778
 
779 779
 /**
780 780
  * The prefix used for invoice paths.
781 781
  */
782
-function wpinv_post_name_prefix( $post_type = 'wpi_invoice' ) {
783
-    return apply_filters( 'wpinv_post_name_prefix', 'inv-', $post_type );
782
+function wpinv_post_name_prefix($post_type = 'wpi_invoice') {
783
+    return apply_filters('wpinv_post_name_prefix', 'inv-', $post_type);
784 784
 }
785 785
 
786
-function wpinv_generate_post_name( $post_ID ) {
787
-    $prefix = wpinv_post_name_prefix( get_post_type( $post_ID ) );
788
-    $post_name = sanitize_title( $prefix . $post_ID );
786
+function wpinv_generate_post_name($post_ID) {
787
+    $prefix = wpinv_post_name_prefix(get_post_type($post_ID));
788
+    $post_name = sanitize_title($prefix . $post_ID);
789 789
 
790
-    return apply_filters( 'wpinv_generate_post_name', $post_name, $post_ID, $prefix );
790
+    return apply_filters('wpinv_generate_post_name', $post_name, $post_ID, $prefix);
791 791
 }
792 792
 
793 793
 /**
@@ -795,8 +795,8 @@  discard block
 block discarded – undo
795 795
  * 
796 796
  * @param int|string|object|WPInv_Invoice|WPInv_Legacy_Invoice|WP_Post $invoice Invoice id, key, transaction id, number or object.
797 797
  */
798
-function wpinv_is_invoice_viewed( $invoice ) {
799
-    $invoice = new WPInv_Invoice( $invoice );
798
+function wpinv_is_invoice_viewed($invoice) {
799
+    $invoice = new WPInv_Invoice($invoice);
800 800
     return (bool) $invoice->get_is_viewed();
801 801
 }
802 802
 
@@ -805,17 +805,17 @@  discard block
 block discarded – undo
805 805
  * 
806 806
  * @param int|string|object|WPInv_Invoice|WPInv_Legacy_Invoice|WP_Post $invoice Invoice id, key, transaction id, number or object.
807 807
  */
808
-function getpaid_maybe_mark_invoice_as_viewed( $invoice ) {
809
-    $invoice = new WPInv_Invoice( $invoice );
808
+function getpaid_maybe_mark_invoice_as_viewed($invoice) {
809
+    $invoice = new WPInv_Invoice($invoice);
810 810
 
811
-    if ( get_current_user_id() == $invoice->get_user_id() && ! $invoice->get_is_viewed() ) {
812
-        $invoice->set_is_viewed( true );
811
+    if (get_current_user_id() == $invoice->get_user_id() && !$invoice->get_is_viewed()) {
812
+        $invoice->set_is_viewed(true);
813 813
         $invoice->save();
814 814
     }
815 815
 
816 816
 }
817
-add_action( 'wpinv_invoice_print_before_display', 'getpaid_maybe_mark_invoice_as_viewed' );
818
-add_action( 'wpinv_before_receipt', 'getpaid_maybe_mark_invoice_as_viewed' );
817
+add_action('wpinv_invoice_print_before_display', 'getpaid_maybe_mark_invoice_as_viewed');
818
+add_action('wpinv_before_receipt', 'getpaid_maybe_mark_invoice_as_viewed');
819 819
 
820 820
 /**
821 821
  * Processes an invoice refund.
@@ -824,27 +824,27 @@  discard block
 block discarded – undo
824 824
  * @param array $status_transition
825 825
  * @todo: descrease customer/store earnings
826 826
  */
827
-function getpaid_maybe_process_refund( $invoice, $status_transition ) {
827
+function getpaid_maybe_process_refund($invoice, $status_transition) {
828 828
 
829
-    if ( empty( $status_transition['from'] ) || ! in_array( $status_transition['from'], array( 'publish', 'wpi-processing', 'wpi-renewal' ) ) ) {
829
+    if (empty($status_transition['from']) || !in_array($status_transition['from'], array('publish', 'wpi-processing', 'wpi-renewal'))) {
830 830
         return;
831 831
     }
832 832
 
833 833
     $discount_code = $invoice->get_discount_code();
834
-    if ( ! empty( $discount_code ) ) {
835
-        $discount = wpinv_get_discount_obj( $discount_code );
834
+    if (!empty($discount_code)) {
835
+        $discount = wpinv_get_discount_obj($discount_code);
836 836
 
837
-        if ( $discount->exists() ) {
837
+        if ($discount->exists()) {
838 838
             $discount->increase_usage( -1 );
839 839
         }
840 840
 
841 841
     }
842 842
 
843
-    do_action( 'wpinv_pre_refund_invoice', $invoice, $invoice->get_id() );
844
-    do_action( 'wpinv_refund_invoice', $invoice, $invoice->get_id() );
845
-    do_action( 'wpinv_post_refund_invoice', $invoice, $invoice->get_id() );
843
+    do_action('wpinv_pre_refund_invoice', $invoice, $invoice->get_id());
844
+    do_action('wpinv_refund_invoice', $invoice, $invoice->get_id());
845
+    do_action('wpinv_post_refund_invoice', $invoice, $invoice->get_id());
846 846
 }
847
-add_action( 'getpaid_invoice_status_wpi-refunded', 'getpaid_maybe_process_refund', 10, 2 );
847
+add_action('getpaid_invoice_status_wpi-refunded', 'getpaid_maybe_process_refund', 10, 2);
848 848
 
849 849
 
850 850
 /**
@@ -852,49 +852,49 @@  discard block
 block discarded – undo
852 852
  *
853 853
  * @param int $invoice_id
854 854
  */
855
-function getpaid_process_invoice_payment( $invoice_id ) {
855
+function getpaid_process_invoice_payment($invoice_id) {
856 856
 
857 857
     // Fetch the invoice.
858
-    $invoice = new WPInv_Invoice( $invoice_id );
858
+    $invoice = new WPInv_Invoice($invoice_id);
859 859
 
860 860
     // We only want to do this once.
861
-    if ( 1 ==  get_post_meta( $invoice->get_id(), 'wpinv_processed_payment', true ) ) {
861
+    if (1 == get_post_meta($invoice->get_id(), 'wpinv_processed_payment', true)) {
862 862
         return;
863 863
     }
864 864
 
865
-    update_post_meta( $invoice->get_id(), 'wpinv_processed_payment', 1 );
865
+    update_post_meta($invoice->get_id(), 'wpinv_processed_payment', 1);
866 866
 
867 867
     // Fires when processing a payment.
868
-    do_action( 'getpaid_process_payment', $invoice );
868
+    do_action('getpaid_process_payment', $invoice);
869 869
 
870 870
     // Fire an action for each invoice item.
871
-    foreach( $invoice->get_items() as $item ) {
872
-        do_action( 'getpaid_process_item_payment', $item, $invoice );
871
+    foreach ($invoice->get_items() as $item) {
872
+        do_action('getpaid_process_item_payment', $item, $invoice);
873 873
     }
874 874
 
875 875
     // Increase discount usage.
876 876
     $discount_code = $invoice->get_discount_code();
877
-    if ( ! empty( $discount_code ) && ! $invoice->is_renewal() ) {
878
-        $discount = wpinv_get_discount_obj( $discount_code );
877
+    if (!empty($discount_code) && !$invoice->is_renewal()) {
878
+        $discount = wpinv_get_discount_obj($discount_code);
879 879
 
880
-        if ( $discount->exists() ) {
880
+        if ($discount->exists()) {
881 881
             $discount->increase_usage();
882 882
         }
883 883
 
884 884
     }
885 885
 
886 886
     // Record reverse vat.
887
-    if ( 'invoice' == $invoice->get_type() && wpinv_use_taxes() && ! $invoice->get_disable_taxes() ) {
887
+    if ('invoice' == $invoice->get_type() && wpinv_use_taxes() && !$invoice->get_disable_taxes()) {
888 888
 
889 889
         $taxes = $invoice->get_total_tax();
890
-        if ( empty( $taxes ) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction( $invoice->get_country() ) ) {
891
-            $invoice->add_note( __( 'VAT was reverse charged', 'invoicing' ), false, false, true );
890
+        if (empty($taxes) && GetPaid_Payment_Form_Submission_Taxes::is_eu_transaction($invoice->get_country())) {
891
+            $invoice->add_note(__('VAT was reverse charged', 'invoicing'), false, false, true);
892 892
         }
893 893
 
894 894
     }
895 895
 
896 896
 }
897
-add_action( 'getpaid_invoice_payment_status_changed', 'getpaid_process_invoice_payment' );
897
+add_action('getpaid_invoice_payment_status_changed', 'getpaid_process_invoice_payment');
898 898
 
899 899
 /**
900 900
  * Returns an array of invoice item columns
@@ -902,13 +902,13 @@  discard block
 block discarded – undo
902 902
  * @param int|WPInv_Invoice $invoice
903 903
  * @return array
904 904
  */
905
-function getpaid_invoice_item_columns( $invoice ) {
905
+function getpaid_invoice_item_columns($invoice) {
906 906
 
907 907
     // Prepare the invoice.
908
-    $invoice = new WPInv_Invoice( $invoice );
908
+    $invoice = new WPInv_Invoice($invoice);
909 909
 
910 910
     // Abort if there is no invoice.
911
-    if ( 0 == $invoice->get_id() ) {
911
+    if (0 == $invoice->get_id()) {
912 912
         return array();
913 913
     }
914 914
 
@@ -916,47 +916,47 @@  discard block
 block discarded – undo
916 916
     $columns = apply_filters(
917 917
         'getpaid_invoice_item_columns',
918 918
         array(
919
-            'name'     => __( 'Item', 'invoicing' ),
920
-            'price'    => __( 'Price', 'invoicing' ),
921
-            'quantity' => __( 'Quantity', 'invoicing' ),
922
-            'subtotal' => __( 'Item Subtotal', 'invoicing' ),
919
+            'name'     => __('Item', 'invoicing'),
920
+            'price'    => __('Price', 'invoicing'),
921
+            'quantity' => __('Quantity', 'invoicing'),
922
+            'subtotal' => __('Item Subtotal', 'invoicing'),
923 923
         ),
924 924
         $invoice
925 925
     );
926 926
 
927 927
     // Quantities.
928
-    if ( isset( $columns[ 'quantity' ] ) ) {
928
+    if (isset($columns['quantity'])) {
929 929
 
930
-        if ( 'hours' == $invoice->get_template() ) {
931
-            $columns[ 'quantity' ] = __( 'Hours', 'invoicing' );
930
+        if ('hours' == $invoice->get_template()) {
931
+            $columns['quantity'] = __('Hours', 'invoicing');
932 932
         }
933 933
 
934
-        if ( ! wpinv_item_quantities_enabled() || 'amount' == $invoice->get_template() ) {
935
-            unset( $columns[ 'quantity' ] );
934
+        if (!wpinv_item_quantities_enabled() || 'amount' == $invoice->get_template()) {
935
+            unset($columns['quantity']);
936 936
         }
937 937
 
938 938
     }
939 939
 
940 940
 
941 941
     // Price.
942
-    if ( isset( $columns[ 'price' ] ) ) {
942
+    if (isset($columns['price'])) {
943 943
 
944
-        if ( 'amount' == $invoice->get_template() ) {
945
-            $columns[ 'price' ] = __( 'Amount', 'invoicing' );
944
+        if ('amount' == $invoice->get_template()) {
945
+            $columns['price'] = __('Amount', 'invoicing');
946 946
         }
947 947
 
948
-        if ( 'hours' == $invoice->get_template() ) {
949
-            $columns[ 'price' ] = __( 'Rate', 'invoicing' );
948
+        if ('hours' == $invoice->get_template()) {
949
+            $columns['price'] = __('Rate', 'invoicing');
950 950
         }
951 951
 
952 952
     }
953 953
 
954 954
 
955 955
     // Sub total.
956
-    if ( isset( $columns[ 'subtotal' ] ) ) {
956
+    if (isset($columns['subtotal'])) {
957 957
 
958
-        if ( 'amount' == $invoice->get_template() ) {
959
-            unset( $columns[ 'subtotal' ] );
958
+        if ('amount' == $invoice->get_template()) {
959
+            unset($columns['subtotal']);
960 960
         }
961 961
 
962 962
     }
@@ -970,38 +970,38 @@  discard block
 block discarded – undo
970 970
  * @param int|WPInv_Invoice $invoice
971 971
  * @return array
972 972
  */
973
-function getpaid_invoice_totals_rows( $invoice ) {
973
+function getpaid_invoice_totals_rows($invoice) {
974 974
 
975 975
     // Prepare the invoice.
976
-    $invoice = new WPInv_Invoice( $invoice );
976
+    $invoice = new WPInv_Invoice($invoice);
977 977
 
978 978
     // Abort if there is no invoice.
979
-    if ( 0 == $invoice->get_id() ) {
979
+    if (0 == $invoice->get_id()) {
980 980
         return array();
981 981
     }
982 982
 
983 983
     $totals = apply_filters(
984 984
         'getpaid_invoice_totals_rows',
985 985
         array(
986
-            'subtotal' => __( 'Subtotal', 'invoicing' ),
987
-            'tax'      => __( 'Tax', 'invoicing' ),
988
-            'fee'      => __( 'Fee', 'invoicing' ),
989
-            'discount' => __( 'Discount', 'invoicing' ),
990
-            'total'    => __( 'Total', 'invoicing' ),
986
+            'subtotal' => __('Subtotal', 'invoicing'),
987
+            'tax'      => __('Tax', 'invoicing'),
988
+            'fee'      => __('Fee', 'invoicing'),
989
+            'discount' => __('Discount', 'invoicing'),
990
+            'total'    => __('Total', 'invoicing'),
991 991
         ),
992 992
         $invoice
993 993
     );
994 994
 
995
-    if ( ( $invoice->get_disable_taxes() || ! wpinv_use_taxes() ) && isset( $totals['tax'] ) ) {
996
-        unset( $totals['tax'] );
995
+    if (($invoice->get_disable_taxes() || !wpinv_use_taxes()) && isset($totals['tax'])) {
996
+        unset($totals['tax']);
997 997
     }
998 998
 
999
-    if ( 0 == $invoice->get_total_fees() && isset( $totals['fee'] ) ) {
1000
-        unset( $totals['fee'] );
999
+    if (0 == $invoice->get_total_fees() && isset($totals['fee'])) {
1000
+        unset($totals['fee']);
1001 1001
     }
1002 1002
 
1003
-    if ( 0 == $invoice->get_total_discount() && isset( $totals['discount'] ) ) {
1004
-        unset( $totals['discount'] );
1003
+    if (0 == $invoice->get_total_discount() && isset($totals['discount'])) {
1004
+        unset($totals['discount']);
1005 1005
     }
1006 1006
 
1007 1007
     return $totals;
@@ -1012,47 +1012,47 @@  discard block
 block discarded – undo
1012 1012
  * 
1013 1013
  * @param WPInv_Invoice $invoice
1014 1014
  */
1015
-function getpaid_new_invoice( $invoice ) {
1015
+function getpaid_new_invoice($invoice) {
1016 1016
 
1017
-    if ( ! $invoice->get_status() ) {
1017
+    if (!$invoice->get_status()) {
1018 1018
         return;
1019 1019
     }
1020 1020
 
1021 1021
     // Add an invoice created note.
1022 1022
     $invoice->add_note(
1023 1023
         sprintf(
1024
-            __( '%s created with the status "%s".', 'invoicing' ),
1025
-            ucfirst( $invoice->get_invoice_quote_type() ),
1026
-            wpinv_status_nicename( $invoice->get_status(), $invoice  )
1024
+            __('%s created with the status "%s".', 'invoicing'),
1025
+            ucfirst($invoice->get_invoice_quote_type()),
1026
+            wpinv_status_nicename($invoice->get_status(), $invoice)
1027 1027
         )
1028 1028
     );
1029 1029
 
1030 1030
 }
1031
-add_action( 'getpaid_new_invoice', 'getpaid_new_invoice' );
1031
+add_action('getpaid_new_invoice', 'getpaid_new_invoice');
1032 1032
 
1033 1033
 /**
1034 1034
  * This function updates invoice caches.
1035 1035
  * 
1036 1036
  * @param WPInv_Invoice $invoice
1037 1037
  */
1038
-function getpaid_update_invoice_caches( $invoice ) {
1038
+function getpaid_update_invoice_caches($invoice) {
1039 1039
 
1040 1040
     // Cache invoice number.
1041
-    wp_cache_set( $invoice->get_number(), $invoice->get_id(), "getpaid_invoice_numbers_to_invoice_ids" );
1041
+    wp_cache_set($invoice->get_number(), $invoice->get_id(), "getpaid_invoice_numbers_to_invoice_ids");
1042 1042
 
1043 1043
     // Cache invoice key.
1044
-    wp_cache_set( $invoice->get_key(), $invoice->get_id(), "getpaid_invoice_keys_to_invoice_ids" );
1044
+    wp_cache_set($invoice->get_key(), $invoice->get_id(), "getpaid_invoice_keys_to_invoice_ids");
1045 1045
 
1046 1046
     // (Maybe) cache transaction id.
1047 1047
     $transaction_id = $invoice->get_transaction_id();
1048 1048
 
1049
-    if ( ! empty( $transaction_id ) ) {
1050
-        wp_cache_set( $transaction_id, $invoice->get_id(), "getpaid_invoice_transaction_ids_to_invoice_ids" );
1049
+    if (!empty($transaction_id)) {
1050
+        wp_cache_set($transaction_id, $invoice->get_id(), "getpaid_invoice_transaction_ids_to_invoice_ids");
1051 1051
     }
1052 1052
 
1053 1053
 }
1054
-add_action( 'getpaid_new_invoice', 'getpaid_update_invoice_caches', 5 );
1055
-add_action( 'getpaid_update_invoice', 'getpaid_update_invoice_caches', 5 );
1054
+add_action('getpaid_new_invoice', 'getpaid_update_invoice_caches', 5);
1055
+add_action('getpaid_update_invoice', 'getpaid_update_invoice_caches', 5);
1056 1056
 
1057 1057
 /**
1058 1058
  * Duplicates an invoice.
@@ -1062,7 +1062,7 @@  discard block
 block discarded – undo
1062 1062
  * @param  WPInv_Invoice $old_invoice The invoice to duplicate
1063 1063
  * @return WPInv_Invoice The new invoice.
1064 1064
  */
1065
-function getpaid_duplicate_invoice( $old_invoice ) {
1065
+function getpaid_duplicate_invoice($old_invoice) {
1066 1066
 
1067 1067
     // Create the new invoice.
1068 1068
     $invoice = new WPInv_Invoice();
@@ -1123,123 +1123,123 @@  discard block
 block discarded – undo
1123 1123
  * @param WPInv_Invoice $invoice
1124 1124
  * @return array
1125 1125
  */
1126
-function getpaid_get_invoice_meta( $invoice ) {
1126
+function getpaid_get_invoice_meta($invoice) {
1127 1127
 
1128 1128
     // Load the invoice meta.
1129 1129
     $meta = array(
1130 1130
 
1131 1131
         'number' => array(
1132 1132
             'label' => sprintf(
1133
-                __( '%s Number', 'invoicing' ),
1134
-                ucfirst( $invoice->get_invoice_quote_type() )
1133
+                __('%s Number', 'invoicing'),
1134
+                ucfirst($invoice->get_invoice_quote_type())
1135 1135
             ),
1136
-            'value' => sanitize_text_field( $invoice->get_number() ),
1136
+            'value' => sanitize_text_field($invoice->get_number()),
1137 1137
         ),
1138 1138
 
1139 1139
         'status' => array(
1140 1140
             'label' => sprintf(
1141
-                __( '%s Status', 'invoicing' ),
1142
-                ucfirst( $invoice->get_invoice_quote_type() )
1141
+                __('%s Status', 'invoicing'),
1142
+                ucfirst($invoice->get_invoice_quote_type())
1143 1143
             ),
1144 1144
             'value' => $invoice->get_status_label_html(),
1145 1145
         ),
1146 1146
 
1147 1147
         'date' => array(
1148 1148
             'label' => sprintf(
1149
-                __( '%s Date', 'invoicing' ),
1150
-                ucfirst( $invoice->get_invoice_quote_type() )
1149
+                __('%s Date', 'invoicing'),
1150
+                ucfirst($invoice->get_invoice_quote_type())
1151 1151
             ),
1152
-            'value' => getpaid_format_date( $invoice->get_created_date() ),
1152
+            'value' => getpaid_format_date($invoice->get_created_date()),
1153 1153
         ),
1154 1154
 
1155 1155
         'date_paid' => array(
1156
-            'label' => __( 'Paid On', 'invoicing' ),
1157
-            'value' => getpaid_format_date( $invoice->get_completed_date() ),
1156
+            'label' => __('Paid On', 'invoicing'),
1157
+            'value' => getpaid_format_date($invoice->get_completed_date()),
1158 1158
         ),
1159 1159
 
1160 1160
         'gateway'   => array(
1161
-            'label' => __( 'Payment Method', 'invoicing' ),
1162
-            'value' => sanitize_text_field( $invoice->get_gateway_title() ),
1161
+            'label' => __('Payment Method', 'invoicing'),
1162
+            'value' => sanitize_text_field($invoice->get_gateway_title()),
1163 1163
         ),
1164 1164
 
1165 1165
         'transaction_id' => array(
1166
-            'label' => __( 'Transaction ID', 'invoicing' ),
1167
-            'value' => sanitize_text_field( $invoice->get_transaction_id() ),
1166
+            'label' => __('Transaction ID', 'invoicing'),
1167
+            'value' => sanitize_text_field($invoice->get_transaction_id()),
1168 1168
         ),
1169 1169
 
1170 1170
         'due_date'  => array(
1171
-            'label' => __( 'Due Date', 'invoicing' ),
1172
-            'value' => getpaid_format_date( $invoice->get_due_date() ),
1171
+            'label' => __('Due Date', 'invoicing'),
1172
+            'value' => getpaid_format_date($invoice->get_due_date()),
1173 1173
         ),
1174 1174
 
1175 1175
         'vat_number' => array(
1176
-            'label' => __( 'VAT Number', 'invoicing' ),
1177
-            'value' => sanitize_text_field( $invoice->get_vat_number() ),
1176
+            'label' => __('VAT Number', 'invoicing'),
1177
+            'value' => sanitize_text_field($invoice->get_vat_number()),
1178 1178
         ),
1179 1179
 
1180 1180
     );
1181 1181
 
1182 1182
     // If it is not paid, remove the date of payment.
1183
-    if ( ! $invoice->is_paid() ) {
1184
-        unset( $meta[ 'date_paid' ] );
1185
-        unset( $meta[ 'transaction_id' ] );
1183
+    if (!$invoice->is_paid()) {
1184
+        unset($meta['date_paid']);
1185
+        unset($meta['transaction_id']);
1186 1186
     }
1187 1187
 
1188
-    if ( ! $invoice->is_paid() || 'none' == $invoice->get_gateway() ) {
1189
-        unset( $meta[ 'gateway' ] );
1188
+    if (!$invoice->is_paid() || 'none' == $invoice->get_gateway()) {
1189
+        unset($meta['gateway']);
1190 1190
     }
1191 1191
 
1192 1192
     // Only display the due date if due dates are enabled.
1193
-    if ( ! $invoice->needs_payment() || ! wpinv_get_option( 'overdue_active' ) ) {
1194
-        unset( $meta[ 'due_date' ] );
1193
+    if (!$invoice->needs_payment() || !wpinv_get_option('overdue_active')) {
1194
+        unset($meta['due_date']);
1195 1195
     }
1196 1196
 
1197 1197
     // Only display the vat number if taxes are enabled.
1198
-    if ( ! wpinv_use_taxes() ) {
1199
-        unset( $meta[ 'vat_number' ] );
1198
+    if (!wpinv_use_taxes()) {
1199
+        unset($meta['vat_number']);
1200 1200
     }
1201 1201
 
1202
-    if ( $invoice->is_recurring() ) {
1202
+    if ($invoice->is_recurring()) {
1203 1203
 
1204 1204
         // Link to the parent invoice.
1205
-        if ( $invoice->is_renewal() ) {
1205
+        if ($invoice->is_renewal()) {
1206 1206
 
1207
-            $meta[ 'parent' ] = array(
1207
+            $meta['parent'] = array(
1208 1208
 
1209 1209
                 'label' => sprintf(
1210
-                    __( 'Parent %s', 'invoicing' ),
1211
-                    ucfirst( $invoice->get_invoice_quote_type() )
1210
+                    __('Parent %s', 'invoicing'),
1211
+                    ucfirst($invoice->get_invoice_quote_type())
1212 1212
                 ),
1213 1213
 
1214
-                'value' => wpinv_invoice_link( $invoice->get_parent_id() ),
1214
+                'value' => wpinv_invoice_link($invoice->get_parent_id()),
1215 1215
 
1216 1216
             );
1217 1217
 
1218 1218
         }
1219 1219
 
1220
-        $subscription = wpinv_get_subscription( $invoice );
1220
+        $subscription = wpinv_get_subscription($invoice);
1221 1221
 
1222
-        if ( ! empty ( $subscription ) ) {
1222
+        if (!empty ($subscription)) {
1223 1223
 
1224 1224
             // Display the renewal date.
1225
-            if ( $subscription->is_active() && 'cancelled' != $subscription->get_status() ) {
1225
+            if ($subscription->is_active() && 'cancelled' != $subscription->get_status()) {
1226 1226
 
1227
-                $meta[ 'renewal_date' ] = array(
1227
+                $meta['renewal_date'] = array(
1228 1228
 
1229
-                    'label' => __( 'Renews On', 'invoicing' ),
1230
-                    'value' => getpaid_format_date( $subscription->get_expiration() ),
1229
+                    'label' => __('Renews On', 'invoicing'),
1230
+                    'value' => getpaid_format_date($subscription->get_expiration()),
1231 1231
         
1232 1232
                 );
1233 1233
 
1234 1234
             }
1235 1235
 
1236
-            if ( $invoice->is_parent() ) {
1236
+            if ($invoice->is_parent()) {
1237 1237
 
1238 1238
                 // Display the recurring amount.
1239
-                $meta[ 'recurring_total' ] = array(
1239
+                $meta['recurring_total'] = array(
1240 1240
 
1241
-                    'label' => __( 'Recurring Amount', 'invoicing' ),
1242
-                    'value' => wpinv_price( $subscription->get_recurring_amount(), $invoice->get_currency() ),
1241
+                    'label' => __('Recurring Amount', 'invoicing'),
1242
+                    'value' => wpinv_price($subscription->get_recurring_amount(), $invoice->get_currency()),
1243 1243
         
1244 1244
                 );
1245 1245
 
@@ -1249,15 +1249,15 @@  discard block
 block discarded – undo
1249 1249
     }
1250 1250
 
1251 1251
     // Add the invoice total to the meta.
1252
-    $meta[ 'invoice_total' ] = array(
1252
+    $meta['invoice_total'] = array(
1253 1253
 
1254
-        'label' => __( 'Total Amount', 'invoicing' ),
1255
-        'value' => wpinv_price( $invoice->get_total(), $invoice->get_currency() ),
1254
+        'label' => __('Total Amount', 'invoicing'),
1255
+        'value' => wpinv_price($invoice->get_total(), $invoice->get_currency()),
1256 1256
 
1257 1257
     );
1258 1258
 
1259 1259
     // Provide a way for third party plugins to filter the meta.
1260
-    $meta = apply_filters( 'getpaid_invoice_meta_data', $meta, $invoice );
1260
+    $meta = apply_filters('getpaid_invoice_meta_data', $meta, $invoice);
1261 1261
 
1262 1262
     return $meta;
1263 1263
 
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-settings-controller.php 2 patches
Indentation   +749 added lines, -749 removed lines patch added patch discarded remove patch
@@ -18,758 +18,758 @@
 block discarded – undo
18 18
  */
19 19
 class GetPaid_REST_Settings_Controller extends GetPaid_REST_Controller {
20 20
 
21
-	/**
22
-	 * An array of available settings.
23
-	 *
24
-	 * @var string
25
-	 */
26
-	protected $settings;
27
-
28
-	/**
29
-	 * Route base.
30
-	 *
31
-	 * @var string
32
-	 */
33
-	protected $rest_base = 'settings';
34
-
35
-	/**
36
-	 * Registers the routes for the objects of the controller.
37
-	 *
38
-	 * @since 2.0.0
39
-	 *
40
-	 * @see register_rest_route()
41
-	 */
42
-	public function register_namespace_routes( $namespace ) {
43
-
44
-		// List all registered tabs.
45
-		register_rest_route(
46
-			$namespace,
47
-			$this->rest_base,
48
-			array(
49
-				array(
50
-					'methods'             => WP_REST_Server::READABLE,
51
-					'callback'            => array( $this, 'get_tabs' ),
52
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
53
-				),
54
-				'schema' => '__return_empty_array',
55
-			)
56
-		);
57
-
58
-		// View/Update a single setting.
59
-		register_rest_route(
60
-			$namespace,
61
-			$this->rest_base . '/setting/(?P<id>[\w-]+)',
62
-			array(
63
-				'args'   => array(
64
-					'id'    => array(
65
-						'description' => __( 'Unique identifier for the setting.', 'invoicing' ),
66
-						'type'        => 'string',
67
-						'required'    => true,
68
-					),
69
-				),
70
-				array(
71
-					'methods'             => WP_REST_Server::READABLE,
72
-					'callback'            => array( $this, 'get_item' ),
73
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
74
-				),
75
-				array(
76
-					'methods'             => WP_REST_Server::EDITABLE,
77
-					'callback'            => array( $this, 'update_item' ),
78
-					'permission_callback' => array( $this, 'update_items_permissions_check' ),
79
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
80
-				),
81
-				'schema' => array( $this, 'get_public_item_schema' ),
82
-			)
83
-		);
84
-
85
-		// List registered sections for a given tab.
86
-		register_rest_route(
87
-			$namespace,
88
-			$this->rest_base . '/(?P<tab>[\w-]+)',
89
-			array(
90
-				'args'   => array(
91
-					'tab'    => array(
92
-						'description' => __( 'Unique identifier for the tab whose sections should be retrieved.', 'invoicing' ),
93
-						'type'        => 'string',
94
-						'required'    => true,
95
-						'enum'        => array_keys( wpinv_get_settings_tabs() ),
96
-					),
97
-				),
98
-				array(
99
-					'methods'             => WP_REST_Server::READABLE,
100
-					'callback'            => array( $this, 'get_sections' ),
101
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
102
-				),
103
-				'schema' => '__return_empty_array',
104
-			)
105
-		);
106
-
107
-		// List all registered settings for a given tab.
108
-		register_rest_route(
109
-			$namespace,
110
-			$this->rest_base . '/(?P<tab>[\w-]+)/(?P<section>[\w-]+)',
111
-			array(
112
-				'args'   => array(
113
-					'tab'    => array(
114
-						'description' => __( 'Unique identifier for the tab whose settings should be retrieved.', 'invoicing' ),
115
-						'type'        => 'string',
116
-						'required'    => true,
117
-						'enum'        => array_keys( wpinv_get_settings_tabs() ),
118
-					),
119
-					'section'    => array(
120
-						'description' => __( 'The section in the tab whose settings should be retrieved.', 'invoicing' ),
121
-						'type'        => 'string',
122
-						'required'    => true,
123
-					),
124
-				),
125
-				array(
126
-					'methods'             => WP_REST_Server::READABLE,
127
-					'callback'            => array( $this, 'get_items' ),
128
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
129
-				),
130
-				'schema' => array( $this, 'get_public_item_schema' ),
131
-			)
132
-		);
133
-
134
-		register_rest_route(
135
-			$namespace,
136
-			'/' . $this->rest_base . '/batch',
137
-			array(
138
-				'args'   => array(
139
-					'id'              => array(
140
-						'description' => __( 'Setting ID.', 'invoicing' ),
141
-						'type'        => 'string',
142
-					),
143
-				),
144
-				array(
145
-					'methods'             => WP_REST_Server::EDITABLE,
146
-					'callback'            => array( $this, 'batch_items' ),
147
-					'permission_callback' => array( $this, 'batch_items_permissions_check' ),
148
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
149
-				),
150
-				'schema' => array( $this, 'get_public_batch_schema' ),
151
-			)
152
-		);
153
-
154
-	}
21
+    /**
22
+     * An array of available settings.
23
+     *
24
+     * @var string
25
+     */
26
+    protected $settings;
27
+
28
+    /**
29
+     * Route base.
30
+     *
31
+     * @var string
32
+     */
33
+    protected $rest_base = 'settings';
34
+
35
+    /**
36
+     * Registers the routes for the objects of the controller.
37
+     *
38
+     * @since 2.0.0
39
+     *
40
+     * @see register_rest_route()
41
+     */
42
+    public function register_namespace_routes( $namespace ) {
43
+
44
+        // List all registered tabs.
45
+        register_rest_route(
46
+            $namespace,
47
+            $this->rest_base,
48
+            array(
49
+                array(
50
+                    'methods'             => WP_REST_Server::READABLE,
51
+                    'callback'            => array( $this, 'get_tabs' ),
52
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
53
+                ),
54
+                'schema' => '__return_empty_array',
55
+            )
56
+        );
57
+
58
+        // View/Update a single setting.
59
+        register_rest_route(
60
+            $namespace,
61
+            $this->rest_base . '/setting/(?P<id>[\w-]+)',
62
+            array(
63
+                'args'   => array(
64
+                    'id'    => array(
65
+                        'description' => __( 'Unique identifier for the setting.', 'invoicing' ),
66
+                        'type'        => 'string',
67
+                        'required'    => true,
68
+                    ),
69
+                ),
70
+                array(
71
+                    'methods'             => WP_REST_Server::READABLE,
72
+                    'callback'            => array( $this, 'get_item' ),
73
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
74
+                ),
75
+                array(
76
+                    'methods'             => WP_REST_Server::EDITABLE,
77
+                    'callback'            => array( $this, 'update_item' ),
78
+                    'permission_callback' => array( $this, 'update_items_permissions_check' ),
79
+                    'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
80
+                ),
81
+                'schema' => array( $this, 'get_public_item_schema' ),
82
+            )
83
+        );
84
+
85
+        // List registered sections for a given tab.
86
+        register_rest_route(
87
+            $namespace,
88
+            $this->rest_base . '/(?P<tab>[\w-]+)',
89
+            array(
90
+                'args'   => array(
91
+                    'tab'    => array(
92
+                        'description' => __( 'Unique identifier for the tab whose sections should be retrieved.', 'invoicing' ),
93
+                        'type'        => 'string',
94
+                        'required'    => true,
95
+                        'enum'        => array_keys( wpinv_get_settings_tabs() ),
96
+                    ),
97
+                ),
98
+                array(
99
+                    'methods'             => WP_REST_Server::READABLE,
100
+                    'callback'            => array( $this, 'get_sections' ),
101
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
102
+                ),
103
+                'schema' => '__return_empty_array',
104
+            )
105
+        );
106
+
107
+        // List all registered settings for a given tab.
108
+        register_rest_route(
109
+            $namespace,
110
+            $this->rest_base . '/(?P<tab>[\w-]+)/(?P<section>[\w-]+)',
111
+            array(
112
+                'args'   => array(
113
+                    'tab'    => array(
114
+                        'description' => __( 'Unique identifier for the tab whose settings should be retrieved.', 'invoicing' ),
115
+                        'type'        => 'string',
116
+                        'required'    => true,
117
+                        'enum'        => array_keys( wpinv_get_settings_tabs() ),
118
+                    ),
119
+                    'section'    => array(
120
+                        'description' => __( 'The section in the tab whose settings should be retrieved.', 'invoicing' ),
121
+                        'type'        => 'string',
122
+                        'required'    => true,
123
+                    ),
124
+                ),
125
+                array(
126
+                    'methods'             => WP_REST_Server::READABLE,
127
+                    'callback'            => array( $this, 'get_items' ),
128
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
129
+                ),
130
+                'schema' => array( $this, 'get_public_item_schema' ),
131
+            )
132
+        );
133
+
134
+        register_rest_route(
135
+            $namespace,
136
+            '/' . $this->rest_base . '/batch',
137
+            array(
138
+                'args'   => array(
139
+                    'id'              => array(
140
+                        'description' => __( 'Setting ID.', 'invoicing' ),
141
+                        'type'        => 'string',
142
+                    ),
143
+                ),
144
+                array(
145
+                    'methods'             => WP_REST_Server::EDITABLE,
146
+                    'callback'            => array( $this, 'batch_items' ),
147
+                    'permission_callback' => array( $this, 'batch_items_permissions_check' ),
148
+                    'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
149
+                ),
150
+                'schema' => array( $this, 'get_public_batch_schema' ),
151
+            )
152
+        );
153
+
154
+    }
155 155
 	
156
-	/**
157
-	 * Return all settings.
158
-	 *
159
-	 * @since  2.0.0
160
-	 * @param  WP_REST_Request $request Request data.
161
-	 * @return WP_Error|WP_REST_Response
162
-	 */
163
-	public function get_items( $request ) {
164
-
165
-		$settings = $this->get_settings();
166
-
167
-		if ( ! isset( $settings[ $request['tab'] ] ) ) {
168
-			return new WP_Error( 'rest_invalid_tab', __( 'Invalid tab.', 'invoicing' ), array( 'status' => 400 ) );
169
-		}
170
-
171
-		if ( ! isset( $settings[ $request['tab'] ][ $request['section'] ] ) ) {
172
-			return new WP_Error( 'rest_invalid_section', __( 'Invalid section.', 'invoicing' ), array( 'status' => 400 ) );
173
-		}
174
-
175
-		$settings = $settings[ $request['tab'] ][ $request['section'] ];
176
-		$prepared = array();
177
-
178
-		foreach ( $settings as $setting ) {
179
-
180
-			$setting      = $this->sanitize_setting( $setting );
181
-			$setting_data = $this->prepare_item_for_response( $setting, $request );
182
-			$setting_data = $this->prepare_response_for_collection( $setting_data );
183
-
184
-			if ( $this->is_setting_type_valid( $setting['type'] ) ) {
185
-				$prepared[]   = $setting_data;
186
-			}
187
-
188
-		}
189
-
190
-		return rest_ensure_response( $prepared );
191
-	}
192
-
193
-	/**
194
-	 * Return a single setting.
195
-	 *
196
-	 * @since  2.0.0
197
-	 * @param  WP_REST_Request $request Request data.
198
-	 * @return WP_Error|WP_REST_Response
199
-	 */
200
-	public function get_item( $request ) {
201
-		$setting  = $this->get_setting( $request['id'] );
202
-
203
-		if ( is_wp_error( $setting ) ) {
204
-			return $setting;
205
-		}
206
-
207
-		$setting  = $this->sanitize_setting( $setting );
208
-		$response = $this->prepare_item_for_response( $setting, $request );
209
-		return rest_ensure_response( $response );
210
-	}
211
-
212
-	/**
213
-	 * Update a single setting.
214
-	 *
215
-	 * @since  2.0.0
216
-	 * @param  WP_REST_Request $request Request data.
217
-	 * @return WP_Error|WP_REST_Response
218
-	 */
219
-	public function update_item( $request ) {
220
-		$setting = $this->get_setting( $request['id'] );
221
-
222
-		if ( is_wp_error( $setting ) ) {
223
-			return $setting;
224
-		}
225
-
226
-		if ( is_callable( array( $this, 'validate_setting_' . $setting['type'] . '_field' ) ) ) {
227
-			$value = $this->{'validate_setting_' . $setting['type'] . '_field'}( $request['value'], $setting );
228
-		} else {
229
-			$value = $this->validate_setting_text_field( $request['value'], $setting );
230
-		}
231
-
232
-		if ( is_wp_error( $value ) ) {
233
-			return $value;
234
-		}
235
-
236
-		wpinv_update_option( $request['id'], $value );
237
-		$setting['value'] = $value;
238
-		$setting          = $this->sanitize_setting( $setting );
239
-		$response         = $this->prepare_item_for_response( $setting, $request );
240
-
241
-		return rest_ensure_response( $response );
242
-	}
243
-
244
-	/**
245
-	 * Makes sure the current user has access to READ the settings APIs.
246
-	 *
247
-	 * @since  2.0.0
248
-	 * @param WP_REST_Request $request Full data about the request.
249
-	 * @return WP_Error|boolean
250
-	 */
251
-	public function get_items_permissions_check( $request ) {
252
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
253
-			return new WP_Error( 'rest_cannot_view', __( 'Sorry, you cannot list resources.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
254
-		}
255
-
256
-		return true;
257
-	}
258
-
259
-	/**
260
-	 * Makes sure the current user has access to WRITE the settings APIs.
261
-	 *
262
-	 * @since  2.0.0
263
-	 * @param WP_REST_Request $request Full data about the request.
264
-	 * @return WP_Error|boolean
265
-	 */
266
-	public function update_items_permissions_check( $request ) {
267
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
268
-			return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you cannot edit this resource.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
269
-		}
270
-
271
-		return true;
272
-	}
273
-
274
-	/**
275
-	 * Check if a given request has access batch create, update and delete items.
276
-	 *
277
-	 * @param  WP_REST_Request $request Full details about the request.
278
-	 *
279
-	 * @return boolean|WP_Error
280
-	 */
281
-	public function batch_items_permissions_check( $request ) {
282
-		return wpinv_current_user_can_manage_invoicing() ? true : new WP_Error( 'rest_cannot_batch', __( 'Sorry, you are not allowed to batch manipulate this resource.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
283
-	}
284
-
285
-	/**
286
-	 * Prepare links for the request.
287
-	 *
288
-	 * @param string $setting_id Setting ID.
289
-	 * @return array Links for the given setting.
290
-	 */
291
-	protected function prepare_links( $setting_id ) {
292
-
293
-		$links = array(
294
-			'self'       => array(
295
-				'href'   => rest_url( sprintf( '/%s/%s/setting/%s', $this->namespace, $this->rest_base, $setting_id ) ),
296
-			),
297
-			'collection' => array(
298
-				'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
299
-			),
300
-		);
301
-
302
-		return $links;
303
-	}
304
-
305
-	/**
306
-	 * Prepare a settings object for serialization.
307
-	 *
308
-	 * @since  2.0.0
309
-	 * @param array           $item Setting object.
310
-	 * @param WP_REST_Request $request Request object.
311
-	 * @return WP_REST_Response $response Response data.
312
-	 */
313
-	public function prepare_item_for_response( $item, $request ) {
314
-		$context = empty( $request['context'] ) ? 'view' : $request['context'];
315
-		$data    = $this->add_additional_fields_to_object( $item, $request );
316
-		$data    = $this->filter_response_by_context( $data, $context );
317
-
318
-		$response = rest_ensure_response( $data );
319
-
320
-		$response->add_links( $this->prepare_links( $item['id'] ) );
321
-
322
-		return $response;
323
-	}
324
-
325
-	/**
326
-	 * Filters out bad values from the settings array/filter so we
327
-	 * only return known values via the API.
328
-	 *
329
-	 * @since 2.0.0
330
-	 * @param  array $setting Setting.
331
-	 * @return array
332
-	 */
333
-	public function filter_setting( $setting ) {
334
-		return array_intersect_key(
335
-			$setting,
336
-			array_flip( array_filter( array_keys( $setting ), array( $this, 'allowed_setting_keys' ) ) )
337
-		);
338
-	}
339
-
340
-	/**
341
-	 * Callback for allowed keys for each setting response.
342
-	 *
343
-	 * @param  string $key Key to check.
344
-	 * @return boolean
345
-	 */
346
-	public function allowed_setting_keys( $key ) {
347
-		return in_array( $key, array_keys( $this->setting_defaults() ), true );
348
-	}
349
-
350
-	/**
351
-	 * Returns default options for a setting. null means the field is required.
352
-	 *
353
-	 * @since  2.0.0
354
-	 * @return array
355
-	 */
356
-	protected function setting_defaults() {
357
-		return array(
358
-			'id'          => null,
359
-			'name'        => null,
360
-			'desc'        => '',
361
-			'options'     => array(),
362
-			'std'         => false,
363
-			'value'       => false,
364
-			'placeholder' => '',
365
-			'readonly'    => false,
366
-			'faux'        => false,
367
-			'section'     => 'main',
368
-			'tab'         => 'general',
369
-			'type'        => 'text',
370
-		);
371
-	}
372
-
373
-	/**
374
-	 * Sanitizes a setting's field.
375
-	 *
376
-	 * @param  array $setting The setting to sanitize.
377
-	 * @return array
378
-	 */
379
-	public function sanitize_setting( $setting ) {
156
+    /**
157
+     * Return all settings.
158
+     *
159
+     * @since  2.0.0
160
+     * @param  WP_REST_Request $request Request data.
161
+     * @return WP_Error|WP_REST_Response
162
+     */
163
+    public function get_items( $request ) {
164
+
165
+        $settings = $this->get_settings();
166
+
167
+        if ( ! isset( $settings[ $request['tab'] ] ) ) {
168
+            return new WP_Error( 'rest_invalid_tab', __( 'Invalid tab.', 'invoicing' ), array( 'status' => 400 ) );
169
+        }
170
+
171
+        if ( ! isset( $settings[ $request['tab'] ][ $request['section'] ] ) ) {
172
+            return new WP_Error( 'rest_invalid_section', __( 'Invalid section.', 'invoicing' ), array( 'status' => 400 ) );
173
+        }
174
+
175
+        $settings = $settings[ $request['tab'] ][ $request['section'] ];
176
+        $prepared = array();
177
+
178
+        foreach ( $settings as $setting ) {
179
+
180
+            $setting      = $this->sanitize_setting( $setting );
181
+            $setting_data = $this->prepare_item_for_response( $setting, $request );
182
+            $setting_data = $this->prepare_response_for_collection( $setting_data );
183
+
184
+            if ( $this->is_setting_type_valid( $setting['type'] ) ) {
185
+                $prepared[]   = $setting_data;
186
+            }
187
+
188
+        }
189
+
190
+        return rest_ensure_response( $prepared );
191
+    }
192
+
193
+    /**
194
+     * Return a single setting.
195
+     *
196
+     * @since  2.0.0
197
+     * @param  WP_REST_Request $request Request data.
198
+     * @return WP_Error|WP_REST_Response
199
+     */
200
+    public function get_item( $request ) {
201
+        $setting  = $this->get_setting( $request['id'] );
202
+
203
+        if ( is_wp_error( $setting ) ) {
204
+            return $setting;
205
+        }
206
+
207
+        $setting  = $this->sanitize_setting( $setting );
208
+        $response = $this->prepare_item_for_response( $setting, $request );
209
+        return rest_ensure_response( $response );
210
+    }
211
+
212
+    /**
213
+     * Update a single setting.
214
+     *
215
+     * @since  2.0.0
216
+     * @param  WP_REST_Request $request Request data.
217
+     * @return WP_Error|WP_REST_Response
218
+     */
219
+    public function update_item( $request ) {
220
+        $setting = $this->get_setting( $request['id'] );
221
+
222
+        if ( is_wp_error( $setting ) ) {
223
+            return $setting;
224
+        }
225
+
226
+        if ( is_callable( array( $this, 'validate_setting_' . $setting['type'] . '_field' ) ) ) {
227
+            $value = $this->{'validate_setting_' . $setting['type'] . '_field'}( $request['value'], $setting );
228
+        } else {
229
+            $value = $this->validate_setting_text_field( $request['value'], $setting );
230
+        }
231
+
232
+        if ( is_wp_error( $value ) ) {
233
+            return $value;
234
+        }
235
+
236
+        wpinv_update_option( $request['id'], $value );
237
+        $setting['value'] = $value;
238
+        $setting          = $this->sanitize_setting( $setting );
239
+        $response         = $this->prepare_item_for_response( $setting, $request );
240
+
241
+        return rest_ensure_response( $response );
242
+    }
243
+
244
+    /**
245
+     * Makes sure the current user has access to READ the settings APIs.
246
+     *
247
+     * @since  2.0.0
248
+     * @param WP_REST_Request $request Full data about the request.
249
+     * @return WP_Error|boolean
250
+     */
251
+    public function get_items_permissions_check( $request ) {
252
+        if ( ! wpinv_current_user_can_manage_invoicing() ) {
253
+            return new WP_Error( 'rest_cannot_view', __( 'Sorry, you cannot list resources.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
254
+        }
255
+
256
+        return true;
257
+    }
258
+
259
+    /**
260
+     * Makes sure the current user has access to WRITE the settings APIs.
261
+     *
262
+     * @since  2.0.0
263
+     * @param WP_REST_Request $request Full data about the request.
264
+     * @return WP_Error|boolean
265
+     */
266
+    public function update_items_permissions_check( $request ) {
267
+        if ( ! wpinv_current_user_can_manage_invoicing() ) {
268
+            return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you cannot edit this resource.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
269
+        }
270
+
271
+        return true;
272
+    }
273
+
274
+    /**
275
+     * Check if a given request has access batch create, update and delete items.
276
+     *
277
+     * @param  WP_REST_Request $request Full details about the request.
278
+     *
279
+     * @return boolean|WP_Error
280
+     */
281
+    public function batch_items_permissions_check( $request ) {
282
+        return wpinv_current_user_can_manage_invoicing() ? true : new WP_Error( 'rest_cannot_batch', __( 'Sorry, you are not allowed to batch manipulate this resource.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
283
+    }
284
+
285
+    /**
286
+     * Prepare links for the request.
287
+     *
288
+     * @param string $setting_id Setting ID.
289
+     * @return array Links for the given setting.
290
+     */
291
+    protected function prepare_links( $setting_id ) {
292
+
293
+        $links = array(
294
+            'self'       => array(
295
+                'href'   => rest_url( sprintf( '/%s/%s/setting/%s', $this->namespace, $this->rest_base, $setting_id ) ),
296
+            ),
297
+            'collection' => array(
298
+                'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
299
+            ),
300
+        );
301
+
302
+        return $links;
303
+    }
304
+
305
+    /**
306
+     * Prepare a settings object for serialization.
307
+     *
308
+     * @since  2.0.0
309
+     * @param array           $item Setting object.
310
+     * @param WP_REST_Request $request Request object.
311
+     * @return WP_REST_Response $response Response data.
312
+     */
313
+    public function prepare_item_for_response( $item, $request ) {
314
+        $context = empty( $request['context'] ) ? 'view' : $request['context'];
315
+        $data    = $this->add_additional_fields_to_object( $item, $request );
316
+        $data    = $this->filter_response_by_context( $data, $context );
317
+
318
+        $response = rest_ensure_response( $data );
319
+
320
+        $response->add_links( $this->prepare_links( $item['id'] ) );
321
+
322
+        return $response;
323
+    }
324
+
325
+    /**
326
+     * Filters out bad values from the settings array/filter so we
327
+     * only return known values via the API.
328
+     *
329
+     * @since 2.0.0
330
+     * @param  array $setting Setting.
331
+     * @return array
332
+     */
333
+    public function filter_setting( $setting ) {
334
+        return array_intersect_key(
335
+            $setting,
336
+            array_flip( array_filter( array_keys( $setting ), array( $this, 'allowed_setting_keys' ) ) )
337
+        );
338
+    }
339
+
340
+    /**
341
+     * Callback for allowed keys for each setting response.
342
+     *
343
+     * @param  string $key Key to check.
344
+     * @return boolean
345
+     */
346
+    public function allowed_setting_keys( $key ) {
347
+        return in_array( $key, array_keys( $this->setting_defaults() ), true );
348
+    }
349
+
350
+    /**
351
+     * Returns default options for a setting. null means the field is required.
352
+     *
353
+     * @since  2.0.0
354
+     * @return array
355
+     */
356
+    protected function setting_defaults() {
357
+        return array(
358
+            'id'          => null,
359
+            'name'        => null,
360
+            'desc'        => '',
361
+            'options'     => array(),
362
+            'std'         => false,
363
+            'value'       => false,
364
+            'placeholder' => '',
365
+            'readonly'    => false,
366
+            'faux'        => false,
367
+            'section'     => 'main',
368
+            'tab'         => 'general',
369
+            'type'        => 'text',
370
+        );
371
+    }
372
+
373
+    /**
374
+     * Sanitizes a setting's field.
375
+     *
376
+     * @param  array $setting The setting to sanitize.
377
+     * @return array
378
+     */
379
+    public function sanitize_setting( $setting ) {
380 380
 		
381
-		$setting          = wp_parse_args( $setting, $this->setting_defaults() );
382
-		$setting['value'] = wpinv_get_option( $setting['id'], $setting['std'] );
383
-		return $this->filter_setting( $setting );
384
-
385
-	}
386
-
387
-	/**
388
-	 * Get setting data.
389
-	 *
390
-	 * @since  2.0.0
391
-	 * @param string $setting_id Setting ID.
392
-	 * @return array|WP_Error
393
-	 */
394
-	public function get_setting( $setting_id ) {
395
-
396
-		if ( empty( $setting_id ) ) {
397
-			return new WP_Error( 'rest_setting_setting_invalid', __( 'Invalid setting.', 'invoicing' ), array( 'status' => 404 ) );
398
-		}
399
-
400
-		$settings  = $this->get_settings();
401
-
402
-		foreach ( $settings as $tabs ) {
403
-
404
-			foreach ( $tabs as $sections ) {
405
-
406
-				if ( isset( $sections[ $setting_id ] ) ) {
407
-					if ( ! $this->is_setting_type_valid( $sections[ $setting_id ]['type'] ) ) {
408
-						return new WP_Error( 'rest_setting_setting_type_invalid', __( 'Invalid setting type.', 'invoicing' ), array( 'status' => 404 ) );
409
-					}
410
-
411
-					return $sections[ $setting_id ];
412
-				}
413
-
414
-			}
415
-
416
-		}
417
-
418
-		return new WP_Error( 'rest_setting_setting_invalid', __( 'Invalid setting.', 'invoicing' ), array( 'status' => 404 ) );
419
-	}
420
-
421
-	/**
422
-	 * Get all tabs.
423
-	 *
424
-	 * @param  WP_REST_Request $request Request data.
425
-	 * @return array
426
-	 */
427
-	public function get_tabs( $request ) {
428
-		$tabs     = wpinv_get_settings_tabs();
429
-		$prepared = array();
430
-
431
-		foreach ( $tabs as $id => $tab ) {
432
-
433
-			$_request        = $request;
434
-			$_request['tab'] = sanitize_title( $id );
435
-			$data            = array(
436
-				'id'       => sanitize_title( $id ),
437
-				'label'    => sanitize_text_field( $tab ),
438
-				'sections' => $this->get_sections( $_request ),
439
-			);
440
-
441
-			$data     = $this->add_additional_fields_to_object( $data, $request );
442
-			$response = rest_ensure_response( $data );
443
-
444
-			if ( ! is_wp_error( $response ) ) {
445
-				$links = array(
446
-					'sections'   => array(
447
-						'href'   => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $id ) ),
448
-					),
449
-					'collection' => array(
450
-						'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
451
-					),
452
-				);
453
-				$response->add_links( $links );
454
-				$response = $this->prepare_response_for_collection( $response );
455
-			}
456
-
457
-			$prepared[] = $response;
458
-
459
-		}
460
-
461
-		return rest_ensure_response( $prepared );
462
-	}
463
-
464
-	/**
465
-	 * Get all sections.
466
-	 *
467
-	 * @param  WP_REST_Request $request Request data.
468
-	 * @return array
469
-	 */
470
-	public function get_sections( $request ) {
471
-
472
-		$tab      = sanitize_title( $request['tab'] );
473
-		$sections = wpinv_get_settings_tab_sections( $tab );
474
-		$prepared = array();
475
-
476
-		foreach ( $sections as $id => $section ) {
477
-
478
-			$data            = array(
479
-				'id'       => sanitize_title( $id ),
480
-				'label'    => sanitize_text_field( $section ),
481
-			);
482
-
483
-			$data     = $this->add_additional_fields_to_object( $data, $request );
484
-			$response = rest_ensure_response( $data );
485
-
486
-			if ( ! is_wp_error( $response ) ) {
487
-				$links = array(
488
-					'settings'   => array(
489
-						'href'   => rest_url( sprintf( '/%s/%s/%s/%s', $this->namespace, $this->rest_base, $tab, $id ) ),
490
-					),
491
-					'collection' => array(
492
-						'href'   => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $tab ) ),
493
-					),
494
-					'tabs'       => array(
495
-						'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
496
-					),
497
-				);
498
-				$response->add_links( $links );
499
-				$response = $this->prepare_response_for_collection( $response );
500
-			}
501
-
502
-			$prepared[] = $response;
503
-
504
-		}
505
-
506
-		return rest_ensure_response( $prepared );
507
-	}
508
-
509
-	/**
510
-	 * Get all settings.
511
-	 *
512
-	 * @return array
513
-	 */
514
-	public function get_settings() {
515
-
516
-		if ( empty( $this->settings ) ) {
517
-			$this->settings = wpinv_get_registered_settings();
518
-		}
519
-
520
-		return $this->settings;
521
-
522
-	}
523
-
524
-	/**
525
-	 * Boolean for if a setting type is a valid supported setting type.
526
-	 *
527
-	 * @since  2.0.0
528
-	 * @param  string $type Type.
529
-	 * @return bool
530
-	 */
531
-	public function is_setting_type_valid( $type ) {
532
-
533
-		return in_array(
534
-			$type, array(
535
-				'text',         // Validates with validate_setting_text_field.
536
-				'email',        // Validates with validate_setting_text_field.
537
-				'number',       // Validates with validate_setting_text_field.
538
-				'color',        // Validates with validate_setting_text_field.
539
-				'password',     // Validates with validate_setting_text_field.
540
-				'textarea',     // Validates with validate_setting_textarea_field.
541
-				'select',       // Validates with validate_setting_select_field.
542
-				'multiselect',  // Validates with validate_setting_multiselect_field.
543
-				'radio',        // Validates with validate_setting_radio_field (-> validate_setting_select_field).
544
-				'checkbox',     // Validates with validate_setting_checkbox_field.
545
-				'header',       // Validates with validate_setting_text_field.
546
-			)
547
-		);
548
-
549
-	}
550
-
551
-	/**
552
-	 * Get the settings schema, conforming to JSON Schema.
553
-	 *
554
-	 * @return array
555
-	 */
556
-	public function get_item_schema() {
557
-
558
-		// Maybe retrieve the schema from cache.
559
-		if ( ! empty( $this->schema ) ) {
560
-			return $this->add_additional_fields_schema( $this->schema );
561
-		}
562
-
563
-		$schema = array(
564
-			'$schema'    => 'http://json-schema.org/draft-04/schema#',
565
-			'title'      => 'setting',
566
-			'type'       => 'object',
567
-			'properties' => array(
568
-				'id'          => array(
569
-					'description' => __( 'A unique identifier for the setting.', 'invoicing' ),
570
-					'type'        => 'string',
571
-					'arg_options' => array(
572
-						'sanitize_callback' => 'sanitize_title',
573
-					),
574
-					'context'     => array( 'view', 'edit' ),
575
-					'readonly'    => true,
576
-				),
577
-				'tab'         => array(
578
-					'description' => __( 'An identifier for the tab this setting belongs to.', 'invoicing' ),
579
-					'type'        => 'string',
580
-					'arg_options' => array(
581
-						'sanitize_callback' => 'sanitize_title',
582
-					),
583
-					'context'     => array( 'view', 'edit' ),
584
-					'readonly'    => true,
585
-				),
586
-				'section'     => array(
587
-					'description' => __( 'An identifier for the section this setting belongs to.', 'invoicing' ),
588
-					'type'        => 'string',
589
-					'arg_options' => array(
590
-						'sanitize_callback' => 'sanitize_title',
591
-					),
592
-					'context'     => array( 'view', 'edit' ),
593
-					'readonly'    => true,
594
-				),
595
-				'name'       => array(
596
-					'description' => __( 'A human readable label for the setting used in interfaces.', 'invoicing' ),
597
-					'type'        => 'string',
598
-					'arg_options' => array(
599
-						'sanitize_callback' => 'sanitize_text_field',
600
-					),
601
-					'context'     => array( 'view', 'edit' ),
602
-					'readonly'    => true,
603
-				),
604
-				'desc'        => array(
605
-					'description' => __( 'A human readable description for the setting used in interfaces.', 'invoicing' ),
606
-					'type'        => 'string',
607
-					'context'     => array( 'view', 'edit' ),
608
-					'readonly'    => true,
609
-				),
610
-				'value'       => array(
611
-					'description' => __( 'The current value of this setting.', 'invoicing' ),
612
-					'type'        => 'mixed',
613
-					'context'     => array( 'view', 'edit' ),
614
-				),
615
-				'default'     => array(
616
-					'description' => __( 'Default value for the setting.', 'invoicing' ),
617
-					'type'        => 'mixed',
618
-					'context'     => array( 'view', 'edit' ),
619
-					'readonly'    => true,
620
-				),
621
-				'placeholder' => array(
622
-					'description' => __( 'Placeholder text to be displayed in text inputs.', 'invoicing' ),
623
-					'type'        => 'string',
624
-					'arg_options' => array(
625
-						'sanitize_callback' => 'sanitize_text_field',
626
-					),
627
-					'context'     => array( 'view', 'edit' ),
628
-					'readonly'    => true,
629
-				),
630
-				'type'        => array(
631
-					'description' => __( 'Type of setting.', 'invoicing' ),
632
-					'type'        => 'string',
633
-					'arg_options' => array(
634
-						'sanitize_callback' => 'sanitize_text_field',
635
-					),
636
-					'context'     => array( 'view', 'edit' ),
637
-					'enum'        => array( 'text', 'email', 'number', 'color', 'password', 'textarea', 'select', 'multiselect', 'radio', 'image_width', 'checkbox', 'raw_html' ),
638
-					'readonly'    => true,
639
-				),
640
-				'options'     => array(
641
-					'description' => __( 'Array of options (key value pairs) for inputs such as select, multiselect, and radio buttons.', 'invoicing' ),
642
-					'type'        => 'object',
643
-					'context'     => array( 'view', 'edit' ),
644
-					'readonly'    => true,
645
-				),
646
-				'readonly'        => array(
647
-					'description' => __( 'Whether or not this setting is readonly', 'invoicing' ),
648
-					'type'        => 'string',
649
-					'context'     => array( 'view' ),
650
-					'readonly'    => true,
651
-				),
652
-				'faux'            => array(
653
-					'description' => __( 'Whether or not this setting is readonly/faux', 'invoicing' ),
654
-					'type'        => 'string',
655
-					'context'     => array( 'view' ),
656
-					'readonly'    => true,
657
-				),
658
-			),
659
-		);
660
-
661
-		// Filters the settings schema for the REST API.
381
+        $setting          = wp_parse_args( $setting, $this->setting_defaults() );
382
+        $setting['value'] = wpinv_get_option( $setting['id'], $setting['std'] );
383
+        return $this->filter_setting( $setting );
384
+
385
+    }
386
+
387
+    /**
388
+     * Get setting data.
389
+     *
390
+     * @since  2.0.0
391
+     * @param string $setting_id Setting ID.
392
+     * @return array|WP_Error
393
+     */
394
+    public function get_setting( $setting_id ) {
395
+
396
+        if ( empty( $setting_id ) ) {
397
+            return new WP_Error( 'rest_setting_setting_invalid', __( 'Invalid setting.', 'invoicing' ), array( 'status' => 404 ) );
398
+        }
399
+
400
+        $settings  = $this->get_settings();
401
+
402
+        foreach ( $settings as $tabs ) {
403
+
404
+            foreach ( $tabs as $sections ) {
405
+
406
+                if ( isset( $sections[ $setting_id ] ) ) {
407
+                    if ( ! $this->is_setting_type_valid( $sections[ $setting_id ]['type'] ) ) {
408
+                        return new WP_Error( 'rest_setting_setting_type_invalid', __( 'Invalid setting type.', 'invoicing' ), array( 'status' => 404 ) );
409
+                    }
410
+
411
+                    return $sections[ $setting_id ];
412
+                }
413
+
414
+            }
415
+
416
+        }
417
+
418
+        return new WP_Error( 'rest_setting_setting_invalid', __( 'Invalid setting.', 'invoicing' ), array( 'status' => 404 ) );
419
+    }
420
+
421
+    /**
422
+     * Get all tabs.
423
+     *
424
+     * @param  WP_REST_Request $request Request data.
425
+     * @return array
426
+     */
427
+    public function get_tabs( $request ) {
428
+        $tabs     = wpinv_get_settings_tabs();
429
+        $prepared = array();
430
+
431
+        foreach ( $tabs as $id => $tab ) {
432
+
433
+            $_request        = $request;
434
+            $_request['tab'] = sanitize_title( $id );
435
+            $data            = array(
436
+                'id'       => sanitize_title( $id ),
437
+                'label'    => sanitize_text_field( $tab ),
438
+                'sections' => $this->get_sections( $_request ),
439
+            );
440
+
441
+            $data     = $this->add_additional_fields_to_object( $data, $request );
442
+            $response = rest_ensure_response( $data );
443
+
444
+            if ( ! is_wp_error( $response ) ) {
445
+                $links = array(
446
+                    'sections'   => array(
447
+                        'href'   => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $id ) ),
448
+                    ),
449
+                    'collection' => array(
450
+                        'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
451
+                    ),
452
+                );
453
+                $response->add_links( $links );
454
+                $response = $this->prepare_response_for_collection( $response );
455
+            }
456
+
457
+            $prepared[] = $response;
458
+
459
+        }
460
+
461
+        return rest_ensure_response( $prepared );
462
+    }
463
+
464
+    /**
465
+     * Get all sections.
466
+     *
467
+     * @param  WP_REST_Request $request Request data.
468
+     * @return array
469
+     */
470
+    public function get_sections( $request ) {
471
+
472
+        $tab      = sanitize_title( $request['tab'] );
473
+        $sections = wpinv_get_settings_tab_sections( $tab );
474
+        $prepared = array();
475
+
476
+        foreach ( $sections as $id => $section ) {
477
+
478
+            $data            = array(
479
+                'id'       => sanitize_title( $id ),
480
+                'label'    => sanitize_text_field( $section ),
481
+            );
482
+
483
+            $data     = $this->add_additional_fields_to_object( $data, $request );
484
+            $response = rest_ensure_response( $data );
485
+
486
+            if ( ! is_wp_error( $response ) ) {
487
+                $links = array(
488
+                    'settings'   => array(
489
+                        'href'   => rest_url( sprintf( '/%s/%s/%s/%s', $this->namespace, $this->rest_base, $tab, $id ) ),
490
+                    ),
491
+                    'collection' => array(
492
+                        'href'   => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $tab ) ),
493
+                    ),
494
+                    'tabs'       => array(
495
+                        'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
496
+                    ),
497
+                );
498
+                $response->add_links( $links );
499
+                $response = $this->prepare_response_for_collection( $response );
500
+            }
501
+
502
+            $prepared[] = $response;
503
+
504
+        }
505
+
506
+        return rest_ensure_response( $prepared );
507
+    }
508
+
509
+    /**
510
+     * Get all settings.
511
+     *
512
+     * @return array
513
+     */
514
+    public function get_settings() {
515
+
516
+        if ( empty( $this->settings ) ) {
517
+            $this->settings = wpinv_get_registered_settings();
518
+        }
519
+
520
+        return $this->settings;
521
+
522
+    }
523
+
524
+    /**
525
+     * Boolean for if a setting type is a valid supported setting type.
526
+     *
527
+     * @since  2.0.0
528
+     * @param  string $type Type.
529
+     * @return bool
530
+     */
531
+    public function is_setting_type_valid( $type ) {
532
+
533
+        return in_array(
534
+            $type, array(
535
+                'text',         // Validates with validate_setting_text_field.
536
+                'email',        // Validates with validate_setting_text_field.
537
+                'number',       // Validates with validate_setting_text_field.
538
+                'color',        // Validates with validate_setting_text_field.
539
+                'password',     // Validates with validate_setting_text_field.
540
+                'textarea',     // Validates with validate_setting_textarea_field.
541
+                'select',       // Validates with validate_setting_select_field.
542
+                'multiselect',  // Validates with validate_setting_multiselect_field.
543
+                'radio',        // Validates with validate_setting_radio_field (-> validate_setting_select_field).
544
+                'checkbox',     // Validates with validate_setting_checkbox_field.
545
+                'header',       // Validates with validate_setting_text_field.
546
+            )
547
+        );
548
+
549
+    }
550
+
551
+    /**
552
+     * Get the settings schema, conforming to JSON Schema.
553
+     *
554
+     * @return array
555
+     */
556
+    public function get_item_schema() {
557
+
558
+        // Maybe retrieve the schema from cache.
559
+        if ( ! empty( $this->schema ) ) {
560
+            return $this->add_additional_fields_schema( $this->schema );
561
+        }
562
+
563
+        $schema = array(
564
+            '$schema'    => 'http://json-schema.org/draft-04/schema#',
565
+            'title'      => 'setting',
566
+            'type'       => 'object',
567
+            'properties' => array(
568
+                'id'          => array(
569
+                    'description' => __( 'A unique identifier for the setting.', 'invoicing' ),
570
+                    'type'        => 'string',
571
+                    'arg_options' => array(
572
+                        'sanitize_callback' => 'sanitize_title',
573
+                    ),
574
+                    'context'     => array( 'view', 'edit' ),
575
+                    'readonly'    => true,
576
+                ),
577
+                'tab'         => array(
578
+                    'description' => __( 'An identifier for the tab this setting belongs to.', 'invoicing' ),
579
+                    'type'        => 'string',
580
+                    'arg_options' => array(
581
+                        'sanitize_callback' => 'sanitize_title',
582
+                    ),
583
+                    'context'     => array( 'view', 'edit' ),
584
+                    'readonly'    => true,
585
+                ),
586
+                'section'     => array(
587
+                    'description' => __( 'An identifier for the section this setting belongs to.', 'invoicing' ),
588
+                    'type'        => 'string',
589
+                    'arg_options' => array(
590
+                        'sanitize_callback' => 'sanitize_title',
591
+                    ),
592
+                    'context'     => array( 'view', 'edit' ),
593
+                    'readonly'    => true,
594
+                ),
595
+                'name'       => array(
596
+                    'description' => __( 'A human readable label for the setting used in interfaces.', 'invoicing' ),
597
+                    'type'        => 'string',
598
+                    'arg_options' => array(
599
+                        'sanitize_callback' => 'sanitize_text_field',
600
+                    ),
601
+                    'context'     => array( 'view', 'edit' ),
602
+                    'readonly'    => true,
603
+                ),
604
+                'desc'        => array(
605
+                    'description' => __( 'A human readable description for the setting used in interfaces.', 'invoicing' ),
606
+                    'type'        => 'string',
607
+                    'context'     => array( 'view', 'edit' ),
608
+                    'readonly'    => true,
609
+                ),
610
+                'value'       => array(
611
+                    'description' => __( 'The current value of this setting.', 'invoicing' ),
612
+                    'type'        => 'mixed',
613
+                    'context'     => array( 'view', 'edit' ),
614
+                ),
615
+                'default'     => array(
616
+                    'description' => __( 'Default value for the setting.', 'invoicing' ),
617
+                    'type'        => 'mixed',
618
+                    'context'     => array( 'view', 'edit' ),
619
+                    'readonly'    => true,
620
+                ),
621
+                'placeholder' => array(
622
+                    'description' => __( 'Placeholder text to be displayed in text inputs.', 'invoicing' ),
623
+                    'type'        => 'string',
624
+                    'arg_options' => array(
625
+                        'sanitize_callback' => 'sanitize_text_field',
626
+                    ),
627
+                    'context'     => array( 'view', 'edit' ),
628
+                    'readonly'    => true,
629
+                ),
630
+                'type'        => array(
631
+                    'description' => __( 'Type of setting.', 'invoicing' ),
632
+                    'type'        => 'string',
633
+                    'arg_options' => array(
634
+                        'sanitize_callback' => 'sanitize_text_field',
635
+                    ),
636
+                    'context'     => array( 'view', 'edit' ),
637
+                    'enum'        => array( 'text', 'email', 'number', 'color', 'password', 'textarea', 'select', 'multiselect', 'radio', 'image_width', 'checkbox', 'raw_html' ),
638
+                    'readonly'    => true,
639
+                ),
640
+                'options'     => array(
641
+                    'description' => __( 'Array of options (key value pairs) for inputs such as select, multiselect, and radio buttons.', 'invoicing' ),
642
+                    'type'        => 'object',
643
+                    'context'     => array( 'view', 'edit' ),
644
+                    'readonly'    => true,
645
+                ),
646
+                'readonly'        => array(
647
+                    'description' => __( 'Whether or not this setting is readonly', 'invoicing' ),
648
+                    'type'        => 'string',
649
+                    'context'     => array( 'view' ),
650
+                    'readonly'    => true,
651
+                ),
652
+                'faux'            => array(
653
+                    'description' => __( 'Whether or not this setting is readonly/faux', 'invoicing' ),
654
+                    'type'        => 'string',
655
+                    'context'     => array( 'view' ),
656
+                    'readonly'    => true,
657
+                ),
658
+            ),
659
+        );
660
+
661
+        // Filters the settings schema for the REST API.
662 662
         $schema = apply_filters( 'getpaid_rest_settings_schema', $schema );
663 663
 
664
-		// Cache the settings schema.
665
-		$this->schema = $schema;
666
-
667
-		return $this->add_additional_fields_schema( $this->schema );
668
-
669
-	}
670
-
671
-	/**
672
-	 * Validate a text value for a text based setting.
673
-	 *
674
-	 * @since 2.0.0
675
-	 * @param string $value Value.
676
-	 * @param array  $setting Setting.
677
-	 * @return string
678
-	 */
679
-	public function validate_setting_text_field( $value ) {
680
-		$value = is_null( $value ) ? '' : $value;
681
-		return wp_kses_post( trim( stripslashes( $value ) ) );
682
-	}
683
-
684
-	/**
685
-	 * Validate select based settings.
686
-	 *
687
-	 * @since 2.0.0
688
-	 * @param string $value Value.
689
-	 * @param array  $setting Setting.
690
-	 * @return string|WP_Error
691
-	 */
692
-	public function validate_setting_select_field( $value, $setting ) {
693
-		if ( array_key_exists( $value, $setting['options'] ) ) {
694
-			return $value;
695
-		} else {
696
-			return new WP_Error( 'rest_setting_value_invalid', __( 'An invalid setting value was passed.', 'invoicing' ), array( 'status' => 400 ) );
697
-		}
698
-	}
699
-
700
-	/**
701
-	 * Validate multiselect based settings.
702
-	 *
703
-	 * @since 2.0.0
704
-	 * @param array $values Values.
705
-	 * @param array $setting Setting.
706
-	 * @return array|WP_Error
707
-	 */
708
-	public function validate_setting_multiselect_field( $values, $setting ) {
709
-		if ( empty( $values ) ) {
710
-			return array();
711
-		}
712
-
713
-		if ( ! is_array( $values ) ) {
714
-			return new WP_Error( 'rest_setting_value_invalid', __( 'An invalid setting value was passed.', 'invoicing' ), array( 'status' => 400 ) );
715
-		}
716
-
717
-		$final_values = array();
718
-		foreach ( $values as $value ) {
719
-			if ( array_key_exists( $value, $setting['options'] ) ) {
720
-				$final_values[] = $value;
721
-			}
722
-		}
723
-
724
-		return $final_values;
725
-	}
726
-
727
-	/**
728
-	 * Validate radio based settings.
729
-	 *
730
-	 * @since 2.0.0
731
-	 * @param string $value Value.
732
-	 * @param array  $setting Setting.
733
-	 * @return string|WP_Error
734
-	 */
735
-	public function validate_setting_radio_field( $value, $setting ) {
736
-		return $this->validate_setting_select_field( $value, $setting );
737
-	}
738
-
739
-	/**
740
-	 * Validate checkbox based settings.
741
-	 *
742
-	 * @since 2.0.0
743
-	 * @param string $value Value.
744
-	 * @return int
745
-	 */
746
-	public function validate_setting_checkbox_field( $value ) {
747
-		return (int) ! empty( $value );
748
-	}
749
-
750
-	/**
751
-	 * Validate textarea based settings.
752
-	 *
753
-	 * @since 2.0.0
754
-	 * @param string $value Value.
755
-	 * @return string
756
-	 */
757
-	public function validate_setting_textarea_field( $value ) {
758
-		$value = is_null( $value ) ? '' : $value;
759
-		return wp_kses(
760
-			trim( stripslashes( $value ) ),
761
-			array_merge(
762
-				array(
763
-					'iframe' => array(
764
-						'src'   => true,
765
-						'style' => true,
766
-						'id'    => true,
767
-						'class' => true,
768
-					),
769
-				),
770
-				wp_kses_allowed_html( 'post' )
771
-			)
772
-		);
773
-	}
664
+        // Cache the settings schema.
665
+        $this->schema = $schema;
666
+
667
+        return $this->add_additional_fields_schema( $this->schema );
668
+
669
+    }
670
+
671
+    /**
672
+     * Validate a text value for a text based setting.
673
+     *
674
+     * @since 2.0.0
675
+     * @param string $value Value.
676
+     * @param array  $setting Setting.
677
+     * @return string
678
+     */
679
+    public function validate_setting_text_field( $value ) {
680
+        $value = is_null( $value ) ? '' : $value;
681
+        return wp_kses_post( trim( stripslashes( $value ) ) );
682
+    }
683
+
684
+    /**
685
+     * Validate select based settings.
686
+     *
687
+     * @since 2.0.0
688
+     * @param string $value Value.
689
+     * @param array  $setting Setting.
690
+     * @return string|WP_Error
691
+     */
692
+    public function validate_setting_select_field( $value, $setting ) {
693
+        if ( array_key_exists( $value, $setting['options'] ) ) {
694
+            return $value;
695
+        } else {
696
+            return new WP_Error( 'rest_setting_value_invalid', __( 'An invalid setting value was passed.', 'invoicing' ), array( 'status' => 400 ) );
697
+        }
698
+    }
699
+
700
+    /**
701
+     * Validate multiselect based settings.
702
+     *
703
+     * @since 2.0.0
704
+     * @param array $values Values.
705
+     * @param array $setting Setting.
706
+     * @return array|WP_Error
707
+     */
708
+    public function validate_setting_multiselect_field( $values, $setting ) {
709
+        if ( empty( $values ) ) {
710
+            return array();
711
+        }
712
+
713
+        if ( ! is_array( $values ) ) {
714
+            return new WP_Error( 'rest_setting_value_invalid', __( 'An invalid setting value was passed.', 'invoicing' ), array( 'status' => 400 ) );
715
+        }
716
+
717
+        $final_values = array();
718
+        foreach ( $values as $value ) {
719
+            if ( array_key_exists( $value, $setting['options'] ) ) {
720
+                $final_values[] = $value;
721
+            }
722
+        }
723
+
724
+        return $final_values;
725
+    }
726
+
727
+    /**
728
+     * Validate radio based settings.
729
+     *
730
+     * @since 2.0.0
731
+     * @param string $value Value.
732
+     * @param array  $setting Setting.
733
+     * @return string|WP_Error
734
+     */
735
+    public function validate_setting_radio_field( $value, $setting ) {
736
+        return $this->validate_setting_select_field( $value, $setting );
737
+    }
738
+
739
+    /**
740
+     * Validate checkbox based settings.
741
+     *
742
+     * @since 2.0.0
743
+     * @param string $value Value.
744
+     * @return int
745
+     */
746
+    public function validate_setting_checkbox_field( $value ) {
747
+        return (int) ! empty( $value );
748
+    }
749
+
750
+    /**
751
+     * Validate textarea based settings.
752
+     *
753
+     * @since 2.0.0
754
+     * @param string $value Value.
755
+     * @return string
756
+     */
757
+    public function validate_setting_textarea_field( $value ) {
758
+        $value = is_null( $value ) ? '' : $value;
759
+        return wp_kses(
760
+            trim( stripslashes( $value ) ),
761
+            array_merge(
762
+                array(
763
+                    'iframe' => array(
764
+                        'src'   => true,
765
+                        'style' => true,
766
+                        'id'    => true,
767
+                        'class' => true,
768
+                    ),
769
+                ),
770
+                wp_kses_allowed_html( 'post' )
771
+            )
772
+        );
773
+    }
774 774
 
775 775
 }
Please login to merge, or discard this patch.
Spacing   +184 added lines, -184 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
9 9
  * @since   2.0.0
10 10
  */
11 11
 
12
-defined( 'ABSPATH' ) || exit;
12
+defined('ABSPATH') || exit;
13 13
 
14 14
 /**
15 15
  * GetPaid REST Setting controller class.
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
 	 *
40 40
 	 * @see register_rest_route()
41 41
 	 */
42
-	public function register_namespace_routes( $namespace ) {
42
+	public function register_namespace_routes($namespace) {
43 43
 
44 44
 		// List all registered tabs.
45 45
 		register_rest_route(
@@ -48,8 +48,8 @@  discard block
 block discarded – undo
48 48
 			array(
49 49
 				array(
50 50
 					'methods'             => WP_REST_Server::READABLE,
51
-					'callback'            => array( $this, 'get_tabs' ),
52
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
51
+					'callback'            => array($this, 'get_tabs'),
52
+					'permission_callback' => array($this, 'get_items_permissions_check'),
53 53
 				),
54 54
 				'schema' => '__return_empty_array',
55 55
 			)
@@ -62,23 +62,23 @@  discard block
 block discarded – undo
62 62
 			array(
63 63
 				'args'   => array(
64 64
 					'id'    => array(
65
-						'description' => __( 'Unique identifier for the setting.', 'invoicing' ),
65
+						'description' => __('Unique identifier for the setting.', 'invoicing'),
66 66
 						'type'        => 'string',
67 67
 						'required'    => true,
68 68
 					),
69 69
 				),
70 70
 				array(
71 71
 					'methods'             => WP_REST_Server::READABLE,
72
-					'callback'            => array( $this, 'get_item' ),
73
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
72
+					'callback'            => array($this, 'get_item'),
73
+					'permission_callback' => array($this, 'get_items_permissions_check'),
74 74
 				),
75 75
 				array(
76 76
 					'methods'             => WP_REST_Server::EDITABLE,
77
-					'callback'            => array( $this, 'update_item' ),
78
-					'permission_callback' => array( $this, 'update_items_permissions_check' ),
79
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
77
+					'callback'            => array($this, 'update_item'),
78
+					'permission_callback' => array($this, 'update_items_permissions_check'),
79
+					'args'                => $this->get_endpoint_args_for_item_schema(WP_REST_Server::EDITABLE),
80 80
 				),
81
-				'schema' => array( $this, 'get_public_item_schema' ),
81
+				'schema' => array($this, 'get_public_item_schema'),
82 82
 			)
83 83
 		);
84 84
 
@@ -89,16 +89,16 @@  discard block
 block discarded – undo
89 89
 			array(
90 90
 				'args'   => array(
91 91
 					'tab'    => array(
92
-						'description' => __( 'Unique identifier for the tab whose sections should be retrieved.', 'invoicing' ),
92
+						'description' => __('Unique identifier for the tab whose sections should be retrieved.', 'invoicing'),
93 93
 						'type'        => 'string',
94 94
 						'required'    => true,
95
-						'enum'        => array_keys( wpinv_get_settings_tabs() ),
95
+						'enum'        => array_keys(wpinv_get_settings_tabs()),
96 96
 					),
97 97
 				),
98 98
 				array(
99 99
 					'methods'             => WP_REST_Server::READABLE,
100
-					'callback'            => array( $this, 'get_sections' ),
101
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
100
+					'callback'            => array($this, 'get_sections'),
101
+					'permission_callback' => array($this, 'get_items_permissions_check'),
102 102
 				),
103 103
 				'schema' => '__return_empty_array',
104 104
 			)
@@ -111,23 +111,23 @@  discard block
 block discarded – undo
111 111
 			array(
112 112
 				'args'   => array(
113 113
 					'tab'    => array(
114
-						'description' => __( 'Unique identifier for the tab whose settings should be retrieved.', 'invoicing' ),
114
+						'description' => __('Unique identifier for the tab whose settings should be retrieved.', 'invoicing'),
115 115
 						'type'        => 'string',
116 116
 						'required'    => true,
117
-						'enum'        => array_keys( wpinv_get_settings_tabs() ),
117
+						'enum'        => array_keys(wpinv_get_settings_tabs()),
118 118
 					),
119 119
 					'section'    => array(
120
-						'description' => __( 'The section in the tab whose settings should be retrieved.', 'invoicing' ),
120
+						'description' => __('The section in the tab whose settings should be retrieved.', 'invoicing'),
121 121
 						'type'        => 'string',
122 122
 						'required'    => true,
123 123
 					),
124 124
 				),
125 125
 				array(
126 126
 					'methods'             => WP_REST_Server::READABLE,
127
-					'callback'            => array( $this, 'get_items' ),
128
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
127
+					'callback'            => array($this, 'get_items'),
128
+					'permission_callback' => array($this, 'get_items_permissions_check'),
129 129
 				),
130
-				'schema' => array( $this, 'get_public_item_schema' ),
130
+				'schema' => array($this, 'get_public_item_schema'),
131 131
 			)
132 132
 		);
133 133
 
@@ -137,17 +137,17 @@  discard block
 block discarded – undo
137 137
 			array(
138 138
 				'args'   => array(
139 139
 					'id'              => array(
140
-						'description' => __( 'Setting ID.', 'invoicing' ),
140
+						'description' => __('Setting ID.', 'invoicing'),
141 141
 						'type'        => 'string',
142 142
 					),
143 143
 				),
144 144
 				array(
145 145
 					'methods'             => WP_REST_Server::EDITABLE,
146
-					'callback'            => array( $this, 'batch_items' ),
147
-					'permission_callback' => array( $this, 'batch_items_permissions_check' ),
148
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
146
+					'callback'            => array($this, 'batch_items'),
147
+					'permission_callback' => array($this, 'batch_items_permissions_check'),
148
+					'args'                => $this->get_endpoint_args_for_item_schema(WP_REST_Server::EDITABLE),
149 149
 				),
150
-				'schema' => array( $this, 'get_public_batch_schema' ),
150
+				'schema' => array($this, 'get_public_batch_schema'),
151 151
 			)
152 152
 		);
153 153
 
@@ -160,34 +160,34 @@  discard block
 block discarded – undo
160 160
 	 * @param  WP_REST_Request $request Request data.
161 161
 	 * @return WP_Error|WP_REST_Response
162 162
 	 */
163
-	public function get_items( $request ) {
163
+	public function get_items($request) {
164 164
 
165 165
 		$settings = $this->get_settings();
166 166
 
167
-		if ( ! isset( $settings[ $request['tab'] ] ) ) {
168
-			return new WP_Error( 'rest_invalid_tab', __( 'Invalid tab.', 'invoicing' ), array( 'status' => 400 ) );
167
+		if (!isset($settings[$request['tab']])) {
168
+			return new WP_Error('rest_invalid_tab', __('Invalid tab.', 'invoicing'), array('status' => 400));
169 169
 		}
170 170
 
171
-		if ( ! isset( $settings[ $request['tab'] ][ $request['section'] ] ) ) {
172
-			return new WP_Error( 'rest_invalid_section', __( 'Invalid section.', 'invoicing' ), array( 'status' => 400 ) );
171
+		if (!isset($settings[$request['tab']][$request['section']])) {
172
+			return new WP_Error('rest_invalid_section', __('Invalid section.', 'invoicing'), array('status' => 400));
173 173
 		}
174 174
 
175
-		$settings = $settings[ $request['tab'] ][ $request['section'] ];
175
+		$settings = $settings[$request['tab']][$request['section']];
176 176
 		$prepared = array();
177 177
 
178
-		foreach ( $settings as $setting ) {
178
+		foreach ($settings as $setting) {
179 179
 
180
-			$setting      = $this->sanitize_setting( $setting );
181
-			$setting_data = $this->prepare_item_for_response( $setting, $request );
182
-			$setting_data = $this->prepare_response_for_collection( $setting_data );
180
+			$setting      = $this->sanitize_setting($setting);
181
+			$setting_data = $this->prepare_item_for_response($setting, $request);
182
+			$setting_data = $this->prepare_response_for_collection($setting_data);
183 183
 
184
-			if ( $this->is_setting_type_valid( $setting['type'] ) ) {
185
-				$prepared[]   = $setting_data;
184
+			if ($this->is_setting_type_valid($setting['type'])) {
185
+				$prepared[] = $setting_data;
186 186
 			}
187 187
 
188 188
 		}
189 189
 
190
-		return rest_ensure_response( $prepared );
190
+		return rest_ensure_response($prepared);
191 191
 	}
192 192
 
193 193
 	/**
@@ -197,16 +197,16 @@  discard block
 block discarded – undo
197 197
 	 * @param  WP_REST_Request $request Request data.
198 198
 	 * @return WP_Error|WP_REST_Response
199 199
 	 */
200
-	public function get_item( $request ) {
201
-		$setting  = $this->get_setting( $request['id'] );
200
+	public function get_item($request) {
201
+		$setting = $this->get_setting($request['id']);
202 202
 
203
-		if ( is_wp_error( $setting ) ) {
203
+		if (is_wp_error($setting)) {
204 204
 			return $setting;
205 205
 		}
206 206
 
207
-		$setting  = $this->sanitize_setting( $setting );
208
-		$response = $this->prepare_item_for_response( $setting, $request );
209
-		return rest_ensure_response( $response );
207
+		$setting  = $this->sanitize_setting($setting);
208
+		$response = $this->prepare_item_for_response($setting, $request);
209
+		return rest_ensure_response($response);
210 210
 	}
211 211
 
212 212
 	/**
@@ -216,29 +216,29 @@  discard block
 block discarded – undo
216 216
 	 * @param  WP_REST_Request $request Request data.
217 217
 	 * @return WP_Error|WP_REST_Response
218 218
 	 */
219
-	public function update_item( $request ) {
220
-		$setting = $this->get_setting( $request['id'] );
219
+	public function update_item($request) {
220
+		$setting = $this->get_setting($request['id']);
221 221
 
222
-		if ( is_wp_error( $setting ) ) {
222
+		if (is_wp_error($setting)) {
223 223
 			return $setting;
224 224
 		}
225 225
 
226
-		if ( is_callable( array( $this, 'validate_setting_' . $setting['type'] . '_field' ) ) ) {
227
-			$value = $this->{'validate_setting_' . $setting['type'] . '_field'}( $request['value'], $setting );
226
+		if (is_callable(array($this, 'validate_setting_' . $setting['type'] . '_field'))) {
227
+			$value = $this->{'validate_setting_' . $setting['type'] . '_field'}($request['value'], $setting);
228 228
 		} else {
229
-			$value = $this->validate_setting_text_field( $request['value'], $setting );
229
+			$value = $this->validate_setting_text_field($request['value'], $setting);
230 230
 		}
231 231
 
232
-		if ( is_wp_error( $value ) ) {
232
+		if (is_wp_error($value)) {
233 233
 			return $value;
234 234
 		}
235 235
 
236
-		wpinv_update_option( $request['id'], $value );
236
+		wpinv_update_option($request['id'], $value);
237 237
 		$setting['value'] = $value;
238
-		$setting          = $this->sanitize_setting( $setting );
239
-		$response         = $this->prepare_item_for_response( $setting, $request );
238
+		$setting          = $this->sanitize_setting($setting);
239
+		$response         = $this->prepare_item_for_response($setting, $request);
240 240
 
241
-		return rest_ensure_response( $response );
241
+		return rest_ensure_response($response);
242 242
 	}
243 243
 
244 244
 	/**
@@ -248,9 +248,9 @@  discard block
 block discarded – undo
248 248
 	 * @param WP_REST_Request $request Full data about the request.
249 249
 	 * @return WP_Error|boolean
250 250
 	 */
251
-	public function get_items_permissions_check( $request ) {
252
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
253
-			return new WP_Error( 'rest_cannot_view', __( 'Sorry, you cannot list resources.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
251
+	public function get_items_permissions_check($request) {
252
+		if (!wpinv_current_user_can_manage_invoicing()) {
253
+			return new WP_Error('rest_cannot_view', __('Sorry, you cannot list resources.', 'invoicing'), array('status' => rest_authorization_required_code()));
254 254
 		}
255 255
 
256 256
 		return true;
@@ -263,9 +263,9 @@  discard block
 block discarded – undo
263 263
 	 * @param WP_REST_Request $request Full data about the request.
264 264
 	 * @return WP_Error|boolean
265 265
 	 */
266
-	public function update_items_permissions_check( $request ) {
267
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
268
-			return new WP_Error( 'rest_cannot_edit', __( 'Sorry, you cannot edit this resource.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
266
+	public function update_items_permissions_check($request) {
267
+		if (!wpinv_current_user_can_manage_invoicing()) {
268
+			return new WP_Error('rest_cannot_edit', __('Sorry, you cannot edit this resource.', 'invoicing'), array('status' => rest_authorization_required_code()));
269 269
 		}
270 270
 
271 271
 		return true;
@@ -278,8 +278,8 @@  discard block
 block discarded – undo
278 278
 	 *
279 279
 	 * @return boolean|WP_Error
280 280
 	 */
281
-	public function batch_items_permissions_check( $request ) {
282
-		return wpinv_current_user_can_manage_invoicing() ? true : new WP_Error( 'rest_cannot_batch', __( 'Sorry, you are not allowed to batch manipulate this resource.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
281
+	public function batch_items_permissions_check($request) {
282
+		return wpinv_current_user_can_manage_invoicing() ? true : new WP_Error('rest_cannot_batch', __('Sorry, you are not allowed to batch manipulate this resource.', 'invoicing'), array('status' => rest_authorization_required_code()));
283 283
 	}
284 284
 
285 285
 	/**
@@ -288,14 +288,14 @@  discard block
 block discarded – undo
288 288
 	 * @param string $setting_id Setting ID.
289 289
 	 * @return array Links for the given setting.
290 290
 	 */
291
-	protected function prepare_links( $setting_id ) {
291
+	protected function prepare_links($setting_id) {
292 292
 
293 293
 		$links = array(
294 294
 			'self'       => array(
295
-				'href'   => rest_url( sprintf( '/%s/%s/setting/%s', $this->namespace, $this->rest_base, $setting_id ) ),
295
+				'href'   => rest_url(sprintf('/%s/%s/setting/%s', $this->namespace, $this->rest_base, $setting_id)),
296 296
 			),
297 297
 			'collection' => array(
298
-				'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
298
+				'href'   => rest_url(sprintf('/%s/%s', $this->namespace, $this->rest_base)),
299 299
 			),
300 300
 		);
301 301
 
@@ -310,14 +310,14 @@  discard block
 block discarded – undo
310 310
 	 * @param WP_REST_Request $request Request object.
311 311
 	 * @return WP_REST_Response $response Response data.
312 312
 	 */
313
-	public function prepare_item_for_response( $item, $request ) {
314
-		$context = empty( $request['context'] ) ? 'view' : $request['context'];
315
-		$data    = $this->add_additional_fields_to_object( $item, $request );
316
-		$data    = $this->filter_response_by_context( $data, $context );
313
+	public function prepare_item_for_response($item, $request) {
314
+		$context = empty($request['context']) ? 'view' : $request['context'];
315
+		$data    = $this->add_additional_fields_to_object($item, $request);
316
+		$data    = $this->filter_response_by_context($data, $context);
317 317
 
318
-		$response = rest_ensure_response( $data );
318
+		$response = rest_ensure_response($data);
319 319
 
320
-		$response->add_links( $this->prepare_links( $item['id'] ) );
320
+		$response->add_links($this->prepare_links($item['id']));
321 321
 
322 322
 		return $response;
323 323
 	}
@@ -330,10 +330,10 @@  discard block
 block discarded – undo
330 330
 	 * @param  array $setting Setting.
331 331
 	 * @return array
332 332
 	 */
333
-	public function filter_setting( $setting ) {
333
+	public function filter_setting($setting) {
334 334
 		return array_intersect_key(
335 335
 			$setting,
336
-			array_flip( array_filter( array_keys( $setting ), array( $this, 'allowed_setting_keys' ) ) )
336
+			array_flip(array_filter(array_keys($setting), array($this, 'allowed_setting_keys')))
337 337
 		);
338 338
 	}
339 339
 
@@ -343,8 +343,8 @@  discard block
 block discarded – undo
343 343
 	 * @param  string $key Key to check.
344 344
 	 * @return boolean
345 345
 	 */
346
-	public function allowed_setting_keys( $key ) {
347
-		return in_array( $key, array_keys( $this->setting_defaults() ), true );
346
+	public function allowed_setting_keys($key) {
347
+		return in_array($key, array_keys($this->setting_defaults()), true);
348 348
 	}
349 349
 
350 350
 	/**
@@ -376,11 +376,11 @@  discard block
 block discarded – undo
376 376
 	 * @param  array $setting The setting to sanitize.
377 377
 	 * @return array
378 378
 	 */
379
-	public function sanitize_setting( $setting ) {
379
+	public function sanitize_setting($setting) {
380 380
 		
381
-		$setting          = wp_parse_args( $setting, $this->setting_defaults() );
382
-		$setting['value'] = wpinv_get_option( $setting['id'], $setting['std'] );
383
-		return $this->filter_setting( $setting );
381
+		$setting          = wp_parse_args($setting, $this->setting_defaults());
382
+		$setting['value'] = wpinv_get_option($setting['id'], $setting['std']);
383
+		return $this->filter_setting($setting);
384 384
 
385 385
 	}
386 386
 
@@ -391,31 +391,31 @@  discard block
 block discarded – undo
391 391
 	 * @param string $setting_id Setting ID.
392 392
 	 * @return array|WP_Error
393 393
 	 */
394
-	public function get_setting( $setting_id ) {
394
+	public function get_setting($setting_id) {
395 395
 
396
-		if ( empty( $setting_id ) ) {
397
-			return new WP_Error( 'rest_setting_setting_invalid', __( 'Invalid setting.', 'invoicing' ), array( 'status' => 404 ) );
396
+		if (empty($setting_id)) {
397
+			return new WP_Error('rest_setting_setting_invalid', __('Invalid setting.', 'invoicing'), array('status' => 404));
398 398
 		}
399 399
 
400
-		$settings  = $this->get_settings();
400
+		$settings = $this->get_settings();
401 401
 
402
-		foreach ( $settings as $tabs ) {
402
+		foreach ($settings as $tabs) {
403 403
 
404
-			foreach ( $tabs as $sections ) {
404
+			foreach ($tabs as $sections) {
405 405
 
406
-				if ( isset( $sections[ $setting_id ] ) ) {
407
-					if ( ! $this->is_setting_type_valid( $sections[ $setting_id ]['type'] ) ) {
408
-						return new WP_Error( 'rest_setting_setting_type_invalid', __( 'Invalid setting type.', 'invoicing' ), array( 'status' => 404 ) );
406
+				if (isset($sections[$setting_id])) {
407
+					if (!$this->is_setting_type_valid($sections[$setting_id]['type'])) {
408
+						return new WP_Error('rest_setting_setting_type_invalid', __('Invalid setting type.', 'invoicing'), array('status' => 404));
409 409
 					}
410 410
 
411
-					return $sections[ $setting_id ];
411
+					return $sections[$setting_id];
412 412
 				}
413 413
 
414 414
 			}
415 415
 
416 416
 		}
417 417
 
418
-		return new WP_Error( 'rest_setting_setting_invalid', __( 'Invalid setting.', 'invoicing' ), array( 'status' => 404 ) );
418
+		return new WP_Error('rest_setting_setting_invalid', __('Invalid setting.', 'invoicing'), array('status' => 404));
419 419
 	}
420 420
 
421 421
 	/**
@@ -424,41 +424,41 @@  discard block
 block discarded – undo
424 424
 	 * @param  WP_REST_Request $request Request data.
425 425
 	 * @return array
426 426
 	 */
427
-	public function get_tabs( $request ) {
427
+	public function get_tabs($request) {
428 428
 		$tabs     = wpinv_get_settings_tabs();
429 429
 		$prepared = array();
430 430
 
431
-		foreach ( $tabs as $id => $tab ) {
431
+		foreach ($tabs as $id => $tab) {
432 432
 
433 433
 			$_request        = $request;
434
-			$_request['tab'] = sanitize_title( $id );
434
+			$_request['tab'] = sanitize_title($id);
435 435
 			$data            = array(
436
-				'id'       => sanitize_title( $id ),
437
-				'label'    => sanitize_text_field( $tab ),
438
-				'sections' => $this->get_sections( $_request ),
436
+				'id'       => sanitize_title($id),
437
+				'label'    => sanitize_text_field($tab),
438
+				'sections' => $this->get_sections($_request),
439 439
 			);
440 440
 
441
-			$data     = $this->add_additional_fields_to_object( $data, $request );
442
-			$response = rest_ensure_response( $data );
441
+			$data     = $this->add_additional_fields_to_object($data, $request);
442
+			$response = rest_ensure_response($data);
443 443
 
444
-			if ( ! is_wp_error( $response ) ) {
444
+			if (!is_wp_error($response)) {
445 445
 				$links = array(
446 446
 					'sections'   => array(
447
-						'href'   => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $id ) ),
447
+						'href'   => rest_url(sprintf('/%s/%s/%s', $this->namespace, $this->rest_base, $id)),
448 448
 					),
449 449
 					'collection' => array(
450
-						'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
450
+						'href'   => rest_url(sprintf('/%s/%s', $this->namespace, $this->rest_base)),
451 451
 					),
452 452
 				);
453
-				$response->add_links( $links );
454
-				$response = $this->prepare_response_for_collection( $response );
453
+				$response->add_links($links);
454
+				$response = $this->prepare_response_for_collection($response);
455 455
 			}
456 456
 
457 457
 			$prepared[] = $response;
458 458
 
459 459
 		}
460 460
 
461
-		return rest_ensure_response( $prepared );
461
+		return rest_ensure_response($prepared);
462 462
 	}
463 463
 
464 464
 	/**
@@ -467,43 +467,43 @@  discard block
 block discarded – undo
467 467
 	 * @param  WP_REST_Request $request Request data.
468 468
 	 * @return array
469 469
 	 */
470
-	public function get_sections( $request ) {
470
+	public function get_sections($request) {
471 471
 
472
-		$tab      = sanitize_title( $request['tab'] );
473
-		$sections = wpinv_get_settings_tab_sections( $tab );
472
+		$tab      = sanitize_title($request['tab']);
473
+		$sections = wpinv_get_settings_tab_sections($tab);
474 474
 		$prepared = array();
475 475
 
476
-		foreach ( $sections as $id => $section ) {
476
+		foreach ($sections as $id => $section) {
477 477
 
478
-			$data            = array(
479
-				'id'       => sanitize_title( $id ),
480
-				'label'    => sanitize_text_field( $section ),
478
+			$data = array(
479
+				'id'       => sanitize_title($id),
480
+				'label'    => sanitize_text_field($section),
481 481
 			);
482 482
 
483
-			$data     = $this->add_additional_fields_to_object( $data, $request );
484
-			$response = rest_ensure_response( $data );
483
+			$data     = $this->add_additional_fields_to_object($data, $request);
484
+			$response = rest_ensure_response($data);
485 485
 
486
-			if ( ! is_wp_error( $response ) ) {
486
+			if (!is_wp_error($response)) {
487 487
 				$links = array(
488 488
 					'settings'   => array(
489
-						'href'   => rest_url( sprintf( '/%s/%s/%s/%s', $this->namespace, $this->rest_base, $tab, $id ) ),
489
+						'href'   => rest_url(sprintf('/%s/%s/%s/%s', $this->namespace, $this->rest_base, $tab, $id)),
490 490
 					),
491 491
 					'collection' => array(
492
-						'href'   => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $tab ) ),
492
+						'href'   => rest_url(sprintf('/%s/%s/%s', $this->namespace, $this->rest_base, $tab)),
493 493
 					),
494 494
 					'tabs'       => array(
495
-						'href'   => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
495
+						'href'   => rest_url(sprintf('/%s/%s', $this->namespace, $this->rest_base)),
496 496
 					),
497 497
 				);
498
-				$response->add_links( $links );
499
-				$response = $this->prepare_response_for_collection( $response );
498
+				$response->add_links($links);
499
+				$response = $this->prepare_response_for_collection($response);
500 500
 			}
501 501
 
502 502
 			$prepared[] = $response;
503 503
 
504 504
 		}
505 505
 
506
-		return rest_ensure_response( $prepared );
506
+		return rest_ensure_response($prepared);
507 507
 	}
508 508
 
509 509
 	/**
@@ -513,7 +513,7 @@  discard block
 block discarded – undo
513 513
 	 */
514 514
 	public function get_settings() {
515 515
 
516
-		if ( empty( $this->settings ) ) {
516
+		if (empty($this->settings)) {
517 517
 			$this->settings = wpinv_get_registered_settings();
518 518
 		}
519 519
 
@@ -528,21 +528,21 @@  discard block
 block discarded – undo
528 528
 	 * @param  string $type Type.
529 529
 	 * @return bool
530 530
 	 */
531
-	public function is_setting_type_valid( $type ) {
531
+	public function is_setting_type_valid($type) {
532 532
 
533 533
 		return in_array(
534 534
 			$type, array(
535
-				'text',         // Validates with validate_setting_text_field.
536
-				'email',        // Validates with validate_setting_text_field.
537
-				'number',       // Validates with validate_setting_text_field.
538
-				'color',        // Validates with validate_setting_text_field.
539
-				'password',     // Validates with validate_setting_text_field.
540
-				'textarea',     // Validates with validate_setting_textarea_field.
541
-				'select',       // Validates with validate_setting_select_field.
542
-				'multiselect',  // Validates with validate_setting_multiselect_field.
543
-				'radio',        // Validates with validate_setting_radio_field (-> validate_setting_select_field).
544
-				'checkbox',     // Validates with validate_setting_checkbox_field.
545
-				'header',       // Validates with validate_setting_text_field.
535
+				'text', // Validates with validate_setting_text_field.
536
+				'email', // Validates with validate_setting_text_field.
537
+				'number', // Validates with validate_setting_text_field.
538
+				'color', // Validates with validate_setting_text_field.
539
+				'password', // Validates with validate_setting_text_field.
540
+				'textarea', // Validates with validate_setting_textarea_field.
541
+				'select', // Validates with validate_setting_select_field.
542
+				'multiselect', // Validates with validate_setting_multiselect_field.
543
+				'radio', // Validates with validate_setting_radio_field (-> validate_setting_select_field).
544
+				'checkbox', // Validates with validate_setting_checkbox_field.
545
+				'header', // Validates with validate_setting_text_field.
546 546
 			)
547 547
 		);
548 548
 
@@ -556,8 +556,8 @@  discard block
 block discarded – undo
556 556
 	public function get_item_schema() {
557 557
 
558 558
 		// Maybe retrieve the schema from cache.
559
-		if ( ! empty( $this->schema ) ) {
560
-			return $this->add_additional_fields_schema( $this->schema );
559
+		if (!empty($this->schema)) {
560
+			return $this->add_additional_fields_schema($this->schema);
561 561
 		}
562 562
 
563 563
 		$schema = array(
@@ -566,105 +566,105 @@  discard block
 block discarded – undo
566 566
 			'type'       => 'object',
567 567
 			'properties' => array(
568 568
 				'id'          => array(
569
-					'description' => __( 'A unique identifier for the setting.', 'invoicing' ),
569
+					'description' => __('A unique identifier for the setting.', 'invoicing'),
570 570
 					'type'        => 'string',
571 571
 					'arg_options' => array(
572 572
 						'sanitize_callback' => 'sanitize_title',
573 573
 					),
574
-					'context'     => array( 'view', 'edit' ),
574
+					'context'     => array('view', 'edit'),
575 575
 					'readonly'    => true,
576 576
 				),
577 577
 				'tab'         => array(
578
-					'description' => __( 'An identifier for the tab this setting belongs to.', 'invoicing' ),
578
+					'description' => __('An identifier for the tab this setting belongs to.', 'invoicing'),
579 579
 					'type'        => 'string',
580 580
 					'arg_options' => array(
581 581
 						'sanitize_callback' => 'sanitize_title',
582 582
 					),
583
-					'context'     => array( 'view', 'edit' ),
583
+					'context'     => array('view', 'edit'),
584 584
 					'readonly'    => true,
585 585
 				),
586 586
 				'section'     => array(
587
-					'description' => __( 'An identifier for the section this setting belongs to.', 'invoicing' ),
587
+					'description' => __('An identifier for the section this setting belongs to.', 'invoicing'),
588 588
 					'type'        => 'string',
589 589
 					'arg_options' => array(
590 590
 						'sanitize_callback' => 'sanitize_title',
591 591
 					),
592
-					'context'     => array( 'view', 'edit' ),
592
+					'context'     => array('view', 'edit'),
593 593
 					'readonly'    => true,
594 594
 				),
595 595
 				'name'       => array(
596
-					'description' => __( 'A human readable label for the setting used in interfaces.', 'invoicing' ),
596
+					'description' => __('A human readable label for the setting used in interfaces.', 'invoicing'),
597 597
 					'type'        => 'string',
598 598
 					'arg_options' => array(
599 599
 						'sanitize_callback' => 'sanitize_text_field',
600 600
 					),
601
-					'context'     => array( 'view', 'edit' ),
601
+					'context'     => array('view', 'edit'),
602 602
 					'readonly'    => true,
603 603
 				),
604 604
 				'desc'        => array(
605
-					'description' => __( 'A human readable description for the setting used in interfaces.', 'invoicing' ),
605
+					'description' => __('A human readable description for the setting used in interfaces.', 'invoicing'),
606 606
 					'type'        => 'string',
607
-					'context'     => array( 'view', 'edit' ),
607
+					'context'     => array('view', 'edit'),
608 608
 					'readonly'    => true,
609 609
 				),
610 610
 				'value'       => array(
611
-					'description' => __( 'The current value of this setting.', 'invoicing' ),
611
+					'description' => __('The current value of this setting.', 'invoicing'),
612 612
 					'type'        => 'mixed',
613
-					'context'     => array( 'view', 'edit' ),
613
+					'context'     => array('view', 'edit'),
614 614
 				),
615 615
 				'default'     => array(
616
-					'description' => __( 'Default value for the setting.', 'invoicing' ),
616
+					'description' => __('Default value for the setting.', 'invoicing'),
617 617
 					'type'        => 'mixed',
618
-					'context'     => array( 'view', 'edit' ),
618
+					'context'     => array('view', 'edit'),
619 619
 					'readonly'    => true,
620 620
 				),
621 621
 				'placeholder' => array(
622
-					'description' => __( 'Placeholder text to be displayed in text inputs.', 'invoicing' ),
622
+					'description' => __('Placeholder text to be displayed in text inputs.', 'invoicing'),
623 623
 					'type'        => 'string',
624 624
 					'arg_options' => array(
625 625
 						'sanitize_callback' => 'sanitize_text_field',
626 626
 					),
627
-					'context'     => array( 'view', 'edit' ),
627
+					'context'     => array('view', 'edit'),
628 628
 					'readonly'    => true,
629 629
 				),
630 630
 				'type'        => array(
631
-					'description' => __( 'Type of setting.', 'invoicing' ),
631
+					'description' => __('Type of setting.', 'invoicing'),
632 632
 					'type'        => 'string',
633 633
 					'arg_options' => array(
634 634
 						'sanitize_callback' => 'sanitize_text_field',
635 635
 					),
636
-					'context'     => array( 'view', 'edit' ),
637
-					'enum'        => array( 'text', 'email', 'number', 'color', 'password', 'textarea', 'select', 'multiselect', 'radio', 'image_width', 'checkbox', 'raw_html' ),
636
+					'context'     => array('view', 'edit'),
637
+					'enum'        => array('text', 'email', 'number', 'color', 'password', 'textarea', 'select', 'multiselect', 'radio', 'image_width', 'checkbox', 'raw_html'),
638 638
 					'readonly'    => true,
639 639
 				),
640 640
 				'options'     => array(
641
-					'description' => __( 'Array of options (key value pairs) for inputs such as select, multiselect, and radio buttons.', 'invoicing' ),
641
+					'description' => __('Array of options (key value pairs) for inputs such as select, multiselect, and radio buttons.', 'invoicing'),
642 642
 					'type'        => 'object',
643
-					'context'     => array( 'view', 'edit' ),
643
+					'context'     => array('view', 'edit'),
644 644
 					'readonly'    => true,
645 645
 				),
646 646
 				'readonly'        => array(
647
-					'description' => __( 'Whether or not this setting is readonly', 'invoicing' ),
647
+					'description' => __('Whether or not this setting is readonly', 'invoicing'),
648 648
 					'type'        => 'string',
649
-					'context'     => array( 'view' ),
649
+					'context'     => array('view'),
650 650
 					'readonly'    => true,
651 651
 				),
652 652
 				'faux'            => array(
653
-					'description' => __( 'Whether or not this setting is readonly/faux', 'invoicing' ),
653
+					'description' => __('Whether or not this setting is readonly/faux', 'invoicing'),
654 654
 					'type'        => 'string',
655
-					'context'     => array( 'view' ),
655
+					'context'     => array('view'),
656 656
 					'readonly'    => true,
657 657
 				),
658 658
 			),
659 659
 		);
660 660
 
661 661
 		// Filters the settings schema for the REST API.
662
-        $schema = apply_filters( 'getpaid_rest_settings_schema', $schema );
662
+        $schema = apply_filters('getpaid_rest_settings_schema', $schema);
663 663
 
664 664
 		// Cache the settings schema.
665 665
 		$this->schema = $schema;
666 666
 
667
-		return $this->add_additional_fields_schema( $this->schema );
667
+		return $this->add_additional_fields_schema($this->schema);
668 668
 
669 669
 	}
670 670
 
@@ -676,9 +676,9 @@  discard block
 block discarded – undo
676 676
 	 * @param array  $setting Setting.
677 677
 	 * @return string
678 678
 	 */
679
-	public function validate_setting_text_field( $value ) {
680
-		$value = is_null( $value ) ? '' : $value;
681
-		return wp_kses_post( trim( stripslashes( $value ) ) );
679
+	public function validate_setting_text_field($value) {
680
+		$value = is_null($value) ? '' : $value;
681
+		return wp_kses_post(trim(stripslashes($value)));
682 682
 	}
683 683
 
684 684
 	/**
@@ -689,11 +689,11 @@  discard block
 block discarded – undo
689 689
 	 * @param array  $setting Setting.
690 690
 	 * @return string|WP_Error
691 691
 	 */
692
-	public function validate_setting_select_field( $value, $setting ) {
693
-		if ( array_key_exists( $value, $setting['options'] ) ) {
692
+	public function validate_setting_select_field($value, $setting) {
693
+		if (array_key_exists($value, $setting['options'])) {
694 694
 			return $value;
695 695
 		} else {
696
-			return new WP_Error( 'rest_setting_value_invalid', __( 'An invalid setting value was passed.', 'invoicing' ), array( 'status' => 400 ) );
696
+			return new WP_Error('rest_setting_value_invalid', __('An invalid setting value was passed.', 'invoicing'), array('status' => 400));
697 697
 		}
698 698
 	}
699 699
 
@@ -705,18 +705,18 @@  discard block
 block discarded – undo
705 705
 	 * @param array $setting Setting.
706 706
 	 * @return array|WP_Error
707 707
 	 */
708
-	public function validate_setting_multiselect_field( $values, $setting ) {
709
-		if ( empty( $values ) ) {
708
+	public function validate_setting_multiselect_field($values, $setting) {
709
+		if (empty($values)) {
710 710
 			return array();
711 711
 		}
712 712
 
713
-		if ( ! is_array( $values ) ) {
714
-			return new WP_Error( 'rest_setting_value_invalid', __( 'An invalid setting value was passed.', 'invoicing' ), array( 'status' => 400 ) );
713
+		if (!is_array($values)) {
714
+			return new WP_Error('rest_setting_value_invalid', __('An invalid setting value was passed.', 'invoicing'), array('status' => 400));
715 715
 		}
716 716
 
717 717
 		$final_values = array();
718
-		foreach ( $values as $value ) {
719
-			if ( array_key_exists( $value, $setting['options'] ) ) {
718
+		foreach ($values as $value) {
719
+			if (array_key_exists($value, $setting['options'])) {
720 720
 				$final_values[] = $value;
721 721
 			}
722 722
 		}
@@ -732,8 +732,8 @@  discard block
 block discarded – undo
732 732
 	 * @param array  $setting Setting.
733 733
 	 * @return string|WP_Error
734 734
 	 */
735
-	public function validate_setting_radio_field( $value, $setting ) {
736
-		return $this->validate_setting_select_field( $value, $setting );
735
+	public function validate_setting_radio_field($value, $setting) {
736
+		return $this->validate_setting_select_field($value, $setting);
737 737
 	}
738 738
 
739 739
 	/**
@@ -743,8 +743,8 @@  discard block
 block discarded – undo
743 743
 	 * @param string $value Value.
744 744
 	 * @return int
745 745
 	 */
746
-	public function validate_setting_checkbox_field( $value ) {
747
-		return (int) ! empty( $value );
746
+	public function validate_setting_checkbox_field($value) {
747
+		return (int) !empty($value);
748 748
 	}
749 749
 
750 750
 	/**
@@ -754,10 +754,10 @@  discard block
 block discarded – undo
754 754
 	 * @param string $value Value.
755 755
 	 * @return string
756 756
 	 */
757
-	public function validate_setting_textarea_field( $value ) {
758
-		$value = is_null( $value ) ? '' : $value;
757
+	public function validate_setting_textarea_field($value) {
758
+		$value = is_null($value) ? '' : $value;
759 759
 		return wp_kses(
760
-			trim( stripslashes( $value ) ),
760
+			trim(stripslashes($value)),
761 761
 			array_merge(
762 762
 				array(
763 763
 					'iframe' => array(
@@ -767,7 +767,7 @@  discard block
 block discarded – undo
767 767
 						'class' => true,
768 768
 					),
769 769
 				),
770
-				wp_kses_allowed_html( 'post' )
770
+				wp_kses_allowed_html('post')
771 771
 			)
772 772
 		);
773 773
 	}
Please login to merge, or discard this patch.
includes/reports/class-getpaid-reports-helper.php 2 patches
Spacing   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * GetPaid_Reports_Helper Class.
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
 	 * @param  array $args
27 27
 	 * @return mixed depending on query_type
28 28
 	 */
29
-	public static function get_invoice_report_data( $args = array() ) {
29
+	public static function get_invoice_report_data($args = array()) {
30 30
 		global $wpdb;
31 31
 
32 32
 		$default_args = array(
@@ -37,94 +37,94 @@  discard block
 block discarded – undo
37 37
 			'order_by'              => '', // What to order by.
38 38
 			'limit'                 => '', // Results limit.
39 39
 			'filter_range'          => array(), // An array of before and after dates to limit results by.
40
-			'invoice_types'         => array( 'wpi_invoice' ), // An array of post types to retrieve.
41
-			'invoice_status'        => array( 'publish', 'wpi-processing', 'wpi-onhold' ),
40
+			'invoice_types'         => array('wpi_invoice'), // An array of post types to retrieve.
41
+			'invoice_status'        => array('publish', 'wpi-processing', 'wpi-onhold'),
42 42
 			'parent_invoice_status' => false, // Optionally filter by parent invoice status.
43 43
 		);
44 44
 
45
-		$args         = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args );
46
-		$args         = wp_parse_args( $args, $default_args );
45
+		$args         = apply_filters('getpaid_reports_get_invoice_report_data_args', $args);
46
+		$args         = wp_parse_args($args, $default_args);
47 47
 
48
-		extract( $args );
48
+		extract($args);
49 49
 
50
-		if ( empty( $data ) ) {
50
+		if (empty($data)) {
51 51
 			return '';
52 52
 		}
53 53
 
54 54
 		$query           = array();
55
-		$query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) );
55
+		$query['select'] = 'SELECT ' . implode(',', self::prepare_invoice_data($data));
56 56
 		$query['from']   = "FROM {$wpdb->posts} AS posts";
57
-		$query['join']   = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) );
57
+		$query['join']   = implode(' ', self::prepare_invoice_joins($data + $where, !empty($parent_invoice_status)));
58 58
 
59 59
 		$query['where']  = "
60
-			WHERE 	posts.post_type 	IN ( '" . implode( "','", $invoice_types ) . "' )
60
+			WHERE 	posts.post_type 	IN ( '" . implode("','", $invoice_types) . "' )
61 61
 			";
62 62
 
63
-		if ( ! empty( $invoice_status ) ) {
63
+		if (!empty($invoice_status)) {
64 64
 			$query['where'] .= "
65
-				AND 	posts.post_status 	IN ( '" . implode( "','", $invoice_status ) . "' )
65
+				AND 	posts.post_status 	IN ( '" . implode("','", $invoice_status) . "' )
66 66
 			";
67 67
 		}
68 68
 
69
-		if ( ! empty( $parent_invoice_status ) ) {
70
-			if ( ! empty( $invoice_status ) ) {
71
-				$query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) ";
69
+		if (!empty($parent_invoice_status)) {
70
+			if (!empty($invoice_status)) {
71
+				$query['where'] .= " AND ( parent.post_status IN ( '" . implode("','", $parent_invoice_status) . "' ) OR parent.ID IS NULL ) ";
72 72
 			} else {
73
-				$query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) ";
73
+				$query['where'] .= " AND parent.post_status IN ( '" . implode("','", $parent_invoice_status) . "' ) ";
74 74
 			}
75 75
 		}
76 76
 
77
-		if ( ! empty( $filter_range['before'] ) ) {
77
+		if (!empty($filter_range['before'])) {
78 78
 			$query['where'] .= "
79
-				AND 	posts.post_date < '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['before'] ) ) . "'
79
+				AND 	posts.post_date < '" . date('Y-m-d H:i:s', strtotime($filter_range['before'])) . "'
80 80
 			";
81 81
 		}
82 82
 
83
-		if ( ! empty( $filter_range['after'] ) ) {
83
+		if (!empty($filter_range['after'])) {
84 84
 			$query['where'] .= "
85
-				AND 	posts.post_date > '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['after'] ) ) . "'
85
+				AND 	posts.post_date > '" . date('Y-m-d H:i:s', strtotime($filter_range['after'])) . "'
86 86
 			";
87 87
 		}
88 88
 
89
-		if ( ! empty( $where ) ) {
89
+		if (!empty($where)) {
90 90
 
91
-			foreach ( $where as $value ) {
91
+			foreach ($where as $value) {
92 92
 
93
-				if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) {
93
+				if (strtolower($value['operator']) == 'in' || strtolower($value['operator']) == 'not in') {
94 94
 
95
-					if ( is_array( $value['value'] ) ) {
96
-						$value['value'] = implode( "','", $value['value'] );
95
+					if (is_array($value['value'])) {
96
+						$value['value'] = implode("','", $value['value']);
97 97
 					}
98 98
 
99
-					if ( ! empty( $value['value'] ) ) {
99
+					if (!empty($value['value'])) {
100 100
 						$where_value = "{$value['operator']} ('{$value['value']}')";
101 101
 					}
102 102
 				} else {
103 103
 					$where_value = "{$value['operator']} '{$value['value']}'";
104 104
 				}
105 105
 
106
-				if ( ! empty( $where_value ) ) {
106
+				if (!empty($where_value)) {
107 107
 					$query['where'] .= " AND {$value['key']} {$where_value}";
108 108
 				}
109 109
 			}
110 110
 		}
111 111
 
112
-		if ( $group_by ) {
112
+		if ($group_by) {
113 113
 			$query['group_by'] = "GROUP BY {$group_by}";
114 114
 		}
115 115
 
116
-		if ( $order_by ) {
116
+		if ($order_by) {
117 117
 			$query['order_by'] = "ORDER BY {$order_by}";
118 118
 		}
119 119
 
120
-		if ( $limit ) {
120
+		if ($limit) {
121 121
 			$query['limit'] = "LIMIT {$limit}";
122 122
 		}
123 123
 
124
-		$query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data );
125
-		$query = implode( ' ', $query );
124
+		$query = apply_filters('getpaid_reports_get_invoice_report_query', $query, $data);
125
+		$query = implode(' ', $query);
126 126
 
127
-		return self::execute( $query_type, $query );
127
+		return self::execute($query_type, $query);
128 128
 
129 129
 	}
130 130
 
@@ -135,26 +135,26 @@  discard block
 block discarded – undo
135 135
 	 * @param  array $data
136 136
 	 * @return array
137 137
 	 */
138
-	public static function prepare_invoice_data( $data ) {
138
+	public static function prepare_invoice_data($data) {
139 139
 
140 140
 		$prepared = array();
141 141
 
142
-		foreach ( $data as $raw_key => $value ) {
143
-			$key      = sanitize_key( $raw_key );
142
+		foreach ($data as $raw_key => $value) {
143
+			$key      = sanitize_key($raw_key);
144 144
 			$distinct = '';
145 145
 
146
-			if ( isset( $value['distinct'] ) ) {
146
+			if (isset($value['distinct'])) {
147 147
 				$distinct = 'DISTINCT';
148 148
 			}
149 149
 
150
-			$get_key = self::get_invoice_table_key( $key, $value['type'] );
150
+			$get_key = self::get_invoice_table_key($key, $value['type']);
151 151
 
152
-			if ( false === $get_key ) {
152
+			if (false === $get_key) {
153 153
 				// Skip to the next foreach iteration else the query will be invalid.
154 154
 				continue;
155 155
 			}
156 156
 
157
-			if ( ! empty( $value['function'] ) ) {
157
+			if (!empty($value['function'])) {
158 158
 				$get = "{$value['function']}({$distinct} {$get_key})";
159 159
 			} else {
160 160
 				$get = "{$distinct} {$get_key}";
@@ -175,22 +175,22 @@  discard block
 block discarded – undo
175 175
 	 * @param  bool $with_parent
176 176
 	 * @return array
177 177
 	 */
178
-	public static function prepare_invoice_joins( $data, $with_parent ) {
178
+	public static function prepare_invoice_joins($data, $with_parent) {
179 179
 		global $wpdb;
180 180
 
181 181
 		$prepared = array();
182 182
 
183
-		foreach ( $data as $raw_key => $value ) {
184
-			$join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER';
185
-			$type      = isset( $value['type'] ) ? $value['type'] : false;
186
-			$key       = sanitize_key( $raw_key );
183
+		foreach ($data as $raw_key => $value) {
184
+			$join_type = isset($value['join_type']) ? $value['join_type'] : 'INNER';
185
+			$type      = isset($value['type']) ? $value['type'] : false;
186
+			$key       = sanitize_key($raw_key);
187 187
 
188
-			switch ( $type ) {
188
+			switch ($type) {
189 189
 				case 'meta':
190
-					$prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )";
190
+					$prepared["meta_{$key}"] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )";
191 191
 					break;
192 192
 				case 'parent_meta':
193
-					$prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')";
193
+					$prepared["parent_meta_{$key}"] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')";
194 194
 					break;
195 195
 				case 'invoice_data':
196 196
 					$prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id";
@@ -201,7 +201,7 @@  discard block
 block discarded – undo
201 201
 			}
202 202
 		}
203 203
 
204
-		if ( $with_parent ) {
204
+		if ($with_parent) {
205 205
 			$prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID";
206 206
 		}
207 207
 
@@ -217,7 +217,7 @@  discard block
 block discarded – undo
217 217
 	 * @param  string $table
218 218
 	 * @return string|false
219 219
 	 */
220
-	public static function get_invoice_table_key( $key, $table ) {
220
+	public static function get_invoice_table_key($key, $table) {
221 221
 
222 222
 		$keys = array(
223 223
 			'meta'         => "meta_{$key}.meta_value",
@@ -227,7 +227,7 @@  discard block
 block discarded – undo
227 227
 			'invoice_item' => "invoice_items.{$key}",
228 228
 		);
229 229
 
230
-		return isset( $keys[ $table ] ) ? $keys[ $table ] : false;
230
+		return isset($keys[$table]) ? $keys[$table] : false;
231 231
 
232 232
 	}
233 233
 
@@ -239,16 +239,16 @@  discard block
 block discarded – undo
239 239
 	 * @param  string $query
240 240
 	 * @return mixed depending on query_type
241 241
 	 */
242
-	public static function execute( $query_type, $query ) {
242
+	public static function execute($query_type, $query) {
243 243
 		global $wpdb;
244 244
 
245
-		$query_hash = md5( $query_type . $query );
246
-		$result     = self::get_cached_query( $query_hash );
247
-		if ( $result === false ) {
245
+		$query_hash = md5($query_type . $query);
246
+		$result     = self::get_cached_query($query_hash);
247
+		if ($result === false) {
248 248
 			self::enable_big_selects();
249 249
 
250
-			$result = $wpdb->$query_type( $query );
251
-			self::set_cached_query( $query_hash, $result );
250
+			$result = $wpdb->$query_type($query);
251
+			self::set_cached_query($query_hash, $result);
252 252
 		}
253 253
 
254 254
 		return $result;
@@ -263,8 +263,8 @@  discard block
 block discarded – undo
263 263
 
264 264
 		global $wpdb;
265 265
 
266
-		if ( ! $big_selects ) {
267
-			$wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' );
266
+		if (!$big_selects) {
267
+			$wpdb->query('SET SESSION SQL_BIG_SELECTS=1');
268 268
 			$big_selects = true;
269 269
 		}
270 270
 	}
@@ -276,11 +276,11 @@  discard block
 block discarded – undo
276 276
 	 *
277 277
 	 * @return mixed|false The cache contents on success, false on failure to retrieve contents.
278 278
 	 */
279
-	protected static function get_cached_query( $query_hash ) {
279
+	protected static function get_cached_query($query_hash) {
280 280
 
281 281
 		return wp_cache_get(
282 282
 			$query_hash,
283
-			strtolower( __CLASS__ )
283
+			strtolower(__CLASS__)
284 284
 		);
285 285
 
286 286
 	}
@@ -291,12 +291,12 @@  discard block
 block discarded – undo
291 291
 	 * @param string $query_hash The query hash.
292 292
 	 * @param mixed  $data The data to cache.
293 293
 	 */
294
-	protected static function set_cached_query( $query_hash, $data ) {
294
+	protected static function set_cached_query($query_hash, $data) {
295 295
 
296 296
 		wp_cache_set(
297 297
 			$query_hash,
298 298
 			$data,
299
-			strtolower( __CLASS__ ),
299
+			strtolower(__CLASS__),
300 300
 			5 * MINUTE_IN_SECONDS
301 301
 		);
302 302
 
Please login to merge, or discard this patch.
Indentation   +276 added lines, -276 removed lines patch added patch discarded remove patch
@@ -12,294 +12,294 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Reports_Helper {
14 14
 
15
-	/**
16
-	 * Get report totals such as invoice totals and discount amounts.
17
-	 *
18
-	 * Data example:
19
-	 *
20
-	 * 'subtotal' => array(
21
-	 *     'type'     => 'invoice_data',
22
-	 *     'function' => 'SUM',
23
-	 *     'name'     => 'subtotal'
24
-	 * )
25
-	 *
26
-	 * @param  array $args
27
-	 * @return mixed depending on query_type
28
-	 */
29
-	public static function get_invoice_report_data( $args = array() ) {
30
-		global $wpdb;
31
-
32
-		$default_args = array(
33
-			'data'                  => array(), // The data to retrieve.
34
-			'where'                 => array(), // An array of where queries.
35
-			'query_type'            => 'get_row', // wpdb query to run.
36
-			'group_by'              => '', // What to group results by.
37
-			'order_by'              => '', // What to order by.
38
-			'limit'                 => '', // Results limit.
39
-			'filter_range'          => array(), // An array of before and after dates to limit results by.
40
-			'invoice_types'         => array( 'wpi_invoice' ), // An array of post types to retrieve.
41
-			'invoice_status'        => array( 'publish', 'wpi-processing', 'wpi-onhold' ),
42
-			'parent_invoice_status' => false, // Optionally filter by parent invoice status.
43
-		);
44
-
45
-		$args         = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args );
46
-		$args         = wp_parse_args( $args, $default_args );
47
-
48
-		extract( $args );
49
-
50
-		if ( empty( $data ) ) {
51
-			return '';
52
-		}
53
-
54
-		$query           = array();
55
-		$query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) );
56
-		$query['from']   = "FROM {$wpdb->posts} AS posts";
57
-		$query['join']   = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) );
58
-
59
-		$query['where']  = "
15
+    /**
16
+     * Get report totals such as invoice totals and discount amounts.
17
+     *
18
+     * Data example:
19
+     *
20
+     * 'subtotal' => array(
21
+     *     'type'     => 'invoice_data',
22
+     *     'function' => 'SUM',
23
+     *     'name'     => 'subtotal'
24
+     * )
25
+     *
26
+     * @param  array $args
27
+     * @return mixed depending on query_type
28
+     */
29
+    public static function get_invoice_report_data( $args = array() ) {
30
+        global $wpdb;
31
+
32
+        $default_args = array(
33
+            'data'                  => array(), // The data to retrieve.
34
+            'where'                 => array(), // An array of where queries.
35
+            'query_type'            => 'get_row', // wpdb query to run.
36
+            'group_by'              => '', // What to group results by.
37
+            'order_by'              => '', // What to order by.
38
+            'limit'                 => '', // Results limit.
39
+            'filter_range'          => array(), // An array of before and after dates to limit results by.
40
+            'invoice_types'         => array( 'wpi_invoice' ), // An array of post types to retrieve.
41
+            'invoice_status'        => array( 'publish', 'wpi-processing', 'wpi-onhold' ),
42
+            'parent_invoice_status' => false, // Optionally filter by parent invoice status.
43
+        );
44
+
45
+        $args         = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args );
46
+        $args         = wp_parse_args( $args, $default_args );
47
+
48
+        extract( $args );
49
+
50
+        if ( empty( $data ) ) {
51
+            return '';
52
+        }
53
+
54
+        $query           = array();
55
+        $query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) );
56
+        $query['from']   = "FROM {$wpdb->posts} AS posts";
57
+        $query['join']   = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) );
58
+
59
+        $query['where']  = "
60 60
 			WHERE 	posts.post_type 	IN ( '" . implode( "','", $invoice_types ) . "' )
61 61
 			";
62 62
 
63
-		if ( ! empty( $invoice_status ) ) {
64
-			$query['where'] .= "
63
+        if ( ! empty( $invoice_status ) ) {
64
+            $query['where'] .= "
65 65
 				AND 	posts.post_status 	IN ( '" . implode( "','", $invoice_status ) . "' )
66 66
 			";
67
-		}
68
-
69
-		if ( ! empty( $parent_invoice_status ) ) {
70
-			if ( ! empty( $invoice_status ) ) {
71
-				$query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) ";
72
-			} else {
73
-				$query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) ";
74
-			}
75
-		}
76
-
77
-		if ( ! empty( $filter_range['before'] ) ) {
78
-			$query['where'] .= "
67
+        }
68
+
69
+        if ( ! empty( $parent_invoice_status ) ) {
70
+            if ( ! empty( $invoice_status ) ) {
71
+                $query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) ";
72
+            } else {
73
+                $query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) ";
74
+            }
75
+        }
76
+
77
+        if ( ! empty( $filter_range['before'] ) ) {
78
+            $query['where'] .= "
79 79
 				AND 	posts.post_date < '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['before'] ) ) . "'
80 80
 			";
81
-		}
81
+        }
82 82
 
83
-		if ( ! empty( $filter_range['after'] ) ) {
84
-			$query['where'] .= "
83
+        if ( ! empty( $filter_range['after'] ) ) {
84
+            $query['where'] .= "
85 85
 				AND 	posts.post_date > '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['after'] ) ) . "'
86 86
 			";
87
-		}
87
+        }
88 88
 
89
-		if ( ! empty( $where ) ) {
89
+        if ( ! empty( $where ) ) {
90 90
 
91
-			foreach ( $where as $value ) {
91
+            foreach ( $where as $value ) {
92 92
 
93
-				if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) {
94
-
95
-					if ( is_array( $value['value'] ) ) {
96
-						$value['value'] = implode( "','", $value['value'] );
97
-					}
98
-
99
-					if ( ! empty( $value['value'] ) ) {
100
-						$where_value = "{$value['operator']} ('{$value['value']}')";
101
-					}
102
-				} else {
103
-					$where_value = "{$value['operator']} '{$value['value']}'";
104
-				}
105
-
106
-				if ( ! empty( $where_value ) ) {
107
-					$query['where'] .= " AND {$value['key']} {$where_value}";
108
-				}
109
-			}
110
-		}
111
-
112
-		if ( $group_by ) {
113
-			$query['group_by'] = "GROUP BY {$group_by}";
114
-		}
115
-
116
-		if ( $order_by ) {
117
-			$query['order_by'] = "ORDER BY {$order_by}";
118
-		}
119
-
120
-		if ( $limit ) {
121
-			$query['limit'] = "LIMIT {$limit}";
122
-		}
123
-
124
-		$query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data );
125
-		$query = implode( ' ', $query );
126
-
127
-		return self::execute( $query_type, $query );
128
-
129
-	}
130
-
131
-	/**
132
-	 * Prepares the data to select.
133
-	 *
134
-	 *
135
-	 * @param  array $data
136
-	 * @return array
137
-	 */
138
-	public static function prepare_invoice_data( $data ) {
139
-
140
-		$prepared = array();
141
-
142
-		foreach ( $data as $raw_key => $value ) {
143
-			$key      = sanitize_key( $raw_key );
144
-			$distinct = '';
145
-
146
-			if ( isset( $value['distinct'] ) ) {
147
-				$distinct = 'DISTINCT';
148
-			}
149
-
150
-			$get_key = self::get_invoice_table_key( $key, $value['type'] );
151
-
152
-			if ( false === $get_key ) {
153
-				// Skip to the next foreach iteration else the query will be invalid.
154
-				continue;
155
-			}
156
-
157
-			if ( ! empty( $value['function'] ) ) {
158
-				$get = "{$value['function']}({$distinct} {$get_key})";
159
-			} else {
160
-				$get = "{$distinct} {$get_key}";
161
-			}
162
-
163
-			$prepared[] = "{$get} as {$value['name']}";
164
-		}
165
-
166
-		return $prepared;
167
-
168
-	}
169
-
170
-	/**
171
-	 * Prepares the joins to use.
172
-	 *
173
-	 *
174
-	 * @param  array $data
175
-	 * @param  bool $with_parent
176
-	 * @return array
177
-	 */
178
-	public static function prepare_invoice_joins( $data, $with_parent ) {
179
-		global $wpdb;
180
-
181
-		$prepared = array();
182
-
183
-		foreach ( $data as $raw_key => $value ) {
184
-			$join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER';
185
-			$type      = isset( $value['type'] ) ? $value['type'] : false;
186
-			$key       = sanitize_key( $raw_key );
187
-
188
-			switch ( $type ) {
189
-				case 'meta':
190
-					$prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )";
191
-					break;
192
-				case 'parent_meta':
193
-					$prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')";
194
-					break;
195
-				case 'invoice_data':
196
-					$prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id";
197
-					break;
198
-				case 'invoice_item':
199
-					$prepared['invoice_items'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoice_items AS invoice_items ON posts.ID = invoice_items.post_id";
200
-					break;
201
-			}
202
-		}
203
-
204
-		if ( $with_parent ) {
205
-			$prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID";
206
-		}
207
-
208
-		return $prepared;
209
-
210
-	}
211
-
212
-	/**
213
-	 * Retrieves the appropriate table key to use.
214
-	 *
215
-	 *
216
-	 * @param  string $key
217
-	 * @param  string $table
218
-	 * @return string|false
219
-	 */
220
-	public static function get_invoice_table_key( $key, $table ) {
221
-
222
-		$keys = array(
223
-			'meta'         => "meta_{$key}.meta_value",
224
-			'parent_meta'  => "parent_meta_{$key}.meta_value",
225
-			'post_data'    => "posts.{$key}",
226
-			'invoice_data' => "invoices.{$key}",
227
-			'invoice_item' => "invoice_items.{$key}",
228
-		);
229
-
230
-		return isset( $keys[ $table ] ) ? $keys[ $table ] : false;
231
-
232
-	}
233
-
234
-	/**
235
-	 * Executes a query and caches the result for a minute.
236
-	 *
237
-	 *
238
-	 * @param  string $query_type
239
-	 * @param  string $query
240
-	 * @return mixed depending on query_type
241
-	 */
242
-	public static function execute( $query_type, $query ) {
243
-		global $wpdb;
244
-
245
-		$query_hash = md5( $query_type . $query );
246
-		$result     = self::get_cached_query( $query_hash );
247
-		if ( $result === false ) {
248
-			self::enable_big_selects();
249
-
250
-			$result = $wpdb->$query_type( $query );
251
-			self::set_cached_query( $query_hash, $result );
252
-		}
253
-
254
-		return $result;
255
-
256
-	}
257
-
258
-	/**
259
-	 * Enables big mysql selects for reports, just once for this session.
260
-	 */
261
-	protected static function enable_big_selects() {
262
-		static $big_selects = false;
263
-
264
-		global $wpdb;
265
-
266
-		if ( ! $big_selects ) {
267
-			$wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' );
268
-			$big_selects = true;
269
-		}
270
-	}
271
-
272
-	/**
273
-	 * Get the cached query result or null if it's not in the cache.
274
-	 *
275
-	 * @param string $query_hash The query hash.
276
-	 *
277
-	 * @return mixed|false The cache contents on success, false on failure to retrieve contents.
278
-	 */
279
-	protected static function get_cached_query( $query_hash ) {
280
-
281
-		return wp_cache_get(
282
-			$query_hash,
283
-			strtolower( __CLASS__ )
284
-		);
285
-
286
-	}
287
-
288
-	/**
289
-	 * Set the cached query result.
290
-	 *
291
-	 * @param string $query_hash The query hash.
292
-	 * @param mixed  $data The data to cache.
293
-	 */
294
-	protected static function set_cached_query( $query_hash, $data ) {
295
-
296
-		wp_cache_set(
297
-			$query_hash,
298
-			$data,
299
-			strtolower( __CLASS__ ),
300
-			5 * MINUTE_IN_SECONDS
301
-		);
302
-
303
-	}
93
+                if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) {
94
+
95
+                    if ( is_array( $value['value'] ) ) {
96
+                        $value['value'] = implode( "','", $value['value'] );
97
+                    }
98
+
99
+                    if ( ! empty( $value['value'] ) ) {
100
+                        $where_value = "{$value['operator']} ('{$value['value']}')";
101
+                    }
102
+                } else {
103
+                    $where_value = "{$value['operator']} '{$value['value']}'";
104
+                }
105
+
106
+                if ( ! empty( $where_value ) ) {
107
+                    $query['where'] .= " AND {$value['key']} {$where_value}";
108
+                }
109
+            }
110
+        }
111
+
112
+        if ( $group_by ) {
113
+            $query['group_by'] = "GROUP BY {$group_by}";
114
+        }
115
+
116
+        if ( $order_by ) {
117
+            $query['order_by'] = "ORDER BY {$order_by}";
118
+        }
119
+
120
+        if ( $limit ) {
121
+            $query['limit'] = "LIMIT {$limit}";
122
+        }
123
+
124
+        $query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data );
125
+        $query = implode( ' ', $query );
126
+
127
+        return self::execute( $query_type, $query );
128
+
129
+    }
130
+
131
+    /**
132
+     * Prepares the data to select.
133
+     *
134
+     *
135
+     * @param  array $data
136
+     * @return array
137
+     */
138
+    public static function prepare_invoice_data( $data ) {
139
+
140
+        $prepared = array();
141
+
142
+        foreach ( $data as $raw_key => $value ) {
143
+            $key      = sanitize_key( $raw_key );
144
+            $distinct = '';
145
+
146
+            if ( isset( $value['distinct'] ) ) {
147
+                $distinct = 'DISTINCT';
148
+            }
149
+
150
+            $get_key = self::get_invoice_table_key( $key, $value['type'] );
151
+
152
+            if ( false === $get_key ) {
153
+                // Skip to the next foreach iteration else the query will be invalid.
154
+                continue;
155
+            }
156
+
157
+            if ( ! empty( $value['function'] ) ) {
158
+                $get = "{$value['function']}({$distinct} {$get_key})";
159
+            } else {
160
+                $get = "{$distinct} {$get_key}";
161
+            }
162
+
163
+            $prepared[] = "{$get} as {$value['name']}";
164
+        }
165
+
166
+        return $prepared;
167
+
168
+    }
169
+
170
+    /**
171
+     * Prepares the joins to use.
172
+     *
173
+     *
174
+     * @param  array $data
175
+     * @param  bool $with_parent
176
+     * @return array
177
+     */
178
+    public static function prepare_invoice_joins( $data, $with_parent ) {
179
+        global $wpdb;
180
+
181
+        $prepared = array();
182
+
183
+        foreach ( $data as $raw_key => $value ) {
184
+            $join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER';
185
+            $type      = isset( $value['type'] ) ? $value['type'] : false;
186
+            $key       = sanitize_key( $raw_key );
187
+
188
+            switch ( $type ) {
189
+                case 'meta':
190
+                    $prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )";
191
+                    break;
192
+                case 'parent_meta':
193
+                    $prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')";
194
+                    break;
195
+                case 'invoice_data':
196
+                    $prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id";
197
+                    break;
198
+                case 'invoice_item':
199
+                    $prepared['invoice_items'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoice_items AS invoice_items ON posts.ID = invoice_items.post_id";
200
+                    break;
201
+            }
202
+        }
203
+
204
+        if ( $with_parent ) {
205
+            $prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID";
206
+        }
207
+
208
+        return $prepared;
209
+
210
+    }
211
+
212
+    /**
213
+     * Retrieves the appropriate table key to use.
214
+     *
215
+     *
216
+     * @param  string $key
217
+     * @param  string $table
218
+     * @return string|false
219
+     */
220
+    public static function get_invoice_table_key( $key, $table ) {
221
+
222
+        $keys = array(
223
+            'meta'         => "meta_{$key}.meta_value",
224
+            'parent_meta'  => "parent_meta_{$key}.meta_value",
225
+            'post_data'    => "posts.{$key}",
226
+            'invoice_data' => "invoices.{$key}",
227
+            'invoice_item' => "invoice_items.{$key}",
228
+        );
229
+
230
+        return isset( $keys[ $table ] ) ? $keys[ $table ] : false;
231
+
232
+    }
233
+
234
+    /**
235
+     * Executes a query and caches the result for a minute.
236
+     *
237
+     *
238
+     * @param  string $query_type
239
+     * @param  string $query
240
+     * @return mixed depending on query_type
241
+     */
242
+    public static function execute( $query_type, $query ) {
243
+        global $wpdb;
244
+
245
+        $query_hash = md5( $query_type . $query );
246
+        $result     = self::get_cached_query( $query_hash );
247
+        if ( $result === false ) {
248
+            self::enable_big_selects();
249
+
250
+            $result = $wpdb->$query_type( $query );
251
+            self::set_cached_query( $query_hash, $result );
252
+        }
253
+
254
+        return $result;
255
+
256
+    }
257
+
258
+    /**
259
+     * Enables big mysql selects for reports, just once for this session.
260
+     */
261
+    protected static function enable_big_selects() {
262
+        static $big_selects = false;
263
+
264
+        global $wpdb;
265
+
266
+        if ( ! $big_selects ) {
267
+            $wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' );
268
+            $big_selects = true;
269
+        }
270
+    }
271
+
272
+    /**
273
+     * Get the cached query result or null if it's not in the cache.
274
+     *
275
+     * @param string $query_hash The query hash.
276
+     *
277
+     * @return mixed|false The cache contents on success, false on failure to retrieve contents.
278
+     */
279
+    protected static function get_cached_query( $query_hash ) {
280
+
281
+        return wp_cache_get(
282
+            $query_hash,
283
+            strtolower( __CLASS__ )
284
+        );
285
+
286
+    }
287
+
288
+    /**
289
+     * Set the cached query result.
290
+     *
291
+     * @param string $query_hash The query hash.
292
+     * @param mixed  $data The data to cache.
293
+     */
294
+    protected static function set_cached_query( $query_hash, $data ) {
295
+
296
+        wp_cache_set(
297
+            $query_hash,
298
+            $data,
299
+            strtolower( __CLASS__ ),
300
+            5 * MINUTE_IN_SECONDS
301
+        );
302
+
303
+    }
304 304
 
305 305
 }
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-report-top-earners-controller.php 2 patches
Indentation   +42 added lines, -42 removed lines patch added patch discarded remove patch
@@ -18,50 +18,50 @@
 block discarded – undo
18 18
  */
19 19
 class GetPaid_REST_Report_Top_Earners_Controller extends GetPaid_REST_Report_Top_Sellers_Controller {
20 20
 
21
-	/**
22
-	 * Route base.
23
-	 *
24
-	 * @var string
25
-	 */
26
-	protected $rest_base = 'reports/top_earners';
21
+    /**
22
+     * Route base.
23
+     *
24
+     * @var string
25
+     */
26
+    protected $rest_base = 'reports/top_earners';
27 27
 
28
-	/**
29
-	 * Get all data needed for this report and store in the class.
30
-	 */
31
-	protected function query_report_data() {
28
+    /**
29
+     * Get all data needed for this report and store in the class.
30
+     */
31
+    protected function query_report_data() {
32 32
 
33
-		$this->report_data = GetPaid_Reports_Helper::get_invoice_report_data(
34
-			array(
35
-				'data'              => array(
36
-					'quantity'      => array(
37
-						'type'            => 'invoice_item',
38
-						'function'        => 'SUM',
39
-						'name'            => 'invoice_item_qty',
40
-					),
41
-					'item_id'             => array(
42
-						'type'            => 'invoice_item',
43
-						'function'        => '',
44
-						'name'            => 'invoice_item_id',
45
-					),
46
-					'item_name'           => array(
47
-						'type'            => 'invoice_item',
48
-						'function'        => '',
49
-						'name'            => 'invoice_item_name',
50
-					),
51
-					'price'               => array(
52
-						'type'            => 'invoice_item',
53
-						'function'        => 'SUM',
54
-						'name'            => 'invoice_item_price',
55
-					),
56
-				),
57
-				'group_by'       => 'invoice_item_id',
58
-				'order_by'       => 'invoice_item_price DESC',
59
-				'query_type'     => 'get_results',
60
-				'limit'          => 10,
61
-				'filter_range'   => $this->report_range,
62
-			)
63
-		);
33
+        $this->report_data = GetPaid_Reports_Helper::get_invoice_report_data(
34
+            array(
35
+                'data'              => array(
36
+                    'quantity'      => array(
37
+                        'type'            => 'invoice_item',
38
+                        'function'        => 'SUM',
39
+                        'name'            => 'invoice_item_qty',
40
+                    ),
41
+                    'item_id'             => array(
42
+                        'type'            => 'invoice_item',
43
+                        'function'        => '',
44
+                        'name'            => 'invoice_item_id',
45
+                    ),
46
+                    'item_name'           => array(
47
+                        'type'            => 'invoice_item',
48
+                        'function'        => '',
49
+                        'name'            => 'invoice_item_name',
50
+                    ),
51
+                    'price'               => array(
52
+                        'type'            => 'invoice_item',
53
+                        'function'        => 'SUM',
54
+                        'name'            => 'invoice_item_price',
55
+                    ),
56
+                ),
57
+                'group_by'       => 'invoice_item_id',
58
+                'order_by'       => 'invoice_item_price DESC',
59
+                'query_type'     => 'get_results',
60
+                'limit'          => 10,
61
+                'filter_range'   => $this->report_range,
62
+            )
63
+        );
64 64
 
65
-	}
65
+    }
66 66
 
67 67
 }
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
  * @since   2.0.0
10 10
  */
11 11
 
12
-defined( 'ABSPATH' ) || exit;
12
+defined('ABSPATH') || exit;
13 13
 
14 14
 /**
15 15
  * GetPaid REST top earners controller class.
Please login to merge, or discard this patch.
includes/class-wpinv-api.php 1 patch
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -6,7 +6,7 @@  discard block
 block discarded – undo
6 6
  * @since    1.0.19
7 7
  */
8 8
 
9
-defined( 'ABSPATH' ) || exit;
9
+defined('ABSPATH') || exit;
10 10
 
11 11
 /**
12 12
  * The main API class
@@ -96,7 +96,7 @@  discard block
 block discarded – undo
96 96
         $this->invoice_counts = new GetPaid_REST_Report_Invoice_Counts_Controller();
97 97
 
98 98
         // Fires after loading the rest api.
99
-        do_action( 'getpaid_rest_api_loaded', $this );
99
+        do_action('getpaid_rest_api_loaded', $this);
100 100
     }
101 101
 
102 102
 }
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-report-invoice-counts-controller.php 2 patches
Indentation   +98 added lines, -98 removed lines patch added patch discarded remove patch
@@ -18,102 +18,102 @@
 block discarded – undo
18 18
  */
19 19
 class GetPaid_REST_Report_Invoice_Counts_Controller extends GetPaid_REST_Reports_Controller {
20 20
 
21
-	/**
22
-	 * Route base.
23
-	 *
24
-	 * @var string
25
-	 */
26
-	protected $rest_base = 'reports/invoices/counts';
27
-
28
-	/**
29
-	 * Prepare a report object for serialization.
30
-	 *
31
-	 * @param  stdClass        $report Report data.
32
-	 * @param  WP_REST_Request $request Request object.
33
-	 * @return WP_REST_Response $response Response data.
34
-	 */
35
-	public function prepare_item_for_response( $report, $request ) {
36
-
37
-		$data    = (array) $report;
38
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
39
-		$data    = $this->add_additional_fields_to_object( $data, $request );
40
-		$data    = $this->filter_response_by_context( $data, $context );
41
-
42
-		// Wrap the data in a response object.
43
-		$response = rest_ensure_response( $data );
44
-
45
-		$response->add_links(
46
-			array(
47
-				'about' => array(
48
-					'href' => rest_url( sprintf( '%s/reports', $this->namespace ) ),
49
-				),
50
-			)
51
-		);
52
-
53
-		return apply_filters( 'getpaid_rest_prepare_report_invoices_count', $response, $report, $request );
54
-	}
55
-
56
-	/**
57
-	 * Get reports list.
58
-	 *
59
-	 * @since 2.0.0
60
-	 * @return array
61
-	 */
62
-	protected function get_reports() {
63
-
64
-		$counts = wp_count_posts( 'wpi_invoice' );
65
-		$data   = array();
66
-
67
-		foreach ( wpinv_get_invoice_statuses() as $slug => $name ) {
68
-
69
-			if ( ! isset( $counts->$slug ) ) {
70
-				continue;
71
-			}
72
-
73
-			$data[] = array(
74
-				'slug'  => $slug,
75
-				'name'  => $name,
76
-				'count' => (int) $counts->$slug,
77
-			);
78
-
79
-		}
80
-
81
-		return $data;
82
-
83
-	}
84
-
85
-	/**
86
-	 * Get the Report's schema, conforming to JSON Schema.
87
-	 *
88
-	 * @return array
89
-	 */
90
-	public function get_item_schema() {
91
-		$schema = array(
92
-			'$schema'    => 'http://json-schema.org/draft-04/schema#',
93
-			'title'      => 'report_invoice_counts',
94
-			'type'       => 'object',
95
-			'properties' => array(
96
-				'slug'  => array(
97
-					'description' => __( 'An alphanumeric identifier for the resource.', 'invoicing' ),
98
-					'type'        => 'string',
99
-					'context'     => array( 'view' ),
100
-					'readonly'    => true,
101
-				),
102
-				'name'  => array(
103
-					'description' => __( 'Invoice status name.', 'invoicing' ),
104
-					'type'        => 'string',
105
-					'context'     => array( 'view' ),
106
-					'readonly'    => true,
107
-				),
108
-				'count' => array(
109
-					'description' => __( 'Number of invoices.', 'invoicing' ),
110
-					'type'        => 'string',
111
-					'context'     => array( 'view' ),
112
-					'readonly'    => true,
113
-				),
114
-			),
115
-		);
116
-
117
-		return $this->add_additional_fields_schema( $schema );
118
-	}
21
+    /**
22
+     * Route base.
23
+     *
24
+     * @var string
25
+     */
26
+    protected $rest_base = 'reports/invoices/counts';
27
+
28
+    /**
29
+     * Prepare a report object for serialization.
30
+     *
31
+     * @param  stdClass        $report Report data.
32
+     * @param  WP_REST_Request $request Request object.
33
+     * @return WP_REST_Response $response Response data.
34
+     */
35
+    public function prepare_item_for_response( $report, $request ) {
36
+
37
+        $data    = (array) $report;
38
+        $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
39
+        $data    = $this->add_additional_fields_to_object( $data, $request );
40
+        $data    = $this->filter_response_by_context( $data, $context );
41
+
42
+        // Wrap the data in a response object.
43
+        $response = rest_ensure_response( $data );
44
+
45
+        $response->add_links(
46
+            array(
47
+                'about' => array(
48
+                    'href' => rest_url( sprintf( '%s/reports', $this->namespace ) ),
49
+                ),
50
+            )
51
+        );
52
+
53
+        return apply_filters( 'getpaid_rest_prepare_report_invoices_count', $response, $report, $request );
54
+    }
55
+
56
+    /**
57
+     * Get reports list.
58
+     *
59
+     * @since 2.0.0
60
+     * @return array
61
+     */
62
+    protected function get_reports() {
63
+
64
+        $counts = wp_count_posts( 'wpi_invoice' );
65
+        $data   = array();
66
+
67
+        foreach ( wpinv_get_invoice_statuses() as $slug => $name ) {
68
+
69
+            if ( ! isset( $counts->$slug ) ) {
70
+                continue;
71
+            }
72
+
73
+            $data[] = array(
74
+                'slug'  => $slug,
75
+                'name'  => $name,
76
+                'count' => (int) $counts->$slug,
77
+            );
78
+
79
+        }
80
+
81
+        return $data;
82
+
83
+    }
84
+
85
+    /**
86
+     * Get the Report's schema, conforming to JSON Schema.
87
+     *
88
+     * @return array
89
+     */
90
+    public function get_item_schema() {
91
+        $schema = array(
92
+            '$schema'    => 'http://json-schema.org/draft-04/schema#',
93
+            'title'      => 'report_invoice_counts',
94
+            'type'       => 'object',
95
+            'properties' => array(
96
+                'slug'  => array(
97
+                    'description' => __( 'An alphanumeric identifier for the resource.', 'invoicing' ),
98
+                    'type'        => 'string',
99
+                    'context'     => array( 'view' ),
100
+                    'readonly'    => true,
101
+                ),
102
+                'name'  => array(
103
+                    'description' => __( 'Invoice status name.', 'invoicing' ),
104
+                    'type'        => 'string',
105
+                    'context'     => array( 'view' ),
106
+                    'readonly'    => true,
107
+                ),
108
+                'count' => array(
109
+                    'description' => __( 'Number of invoices.', 'invoicing' ),
110
+                    'type'        => 'string',
111
+                    'context'     => array( 'view' ),
112
+                    'readonly'    => true,
113
+                ),
114
+            ),
115
+        );
116
+
117
+        return $this->add_additional_fields_schema( $schema );
118
+    }
119 119
 }
Please login to merge, or discard this patch.
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
9 9
  * @since   2.0.0
10 10
  */
11 11
 
12
-defined( 'ABSPATH' ) || exit;
12
+defined('ABSPATH') || exit;
13 13
 
14 14
 /**
15 15
  * GetPaid REST invoice counts controller class.
@@ -32,25 +32,25 @@  discard block
 block discarded – undo
32 32
 	 * @param  WP_REST_Request $request Request object.
33 33
 	 * @return WP_REST_Response $response Response data.
34 34
 	 */
35
-	public function prepare_item_for_response( $report, $request ) {
35
+	public function prepare_item_for_response($report, $request) {
36 36
 
37 37
 		$data    = (array) $report;
38
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
39
-		$data    = $this->add_additional_fields_to_object( $data, $request );
40
-		$data    = $this->filter_response_by_context( $data, $context );
38
+		$context = !empty($request['context']) ? $request['context'] : 'view';
39
+		$data    = $this->add_additional_fields_to_object($data, $request);
40
+		$data    = $this->filter_response_by_context($data, $context);
41 41
 
42 42
 		// Wrap the data in a response object.
43
-		$response = rest_ensure_response( $data );
43
+		$response = rest_ensure_response($data);
44 44
 
45 45
 		$response->add_links(
46 46
 			array(
47 47
 				'about' => array(
48
-					'href' => rest_url( sprintf( '%s/reports', $this->namespace ) ),
48
+					'href' => rest_url(sprintf('%s/reports', $this->namespace)),
49 49
 				),
50 50
 			)
51 51
 		);
52 52
 
53
-		return apply_filters( 'getpaid_rest_prepare_report_invoices_count', $response, $report, $request );
53
+		return apply_filters('getpaid_rest_prepare_report_invoices_count', $response, $report, $request);
54 54
 	}
55 55
 
56 56
 	/**
@@ -61,12 +61,12 @@  discard block
 block discarded – undo
61 61
 	 */
62 62
 	protected function get_reports() {
63 63
 
64
-		$counts = wp_count_posts( 'wpi_invoice' );
64
+		$counts = wp_count_posts('wpi_invoice');
65 65
 		$data   = array();
66 66
 
67
-		foreach ( wpinv_get_invoice_statuses() as $slug => $name ) {
67
+		foreach (wpinv_get_invoice_statuses() as $slug => $name) {
68 68
 
69
-			if ( ! isset( $counts->$slug ) ) {
69
+			if (!isset($counts->$slug)) {
70 70
 				continue;
71 71
 			}
72 72
 
@@ -94,26 +94,26 @@  discard block
 block discarded – undo
94 94
 			'type'       => 'object',
95 95
 			'properties' => array(
96 96
 				'slug'  => array(
97
-					'description' => __( 'An alphanumeric identifier for the resource.', 'invoicing' ),
97
+					'description' => __('An alphanumeric identifier for the resource.', 'invoicing'),
98 98
 					'type'        => 'string',
99
-					'context'     => array( 'view' ),
99
+					'context'     => array('view'),
100 100
 					'readonly'    => true,
101 101
 				),
102 102
 				'name'  => array(
103
-					'description' => __( 'Invoice status name.', 'invoicing' ),
103
+					'description' => __('Invoice status name.', 'invoicing'),
104 104
 					'type'        => 'string',
105
-					'context'     => array( 'view' ),
105
+					'context'     => array('view'),
106 106
 					'readonly'    => true,
107 107
 				),
108 108
 				'count' => array(
109
-					'description' => __( 'Number of invoices.', 'invoicing' ),
109
+					'description' => __('Number of invoices.', 'invoicing'),
110 110
 					'type'        => 'string',
111
-					'context'     => array( 'view' ),
111
+					'context'     => array('view'),
112 112
 					'readonly'    => true,
113 113
 				),
114 114
 			),
115 115
 		);
116 116
 
117
-		return $this->add_additional_fields_schema( $schema );
117
+		return $this->add_additional_fields_schema($schema);
118 118
 	}
119 119
 }
Please login to merge, or discard this patch.