Passed
Push — master ( 31f474...7d7341 )
by Kiran
10:27 queued 05:04
created
includes/admin/meta-boxes/class-getpaid-meta-box-discount-details.php 3 patches
Indentation   +26 added lines, -26 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  */
9 9
 
10 10
 if ( ! defined( 'ABSPATH' ) ) {
11
-	exit; // Exit if accessed directly
11
+    exit; // Exit if accessed directly
12 12
 }
13 13
 
14 14
 /**
@@ -17,10 +17,10 @@  discard block
 block discarded – undo
17 17
 class GetPaid_Meta_Box_Discount_Details {
18 18
 
19 19
     /**
20
-	 * Output the metabox.
21
-	 *
22
-	 * @param WP_Post $post
23
-	 */
20
+     * Output the metabox.
21
+     *
22
+     * @param WP_Post $post
23
+     */
24 24
     public static function output( $post ) {
25 25
 
26 26
         // Prepare the discount.
@@ -396,35 +396,35 @@  discard block
 block discarded – undo
396 396
     }
397 397
 
398 398
     /**
399
-	 * Save meta box data.
400
-	 *
401
-	 * @param int $post_id
402
-	 */
403
-	public static function save( $post_id ) {
399
+     * Save meta box data.
400
+     *
401
+     * @param int $post_id
402
+     */
403
+    public static function save( $post_id ) {
404 404
 
405 405
         // Prepare the discount.
406 406
         $discount = new WPInv_Discount( $post_id );
407 407
 
408 408
         // Load new data.
409 409
         $discount->set_props(
410
-			array(
411
-				'code'           => isset( $_POST['wpinv_discount_code'] ) ? wpinv_clean( $_POST['wpinv_discount_code'] ) : null,
412
-				'amount'         => isset( $_POST['wpinv_discount_amount'] ) ? floatval( $_POST['wpinv_discount_amount'] ) : null,
413
-				'start'          => isset( $_POST['wpinv_discount_start'] ) ? wpinv_clean( $_POST['wpinv_discount_start'] ) : null,
414
-				'expiration'     => isset( $_POST['wpinv_discount_expiration'] ) ? wpinv_clean( $_POST['wpinv_discount_expiration'] ) : null,
415
-				'is_single_use'  => ! empty( $_POST['wpinv_discount_single_use'] ),
410
+            array(
411
+                'code'           => isset( $_POST['wpinv_discount_code'] ) ? wpinv_clean( $_POST['wpinv_discount_code'] ) : null,
412
+                'amount'         => isset( $_POST['wpinv_discount_amount'] ) ? floatval( $_POST['wpinv_discount_amount'] ) : null,
413
+                'start'          => isset( $_POST['wpinv_discount_start'] ) ? wpinv_clean( $_POST['wpinv_discount_start'] ) : null,
414
+                'expiration'     => isset( $_POST['wpinv_discount_expiration'] ) ? wpinv_clean( $_POST['wpinv_discount_expiration'] ) : null,
415
+                'is_single_use'  => ! empty( $_POST['wpinv_discount_single_use'] ),
416 416
                 'type'           => isset( $_POST['wpinv_discount_type'] ) ? wpinv_clean( $_POST['wpinv_discount_type'] ) : null,
417
-				'is_recurring'   => ! empty( $_POST['wpinv_discount_recurring'] ),
418
-				'items'          => isset( $_POST['wpinv_discount_items'] ) ? wpinv_clean( $_POST['wpinv_discount_items'] ) : array(),
419
-				'excluded_items' => isset( $_POST['wpinv_discount_excluded_items'] ) ? wpinv_clean( $_POST['wpinv_discount_excluded_items'] ) : array(),
417
+                'is_recurring'   => ! empty( $_POST['wpinv_discount_recurring'] ),
418
+                'items'          => isset( $_POST['wpinv_discount_items'] ) ? wpinv_clean( $_POST['wpinv_discount_items'] ) : array(),
419
+                'excluded_items' => isset( $_POST['wpinv_discount_excluded_items'] ) ? wpinv_clean( $_POST['wpinv_discount_excluded_items'] ) : array(),
420 420
                 'required_items' => isset( $_POST['wpinv_discount_required_items'] ) ? wpinv_clean( $_POST['wpinv_discount_required_items'] ) : array(),
421
-				'max_uses'       => isset( $_POST['wpinv_discount_max_uses'] ) ? intval( $_POST['wpinv_discount_max_uses'] ) : null,
422
-				'min_total'      => isset( $_POST['wpinv_discount_min_total'] ) ? floatval( $_POST['wpinv_discount_min_total'] ) : null,
423
-				'max_total'      => isset( $_POST['wpinv_discount_max_total'] ) ? floatval( $_POST['wpinv_discount_max_total'] ) : null,
424
-			)
421
+                'max_uses'       => isset( $_POST['wpinv_discount_max_uses'] ) ? intval( $_POST['wpinv_discount_max_uses'] ) : null,
422
+                'min_total'      => isset( $_POST['wpinv_discount_min_total'] ) ? floatval( $_POST['wpinv_discount_min_total'] ) : null,
423
+                'max_total'      => isset( $_POST['wpinv_discount_max_total'] ) ? floatval( $_POST['wpinv_discount_max_total'] ) : null,
424
+            )
425 425
         );
426 426
 
427
-		$discount->save();
428
-		do_action( 'getpaid_discount_metabox_save', $post_id, $discount );
429
-	}
427
+        $discount->save();
428
+        do_action( 'getpaid_discount_metabox_save', $post_id, $discount );
429
+    }
430 430
 }
Please login to merge, or discard this patch.
Spacing   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  *
8 8
  */
9 9
 
10
-if ( ! defined( 'ABSPATH' ) ) {
10
+if (!defined('ABSPATH')) {
11 11
 	exit; // Exit if accessed directly
12 12
 }
13 13
 
@@ -21,24 +21,24 @@  discard block
 block discarded – undo
21 21
 	 *
22 22
 	 * @param WP_Post $post
23 23
 	 */
24
-    public static function output( $post ) {
24
+    public static function output($post) {
25 25
 
26 26
         // Prepare the discount.
27
-        $discount = new WPInv_Discount( $post );
27
+        $discount = new WPInv_Discount($post);
28 28
 
29 29
         // Nonce field.
30
-        wp_nonce_field( 'getpaid_meta_nonce', 'getpaid_meta_nonce' );
30
+        wp_nonce_field('getpaid_meta_nonce', 'getpaid_meta_nonce');
31 31
 
32
-        do_action( 'wpinv_discount_form_top', $discount );
32
+        do_action('wpinv_discount_form_top', $discount);
33 33
 
34 34
         // Set the currency position.
35 35
         $position = wpinv_currency_position();
36 36
 
37
-        if ( $position == 'left_space' ) {
37
+        if ($position == 'left_space') {
38 38
             $position = 'left';
39 39
         }
40 40
 
41
-        if ( $position == 'right_space' ) {
41
+        if ($position == 'right_space') {
42 42
             $position = 'right';
43 43
         }
44 44
 
@@ -52,69 +52,69 @@  discard block
 block discarded – undo
52 52
         </style>
53 53
         <div class='bsui' style='max-width: 600px;padding-top: 10px;'>
54 54
 
55
-            <?php do_action( 'wpinv_discount_form_first', $discount ); ?>
55
+            <?php do_action('wpinv_discount_form_first', $discount); ?>
56 56
 
57
-            <?php do_action( 'wpinv_discount_form_before_code', $discount ); ?>
57
+            <?php do_action('wpinv_discount_form_before_code', $discount); ?>
58 58
 
59 59
             <div class="form-group mb-3 row">
60 60
                 <label for="wpinv_discount_code" class="col-sm-3 col-form-label">
61
-                    <?php esc_html_e( 'Discount Code', 'invoicing' ); ?>
61
+                    <?php esc_html_e('Discount Code', 'invoicing'); ?>
62 62
                 </label>
63 63
                 <div class="col-sm-8">
64 64
                     <div class="row">
65 65
                         <div class="col-sm-12 form-group mb-3">
66
-                            <input type="text" value="<?php echo esc_attr( $discount->get_code( 'edit' ) ); ?>" placeholder="SUMMER_SALE" name="wpinv_discount_code" id="wpinv_discount_code" style="width: 100%;" />
66
+                            <input type="text" value="<?php echo esc_attr($discount->get_code('edit')); ?>" placeholder="SUMMER_SALE" name="wpinv_discount_code" id="wpinv_discount_code" style="width: 100%;" />
67 67
                         </div>
68 68
                         <div class="col-sm-12">
69 69
                             <?php
70
-                                do_action( 'wpinv_discount_form_before_single_use', $discount );
70
+                                do_action('wpinv_discount_form_before_single_use', $discount);
71 71
 
72 72
                                 aui()->input(
73 73
                                     array(
74 74
                                         'id'      => 'wpinv_discount_single_use',
75 75
                                         'name'    => 'wpinv_discount_single_use',
76 76
                                         'type'    => 'checkbox',
77
-                                        'label'   => __( 'Each customer can only use this discount once', 'invoicing' ),
77
+                                        'label'   => __('Each customer can only use this discount once', 'invoicing'),
78 78
                                         'value'   => '1',
79 79
                                         'checked' => $discount->is_single_use(),
80 80
                                     ),
81 81
                                     true
82 82
                                 );
83 83
 
84
-                                do_action( 'wpinv_discount_form_single_use', $discount );
84
+                                do_action('wpinv_discount_form_single_use', $discount);
85 85
                             ?>
86 86
                         </div>
87 87
                         <div class="col-sm-12">
88 88
                             <?php
89
-                                do_action( 'wpinv_discount_form_before_recurring', $discount );
89
+                                do_action('wpinv_discount_form_before_recurring', $discount);
90 90
 
91 91
                                 aui()->input(
92 92
                                     array(
93 93
                                         'id'      => 'wpinv_discount_recurring',
94 94
                                         'name'    => 'wpinv_discount_recurring',
95 95
                                         'type'    => 'checkbox',
96
-                                        'label'   => __( 'Apply this discount to all recurring payments for subscriptions', 'invoicing' ),
96
+                                        'label'   => __('Apply this discount to all recurring payments for subscriptions', 'invoicing'),
97 97
                                         'value'   => '1',
98 98
                                         'checked' => $discount->is_recurring(),
99 99
                                     ),
100 100
                                     true
101 101
                                 );
102 102
 
103
-                                do_action( 'wpinv_discount_form_recurring', $discount );
103
+                                do_action('wpinv_discount_form_recurring', $discount);
104 104
                             ?>
105 105
                         </div>
106 106
                     </div>
107 107
                 </div>
108 108
                 <div class="col-sm-1 pt-2 pl-0">
109
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Enter a discount code such as 10OFF.', 'invoicing' ); ?>"></span>
109
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Enter a discount code such as 10OFF.', 'invoicing'); ?>"></span>
110 110
                 </div>
111 111
             </div>
112
-            <?php do_action( 'wpinv_discount_form_code', $discount ); ?>
112
+            <?php do_action('wpinv_discount_form_code', $discount); ?>
113 113
 
114
-            <?php do_action( 'wpinv_discount_form_before_type', $discount ); ?>
114
+            <?php do_action('wpinv_discount_form_before_type', $discount); ?>
115 115
             <div class="form-group mb-3 row">
116 116
                 <label for="wpinv_discount_type" class="col-sm-3 col-form-label">
117
-                    <?php esc_html_e( 'Discount Type', 'invoicing' ); ?>
117
+                    <?php esc_html_e('Discount Type', 'invoicing'); ?>
118 118
                 </label>
119 119
                 <div class="col-sm-8">
120 120
                     <?php
@@ -122,9 +122,9 @@  discard block
 block discarded – undo
122 122
                             array(
123 123
                                 'id'               => 'wpinv_discount_type',
124 124
                                 'name'             => 'wpinv_discount_type',
125
-                                'label'            => __( 'Discount Type', 'invoicing' ),
126
-                                'placeholder'      => __( 'Select Discount Type', 'invoicing' ),
127
-                                'value'            => $discount->get_type( 'edit' ),
125
+                                'label'            => __('Discount Type', 'invoicing'),
126
+                                'placeholder'      => __('Select Discount Type', 'invoicing'),
127
+                                'value'            => $discount->get_type('edit'),
128 128
                                 'select2'          => true,
129 129
                                 'data-allow-clear' => 'false',
130 130
                                 'options'          => wpinv_get_discount_types(),
@@ -134,49 +134,49 @@  discard block
 block discarded – undo
134 134
                     ?>
135 135
                 </div>
136 136
                 <div class="col-sm-1 pt-2 pl-0">
137
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Discount type.', 'invoicing' ); ?>"></span>
137
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Discount type.', 'invoicing'); ?>"></span>
138 138
                 </div>
139 139
             </div>
140
-            <?php do_action( 'wpinv_discount_form_type', $discount ); ?>
140
+            <?php do_action('wpinv_discount_form_type', $discount); ?>
141 141
 
142
-            <?php do_action( 'wpinv_discount_form_before_amount', $discount ); ?>
143
-            <div class="form-group mb-3 row <?php echo esc_attr( $discount->get_type( 'edit' ) ); ?>" id="wpinv_discount_amount_wrap">
142
+            <?php do_action('wpinv_discount_form_before_amount', $discount); ?>
143
+            <div class="form-group mb-3 row <?php echo esc_attr($discount->get_type('edit')); ?>" id="wpinv_discount_amount_wrap">
144 144
                 <label for="wpinv_discount_amount" class="col-sm-3 col-form-label">
145
-                    <?php esc_html_e( 'Discount Amount', 'invoicing' ); ?>
145
+                    <?php esc_html_e('Discount Amount', 'invoicing'); ?>
146 146
                 </label>
147 147
                 <div class="col-sm-8">
148 148
                     <div class="input-group input-group-sm">
149 149
 
150
-                        <?php if ( 'left' == $position ) : ?>
151
-                            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
150
+                        <?php if ('left' == $position) : ?>
151
+                            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
152 152
                                 <div class="input-group-prepend left wpinv-if-flat">
153 153
                                     <span class="input-group-text">
154
-                                        <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
154
+                                        <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
155 155
                                     </span>
156 156
                                 </div>
157 157
                             <?php else : ?>
158 158
                                 <span class="input-group-text left wpinv-if-flat">
159
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
159
+                                    <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
160 160
                                 </span>
161 161
                             <?php endif; ?>
162 162
                         <?php endif; ?>
163 163
 
164
-                        <input type="text" name="wpinv_discount_amount" id="wpinv_discount_amount" value="<?php echo esc_attr( $discount->get_amount( 'edit' ) ); ?>" placeholder="0" class="form-control">
164
+                        <input type="text" name="wpinv_discount_amount" id="wpinv_discount_amount" value="<?php echo esc_attr($discount->get_amount('edit')); ?>" placeholder="0" class="form-control">
165 165
 
166
-                        <?php if ( 'right' == $position ) : ?>
167
-                            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
166
+                        <?php if ('right' == $position) : ?>
167
+                            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
168 168
                                 <div class="input-group-append right wpinv-if-flat">
169 169
                                     <span class="input-group-text">
170
-                                        <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
170
+                                        <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
171 171
                                     </span>
172 172
                                 </div>
173 173
                             <?php else : ?>
174 174
                                 <span class="input-group-text left wpinv-if-flat">
175
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
175
+                                    <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
176 176
                                 </span>
177 177
                             <?php endif; ?>
178 178
                         <?php endif; ?>
179
-                        <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
179
+                        <?php if (empty($GLOBALS['aui_bs5'])) : ?>
180 180
                             <div class="input-group-append right wpinv-if-percent">
181 181
                                 <span class="input-group-text">%</span>
182 182
                             </div>
@@ -186,15 +186,15 @@  discard block
 block discarded – undo
186 186
                     </div>
187 187
                 </div>
188 188
                 <div class="col-sm-1 pt-2 pl-0">
189
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Enter the discount value. Ex: 10', 'invoicing' ); ?>"></span>
189
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Enter the discount value. Ex: 10', 'invoicing'); ?>"></span>
190 190
                 </div>
191 191
             </div>
192
-            <?php do_action( 'wpinv_discount_form_amount', $discount ); ?>
192
+            <?php do_action('wpinv_discount_form_amount', $discount); ?>
193 193
 
194
-            <?php do_action( 'wpinv_discount_form_before_items', $discount ); ?>
194
+            <?php do_action('wpinv_discount_form_before_items', $discount); ?>
195 195
             <div class="form-group mb-3 row">
196 196
                 <label for="wpinv_discount_items" class="col-sm-3 col-form-label">
197
-                    <?php esc_html_e( 'Items', 'invoicing' ); ?>
197
+                    <?php esc_html_e('Items', 'invoicing'); ?>
198 198
                 </label>
199 199
                 <div class="col-sm-8">
200 200
                     <?php
@@ -202,9 +202,9 @@  discard block
 block discarded – undo
202 202
                             array(
203 203
                                 'id'               => 'wpinv_discount_items',
204 204
                                 'name'             => 'wpinv_discount_items[]',
205
-                                'label'            => __( 'Items', 'invoicing' ),
206
-                                'placeholder'      => __( 'Select Items', 'invoicing' ),
207
-                                'value'            => $discount->get_items( 'edit' ),
205
+                                'label'            => __('Items', 'invoicing'),
206
+                                'placeholder'      => __('Select Items', 'invoicing'),
207
+                                'value'            => $discount->get_items('edit'),
208 208
                                 'select2'          => true,
209 209
                                 'multiple'         => true,
210 210
                                 'data-allow-clear' => 'false',
@@ -215,15 +215,15 @@  discard block
 block discarded – undo
215 215
                     ?>
216 216
                 </div>
217 217
                 <div class="col-sm-1 pt-2 pl-0">
218
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Select the items that are allowed to use this discount or leave blank to use this discount all items.', 'invoicing' ); ?>"></span>
218
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Select the items that are allowed to use this discount or leave blank to use this discount all items.', 'invoicing'); ?>"></span>
219 219
                 </div>
220 220
             </div>
221
-            <?php do_action( 'wpinv_discount_form_items', $discount ); ?>
221
+            <?php do_action('wpinv_discount_form_items', $discount); ?>
222 222
 
223
-            <?php do_action( 'wpinv_discount_form_before_excluded_items', $discount ); ?>
223
+            <?php do_action('wpinv_discount_form_before_excluded_items', $discount); ?>
224 224
             <div class="form-group mb-3 row">
225 225
                 <label for="wpinv_discount_excluded_items" class="col-sm-3 col-form-label">
226
-                    <?php esc_html_e( 'Excluded Items', 'invoicing' ); ?>
226
+                    <?php esc_html_e('Excluded Items', 'invoicing'); ?>
227 227
                 </label>
228 228
                 <div class="col-sm-8">
229 229
                     <?php
@@ -231,9 +231,9 @@  discard block
 block discarded – undo
231 231
                             array(
232 232
                                 'id'               => 'wpinv_discount_excluded_items',
233 233
                                 'name'             => 'wpinv_discount_excluded_items[]',
234
-                                'label'            => __( 'Excluded Items', 'invoicing' ),
235
-                                'placeholder'      => __( 'Select Items', 'invoicing' ),
236
-                                'value'            => $discount->get_excluded_items( 'edit' ),
234
+                                'label'            => __('Excluded Items', 'invoicing'),
235
+                                'placeholder'      => __('Select Items', 'invoicing'),
236
+                                'value'            => $discount->get_excluded_items('edit'),
237 237
                                 'select2'          => true,
238 238
                                 'multiple'         => true,
239 239
                                 'data-allow-clear' => 'false',
@@ -244,15 +244,15 @@  discard block
 block discarded – undo
244 244
                     ?>
245 245
                 </div>
246 246
                 <div class="col-sm-1 pt-2 pl-0">
247
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Select all the items that are not allowed to use this discount.', 'invoicing' ); ?>"></span>
247
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Select all the items that are not allowed to use this discount.', 'invoicing'); ?>"></span>
248 248
                 </div>
249 249
             </div>
250
-            <?php do_action( 'wpinv_discount_form_excluded_items', $discount ); ?>
250
+            <?php do_action('wpinv_discount_form_excluded_items', $discount); ?>
251 251
 
252
-            <?php do_action( 'wpinv_discount_form_before_required_items', $discount ); ?>
252
+            <?php do_action('wpinv_discount_form_before_required_items', $discount); ?>
253 253
             <div class="form-group mb-3 row">
254 254
                 <label for="wpinv_discount_required_items" class="col-sm-3 col-form-label">
255
-                    <?php esc_html_e( 'Required Items', 'invoicing' ); ?>
255
+                    <?php esc_html_e('Required Items', 'invoicing'); ?>
256 256
                 </label>
257 257
                 <div class="col-sm-8">
258 258
                     <?php
@@ -260,9 +260,9 @@  discard block
 block discarded – undo
260 260
                             array(
261 261
                                 'id'               => 'wpinv_discount_required_items',
262 262
                                 'name'             => 'wpinv_discount_required_items[]',
263
-                                'label'            => __( 'Required Items', 'invoicing' ),
264
-                                'placeholder'      => __( 'Select Items', 'invoicing' ),
265
-                                'value'            => $discount->get_required_items( 'edit' ),
263
+                                'label'            => __('Required Items', 'invoicing'),
264
+                                'placeholder'      => __('Select Items', 'invoicing'),
265
+                                'value'            => $discount->get_required_items('edit'),
266 266
                                 'select2'          => true,
267 267
                                 'multiple'         => true,
268 268
                                 'data-allow-clear' => 'false',
@@ -273,15 +273,15 @@  discard block
 block discarded – undo
273 273
                     ?>
274 274
                 </div>
275 275
                 <div class="col-sm-1 pt-2 pl-0">
276
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Select all the items that are required to be in the cart before using this discount.', 'invoicing' ); ?>"></span>
276
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Select all the items that are required to be in the cart before using this discount.', 'invoicing'); ?>"></span>
277 277
                 </div>
278 278
             </div>
279
-            <?php do_action( 'wpinv_discount_form_required_items', $discount ); ?>
279
+            <?php do_action('wpinv_discount_form_required_items', $discount); ?>
280 280
 
281
-            <?php do_action( 'wpinv_discount_form_before_start', $discount ); ?>
281
+            <?php do_action('wpinv_discount_form_before_start', $discount); ?>
282 282
             <div class="form-group mb-3 row">
283 283
                 <label for="wpinv_discount_start" class="col-sm-3 col-form-label">
284
-                    <?php esc_html_e( 'Start Date', 'invoicing' ); ?>
284
+                    <?php esc_html_e('Start Date', 'invoicing'); ?>
285 285
                 </label>
286 286
                 <div class="col-sm-8">
287 287
                     <?php
@@ -290,10 +290,10 @@  discard block
 block discarded – undo
290 290
                                 'type'             => 'datepicker',
291 291
                                 'id'               => 'wpinv_discount_start',
292 292
                                 'name'             => 'wpinv_discount_start',
293
-                                'label'            => __( 'Start Date', 'invoicing' ),
293
+                                'label'            => __('Start Date', 'invoicing'),
294 294
                                 'placeholder'      => 'YYYY-MM-DD 00:00',
295 295
                                 'class'            => 'form-control-sm',
296
-                                'value'            => $discount->get_start_date( 'edit' ),
296
+                                'value'            => $discount->get_start_date('edit'),
297 297
                                 'extra_attributes' => array(
298 298
                                     'data-enable-time' => 'true',
299 299
                                     'data-time_24hr'   => 'true',
@@ -305,15 +305,15 @@  discard block
 block discarded – undo
305 305
                     ?>
306 306
                 </div>
307 307
                 <div class="col-sm-1 pt-2 pl-0">
308
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'invoicing' ); ?>"></span>
308
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'invoicing'); ?>"></span>
309 309
                 </div>
310 310
             </div>
311
-            <?php do_action( 'wpinv_discount_form_start', $discount ); ?>
311
+            <?php do_action('wpinv_discount_form_start', $discount); ?>
312 312
 
313
-            <?php do_action( 'wpinv_discount_form_before_expiration', $discount ); ?>
313
+            <?php do_action('wpinv_discount_form_before_expiration', $discount); ?>
314 314
             <div class="form-group mb-3 row">
315 315
                 <label for="wpinv_discount_expiration" class="col-sm-3 col-form-label">
316
-                    <?php esc_html_e( 'Expiration Date', 'invoicing' ); ?>
316
+                    <?php esc_html_e('Expiration Date', 'invoicing'); ?>
317 317
                 </label>
318 318
                 <div class="col-sm-8">
319 319
                     <?php
@@ -322,10 +322,10 @@  discard block
 block discarded – undo
322 322
                                 'type'             => 'datepicker',
323 323
                                 'id'               => 'wpinv_discount_expiration',
324 324
                                 'name'             => 'wpinv_discount_expiration',
325
-                                'label'            => __( 'Expiration Date', 'invoicing' ),
325
+                                'label'            => __('Expiration Date', 'invoicing'),
326 326
                                 'placeholder'      => 'YYYY-MM-DD 00:00',
327 327
                                 'class'            => 'form-control-sm',
328
-                                'value'            => $discount->get_end_date( 'edit' ),
328
+                                'value'            => $discount->get_end_date('edit'),
329 329
                                 'extra_attributes' => array(
330 330
                                     'data-enable-time' => 'true',
331 331
                                     'data-time_24hr'   => 'true',
@@ -339,111 +339,111 @@  discard block
 block discarded – undo
339 339
                     ?>
340 340
                 </div>
341 341
                 <div class="col-sm-1 pt-2 pl-0">
342
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Optionally set the date after which the discount will expire.', 'invoicing' ); ?>"></span>
342
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Optionally set the date after which the discount will expire.', 'invoicing'); ?>"></span>
343 343
                 </div>
344 344
             </div>
345
-            <?php do_action( 'wpinv_discount_form_expiration', $discount ); ?>
345
+            <?php do_action('wpinv_discount_form_expiration', $discount); ?>
346 346
 
347
-            <?php do_action( 'wpinv_discount_form_before_min_total', $discount ); ?>
347
+            <?php do_action('wpinv_discount_form_before_min_total', $discount); ?>
348 348
             <div class="form-group mb-3 row">
349 349
                 <label for="wpinv_discount_min_total" class="col-sm-3 col-form-label">
350
-                    <?php esc_html_e( 'Minimum Amount', 'invoicing' ); ?>
350
+                    <?php esc_html_e('Minimum Amount', 'invoicing'); ?>
351 351
                 </label>
352 352
                 <div class="col-sm-8">
353 353
                     <div class="input-group input-group-sm">
354 354
 
355
-                        <?php if ( 'left' == $position ) : ?>
356
-                            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
355
+                        <?php if ('left' == $position) : ?>
356
+                            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
357 357
                                 <div class="input-group-prepend">
358
-                                    <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
358
+                                    <span class="input-group-text"><?php echo wp_kses_post(wpinv_currency_symbol()); ?></span>
359 359
                                 </div>
360 360
                             <?php else : ?>
361 361
                                 <span class="input-group-text">
362
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
362
+                                    <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
363 363
                                 </span>
364 364
                             <?php endif; ?>
365 365
                         <?php endif; ?>
366 366
 
367
-                        <input type="text" name="wpinv_discount_min_total" id="wpinv_discount_min_total" value="<?php echo esc_attr( $discount->get_minimum_total( 'edit' ) ); ?>" placeholder="<?php esc_attr_e( 'No minimum', 'invoicing' ); ?>" class="form-control">
367
+                        <input type="text" name="wpinv_discount_min_total" id="wpinv_discount_min_total" value="<?php echo esc_attr($discount->get_minimum_total('edit')); ?>" placeholder="<?php esc_attr_e('No minimum', 'invoicing'); ?>" class="form-control">
368 368
 
369
-                        <?php if ( 'left' != $position ) : ?>
370
-                            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
369
+                        <?php if ('left' != $position) : ?>
370
+                            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
371 371
                                 <div class="input-group-append">
372
-                                    <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
372
+                                    <span class="input-group-text"><?php echo wp_kses_post(wpinv_currency_symbol()); ?></span>
373 373
                                 </div>
374 374
                             <?php else : ?>
375 375
                                 <span class="input-group-text">
376
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
376
+                                    <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
377 377
                                 </span>
378 378
                             <?php endif; ?>
379 379
                         <?php endif; ?>
380 380
                     </div>
381 381
                 </div>
382 382
                 <div class="col-sm-1 pt-2 pl-0">
383
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Optionally set the minimum amount (including taxes) required to use this discount.', 'invoicing' ); ?>"></span>
383
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Optionally set the minimum amount (including taxes) required to use this discount.', 'invoicing'); ?>"></span>
384 384
                 </div>
385 385
             </div>
386
-            <?php do_action( 'wpinv_discount_form_min_total', $discount ); ?>
386
+            <?php do_action('wpinv_discount_form_min_total', $discount); ?>
387 387
 
388
-            <?php do_action( 'wpinv_discount_form_before_max_total', $discount ); ?>
388
+            <?php do_action('wpinv_discount_form_before_max_total', $discount); ?>
389 389
             <div class="form-group mb-3 row">
390 390
                 <label for="wpinv_discount_max_total" class="col-sm-3 col-form-label">
391
-                    <?php esc_html_e( 'Maximum Amount', 'invoicing' ); ?>
391
+                    <?php esc_html_e('Maximum Amount', 'invoicing'); ?>
392 392
                 </label>
393 393
                 <div class="col-sm-8">
394 394
                     <div class="input-group input-group-sm">
395
-                        <?php if ( 'left' == $position ) : ?>
396
-                            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
395
+                        <?php if ('left' == $position) : ?>
396
+                            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
397 397
                                 <div class="input-group-prepend">
398
-                                    <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
398
+                                    <span class="input-group-text"><?php echo wp_kses_post(wpinv_currency_symbol()); ?></span>
399 399
                                 </div>
400 400
                             <?php else : ?>
401 401
                                 <span class="input-group-text">
402
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
402
+                                    <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
403 403
                                 </span>
404 404
                             <?php endif; ?>
405 405
                         <?php endif; ?>
406 406
 
407
-                        <input type="text" name="wpinv_discount_max_total" id="wpinv_discount_max_total" value="<?php echo esc_attr( $discount->get_maximum_total( 'edit' ) ); ?>" placeholder="<?php esc_attr_e( 'No maximum', 'invoicing' ); ?>" class="form-control">
407
+                        <input type="text" name="wpinv_discount_max_total" id="wpinv_discount_max_total" value="<?php echo esc_attr($discount->get_maximum_total('edit')); ?>" placeholder="<?php esc_attr_e('No maximum', 'invoicing'); ?>" class="form-control">
408 408
 
409
-                        <?php if ( 'left' != $position ) : ?>
410
-                            <?php if ( empty( $GLOBALS['aui_bs5'] ) ) : ?>
409
+                        <?php if ('left' != $position) : ?>
410
+                            <?php if (empty($GLOBALS['aui_bs5'])) : ?>
411 411
                                 <div class="input-group-append">
412
-                                    <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
412
+                                    <span class="input-group-text"><?php echo wp_kses_post(wpinv_currency_symbol()); ?></span>
413 413
                                 </div>
414 414
                             <?php else : ?>
415 415
                                 <span class="input-group-text">
416
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
416
+                                    <?php echo wp_kses_post(wpinv_currency_symbol()); ?>
417 417
                                 </span>
418 418
                             <?php endif; ?>
419 419
                         <?php endif; ?>
420 420
                     </div>
421 421
                 </div>
422 422
                 <div class="col-sm-1 pt-2 pl-0">
423
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Optionally set the maximum amount (including taxes) allowed when using this discount.', 'invoicing' ); ?>"></span>
423
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Optionally set the maximum amount (including taxes) allowed when using this discount.', 'invoicing'); ?>"></span>
424 424
                 </div>
425 425
             </div>
426
-            <?php do_action( 'wpinv_discount_form_before_max_total', $discount ); ?>
426
+            <?php do_action('wpinv_discount_form_before_max_total', $discount); ?>
427 427
 
428
-            <?php do_action( 'wpinv_discount_form_before_max_uses', $discount ); ?>
428
+            <?php do_action('wpinv_discount_form_before_max_uses', $discount); ?>
429 429
             <div class="form-group mb-3 row">
430 430
                 <label for="wpinv_discount_max_uses" class="col-sm-3 col-form-label">
431
-                    <?php esc_html_e( 'Maximum Uses', 'invoicing' ); ?>
431
+                    <?php esc_html_e('Maximum Uses', 'invoicing'); ?>
432 432
                 </label>
433 433
                 <div class="col-sm-8">
434
-                    <input type="text" value="<?php echo esc_attr( $discount->get_max_uses( 'edit' ) ); ?>" placeholder="<?php esc_attr_e( 'Unlimited', 'invoicing' ); ?>" name="wpinv_discount_max_uses" id="wpinv_discount_max_uses" style="width: 100%;" />
434
+                    <input type="text" value="<?php echo esc_attr($discount->get_max_uses('edit')); ?>" placeholder="<?php esc_attr_e('Unlimited', 'invoicing'); ?>" name="wpinv_discount_max_uses" id="wpinv_discount_max_uses" style="width: 100%;" />
435 435
                 </div>
436 436
                 <div class="col-sm-1 pt-2 pl-0">
437
-                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e( 'Optionally set the maximum number of times that this discount code can be used.', 'invoicing' ); ?>"></span>
437
+                    <span class="wpi-help-tip dashicons dashicons-editor-help" title="<?php esc_attr_e('Optionally set the maximum number of times that this discount code can be used.', 'invoicing'); ?>"></span>
438 438
                 </div>
439 439
             </div>
440
-            <?php do_action( 'wpinv_discount_form_max_uses', $discount ); ?>
440
+            <?php do_action('wpinv_discount_form_max_uses', $discount); ?>
441 441
 
442
-            <?php do_action( 'wpinv_discount_form_last', $discount ); ?>
442
+            <?php do_action('wpinv_discount_form_last', $discount); ?>
443 443
 
444 444
         </div>
445 445
         <?php
446
-        do_action( 'wpinv_discount_form_bottom', $post );
446
+        do_action('wpinv_discount_form_bottom', $post);
447 447
     }
448 448
 
449 449
     /**
@@ -451,31 +451,31 @@  discard block
 block discarded – undo
451 451
 	 *
452 452
 	 * @param int $post_id
453 453
 	 */
454
-	public static function save( $post_id ) {
454
+	public static function save($post_id) {
455 455
 
456 456
         // Prepare the discount.
457
-        $discount = new WPInv_Discount( $post_id );
457
+        $discount = new WPInv_Discount($post_id);
458 458
 
459 459
         // Load new data.
460 460
         $discount->set_props(
461 461
 			array(
462
-				'code'           => isset( $_POST['wpinv_discount_code'] ) ? wpinv_clean( $_POST['wpinv_discount_code'] ) : null,
463
-				'amount'         => isset( $_POST['wpinv_discount_amount'] ) ? floatval( $_POST['wpinv_discount_amount'] ) : null,
464
-				'start'          => isset( $_POST['wpinv_discount_start'] ) ? wpinv_clean( $_POST['wpinv_discount_start'] ) : null,
465
-				'expiration'     => isset( $_POST['wpinv_discount_expiration'] ) ? wpinv_clean( $_POST['wpinv_discount_expiration'] ) : null,
466
-				'is_single_use'  => ! empty( $_POST['wpinv_discount_single_use'] ),
467
-                'type'           => isset( $_POST['wpinv_discount_type'] ) ? wpinv_clean( $_POST['wpinv_discount_type'] ) : null,
468
-				'is_recurring'   => ! empty( $_POST['wpinv_discount_recurring'] ),
469
-				'items'          => isset( $_POST['wpinv_discount_items'] ) ? wpinv_clean( $_POST['wpinv_discount_items'] ) : array(),
470
-				'excluded_items' => isset( $_POST['wpinv_discount_excluded_items'] ) ? wpinv_clean( $_POST['wpinv_discount_excluded_items'] ) : array(),
471
-                'required_items' => isset( $_POST['wpinv_discount_required_items'] ) ? wpinv_clean( $_POST['wpinv_discount_required_items'] ) : array(),
472
-				'max_uses'       => isset( $_POST['wpinv_discount_max_uses'] ) ? intval( $_POST['wpinv_discount_max_uses'] ) : null,
473
-				'min_total'      => isset( $_POST['wpinv_discount_min_total'] ) ? floatval( $_POST['wpinv_discount_min_total'] ) : null,
474
-				'max_total'      => isset( $_POST['wpinv_discount_max_total'] ) ? floatval( $_POST['wpinv_discount_max_total'] ) : null,
462
+				'code'           => isset($_POST['wpinv_discount_code']) ? wpinv_clean($_POST['wpinv_discount_code']) : null,
463
+				'amount'         => isset($_POST['wpinv_discount_amount']) ? floatval($_POST['wpinv_discount_amount']) : null,
464
+				'start'          => isset($_POST['wpinv_discount_start']) ? wpinv_clean($_POST['wpinv_discount_start']) : null,
465
+				'expiration'     => isset($_POST['wpinv_discount_expiration']) ? wpinv_clean($_POST['wpinv_discount_expiration']) : null,
466
+				'is_single_use'  => !empty($_POST['wpinv_discount_single_use']),
467
+                'type'           => isset($_POST['wpinv_discount_type']) ? wpinv_clean($_POST['wpinv_discount_type']) : null,
468
+				'is_recurring'   => !empty($_POST['wpinv_discount_recurring']),
469
+				'items'          => isset($_POST['wpinv_discount_items']) ? wpinv_clean($_POST['wpinv_discount_items']) : array(),
470
+				'excluded_items' => isset($_POST['wpinv_discount_excluded_items']) ? wpinv_clean($_POST['wpinv_discount_excluded_items']) : array(),
471
+                'required_items' => isset($_POST['wpinv_discount_required_items']) ? wpinv_clean($_POST['wpinv_discount_required_items']) : array(),
472
+				'max_uses'       => isset($_POST['wpinv_discount_max_uses']) ? intval($_POST['wpinv_discount_max_uses']) : null,
473
+				'min_total'      => isset($_POST['wpinv_discount_min_total']) ? floatval($_POST['wpinv_discount_min_total']) : null,
474
+				'max_total'      => isset($_POST['wpinv_discount_max_total']) ? floatval($_POST['wpinv_discount_max_total']) : null,
475 475
 			)
476 476
         );
477 477
 
478 478
 		$discount->save();
479
-		do_action( 'getpaid_discount_metabox_save', $post_id, $discount );
479
+		do_action('getpaid_discount_metabox_save', $post_id, $discount);
480 480
 	}
481 481
 }
Please login to merge, or discard this patch.
Braces   +35 added lines, -14 removed lines patch added patch discarded remove patch
@@ -154,9 +154,12 @@  discard block
 block discarded – undo
154 154
                                         <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
155 155
                                     </span>
156 156
                                 </div>
157
-                            <?php else : ?>
157
+                            <?php else {
158
+    : ?>
158 159
                                 <span class="input-group-text left wpinv-if-flat">
159
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
160
+                                    <?php echo wp_kses_post( wpinv_currency_symbol() );
161
+}
162
+?>
160 163
                                 </span>
161 164
                             <?php endif; ?>
162 165
                         <?php endif; ?>
@@ -170,9 +173,12 @@  discard block
 block discarded – undo
170 173
                                         <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
171 174
                                     </span>
172 175
                                 </div>
173
-                            <?php else : ?>
176
+                            <?php else {
177
+    : ?>
174 178
                                 <span class="input-group-text left wpinv-if-flat">
175
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
179
+                                    <?php echo wp_kses_post( wpinv_currency_symbol() );
180
+}
181
+?>
176 182
                                 </span>
177 183
                             <?php endif; ?>
178 184
                         <?php endif; ?>
@@ -180,9 +186,12 @@  discard block
 block discarded – undo
180 186
                             <div class="input-group-append right wpinv-if-percent">
181 187
                                 <span class="input-group-text">%</span>
182 188
                             </div>
183
-                        <?php else : ?>
189
+                        <?php else {
190
+    : ?>
184 191
                             <span class="input-group-text right wpinv-if-percent">%</span>
185
-                        <?php endif; ?>
192
+                        <?php endif;
193
+}
194
+?>
186 195
                     </div>
187 196
                 </div>
188 197
                 <div class="col-sm-1 pt-2 pl-0">
@@ -357,9 +366,12 @@  discard block
 block discarded – undo
357 366
                                 <div class="input-group-prepend">
358 367
                                     <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
359 368
                                 </div>
360
-                            <?php else : ?>
369
+                            <?php else {
370
+    : ?>
361 371
                                 <span class="input-group-text">
362
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
372
+                                    <?php echo wp_kses_post( wpinv_currency_symbol() );
373
+}
374
+?>
363 375
                                 </span>
364 376
                             <?php endif; ?>
365 377
                         <?php endif; ?>
@@ -371,9 +383,12 @@  discard block
 block discarded – undo
371 383
                                 <div class="input-group-append">
372 384
                                     <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
373 385
                                 </div>
374
-                            <?php else : ?>
386
+                            <?php else {
387
+    : ?>
375 388
                                 <span class="input-group-text">
376
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
389
+                                    <?php echo wp_kses_post( wpinv_currency_symbol() );
390
+}
391
+?>
377 392
                                 </span>
378 393
                             <?php endif; ?>
379 394
                         <?php endif; ?>
@@ -397,9 +412,12 @@  discard block
 block discarded – undo
397 412
                                 <div class="input-group-prepend">
398 413
                                     <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
399 414
                                 </div>
400
-                            <?php else : ?>
415
+                            <?php else {
416
+    : ?>
401 417
                                 <span class="input-group-text">
402
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
418
+                                    <?php echo wp_kses_post( wpinv_currency_symbol() );
419
+}
420
+?>
403 421
                                 </span>
404 422
                             <?php endif; ?>
405 423
                         <?php endif; ?>
@@ -411,9 +429,12 @@  discard block
 block discarded – undo
411 429
                                 <div class="input-group-append">
412 430
                                     <span class="input-group-text"><?php echo wp_kses_post( wpinv_currency_symbol() ); ?></span>
413 431
                                 </div>
414
-                            <?php else : ?>
432
+                            <?php else {
433
+    : ?>
415 434
                                 <span class="input-group-text">
416
-                                    <?php echo wp_kses_post( wpinv_currency_symbol() ); ?>
435
+                                    <?php echo wp_kses_post( wpinv_currency_symbol() );
436
+}
437
+?>
417 438
                                 </span>
418 439
                             <?php endif; ?>
419 440
                         <?php endif; ?>
Please login to merge, or discard this patch.
includes/admin/class-wpinv-admin-menus.php 2 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -24,14 +24,14 @@  discard block
 block discarded – undo
24 24
     }
25 25
 
26 26
     /**
27
-	 * Highlights sub menus.
28
-	 */
29
-	public function set_admin_menu_class() {
30
-		global $current_screen, $parent_file, $submenu_file;
27
+     * Highlights sub menus.
28
+     */
29
+    public function set_admin_menu_class() {
30
+        global $current_screen, $parent_file, $submenu_file;
31 31
 
32 32
         if ( ! empty( $current_screen->id ) && in_array( $current_screen->id, array( 'wpi_discount', 'wpi_payment_form', 'wpi_invoice' ) ) ) {
33
-			$parent_file = 'wpinv';
34
-			$submenu_file = 'edit.php?post_type=' . $current_screen->id;
33
+            $parent_file = 'wpinv';
34
+            $submenu_file = 'edit.php?post_type=' . $current_screen->id;
35 35
         }
36 36
 
37 37
     }
@@ -165,8 +165,8 @@  discard block
 block discarded – undo
165 165
                 foreach ( wpinv_get_settings_tabs() as $tab_id => $tab_name ) {
166 166
                     $tab_url = add_query_arg(
167 167
                         array(
168
-							'settings-updated' => false,
169
-							'tab'              => $tab_id,
168
+                            'settings-updated' => false,
169
+                            'tab'              => $tab_id,
170 170
                         ),
171 171
                         'admin.php?page=wpinv-settings'
172 172
                     );
@@ -193,9 +193,9 @@  discard block
 block discarded – undo
193 193
                     $number++;
194 194
                     $tab_url = add_query_arg(
195 195
                         array(
196
-							'settings-updated' => false,
197
-							'tab'              => $active_tab,
198
-							'section'          => $section_id,
196
+                            'settings-updated' => false,
197
+                            'tab'              => $active_tab,
198
+                            'section'          => $section_id,
199 199
                         ),
200 200
                         admin_url( 'admin.php?page=wpinv-settings' )
201 201
                     );
Please login to merge, or discard this patch.
Spacing   +82 added lines, -82 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Setup menus in WP admin.
4 4
  */
5 5
 
6
-defined( 'ABSPATH' ) || exit;
6
+defined('ABSPATH') || exit;
7 7
 
8 8
 /**
9 9
  * WC_Admin_Menus Class.
@@ -13,15 +13,15 @@  discard block
 block discarded – undo
13 13
      * Hook in tabs.
14 14
      */
15 15
     public function __construct() {
16
-        add_action( 'admin_head', array( $this, 'set_admin_menu_class' ) );
17
-        add_action( 'admin_menu', array( $this, 'admin_menu' ), 10 );
18
-        add_action( 'admin_menu', array( $this, 'add_customers_menu' ), 18 );
19
-        add_action( 'admin_menu', array( $this, 'add_subscriptions_menu' ), 40 );
20
-        add_action( 'admin_menu', array( $this, 'add_addons_menu' ), 100 );
21
-        add_action( 'admin_menu', array( $this, 'add_settings_menu' ), 60 );
22
-        add_action( 'admin_menu', array( $this, 'add_anonymization_logs_menu' ), 40 );
23
-        add_action( 'admin_menu', array( $this, 'remove_admin_submenus' ), 10 );
24
-        add_action( 'admin_head-nav-menus.php', array( $this, 'add_nav_menu_meta_boxes' ) );
16
+        add_action('admin_head', array($this, 'set_admin_menu_class'));
17
+        add_action('admin_menu', array($this, 'admin_menu'), 10);
18
+        add_action('admin_menu', array($this, 'add_customers_menu'), 18);
19
+        add_action('admin_menu', array($this, 'add_subscriptions_menu'), 40);
20
+        add_action('admin_menu', array($this, 'add_addons_menu'), 100);
21
+        add_action('admin_menu', array($this, 'add_settings_menu'), 60);
22
+        add_action('admin_menu', array($this, 'add_anonymization_logs_menu'), 40);
23
+        add_action('admin_menu', array($this, 'remove_admin_submenus'), 10);
24
+        add_action('admin_head-nav-menus.php', array($this, 'add_nav_menu_meta_boxes'));
25 25
     }
26 26
 
27 27
     /**
@@ -30,7 +30,7 @@  discard block
 block discarded – undo
30 30
 	public function set_admin_menu_class() {
31 31
 		global $current_screen, $parent_file, $submenu_file;
32 32
 
33
-        if ( ! empty( $current_screen->id ) && in_array( $current_screen->id, array( 'wpi_discount', 'wpi_payment_form', 'wpi_invoice' ) ) ) {
33
+        if (!empty($current_screen->id) && in_array($current_screen->id, array('wpi_discount', 'wpi_payment_form', 'wpi_invoice'))) {
34 34
 			$parent_file = 'wpinv';
35 35
 			$submenu_file = 'edit.php?post_type=' . $current_screen->id;
36 36
         }
@@ -39,14 +39,14 @@  discard block
 block discarded – undo
39 39
 
40 40
     public function admin_menu() {
41 41
 
42
-        $capability = apply_filters( 'invoicing_capability', wpinv_get_capability() );
42
+        $capability = apply_filters('invoicing_capability', wpinv_get_capability());
43 43
         add_menu_page(
44
-            __( 'GetPaid', 'invoicing' ),
45
-            __( 'GetPaid', 'invoicing' ),
44
+            __('GetPaid', 'invoicing'),
45
+            __('GetPaid', 'invoicing'),
46 46
             $capability,
47 47
             'wpinv',
48 48
             null,
49
-            'data:image/svg+xml;base64,' . base64_encode( file_get_contents( WPINV_PLUGIN_DIR . 'assets/images/GetPaid.svg' ) ),
49
+            'data:image/svg+xml;base64,' . base64_encode(file_get_contents(WPINV_PLUGIN_DIR . 'assets/images/GetPaid.svg')),
50 50
             '54.123460'
51 51
         );
52 52
 
@@ -58,11 +58,11 @@  discard block
 block discarded – undo
58 58
     public function add_customers_menu() {
59 59
         add_submenu_page(
60 60
             'wpinv',
61
-            __( 'Customers', 'invoicing' ),
62
-            __( 'Customers', 'invoicing' ),
61
+            __('Customers', 'invoicing'),
62
+            __('Customers', 'invoicing'),
63 63
             wpinv_get_capability(),
64 64
             'wpinv-customers',
65
-            array( $this, 'customers_page' )
65
+            array($this, 'customers_page')
66 66
         );
67 67
     }
68 68
 
@@ -72,8 +72,8 @@  discard block
 block discarded – undo
72 72
     public function add_subscriptions_menu() {
73 73
         add_submenu_page(
74 74
             'wpinv',
75
-            __( 'Subscriptions', 'invoicing' ),
76
-            __( 'Subscriptions', 'invoicing' ),
75
+            __('Subscriptions', 'invoicing'),
76
+            __('Subscriptions', 'invoicing'),
77 77
             wpinv_get_capability(),
78 78
             'wpinv-subscriptions',
79 79
             'wpinv_subscriptions_page'
@@ -95,13 +95,13 @@  discard block
 block discarded – undo
95 95
                     width: 120px;
96 96
                 }
97 97
             </style>
98
-            <h1><?php echo esc_html( __( 'Customers', 'invoicing' ) ); ?>&nbsp;<a href="<?php echo esc_url( wp_nonce_url( add_query_arg( 'getpaid-admin-action', 'download_customers' ), 'getpaid-nonce', 'getpaid-nonce' ) ); ?>" class="page-title-action"><?php esc_html_e( 'Export', 'invoicing' ); ?></a></h1>
99
-            <form method="get" style="overflow: auto; width: 100%" action=<?php echo esc_url( add_query_arg( array() ) ); ?>>
98
+            <h1><?php echo esc_html(__('Customers', 'invoicing')); ?>&nbsp;<a href="<?php echo esc_url(wp_nonce_url(add_query_arg('getpaid-admin-action', 'download_customers'), 'getpaid-nonce', 'getpaid-nonce')); ?>" class="page-title-action"><?php esc_html_e('Export', 'invoicing'); ?></a></h1>
99
+            <form method="get" style="overflow: auto; width: 100%" action=<?php echo esc_url(add_query_arg(array())); ?>>
100 100
                 <input type="hidden" name="page" value="wpinv-customers" />
101 101
                 <?php
102 102
                     $table = new WPInv_Customers_Table();
103 103
                     $table->prepare_items();
104
-                    $table->search_box( __( 'Search Customers', 'invoicing' ), 'search-customers' );
104
+                    $table->search_box(__('Search Customers', 'invoicing'), 'search-customers');
105 105
                     $table->display();
106 106
                 ?>
107 107
             </form>
@@ -115,11 +115,11 @@  discard block
 block discarded – undo
115 115
     public function add_settings_menu() {
116 116
         add_submenu_page(
117 117
             'wpinv',
118
-            __( 'Invoice Settings', 'invoicing' ),
119
-            __( 'Settings', 'invoicing' ),
120
-            apply_filters( 'invoicing_capability', wpinv_get_capability() ),
118
+            __('Invoice Settings', 'invoicing'),
119
+            __('Settings', 'invoicing'),
120
+            apply_filters('invoicing_capability', wpinv_get_capability()),
121 121
             'wpinv-settings',
122
-            array( $this, 'options_page' )
122
+            array($this, 'options_page')
123 123
         );
124 124
     }
125 125
 
@@ -131,26 +131,26 @@  discard block
 block discarded – undo
131 131
     public function add_anonymization_logs_menu() {
132 132
         $anonymization_logs_page = new GetPaid_Anonymization_Logs();
133 133
         add_management_page(
134
-            __( 'Anonymization Logs', 'invoicing' ),
135
-            __( 'Anonymization Logs', 'invoicing' ),
134
+            __('Anonymization Logs', 'invoicing'),
135
+            __('Anonymization Logs', 'invoicing'),
136 136
             'manage_options',
137 137
             'wpinv-anonymization-logs',
138
-            array( $anonymization_logs_page, 'display_logs' )
138
+            array($anonymization_logs_page, 'display_logs')
139 139
         );
140 140
     }
141 141
 
142 142
     public function add_addons_menu() {
143
-        if ( ! apply_filters( 'wpi_show_addons_page', true ) ) {
143
+        if (!apply_filters('wpi_show_addons_page', true)) {
144 144
             return;
145 145
         }
146 146
 
147 147
         add_submenu_page(
148 148
             'wpinv',
149
-            __( 'Invoicing extensions', 'invoicing' ),
150
-            __( 'Extensions', 'invoicing' ),
149
+            __('Invoicing extensions', 'invoicing'),
150
+            __('Extensions', 'invoicing'),
151 151
             'manage_options',
152 152
             'wpi-addons',
153
-            array( $this, 'addons_page' )
153
+            array($this, 'addons_page')
154 154
         );
155 155
     }
156 156
 
@@ -161,29 +161,29 @@  discard block
 block discarded – undo
161 161
 
162 162
     function options_page() {
163 163
 
164
-        if ( ! wpinv_current_user_can_manage_invoicing() ) {
164
+        if (!wpinv_current_user_can_manage_invoicing()) {
165 165
             return;
166 166
         }
167 167
 
168 168
         $settings_tabs = wpinv_get_settings_tabs();
169
-        $settings_tabs = empty( $settings_tabs ) ? array() : $settings_tabs;
170
-        $active_tab    = isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $settings_tabs ) ? sanitize_text_field( $_GET['tab'] ) : 'general';
171
-        $sections      = wpinv_get_settings_tab_sections( $active_tab );
169
+        $settings_tabs = empty($settings_tabs) ? array() : $settings_tabs;
170
+        $active_tab    = isset($_GET['tab']) && array_key_exists($_GET['tab'], $settings_tabs) ? sanitize_text_field($_GET['tab']) : 'general';
171
+        $sections      = wpinv_get_settings_tab_sections($active_tab);
172 172
         $key           = 'main';
173 173
 
174
-        if ( is_array( $sections ) ) {
175
-            $key = key( $sections );
174
+        if (is_array($sections)) {
175
+            $key = key($sections);
176 176
         }
177 177
 
178 178
         add_thickbox();
179 179
 
180
-        $registered_sections = wpinv_get_settings_tab_sections( $active_tab );
181
-        $section             = isset( $_GET['section'] ) && ! empty( $registered_sections ) && array_key_exists( $_GET['section'], $registered_sections ) ? sanitize_text_field( $_GET['section'] ) : $key;
180
+        $registered_sections = wpinv_get_settings_tab_sections($active_tab);
181
+        $section             = isset($_GET['section']) && !empty($registered_sections) && array_key_exists($_GET['section'], $registered_sections) ? sanitize_text_field($_GET['section']) : $key;
182 182
         ?>
183 183
         <div class="wrap">
184 184
             <h1 class="nav-tab-wrapper">
185 185
                 <?php
186
-                foreach ( wpinv_get_settings_tabs() as $tab_id => $tab_name ) {
186
+                foreach (wpinv_get_settings_tabs() as $tab_id => $tab_name) {
187 187
                     $tab_url = add_query_arg(
188 188
                         array(
189 189
 							'settings-updated' => false,
@@ -193,23 +193,23 @@  discard block
 block discarded – undo
193 193
                     );
194 194
 
195 195
                     // Remove the section from the tabs so we always end up at the main section
196
-                    $tab_url = remove_query_arg( 'section', $tab_url );
197
-                    $tab_url = remove_query_arg( 'wpi_sub', $tab_url );
196
+                    $tab_url = remove_query_arg('section', $tab_url);
197
+                    $tab_url = remove_query_arg('wpi_sub', $tab_url);
198 198
 
199 199
                     $active = $active_tab == $tab_id ? ' nav-tab-active' : '';
200 200
 
201
-                    echo '<a href="' . esc_url( $tab_url ) . '" title="' . esc_attr( $tab_name ) . '" class="nav-tab ' . esc_attr( $active ) . '">';
202
-                    echo esc_html( $tab_name );
201
+                    echo '<a href="' . esc_url($tab_url) . '" title="' . esc_attr($tab_name) . '" class="nav-tab ' . esc_attr($active) . '">';
202
+                    echo esc_html($tab_name);
203 203
                     echo '</a>';
204 204
                 }
205 205
                 ?>
206 206
             </h1>
207 207
             <?php
208
-            $number_of_sections = count( $sections );
208
+            $number_of_sections = count($sections);
209 209
             $number = 0;
210
-            if ( $number_of_sections > 1 ) {
210
+            if ($number_of_sections > 1) {
211 211
                 echo '<div><ul class="subsubsub">';
212
-                foreach ( $sections as $section_id => $section_name ) {
212
+                foreach ($sections as $section_id => $section_name) {
213 213
                     echo '<li>';
214 214
                     $number++;
215 215
                     $tab_url = add_query_arg(
@@ -218,16 +218,16 @@  discard block
 block discarded – undo
218 218
 							'tab'              => $active_tab,
219 219
 							'section'          => $section_id,
220 220
                         ),
221
-                        admin_url( 'admin.php?page=wpinv-settings' )
221
+                        admin_url('admin.php?page=wpinv-settings')
222 222
                     );
223
-                    $tab_url = remove_query_arg( 'wpi_sub', $tab_url );
223
+                    $tab_url = remove_query_arg('wpi_sub', $tab_url);
224 224
                     $class = '';
225
-                    if ( $section == $section_id ) {
225
+                    if ($section == $section_id) {
226 226
                         $class = 'current';
227 227
                     }
228
-                    echo '<a class="' . esc_attr( $class ) . '" href="' . esc_url( $tab_url ) . '">' . esc_html( $section_name ) . '</a>';
228
+                    echo '<a class="' . esc_attr($class) . '" href="' . esc_url($tab_url) . '">' . esc_html($section_name) . '</a>';
229 229
 
230
-                    if ( $number != $number_of_sections ) {
230
+                    if ($number != $number_of_sections) {
231 231
                         echo ' | ';
232 232
                     }
233 233
                     echo '</li>';
@@ -239,20 +239,20 @@  discard block
 block discarded – undo
239 239
                 <form method="post" action="options.php">
240 240
                     <table class="form-tablex">
241 241
                         <?php
242
-                        settings_fields( 'wpinv_settings' );
242
+                        settings_fields('wpinv_settings');
243 243
 
244
-                        if ( 'main' === $section ) {
245
-                            do_action( 'wpinv_settings_tab_top', $active_tab );
244
+                        if ('main' === $section) {
245
+                            do_action('wpinv_settings_tab_top', $active_tab);
246 246
                         }
247 247
 
248
-                        do_action( 'wpinv_settings_tab_top_' . $active_tab . '_' . $section, $active_tab, $section );
249
-                        do_settings_sections( 'wpinv_settings_' . $active_tab . '_' . $section, $active_tab, $section );
250
-                        do_action( 'wpinv_settings_tab_bottom_' . $active_tab . '_' . $section, $active_tab, $section );
251
-                        do_action( 'getpaid_settings_tab_bottom', $active_tab, $section );
248
+                        do_action('wpinv_settings_tab_top_' . $active_tab . '_' . $section, $active_tab, $section);
249
+                        do_settings_sections('wpinv_settings_' . $active_tab . '_' . $section, $active_tab, $section);
250
+                        do_action('wpinv_settings_tab_bottom_' . $active_tab . '_' . $section, $active_tab, $section);
251
+                        do_action('getpaid_settings_tab_bottom', $active_tab, $section);
252 252
 
253 253
                         // For backwards compatibility
254
-                        if ( 'main' === $section ) {
255
-                            do_action( 'wpinv_settings_tab_bottom', $active_tab );
254
+                        if ('main' === $section) {
255
+                            do_action('wpinv_settings_tab_bottom', $active_tab);
256 256
                         }
257 257
                         ?>
258 258
                     </table>
@@ -264,7 +264,7 @@  discard block
 block discarded – undo
264 264
     }
265 265
 
266 266
     public function remove_admin_submenus() {
267
-        remove_submenu_page( 'edit.php?post_type=wpi_invoice', 'post-new.php?post_type=wpi_invoice' );
267
+        remove_submenu_page('edit.php?post_type=wpi_invoice', 'post-new.php?post_type=wpi_invoice');
268 268
     }
269 269
 
270 270
     /**
@@ -274,8 +274,8 @@  discard block
 block discarded – undo
274 274
 
275 275
         add_meta_box(
276 276
             'wpinv_endpoints_nav_link',
277
-            __( 'GetPaid endpoints', 'invoicing' ),
278
-            array( $this, 'nav_menu_links' ),
277
+            __('GetPaid endpoints', 'invoicing'),
278
+            array($this, 'nav_menu_links'),
279 279
             'nav-menus',
280 280
             'side',
281 281
             'low'
@@ -290,12 +290,12 @@  discard block
 block discarded – undo
290 290
         $endpoints = $this->get_menu_items();
291 291
         ?>
292 292
         <div id="invoicing-endpoints" class="posttypediv">
293
-            <?php if ( ! empty( $endpoints['pages'] ) ) : ?>
293
+            <?php if (!empty($endpoints['pages'])) : ?>
294 294
                 <div id="tabs-panel-invoicing-endpoints" class="tabs-panel tabs-panel-active">
295 295
                     <ul id="invoicing-endpoints-checklist" class="categorychecklist form-no-clear">
296 296
                         <?php
297
-                            $walker = new Walker_Nav_Menu_Checklist( array() );
298
-                            echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $endpoints['pages'] ), 0, (object) array( 'walker' => $walker ) );
297
+                            $walker = new Walker_Nav_Menu_Checklist(array());
298
+                            echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $endpoints['pages']), 0, (object) array('walker' => $walker));
299 299
                         ?>
300 300
                     </ul>
301 301
                 </div>
@@ -304,11 +304,11 @@  discard block
 block discarded – undo
304 304
             <p class="button-controls wp-clearfix" data-items-type="invoicing-endpoints">
305 305
                 <span class="list-controls hide-if-no-js">
306 306
                     <input type="checkbox" id="invoicing-endpoints-tab" class="select-all">
307
-                    <label for="invoicing-endpoints-tab"><?php esc_html_e( 'Select all', 'invoicing' ); ?></label>
307
+                    <label for="invoicing-endpoints-tab"><?php esc_html_e('Select all', 'invoicing'); ?></label>
308 308
                 </span>
309 309
 
310 310
                 <span class="add-to-menu">
311
-                    <input type="submit" class="button submit-add-to-menu right" value="<?php esc_attr_e( 'Add to menu', 'invoicing' ); ?>" name="add-invoicing-endpoints-item" id="submit-invoicing-endpoints">
311
+                    <input type="submit" class="button submit-add-to-menu right" value="<?php esc_attr_e('Add to menu', 'invoicing'); ?>" name="add-invoicing-endpoints-item" id="submit-invoicing-endpoints">
312 312
                     <span class="spinner"></span>
313 313
                 </span>
314 314
             </p>
@@ -326,18 +326,18 @@  discard block
 block discarded – undo
326 326
 
327 327
         $pages = array(
328 328
             array(
329
-                'id'    => wpinv_get_option( 'invoice_history_page' ),
330
-                'label' => __( 'My Invoices', 'invoicing' ),
329
+                'id'    => wpinv_get_option('invoice_history_page'),
330
+                'label' => __('My Invoices', 'invoicing'),
331 331
             ),
332 332
             array(
333
-                'id'    => wpinv_get_option( 'invoice_subscription_page' ),
334
-                'label' => __( 'My Subscriptions', 'invoicing' ),
333
+                'id'    => wpinv_get_option('invoice_subscription_page'),
334
+                'label' => __('My Subscriptions', 'invoicing'),
335 335
             ),
336 336
         );
337 337
 
338
-        foreach ( apply_filters( 'getpaid_menu_pages', $pages ) as $page ) {
338
+        foreach (apply_filters('getpaid_menu_pages', $pages) as $page) {
339 339
 
340
-            if ( (int) $page['id'] > 0 ) {
340
+            if ((int) $page['id'] > 0) {
341 341
 
342 342
                 $item                   = new stdClass();
343 343
                 $item->object_id        = (int) $page['id'];
@@ -345,11 +345,11 @@  discard block
 block discarded – undo
345 345
                 $item->object           = 'page';
346 346
                 $item->menu_item_parent = 0;
347 347
                 $item->type             = 'post_type';
348
-                $item->title            = esc_html( $page['label'] );
349
-                $item->url              = get_permalink( (int) $page['id'] );
348
+                $item->title            = esc_html($page['label']);
349
+                $item->url              = get_permalink((int) $page['id']);
350 350
                 $item->target           = '';
351 351
                 $item->attr_title       = '';
352
-                $item->classes          = array( 'wpinv-menu-item' );
352
+                $item->classes          = array('wpinv-menu-item');
353 353
                 $item->xfn              = '';
354 354
 
355 355
                 $items['pages'][]       = $item;
@@ -357,7 +357,7 @@  discard block
 block discarded – undo
357 357
             }
358 358
 }
359 359
 
360
-        return apply_filters( 'wpinv_menu_items', $items );
360
+        return apply_filters('wpinv_menu_items', $items);
361 361
     }
362 362
 
363 363
 }
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-controller.php 2 patches
Indentation   +539 added lines, -539 removed lines patch added patch discarded remove patch
@@ -21,569 +21,569 @@
 block discarded – undo
21 21
  */
22 22
 class GetPaid_REST_Controller extends WP_REST_Controller {
23 23
 
24
-	/**
24
+    /**
25 25
      * The namespaces of this controller's route.
26 26
      *
27 27
      * @since 1.0.19
28 28
      * @var array
29 29
      */
30
-	protected $namespaces;
30
+    protected $namespaces;
31 31
 
32
-	/**
32
+    /**
33 33
      * The official namespace of this controller's route.
34 34
      *
35 35
      * @since 1.0.19
36 36
      * @var string
37 37
      */
38
-	protected $namespace = 'getpaid/v1';
38
+    protected $namespace = 'getpaid/v1';
39 39
 
40
-	/**
40
+    /**
41 41
      * Cached results of get_item_schema.
42 42
      *
43 43
      * @since 1.0.19
44 44
      * @var array
45 45
      */
46
-	protected $schema;
46
+    protected $schema;
47 47
 
48 48
     /**
49
-	 * Constructor.
50
-	 *
51
-	 * @since 1.0.19
52
-	 *
53
-	 */
54
-	public function __construct() {
55
-
56
-		// Offer several namespaces for backwards compatibility.
57
-		$this->namespaces = apply_filters(
58
-			'getpaid_rest_api_namespaces',
59
-			array(
60
-				'getpaid/v1',
61
-				'invoicing/v1',
62
-				'wpi/v1',
63
-			)
64
-		);
65
-
66
-		// Register REST routes.
49
+     * Constructor.
50
+     *
51
+     * @since 1.0.19
52
+     *
53
+     */
54
+    public function __construct() {
55
+
56
+        // Offer several namespaces for backwards compatibility.
57
+        $this->namespaces = apply_filters(
58
+            'getpaid_rest_api_namespaces',
59
+            array(
60
+                'getpaid/v1',
61
+                'invoicing/v1',
62
+                'wpi/v1',
63
+            )
64
+        );
65
+
66
+        // Register REST routes.
67 67
         add_action( 'rest_api_init', array( $this, 'register_routes' ) );
68 68
 
69
-	}
70
-
71
-	/**
72
-	 * Registers routes for each namespace.
73
-	 *
74
-	 * @since 1.0.19
75
-	 *
76
-	 */
77
-	public function register_routes() {
78
-
79
-		foreach ( $this->namespaces as $namespace ) {
80
-			$this->register_namespace_routes( $namespace );
81
-		}
82
-
83
-	}
84
-
85
-	/**
86
-	 * Registers routes for a namespace.
87
-	 *
88
-	 * @since 1.0.19
89
-	 *
90
-	 * @param string $namespace
91
-	 */
92
-	public function register_namespace_routes( /** @scrutinizer ignore-unused */ $namespace ) {
93
-
94
-		getpaid_doing_it_wrong(
95
-			__CLASS__ . '::' . __METHOD__,
96
-			/* translators: %s: register_namespace_routes() */
97
-			sprintf( __( "Method '%s' must be overridden." ), __METHOD__ ),
98
-			'1.0.19'
99
-		);
100
-
101
-	}
102
-
103
-	/**
104
-	 * Get normalized rest base.
105
-	 *
106
-	 * @return string
107
-	 */
108
-	protected function get_normalized_rest_base() {
109
-		return preg_replace( '/\(.*\)\//i', '', $this->rest_base );
110
-	}
111
-
112
-	/**
113
-	 * Fill batches.
114
-	 *
115
-	 * @param array array of request items.
116
-	 * @return array
117
-	 */
118
-	protected function fill_batch_keys( $items ) {
119
-
120
-		$items['create'] = empty( $items['create'] ) ? array() : $items['create'];
121
-		$items['update'] = empty( $items['update'] ) ? array() : $items['update'];
122
-		$items['delete'] = empty( $items['delete'] ) ? array() : wp_parse_id_list( $items['delete'] );
123
-		return $items;
124
-
125
-	}
126
-
127
-	/**
128
-	 * Check batch limit.
129
-	 *
130
-	 * @param array $items Request items.
131
-	 * @return bool|WP_Error
132
-	 */
133
-	protected function check_batch_limit( $items ) {
134
-		$limit = apply_filters( 'getpaid_rest_batch_items_limit', 100, $this->get_normalized_rest_base() );
135
-		$total = count( $items['create'] ) + count( $items['update'] ) + count( $items['delete'] );
136
-
137
-		if ( $total > $limit ) {
138
-			/* translators: %s: items limit */
139
-			return new WP_Error( 'getpaid_rest_request_entity_too_large', sprintf( __( 'Unable to accept more than %s items for this request.', 'invoicing' ), $limit ), array( 'status' => 413 ) );
140
-		}
141
-
142
-		return true;
143
-	}
144
-
145
-	/**
146
-	 * Bulk create items.
147
-	 *
148
-	 * @param array $items Array of items to create.
149
-	 * @param WP_REST_Request $request Full details about the request.
150
-	 * @param WP_REST_Server $wp_rest_server
151
-	 * @return array()
152
-	 */
153
-	protected function batch_create_items( $items, $request, $wp_rest_server ) {
154
-
155
-		$query  = $request->get_query_params();
156
-		$create = array();
157
-
158
-		foreach ( $items as $item ) {
159
-			$_item = new WP_REST_Request( 'POST' );
160
-
161
-			// Default parameters.
162
-			$defaults = array();
163
-			$schema   = $this->get_public_item_schema();
164
-			foreach ( $schema['properties'] as $arg => $options ) {
165
-				if ( isset( $options['default'] ) ) {
166
-					$defaults[ $arg ] = $options['default'];
167
-				}
168
-			}
169
-			$_item->set_default_params( $defaults );
170
-
171
-			// Set request parameters.
172
-			$_item->set_body_params( $item );
173
-
174
-			// Set query (GET) parameters.
175
-			$_item->set_query_params( $query );
176
-
177
-			// Create the item.
178
-			$_response = $this->create_item( $_item );
179
-
180
-			// If an error occured...
181
-			if ( is_wp_error( $_response ) ) {
182
-
183
-				$create[]   = array(
184
-					'id'    => 0,
185
-					'error' => array(
186
-						'code'    => $_response->get_error_code(),
187
-						'message' => $_response->get_error_message(),
188
-						'data'    => $_response->get_error_data(),
189
-					),
190
-				);
191
-
192
-				continue;
193
-			}
194
-
195
-			$create[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
196
-
197
-		}
198
-
199
-		return $create;
69
+    }
70
+
71
+    /**
72
+     * Registers routes for each namespace.
73
+     *
74
+     * @since 1.0.19
75
+     *
76
+     */
77
+    public function register_routes() {
78
+
79
+        foreach ( $this->namespaces as $namespace ) {
80
+            $this->register_namespace_routes( $namespace );
81
+        }
82
+
83
+    }
84
+
85
+    /**
86
+     * Registers routes for a namespace.
87
+     *
88
+     * @since 1.0.19
89
+     *
90
+     * @param string $namespace
91
+     */
92
+    public function register_namespace_routes( /** @scrutinizer ignore-unused */ $namespace ) {
93
+
94
+        getpaid_doing_it_wrong(
95
+            __CLASS__ . '::' . __METHOD__,
96
+            /* translators: %s: register_namespace_routes() */
97
+            sprintf( __( "Method '%s' must be overridden." ), __METHOD__ ),
98
+            '1.0.19'
99
+        );
100
+
101
+    }
102
+
103
+    /**
104
+     * Get normalized rest base.
105
+     *
106
+     * @return string
107
+     */
108
+    protected function get_normalized_rest_base() {
109
+        return preg_replace( '/\(.*\)\//i', '', $this->rest_base );
110
+    }
111
+
112
+    /**
113
+     * Fill batches.
114
+     *
115
+     * @param array array of request items.
116
+     * @return array
117
+     */
118
+    protected function fill_batch_keys( $items ) {
119
+
120
+        $items['create'] = empty( $items['create'] ) ? array() : $items['create'];
121
+        $items['update'] = empty( $items['update'] ) ? array() : $items['update'];
122
+        $items['delete'] = empty( $items['delete'] ) ? array() : wp_parse_id_list( $items['delete'] );
123
+        return $items;
124
+
125
+    }
126
+
127
+    /**
128
+     * Check batch limit.
129
+     *
130
+     * @param array $items Request items.
131
+     * @return bool|WP_Error
132
+     */
133
+    protected function check_batch_limit( $items ) {
134
+        $limit = apply_filters( 'getpaid_rest_batch_items_limit', 100, $this->get_normalized_rest_base() );
135
+        $total = count( $items['create'] ) + count( $items['update'] ) + count( $items['delete'] );
136
+
137
+        if ( $total > $limit ) {
138
+            /* translators: %s: items limit */
139
+            return new WP_Error( 'getpaid_rest_request_entity_too_large', sprintf( __( 'Unable to accept more than %s items for this request.', 'invoicing' ), $limit ), array( 'status' => 413 ) );
140
+        }
141
+
142
+        return true;
143
+    }
144
+
145
+    /**
146
+     * Bulk create items.
147
+     *
148
+     * @param array $items Array of items to create.
149
+     * @param WP_REST_Request $request Full details about the request.
150
+     * @param WP_REST_Server $wp_rest_server
151
+     * @return array()
152
+     */
153
+    protected function batch_create_items( $items, $request, $wp_rest_server ) {
154
+
155
+        $query  = $request->get_query_params();
156
+        $create = array();
157
+
158
+        foreach ( $items as $item ) {
159
+            $_item = new WP_REST_Request( 'POST' );
160
+
161
+            // Default parameters.
162
+            $defaults = array();
163
+            $schema   = $this->get_public_item_schema();
164
+            foreach ( $schema['properties'] as $arg => $options ) {
165
+                if ( isset( $options['default'] ) ) {
166
+                    $defaults[ $arg ] = $options['default'];
167
+                }
168
+            }
169
+            $_item->set_default_params( $defaults );
170
+
171
+            // Set request parameters.
172
+            $_item->set_body_params( $item );
173
+
174
+            // Set query (GET) parameters.
175
+            $_item->set_query_params( $query );
176
+
177
+            // Create the item.
178
+            $_response = $this->create_item( $_item );
179
+
180
+            // If an error occured...
181
+            if ( is_wp_error( $_response ) ) {
182
+
183
+                $create[]   = array(
184
+                    'id'    => 0,
185
+                    'error' => array(
186
+                        'code'    => $_response->get_error_code(),
187
+                        'message' => $_response->get_error_message(),
188
+                        'data'    => $_response->get_error_data(),
189
+                    ),
190
+                );
191
+
192
+                continue;
193
+            }
194
+
195
+            $create[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
196
+
197
+        }
198
+
199
+        return $create;
200
+
201
+    }
202
+
203
+    /**
204
+     * Bulk update items.
205
+     *
206
+     * @param array $items Array of items to update.
207
+     * @param WP_REST_Request $request Full details about the request.
208
+     * @param WP_REST_Server $wp_rest_server
209
+     * @return array()
210
+     */
211
+    protected function batch_update_items( $items, $request, $wp_rest_server ) {
212
+
213
+        $query  = $request->get_query_params();
214
+        $update = array();
215
+
216
+        foreach ( $items as $item ) {
217
+
218
+            // Create a dummy request.
219
+            $_item = new WP_REST_Request( 'PUT' );
220
+
221
+            // Add body params.
222
+            $_item->set_body_params( $item );
223
+
224
+            // Set query (GET) parameters.
225
+            $_item->set_query_params( $query );
226
+
227
+            // Update the item.
228
+            $_response = $this->update_item( $_item );
229
+
230
+            // If an error occured...
231
+            if ( is_wp_error( $_response ) ) {
232
+
233
+                $update[] = array(
234
+                    'id'    => $item['id'],
235
+                    'error' => array(
236
+                        'code'    => $_response->get_error_code(),
237
+                        'message' => $_response->get_error_message(),
238
+                        'data'    => $_response->get_error_data(),
239
+                    ),
240
+                );
241
+
242
+                continue;
243
+
244
+            }
245
+
246
+            $update[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
247
+
248
+        }
249
+
250
+        return $update;
251
+
252
+    }
253
+
254
+    /**
255
+     * Bulk delete items.
256
+     *
257
+     * @param array $items Array of items to delete.
258
+     * @param WP_REST_Server $wp_rest_server
259
+     * @return array()
260
+     */
261
+    protected function batch_delete_items( $items, $wp_rest_server ) {
262
+
263
+        $delete = array();
264
+
265
+        foreach ( array_filter( $items ) as $id ) {
266
+
267
+            // Prepare the request.
268
+            $_item = new WP_REST_Request( 'DELETE' );
269
+            $_item->set_query_params(
270
+                array(
271
+                    'id'    => $id,
272
+                    'force' => true,
273
+                )
274
+            );
275
+
276
+            // Delete the item.
277
+            $_response = $this->delete_item( $_item );
278
+
279
+            if ( is_wp_error( $_response ) ) {
280
+
281
+                $delete[] = array(
282
+                    'id'    => $id,
283
+                    'error' => array(
284
+                        'code'    => $_response->get_error_code(),
285
+                        'message' => $_response->get_error_message(),
286
+                        'data'    => $_response->get_error_data(),
287
+                    ),
288
+                );
289
+
290
+                continue;
291
+            }
200 292
 
201
-	}
202
-
203
-	/**
204
-	 * Bulk update items.
205
-	 *
206
-	 * @param array $items Array of items to update.
207
-	 * @param WP_REST_Request $request Full details about the request.
208
-	 * @param WP_REST_Server $wp_rest_server
209
-	 * @return array()
210
-	 */
211
-	protected function batch_update_items( $items, $request, $wp_rest_server ) {
212
-
213
-		$query  = $request->get_query_params();
214
-		$update = array();
215
-
216
-		foreach ( $items as $item ) {
217
-
218
-			// Create a dummy request.
219
-			$_item = new WP_REST_Request( 'PUT' );
220
-
221
-			// Add body params.
222
-			$_item->set_body_params( $item );
223
-
224
-			// Set query (GET) parameters.
225
-			$_item->set_query_params( $query );
226
-
227
-			// Update the item.
228
-			$_response = $this->update_item( $_item );
229
-
230
-			// If an error occured...
231
-			if ( is_wp_error( $_response ) ) {
232
-
233
-				$update[] = array(
234
-					'id'    => $item['id'],
235
-					'error' => array(
236
-						'code'    => $_response->get_error_code(),
237
-						'message' => $_response->get_error_message(),
238
-						'data'    => $_response->get_error_data(),
239
-					),
240
-				);
241
-
242
-				continue;
243
-
244
-			}
245
-
246
-			$update[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
247
-
248
-		}
249
-
250
-		return $update;
251
-
252
-	}
293
+            $delete[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
253 294
 
254
-	/**
255
-	 * Bulk delete items.
256
-	 *
257
-	 * @param array $items Array of items to delete.
258
-	 * @param WP_REST_Server $wp_rest_server
259
-	 * @return array()
260
-	 */
261
-	protected function batch_delete_items( $items, $wp_rest_server ) {
262
-
263
-		$delete = array();
264
-
265
-		foreach ( array_filter( $items ) as $id ) {
266
-
267
-			// Prepare the request.
268
-			$_item = new WP_REST_Request( 'DELETE' );
269
-			$_item->set_query_params(
270
-				array(
271
-					'id'    => $id,
272
-					'force' => true,
273
-				)
274
-			);
275
-
276
-			// Delete the item.
277
-			$_response = $this->delete_item( $_item );
278
-
279
-			if ( is_wp_error( $_response ) ) {
280
-
281
-				$delete[] = array(
282
-					'id'    => $id,
283
-					'error' => array(
284
-						'code'    => $_response->get_error_code(),
285
-						'message' => $_response->get_error_message(),
286
-						'data'    => $_response->get_error_data(),
287
-					),
288
-				);
289
-
290
-				continue;
291
-			}
292
-
293
-			$delete[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
294
-
295
-		}
296
-
297
-		return $delete;
298
-
299
-	}
300
-
301
-	/**
302
-	 * Bulk create, update and delete items.
303
-	 *
304
-	 * @param WP_REST_Request $request Full details about the request.
305
-	 * @return WP_Error|array.
306
-	 */
307
-	public function batch_items( $request ) {
308
-		global $wp_rest_server;
309
-
310
-		// Prepare the batch items.
311
-		$items = $this->fill_batch_keys( array_filter( $request->get_params() ) );
312
-
313
-		// Ensure that the batch has not exceeded the limit to prevent abuse.
314
-		$limit = $this->check_batch_limit( $items );
315
-		if ( is_wp_error( $limit ) ) {
316
-			return $limit;
317
-		}
318
-
319
-		// Process the items.
320
-		return array(
321
-			'create' => $this->batch_create_items( $items['create'], $request, $wp_rest_server ),
322
-			'update' => $this->batch_update_items( $items['update'], $request, $wp_rest_server ),
323
-			'delete' => $this->batch_delete_items( $items['delete'], $wp_rest_server ),
324
-		);
325
-
326
-	}
327
-
328
-	/**
329
-	 * Add meta query.
330
-	 *
331
-	 * @since 1.0.19
332
-	 * @param array $args       Query args.
333
-	 * @param array $meta_query Meta query.
334
-	 * @return array
335
-	 */
336
-	protected function add_meta_query( $args, $meta_query ) {
337
-		if ( empty( $args['meta_query'] ) ) {
338
-			$args['meta_query'] = array();
339
-		}
340
-
341
-		$args['meta_query'][] = $meta_query;
342
-
343
-		return $args['meta_query'];
344
-	}
345
-
346
-	/**
347
-	 * Get the batch schema, conforming to JSON Schema.
348
-	 *
349
-	 * @return array
350
-	 */
351
-	public function get_public_batch_schema() {
352
-
353
-		return array(
354
-			'$schema'    => 'http://json-schema.org/draft-04/schema#',
355
-			'title'      => 'batch',
356
-			'type'       => 'object',
357
-			'properties' => array(
358
-				'create' => array(
359
-					'description' => __( 'List of created resources.', 'invoicing' ),
360
-					'type'        => 'array',
361
-					'context'     => array( 'view', 'edit' ),
362
-					'items'       => array(
363
-						'type' => 'object',
364
-					),
365
-				),
366
-				'update' => array(
367
-					'description' => __( 'List of updated resources.', 'invoicing' ),
368
-					'type'        => 'array',
369
-					'context'     => array( 'view', 'edit' ),
370
-					'items'       => array(
371
-						'type' => 'object',
372
-					),
373
-				),
374
-				'delete' => array(
375
-					'description' => __( 'List of deleted resources.', 'invoicing' ),
376
-					'type'        => 'array',
377
-					'context'     => array( 'view', 'edit' ),
378
-					'items'       => array(
379
-						'type' => 'integer',
380
-					),
381
-				),
382
-			),
383
-		);
384
-
385
-	}
386
-
387
-	/**
388
-	 * Returns the value of schema['properties']
389
-	 *
390
-	 * i.e Schema fields.
391
-	 *
392
-	 * @since 1.0.19
393
-	 * @return array
394
-	 */
395
-	protected function get_schema_properties() {
396
-
397
-		$schema     = $this->get_item_schema();
398
-		$properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
399
-
400
-		// For back-compat, include any field with an empty schema
401
-		// because it won't be present in $this->get_item_schema().
402
-		foreach ( $this->get_additional_fields() as $field_name => $field_options ) {
403
-			if ( is_null( $field_options['schema'] ) ) {
404
-				$properties[ $field_name ] = $field_options;
405
-			}
406
-		}
407
-
408
-		return $properties;
409
-	}
410
-
411
-	/**
412
-	 * Filters fields by context.
413
-	 *
414
-	 * @param array $fields Array of fields
415
-	 * @param string|null context view, edit or embed
416
-	 * @since 1.0.19
417
-	 * @return array
418
-	 */
419
-	protected function filter_response_fields_by_context( $fields, $context ) {
420
-
421
-		if ( empty( $context ) ) {
422
-			return $fields;
423
-		}
424
-
425
-		foreach ( $fields as $name => $options ) {
426
-			if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
427
-				unset( $fields[ $name ] );
428
-			}
429
-		}
430
-
431
-		return $fields;
432
-
433
-	}
434
-
435
-	/**
436
-	 * Filters fields by an array of requested fields.
437
-	 *
438
-	 * @param array $fields Array of available fields
439
-	 * @param array $requested array of requested fields.
440
-	 * @since 1.0.19
441
-	 * @return array
442
-	 */
443
-	protected function filter_response_fields_by_array( $fields, $requested ) {
444
-
445
-		// Trim off any whitespace from the list array.
446
-		$requested = array_map( 'trim', $requested );
447
-
448
-		// Always persist 'id', because it can be needed for add_additional_fields_to_object().
449
-		if ( in_array( 'id', $fields, true ) ) {
450
-			$requested[] = 'id';
451
-		}
452
-
453
-		// Get rid of duplicate fields.
454
-		$requested = array_unique( $requested );
455
-
456
-		// Return the list of all included fields which are available.
457
-		return array_reduce(
458
-			$requested,
459
-			function( $response_fields, $field ) use ( $fields ) {
460
-
461
-				if ( in_array( $field, $fields, true ) ) {
462
-					$response_fields[] = $field;
463
-					return $response_fields;
464
-				}
465
-
466
-				// Check for nested fields if $field is not a direct match.
467
-				$nested_fields = explode( '.', $field );
468
-
469
-				// A nested field is included so long as its top-level property is
470
-				// present in the schema.
471
-				if ( in_array( $nested_fields[0], $fields, true ) ) {
472
-					$response_fields[] = $field;
473
-				}
474
-
475
-				return $response_fields;
476
-			},
477
-			array()
478
-		);
479
-
480
-	}
481
-
482
-	/**
483
-	 * Gets an array of fields to be included on the response.
484
-	 *
485
-	 * Included fields are based on item schema and `_fields=` request argument.
486
-	 * Copied from WordPress 5.3 to support old versions.
487
-	 *
488
-	 * @since 1.0.19
489
-	 * @param WP_REST_Request $request Full details about the request.
490
-	 * @return array Fields to be included in the response.
491
-	 */
492
-	public function get_fields_for_response( $request ) {
493
-
494
-		// Retrieve fields in the schema.
495
-		$properties = $this->get_schema_properties();
496
-
497
-		// Exclude fields that specify a different context than the request context.
498
-		$properties = $this->filter_response_fields_by_context( $properties, $request['context'] );
499
-
500
-		// We only need the field keys.
501
-		$fields = array_keys( $properties );
502
-
503
-		// Is the user filtering the response fields??
504
-		if ( empty( $request['_fields'] ) ) {
505
-			return $fields;
506
-		}
507
-
508
-		return $this->filter_response_fields_by_array( $fields, wpinv_parse_list( $request['_fields'] ) );
509
-
510
-	}
511
-
512
-	/**
513
-	 * Limits an object to the requested fields.
514
-	 *
515
-	 * Included fields are based on the `_fields` request argument.
516
-	 *
517
-	 * @since 1.0.19
518
-	 * @param array $data Fields to include in the response.
519
-	 * @param array $fields Requested fields.
520
-	 * @return array Fields to be included in the response.
521
-	 */
522
-	public function limit_object_to_requested_fields( $data, $fields, $prefix = '' ) {
523
-
524
-		// Is the user filtering the response fields??
525
-		if ( empty( $fields ) ) {
526
-			return $data;
527
-		}
528
-
529
-		foreach ( $data as $key => $value ) {
530
-
531
-			// Numeric arrays.
532
-			if ( is_numeric( $key ) && is_array( $value ) ) {
533
-				$data[ $key ] = $this->limit_object_to_requested_fields( $value, $fields, $prefix );
534
-				continue;
535
-			}
536
-
537
-			// Generate a new prefix.
538
-			$new_prefix = empty( $prefix ) ? $key : "$prefix.$key";
539
-
540
-			// Check if it was requested.
541
-			if ( ! empty( $key ) && ! $this->is_field_included( $new_prefix, $fields ) ) {
542
-				unset( $data[ $key ] );
543
-				continue;
544
-			}
545
-
546
-			if ( $key != 'meta_data' && is_array( $value ) ) {
547
-				$data[ $key ] = $this->limit_object_to_requested_fields( $value, $fields, $new_prefix );
548
-			}
295
+        }
296
+
297
+        return $delete;
298
+
299
+    }
300
+
301
+    /**
302
+     * Bulk create, update and delete items.
303
+     *
304
+     * @param WP_REST_Request $request Full details about the request.
305
+     * @return WP_Error|array.
306
+     */
307
+    public function batch_items( $request ) {
308
+        global $wp_rest_server;
309
+
310
+        // Prepare the batch items.
311
+        $items = $this->fill_batch_keys( array_filter( $request->get_params() ) );
312
+
313
+        // Ensure that the batch has not exceeded the limit to prevent abuse.
314
+        $limit = $this->check_batch_limit( $items );
315
+        if ( is_wp_error( $limit ) ) {
316
+            return $limit;
317
+        }
318
+
319
+        // Process the items.
320
+        return array(
321
+            'create' => $this->batch_create_items( $items['create'], $request, $wp_rest_server ),
322
+            'update' => $this->batch_update_items( $items['update'], $request, $wp_rest_server ),
323
+            'delete' => $this->batch_delete_items( $items['delete'], $wp_rest_server ),
324
+        );
325
+
326
+    }
327
+
328
+    /**
329
+     * Add meta query.
330
+     *
331
+     * @since 1.0.19
332
+     * @param array $args       Query args.
333
+     * @param array $meta_query Meta query.
334
+     * @return array
335
+     */
336
+    protected function add_meta_query( $args, $meta_query ) {
337
+        if ( empty( $args['meta_query'] ) ) {
338
+            $args['meta_query'] = array();
339
+        }
340
+
341
+        $args['meta_query'][] = $meta_query;
342
+
343
+        return $args['meta_query'];
344
+    }
345
+
346
+    /**
347
+     * Get the batch schema, conforming to JSON Schema.
348
+     *
349
+     * @return array
350
+     */
351
+    public function get_public_batch_schema() {
352
+
353
+        return array(
354
+            '$schema'    => 'http://json-schema.org/draft-04/schema#',
355
+            'title'      => 'batch',
356
+            'type'       => 'object',
357
+            'properties' => array(
358
+                'create' => array(
359
+                    'description' => __( 'List of created resources.', 'invoicing' ),
360
+                    'type'        => 'array',
361
+                    'context'     => array( 'view', 'edit' ),
362
+                    'items'       => array(
363
+                        'type' => 'object',
364
+                    ),
365
+                ),
366
+                'update' => array(
367
+                    'description' => __( 'List of updated resources.', 'invoicing' ),
368
+                    'type'        => 'array',
369
+                    'context'     => array( 'view', 'edit' ),
370
+                    'items'       => array(
371
+                        'type' => 'object',
372
+                    ),
373
+                ),
374
+                'delete' => array(
375
+                    'description' => __( 'List of deleted resources.', 'invoicing' ),
376
+                    'type'        => 'array',
377
+                    'context'     => array( 'view', 'edit' ),
378
+                    'items'       => array(
379
+                        'type' => 'integer',
380
+                    ),
381
+                ),
382
+            ),
383
+        );
384
+
385
+    }
386
+
387
+    /**
388
+     * Returns the value of schema['properties']
389
+     *
390
+     * i.e Schema fields.
391
+     *
392
+     * @since 1.0.19
393
+     * @return array
394
+     */
395
+    protected function get_schema_properties() {
396
+
397
+        $schema     = $this->get_item_schema();
398
+        $properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
399
+
400
+        // For back-compat, include any field with an empty schema
401
+        // because it won't be present in $this->get_item_schema().
402
+        foreach ( $this->get_additional_fields() as $field_name => $field_options ) {
403
+            if ( is_null( $field_options['schema'] ) ) {
404
+                $properties[ $field_name ] = $field_options;
405
+            }
406
+        }
407
+
408
+        return $properties;
409
+    }
410
+
411
+    /**
412
+     * Filters fields by context.
413
+     *
414
+     * @param array $fields Array of fields
415
+     * @param string|null context view, edit or embed
416
+     * @since 1.0.19
417
+     * @return array
418
+     */
419
+    protected function filter_response_fields_by_context( $fields, $context ) {
420
+
421
+        if ( empty( $context ) ) {
422
+            return $fields;
423
+        }
424
+
425
+        foreach ( $fields as $name => $options ) {
426
+            if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
427
+                unset( $fields[ $name ] );
428
+            }
429
+        }
430
+
431
+        return $fields;
432
+
433
+    }
434
+
435
+    /**
436
+     * Filters fields by an array of requested fields.
437
+     *
438
+     * @param array $fields Array of available fields
439
+     * @param array $requested array of requested fields.
440
+     * @since 1.0.19
441
+     * @return array
442
+     */
443
+    protected function filter_response_fields_by_array( $fields, $requested ) {
444
+
445
+        // Trim off any whitespace from the list array.
446
+        $requested = array_map( 'trim', $requested );
447
+
448
+        // Always persist 'id', because it can be needed for add_additional_fields_to_object().
449
+        if ( in_array( 'id', $fields, true ) ) {
450
+            $requested[] = 'id';
451
+        }
452
+
453
+        // Get rid of duplicate fields.
454
+        $requested = array_unique( $requested );
455
+
456
+        // Return the list of all included fields which are available.
457
+        return array_reduce(
458
+            $requested,
459
+            function( $response_fields, $field ) use ( $fields ) {
460
+
461
+                if ( in_array( $field, $fields, true ) ) {
462
+                    $response_fields[] = $field;
463
+                    return $response_fields;
464
+                }
465
+
466
+                // Check for nested fields if $field is not a direct match.
467
+                $nested_fields = explode( '.', $field );
468
+
469
+                // A nested field is included so long as its top-level property is
470
+                // present in the schema.
471
+                if ( in_array( $nested_fields[0], $fields, true ) ) {
472
+                    $response_fields[] = $field;
473
+                }
474
+
475
+                return $response_fields;
476
+            },
477
+            array()
478
+        );
479
+
480
+    }
481
+
482
+    /**
483
+     * Gets an array of fields to be included on the response.
484
+     *
485
+     * Included fields are based on item schema and `_fields=` request argument.
486
+     * Copied from WordPress 5.3 to support old versions.
487
+     *
488
+     * @since 1.0.19
489
+     * @param WP_REST_Request $request Full details about the request.
490
+     * @return array Fields to be included in the response.
491
+     */
492
+    public function get_fields_for_response( $request ) {
493
+
494
+        // Retrieve fields in the schema.
495
+        $properties = $this->get_schema_properties();
496
+
497
+        // Exclude fields that specify a different context than the request context.
498
+        $properties = $this->filter_response_fields_by_context( $properties, $request['context'] );
499
+
500
+        // We only need the field keys.
501
+        $fields = array_keys( $properties );
502
+
503
+        // Is the user filtering the response fields??
504
+        if ( empty( $request['_fields'] ) ) {
505
+            return $fields;
506
+        }
507
+
508
+        return $this->filter_response_fields_by_array( $fields, wpinv_parse_list( $request['_fields'] ) );
509
+
510
+    }
511
+
512
+    /**
513
+     * Limits an object to the requested fields.
514
+     *
515
+     * Included fields are based on the `_fields` request argument.
516
+     *
517
+     * @since 1.0.19
518
+     * @param array $data Fields to include in the response.
519
+     * @param array $fields Requested fields.
520
+     * @return array Fields to be included in the response.
521
+     */
522
+    public function limit_object_to_requested_fields( $data, $fields, $prefix = '' ) {
523
+
524
+        // Is the user filtering the response fields??
525
+        if ( empty( $fields ) ) {
526
+            return $data;
527
+        }
528
+
529
+        foreach ( $data as $key => $value ) {
530
+
531
+            // Numeric arrays.
532
+            if ( is_numeric( $key ) && is_array( $value ) ) {
533
+                $data[ $key ] = $this->limit_object_to_requested_fields( $value, $fields, $prefix );
534
+                continue;
535
+            }
536
+
537
+            // Generate a new prefix.
538
+            $new_prefix = empty( $prefix ) ? $key : "$prefix.$key";
539
+
540
+            // Check if it was requested.
541
+            if ( ! empty( $key ) && ! $this->is_field_included( $new_prefix, $fields ) ) {
542
+                unset( $data[ $key ] );
543
+                continue;
544
+            }
545
+
546
+            if ( $key != 'meta_data' && is_array( $value ) ) {
547
+                $data[ $key ] = $this->limit_object_to_requested_fields( $value, $fields, $new_prefix );
548
+            }
549 549
 }
550 550
 
551
-		return $data;
552
-	}
553
-
554
-	/**
555
-	 * Given an array of fields to include in a response, some of which may be
556
-	 * `nested.fields`, determine whether the provided field should be included
557
-	 * in the response body.
558
-	 *
559
-	 * Copied from WordPress 5.3 to support old versions.
560
-	 *
561
-	 * @since 1.0.19
562
-	 *
563
-	 * @param string $field  A field to test for inclusion in the response body.
564
-	 * @param array  $fields An array of string fields supported by the endpoint.
565
-	 * @return bool Whether to include the field or not.
566
-	 * @see rest_is_field_included()
567
-	 */
568
-	public function is_field_included( $field, $fields ) {
569
-		if ( in_array( $field, $fields, true ) ) {
570
-			return true;
571
-		}
572
-
573
-		foreach ( $fields as $accepted_field ) {
574
-			// Check to see if $field is the parent of any item in $fields.
575
-			// A field "parent" should be accepted if "parent.child" is accepted.
576
-			if ( strpos( $accepted_field, "$field." ) === 0 ) {
577
-				return true;
578
-			}
579
-			// Conversely, if "parent" is accepted, all "parent.child" fields
580
-			// should also be accepted.
581
-			if ( strpos( $field, "$accepted_field." ) === 0 ) {
582
-				return true;
583
-			}
584
-		}
585
-
586
-		return false;
587
-	}
551
+        return $data;
552
+    }
553
+
554
+    /**
555
+     * Given an array of fields to include in a response, some of which may be
556
+     * `nested.fields`, determine whether the provided field should be included
557
+     * in the response body.
558
+     *
559
+     * Copied from WordPress 5.3 to support old versions.
560
+     *
561
+     * @since 1.0.19
562
+     *
563
+     * @param string $field  A field to test for inclusion in the response body.
564
+     * @param array  $fields An array of string fields supported by the endpoint.
565
+     * @return bool Whether to include the field or not.
566
+     * @see rest_is_field_included()
567
+     */
568
+    public function is_field_included( $field, $fields ) {
569
+        if ( in_array( $field, $fields, true ) ) {
570
+            return true;
571
+        }
572
+
573
+        foreach ( $fields as $accepted_field ) {
574
+            // Check to see if $field is the parent of any item in $fields.
575
+            // A field "parent" should be accepted if "parent.child" is accepted.
576
+            if ( strpos( $accepted_field, "$field." ) === 0 ) {
577
+                return true;
578
+            }
579
+            // Conversely, if "parent" is accepted, all "parent.child" fields
580
+            // should also be accepted.
581
+            if ( strpos( $field, "$accepted_field." ) === 0 ) {
582
+                return true;
583
+            }
584
+        }
585
+
586
+        return false;
587
+    }
588 588
 
589 589
 }
Please login to merge, or discard this patch.
Spacing   +95 added lines, -95 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  * @version 1.0.19
9 9
  */
10 10
 
11
-defined( 'ABSPATH' ) || exit;
11
+defined('ABSPATH') || exit;
12 12
 
13 13
 /**
14 14
  * Core class to access posts via the REST API.
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 		);
65 65
 
66 66
 		// Register REST routes.
67
-        add_action( 'rest_api_init', array( $this, 'register_routes' ) );
67
+        add_action('rest_api_init', array($this, 'register_routes'));
68 68
 
69 69
 	}
70 70
 
@@ -76,8 +76,8 @@  discard block
 block discarded – undo
76 76
 	 */
77 77
 	public function register_routes() {
78 78
 
79
-		foreach ( $this->namespaces as $namespace ) {
80
-			$this->register_namespace_routes( $namespace );
79
+		foreach ($this->namespaces as $namespace) {
80
+			$this->register_namespace_routes($namespace);
81 81
 		}
82 82
 
83 83
 	}
@@ -89,12 +89,12 @@  discard block
 block discarded – undo
89 89
 	 *
90 90
 	 * @param string $namespace
91 91
 	 */
92
-	public function register_namespace_routes( /** @scrutinizer ignore-unused */ $namespace ) {
92
+	public function register_namespace_routes(/** @scrutinizer ignore-unused */ $namespace) {
93 93
 
94 94
 		getpaid_doing_it_wrong(
95 95
 			__CLASS__ . '::' . __METHOD__,
96 96
 			/* translators: %s: register_namespace_routes() */
97
-			sprintf( __( "Method '%s' must be overridden." ), __METHOD__ ),
97
+			sprintf(__("Method '%s' must be overridden."), __METHOD__),
98 98
 			'1.0.19'
99 99
 		);
100 100
 
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
 	 * @return string
107 107
 	 */
108 108
 	protected function get_normalized_rest_base() {
109
-		return preg_replace( '/\(.*\)\//i', '', $this->rest_base );
109
+		return preg_replace('/\(.*\)\//i', '', $this->rest_base);
110 110
 	}
111 111
 
112 112
 	/**
@@ -115,11 +115,11 @@  discard block
 block discarded – undo
115 115
 	 * @param array array of request items.
116 116
 	 * @return array
117 117
 	 */
118
-	protected function fill_batch_keys( $items ) {
118
+	protected function fill_batch_keys($items) {
119 119
 
120
-		$items['create'] = empty( $items['create'] ) ? array() : $items['create'];
121
-		$items['update'] = empty( $items['update'] ) ? array() : $items['update'];
122
-		$items['delete'] = empty( $items['delete'] ) ? array() : wp_parse_id_list( $items['delete'] );
120
+		$items['create'] = empty($items['create']) ? array() : $items['create'];
121
+		$items['update'] = empty($items['update']) ? array() : $items['update'];
122
+		$items['delete'] = empty($items['delete']) ? array() : wp_parse_id_list($items['delete']);
123 123
 		return $items;
124 124
 
125 125
 	}
@@ -130,13 +130,13 @@  discard block
 block discarded – undo
130 130
 	 * @param array $items Request items.
131 131
 	 * @return bool|WP_Error
132 132
 	 */
133
-	protected function check_batch_limit( $items ) {
134
-		$limit = apply_filters( 'getpaid_rest_batch_items_limit', 100, $this->get_normalized_rest_base() );
135
-		$total = count( $items['create'] ) + count( $items['update'] ) + count( $items['delete'] );
133
+	protected function check_batch_limit($items) {
134
+		$limit = apply_filters('getpaid_rest_batch_items_limit', 100, $this->get_normalized_rest_base());
135
+		$total = count($items['create']) + count($items['update']) + count($items['delete']);
136 136
 
137
-		if ( $total > $limit ) {
137
+		if ($total > $limit) {
138 138
 			/* translators: %s: items limit */
139
-			return new WP_Error( 'getpaid_rest_request_entity_too_large', sprintf( __( 'Unable to accept more than %s items for this request.', 'invoicing' ), $limit ), array( 'status' => 413 ) );
139
+			return new WP_Error('getpaid_rest_request_entity_too_large', sprintf(__('Unable to accept more than %s items for this request.', 'invoicing'), $limit), array('status' => 413));
140 140
 		}
141 141
 
142 142
 		return true;
@@ -150,37 +150,37 @@  discard block
 block discarded – undo
150 150
 	 * @param WP_REST_Server $wp_rest_server
151 151
 	 * @return array()
152 152
 	 */
153
-	protected function batch_create_items( $items, $request, $wp_rest_server ) {
153
+	protected function batch_create_items($items, $request, $wp_rest_server) {
154 154
 
155 155
 		$query  = $request->get_query_params();
156 156
 		$create = array();
157 157
 
158
-		foreach ( $items as $item ) {
159
-			$_item = new WP_REST_Request( 'POST' );
158
+		foreach ($items as $item) {
159
+			$_item = new WP_REST_Request('POST');
160 160
 
161 161
 			// Default parameters.
162 162
 			$defaults = array();
163 163
 			$schema   = $this->get_public_item_schema();
164
-			foreach ( $schema['properties'] as $arg => $options ) {
165
-				if ( isset( $options['default'] ) ) {
166
-					$defaults[ $arg ] = $options['default'];
164
+			foreach ($schema['properties'] as $arg => $options) {
165
+				if (isset($options['default'])) {
166
+					$defaults[$arg] = $options['default'];
167 167
 				}
168 168
 			}
169
-			$_item->set_default_params( $defaults );
169
+			$_item->set_default_params($defaults);
170 170
 
171 171
 			// Set request parameters.
172
-			$_item->set_body_params( $item );
172
+			$_item->set_body_params($item);
173 173
 
174 174
 			// Set query (GET) parameters.
175
-			$_item->set_query_params( $query );
175
+			$_item->set_query_params($query);
176 176
 
177 177
 			// Create the item.
178
-			$_response = $this->create_item( $_item );
178
+			$_response = $this->create_item($_item);
179 179
 
180 180
 			// If an error occured...
181
-			if ( is_wp_error( $_response ) ) {
181
+			if (is_wp_error($_response)) {
182 182
 
183
-				$create[]   = array(
183
+				$create[] = array(
184 184
 					'id'    => 0,
185 185
 					'error' => array(
186 186
 						'code'    => $_response->get_error_code(),
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 				continue;
193 193
 			}
194 194
 
195
-			$create[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
195
+			$create[] = $wp_rest_server->response_to_data(/** @scrutinizer ignore-type */ $_response, false);
196 196
 
197 197
 		}
198 198
 
@@ -208,27 +208,27 @@  discard block
 block discarded – undo
208 208
 	 * @param WP_REST_Server $wp_rest_server
209 209
 	 * @return array()
210 210
 	 */
211
-	protected function batch_update_items( $items, $request, $wp_rest_server ) {
211
+	protected function batch_update_items($items, $request, $wp_rest_server) {
212 212
 
213 213
 		$query  = $request->get_query_params();
214 214
 		$update = array();
215 215
 
216
-		foreach ( $items as $item ) {
216
+		foreach ($items as $item) {
217 217
 
218 218
 			// Create a dummy request.
219
-			$_item = new WP_REST_Request( 'PUT' );
219
+			$_item = new WP_REST_Request('PUT');
220 220
 
221 221
 			// Add body params.
222
-			$_item->set_body_params( $item );
222
+			$_item->set_body_params($item);
223 223
 
224 224
 			// Set query (GET) parameters.
225
-			$_item->set_query_params( $query );
225
+			$_item->set_query_params($query);
226 226
 
227 227
 			// Update the item.
228
-			$_response = $this->update_item( $_item );
228
+			$_response = $this->update_item($_item);
229 229
 
230 230
 			// If an error occured...
231
-			if ( is_wp_error( $_response ) ) {
231
+			if (is_wp_error($_response)) {
232 232
 
233 233
 				$update[] = array(
234 234
 					'id'    => $item['id'],
@@ -243,7 +243,7 @@  discard block
 block discarded – undo
243 243
 
244 244
 			}
245 245
 
246
-			$update[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
246
+			$update[] = $wp_rest_server->response_to_data(/** @scrutinizer ignore-type */ $_response, false);
247 247
 
248 248
 		}
249 249
 
@@ -258,14 +258,14 @@  discard block
 block discarded – undo
258 258
 	 * @param WP_REST_Server $wp_rest_server
259 259
 	 * @return array()
260 260
 	 */
261
-	protected function batch_delete_items( $items, $wp_rest_server ) {
261
+	protected function batch_delete_items($items, $wp_rest_server) {
262 262
 
263 263
 		$delete = array();
264 264
 
265
-		foreach ( array_filter( $items ) as $id ) {
265
+		foreach (array_filter($items) as $id) {
266 266
 
267 267
 			// Prepare the request.
268
-			$_item = new WP_REST_Request( 'DELETE' );
268
+			$_item = new WP_REST_Request('DELETE');
269 269
 			$_item->set_query_params(
270 270
 				array(
271 271
 					'id'    => $id,
@@ -274,9 +274,9 @@  discard block
 block discarded – undo
274 274
 			);
275 275
 
276 276
 			// Delete the item.
277
-			$_response = $this->delete_item( $_item );
277
+			$_response = $this->delete_item($_item);
278 278
 
279
-			if ( is_wp_error( $_response ) ) {
279
+			if (is_wp_error($_response)) {
280 280
 
281 281
 				$delete[] = array(
282 282
 					'id'    => $id,
@@ -290,7 +290,7 @@  discard block
 block discarded – undo
290 290
 				continue;
291 291
 			}
292 292
 
293
-			$delete[] = $wp_rest_server->response_to_data( /** @scrutinizer ignore-type */ $_response, false );
293
+			$delete[] = $wp_rest_server->response_to_data(/** @scrutinizer ignore-type */ $_response, false);
294 294
 
295 295
 		}
296 296
 
@@ -304,23 +304,23 @@  discard block
 block discarded – undo
304 304
 	 * @param WP_REST_Request $request Full details about the request.
305 305
 	 * @return WP_Error|array.
306 306
 	 */
307
-	public function batch_items( $request ) {
307
+	public function batch_items($request) {
308 308
 		global $wp_rest_server;
309 309
 
310 310
 		// Prepare the batch items.
311
-		$items = $this->fill_batch_keys( array_filter( $request->get_params() ) );
311
+		$items = $this->fill_batch_keys(array_filter($request->get_params()));
312 312
 
313 313
 		// Ensure that the batch has not exceeded the limit to prevent abuse.
314
-		$limit = $this->check_batch_limit( $items );
315
-		if ( is_wp_error( $limit ) ) {
314
+		$limit = $this->check_batch_limit($items);
315
+		if (is_wp_error($limit)) {
316 316
 			return $limit;
317 317
 		}
318 318
 
319 319
 		// Process the items.
320 320
 		return array(
321
-			'create' => $this->batch_create_items( $items['create'], $request, $wp_rest_server ),
322
-			'update' => $this->batch_update_items( $items['update'], $request, $wp_rest_server ),
323
-			'delete' => $this->batch_delete_items( $items['delete'], $wp_rest_server ),
321
+			'create' => $this->batch_create_items($items['create'], $request, $wp_rest_server),
322
+			'update' => $this->batch_update_items($items['update'], $request, $wp_rest_server),
323
+			'delete' => $this->batch_delete_items($items['delete'], $wp_rest_server),
324 324
 		);
325 325
 
326 326
 	}
@@ -333,8 +333,8 @@  discard block
 block discarded – undo
333 333
 	 * @param array $meta_query Meta query.
334 334
 	 * @return array
335 335
 	 */
336
-	protected function add_meta_query( $args, $meta_query ) {
337
-		if ( empty( $args['meta_query'] ) ) {
336
+	protected function add_meta_query($args, $meta_query) {
337
+		if (empty($args['meta_query'])) {
338 338
 			$args['meta_query'] = array();
339 339
 		}
340 340
 
@@ -356,25 +356,25 @@  discard block
 block discarded – undo
356 356
 			'type'       => 'object',
357 357
 			'properties' => array(
358 358
 				'create' => array(
359
-					'description' => __( 'List of created resources.', 'invoicing' ),
359
+					'description' => __('List of created resources.', 'invoicing'),
360 360
 					'type'        => 'array',
361
-					'context'     => array( 'view', 'edit' ),
361
+					'context'     => array('view', 'edit'),
362 362
 					'items'       => array(
363 363
 						'type' => 'object',
364 364
 					),
365 365
 				),
366 366
 				'update' => array(
367
-					'description' => __( 'List of updated resources.', 'invoicing' ),
367
+					'description' => __('List of updated resources.', 'invoicing'),
368 368
 					'type'        => 'array',
369
-					'context'     => array( 'view', 'edit' ),
369
+					'context'     => array('view', 'edit'),
370 370
 					'items'       => array(
371 371
 						'type' => 'object',
372 372
 					),
373 373
 				),
374 374
 				'delete' => array(
375
-					'description' => __( 'List of deleted resources.', 'invoicing' ),
375
+					'description' => __('List of deleted resources.', 'invoicing'),
376 376
 					'type'        => 'array',
377
-					'context'     => array( 'view', 'edit' ),
377
+					'context'     => array('view', 'edit'),
378 378
 					'items'       => array(
379 379
 						'type' => 'integer',
380 380
 					),
@@ -395,13 +395,13 @@  discard block
 block discarded – undo
395 395
 	protected function get_schema_properties() {
396 396
 
397 397
 		$schema     = $this->get_item_schema();
398
-		$properties = isset( $schema['properties'] ) ? $schema['properties'] : array();
398
+		$properties = isset($schema['properties']) ? $schema['properties'] : array();
399 399
 
400 400
 		// For back-compat, include any field with an empty schema
401 401
 		// because it won't be present in $this->get_item_schema().
402
-		foreach ( $this->get_additional_fields() as $field_name => $field_options ) {
403
-			if ( is_null( $field_options['schema'] ) ) {
404
-				$properties[ $field_name ] = $field_options;
402
+		foreach ($this->get_additional_fields() as $field_name => $field_options) {
403
+			if (is_null($field_options['schema'])) {
404
+				$properties[$field_name] = $field_options;
405 405
 			}
406 406
 		}
407 407
 
@@ -416,15 +416,15 @@  discard block
 block discarded – undo
416 416
 	 * @since 1.0.19
417 417
 	 * @return array
418 418
 	 */
419
-	protected function filter_response_fields_by_context( $fields, $context ) {
419
+	protected function filter_response_fields_by_context($fields, $context) {
420 420
 
421
-		if ( empty( $context ) ) {
421
+		if (empty($context)) {
422 422
 			return $fields;
423 423
 		}
424 424
 
425
-		foreach ( $fields as $name => $options ) {
426
-			if ( ! empty( $options['context'] ) && ! in_array( $context, $options['context'], true ) ) {
427
-				unset( $fields[ $name ] );
425
+		foreach ($fields as $name => $options) {
426
+			if (!empty($options['context']) && !in_array($context, $options['context'], true)) {
427
+				unset($fields[$name]);
428 428
 			}
429 429
 		}
430 430
 
@@ -440,35 +440,35 @@  discard block
 block discarded – undo
440 440
 	 * @since 1.0.19
441 441
 	 * @return array
442 442
 	 */
443
-	protected function filter_response_fields_by_array( $fields, $requested ) {
443
+	protected function filter_response_fields_by_array($fields, $requested) {
444 444
 
445 445
 		// Trim off any whitespace from the list array.
446
-		$requested = array_map( 'trim', $requested );
446
+		$requested = array_map('trim', $requested);
447 447
 
448 448
 		// Always persist 'id', because it can be needed for add_additional_fields_to_object().
449
-		if ( in_array( 'id', $fields, true ) ) {
449
+		if (in_array('id', $fields, true)) {
450 450
 			$requested[] = 'id';
451 451
 		}
452 452
 
453 453
 		// Get rid of duplicate fields.
454
-		$requested = array_unique( $requested );
454
+		$requested = array_unique($requested);
455 455
 
456 456
 		// Return the list of all included fields which are available.
457 457
 		return array_reduce(
458 458
 			$requested,
459
-			function( $response_fields, $field ) use ( $fields ) {
459
+			function($response_fields, $field) use ($fields) {
460 460
 
461
-				if ( in_array( $field, $fields, true ) ) {
461
+				if (in_array($field, $fields, true)) {
462 462
 					$response_fields[] = $field;
463 463
 					return $response_fields;
464 464
 				}
465 465
 
466 466
 				// Check for nested fields if $field is not a direct match.
467
-				$nested_fields = explode( '.', $field );
467
+				$nested_fields = explode('.', $field);
468 468
 
469 469
 				// A nested field is included so long as its top-level property is
470 470
 				// present in the schema.
471
-				if ( in_array( $nested_fields[0], $fields, true ) ) {
471
+				if (in_array($nested_fields[0], $fields, true)) {
472 472
 					$response_fields[] = $field;
473 473
 				}
474 474
 
@@ -489,23 +489,23 @@  discard block
 block discarded – undo
489 489
 	 * @param WP_REST_Request $request Full details about the request.
490 490
 	 * @return array Fields to be included in the response.
491 491
 	 */
492
-	public function get_fields_for_response( $request ) {
492
+	public function get_fields_for_response($request) {
493 493
 
494 494
 		// Retrieve fields in the schema.
495 495
 		$properties = $this->get_schema_properties();
496 496
 
497 497
 		// Exclude fields that specify a different context than the request context.
498
-		$properties = $this->filter_response_fields_by_context( $properties, $request['context'] );
498
+		$properties = $this->filter_response_fields_by_context($properties, $request['context']);
499 499
 
500 500
 		// We only need the field keys.
501
-		$fields = array_keys( $properties );
501
+		$fields = array_keys($properties);
502 502
 
503 503
 		// Is the user filtering the response fields??
504
-		if ( empty( $request['_fields'] ) ) {
504
+		if (empty($request['_fields'])) {
505 505
 			return $fields;
506 506
 		}
507 507
 
508
-		return $this->filter_response_fields_by_array( $fields, wpinv_parse_list( $request['_fields'] ) );
508
+		return $this->filter_response_fields_by_array($fields, wpinv_parse_list($request['_fields']));
509 509
 
510 510
 	}
511 511
 
@@ -519,32 +519,32 @@  discard block
 block discarded – undo
519 519
 	 * @param array $fields Requested fields.
520 520
 	 * @return array Fields to be included in the response.
521 521
 	 */
522
-	public function limit_object_to_requested_fields( $data, $fields, $prefix = '' ) {
522
+	public function limit_object_to_requested_fields($data, $fields, $prefix = '') {
523 523
 
524 524
 		// Is the user filtering the response fields??
525
-		if ( empty( $fields ) ) {
525
+		if (empty($fields)) {
526 526
 			return $data;
527 527
 		}
528 528
 
529
-		foreach ( $data as $key => $value ) {
529
+		foreach ($data as $key => $value) {
530 530
 
531 531
 			// Numeric arrays.
532
-			if ( is_numeric( $key ) && is_array( $value ) ) {
533
-				$data[ $key ] = $this->limit_object_to_requested_fields( $value, $fields, $prefix );
532
+			if (is_numeric($key) && is_array($value)) {
533
+				$data[$key] = $this->limit_object_to_requested_fields($value, $fields, $prefix);
534 534
 				continue;
535 535
 			}
536 536
 
537 537
 			// Generate a new prefix.
538
-			$new_prefix = empty( $prefix ) ? $key : "$prefix.$key";
538
+			$new_prefix = empty($prefix) ? $key : "$prefix.$key";
539 539
 
540 540
 			// Check if it was requested.
541
-			if ( ! empty( $key ) && ! $this->is_field_included( $new_prefix, $fields ) ) {
542
-				unset( $data[ $key ] );
541
+			if (!empty($key) && !$this->is_field_included($new_prefix, $fields)) {
542
+				unset($data[$key]);
543 543
 				continue;
544 544
 			}
545 545
 
546
-			if ( $key != 'meta_data' && is_array( $value ) ) {
547
-				$data[ $key ] = $this->limit_object_to_requested_fields( $value, $fields, $new_prefix );
546
+			if ($key != 'meta_data' && is_array($value)) {
547
+				$data[$key] = $this->limit_object_to_requested_fields($value, $fields, $new_prefix);
548 548
 			}
549 549
 }
550 550
 
@@ -565,20 +565,20 @@  discard block
 block discarded – undo
565 565
 	 * @return bool Whether to include the field or not.
566 566
 	 * @see rest_is_field_included()
567 567
 	 */
568
-	public function is_field_included( $field, $fields ) {
569
-		if ( in_array( $field, $fields, true ) ) {
568
+	public function is_field_included($field, $fields) {
569
+		if (in_array($field, $fields, true)) {
570 570
 			return true;
571 571
 		}
572 572
 
573
-		foreach ( $fields as $accepted_field ) {
573
+		foreach ($fields as $accepted_field) {
574 574
 			// Check to see if $field is the parent of any item in $fields.
575 575
 			// A field "parent" should be accepted if "parent.child" is accepted.
576
-			if ( strpos( $accepted_field, "$field." ) === 0 ) {
576
+			if (strpos($accepted_field, "$field.") === 0) {
577 577
 				return true;
578 578
 			}
579 579
 			// Conversely, if "parent" is accepted, all "parent.child" fields
580 580
 			// should also be accepted.
581
-			if ( strpos( $field, "$accepted_field." ) === 0 ) {
581
+			if (strpos($field, "$accepted_field.") === 0) {
582 582
 				return true;
583 583
 			}
584 584
 		}
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-report-top-sellers-controller.php 2 patches
Indentation   +175 added lines, -175 removed lines patch added patch discarded remove patch
@@ -18,179 +18,179 @@
 block discarded – undo
18 18
  */
19 19
 class GetPaid_REST_Report_Top_Sellers_Controller extends GetPaid_REST_Report_Sales_Controller {
20 20
 
21
-	/**
22
-	 * Route base.
23
-	 *
24
-	 * @var string
25
-	 */
26
-	protected $rest_base = 'reports/top_sellers';
27
-
28
-	/**
29
-	 * Get top sellers report.
30
-	 *
31
-	 * @param WP_REST_Request $request
32
-	 * @return array|WP_Error
33
-	 */
34
-	public function get_items( $request ) {
35
-
36
-		// Prepare items.
37
-		$this->report_range = $this->get_date_range( $request );
38
-		$report_data        = $this->get_report_data();
39
-
40
-		$top_sellers = array();
41
-
42
-		foreach ( $report_data as $item ) {
43
-
44
-			$item_obj  = new WPInv_Item( $item );
45
-			$item_name = $item->invoice_item_name;
46
-			$item_qty  = floatval( $item->invoice_item_qty );
47
-			$item_id   = absint( $item->invoice_item_id );
48
-			$price     = sanitize_text_field( wpinv_price( $item->invoice_item_price ) );
49
-
50
-			$item_obj  = new WPInv_Item( $item_id );
51
-
52
-			if ( $item_obj->exists() ) {
53
-				$item_name = $item_obj->get_name();
54
-			} else {
55
-				$item_id   = 0;
56
-			}
57
-
58
-			$top_sellers[] = array(
59
-				'name'               => sanitize_text_field( $item_name ),
60
-				'item_id'            => $item_id,
61
-				'quantity'           => $item_qty,
62
-				'earnings'           => wpinv_round_amount( $item->invoice_item_price ),
63
-				'earnings_formatted' => sanitize_text_field( wpinv_price( $price ) ),
64
-			);
65
-
66
-		}
67
-
68
-		$data = array();
69
-		foreach ( $top_sellers as $top_seller ) {
70
-			$item   = $this->prepare_item_for_response( (object) $top_seller, $request );
71
-			$data[] = $this->prepare_response_for_collection( $item );
72
-		}
73
-
74
-		return rest_ensure_response( $data );
75
-
76
-	}
77
-
78
-	/**
79
-	 * Prepare a report sales object for serialization.
80
-	 *
81
-	 * @param stdClass $top_seller
82
-	 * @param WP_REST_Request $request Request object.
83
-	 * @return WP_REST_Response $response Response data.
84
-	 */
85
-	public function prepare_item_for_response( $top_seller, $request ) {
86
-		$data    = (array) $top_seller;
87
-
88
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
89
-		$data    = $this->add_additional_fields_to_object( $data, $request );
90
-		$data    = $this->filter_response_by_context( $data, $context );
91
-
92
-		// Wrap the data in a response object.
93
-		$response = rest_ensure_response( $data );
94
-		$links = array(
95
-			'about' => array(
96
-				'href' => rest_url( sprintf( '%s/reports', $this->namespace ) ),
97
-			),
98
-		);
99
-
100
-		if ( ! empty( $top_seller->item_id ) ) {
101
-			$links['item']   = array(
102
-				'href'       => rest_url( sprintf( '/%s/items/%s', $this->namespace, $top_seller->item_id ) ),
103
-				'embeddable' => true,
104
-			);
105
-		}
106
-
107
-		$response->add_links( $links );
108
-		return apply_filters( 'getpaid_rest_prepare_report_' . $this->rest_base, $response, $top_seller, $request );
109
-	}
110
-
111
-	/**
112
-	 * Get all data needed for this report and store in the class.
113
-	 */
114
-	protected function query_report_data() {
115
-
116
-		$this->report_data = GetPaid_Reports_Helper::get_invoice_report_data(
117
-			array(
118
-				'data'         => array(
119
-					'quantity'  => array(
120
-						'type'     => 'invoice_item',
121
-						'function' => 'SUM',
122
-						'name'     => 'invoice_item_qty',
123
-					),
124
-					'item_id'   => array(
125
-						'type'     => 'invoice_item',
126
-						'function' => '',
127
-						'name'     => 'invoice_item_id',
128
-					),
129
-					'item_name' => array(
130
-						'type'     => 'invoice_item',
131
-						'function' => '',
132
-						'name'     => 'invoice_item_name',
133
-					),
134
-					'price'     => array(
135
-						'type'     => 'invoice_item',
136
-						'function' => 'SUM',
137
-						'name'     => 'invoice_item_price',
138
-					),
139
-				),
140
-				'group_by'     => 'invoice_item_id',
141
-				'order_by'     => 'invoice_item_qty DESC',
142
-				'query_type'   => 'get_results',
143
-				'limit'        => 10,
144
-				'filter_range' => $this->report_range,
145
-			)
146
-		);
147
-
148
-	}
149
-
150
-	/**
151
-	 * Get the Report's schema, conforming to JSON Schema.
152
-	 *
153
-	 * @return array
154
-	 */
155
-	public function get_item_schema() {
156
-		$schema = array(
157
-			'$schema'    => 'http://json-schema.org/draft-04/schema#',
158
-			'title'      => $this->rest_base,
159
-			'type'       => 'object',
160
-			'properties' => array(
161
-				'name'                => array(
162
-					'description' => __( 'Item name.', 'invoicing' ),
163
-					'type'        => 'string',
164
-					'context'     => array( 'view' ),
165
-					'readonly'    => true,
166
-				),
167
-				'item_id'             => array(
168
-					'description' => __( 'Item ID.', 'invoicing' ),
169
-					'type'        => 'integer',
170
-					'context'     => array( 'view' ),
171
-					'readonly'    => true,
172
-				),
173
-				'quantity'            => array(
174
-					'description' => __( 'Total number of purchases.', 'invoicing' ),
175
-					'type'        => 'number',
176
-					'context'     => array( 'view' ),
177
-					'readonly'    => true,
178
-				),
179
-				'earnings'            => array(
180
-					'description' => __( 'Total earnings for the item.', 'invoicing' ),
181
-					'type'        => 'number',
182
-					'context'     => array( 'view' ),
183
-					'readonly'    => true,
184
-				),
185
-				'earnings_formatted"' => array(
186
-					'description' => __( 'Total earnings (formatted) for the item.', 'invoicing' ),
187
-					'type'        => 'string',
188
-					'context'     => array( 'view' ),
189
-					'readonly'    => true,
190
-				),
191
-			),
192
-		);
193
-
194
-		return $this->add_additional_fields_schema( $schema );
195
-	}
21
+    /**
22
+     * Route base.
23
+     *
24
+     * @var string
25
+     */
26
+    protected $rest_base = 'reports/top_sellers';
27
+
28
+    /**
29
+     * Get top sellers report.
30
+     *
31
+     * @param WP_REST_Request $request
32
+     * @return array|WP_Error
33
+     */
34
+    public function get_items( $request ) {
35
+
36
+        // Prepare items.
37
+        $this->report_range = $this->get_date_range( $request );
38
+        $report_data        = $this->get_report_data();
39
+
40
+        $top_sellers = array();
41
+
42
+        foreach ( $report_data as $item ) {
43
+
44
+            $item_obj  = new WPInv_Item( $item );
45
+            $item_name = $item->invoice_item_name;
46
+            $item_qty  = floatval( $item->invoice_item_qty );
47
+            $item_id   = absint( $item->invoice_item_id );
48
+            $price     = sanitize_text_field( wpinv_price( $item->invoice_item_price ) );
49
+
50
+            $item_obj  = new WPInv_Item( $item_id );
51
+
52
+            if ( $item_obj->exists() ) {
53
+                $item_name = $item_obj->get_name();
54
+            } else {
55
+                $item_id   = 0;
56
+            }
57
+
58
+            $top_sellers[] = array(
59
+                'name'               => sanitize_text_field( $item_name ),
60
+                'item_id'            => $item_id,
61
+                'quantity'           => $item_qty,
62
+                'earnings'           => wpinv_round_amount( $item->invoice_item_price ),
63
+                'earnings_formatted' => sanitize_text_field( wpinv_price( $price ) ),
64
+            );
65
+
66
+        }
67
+
68
+        $data = array();
69
+        foreach ( $top_sellers as $top_seller ) {
70
+            $item   = $this->prepare_item_for_response( (object) $top_seller, $request );
71
+            $data[] = $this->prepare_response_for_collection( $item );
72
+        }
73
+
74
+        return rest_ensure_response( $data );
75
+
76
+    }
77
+
78
+    /**
79
+     * Prepare a report sales object for serialization.
80
+     *
81
+     * @param stdClass $top_seller
82
+     * @param WP_REST_Request $request Request object.
83
+     * @return WP_REST_Response $response Response data.
84
+     */
85
+    public function prepare_item_for_response( $top_seller, $request ) {
86
+        $data    = (array) $top_seller;
87
+
88
+        $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
89
+        $data    = $this->add_additional_fields_to_object( $data, $request );
90
+        $data    = $this->filter_response_by_context( $data, $context );
91
+
92
+        // Wrap the data in a response object.
93
+        $response = rest_ensure_response( $data );
94
+        $links = array(
95
+            'about' => array(
96
+                'href' => rest_url( sprintf( '%s/reports', $this->namespace ) ),
97
+            ),
98
+        );
99
+
100
+        if ( ! empty( $top_seller->item_id ) ) {
101
+            $links['item']   = array(
102
+                'href'       => rest_url( sprintf( '/%s/items/%s', $this->namespace, $top_seller->item_id ) ),
103
+                'embeddable' => true,
104
+            );
105
+        }
106
+
107
+        $response->add_links( $links );
108
+        return apply_filters( 'getpaid_rest_prepare_report_' . $this->rest_base, $response, $top_seller, $request );
109
+    }
110
+
111
+    /**
112
+     * Get all data needed for this report and store in the class.
113
+     */
114
+    protected function query_report_data() {
115
+
116
+        $this->report_data = GetPaid_Reports_Helper::get_invoice_report_data(
117
+            array(
118
+                'data'         => array(
119
+                    'quantity'  => array(
120
+                        'type'     => 'invoice_item',
121
+                        'function' => 'SUM',
122
+                        'name'     => 'invoice_item_qty',
123
+                    ),
124
+                    'item_id'   => array(
125
+                        'type'     => 'invoice_item',
126
+                        'function' => '',
127
+                        'name'     => 'invoice_item_id',
128
+                    ),
129
+                    'item_name' => array(
130
+                        'type'     => 'invoice_item',
131
+                        'function' => '',
132
+                        'name'     => 'invoice_item_name',
133
+                    ),
134
+                    'price'     => array(
135
+                        'type'     => 'invoice_item',
136
+                        'function' => 'SUM',
137
+                        'name'     => 'invoice_item_price',
138
+                    ),
139
+                ),
140
+                'group_by'     => 'invoice_item_id',
141
+                'order_by'     => 'invoice_item_qty DESC',
142
+                'query_type'   => 'get_results',
143
+                'limit'        => 10,
144
+                'filter_range' => $this->report_range,
145
+            )
146
+        );
147
+
148
+    }
149
+
150
+    /**
151
+     * Get the Report's schema, conforming to JSON Schema.
152
+     *
153
+     * @return array
154
+     */
155
+    public function get_item_schema() {
156
+        $schema = array(
157
+            '$schema'    => 'http://json-schema.org/draft-04/schema#',
158
+            'title'      => $this->rest_base,
159
+            'type'       => 'object',
160
+            'properties' => array(
161
+                'name'                => array(
162
+                    'description' => __( 'Item name.', 'invoicing' ),
163
+                    'type'        => 'string',
164
+                    'context'     => array( 'view' ),
165
+                    'readonly'    => true,
166
+                ),
167
+                'item_id'             => array(
168
+                    'description' => __( 'Item ID.', 'invoicing' ),
169
+                    'type'        => 'integer',
170
+                    'context'     => array( 'view' ),
171
+                    'readonly'    => true,
172
+                ),
173
+                'quantity'            => array(
174
+                    'description' => __( 'Total number of purchases.', 'invoicing' ),
175
+                    'type'        => 'number',
176
+                    'context'     => array( 'view' ),
177
+                    'readonly'    => true,
178
+                ),
179
+                'earnings'            => array(
180
+                    'description' => __( 'Total earnings for the item.', 'invoicing' ),
181
+                    'type'        => 'number',
182
+                    'context'     => array( 'view' ),
183
+                    'readonly'    => true,
184
+                ),
185
+                'earnings_formatted"' => array(
186
+                    'description' => __( 'Total earnings (formatted) for the item.', 'invoicing' ),
187
+                    'type'        => 'string',
188
+                    'context'     => array( 'view' ),
189
+                    'readonly'    => true,
190
+                ),
191
+            ),
192
+        );
193
+
194
+        return $this->add_additional_fields_schema( $schema );
195
+    }
196 196
 }
Please login to merge, or discard this patch.
Spacing   +39 added lines, -39 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 top sellers controller class.
@@ -31,47 +31,47 @@  discard block
 block discarded – undo
31 31
 	 * @param WP_REST_Request $request
32 32
 	 * @return array|WP_Error
33 33
 	 */
34
-	public function get_items( $request ) {
34
+	public function get_items($request) {
35 35
 
36 36
 		// Prepare items.
37
-		$this->report_range = $this->get_date_range( $request );
37
+		$this->report_range = $this->get_date_range($request);
38 38
 		$report_data        = $this->get_report_data();
39 39
 
40 40
 		$top_sellers = array();
41 41
 
42
-		foreach ( $report_data as $item ) {
42
+		foreach ($report_data as $item) {
43 43
 
44
-			$item_obj  = new WPInv_Item( $item );
44
+			$item_obj  = new WPInv_Item($item);
45 45
 			$item_name = $item->invoice_item_name;
46
-			$item_qty  = floatval( $item->invoice_item_qty );
47
-			$item_id   = absint( $item->invoice_item_id );
48
-			$price     = sanitize_text_field( wpinv_price( $item->invoice_item_price ) );
46
+			$item_qty  = floatval($item->invoice_item_qty);
47
+			$item_id   = absint($item->invoice_item_id);
48
+			$price     = sanitize_text_field(wpinv_price($item->invoice_item_price));
49 49
 
50
-			$item_obj  = new WPInv_Item( $item_id );
50
+			$item_obj  = new WPInv_Item($item_id);
51 51
 
52
-			if ( $item_obj->exists() ) {
52
+			if ($item_obj->exists()) {
53 53
 				$item_name = $item_obj->get_name();
54 54
 			} else {
55 55
 				$item_id   = 0;
56 56
 			}
57 57
 
58 58
 			$top_sellers[] = array(
59
-				'name'               => sanitize_text_field( $item_name ),
59
+				'name'               => sanitize_text_field($item_name),
60 60
 				'item_id'            => $item_id,
61 61
 				'quantity'           => $item_qty,
62
-				'earnings'           => wpinv_round_amount( $item->invoice_item_price ),
63
-				'earnings_formatted' => sanitize_text_field( wpinv_price( $price ) ),
62
+				'earnings'           => wpinv_round_amount($item->invoice_item_price),
63
+				'earnings_formatted' => sanitize_text_field(wpinv_price($price)),
64 64
 			);
65 65
 
66 66
 		}
67 67
 
68 68
 		$data = array();
69
-		foreach ( $top_sellers as $top_seller ) {
70
-			$item   = $this->prepare_item_for_response( (object) $top_seller, $request );
71
-			$data[] = $this->prepare_response_for_collection( $item );
69
+		foreach ($top_sellers as $top_seller) {
70
+			$item   = $this->prepare_item_for_response((object) $top_seller, $request);
71
+			$data[] = $this->prepare_response_for_collection($item);
72 72
 		}
73 73
 
74
-		return rest_ensure_response( $data );
74
+		return rest_ensure_response($data);
75 75
 
76 76
 	}
77 77
 
@@ -82,30 +82,30 @@  discard block
 block discarded – undo
82 82
 	 * @param WP_REST_Request $request Request object.
83 83
 	 * @return WP_REST_Response $response Response data.
84 84
 	 */
85
-	public function prepare_item_for_response( $top_seller, $request ) {
85
+	public function prepare_item_for_response($top_seller, $request) {
86 86
 		$data    = (array) $top_seller;
87 87
 
88
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
89
-		$data    = $this->add_additional_fields_to_object( $data, $request );
90
-		$data    = $this->filter_response_by_context( $data, $context );
88
+		$context = !empty($request['context']) ? $request['context'] : 'view';
89
+		$data    = $this->add_additional_fields_to_object($data, $request);
90
+		$data    = $this->filter_response_by_context($data, $context);
91 91
 
92 92
 		// Wrap the data in a response object.
93
-		$response = rest_ensure_response( $data );
93
+		$response = rest_ensure_response($data);
94 94
 		$links = array(
95 95
 			'about' => array(
96
-				'href' => rest_url( sprintf( '%s/reports', $this->namespace ) ),
96
+				'href' => rest_url(sprintf('%s/reports', $this->namespace)),
97 97
 			),
98 98
 		);
99 99
 
100
-		if ( ! empty( $top_seller->item_id ) ) {
101
-			$links['item']   = array(
102
-				'href'       => rest_url( sprintf( '/%s/items/%s', $this->namespace, $top_seller->item_id ) ),
100
+		if (!empty($top_seller->item_id)) {
101
+			$links['item'] = array(
102
+				'href'       => rest_url(sprintf('/%s/items/%s', $this->namespace, $top_seller->item_id)),
103 103
 				'embeddable' => true,
104 104
 			);
105 105
 		}
106 106
 
107
-		$response->add_links( $links );
108
-		return apply_filters( 'getpaid_rest_prepare_report_' . $this->rest_base, $response, $top_seller, $request );
107
+		$response->add_links($links);
108
+		return apply_filters('getpaid_rest_prepare_report_' . $this->rest_base, $response, $top_seller, $request);
109 109
 	}
110 110
 
111 111
 	/**
@@ -159,38 +159,38 @@  discard block
 block discarded – undo
159 159
 			'type'       => 'object',
160 160
 			'properties' => array(
161 161
 				'name'                => array(
162
-					'description' => __( 'Item name.', 'invoicing' ),
162
+					'description' => __('Item name.', 'invoicing'),
163 163
 					'type'        => 'string',
164
-					'context'     => array( 'view' ),
164
+					'context'     => array('view'),
165 165
 					'readonly'    => true,
166 166
 				),
167 167
 				'item_id'             => array(
168
-					'description' => __( 'Item ID.', 'invoicing' ),
168
+					'description' => __('Item ID.', 'invoicing'),
169 169
 					'type'        => 'integer',
170
-					'context'     => array( 'view' ),
170
+					'context'     => array('view'),
171 171
 					'readonly'    => true,
172 172
 				),
173 173
 				'quantity'            => array(
174
-					'description' => __( 'Total number of purchases.', 'invoicing' ),
174
+					'description' => __('Total number of purchases.', 'invoicing'),
175 175
 					'type'        => 'number',
176
-					'context'     => array( 'view' ),
176
+					'context'     => array('view'),
177 177
 					'readonly'    => true,
178 178
 				),
179 179
 				'earnings'            => array(
180
-					'description' => __( 'Total earnings for the item.', 'invoicing' ),
180
+					'description' => __('Total earnings for the item.', 'invoicing'),
181 181
 					'type'        => 'number',
182
-					'context'     => array( 'view' ),
182
+					'context'     => array('view'),
183 183
 					'readonly'    => true,
184 184
 				),
185 185
 				'earnings_formatted"' => array(
186
-					'description' => __( 'Total earnings (formatted) for the item.', 'invoicing' ),
186
+					'description' => __('Total earnings (formatted) for the item.', 'invoicing'),
187 187
 					'type'        => 'string',
188
-					'context'     => array( 'view' ),
188
+					'context'     => array('view'),
189 189
 					'readonly'    => true,
190 190
 				),
191 191
 			),
192 192
 		);
193 193
 
194
-		return $this->add_additional_fields_schema( $schema );
194
+		return $this->add_additional_fields_schema($schema);
195 195
 	}
196 196
 }
Please login to merge, or discard this patch.
includes/api/class-wpinv-rest-items-controller.php 2 patches
Indentation   +156 added lines, -156 removed lines patch added patch discarded remove patch
@@ -15,168 +15,168 @@
 block discarded – undo
15 15
 class WPInv_REST_Items_Controller extends GetPaid_REST_Posts_Controller {
16 16
 
17 17
     /**
18
-	 * Post type.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	protected $post_type = 'wpi_item';
23
-
24
-	/**
25
-	 * The base of this controller's route.
26
-	 *
27
-	 * @since 1.0.13
28
-	 * @var string
29
-	 */
30
-	protected $rest_base = 'items';
31
-
32
-	/** Contains this controller's class name.
33
-	 *
34
-	 * @var string
35
-	 */
36
-	public $crud_class = 'WPInv_Item';
37
-
38
-	/**
39
-	 * Registers the routes for the objects of the controller.
40
-	 *
41
-	 * @since 1.0.19
42
-	 *
43
-	 * @see register_rest_route()
44
-	 */
45
-	public function register_namespace_routes( $namespace ) {
46
-
47
-		parent::register_namespace_routes( $namespace );
48
-
49
-		register_rest_route(
50
-			$this->namespace,
51
-			'/' . $this->rest_base . '/item-types',
52
-			array(
53
-				array(
54
-					'methods'             => WP_REST_Server::READABLE,
55
-					'callback'            => array( $this, 'get_item_types' ),
56
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
57
-				),
58
-			)
59
-		);
60
-
61
-	}
62
-
63
-	/**
64
-	 * Handles rest requests for item types.
65
-	 *
66
-	 * @since 1.0.13
67
-	 *
68
-	 *
69
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
70
-	 */
71
-	public function get_item_types() {
72
-		return rest_ensure_response( wpinv_get_item_types() );
73
-	}
18
+     * Post type.
19
+     *
20
+     * @var string
21
+     */
22
+    protected $post_type = 'wpi_item';
74 23
 
75 24
     /**
76
-	 * Retrieves the query params for the items collection.
77
-	 *
78
-	 * @since 1.0.13
79
-	 *
80
-	 * @return array Collection parameters.
81
-	 */
82
-	public function get_collection_params() {
83
-
84
-		$params = array_merge(
85
-			parent::get_collection_params(),
86
-        	array(
87
-
88
-				// Item types
89
-				'type' => array(
90
-					'description'       => __( 'Type of items to fetch.', 'invoicing' ),
91
-					'type'              => array( 'array', 'string' ),
92
-					'default'           => 'any',
93
-					'validate_callback' => 'rest_validate_request_arg',
94
-					'sanitize_callback' => 'wpinv_parse_list',
95
-					'items'             => array(
96
-						'enum' => array_merge( array( 'any' ), wpinv_item_types() ),
97
-						'type' => 'string',
98
-					),
99
-				),
100
-
101
-			)
102
-		);
103
-
104
-		// Filter collection parameters for the items controller.
105
-		return apply_filters( 'getpaid_rest_items_collection_params', $params, $this );
106
-
107
-	}
108
-
109
-	/**
110
-	 * Determine the allowed query_vars for a get_items() response and
111
-	 * prepare for WP_Query.
112
-	 *
113
-	 * @param array           $prepared_args Prepared arguments.
114
-	 * @param WP_REST_Request $request Request object.
115
-	 * @return array          $query_args
116
-	 */
117
-	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
118
-
119
-		$query_args = parent::prepare_items_query( $prepared_args );
120
-
121
-		// Retrieve items by type.
122
-		if ( ! in_array( 'any', $request['type'] ) ) {
123
-
124
-			if ( empty( $query_args['meta_query'] ) ) {
125
-				$query_args['meta_query'] = array();
126
-			}
127
-
128
-			$query_args['meta_query'][] = array(
129
-				'key'     => '_wpinv_type',
130
-				'value'   => implode( ',', $request['type'] ),
131
-				'compare' => 'IN',
132
-			);
133
-
134
-		}
135
-
136
-		return apply_filters( 'getpaid_rest_items_prepare_items_query', $query_args, $request, $this );
137
-
138
-	}
139
-
140
-	/**
141
-	 * Retrieves a valid list of post statuses.
142
-	 *
143
-	 * @since 1.0.15
144
-	 *
145
-	 * @return array A list of registered item statuses.
146
-	 */
147
-	public function get_post_statuses() {
148
-		return array( 'draft', 'pending', 'publish' );
149
-	}
150
-
151
-	/**
152
-	 * Checks if a key should be included in a response.
153
-	 *
154
-	 * @since  1.0.19
155
-	 * @param  WPInv_Item   $item  Item object.
156
-	 * @param  string       $field_key The key to check for.
157
-	 * @return bool
158
-	 */
159
-	public function object_supports_field( $item, $field_key ) {
160
-
161
-		if ( 'minimum_price' == $field_key && ! $item->user_can_set_their_price() ) {
162
-			return false;
163
-		}
164
-
165
-		foreach ( wpinv_parse_list( 'initial_price the_initial_price recurring_price the_recurring_price recurring_period recurring_interval recurring_limit is_free_trial trial_period trial_interval first_renewal_date' ) as $key ) {
166
-
167
-			if ( $key == $field_key && ! $item->is_recurring() ) {
168
-				return false;
169
-			}
25
+     * The base of this controller's route.
26
+     *
27
+     * @since 1.0.13
28
+     * @var string
29
+     */
30
+    protected $rest_base = 'items';
31
+
32
+    /** Contains this controller's class name.
33
+     *
34
+     * @var string
35
+     */
36
+    public $crud_class = 'WPInv_Item';
37
+
38
+    /**
39
+     * Registers the routes for the objects of the controller.
40
+     *
41
+     * @since 1.0.19
42
+     *
43
+     * @see register_rest_route()
44
+     */
45
+    public function register_namespace_routes( $namespace ) {
46
+
47
+        parent::register_namespace_routes( $namespace );
48
+
49
+        register_rest_route(
50
+            $this->namespace,
51
+            '/' . $this->rest_base . '/item-types',
52
+            array(
53
+                array(
54
+                    'methods'             => WP_REST_Server::READABLE,
55
+                    'callback'            => array( $this, 'get_item_types' ),
56
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
57
+                ),
58
+            )
59
+        );
60
+
61
+    }
62
+
63
+    /**
64
+     * Handles rest requests for item types.
65
+     *
66
+     * @since 1.0.13
67
+     *
68
+     *
69
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
70
+     */
71
+    public function get_item_types() {
72
+        return rest_ensure_response( wpinv_get_item_types() );
73
+    }
74
+
75
+    /**
76
+     * Retrieves the query params for the items collection.
77
+     *
78
+     * @since 1.0.13
79
+     *
80
+     * @return array Collection parameters.
81
+     */
82
+    public function get_collection_params() {
83
+
84
+        $params = array_merge(
85
+            parent::get_collection_params(),
86
+            array(
87
+
88
+                // Item types
89
+                'type' => array(
90
+                    'description'       => __( 'Type of items to fetch.', 'invoicing' ),
91
+                    'type'              => array( 'array', 'string' ),
92
+                    'default'           => 'any',
93
+                    'validate_callback' => 'rest_validate_request_arg',
94
+                    'sanitize_callback' => 'wpinv_parse_list',
95
+                    'items'             => array(
96
+                        'enum' => array_merge( array( 'any' ), wpinv_item_types() ),
97
+                        'type' => 'string',
98
+                    ),
99
+                ),
100
+
101
+            )
102
+        );
103
+
104
+        // Filter collection parameters for the items controller.
105
+        return apply_filters( 'getpaid_rest_items_collection_params', $params, $this );
106
+
107
+    }
108
+
109
+    /**
110
+     * Determine the allowed query_vars for a get_items() response and
111
+     * prepare for WP_Query.
112
+     *
113
+     * @param array           $prepared_args Prepared arguments.
114
+     * @param WP_REST_Request $request Request object.
115
+     * @return array          $query_args
116
+     */
117
+    protected function prepare_items_query( $prepared_args = array(), $request = null ) {
118
+
119
+        $query_args = parent::prepare_items_query( $prepared_args );
120
+
121
+        // Retrieve items by type.
122
+        if ( ! in_array( 'any', $request['type'] ) ) {
123
+
124
+            if ( empty( $query_args['meta_query'] ) ) {
125
+                $query_args['meta_query'] = array();
126
+            }
127
+
128
+            $query_args['meta_query'][] = array(
129
+                'key'     => '_wpinv_type',
130
+                'value'   => implode( ',', $request['type'] ),
131
+                'compare' => 'IN',
132
+            );
133
+
134
+        }
135
+
136
+        return apply_filters( 'getpaid_rest_items_prepare_items_query', $query_args, $request, $this );
137
+
138
+    }
139
+
140
+    /**
141
+     * Retrieves a valid list of post statuses.
142
+     *
143
+     * @since 1.0.15
144
+     *
145
+     * @return array A list of registered item statuses.
146
+     */
147
+    public function get_post_statuses() {
148
+        return array( 'draft', 'pending', 'publish' );
149
+    }
150
+
151
+    /**
152
+     * Checks if a key should be included in a response.
153
+     *
154
+     * @since  1.0.19
155
+     * @param  WPInv_Item   $item  Item object.
156
+     * @param  string       $field_key The key to check for.
157
+     * @return bool
158
+     */
159
+    public function object_supports_field( $item, $field_key ) {
160
+
161
+        if ( 'minimum_price' == $field_key && ! $item->user_can_set_their_price() ) {
162
+            return false;
163
+        }
164
+
165
+        foreach ( wpinv_parse_list( 'initial_price the_initial_price recurring_price the_recurring_price recurring_period recurring_interval recurring_limit is_free_trial trial_period trial_interval first_renewal_date' ) as $key ) {
166
+
167
+            if ( $key == $field_key && ! $item->is_recurring() ) {
168
+                return false;
169
+            }
170 170
 }
171 171
 
172
-		foreach ( wpinv_parse_list( 'trial_period trial_interval' ) as $key ) {
172
+        foreach ( wpinv_parse_list( 'trial_period trial_interval' ) as $key ) {
173 173
 
174
-			if ( $key == $field_key && ! $item->has_free_trial() ) {
175
-				return false;
176
-			}
174
+            if ( $key == $field_key && ! $item->has_free_trial() ) {
175
+                return false;
176
+            }
177 177
 }
178 178
 
179
-		return parent::object_supports_field( $item, $field_key );
180
-	}
179
+        return parent::object_supports_field( $item, $field_key );
180
+    }
181 181
 
182 182
 }
Please login to merge, or discard this patch.
Spacing   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  * @version 1.0.19
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * REST API items controller class.
@@ -42,9 +42,9 @@  discard block
 block discarded – undo
42 42
 	 *
43 43
 	 * @see register_rest_route()
44 44
 	 */
45
-	public function register_namespace_routes( $namespace ) {
45
+	public function register_namespace_routes($namespace) {
46 46
 
47
-		parent::register_namespace_routes( $namespace );
47
+		parent::register_namespace_routes($namespace);
48 48
 
49 49
 		register_rest_route(
50 50
 			$this->namespace,
@@ -52,8 +52,8 @@  discard block
 block discarded – undo
52 52
 			array(
53 53
 				array(
54 54
 					'methods'             => WP_REST_Server::READABLE,
55
-					'callback'            => array( $this, 'get_item_types' ),
56
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
55
+					'callback'            => array($this, 'get_item_types'),
56
+					'permission_callback' => array($this, 'get_items_permissions_check'),
57 57
 				),
58 58
 			)
59 59
 		);
@@ -69,7 +69,7 @@  discard block
 block discarded – undo
69 69
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
70 70
 	 */
71 71
 	public function get_item_types() {
72
-		return rest_ensure_response( wpinv_get_item_types() );
72
+		return rest_ensure_response(wpinv_get_item_types());
73 73
 	}
74 74
 
75 75
     /**
@@ -87,13 +87,13 @@  discard block
 block discarded – undo
87 87
 
88 88
 				// Item types
89 89
 				'type' => array(
90
-					'description'       => __( 'Type of items to fetch.', 'invoicing' ),
91
-					'type'              => array( 'array', 'string' ),
90
+					'description'       => __('Type of items to fetch.', 'invoicing'),
91
+					'type'              => array('array', 'string'),
92 92
 					'default'           => 'any',
93 93
 					'validate_callback' => 'rest_validate_request_arg',
94 94
 					'sanitize_callback' => 'wpinv_parse_list',
95 95
 					'items'             => array(
96
-						'enum' => array_merge( array( 'any' ), wpinv_item_types() ),
96
+						'enum' => array_merge(array('any'), wpinv_item_types()),
97 97
 						'type' => 'string',
98 98
 					),
99 99
 				),
@@ -102,7 +102,7 @@  discard block
 block discarded – undo
102 102
 		);
103 103
 
104 104
 		// Filter collection parameters for the items controller.
105
-		return apply_filters( 'getpaid_rest_items_collection_params', $params, $this );
105
+		return apply_filters('getpaid_rest_items_collection_params', $params, $this);
106 106
 
107 107
 	}
108 108
 
@@ -114,26 +114,26 @@  discard block
 block discarded – undo
114 114
 	 * @param WP_REST_Request $request Request object.
115 115
 	 * @return array          $query_args
116 116
 	 */
117
-	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
117
+	protected function prepare_items_query($prepared_args = array(), $request = null) {
118 118
 
119
-		$query_args = parent::prepare_items_query( $prepared_args );
119
+		$query_args = parent::prepare_items_query($prepared_args);
120 120
 
121 121
 		// Retrieve items by type.
122
-		if ( ! in_array( 'any', $request['type'] ) ) {
122
+		if (!in_array('any', $request['type'])) {
123 123
 
124
-			if ( empty( $query_args['meta_query'] ) ) {
124
+			if (empty($query_args['meta_query'])) {
125 125
 				$query_args['meta_query'] = array();
126 126
 			}
127 127
 
128 128
 			$query_args['meta_query'][] = array(
129 129
 				'key'     => '_wpinv_type',
130
-				'value'   => implode( ',', $request['type'] ),
130
+				'value'   => implode(',', $request['type']),
131 131
 				'compare' => 'IN',
132 132
 			);
133 133
 
134 134
 		}
135 135
 
136
-		return apply_filters( 'getpaid_rest_items_prepare_items_query', $query_args, $request, $this );
136
+		return apply_filters('getpaid_rest_items_prepare_items_query', $query_args, $request, $this);
137 137
 
138 138
 	}
139 139
 
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
 	 * @return array A list of registered item statuses.
146 146
 	 */
147 147
 	public function get_post_statuses() {
148
-		return array( 'draft', 'pending', 'publish' );
148
+		return array('draft', 'pending', 'publish');
149 149
 	}
150 150
 
151 151
 	/**
@@ -156,27 +156,27 @@  discard block
 block discarded – undo
156 156
 	 * @param  string       $field_key The key to check for.
157 157
 	 * @return bool
158 158
 	 */
159
-	public function object_supports_field( $item, $field_key ) {
159
+	public function object_supports_field($item, $field_key) {
160 160
 
161
-		if ( 'minimum_price' == $field_key && ! $item->user_can_set_their_price() ) {
161
+		if ('minimum_price' == $field_key && !$item->user_can_set_their_price()) {
162 162
 			return false;
163 163
 		}
164 164
 
165
-		foreach ( wpinv_parse_list( 'initial_price the_initial_price recurring_price the_recurring_price recurring_period recurring_interval recurring_limit is_free_trial trial_period trial_interval first_renewal_date' ) as $key ) {
165
+		foreach (wpinv_parse_list('initial_price the_initial_price recurring_price the_recurring_price recurring_period recurring_interval recurring_limit is_free_trial trial_period trial_interval first_renewal_date') as $key) {
166 166
 
167
-			if ( $key == $field_key && ! $item->is_recurring() ) {
167
+			if ($key == $field_key && !$item->is_recurring()) {
168 168
 				return false;
169 169
 			}
170 170
 }
171 171
 
172
-		foreach ( wpinv_parse_list( 'trial_period trial_interval' ) as $key ) {
172
+		foreach (wpinv_parse_list('trial_period trial_interval') as $key) {
173 173
 
174
-			if ( $key == $field_key && ! $item->has_free_trial() ) {
174
+			if ($key == $field_key && !$item->has_free_trial()) {
175 175
 				return false;
176 176
 			}
177 177
 }
178 178
 
179
-		return parent::object_supports_field( $item, $field_key );
179
+		return parent::object_supports_field($item, $field_key);
180 180
 	}
181 181
 
182 182
 }
Please login to merge, or discard this patch.
includes/api/class-wpinv-rest-discounts-controller.php 2 patches
Indentation   +129 added lines, -129 removed lines patch added patch discarded remove patch
@@ -15,136 +15,136 @@
 block discarded – undo
15 15
 class WPInv_REST_Discounts_Controller extends GetPaid_REST_Posts_Controller {
16 16
 
17 17
     /**
18
-	 * Post type.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	protected $post_type = 'wpi_discount';
23
-
24
-	/**
25
-	 * The base of this controller's route.
26
-	 *
27
-	 * @since 1.0.13
28
-	 * @var string
29
-	 */
30
-	protected $rest_base = 'discounts';
31
-
32
-	/** Contains this controller's class name.
33
-	 *
34
-	 * @var string
35
-	 */
36
-	public $crud_class = 'WPInv_Discount';
37
-
38
-	/**
39
-	 * Registers the routes for the objects of the controller.
40
-	 *
41
-	 * @since 1.0.19
42
-	 *
43
-	 * @see register_rest_route()
44
-	 */
45
-	public function register_namespace_routes( $namespace ) {
46
-
47
-		parent::register_namespace_routes( $namespace );
48
-
49
-		register_rest_route(
50
-			$this->namespace,
51
-			'/' . $this->rest_base . '/discount-types',
52
-			array(
53
-				array(
54
-					'methods'             => WP_REST_Server::READABLE,
55
-					'callback'            => array( $this, 'get_discount_types' ),
56
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
57
-				),
58
-			)
59
-		);
60
-
61
-	}
62
-
63
-	/**
64
-	 * Handles rest requests for discount types.
65
-	 *
66
-	 * @since 1.0.13
67
-	 *
68
-	 *
69
-	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
70
-	 */
71
-	public function get_discount_types() {
72
-		return rest_ensure_response( wpinv_get_discount_types() );
73
-	}
18
+     * Post type.
19
+     *
20
+     * @var string
21
+     */
22
+    protected $post_type = 'wpi_discount';
74 23
 
75 24
     /**
76
-	 * Retrieves the query params for the discount collection.
77
-	 *
78
-	 * @since 1.0.13
79
-	 *
80
-	 * @return array Collection parameters.
81
-	 */
82
-	public function get_collection_params() {
83
-
84
-		$params = array_merge(
85
-			parent::get_collection_params(),
86
-        	array(
87
-
88
-				// Discount types
89
-				'type' => array(
90
-					'description'       => __( 'Type of discounts to fetch.', 'invoicing' ),
91
-					'type'              => array( 'array', 'string' ),
92
-					'default'           => 'any',
93
-					'validate_callback' => 'rest_validate_request_arg',
94
-					'sanitize_callback' => 'wpinv_parse_list',
95
-					'items'             => array(
96
-						'enum' => array_merge( array( 'any' ), array_keys( wpinv_get_discount_types() ) ),
97
-						'type' => 'string',
98
-					),
99
-				),
100
-
101
-			)
102
-		);
103
-
104
-		// Filter collection parameters for the discounts controller.
105
-		return apply_filters( 'getpaid_rest_discounts_collection_params', $params, $this );
106
-	}
107
-
108
-	/**
109
-	 * Determine the allowed query_vars for a get_items() response and
110
-	 * prepare for WP_Query.
111
-	 *
112
-	 * @param array           $prepared_args Prepared arguments.
113
-	 * @param WP_REST_Request $request Request object.
114
-	 * @return array          $query_args
115
-	 */
116
-	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
117
-
118
-		$query_args = parent::prepare_items_query( $prepared_args );
119
-
120
-		// Retrieve items by type.
121
-		if ( ! in_array( 'any', $request['type'] ) ) {
122
-
123
-			if ( empty( $query_args['meta_query'] ) ) {
124
-				$query_args['meta_query'] = array();
125
-			}
126
-
127
-			$query_args['meta_query'][] = array(
128
-				'key'     => '_wpi_discount_type',
129
-				'value'   => implode( ',', $request['type'] ),
130
-				'compare' => 'IN',
131
-			);
132
-
133
-		}
134
-
135
-		return apply_filters( 'getpaid_rest_discounts_prepare_items_query', $query_args, $request, $this );
136
-
137
-	}
138
-
139
-	/**
140
-	 * Retrieves a valid list of post statuses.
141
-	 *
142
-	 * @since 1.0.15
143
-	 *
144
-	 * @return array A list of registered item statuses.
145
-	 */
146
-	public function get_post_statuses() {
147
-		return array( 'publish', 'pending', 'draft', 'expired' );
148
-	}
25
+     * The base of this controller's route.
26
+     *
27
+     * @since 1.0.13
28
+     * @var string
29
+     */
30
+    protected $rest_base = 'discounts';
31
+
32
+    /** Contains this controller's class name.
33
+     *
34
+     * @var string
35
+     */
36
+    public $crud_class = 'WPInv_Discount';
37
+
38
+    /**
39
+     * Registers the routes for the objects of the controller.
40
+     *
41
+     * @since 1.0.19
42
+     *
43
+     * @see register_rest_route()
44
+     */
45
+    public function register_namespace_routes( $namespace ) {
46
+
47
+        parent::register_namespace_routes( $namespace );
48
+
49
+        register_rest_route(
50
+            $this->namespace,
51
+            '/' . $this->rest_base . '/discount-types',
52
+            array(
53
+                array(
54
+                    'methods'             => WP_REST_Server::READABLE,
55
+                    'callback'            => array( $this, 'get_discount_types' ),
56
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
57
+                ),
58
+            )
59
+        );
60
+
61
+    }
62
+
63
+    /**
64
+     * Handles rest requests for discount types.
65
+     *
66
+     * @since 1.0.13
67
+     *
68
+     *
69
+     * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
70
+     */
71
+    public function get_discount_types() {
72
+        return rest_ensure_response( wpinv_get_discount_types() );
73
+    }
74
+
75
+    /**
76
+     * Retrieves the query params for the discount collection.
77
+     *
78
+     * @since 1.0.13
79
+     *
80
+     * @return array Collection parameters.
81
+     */
82
+    public function get_collection_params() {
83
+
84
+        $params = array_merge(
85
+            parent::get_collection_params(),
86
+            array(
87
+
88
+                // Discount types
89
+                'type' => array(
90
+                    'description'       => __( 'Type of discounts to fetch.', 'invoicing' ),
91
+                    'type'              => array( 'array', 'string' ),
92
+                    'default'           => 'any',
93
+                    'validate_callback' => 'rest_validate_request_arg',
94
+                    'sanitize_callback' => 'wpinv_parse_list',
95
+                    'items'             => array(
96
+                        'enum' => array_merge( array( 'any' ), array_keys( wpinv_get_discount_types() ) ),
97
+                        'type' => 'string',
98
+                    ),
99
+                ),
100
+
101
+            )
102
+        );
103
+
104
+        // Filter collection parameters for the discounts controller.
105
+        return apply_filters( 'getpaid_rest_discounts_collection_params', $params, $this );
106
+    }
107
+
108
+    /**
109
+     * Determine the allowed query_vars for a get_items() response and
110
+     * prepare for WP_Query.
111
+     *
112
+     * @param array           $prepared_args Prepared arguments.
113
+     * @param WP_REST_Request $request Request object.
114
+     * @return array          $query_args
115
+     */
116
+    protected function prepare_items_query( $prepared_args = array(), $request = null ) {
117
+
118
+        $query_args = parent::prepare_items_query( $prepared_args );
119
+
120
+        // Retrieve items by type.
121
+        if ( ! in_array( 'any', $request['type'] ) ) {
122
+
123
+            if ( empty( $query_args['meta_query'] ) ) {
124
+                $query_args['meta_query'] = array();
125
+            }
126
+
127
+            $query_args['meta_query'][] = array(
128
+                'key'     => '_wpi_discount_type',
129
+                'value'   => implode( ',', $request['type'] ),
130
+                'compare' => 'IN',
131
+            );
132
+
133
+        }
134
+
135
+        return apply_filters( 'getpaid_rest_discounts_prepare_items_query', $query_args, $request, $this );
136
+
137
+    }
138
+
139
+    /**
140
+     * Retrieves a valid list of post statuses.
141
+     *
142
+     * @since 1.0.15
143
+     *
144
+     * @return array A list of registered item statuses.
145
+     */
146
+    public function get_post_statuses() {
147
+        return array( 'publish', 'pending', 'draft', 'expired' );
148
+    }
149 149
 
150 150
 }
Please login to merge, or discard this patch.
Spacing   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  * @version 1.0.19
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * REST API discounts controller class.
@@ -42,9 +42,9 @@  discard block
 block discarded – undo
42 42
 	 *
43 43
 	 * @see register_rest_route()
44 44
 	 */
45
-	public function register_namespace_routes( $namespace ) {
45
+	public function register_namespace_routes($namespace) {
46 46
 
47
-		parent::register_namespace_routes( $namespace );
47
+		parent::register_namespace_routes($namespace);
48 48
 
49 49
 		register_rest_route(
50 50
 			$this->namespace,
@@ -52,8 +52,8 @@  discard block
 block discarded – undo
52 52
 			array(
53 53
 				array(
54 54
 					'methods'             => WP_REST_Server::READABLE,
55
-					'callback'            => array( $this, 'get_discount_types' ),
56
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
55
+					'callback'            => array($this, 'get_discount_types'),
56
+					'permission_callback' => array($this, 'get_items_permissions_check'),
57 57
 				),
58 58
 			)
59 59
 		);
@@ -69,7 +69,7 @@  discard block
 block discarded – undo
69 69
 	 * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
70 70
 	 */
71 71
 	public function get_discount_types() {
72
-		return rest_ensure_response( wpinv_get_discount_types() );
72
+		return rest_ensure_response(wpinv_get_discount_types());
73 73
 	}
74 74
 
75 75
     /**
@@ -87,13 +87,13 @@  discard block
 block discarded – undo
87 87
 
88 88
 				// Discount types
89 89
 				'type' => array(
90
-					'description'       => __( 'Type of discounts to fetch.', 'invoicing' ),
91
-					'type'              => array( 'array', 'string' ),
90
+					'description'       => __('Type of discounts to fetch.', 'invoicing'),
91
+					'type'              => array('array', 'string'),
92 92
 					'default'           => 'any',
93 93
 					'validate_callback' => 'rest_validate_request_arg',
94 94
 					'sanitize_callback' => 'wpinv_parse_list',
95 95
 					'items'             => array(
96
-						'enum' => array_merge( array( 'any' ), array_keys( wpinv_get_discount_types() ) ),
96
+						'enum' => array_merge(array('any'), array_keys(wpinv_get_discount_types())),
97 97
 						'type' => 'string',
98 98
 					),
99 99
 				),
@@ -102,7 +102,7 @@  discard block
 block discarded – undo
102 102
 		);
103 103
 
104 104
 		// Filter collection parameters for the discounts controller.
105
-		return apply_filters( 'getpaid_rest_discounts_collection_params', $params, $this );
105
+		return apply_filters('getpaid_rest_discounts_collection_params', $params, $this);
106 106
 	}
107 107
 
108 108
 	/**
@@ -113,26 +113,26 @@  discard block
 block discarded – undo
113 113
 	 * @param WP_REST_Request $request Request object.
114 114
 	 * @return array          $query_args
115 115
 	 */
116
-	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
116
+	protected function prepare_items_query($prepared_args = array(), $request = null) {
117 117
 
118
-		$query_args = parent::prepare_items_query( $prepared_args );
118
+		$query_args = parent::prepare_items_query($prepared_args);
119 119
 
120 120
 		// Retrieve items by type.
121
-		if ( ! in_array( 'any', $request['type'] ) ) {
121
+		if (!in_array('any', $request['type'])) {
122 122
 
123
-			if ( empty( $query_args['meta_query'] ) ) {
123
+			if (empty($query_args['meta_query'])) {
124 124
 				$query_args['meta_query'] = array();
125 125
 			}
126 126
 
127 127
 			$query_args['meta_query'][] = array(
128 128
 				'key'     => '_wpi_discount_type',
129
-				'value'   => implode( ',', $request['type'] ),
129
+				'value'   => implode(',', $request['type']),
130 130
 				'compare' => 'IN',
131 131
 			);
132 132
 
133 133
 		}
134 134
 
135
-		return apply_filters( 'getpaid_rest_discounts_prepare_items_query', $query_args, $request, $this );
135
+		return apply_filters('getpaid_rest_discounts_prepare_items_query', $query_args, $request, $this);
136 136
 
137 137
 	}
138 138
 
@@ -144,7 +144,7 @@  discard block
 block discarded – undo
144 144
 	 * @return array A list of registered item statuses.
145 145
 	 */
146 146
 	public function get_post_statuses() {
147
-		return array( 'publish', 'pending', 'draft', 'expired' );
147
+		return array('publish', 'pending', 'draft', 'expired');
148 148
 	}
149 149
 
150 150
 }
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-crud-controller.php 2 patches
Indentation   +465 added lines, -465 removed lines patch added patch discarded remove patch
@@ -17,474 +17,474 @@
 block discarded – undo
17 17
  */
18 18
 class GetPaid_REST_CRUD_Controller extends GetPaid_REST_Controller {
19 19
 
20
-	/**
21
-	 * Contains this controller's class name.
22
-	 *
23
-	 * @var string
24
-	 */
25
-	public $crud_class;
26
-
27
-	/**
28
-	 * Contains the current CRUD object.
29
-	 *
30
-	 * @var GetPaid_Data
31
-	 */
32
-	protected $data_object;
33
-
34
-	/**
35
-	 * Registers the routes for the objects of the controller.
36
-	 *
37
-	 * @since 1.0.19
38
-	 *
39
-	 * @see register_rest_route()
40
-	 */
41
-	public function register_namespace_routes( $namespace ) {
42
-
43
-		register_rest_route(
44
-			$namespace,
45
-			'/' . $this->rest_base,
46
-			array(
47
-				array(
48
-					'methods'             => WP_REST_Server::READABLE,
49
-					'callback'            => array( $this, 'get_items' ),
50
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
51
-					'args'                => $this->get_collection_params(),
52
-				),
53
-				array(
54
-					'methods'             => WP_REST_Server::CREATABLE,
55
-					'callback'            => array( $this, 'create_item' ),
56
-					'permission_callback' => array( $this, 'create_item_permissions_check' ),
57
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
58
-				),
59
-				'schema' => array( $this, 'get_public_item_schema' ),
60
-			)
61
-		);
62
-
63
-		$get_item_args = array(
64
-			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
65
-		);
66
-
67
-		register_rest_route(
68
-			$namespace,
69
-			'/' . $this->rest_base . '/(?P<id>[\d]+)',
70
-			array(
71
-				'args'   => array(
72
-					'id' => array(
73
-						'description' => __( 'Unique identifier for the object.', 'invoicing' ),
74
-						'type'        => 'integer',
75
-					),
76
-				),
77
-				array(
78
-					'methods'             => WP_REST_Server::READABLE,
79
-					'callback'            => array( $this, 'get_item' ),
80
-					'permission_callback' => array( $this, 'get_item_permissions_check' ),
81
-					'args'                => $get_item_args,
82
-				),
83
-				array(
84
-					'methods'             => WP_REST_Server::EDITABLE,
85
-					'callback'            => array( $this, 'update_item' ),
86
-					'permission_callback' => array( $this, 'update_item_permissions_check' ),
87
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
88
-				),
89
-				array(
90
-					'methods'             => WP_REST_Server::DELETABLE,
91
-					'callback'            => array( $this, 'delete_item' ),
92
-					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
93
-					'args'                => array(
94
-						'force' => array(
95
-							'type'        => 'boolean',
96
-							'default'     => false,
97
-							'description' => __( 'Whether to bypass Trash and force deletion.', 'invoicing' ),
98
-						),
99
-					),
100
-				),
101
-				'schema' => array( $this, 'get_public_item_schema' ),
102
-			)
103
-		);
104
-
105
-	}
106
-
107
-	/**
108
-	 * Saves a single object.
109
-	 *
110
-	 * @param GetPaid_Data $object Object to save.
111
-	 * @return WP_Error|GetPaid_Data
112
-	 */
113
-	protected function save_object( $object ) {
114
-		$object->save();
115
-
116
-		if ( ! empty( $object->last_error ) ) {
117
-			return new WP_Error( 'rest_cannot_save', $object->last_error, array( 'status' => 400 ) );
118
-		}
119
-
120
-		return new $this->crud_class( $object->get_id() );
121
-	}
122
-
123
-	/**
124
-	 * Retrieves a single object.
125
-	 *
126
-	 * @since 1.0.13
127
-	 *
128
-	 * @param int|WP_Post $object_id Supplied ID.
129
-	 * @return GetPaid_Data|WP_Error GetPaid_Data object if ID is valid, WP_Error otherwise.
130
-	 */
131
-	protected function get_object( $object_id ) {
132
-
133
-		// Do we have an object?
134
-		if ( empty( $this->crud_class ) || ! class_exists( $this->crud_class ) ) {
135
-			return new WP_Error( 'no_crud_class', __( 'You need to specify a CRUD class for this controller', 'invoicing' ) );
136
-		}
137
-
138
-		// Fetch the object.
139
-		$object = new $this->crud_class( $object_id );
140
-		if ( ! empty( $object->last_error ) ) {
141
-			return new WP_Error( 'rest_object_invalid_id', $object->last_error, array( 'status' => 404 ) );
142
-		}
143
-
144
-		$this->data_object = $object;
145
-		return $object->get_id() ? $object : new WP_Error( 'rest_object_invalid_id', __( 'Invalid ID.', 'invoicing' ), array( 'status' => 404 ) );
146
-
147
-	}
148
-
149
-	/**
150
-	 * Get a single object.
151
-	 *
152
-	 * @param WP_REST_Request $request Full details about the request.
153
-	 * @return WP_Error|WP_REST_Response
154
-	 */
155
-	public function get_item( $request ) {
156
-
157
-		// Fetch the item.
158
-		$object = $this->get_object( $request['id'] );
159
-
160
-		if ( is_wp_error( $object ) ) {
161
-			return $object;
162
-		}
163
-
164
-		// Generate a response.
165
-		return rest_ensure_response( $this->prepare_item_for_response( $object, $request ) );
166
-
167
-	}
168
-
169
-	/**
170
-	 * Create a single object.
171
-	 *
172
-	 * @param WP_REST_Request $request Full details about the request.
173
-	 * @return WP_Error|WP_REST_Response
174
-	 */
175
-	public function create_item( $request ) {
176
-
177
-		// Can not create an existing item.
178
-		if ( ! empty( $request['id'] ) ) {
179
-			/* translators: %s: post type */
180
-			return new WP_Error( "getpaid_rest_{$this->rest_base}_exists", __( 'Cannot create existing resource.', 'invoicing' ), array( 'status' => 400 ) );
181
-		}
182
-
183
-		// Generate a GetPaid_Data object from the request.
184
-		$object = $this->prepare_item_for_database( $request );
185
-		if ( is_wp_error( $object ) ) {
186
-			return $object;
187
-		}
188
-
189
-		// Save the object.
190
-		$object = $this->save_object( $object );
191
-		if ( is_wp_error( $object ) ) {
192
-			return $object;
193
-		}
194
-
195
-		// Save special fields.
196
-		$save_special = $this->update_additional_fields_for_object( $object, $request );
197
-		if ( is_wp_error( $save_special ) ) {
198
-			$object->delete( true );
199
-			return $save_special;
200
-		}
201
-
202
-		$request->set_param( 'context', 'edit' );
203
-		$response = $this->prepare_item_for_response( $object, $request );
204
-		$response = rest_ensure_response( $response );
205
-		$response->set_status( 201 );
206
-		$response->header( 'Location', rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ) );
207
-
208
-		return $response;
209
-	}
210
-
211
-	/**
212
-	 * Update a single object.
213
-	 *
214
-	 * @param WP_REST_Request $request Full details about the request.
215
-	 * @return WP_Error|WP_REST_Response
216
-	 */
217
-	public function update_item( $request ) {
218
-
219
-		// Fetch the item.
220
-		$object = $this->get_object( $request['id'] );
221
-		if ( is_wp_error( $object ) ) {
222
-			return $object;
223
-		}
224
-
225
-		// Prepare the item for saving.
226
-		$object = $this->prepare_item_for_database( $request );
227
-		if ( is_wp_error( $object ) ) {
228
-			return $object;
229
-		}
230
-
231
-		// Save the item.
232
-		$object = $this->save_object( $object );
233
-		if ( is_wp_error( $object ) ) {
234
-			return $object;
235
-		}
236
-
237
-		// Save special fields (those added via hooks).
238
-		$save_special = $this->update_additional_fields_for_object( $object, $request );
239
-		if ( is_wp_error( $save_special ) ) {
240
-			return $save_special;
241
-		}
242
-
243
-		$request->set_param( 'context', 'edit' );
244
-		$response = $this->prepare_item_for_response( $object, $request );
245
-		return rest_ensure_response( $response );
246
-	}
247
-
248
-	/**
249
-	 * Prepare links for the request.
250
-	 *
251
-	 * @param GetPaid_Data    $object GetPaid_Data object.
252
-	 * @return array Links for the given object.
253
-	 */
254
-	protected function prepare_links( $object ) {
255
-
256
-		$links = array(
257
-			'self'       => array(
258
-				'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ),
259
-			),
260
-			'collection' => array(
261
-				'href' => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
262
-			),
263
-		);
264
-
265
-		return $links;
266
-	}
267
-
268
-	/**
269
-	 * Get the query params for collections of attachments.
270
-	 *
271
-	 * @return array
272
-	 */
273
-	public function get_collection_params() {
274
-		$params = parent::get_collection_params();
275
-		$params['context']['default'] = 'view';
276
-		return $params;
277
-	}
278
-
279
-	/**
280
-	 * Only return writable props from schema.
281
-	 *
282
-	 * @param  array $schema Schema.
283
-	 * @return bool
284
-	 */
285
-	public function filter_writable_props( $schema ) {
286
-		return empty( $schema['readonly'] );
287
-	}
288
-
289
-	/**
290
-	 * Prepare a single object for create or update.
291
-	 *
292
-	 * @since 1.0.19
293
-	 * @param  WP_REST_Request $request Request object.
294
-	 * @return GetPaid_Data|WP_Error Data object or WP_Error.
295
-	 */
296
-	protected function prepare_item_for_database( $request ) {
297
-
298
-		// Do we have an object?
299
-		if ( empty( $this->crud_class ) || ! class_exists( $this->crud_class ) ) {
300
-			return new WP_Error( 'no_crud_class', __( 'You need to specify a CRUD class for this controller', 'invoicing' ) );
301
-		}
302
-
303
-		// Prepare the object.
304
-		$id        = isset( $request['id'] ) ? absint( $request['id'] ) : 0;
305
-		$object    = new $this->crud_class( $id );
306
-
307
-		// Abort if an error exists.
308
-		if ( ! empty( $object->last_error ) ) {
309
-			return new WP_Error( 'invalid_item', $object->last_error );
310
-		}
311
-
312
-		$schema    = $this->get_item_schema();
313
-		$data_keys = array_keys( array_filter( $schema['properties'], array( $this, 'filter_writable_props' ) ) );
314
-
315
-		// Handle all writable props.
316
-		foreach ( $data_keys as $key ) {
317
-			$value = $request[ $key ];
318
-
319
-			if ( ! is_null( $value ) ) {
320
-				switch ( $key ) {
321
-
322
-					case 'meta_data':
323
-						if ( is_array( $value ) ) {
324
-							foreach ( $value as $meta ) {
325
-								$object->update_meta_data( $meta['key'], $meta['value'], isset( $meta['id'] ) ? $meta['id'] : '' );
326
-							}
327
-						}
328
-						break;
329
-
330
-					default:
331
-						if ( is_callable( array( $object, "set_{$key}" ) ) ) {
332
-							$object->{"set_{$key}"}( $value );
333
-						}
334
-						break;
335
-				}
336
-			}
20
+    /**
21
+     * Contains this controller's class name.
22
+     *
23
+     * @var string
24
+     */
25
+    public $crud_class;
26
+
27
+    /**
28
+     * Contains the current CRUD object.
29
+     *
30
+     * @var GetPaid_Data
31
+     */
32
+    protected $data_object;
33
+
34
+    /**
35
+     * Registers the routes for the objects of the controller.
36
+     *
37
+     * @since 1.0.19
38
+     *
39
+     * @see register_rest_route()
40
+     */
41
+    public function register_namespace_routes( $namespace ) {
42
+
43
+        register_rest_route(
44
+            $namespace,
45
+            '/' . $this->rest_base,
46
+            array(
47
+                array(
48
+                    'methods'             => WP_REST_Server::READABLE,
49
+                    'callback'            => array( $this, 'get_items' ),
50
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
51
+                    'args'                => $this->get_collection_params(),
52
+                ),
53
+                array(
54
+                    'methods'             => WP_REST_Server::CREATABLE,
55
+                    'callback'            => array( $this, 'create_item' ),
56
+                    'permission_callback' => array( $this, 'create_item_permissions_check' ),
57
+                    'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
58
+                ),
59
+                'schema' => array( $this, 'get_public_item_schema' ),
60
+            )
61
+        );
62
+
63
+        $get_item_args = array(
64
+            'context' => $this->get_context_param( array( 'default' => 'view' ) ),
65
+        );
66
+
67
+        register_rest_route(
68
+            $namespace,
69
+            '/' . $this->rest_base . '/(?P<id>[\d]+)',
70
+            array(
71
+                'args'   => array(
72
+                    'id' => array(
73
+                        'description' => __( 'Unique identifier for the object.', 'invoicing' ),
74
+                        'type'        => 'integer',
75
+                    ),
76
+                ),
77
+                array(
78
+                    'methods'             => WP_REST_Server::READABLE,
79
+                    'callback'            => array( $this, 'get_item' ),
80
+                    'permission_callback' => array( $this, 'get_item_permissions_check' ),
81
+                    'args'                => $get_item_args,
82
+                ),
83
+                array(
84
+                    'methods'             => WP_REST_Server::EDITABLE,
85
+                    'callback'            => array( $this, 'update_item' ),
86
+                    'permission_callback' => array( $this, 'update_item_permissions_check' ),
87
+                    'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
88
+                ),
89
+                array(
90
+                    'methods'             => WP_REST_Server::DELETABLE,
91
+                    'callback'            => array( $this, 'delete_item' ),
92
+                    'permission_callback' => array( $this, 'delete_item_permissions_check' ),
93
+                    'args'                => array(
94
+                        'force' => array(
95
+                            'type'        => 'boolean',
96
+                            'default'     => false,
97
+                            'description' => __( 'Whether to bypass Trash and force deletion.', 'invoicing' ),
98
+                        ),
99
+                    ),
100
+                ),
101
+                'schema' => array( $this, 'get_public_item_schema' ),
102
+            )
103
+        );
104
+
105
+    }
106
+
107
+    /**
108
+     * Saves a single object.
109
+     *
110
+     * @param GetPaid_Data $object Object to save.
111
+     * @return WP_Error|GetPaid_Data
112
+     */
113
+    protected function save_object( $object ) {
114
+        $object->save();
115
+
116
+        if ( ! empty( $object->last_error ) ) {
117
+            return new WP_Error( 'rest_cannot_save', $object->last_error, array( 'status' => 400 ) );
118
+        }
119
+
120
+        return new $this->crud_class( $object->get_id() );
121
+    }
122
+
123
+    /**
124
+     * Retrieves a single object.
125
+     *
126
+     * @since 1.0.13
127
+     *
128
+     * @param int|WP_Post $object_id Supplied ID.
129
+     * @return GetPaid_Data|WP_Error GetPaid_Data object if ID is valid, WP_Error otherwise.
130
+     */
131
+    protected function get_object( $object_id ) {
132
+
133
+        // Do we have an object?
134
+        if ( empty( $this->crud_class ) || ! class_exists( $this->crud_class ) ) {
135
+            return new WP_Error( 'no_crud_class', __( 'You need to specify a CRUD class for this controller', 'invoicing' ) );
136
+        }
137
+
138
+        // Fetch the object.
139
+        $object = new $this->crud_class( $object_id );
140
+        if ( ! empty( $object->last_error ) ) {
141
+            return new WP_Error( 'rest_object_invalid_id', $object->last_error, array( 'status' => 404 ) );
142
+        }
143
+
144
+        $this->data_object = $object;
145
+        return $object->get_id() ? $object : new WP_Error( 'rest_object_invalid_id', __( 'Invalid ID.', 'invoicing' ), array( 'status' => 404 ) );
146
+
147
+    }
148
+
149
+    /**
150
+     * Get a single object.
151
+     *
152
+     * @param WP_REST_Request $request Full details about the request.
153
+     * @return WP_Error|WP_REST_Response
154
+     */
155
+    public function get_item( $request ) {
156
+
157
+        // Fetch the item.
158
+        $object = $this->get_object( $request['id'] );
159
+
160
+        if ( is_wp_error( $object ) ) {
161
+            return $object;
162
+        }
163
+
164
+        // Generate a response.
165
+        return rest_ensure_response( $this->prepare_item_for_response( $object, $request ) );
166
+
167
+    }
168
+
169
+    /**
170
+     * Create a single object.
171
+     *
172
+     * @param WP_REST_Request $request Full details about the request.
173
+     * @return WP_Error|WP_REST_Response
174
+     */
175
+    public function create_item( $request ) {
176
+
177
+        // Can not create an existing item.
178
+        if ( ! empty( $request['id'] ) ) {
179
+            /* translators: %s: post type */
180
+            return new WP_Error( "getpaid_rest_{$this->rest_base}_exists", __( 'Cannot create existing resource.', 'invoicing' ), array( 'status' => 400 ) );
181
+        }
182
+
183
+        // Generate a GetPaid_Data object from the request.
184
+        $object = $this->prepare_item_for_database( $request );
185
+        if ( is_wp_error( $object ) ) {
186
+            return $object;
187
+        }
188
+
189
+        // Save the object.
190
+        $object = $this->save_object( $object );
191
+        if ( is_wp_error( $object ) ) {
192
+            return $object;
193
+        }
194
+
195
+        // Save special fields.
196
+        $save_special = $this->update_additional_fields_for_object( $object, $request );
197
+        if ( is_wp_error( $save_special ) ) {
198
+            $object->delete( true );
199
+            return $save_special;
200
+        }
201
+
202
+        $request->set_param( 'context', 'edit' );
203
+        $response = $this->prepare_item_for_response( $object, $request );
204
+        $response = rest_ensure_response( $response );
205
+        $response->set_status( 201 );
206
+        $response->header( 'Location', rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ) );
207
+
208
+        return $response;
209
+    }
210
+
211
+    /**
212
+     * Update a single object.
213
+     *
214
+     * @param WP_REST_Request $request Full details about the request.
215
+     * @return WP_Error|WP_REST_Response
216
+     */
217
+    public function update_item( $request ) {
218
+
219
+        // Fetch the item.
220
+        $object = $this->get_object( $request['id'] );
221
+        if ( is_wp_error( $object ) ) {
222
+            return $object;
223
+        }
224
+
225
+        // Prepare the item for saving.
226
+        $object = $this->prepare_item_for_database( $request );
227
+        if ( is_wp_error( $object ) ) {
228
+            return $object;
229
+        }
230
+
231
+        // Save the item.
232
+        $object = $this->save_object( $object );
233
+        if ( is_wp_error( $object ) ) {
234
+            return $object;
235
+        }
236
+
237
+        // Save special fields (those added via hooks).
238
+        $save_special = $this->update_additional_fields_for_object( $object, $request );
239
+        if ( is_wp_error( $save_special ) ) {
240
+            return $save_special;
241
+        }
242
+
243
+        $request->set_param( 'context', 'edit' );
244
+        $response = $this->prepare_item_for_response( $object, $request );
245
+        return rest_ensure_response( $response );
246
+    }
247
+
248
+    /**
249
+     * Prepare links for the request.
250
+     *
251
+     * @param GetPaid_Data    $object GetPaid_Data object.
252
+     * @return array Links for the given object.
253
+     */
254
+    protected function prepare_links( $object ) {
255
+
256
+        $links = array(
257
+            'self'       => array(
258
+                'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ),
259
+            ),
260
+            'collection' => array(
261
+                'href' => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
262
+            ),
263
+        );
264
+
265
+        return $links;
266
+    }
267
+
268
+    /**
269
+     * Get the query params for collections of attachments.
270
+     *
271
+     * @return array
272
+     */
273
+    public function get_collection_params() {
274
+        $params = parent::get_collection_params();
275
+        $params['context']['default'] = 'view';
276
+        return $params;
277
+    }
278
+
279
+    /**
280
+     * Only return writable props from schema.
281
+     *
282
+     * @param  array $schema Schema.
283
+     * @return bool
284
+     */
285
+    public function filter_writable_props( $schema ) {
286
+        return empty( $schema['readonly'] );
287
+    }
288
+
289
+    /**
290
+     * Prepare a single object for create or update.
291
+     *
292
+     * @since 1.0.19
293
+     * @param  WP_REST_Request $request Request object.
294
+     * @return GetPaid_Data|WP_Error Data object or WP_Error.
295
+     */
296
+    protected function prepare_item_for_database( $request ) {
297
+
298
+        // Do we have an object?
299
+        if ( empty( $this->crud_class ) || ! class_exists( $this->crud_class ) ) {
300
+            return new WP_Error( 'no_crud_class', __( 'You need to specify a CRUD class for this controller', 'invoicing' ) );
301
+        }
302
+
303
+        // Prepare the object.
304
+        $id        = isset( $request['id'] ) ? absint( $request['id'] ) : 0;
305
+        $object    = new $this->crud_class( $id );
306
+
307
+        // Abort if an error exists.
308
+        if ( ! empty( $object->last_error ) ) {
309
+            return new WP_Error( 'invalid_item', $object->last_error );
310
+        }
311
+
312
+        $schema    = $this->get_item_schema();
313
+        $data_keys = array_keys( array_filter( $schema['properties'], array( $this, 'filter_writable_props' ) ) );
314
+
315
+        // Handle all writable props.
316
+        foreach ( $data_keys as $key ) {
317
+            $value = $request[ $key ];
318
+
319
+            if ( ! is_null( $value ) ) {
320
+                switch ( $key ) {
321
+
322
+                    case 'meta_data':
323
+                        if ( is_array( $value ) ) {
324
+                            foreach ( $value as $meta ) {
325
+                                $object->update_meta_data( $meta['key'], $meta['value'], isset( $meta['id'] ) ? $meta['id'] : '' );
326
+                            }
327
+                        }
328
+                        break;
329
+
330
+                    default:
331
+                        if ( is_callable( array( $object, "set_{$key}" ) ) ) {
332
+                            $object->{"set_{$key}"}( $value );
333
+                        }
334
+                        break;
335
+                }
336
+            }
337 337
 }
338 338
 
339
-		// Filters an object before it is inserted via the REST API..
340
-		return apply_filters( "getpaid_rest_pre_insert_{$this->rest_base}_object", $object, $request );
341
-	}
342
-
343
-	/**
344
-	 * Retrieves data from a GetPaid class.
345
-	 *
346
-	 * @since  1.0.19
347
-	 * @param  GetPaid_Meta_Data[]    $meta_data  meta data objects.
348
-	 * @return array
349
-	 */
350
-	protected function prepare_object_meta_data( $meta_data ) {
351
-		$meta = array();
352
-
353
-		foreach ( $meta_data as $object ) {
354
-			$meta[] = $object->get_data();
355
-		}
356
-
357
-		return $meta;
358
-	}
359
-
360
-	/**
361
-	 * Retrieves invoice items.
362
-	 *
363
-	 * @since  1.0.19
364
-	 * @param  WPInv_Invoice $invoice  Invoice items.
365
-	 * @param array            $fields Fields to include.
366
-	 * @return array
367
-	 */
368
-	protected function prepare_invoice_items( $invoice ) {
369
-		$items = array();
370
-
371
-		foreach ( $invoice->get_items() as $item ) {
372
-
373
-			$item_data = $item->prepare_data_for_saving();
374
-
375
-			if ( 'amount' == $invoice->get_template() ) {
376
-				$item_data['quantity'] = 1;
377
-			}
378
-
379
-			$items[] = $item_data;
380
-		}
381
-
382
-		return $items;
383
-	}
384
-
385
-	/**
386
-	 * Retrieves data from a GetPaid class.
387
-	 *
388
-	 * @since  1.0.19
389
-	 * @param  GetPaid_Data    $object  Data object.
390
-	 * @param array            $fields Fields to include.
391
-	 * @param string           $context either view or edit.
392
-	 * @return array
393
-	 */
394
-	protected function prepare_object_data( $object, $fields, $context = 'view' ) {
395
-
396
-		$data = array();
397
-
398
-		// Handle all writable props.
399
-		foreach ( array_keys( $this->get_schema_properties() ) as $key ) {
400
-
401
-			// Abort if it is not included.
402
-			if ( ! empty( $fields ) && ! $this->is_field_included( $key, $fields ) ) {
403
-				continue;
404
-			}
405
-
406
-			// Or this current object does not support the field.
407
-			if ( ! $this->object_supports_field( $object, $key ) ) {
408
-				continue;
409
-			}
410
-
411
-			// Handle meta data.
412
-			if ( $key == 'meta_data' ) {
413
-				$data['meta_data'] = $this->prepare_object_meta_data( $object->get_meta_data() );
414
-				continue;
415
-			}
416
-
417
-			// Handle items.
418
-			if ( $key == 'items' && is_a( $object, 'WPInv_Invoice' ) ) {
419
-				$data['items'] = $this->prepare_invoice_items( $object );
420
-				continue;
421
-			}
422
-
423
-			// Booleans.
424
-			if ( is_callable( array( $object, $key ) ) ) {
425
-				$data[ $key ] = $object->$key( $context );
426
-				continue;
427
-			}
428
-
429
-			// Get object value.
430
-			if ( is_callable( array( $object, "get_{$key}" ) ) ) {
431
-				$value = $object->{"get_{$key}"}( $context );
432
-
433
-				// If the value is an instance of GetPaid_Data...
434
-				if ( is_a( $value, 'GetPaid_Data' ) ) {
435
-					$value = $value->get_data( $context );
436
-				}
437
-
438
-				// For objects, retrieves it's properties.
439
-				$data[ $key ] = is_object( $value ) ? get_object_vars( $value ) : $value;
440
-				continue;
441
-			}
339
+        // Filters an object before it is inserted via the REST API..
340
+        return apply_filters( "getpaid_rest_pre_insert_{$this->rest_base}_object", $object, $request );
341
+    }
342
+
343
+    /**
344
+     * Retrieves data from a GetPaid class.
345
+     *
346
+     * @since  1.0.19
347
+     * @param  GetPaid_Meta_Data[]    $meta_data  meta data objects.
348
+     * @return array
349
+     */
350
+    protected function prepare_object_meta_data( $meta_data ) {
351
+        $meta = array();
352
+
353
+        foreach ( $meta_data as $object ) {
354
+            $meta[] = $object->get_data();
355
+        }
356
+
357
+        return $meta;
358
+    }
359
+
360
+    /**
361
+     * Retrieves invoice items.
362
+     *
363
+     * @since  1.0.19
364
+     * @param  WPInv_Invoice $invoice  Invoice items.
365
+     * @param array            $fields Fields to include.
366
+     * @return array
367
+     */
368
+    protected function prepare_invoice_items( $invoice ) {
369
+        $items = array();
370
+
371
+        foreach ( $invoice->get_items() as $item ) {
372
+
373
+            $item_data = $item->prepare_data_for_saving();
374
+
375
+            if ( 'amount' == $invoice->get_template() ) {
376
+                $item_data['quantity'] = 1;
377
+            }
378
+
379
+            $items[] = $item_data;
380
+        }
381
+
382
+        return $items;
383
+    }
384
+
385
+    /**
386
+     * Retrieves data from a GetPaid class.
387
+     *
388
+     * @since  1.0.19
389
+     * @param  GetPaid_Data    $object  Data object.
390
+     * @param array            $fields Fields to include.
391
+     * @param string           $context either view or edit.
392
+     * @return array
393
+     */
394
+    protected function prepare_object_data( $object, $fields, $context = 'view' ) {
395
+
396
+        $data = array();
397
+
398
+        // Handle all writable props.
399
+        foreach ( array_keys( $this->get_schema_properties() ) as $key ) {
400
+
401
+            // Abort if it is not included.
402
+            if ( ! empty( $fields ) && ! $this->is_field_included( $key, $fields ) ) {
403
+                continue;
404
+            }
405
+
406
+            // Or this current object does not support the field.
407
+            if ( ! $this->object_supports_field( $object, $key ) ) {
408
+                continue;
409
+            }
410
+
411
+            // Handle meta data.
412
+            if ( $key == 'meta_data' ) {
413
+                $data['meta_data'] = $this->prepare_object_meta_data( $object->get_meta_data() );
414
+                continue;
415
+            }
416
+
417
+            // Handle items.
418
+            if ( $key == 'items' && is_a( $object, 'WPInv_Invoice' ) ) {
419
+                $data['items'] = $this->prepare_invoice_items( $object );
420
+                continue;
421
+            }
422
+
423
+            // Booleans.
424
+            if ( is_callable( array( $object, $key ) ) ) {
425
+                $data[ $key ] = $object->$key( $context );
426
+                continue;
427
+            }
428
+
429
+            // Get object value.
430
+            if ( is_callable( array( $object, "get_{$key}" ) ) ) {
431
+                $value = $object->{"get_{$key}"}( $context );
432
+
433
+                // If the value is an instance of GetPaid_Data...
434
+                if ( is_a( $value, 'GetPaid_Data' ) ) {
435
+                    $value = $value->get_data( $context );
436
+                }
437
+
438
+                // For objects, retrieves it's properties.
439
+                $data[ $key ] = is_object( $value ) ? get_object_vars( $value ) : $value;
440
+                continue;
441
+            }
442 442
 }
443 443
 
444
-		return $data;
445
-	}
446
-
447
-	/**
448
-	 * Checks if a key should be included in a response.
449
-	 *
450
-	 * @since  1.0.19
451
-	 * @param  GetPaid_Data $object  Data object.
452
-	 * @param  string       $field_key The key to check for.
453
-	 * @return bool
454
-	 */
455
-	public function object_supports_field( $object, $field_key ) {
456
-		return apply_filters( 'getpaid_rest_object_supports_key', true, $object, $field_key );
457
-	}
458
-
459
-	/**
460
-	 * Prepare a single object output for response.
461
-	 *
462
-	 * @since  1.0.19
463
-	 * @param  GetPaid_Data    $object  Data object.
464
-	 * @param  WP_REST_Request $request Request object.
465
-	 * @return WP_REST_Response
466
-	 */
467
-	public function prepare_item_for_response( $object, $request ) {
468
-		remove_filter( 'rest_post_dispatch', 'rest_filter_response_fields', 10 );
469
-
470
-		$this->data_object = $object;
471
-
472
-		// Fetch the fields to include in this response.
473
-		$fields = $this->get_fields_for_response( $request );
474
-
475
-		// Prepare object data.
476
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
477
-		$data    = $this->prepare_object_data( $object, $fields, $context );
478
-		$data    = $this->add_additional_fields_to_object( $data, $request );
479
-		$data    = $this->limit_object_to_requested_fields( $data, $fields );
480
-		$data    = $this->filter_response_by_context( $data, $context );
481
-
482
-		// Prepare the response.
483
-		$response = rest_ensure_response( $data );
484
-		$response->add_links( $this->prepare_links( $object, $request ) );
485
-
486
-		// Filter item response.
487
-		return apply_filters( "getpaid_rest_prepare_{$this->rest_base}_object", $response, $object, $request );
488
-	}
444
+        return $data;
445
+    }
446
+
447
+    /**
448
+     * Checks if a key should be included in a response.
449
+     *
450
+     * @since  1.0.19
451
+     * @param  GetPaid_Data $object  Data object.
452
+     * @param  string       $field_key The key to check for.
453
+     * @return bool
454
+     */
455
+    public function object_supports_field( $object, $field_key ) {
456
+        return apply_filters( 'getpaid_rest_object_supports_key', true, $object, $field_key );
457
+    }
458
+
459
+    /**
460
+     * Prepare a single object output for response.
461
+     *
462
+     * @since  1.0.19
463
+     * @param  GetPaid_Data    $object  Data object.
464
+     * @param  WP_REST_Request $request Request object.
465
+     * @return WP_REST_Response
466
+     */
467
+    public function prepare_item_for_response( $object, $request ) {
468
+        remove_filter( 'rest_post_dispatch', 'rest_filter_response_fields', 10 );
469
+
470
+        $this->data_object = $object;
471
+
472
+        // Fetch the fields to include in this response.
473
+        $fields = $this->get_fields_for_response( $request );
474
+
475
+        // Prepare object data.
476
+        $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
477
+        $data    = $this->prepare_object_data( $object, $fields, $context );
478
+        $data    = $this->add_additional_fields_to_object( $data, $request );
479
+        $data    = $this->limit_object_to_requested_fields( $data, $fields );
480
+        $data    = $this->filter_response_by_context( $data, $context );
481
+
482
+        // Prepare the response.
483
+        $response = rest_ensure_response( $data );
484
+        $response->add_links( $this->prepare_links( $object, $request ) );
485
+
486
+        // Filter item response.
487
+        return apply_filters( "getpaid_rest_prepare_{$this->rest_base}_object", $response, $object, $request );
488
+    }
489 489
 
490 490
 }
Please login to merge, or discard this patch.
Spacing   +117 added lines, -117 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  * @version 1.0.19
9 9
  */
10 10
 
11
-defined( 'ABSPATH' ) || exit;
11
+defined('ABSPATH') || exit;
12 12
 
13 13
 /**
14 14
  * GetPaid REST CRUD controller class.
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
 	 *
39 39
 	 * @see register_rest_route()
40 40
 	 */
41
-	public function register_namespace_routes( $namespace ) {
41
+	public function register_namespace_routes($namespace) {
42 42
 
43 43
 		register_rest_route(
44 44
 			$namespace,
@@ -46,22 +46,22 @@  discard block
 block discarded – undo
46 46
 			array(
47 47
 				array(
48 48
 					'methods'             => WP_REST_Server::READABLE,
49
-					'callback'            => array( $this, 'get_items' ),
50
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
49
+					'callback'            => array($this, 'get_items'),
50
+					'permission_callback' => array($this, 'get_items_permissions_check'),
51 51
 					'args'                => $this->get_collection_params(),
52 52
 				),
53 53
 				array(
54 54
 					'methods'             => WP_REST_Server::CREATABLE,
55
-					'callback'            => array( $this, 'create_item' ),
56
-					'permission_callback' => array( $this, 'create_item_permissions_check' ),
57
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::CREATABLE ),
55
+					'callback'            => array($this, 'create_item'),
56
+					'permission_callback' => array($this, 'create_item_permissions_check'),
57
+					'args'                => $this->get_endpoint_args_for_item_schema(WP_REST_Server::CREATABLE),
58 58
 				),
59
-				'schema' => array( $this, 'get_public_item_schema' ),
59
+				'schema' => array($this, 'get_public_item_schema'),
60 60
 			)
61 61
 		);
62 62
 
63 63
 		$get_item_args = array(
64
-			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
64
+			'context' => $this->get_context_param(array('default' => 'view')),
65 65
 		);
66 66
 
67 67
 		register_rest_route(
@@ -70,35 +70,35 @@  discard block
 block discarded – undo
70 70
 			array(
71 71
 				'args'   => array(
72 72
 					'id' => array(
73
-						'description' => __( 'Unique identifier for the object.', 'invoicing' ),
73
+						'description' => __('Unique identifier for the object.', 'invoicing'),
74 74
 						'type'        => 'integer',
75 75
 					),
76 76
 				),
77 77
 				array(
78 78
 					'methods'             => WP_REST_Server::READABLE,
79
-					'callback'            => array( $this, 'get_item' ),
80
-					'permission_callback' => array( $this, 'get_item_permissions_check' ),
79
+					'callback'            => array($this, 'get_item'),
80
+					'permission_callback' => array($this, 'get_item_permissions_check'),
81 81
 					'args'                => $get_item_args,
82 82
 				),
83 83
 				array(
84 84
 					'methods'             => WP_REST_Server::EDITABLE,
85
-					'callback'            => array( $this, 'update_item' ),
86
-					'permission_callback' => array( $this, 'update_item_permissions_check' ),
87
-					'args'                => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ),
85
+					'callback'            => array($this, 'update_item'),
86
+					'permission_callback' => array($this, 'update_item_permissions_check'),
87
+					'args'                => $this->get_endpoint_args_for_item_schema(WP_REST_Server::EDITABLE),
88 88
 				),
89 89
 				array(
90 90
 					'methods'             => WP_REST_Server::DELETABLE,
91
-					'callback'            => array( $this, 'delete_item' ),
92
-					'permission_callback' => array( $this, 'delete_item_permissions_check' ),
91
+					'callback'            => array($this, 'delete_item'),
92
+					'permission_callback' => array($this, 'delete_item_permissions_check'),
93 93
 					'args'                => array(
94 94
 						'force' => array(
95 95
 							'type'        => 'boolean',
96 96
 							'default'     => false,
97
-							'description' => __( 'Whether to bypass Trash and force deletion.', 'invoicing' ),
97
+							'description' => __('Whether to bypass Trash and force deletion.', 'invoicing'),
98 98
 						),
99 99
 					),
100 100
 				),
101
-				'schema' => array( $this, 'get_public_item_schema' ),
101
+				'schema' => array($this, 'get_public_item_schema'),
102 102
 			)
103 103
 		);
104 104
 
@@ -110,14 +110,14 @@  discard block
 block discarded – undo
110 110
 	 * @param GetPaid_Data $object Object to save.
111 111
 	 * @return WP_Error|GetPaid_Data
112 112
 	 */
113
-	protected function save_object( $object ) {
113
+	protected function save_object($object) {
114 114
 		$object->save();
115 115
 
116
-		if ( ! empty( $object->last_error ) ) {
117
-			return new WP_Error( 'rest_cannot_save', $object->last_error, array( 'status' => 400 ) );
116
+		if (!empty($object->last_error)) {
117
+			return new WP_Error('rest_cannot_save', $object->last_error, array('status' => 400));
118 118
 		}
119 119
 
120
-		return new $this->crud_class( $object->get_id() );
120
+		return new $this->crud_class($object->get_id());
121 121
 	}
122 122
 
123 123
 	/**
@@ -128,21 +128,21 @@  discard block
 block discarded – undo
128 128
 	 * @param int|WP_Post $object_id Supplied ID.
129 129
 	 * @return GetPaid_Data|WP_Error GetPaid_Data object if ID is valid, WP_Error otherwise.
130 130
 	 */
131
-	protected function get_object( $object_id ) {
131
+	protected function get_object($object_id) {
132 132
 
133 133
 		// Do we have an object?
134
-		if ( empty( $this->crud_class ) || ! class_exists( $this->crud_class ) ) {
135
-			return new WP_Error( 'no_crud_class', __( 'You need to specify a CRUD class for this controller', 'invoicing' ) );
134
+		if (empty($this->crud_class) || !class_exists($this->crud_class)) {
135
+			return new WP_Error('no_crud_class', __('You need to specify a CRUD class for this controller', 'invoicing'));
136 136
 		}
137 137
 
138 138
 		// Fetch the object.
139
-		$object = new $this->crud_class( $object_id );
140
-		if ( ! empty( $object->last_error ) ) {
141
-			return new WP_Error( 'rest_object_invalid_id', $object->last_error, array( 'status' => 404 ) );
139
+		$object = new $this->crud_class($object_id);
140
+		if (!empty($object->last_error)) {
141
+			return new WP_Error('rest_object_invalid_id', $object->last_error, array('status' => 404));
142 142
 		}
143 143
 
144 144
 		$this->data_object = $object;
145
-		return $object->get_id() ? $object : new WP_Error( 'rest_object_invalid_id', __( 'Invalid ID.', 'invoicing' ), array( 'status' => 404 ) );
145
+		return $object->get_id() ? $object : new WP_Error('rest_object_invalid_id', __('Invalid ID.', 'invoicing'), array('status' => 404));
146 146
 
147 147
 	}
148 148
 
@@ -152,17 +152,17 @@  discard block
 block discarded – undo
152 152
 	 * @param WP_REST_Request $request Full details about the request.
153 153
 	 * @return WP_Error|WP_REST_Response
154 154
 	 */
155
-	public function get_item( $request ) {
155
+	public function get_item($request) {
156 156
 
157 157
 		// Fetch the item.
158
-		$object = $this->get_object( $request['id'] );
158
+		$object = $this->get_object($request['id']);
159 159
 
160
-		if ( is_wp_error( $object ) ) {
160
+		if (is_wp_error($object)) {
161 161
 			return $object;
162 162
 		}
163 163
 
164 164
 		// Generate a response.
165
-		return rest_ensure_response( $this->prepare_item_for_response( $object, $request ) );
165
+		return rest_ensure_response($this->prepare_item_for_response($object, $request));
166 166
 
167 167
 	}
168 168
 
@@ -172,38 +172,38 @@  discard block
 block discarded – undo
172 172
 	 * @param WP_REST_Request $request Full details about the request.
173 173
 	 * @return WP_Error|WP_REST_Response
174 174
 	 */
175
-	public function create_item( $request ) {
175
+	public function create_item($request) {
176 176
 
177 177
 		// Can not create an existing item.
178
-		if ( ! empty( $request['id'] ) ) {
178
+		if (!empty($request['id'])) {
179 179
 			/* translators: %s: post type */
180
-			return new WP_Error( "getpaid_rest_{$this->rest_base}_exists", __( 'Cannot create existing resource.', 'invoicing' ), array( 'status' => 400 ) );
180
+			return new WP_Error("getpaid_rest_{$this->rest_base}_exists", __('Cannot create existing resource.', 'invoicing'), array('status' => 400));
181 181
 		}
182 182
 
183 183
 		// Generate a GetPaid_Data object from the request.
184
-		$object = $this->prepare_item_for_database( $request );
185
-		if ( is_wp_error( $object ) ) {
184
+		$object = $this->prepare_item_for_database($request);
185
+		if (is_wp_error($object)) {
186 186
 			return $object;
187 187
 		}
188 188
 
189 189
 		// Save the object.
190
-		$object = $this->save_object( $object );
191
-		if ( is_wp_error( $object ) ) {
190
+		$object = $this->save_object($object);
191
+		if (is_wp_error($object)) {
192 192
 			return $object;
193 193
 		}
194 194
 
195 195
 		// Save special fields.
196
-		$save_special = $this->update_additional_fields_for_object( $object, $request );
197
-		if ( is_wp_error( $save_special ) ) {
198
-			$object->delete( true );
196
+		$save_special = $this->update_additional_fields_for_object($object, $request);
197
+		if (is_wp_error($save_special)) {
198
+			$object->delete(true);
199 199
 			return $save_special;
200 200
 		}
201 201
 
202
-		$request->set_param( 'context', 'edit' );
203
-		$response = $this->prepare_item_for_response( $object, $request );
204
-		$response = rest_ensure_response( $response );
205
-		$response->set_status( 201 );
206
-		$response->header( 'Location', rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ) );
202
+		$request->set_param('context', 'edit');
203
+		$response = $this->prepare_item_for_response($object, $request);
204
+		$response = rest_ensure_response($response);
205
+		$response->set_status(201);
206
+		$response->header('Location', rest_url(sprintf('/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id())));
207 207
 
208 208
 		return $response;
209 209
 	}
@@ -214,35 +214,35 @@  discard block
 block discarded – undo
214 214
 	 * @param WP_REST_Request $request Full details about the request.
215 215
 	 * @return WP_Error|WP_REST_Response
216 216
 	 */
217
-	public function update_item( $request ) {
217
+	public function update_item($request) {
218 218
 
219 219
 		// Fetch the item.
220
-		$object = $this->get_object( $request['id'] );
221
-		if ( is_wp_error( $object ) ) {
220
+		$object = $this->get_object($request['id']);
221
+		if (is_wp_error($object)) {
222 222
 			return $object;
223 223
 		}
224 224
 
225 225
 		// Prepare the item for saving.
226
-		$object = $this->prepare_item_for_database( $request );
227
-		if ( is_wp_error( $object ) ) {
226
+		$object = $this->prepare_item_for_database($request);
227
+		if (is_wp_error($object)) {
228 228
 			return $object;
229 229
 		}
230 230
 
231 231
 		// Save the item.
232
-		$object = $this->save_object( $object );
233
-		if ( is_wp_error( $object ) ) {
232
+		$object = $this->save_object($object);
233
+		if (is_wp_error($object)) {
234 234
 			return $object;
235 235
 		}
236 236
 
237 237
 		// Save special fields (those added via hooks).
238
-		$save_special = $this->update_additional_fields_for_object( $object, $request );
239
-		if ( is_wp_error( $save_special ) ) {
238
+		$save_special = $this->update_additional_fields_for_object($object, $request);
239
+		if (is_wp_error($save_special)) {
240 240
 			return $save_special;
241 241
 		}
242 242
 
243
-		$request->set_param( 'context', 'edit' );
244
-		$response = $this->prepare_item_for_response( $object, $request );
245
-		return rest_ensure_response( $response );
243
+		$request->set_param('context', 'edit');
244
+		$response = $this->prepare_item_for_response($object, $request);
245
+		return rest_ensure_response($response);
246 246
 	}
247 247
 
248 248
 	/**
@@ -251,14 +251,14 @@  discard block
 block discarded – undo
251 251
 	 * @param GetPaid_Data    $object GetPaid_Data object.
252 252
 	 * @return array Links for the given object.
253 253
 	 */
254
-	protected function prepare_links( $object ) {
254
+	protected function prepare_links($object) {
255 255
 
256 256
 		$links = array(
257 257
 			'self'       => array(
258
-				'href' => rest_url( sprintf( '/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id() ) ),
258
+				'href' => rest_url(sprintf('/%s/%s/%d', $this->namespace, $this->rest_base, $object->get_id())),
259 259
 			),
260 260
 			'collection' => array(
261
-				'href' => rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ),
261
+				'href' => rest_url(sprintf('/%s/%s', $this->namespace, $this->rest_base)),
262 262
 			),
263 263
 		);
264 264
 
@@ -282,8 +282,8 @@  discard block
 block discarded – undo
282 282
 	 * @param  array $schema Schema.
283 283
 	 * @return bool
284 284
 	 */
285
-	public function filter_writable_props( $schema ) {
286
-		return empty( $schema['readonly'] );
285
+	public function filter_writable_props($schema) {
286
+		return empty($schema['readonly']);
287 287
 	}
288 288
 
289 289
 	/**
@@ -293,43 +293,43 @@  discard block
 block discarded – undo
293 293
 	 * @param  WP_REST_Request $request Request object.
294 294
 	 * @return GetPaid_Data|WP_Error Data object or WP_Error.
295 295
 	 */
296
-	protected function prepare_item_for_database( $request ) {
296
+	protected function prepare_item_for_database($request) {
297 297
 
298 298
 		// Do we have an object?
299
-		if ( empty( $this->crud_class ) || ! class_exists( $this->crud_class ) ) {
300
-			return new WP_Error( 'no_crud_class', __( 'You need to specify a CRUD class for this controller', 'invoicing' ) );
299
+		if (empty($this->crud_class) || !class_exists($this->crud_class)) {
300
+			return new WP_Error('no_crud_class', __('You need to specify a CRUD class for this controller', 'invoicing'));
301 301
 		}
302 302
 
303 303
 		// Prepare the object.
304
-		$id        = isset( $request['id'] ) ? absint( $request['id'] ) : 0;
305
-		$object    = new $this->crud_class( $id );
304
+		$id        = isset($request['id']) ? absint($request['id']) : 0;
305
+		$object    = new $this->crud_class($id);
306 306
 
307 307
 		// Abort if an error exists.
308
-		if ( ! empty( $object->last_error ) ) {
309
-			return new WP_Error( 'invalid_item', $object->last_error );
308
+		if (!empty($object->last_error)) {
309
+			return new WP_Error('invalid_item', $object->last_error);
310 310
 		}
311 311
 
312 312
 		$schema    = $this->get_item_schema();
313
-		$data_keys = array_keys( array_filter( $schema['properties'], array( $this, 'filter_writable_props' ) ) );
313
+		$data_keys = array_keys(array_filter($schema['properties'], array($this, 'filter_writable_props')));
314 314
 
315 315
 		// Handle all writable props.
316
-		foreach ( $data_keys as $key ) {
317
-			$value = $request[ $key ];
316
+		foreach ($data_keys as $key) {
317
+			$value = $request[$key];
318 318
 
319
-			if ( ! is_null( $value ) ) {
320
-				switch ( $key ) {
319
+			if (!is_null($value)) {
320
+				switch ($key) {
321 321
 
322 322
 					case 'meta_data':
323
-						if ( is_array( $value ) ) {
324
-							foreach ( $value as $meta ) {
325
-								$object->update_meta_data( $meta['key'], $meta['value'], isset( $meta['id'] ) ? $meta['id'] : '' );
323
+						if (is_array($value)) {
324
+							foreach ($value as $meta) {
325
+								$object->update_meta_data($meta['key'], $meta['value'], isset($meta['id']) ? $meta['id'] : '');
326 326
 							}
327 327
 						}
328 328
 						break;
329 329
 
330 330
 					default:
331
-						if ( is_callable( array( $object, "set_{$key}" ) ) ) {
332
-							$object->{"set_{$key}"}( $value );
331
+						if (is_callable(array($object, "set_{$key}"))) {
332
+							$object->{"set_{$key}"}($value);
333 333
 						}
334 334
 						break;
335 335
 				}
@@ -337,7 +337,7 @@  discard block
 block discarded – undo
337 337
 }
338 338
 
339 339
 		// Filters an object before it is inserted via the REST API..
340
-		return apply_filters( "getpaid_rest_pre_insert_{$this->rest_base}_object", $object, $request );
340
+		return apply_filters("getpaid_rest_pre_insert_{$this->rest_base}_object", $object, $request);
341 341
 	}
342 342
 
343 343
 	/**
@@ -347,10 +347,10 @@  discard block
 block discarded – undo
347 347
 	 * @param  GetPaid_Meta_Data[]    $meta_data  meta data objects.
348 348
 	 * @return array
349 349
 	 */
350
-	protected function prepare_object_meta_data( $meta_data ) {
350
+	protected function prepare_object_meta_data($meta_data) {
351 351
 		$meta = array();
352 352
 
353
-		foreach ( $meta_data as $object ) {
353
+		foreach ($meta_data as $object) {
354 354
 			$meta[] = $object->get_data();
355 355
 		}
356 356
 
@@ -365,14 +365,14 @@  discard block
 block discarded – undo
365 365
 	 * @param array            $fields Fields to include.
366 366
 	 * @return array
367 367
 	 */
368
-	protected function prepare_invoice_items( $invoice ) {
368
+	protected function prepare_invoice_items($invoice) {
369 369
 		$items = array();
370 370
 
371
-		foreach ( $invoice->get_items() as $item ) {
371
+		foreach ($invoice->get_items() as $item) {
372 372
 
373 373
 			$item_data = $item->prepare_data_for_saving();
374 374
 
375
-			if ( 'amount' == $invoice->get_template() ) {
375
+			if ('amount' == $invoice->get_template()) {
376 376
 				$item_data['quantity'] = 1;
377 377
 			}
378 378
 
@@ -391,52 +391,52 @@  discard block
 block discarded – undo
391 391
 	 * @param string           $context either view or edit.
392 392
 	 * @return array
393 393
 	 */
394
-	protected function prepare_object_data( $object, $fields, $context = 'view' ) {
394
+	protected function prepare_object_data($object, $fields, $context = 'view') {
395 395
 
396 396
 		$data = array();
397 397
 
398 398
 		// Handle all writable props.
399
-		foreach ( array_keys( $this->get_schema_properties() ) as $key ) {
399
+		foreach (array_keys($this->get_schema_properties()) as $key) {
400 400
 
401 401
 			// Abort if it is not included.
402
-			if ( ! empty( $fields ) && ! $this->is_field_included( $key, $fields ) ) {
402
+			if (!empty($fields) && !$this->is_field_included($key, $fields)) {
403 403
 				continue;
404 404
 			}
405 405
 
406 406
 			// Or this current object does not support the field.
407
-			if ( ! $this->object_supports_field( $object, $key ) ) {
407
+			if (!$this->object_supports_field($object, $key)) {
408 408
 				continue;
409 409
 			}
410 410
 
411 411
 			// Handle meta data.
412
-			if ( $key == 'meta_data' ) {
413
-				$data['meta_data'] = $this->prepare_object_meta_data( $object->get_meta_data() );
412
+			if ($key == 'meta_data') {
413
+				$data['meta_data'] = $this->prepare_object_meta_data($object->get_meta_data());
414 414
 				continue;
415 415
 			}
416 416
 
417 417
 			// Handle items.
418
-			if ( $key == 'items' && is_a( $object, 'WPInv_Invoice' ) ) {
419
-				$data['items'] = $this->prepare_invoice_items( $object );
418
+			if ($key == 'items' && is_a($object, 'WPInv_Invoice')) {
419
+				$data['items'] = $this->prepare_invoice_items($object);
420 420
 				continue;
421 421
 			}
422 422
 
423 423
 			// Booleans.
424
-			if ( is_callable( array( $object, $key ) ) ) {
425
-				$data[ $key ] = $object->$key( $context );
424
+			if (is_callable(array($object, $key))) {
425
+				$data[$key] = $object->$key($context);
426 426
 				continue;
427 427
 			}
428 428
 
429 429
 			// Get object value.
430
-			if ( is_callable( array( $object, "get_{$key}" ) ) ) {
431
-				$value = $object->{"get_{$key}"}( $context );
430
+			if (is_callable(array($object, "get_{$key}"))) {
431
+				$value = $object->{"get_{$key}"}($context);
432 432
 
433 433
 				// If the value is an instance of GetPaid_Data...
434
-				if ( is_a( $value, 'GetPaid_Data' ) ) {
435
-					$value = $value->get_data( $context );
434
+				if (is_a($value, 'GetPaid_Data')) {
435
+					$value = $value->get_data($context);
436 436
 				}
437 437
 
438 438
 				// For objects, retrieves it's properties.
439
-				$data[ $key ] = is_object( $value ) ? get_object_vars( $value ) : $value;
439
+				$data[$key] = is_object($value) ? get_object_vars($value) : $value;
440 440
 				continue;
441 441
 			}
442 442
 }
@@ -452,8 +452,8 @@  discard block
 block discarded – undo
452 452
 	 * @param  string       $field_key The key to check for.
453 453
 	 * @return bool
454 454
 	 */
455
-	public function object_supports_field( $object, $field_key ) {
456
-		return apply_filters( 'getpaid_rest_object_supports_key', true, $object, $field_key );
455
+	public function object_supports_field($object, $field_key) {
456
+		return apply_filters('getpaid_rest_object_supports_key', true, $object, $field_key);
457 457
 	}
458 458
 
459 459
 	/**
@@ -464,27 +464,27 @@  discard block
 block discarded – undo
464 464
 	 * @param  WP_REST_Request $request Request object.
465 465
 	 * @return WP_REST_Response
466 466
 	 */
467
-	public function prepare_item_for_response( $object, $request ) {
468
-		remove_filter( 'rest_post_dispatch', 'rest_filter_response_fields', 10 );
467
+	public function prepare_item_for_response($object, $request) {
468
+		remove_filter('rest_post_dispatch', 'rest_filter_response_fields', 10);
469 469
 
470 470
 		$this->data_object = $object;
471 471
 
472 472
 		// Fetch the fields to include in this response.
473
-		$fields = $this->get_fields_for_response( $request );
473
+		$fields = $this->get_fields_for_response($request);
474 474
 
475 475
 		// Prepare object data.
476
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
477
-		$data    = $this->prepare_object_data( $object, $fields, $context );
478
-		$data    = $this->add_additional_fields_to_object( $data, $request );
479
-		$data    = $this->limit_object_to_requested_fields( $data, $fields );
480
-		$data    = $this->filter_response_by_context( $data, $context );
476
+		$context = !empty($request['context']) ? $request['context'] : 'view';
477
+		$data    = $this->prepare_object_data($object, $fields, $context);
478
+		$data    = $this->add_additional_fields_to_object($data, $request);
479
+		$data    = $this->limit_object_to_requested_fields($data, $fields);
480
+		$data    = $this->filter_response_by_context($data, $context);
481 481
 
482 482
 		// Prepare the response.
483
-		$response = rest_ensure_response( $data );
484
-		$response->add_links( $this->prepare_links( $object, $request ) );
483
+		$response = rest_ensure_response($data);
484
+		$response->add_links($this->prepare_links($object, $request));
485 485
 
486 486
 		// Filter item response.
487
-		return apply_filters( "getpaid_rest_prepare_{$this->rest_base}_object", $response, $object, $request );
487
+		return apply_filters("getpaid_rest_prepare_{$this->rest_base}_object", $response, $object, $request);
488 488
 	}
489 489
 
490 490
 }
Please login to merge, or discard this patch.
includes/api/class-wpinv-rest-invoice-controller.php 2 patches
Indentation   +125 added lines, -125 removed lines patch added patch discarded remove patch
@@ -15,132 +15,132 @@
 block discarded – undo
15 15
 class WPInv_REST_Invoice_Controller extends GetPaid_REST_Posts_Controller {
16 16
 
17 17
     /**
18
-	 * Post type.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	protected $post_type = 'wpi_invoice';
23
-
24
-	/**
25
-	 * The base of this controller's route.
26
-	 *
27
-	 * @since 1.0.13
28
-	 * @var string
29
-	 */
30
-	protected $rest_base = 'invoices';
31
-
32
-	/** Contains this controller's class name.
33
-	 *
34
-	 * @var string
35
-	 */
36
-	public $crud_class = 'WPInv_Invoice';
18
+     * Post type.
19
+     *
20
+     * @var string
21
+     */
22
+    protected $post_type = 'wpi_invoice';
37 23
 
38 24
     /**
39
-	 * Retrieves the query params for the invoices collection.
40
-	 *
41
-	 * @since 1.0.13
42
-	 *
43
-	 * @return array Collection parameters.
44
-	 */
45
-	public function get_collection_params() {
46
-
47
-		$params = array_merge(
48
-			parent::get_collection_params(),
49
-			array(
50
-
51
-				'customers'         => array(
52
-					'description'       => __( 'Limit result set to invoices for specific user ids.', 'invoicing' ),
53
-					'type'              => 'array',
54
-					'items'             => array(
55
-						'type' => 'integer',
56
-					),
57
-					'default'           => array(),
58
-					'sanitize_callback' => 'wp_parse_id_list',
59
-				),
60
-
61
-				'exclude_customers' => array(
62
-					'description'       => __( 'Exclude invoices to specific users.', 'invoicing' ),
63
-					'type'              => 'array',
64
-					'items'             => array(
65
-						'type' => 'integer',
66
-					),
67
-					'default'           => array(),
68
-					'sanitize_callback' => 'wp_parse_id_list',
69
-				),
70
-
71
-				'parent'            => array(
72
-					'description'       => __( 'Limit result set to those of particular parent IDs.', 'invoicing' ),
73
-					'type'              => 'array',
74
-					'items'             => array(
75
-						'type' => 'integer',
76
-					),
77
-					'sanitize_callback' => 'wp_parse_id_list',
78
-					'default'           => array(),
79
-				),
80
-
81
-				'parent_exclude'    => array(
82
-					'description'       => __( 'Limit result set to all items except those of a particular parent ID.', 'invoicing' ),
83
-					'type'              => 'array',
84
-					'items'             => array(
85
-						'type' => 'integer',
86
-					),
87
-					'sanitize_callback' => 'wp_parse_id_list',
88
-					'default'           => array(),
89
-				),
90
-
91
-			)
92
-		);
93
-
94
-		// Filter collection parameters for the invoices controller.
95
-		return apply_filters( 'getpaid_rest_invoices_collection_params', $params, $this );
96
-	}
97
-
98
-	/**
99
-	 * Determine the allowed query_vars for a get_items() response and
100
-	 * prepare for WP_Query.
101
-	 *
102
-	 * @param array           $prepared_args Prepared arguments.
103
-	 * @param WP_REST_Request $request Request object.
104
-	 * @return array          $query_args
105
-	 */
106
-	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
107
-
108
-		$query_args = parent::prepare_items_query( $prepared_args );
109
-
110
-		// Retrieve invoices for specific customers.
111
-		if ( ! empty( $request['customers'] ) ) {
112
-			$query_args['author__in'] = $request['customers'];
113
-		}
114
-
115
-		// Skip invoices for specific customers.
116
-		if ( ! empty( $request['exclude_customers'] ) ) {
117
-			$query_args['author__not_in'] = $request['exclude_customers'];
118
-		}
119
-
120
-		return apply_filters( 'getpaid_rest_invoices_prepare_items_query', $query_args, $request, $this );
121
-
122
-	}
123
-
124
-	/**
125
-	 * Retrieves a valid list of post statuses.
126
-	 *
127
-	 * @since 1.0.15
128
-	 *
129
-	 * @return array A list of registered item statuses.
130
-	 */
131
-	public function get_post_statuses() {
132
-		return array_keys( wpinv_get_invoice_statuses( true, false, $this->post_type ) );
133
-	}
134
-
135
-	/**
136
-	 * Saves a single invoice.
137
-	 *
138
-	 * @param WPInv_Invoice $invoice Invoice to save.
139
-	 * @return WP_Error|WPInv_Invoice
140
-	 */
141
-	protected function save_object( $invoice ) {
142
-		$invoice->recalculate_total();
143
-		return parent::save_object( $invoice );
144
-	}
25
+     * The base of this controller's route.
26
+     *
27
+     * @since 1.0.13
28
+     * @var string
29
+     */
30
+    protected $rest_base = 'invoices';
31
+
32
+    /** Contains this controller's class name.
33
+     *
34
+     * @var string
35
+     */
36
+    public $crud_class = 'WPInv_Invoice';
37
+
38
+    /**
39
+     * Retrieves the query params for the invoices collection.
40
+     *
41
+     * @since 1.0.13
42
+     *
43
+     * @return array Collection parameters.
44
+     */
45
+    public function get_collection_params() {
46
+
47
+        $params = array_merge(
48
+            parent::get_collection_params(),
49
+            array(
50
+
51
+                'customers'         => array(
52
+                    'description'       => __( 'Limit result set to invoices for specific user ids.', 'invoicing' ),
53
+                    'type'              => 'array',
54
+                    'items'             => array(
55
+                        'type' => 'integer',
56
+                    ),
57
+                    'default'           => array(),
58
+                    'sanitize_callback' => 'wp_parse_id_list',
59
+                ),
60
+
61
+                'exclude_customers' => array(
62
+                    'description'       => __( 'Exclude invoices to specific users.', 'invoicing' ),
63
+                    'type'              => 'array',
64
+                    'items'             => array(
65
+                        'type' => 'integer',
66
+                    ),
67
+                    'default'           => array(),
68
+                    'sanitize_callback' => 'wp_parse_id_list',
69
+                ),
70
+
71
+                'parent'            => array(
72
+                    'description'       => __( 'Limit result set to those of particular parent IDs.', 'invoicing' ),
73
+                    'type'              => 'array',
74
+                    'items'             => array(
75
+                        'type' => 'integer',
76
+                    ),
77
+                    'sanitize_callback' => 'wp_parse_id_list',
78
+                    'default'           => array(),
79
+                ),
80
+
81
+                'parent_exclude'    => array(
82
+                    'description'       => __( 'Limit result set to all items except those of a particular parent ID.', 'invoicing' ),
83
+                    'type'              => 'array',
84
+                    'items'             => array(
85
+                        'type' => 'integer',
86
+                    ),
87
+                    'sanitize_callback' => 'wp_parse_id_list',
88
+                    'default'           => array(),
89
+                ),
90
+
91
+            )
92
+        );
93
+
94
+        // Filter collection parameters for the invoices controller.
95
+        return apply_filters( 'getpaid_rest_invoices_collection_params', $params, $this );
96
+    }
97
+
98
+    /**
99
+     * Determine the allowed query_vars for a get_items() response and
100
+     * prepare for WP_Query.
101
+     *
102
+     * @param array           $prepared_args Prepared arguments.
103
+     * @param WP_REST_Request $request Request object.
104
+     * @return array          $query_args
105
+     */
106
+    protected function prepare_items_query( $prepared_args = array(), $request = null ) {
107
+
108
+        $query_args = parent::prepare_items_query( $prepared_args );
109
+
110
+        // Retrieve invoices for specific customers.
111
+        if ( ! empty( $request['customers'] ) ) {
112
+            $query_args['author__in'] = $request['customers'];
113
+        }
114
+
115
+        // Skip invoices for specific customers.
116
+        if ( ! empty( $request['exclude_customers'] ) ) {
117
+            $query_args['author__not_in'] = $request['exclude_customers'];
118
+        }
119
+
120
+        return apply_filters( 'getpaid_rest_invoices_prepare_items_query', $query_args, $request, $this );
121
+
122
+    }
123
+
124
+    /**
125
+     * Retrieves a valid list of post statuses.
126
+     *
127
+     * @since 1.0.15
128
+     *
129
+     * @return array A list of registered item statuses.
130
+     */
131
+    public function get_post_statuses() {
132
+        return array_keys( wpinv_get_invoice_statuses( true, false, $this->post_type ) );
133
+    }
134
+
135
+    /**
136
+     * Saves a single invoice.
137
+     *
138
+     * @param WPInv_Invoice $invoice Invoice to save.
139
+     * @return WP_Error|WPInv_Invoice
140
+     */
141
+    protected function save_object( $invoice ) {
142
+        $invoice->recalculate_total();
143
+        return parent::save_object( $invoice );
144
+    }
145 145
 
146 146
 }
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  * @version 1.0.19
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * REST API invoices controller class.
@@ -49,7 +49,7 @@  discard block
 block discarded – undo
49 49
 			array(
50 50
 
51 51
 				'customers'         => array(
52
-					'description'       => __( 'Limit result set to invoices for specific user ids.', 'invoicing' ),
52
+					'description'       => __('Limit result set to invoices for specific user ids.', 'invoicing'),
53 53
 					'type'              => 'array',
54 54
 					'items'             => array(
55 55
 						'type' => 'integer',
@@ -59,7 +59,7 @@  discard block
 block discarded – undo
59 59
 				),
60 60
 
61 61
 				'exclude_customers' => array(
62
-					'description'       => __( 'Exclude invoices to specific users.', 'invoicing' ),
62
+					'description'       => __('Exclude invoices to specific users.', 'invoicing'),
63 63
 					'type'              => 'array',
64 64
 					'items'             => array(
65 65
 						'type' => 'integer',
@@ -69,7 +69,7 @@  discard block
 block discarded – undo
69 69
 				),
70 70
 
71 71
 				'parent'            => array(
72
-					'description'       => __( 'Limit result set to those of particular parent IDs.', 'invoicing' ),
72
+					'description'       => __('Limit result set to those of particular parent IDs.', 'invoicing'),
73 73
 					'type'              => 'array',
74 74
 					'items'             => array(
75 75
 						'type' => 'integer',
@@ -79,7 +79,7 @@  discard block
 block discarded – undo
79 79
 				),
80 80
 
81 81
 				'parent_exclude'    => array(
82
-					'description'       => __( 'Limit result set to all items except those of a particular parent ID.', 'invoicing' ),
82
+					'description'       => __('Limit result set to all items except those of a particular parent ID.', 'invoicing'),
83 83
 					'type'              => 'array',
84 84
 					'items'             => array(
85 85
 						'type' => 'integer',
@@ -92,7 +92,7 @@  discard block
 block discarded – undo
92 92
 		);
93 93
 
94 94
 		// Filter collection parameters for the invoices controller.
95
-		return apply_filters( 'getpaid_rest_invoices_collection_params', $params, $this );
95
+		return apply_filters('getpaid_rest_invoices_collection_params', $params, $this);
96 96
 	}
97 97
 
98 98
 	/**
@@ -103,21 +103,21 @@  discard block
 block discarded – undo
103 103
 	 * @param WP_REST_Request $request Request object.
104 104
 	 * @return array          $query_args
105 105
 	 */
106
-	protected function prepare_items_query( $prepared_args = array(), $request = null ) {
106
+	protected function prepare_items_query($prepared_args = array(), $request = null) {
107 107
 
108
-		$query_args = parent::prepare_items_query( $prepared_args );
108
+		$query_args = parent::prepare_items_query($prepared_args);
109 109
 
110 110
 		// Retrieve invoices for specific customers.
111
-		if ( ! empty( $request['customers'] ) ) {
111
+		if (!empty($request['customers'])) {
112 112
 			$query_args['author__in'] = $request['customers'];
113 113
 		}
114 114
 
115 115
 		// Skip invoices for specific customers.
116
-		if ( ! empty( $request['exclude_customers'] ) ) {
116
+		if (!empty($request['exclude_customers'])) {
117 117
 			$query_args['author__not_in'] = $request['exclude_customers'];
118 118
 		}
119 119
 
120
-		return apply_filters( 'getpaid_rest_invoices_prepare_items_query', $query_args, $request, $this );
120
+		return apply_filters('getpaid_rest_invoices_prepare_items_query', $query_args, $request, $this);
121 121
 
122 122
 	}
123 123
 
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
129 129
 	 * @return array A list of registered item statuses.
130 130
 	 */
131 131
 	public function get_post_statuses() {
132
-		return array_keys( wpinv_get_invoice_statuses( true, false, $this->post_type ) );
132
+		return array_keys(wpinv_get_invoice_statuses(true, false, $this->post_type));
133 133
 	}
134 134
 
135 135
 	/**
@@ -138,9 +138,9 @@  discard block
 block discarded – undo
138 138
 	 * @param WPInv_Invoice $invoice Invoice to save.
139 139
 	 * @return WP_Error|WPInv_Invoice
140 140
 	 */
141
-	protected function save_object( $invoice ) {
141
+	protected function save_object($invoice) {
142 142
 		$invoice->recalculate_total();
143
-		return parent::save_object( $invoice );
143
+		return parent::save_object($invoice);
144 144
 	}
145 145
 
146 146
 }
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-reports-controller.php 2 patches
Indentation   +170 added lines, -170 removed lines patch added patch discarded remove patch
@@ -18,178 +18,178 @@
 block discarded – undo
18 18
  */
19 19
 class GetPaid_REST_Reports_Controller extends GetPaid_REST_Controller {
20 20
 
21
-	/**
22
-	 * Route base.
23
-	 *
24
-	 * @var string
25
-	 */
26
-	protected $rest_base = 'reports';
27
-
28
-	/**
29
-	 * Registers the routes for the objects of the controller.
30
-	 *
31
-	 * @since 2.0.0
32
-	 *
33
-	 * @see register_rest_route()
34
-	 */
35
-	public function register_namespace_routes( $namespace ) {
36
-
37
-		// List all available reports.
38
-		register_rest_route(
39
-			$namespace,
40
-			$this->rest_base,
41
-			array(
42
-				array(
43
-					'methods'             => WP_REST_Server::READABLE,
44
-					'callback'            => array( $this, 'get_items' ),
45
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
46
-					'args'                => $this->get_collection_params(),
47
-				),
48
-				'schema' => array( $this, 'get_public_item_schema' ),
49
-			)
50
-		);
51
-
52
-	}
53
-
54
-	/**
55
-	 * Makes sure the current user has access to READ the report APIs.
56
-	 *
57
-	 * @since  2.0.0
58
-	 * @param WP_REST_Request $request Full data about the request.
59
-	 * @return WP_Error|boolean
60
-	 */
61
-	public function get_items_permissions_check( $request ) {
62
-
63
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
64
-			return new WP_Error( 'rest_cannot_view', __( 'Sorry, you cannot list resources.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
65
-		}
66
-
67
-		return true;
68
-	}
69
-
70
-	/**
71
-	 * Get reports list.
72
-	 *
73
-	 * @since 2.0.0
74
-	 * @return array
75
-	 */
76
-	protected function get_reports() {
77
-
78
-		$reports = array(
79
-			array(
80
-				'slug'        => 'sales',
81
-				'description' => __( 'List of sales reports.', 'invoicing' ),
82
-			),
83
-			array(
84
-				'slug'        => 'top_sellers',
85
-				'description' => __( 'List of top selling items.', 'invoicing' ),
86
-			),
87
-			array(
88
-				'slug'        => 'top_earners',
89
-				'description' => __( 'List of top earning items.', 'invoicing' ),
90
-			),
91
-			array(
92
-				'slug'        => 'invoices/counts',
93
-				'description' => __( 'Invoice counts.', 'invoicing' ),
94
-			),
95
-		);
96
-
97
-		return apply_filters( 'getpaid_available_api_reports', $reports );
98
-
99
-	}
100
-
101
-	/**
102
-	 * Get all reports.
103
-	 *
104
-	 * @since 2.0.0
105
-	 * @param WP_REST_Request $request
106
-	 * @return array|WP_Error
107
-	 */
108
-	public function get_items( $request ) {
109
-		$data    = array();
110
-		$reports = $this->get_reports();
111
-
112
-		foreach ( $reports as $report ) {
113
-			$item   = $this->prepare_item_for_response( (object) $report, $request );
114
-			$data[] = $this->prepare_response_for_collection( $item );
115
-		}
116
-
117
-		return rest_ensure_response( $data );
118
-	}
119
-
120
-	/**
121
-	 * Prepare a report object for serialization.
122
-	 *
123
-	 * @since 2.0.0
124
-	 * @param stdClass $report Report data.
125
-	 * @param WP_REST_Request $request Request object.
126
-	 * @return WP_REST_Response $response Response data.
127
-	 */
128
-	public function prepare_item_for_response( $report, $request ) {
129
-		$data = array(
130
-			'slug'        => $report->slug,
131
-			'description' => $report->description,
132
-		);
133
-
134
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
135
-		$data = $this->add_additional_fields_to_object( $data, $request );
136
-		$data = $this->filter_response_by_context( $data, $context );
137
-
138
-		// Wrap the data in a response object.
139
-		$response = rest_ensure_response( $data );
140
-		$response->add_links(
21
+    /**
22
+     * Route base.
23
+     *
24
+     * @var string
25
+     */
26
+    protected $rest_base = 'reports';
27
+
28
+    /**
29
+     * Registers the routes for the objects of the controller.
30
+     *
31
+     * @since 2.0.0
32
+     *
33
+     * @see register_rest_route()
34
+     */
35
+    public function register_namespace_routes( $namespace ) {
36
+
37
+        // List all available reports.
38
+        register_rest_route(
39
+            $namespace,
40
+            $this->rest_base,
141 41
             array(
142
-				'self'       => array(
143
-					'href' => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $report->slug ) ),
144
-				),
145
-				'collection' => array(
146
-					'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
147
-				),
42
+                array(
43
+                    'methods'             => WP_REST_Server::READABLE,
44
+                    'callback'            => array( $this, 'get_items' ),
45
+                    'permission_callback' => array( $this, 'get_items_permissions_check' ),
46
+                    'args'                => $this->get_collection_params(),
47
+                ),
48
+                'schema' => array( $this, 'get_public_item_schema' ),
148 49
             )
149 50
         );
150 51
 
151
-		return apply_filters( 'getpaid_rest_prepare_report', $response, $report, $request );
152
-	}
153
-
154
-	/**
155
-	 * Get the Report's schema, conforming to JSON Schema.
156
-	 *
157
-	 * @since 2.0.0
158
-	 * @return array
159
-	 */
160
-	public function get_item_schema() {
161
-		$schema = array(
162
-			'$schema'    => 'http://json-schema.org/draft-04/schema#',
163
-			'title'      => 'report',
164
-			'type'       => 'object',
165
-			'properties' => array(
166
-				'slug'        => array(
167
-					'description' => __( 'An alphanumeric identifier for the resource.', 'invoicing' ),
168
-					'type'        => 'string',
169
-					'context'     => array( 'view' ),
170
-					'readonly'    => true,
171
-				),
172
-				'description' => array(
173
-					'description' => __( 'A human-readable description of the resource.', 'invoicing' ),
174
-					'type'        => 'string',
175
-					'context'     => array( 'view' ),
176
-					'readonly'    => true,
177
-				),
178
-			),
179
-		);
180
-
181
-		return $this->add_additional_fields_schema( $schema );
182
-	}
183
-
184
-	/**
185
-	 * Get the query params for collections.
186
-	 *
187
-	 * @since 2.0.0
188
-	 * @return array
189
-	 */
190
-	public function get_collection_params() {
191
-		return array(
192
-			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
193
-		);
194
-	}
52
+    }
53
+
54
+    /**
55
+     * Makes sure the current user has access to READ the report APIs.
56
+     *
57
+     * @since  2.0.0
58
+     * @param WP_REST_Request $request Full data about the request.
59
+     * @return WP_Error|boolean
60
+     */
61
+    public function get_items_permissions_check( $request ) {
62
+
63
+        if ( ! wpinv_current_user_can_manage_invoicing() ) {
64
+            return new WP_Error( 'rest_cannot_view', __( 'Sorry, you cannot list resources.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
65
+        }
66
+
67
+        return true;
68
+    }
69
+
70
+    /**
71
+     * Get reports list.
72
+     *
73
+     * @since 2.0.0
74
+     * @return array
75
+     */
76
+    protected function get_reports() {
77
+
78
+        $reports = array(
79
+            array(
80
+                'slug'        => 'sales',
81
+                'description' => __( 'List of sales reports.', 'invoicing' ),
82
+            ),
83
+            array(
84
+                'slug'        => 'top_sellers',
85
+                'description' => __( 'List of top selling items.', 'invoicing' ),
86
+            ),
87
+            array(
88
+                'slug'        => 'top_earners',
89
+                'description' => __( 'List of top earning items.', 'invoicing' ),
90
+            ),
91
+            array(
92
+                'slug'        => 'invoices/counts',
93
+                'description' => __( 'Invoice counts.', 'invoicing' ),
94
+            ),
95
+        );
96
+
97
+        return apply_filters( 'getpaid_available_api_reports', $reports );
98
+
99
+    }
100
+
101
+    /**
102
+     * Get all reports.
103
+     *
104
+     * @since 2.0.0
105
+     * @param WP_REST_Request $request
106
+     * @return array|WP_Error
107
+     */
108
+    public function get_items( $request ) {
109
+        $data    = array();
110
+        $reports = $this->get_reports();
111
+
112
+        foreach ( $reports as $report ) {
113
+            $item   = $this->prepare_item_for_response( (object) $report, $request );
114
+            $data[] = $this->prepare_response_for_collection( $item );
115
+        }
116
+
117
+        return rest_ensure_response( $data );
118
+    }
119
+
120
+    /**
121
+     * Prepare a report object for serialization.
122
+     *
123
+     * @since 2.0.0
124
+     * @param stdClass $report Report data.
125
+     * @param WP_REST_Request $request Request object.
126
+     * @return WP_REST_Response $response Response data.
127
+     */
128
+    public function prepare_item_for_response( $report, $request ) {
129
+        $data = array(
130
+            'slug'        => $report->slug,
131
+            'description' => $report->description,
132
+        );
133
+
134
+        $context = ! empty( $request['context'] ) ? $request['context'] : 'view';
135
+        $data = $this->add_additional_fields_to_object( $data, $request );
136
+        $data = $this->filter_response_by_context( $data, $context );
137
+
138
+        // Wrap the data in a response object.
139
+        $response = rest_ensure_response( $data );
140
+        $response->add_links(
141
+            array(
142
+                'self'       => array(
143
+                    'href' => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $report->slug ) ),
144
+                ),
145
+                'collection' => array(
146
+                    'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
147
+                ),
148
+            )
149
+        );
150
+
151
+        return apply_filters( 'getpaid_rest_prepare_report', $response, $report, $request );
152
+    }
153
+
154
+    /**
155
+     * Get the Report's schema, conforming to JSON Schema.
156
+     *
157
+     * @since 2.0.0
158
+     * @return array
159
+     */
160
+    public function get_item_schema() {
161
+        $schema = array(
162
+            '$schema'    => 'http://json-schema.org/draft-04/schema#',
163
+            'title'      => 'report',
164
+            'type'       => 'object',
165
+            'properties' => array(
166
+                'slug'        => array(
167
+                    'description' => __( 'An alphanumeric identifier for the resource.', 'invoicing' ),
168
+                    'type'        => 'string',
169
+                    'context'     => array( 'view' ),
170
+                    'readonly'    => true,
171
+                ),
172
+                'description' => array(
173
+                    'description' => __( 'A human-readable description of the resource.', 'invoicing' ),
174
+                    'type'        => 'string',
175
+                    'context'     => array( 'view' ),
176
+                    'readonly'    => true,
177
+                ),
178
+            ),
179
+        );
180
+
181
+        return $this->add_additional_fields_schema( $schema );
182
+    }
183
+
184
+    /**
185
+     * Get the query params for collections.
186
+     *
187
+     * @since 2.0.0
188
+     * @return array
189
+     */
190
+    public function get_collection_params() {
191
+        return array(
192
+            'context' => $this->get_context_param( array( 'default' => 'view' ) ),
193
+        );
194
+    }
195 195
 }
Please login to merge, or discard this patch.
Spacing   +32 added lines, -32 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 reports controller class.
@@ -32,7 +32,7 @@  discard block
 block discarded – undo
32 32
 	 *
33 33
 	 * @see register_rest_route()
34 34
 	 */
35
-	public function register_namespace_routes( $namespace ) {
35
+	public function register_namespace_routes($namespace) {
36 36
 
37 37
 		// List all available reports.
38 38
 		register_rest_route(
@@ -41,11 +41,11 @@  discard block
 block discarded – undo
41 41
 			array(
42 42
 				array(
43 43
 					'methods'             => WP_REST_Server::READABLE,
44
-					'callback'            => array( $this, 'get_items' ),
45
-					'permission_callback' => array( $this, 'get_items_permissions_check' ),
44
+					'callback'            => array($this, 'get_items'),
45
+					'permission_callback' => array($this, 'get_items_permissions_check'),
46 46
 					'args'                => $this->get_collection_params(),
47 47
 				),
48
-				'schema' => array( $this, 'get_public_item_schema' ),
48
+				'schema' => array($this, 'get_public_item_schema'),
49 49
 			)
50 50
 		);
51 51
 
@@ -58,10 +58,10 @@  discard block
 block discarded – undo
58 58
 	 * @param WP_REST_Request $request Full data about the request.
59 59
 	 * @return WP_Error|boolean
60 60
 	 */
61
-	public function get_items_permissions_check( $request ) {
61
+	public function get_items_permissions_check($request) {
62 62
 
63
-		if ( ! wpinv_current_user_can_manage_invoicing() ) {
64
-			return new WP_Error( 'rest_cannot_view', __( 'Sorry, you cannot list resources.', 'invoicing' ), array( 'status' => rest_authorization_required_code() ) );
63
+		if (!wpinv_current_user_can_manage_invoicing()) {
64
+			return new WP_Error('rest_cannot_view', __('Sorry, you cannot list resources.', 'invoicing'), array('status' => rest_authorization_required_code()));
65 65
 		}
66 66
 
67 67
 		return true;
@@ -78,23 +78,23 @@  discard block
 block discarded – undo
78 78
 		$reports = array(
79 79
 			array(
80 80
 				'slug'        => 'sales',
81
-				'description' => __( 'List of sales reports.', 'invoicing' ),
81
+				'description' => __('List of sales reports.', 'invoicing'),
82 82
 			),
83 83
 			array(
84 84
 				'slug'        => 'top_sellers',
85
-				'description' => __( 'List of top selling items.', 'invoicing' ),
85
+				'description' => __('List of top selling items.', 'invoicing'),
86 86
 			),
87 87
 			array(
88 88
 				'slug'        => 'top_earners',
89
-				'description' => __( 'List of top earning items.', 'invoicing' ),
89
+				'description' => __('List of top earning items.', 'invoicing'),
90 90
 			),
91 91
 			array(
92 92
 				'slug'        => 'invoices/counts',
93
-				'description' => __( 'Invoice counts.', 'invoicing' ),
93
+				'description' => __('Invoice counts.', 'invoicing'),
94 94
 			),
95 95
 		);
96 96
 
97
-		return apply_filters( 'getpaid_available_api_reports', $reports );
97
+		return apply_filters('getpaid_available_api_reports', $reports);
98 98
 
99 99
 	}
100 100
 
@@ -105,16 +105,16 @@  discard block
 block discarded – undo
105 105
 	 * @param WP_REST_Request $request
106 106
 	 * @return array|WP_Error
107 107
 	 */
108
-	public function get_items( $request ) {
108
+	public function get_items($request) {
109 109
 		$data    = array();
110 110
 		$reports = $this->get_reports();
111 111
 
112
-		foreach ( $reports as $report ) {
113
-			$item   = $this->prepare_item_for_response( (object) $report, $request );
114
-			$data[] = $this->prepare_response_for_collection( $item );
112
+		foreach ($reports as $report) {
113
+			$item   = $this->prepare_item_for_response((object) $report, $request);
114
+			$data[] = $this->prepare_response_for_collection($item);
115 115
 		}
116 116
 
117
-		return rest_ensure_response( $data );
117
+		return rest_ensure_response($data);
118 118
 	}
119 119
 
120 120
 	/**
@@ -125,30 +125,30 @@  discard block
 block discarded – undo
125 125
 	 * @param WP_REST_Request $request Request object.
126 126
 	 * @return WP_REST_Response $response Response data.
127 127
 	 */
128
-	public function prepare_item_for_response( $report, $request ) {
128
+	public function prepare_item_for_response($report, $request) {
129 129
 		$data = array(
130 130
 			'slug'        => $report->slug,
131 131
 			'description' => $report->description,
132 132
 		);
133 133
 
134
-		$context = ! empty( $request['context'] ) ? $request['context'] : 'view';
135
-		$data = $this->add_additional_fields_to_object( $data, $request );
136
-		$data = $this->filter_response_by_context( $data, $context );
134
+		$context = !empty($request['context']) ? $request['context'] : 'view';
135
+		$data = $this->add_additional_fields_to_object($data, $request);
136
+		$data = $this->filter_response_by_context($data, $context);
137 137
 
138 138
 		// Wrap the data in a response object.
139
-		$response = rest_ensure_response( $data );
139
+		$response = rest_ensure_response($data);
140 140
 		$response->add_links(
141 141
             array(
142 142
 				'self'       => array(
143
-					'href' => rest_url( sprintf( '/%s/%s/%s', $this->namespace, $this->rest_base, $report->slug ) ),
143
+					'href' => rest_url(sprintf('/%s/%s/%s', $this->namespace, $this->rest_base, $report->slug)),
144 144
 				),
145 145
 				'collection' => array(
146
-					'href' => rest_url( sprintf( '%s/%s', $this->namespace, $this->rest_base ) ),
146
+					'href' => rest_url(sprintf('%s/%s', $this->namespace, $this->rest_base)),
147 147
 				),
148 148
             )
149 149
         );
150 150
 
151
-		return apply_filters( 'getpaid_rest_prepare_report', $response, $report, $request );
151
+		return apply_filters('getpaid_rest_prepare_report', $response, $report, $request);
152 152
 	}
153 153
 
154 154
 	/**
@@ -164,21 +164,21 @@  discard block
 block discarded – undo
164 164
 			'type'       => 'object',
165 165
 			'properties' => array(
166 166
 				'slug'        => array(
167
-					'description' => __( 'An alphanumeric identifier for the resource.', 'invoicing' ),
167
+					'description' => __('An alphanumeric identifier for the resource.', 'invoicing'),
168 168
 					'type'        => 'string',
169
-					'context'     => array( 'view' ),
169
+					'context'     => array('view'),
170 170
 					'readonly'    => true,
171 171
 				),
172 172
 				'description' => array(
173
-					'description' => __( 'A human-readable description of the resource.', 'invoicing' ),
173
+					'description' => __('A human-readable description of the resource.', 'invoicing'),
174 174
 					'type'        => 'string',
175
-					'context'     => array( 'view' ),
175
+					'context'     => array('view'),
176 176
 					'readonly'    => true,
177 177
 				),
178 178
 			),
179 179
 		);
180 180
 
181
-		return $this->add_additional_fields_schema( $schema );
181
+		return $this->add_additional_fields_schema($schema);
182 182
 	}
183 183
 
184 184
 	/**
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
 	 */
190 190
 	public function get_collection_params() {
191 191
 		return array(
192
-			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
192
+			'context' => $this->get_context_param(array('default' => 'view')),
193 193
 		);
194 194
 	}
195 195
 }
Please login to merge, or discard this patch.