Passed
Push — master ( aaa057...742219 )
by Brian
04:58
created
includes/admin/class-getpaid-admin.php 2 patches
Indentation   +247 added lines, -247 removed lines patch added patch discarded remove patch
@@ -14,71 +14,71 @@  discard block
 block discarded – undo
14 14
 class GetPaid_Admin {
15 15
 
16 16
     /**
17
-	 * Local path to this plugins admin directory
18
-	 *
19
-	 * @var         string
20
-	 */
21
-	public $admin_path;
22
-
23
-	/**
24
-	 * Web path to this plugins admin directory
25
-	 *
26
-	 * @var         string
27
-	 */
28
-	public $admin_url;
17
+     * Local path to this plugins admin directory
18
+     *
19
+     * @var         string
20
+     */
21
+    public $admin_path;
22
+
23
+    /**
24
+     * Web path to this plugins admin directory
25
+     *
26
+     * @var         string
27
+     */
28
+    public $admin_url;
29 29
 	
30
-	/**
31
-	 * Reports components.
32
-	 *
33
-	 * @var GetPaid_Reports
34
-	 */
30
+    /**
31
+     * Reports components.
32
+     *
33
+     * @var GetPaid_Reports
34
+     */
35 35
     public $reports;
36 36
 
37 37
     /**
38
-	 * Class constructor.
39
-	 */
40
-	public function __construct(){
38
+     * Class constructor.
39
+     */
40
+    public function __construct(){
41 41
 
42 42
         $this->admin_path  = plugin_dir_path( __FILE__ );
43
-		$this->admin_url   = plugins_url( '/', __FILE__ );
44
-		$this->reports     = new GetPaid_Reports();
43
+        $this->admin_url   = plugins_url( '/', __FILE__ );
44
+        $this->reports     = new GetPaid_Reports();
45 45
 
46 46
         if ( is_admin() ) {
47
-			$this->init_admin_hooks();
47
+            $this->init_admin_hooks();
48 48
         }
49 49
 
50 50
     }
51 51
 
52 52
     /**
53
-	 * Init action and filter hooks
54
-	 *
55
-	 */
56
-	private function init_admin_hooks() {
53
+     * Init action and filter hooks
54
+     *
55
+     */
56
+    private function init_admin_hooks() {
57 57
         add_action( 'admin_enqueue_scripts', array( $this, 'enqeue_scripts' ) );
58 58
         add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
59 59
         add_action( 'admin_init', array( $this, 'init_ayecode_connect_helper' ) );
60 60
         add_action( 'admin_init', array( $this, 'activation_redirect') );
61 61
         add_action( 'admin_init', array( $this, 'maybe_do_admin_action') );
62
-		add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
64
-		add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
62
+        add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
+        add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
64
+        add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
65 65
         add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
66
-		do_action( 'getpaid_init_admin_hooks', $this );
66
+        do_action( 'getpaid_init_admin_hooks', $this );
67 67
 
68 68
     }
69 69
 
70 70
     /**
71
-	 * Register admin scripts
72
-	 *
73
-	 */
74
-	public function enqeue_scripts() {
71
+     * Register admin scripts
72
+     *
73
+     */
74
+    public function enqeue_scripts() {
75 75
         global $current_screen, $pagenow;
76 76
 
77
-		$page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
78
-		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
77
+        $page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
78
+        $editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
79 79
 
80 80
         if ( ! empty( $current_screen->post_type ) ) {
81
-			$page = $current_screen->post_type;
81
+            $page = $current_screen->post_type;
82 82
         }
83 83
 
84 84
         // General styles.
@@ -101,54 +101,54 @@  discard block
 block discarded – undo
101 101
         }
102 102
 
103 103
         // Payment form scripts.
104
-		if ( 'wpi_payment_form' == $page && $editing ) {
104
+        if ( 'wpi_payment_form' == $page && $editing ) {
105 105
             $this->load_payment_form_scripts();
106 106
         }
107 107
 
108
-		if ( $page == 'wpinv-subscriptions' ) {
109
-			wp_enqueue_script( 'postbox' );
110
-		}
108
+        if ( $page == 'wpinv-subscriptions' ) {
109
+            wp_enqueue_script( 'postbox' );
110
+        }
111 111
 
112 112
     }
113 113
 
114 114
     /**
115
-	 * Returns admin js translations.
116
-	 *
117
-	 */
118
-	protected function get_admin_i18() {
115
+     * Returns admin js translations.
116
+     *
117
+     */
118
+    protected function get_admin_i18() {
119 119
         global $post;
120 120
 
121
-		$date_range = array(
122
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days'
123
-		);
121
+        $date_range = array(
122
+            'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days'
123
+        );
124 124
 
125
-		if ( $date_range['period'] == 'custom' ) {
125
+        if ( $date_range['period'] == 'custom' ) {
126 126
 			
127
-			if ( isset( $_GET['from'] ) ) {
128
-				$date_range[ 'after' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
129
-			}
127
+            if ( isset( $_GET['from'] ) ) {
128
+                $date_range[ 'after' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
129
+            }
130 130
 
131
-			if ( isset( $_GET['to'] ) ) {
132
-				$date_range[ 'before' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
133
-			}
131
+            if ( isset( $_GET['to'] ) ) {
132
+                $date_range[ 'before' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
133
+            }
134 134
 
135
-		}
135
+        }
136 136
 
137 137
         $i18n = array(
138 138
             'ajax_url'                  => admin_url( 'admin-ajax.php' ),
139 139
             'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
140
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
141
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
142
-			'rest_root'                 => esc_url_raw( rest_url() ),
143
-			'date_range'                => $date_range,
140
+            'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
141
+            'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
142
+            'rest_root'                 => esc_url_raw( rest_url() ),
143
+            'date_range'                => $date_range,
144 144
             'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
145 145
             'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
146 146
             'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
147 147
             'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
148 148
             'tax'                       => wpinv_tax_amount(),
149 149
             'discount'                  => 0,
150
-			'currency_symbol'           => wpinv_currency_symbol(),
151
-			'currency'                  => wpinv_get_currency(),
150
+            'currency_symbol'           => wpinv_currency_symbol(),
151
+            'currency'                  => wpinv_get_currency(),
152 152
             'currency_pos'              => wpinv_currency_position(),
153 153
             'thousand_sep'              => wpinv_thousands_separator(),
154 154
             'decimal_sep'               => wpinv_decimal_separator(),
@@ -171,50 +171,50 @@  discard block
 block discarded – undo
171 171
             'searching'                 => __( 'Searching', 'invoicing' ),
172 172
         );
173 173
 
174
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
174
+        if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
175 175
 
176
-			$invoice              = new WPInv_Invoice( $post );
177
-			$i18n['save_invoice'] = sprintf(
178
-				__( 'Save %s', 'invoicing' ),
179
-				ucfirst( $invoice->get_type() )
180
-			);
176
+            $invoice              = new WPInv_Invoice( $post );
177
+            $i18n['save_invoice'] = sprintf(
178
+                __( 'Save %s', 'invoicing' ),
179
+                ucfirst( $invoice->get_type() )
180
+            );
181 181
 
182
-			$i18n['invoice_description'] = sprintf(
183
-				__( '%s Description', 'invoicing' ),
184
-				ucfirst( $invoice->get_type() )
185
-			);
182
+            $i18n['invoice_description'] = sprintf(
183
+                __( '%s Description', 'invoicing' ),
184
+                ucfirst( $invoice->get_type() )
185
+            );
186 186
 
187
-		}
188
-		return $i18n;
187
+        }
188
+        return $i18n;
189 189
     }
190 190
 
191 191
     /**
192
-	 * Loads payment form js.
193
-	 *
194
-	 */
195
-	protected function load_payment_form_scripts() {
192
+     * Loads payment form js.
193
+     *
194
+     */
195
+    protected function load_payment_form_scripts() {
196 196
         global $post;
197 197
 
198 198
         wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.js', array(), WPINV_VERSION );
199
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
200
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
199
+        wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
200
+        wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
201 201
 
202
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
203
-		wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable' ),  $version );
202
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
203
+        wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable' ),  $version );
204 204
 
205
-		wp_localize_script(
205
+        wp_localize_script(
206 206
             'wpinv-admin-payment-form-script',
207 207
             'wpinvPaymentFormAdmin',
208 208
             array(
209
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
210
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
211
-				'currency'      => wpinv_currency_symbol(),
212
-				'position'      => wpinv_currency_position(),
213
-				'decimals'      => (int) wpinv_decimals(),
214
-				'thousands_sep' => wpinv_thousands_separator(),
215
-				'decimals_sep'  => wpinv_decimal_separator(),
216
-				'form_items'    => gepaid_get_form_items( $post->ID ),
217
-				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
209
+                'elements'      => wpinv_get_data( 'payment-form-elements' ),
210
+                'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
211
+                'currency'      => wpinv_currency_symbol(),
212
+                'position'      => wpinv_currency_position(),
213
+                'decimals'      => (int) wpinv_decimals(),
214
+                'thousands_sep' => wpinv_thousands_separator(),
215
+                'decimals_sep'  => wpinv_decimal_separator(),
216
+                'form_items'    => gepaid_get_form_items( $post->ID ),
217
+                'is_default'    => $post->ID == wpinv_get_default_payment_form(),
218 218
             )
219 219
         );
220 220
 
@@ -223,20 +223,20 @@  discard block
 block discarded – undo
223 223
     }
224 224
 
225 225
     /**
226
-	 * Add our classes to admin pages.
226
+     * Add our classes to admin pages.
227 227
      *
228 228
      * @param string $classes
229 229
      * @return string
230
-	 *
231
-	 */
230
+     *
231
+     */
232 232
     public function admin_body_class( $classes ) {
233
-		global $pagenow, $post, $current_screen;
233
+        global $pagenow, $post, $current_screen;
234 234
 
235 235
 
236 236
         $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
237 237
 
238 238
         if ( ! empty( $current_screen->post_type ) ) {
239
-			$page = $current_screen->post_type;
239
+            $page = $current_screen->post_type;
240 240
         }
241 241
 
242 242
         if ( false !== stripos( $page, 'wpi' ) ) {
@@ -245,29 +245,29 @@  discard block
 block discarded – undo
245 245
 
246 246
         if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
247 247
             $classes .= ' wpinv-cpt wpinv';
248
-		}
248
+        }
249 249
 		
250
-		if ( getpaid_is_invoice_post_type( $page ) ) {
250
+        if ( getpaid_is_invoice_post_type( $page ) ) {
251 251
             $classes .= ' getpaid-is-invoice-cpt';
252 252
         }
253 253
 
254
-		return $classes;
254
+        return $classes;
255 255
     }
256 256
 
257 257
     /**
258
-	 * Maybe show the AyeCode Connect Notice.
259
-	 */
260
-	public function init_ayecode_connect_helper(){
258
+     * Maybe show the AyeCode Connect Notice.
259
+     */
260
+    public function init_ayecode_connect_helper(){
261 261
 
262 262
         new AyeCode_Connect_Helper(
263 263
             array(
264
-				'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
265
-				'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
266
-				'connect'           => sprintf( __( "<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s","invoicing" ),"<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>","</a>" ),
267
-				'connect_button'    => __("Connect Site","invoicing"),
268
-				'connecting_button'    => __("Connecting...","invoicing"),
269
-				'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
270
-				'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
264
+                'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
265
+                'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
266
+                'connect'           => sprintf( __( "<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s","invoicing" ),"<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>","</a>" ),
267
+                'connect_button'    => __("Connect Site","invoicing"),
268
+                'connecting_button'    => __("Connecting...","invoicing"),
269
+                'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
270
+                'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
271 271
             ),
272 272
             array( 'wpi-addons' )
273 273
         );
@@ -279,21 +279,21 @@  discard block
 block discarded – undo
279 279
      */
280 280
     public function activation_redirect() {
281 281
 
282
-		// Bail if no activation redirect.
283
-		if ( ! get_transient( '_wpinv_activation_redirect' ) || wp_doing_ajax() ) {
284
-			return;
285
-		}
282
+        // Bail if no activation redirect.
283
+        if ( ! get_transient( '_wpinv_activation_redirect' ) || wp_doing_ajax() ) {
284
+            return;
285
+        }
286 286
 
287
-		// Delete the redirect transient.
288
-		delete_transient( '_wpinv_activation_redirect' );
287
+        // Delete the redirect transient.
288
+        delete_transient( '_wpinv_activation_redirect' );
289 289
 
290
-		// Bail if activating from network, or bulk
291
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
292
-			return;
293
-		}
290
+        // Bail if activating from network, or bulk
291
+        if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
292
+            return;
293
+        }
294 294
 
295
-		wp_safe_redirect( admin_url( 'admin.php?page=wpinv-settings&tab=general' ) );
296
-		exit;
295
+        wp_safe_redirect( admin_url( 'admin.php?page=wpinv-settings&tab=general' ) );
296
+        exit;
297 297
     }
298 298
 
299 299
     /**
@@ -308,162 +308,162 @@  discard block
 block discarded – undo
308 308
 
309 309
     }
310 310
 
311
-	/**
311
+    /**
312 312
      * Sends a payment reminder to a customer.
313
-	 * 
314
-	 * @param array $args
313
+     * 
314
+     * @param array $args
315 315
      */
316 316
     public function send_customer_invoice( $args ) {
317
-		$sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ) );
317
+        $sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ) );
318 318
 
319
-		if ( $sent ) {
320
-			$this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
321
-		} else {
322
-			$this->show_error( __( 'Could not sent the invoice to the customer', 'invoicing' ) );
323
-		}
319
+        if ( $sent ) {
320
+            $this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
321
+        } else {
322
+            $this->show_error( __( 'Could not sent the invoice to the customer', 'invoicing' ) );
323
+        }
324 324
 
325
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
326
-		exit;
327
-	}
325
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
326
+        exit;
327
+    }
328 328
 
329
-	/**
329
+    /**
330 330
      * Sends a payment reminder to a customer.
331
-	 * 
332
-	 * @param array $args
331
+     * 
332
+     * @param array $args
333 333
      */
334 334
     public function send_customer_payment_reminder( $args ) {
335
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
335
+        $sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
336 336
 
337
-		if ( $sent ) {
338
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
339
-		} else {
340
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
341
-		}
337
+        if ( $sent ) {
338
+            $this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
339
+        } else {
340
+            $this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
341
+        }
342 342
 
343
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
344
-		exit;
345
-	}
343
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
344
+        exit;
345
+    }
346 346
 
347
-	/**
347
+    /**
348 348
      * Resets tax rates.
349
-	 * 
349
+     * 
350 350
      */
351 351
     public function admin_reset_tax_rates() {
352 352
 
353
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
354
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
355
-		exit;
353
+        update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
354
+        wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
355
+        exit;
356 356
 
357
-	}
357
+    }
358 358
 
359 359
     /**
360
-	 * Returns an array of admin notices.
361
-	 *
362
-	 * @since       1.0.19
360
+     * Returns an array of admin notices.
361
+     *
362
+     * @since       1.0.19
363 363
      * @return array
364
-	 */
365
-	public function get_notices() {
366
-		$notices = get_option( 'wpinv_admin_notices' );
364
+     */
365
+    public function get_notices() {
366
+        $notices = get_option( 'wpinv_admin_notices' );
367 367
         return is_array( $notices ) ? $notices : array();
368
-	}
369
-
370
-	/**
371
-	 * Clears all admin notices
372
-	 *
373
-	 * @access      public
374
-	 * @since       1.0.19
375
-	 */
376
-	public function clear_notices() {
377
-		delete_option( 'wpinv_admin_notices' );
378
-	}
379
-
380
-	/**
381
-	 * Saves a new admin notice
382
-	 *
383
-	 * @access      public
384
-	 * @since       1.0.19
385
-	 */
386
-	public function save_notice( $type, $message ) {
387
-		$notices = $this->get_notices();
388
-
389
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
390
-			$notices[ $type ] = array();
391
-		}
392
-
393
-		$notices[ $type ][] = $message;
394
-
395
-		update_option( 'wpinv_admin_notices', $notices );
396
-	}
397
-
398
-	/**
399
-	 * Displays a success notice
400
-	 *
401
-	 * @param       string $msg The message to qeue.
402
-	 * @access      public
403
-	 * @since       1.0.19
404
-	 */
405
-	public function show_success( $msg ) {
406
-		$this->save_notice( 'success', $msg );
407
-	}
408
-
409
-	/**
410
-	 * Displays a error notice
411
-	 *
412
-	 * @access      public
413
-	 * @param       string $msg The message to qeue.
414
-	 * @since       1.0.19
415
-	 */
416
-	public function show_error( $msg ) {
417
-		$this->save_notice( 'error', $msg );
418
-	}
419
-
420
-	/**
421
-	 * Displays a warning notice
422
-	 *
423
-	 * @access      public
424
-	 * @param       string $msg The message to qeue.
425
-	 * @since       1.0.19
426
-	 */
427
-	public function show_warning( $msg ) {
428
-		$this->save_notice( 'warning', $msg );
429
-	}
430
-
431
-	/**
432
-	 * Displays a info notice
433
-	 *
434
-	 * @access      public
435
-	 * @param       string $msg The message to qeue.
436
-	 * @since       1.0.19
437
-	 */
438
-	public function show_info( $msg ) {
439
-		$this->save_notice( 'info', $msg );
440
-	}
441
-
442
-	/**
443
-	 * Show notices
444
-	 *
445
-	 * @access      public
446
-	 * @since       1.0.19
447
-	 */
448
-	public function show_notices() {
368
+    }
369
+
370
+    /**
371
+     * Clears all admin notices
372
+     *
373
+     * @access      public
374
+     * @since       1.0.19
375
+     */
376
+    public function clear_notices() {
377
+        delete_option( 'wpinv_admin_notices' );
378
+    }
379
+
380
+    /**
381
+     * Saves a new admin notice
382
+     *
383
+     * @access      public
384
+     * @since       1.0.19
385
+     */
386
+    public function save_notice( $type, $message ) {
387
+        $notices = $this->get_notices();
388
+
389
+        if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
390
+            $notices[ $type ] = array();
391
+        }
392
+
393
+        $notices[ $type ][] = $message;
394
+
395
+        update_option( 'wpinv_admin_notices', $notices );
396
+    }
397
+
398
+    /**
399
+     * Displays a success notice
400
+     *
401
+     * @param       string $msg The message to qeue.
402
+     * @access      public
403
+     * @since       1.0.19
404
+     */
405
+    public function show_success( $msg ) {
406
+        $this->save_notice( 'success', $msg );
407
+    }
408
+
409
+    /**
410
+     * Displays a error notice
411
+     *
412
+     * @access      public
413
+     * @param       string $msg The message to qeue.
414
+     * @since       1.0.19
415
+     */
416
+    public function show_error( $msg ) {
417
+        $this->save_notice( 'error', $msg );
418
+    }
419
+
420
+    /**
421
+     * Displays a warning notice
422
+     *
423
+     * @access      public
424
+     * @param       string $msg The message to qeue.
425
+     * @since       1.0.19
426
+     */
427
+    public function show_warning( $msg ) {
428
+        $this->save_notice( 'warning', $msg );
429
+    }
430
+
431
+    /**
432
+     * Displays a info notice
433
+     *
434
+     * @access      public
435
+     * @param       string $msg The message to qeue.
436
+     * @since       1.0.19
437
+     */
438
+    public function show_info( $msg ) {
439
+        $this->save_notice( 'info', $msg );
440
+    }
441
+
442
+    /**
443
+     * Show notices
444
+     *
445
+     * @access      public
446
+     * @since       1.0.19
447
+     */
448
+    public function show_notices() {
449 449
 
450 450
         $notices = $this->get_notices();
451 451
         $this->clear_notices();
452 452
 
453
-		foreach ( $notices as $type => $messages ) {
453
+        foreach ( $notices as $type => $messages ) {
454 454
 
455
-			if ( ! is_array( $messages ) ) {
456
-				continue;
457
-			}
455
+            if ( ! is_array( $messages ) ) {
456
+                continue;
457
+            }
458 458
 
459 459
             $type  = sanitize_key( $type );
460
-			foreach ( $messages as $message ) {
460
+            foreach ( $messages as $message ) {
461 461
                 $message = wp_kses_post( $message );
462
-				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
462
+                echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
463 463
             }
464 464
 
465 465
         }
466 466
 
467
-	}
467
+    }
468 468
 
469 469
 }
Please login to merge, or discard this patch.
Spacing   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 
9 9
 /**
10 10
  * The main admin class.
@@ -37,13 +37,13 @@  discard block
 block discarded – undo
37 37
     /**
38 38
 	 * Class constructor.
39 39
 	 */
40
-	public function __construct(){
40
+	public function __construct() {
41 41
 
42
-        $this->admin_path  = plugin_dir_path( __FILE__ );
43
-		$this->admin_url   = plugins_url( '/', __FILE__ );
42
+        $this->admin_path = plugin_dir_path(__FILE__);
43
+		$this->admin_url   = plugins_url('/', __FILE__);
44 44
 		$this->reports     = new GetPaid_Reports();
45 45
 
46
-        if ( is_admin() ) {
46
+        if (is_admin()) {
47 47
 			$this->init_admin_hooks();
48 48
         }
49 49
 
@@ -54,16 +54,16 @@  discard block
 block discarded – undo
54 54
 	 *
55 55
 	 */
56 56
 	private function init_admin_hooks() {
57
-        add_action( 'admin_enqueue_scripts', array( $this, 'enqeue_scripts' ) );
58
-        add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
59
-        add_action( 'admin_init', array( $this, 'init_ayecode_connect_helper' ) );
60
-        add_action( 'admin_init', array( $this, 'activation_redirect') );
61
-        add_action( 'admin_init', array( $this, 'maybe_do_admin_action') );
62
-		add_action( 'admin_notices', array( $this, 'show_notices' ) );
63
-		add_action( 'getpaid_authenticated_admin_action_send_invoice', array( $this, 'send_customer_invoice' ) );
64
-		add_action( 'getpaid_authenticated_admin_action_send_invoice_reminder', array( $this, 'send_customer_payment_reminder' ) );
65
-        add_action( 'getpaid_authenticated_admin_action_reset_tax_rates', array( $this, 'admin_reset_tax_rates' ) );
66
-		do_action( 'getpaid_init_admin_hooks', $this );
57
+        add_action('admin_enqueue_scripts', array($this, 'enqeue_scripts'));
58
+        add_filter('admin_body_class', array($this, 'admin_body_class'));
59
+        add_action('admin_init', array($this, 'init_ayecode_connect_helper'));
60
+        add_action('admin_init', array($this, 'activation_redirect'));
61
+        add_action('admin_init', array($this, 'maybe_do_admin_action'));
62
+		add_action('admin_notices', array($this, 'show_notices'));
63
+		add_action('getpaid_authenticated_admin_action_send_invoice', array($this, 'send_customer_invoice'));
64
+		add_action('getpaid_authenticated_admin_action_send_invoice_reminder', array($this, 'send_customer_payment_reminder'));
65
+        add_action('getpaid_authenticated_admin_action_reset_tax_rates', array($this, 'admin_reset_tax_rates'));
66
+		do_action('getpaid_init_admin_hooks', $this);
67 67
 
68 68
     }
69 69
 
@@ -74,39 +74,39 @@  discard block
 block discarded – undo
74 74
 	public function enqeue_scripts() {
75 75
         global $current_screen, $pagenow;
76 76
 
77
-		$page    = isset( $_GET['page'] ) ? $_GET['page'] : '';
77
+		$page    = isset($_GET['page']) ? $_GET['page'] : '';
78 78
 		$editing = $pagenow == 'post.php' || $pagenow == 'post-new.php';
79 79
 
80
-        if ( ! empty( $current_screen->post_type ) ) {
80
+        if (!empty($current_screen->post_type)) {
81 81
 			$page = $current_screen->post_type;
82 82
         }
83 83
 
84 84
         // General styles.
85
-        if ( false !== stripos( $page, 'wpi' ) ) {
85
+        if (false !== stripos($page, 'wpi')) {
86 86
 
87 87
             // Styles.
88
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/css/admin.css' );
89
-            wp_enqueue_style( 'wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array( 'wp-color-picker' ), $version );
90
-            wp_enqueue_style( 'select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all' );
91
-            wp_enqueue_style( 'jquery-ui-css', WPINV_PLUGIN_URL . 'assets/css/jquery-ui.min.css', array(), '1.8.16' );
88
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/css/admin.css');
89
+            wp_enqueue_style('wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array('wp-color-picker'), $version);
90
+            wp_enqueue_style('select2', WPINV_PLUGIN_URL . 'assets/css/select2/select2.min.css', array(), '4.0.13', 'all');
91
+            wp_enqueue_style('jquery-ui-css', WPINV_PLUGIN_URL . 'assets/css/jquery-ui.min.css', array(), '1.8.16');
92 92
 
93 93
             // Scripts.
94
-            wp_register_script( 'jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array( 'jquery' ), '4.0.13', true );
95
-            wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array( 'jquery' ), WPINV_VERSION );
94
+            wp_register_script('jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array('jquery'), '4.0.13', true);
95
+            wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full.min.js', array('jquery'), WPINV_VERSION);
96 96
 
97
-            $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin.js' );
98
-            wp_enqueue_script( 'wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array( 'jquery', 'jquery-blockui','jquery-ui-tooltip', 'wp-color-picker', 'jquery-ui-datepicker' ),  $version );
99
-            wp_localize_script( 'wpinv-admin-script', 'WPInv_Admin', apply_filters( 'wpinv_admin_js_localize', $this->get_admin_i18() ) );
97
+            $version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin.js');
98
+            wp_enqueue_script('wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array('jquery', 'jquery-blockui', 'jquery-ui-tooltip', 'wp-color-picker', 'jquery-ui-datepicker'), $version);
99
+            wp_localize_script('wpinv-admin-script', 'WPInv_Admin', apply_filters('wpinv_admin_js_localize', $this->get_admin_i18()));
100 100
 
101 101
         }
102 102
 
103 103
         // Payment form scripts.
104
-		if ( 'wpi_payment_form' == $page && $editing ) {
104
+		if ('wpi_payment_form' == $page && $editing) {
105 105
             $this->load_payment_form_scripts();
106 106
         }
107 107
 
108
-		if ( $page == 'wpinv-subscriptions' ) {
109
-			wp_enqueue_script( 'postbox' );
108
+		if ($page == 'wpinv-subscriptions') {
109
+			wp_enqueue_script('postbox');
110 110
 		}
111 111
 
112 112
     }
@@ -119,32 +119,32 @@  discard block
 block discarded – undo
119 119
         global $post;
120 120
 
121 121
 		$date_range = array(
122
-			'period' => isset( $_GET['date_range'] ) ? sanitize_text_field( $_GET['date_range'] ) : '7_days'
122
+			'period' => isset($_GET['date_range']) ? sanitize_text_field($_GET['date_range']) : '7_days'
123 123
 		);
124 124
 
125
-		if ( $date_range['period'] == 'custom' ) {
125
+		if ($date_range['period'] == 'custom') {
126 126
 			
127
-			if ( isset( $_GET['from'] ) ) {
128
-				$date_range[ 'after' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['from'] ), current_time( 'timestamp' ) ) - DAY_IN_SECONDS );
127
+			if (isset($_GET['from'])) {
128
+				$date_range['after'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['from']), current_time('timestamp')) - DAY_IN_SECONDS);
129 129
 			}
130 130
 
131
-			if ( isset( $_GET['to'] ) ) {
132
-				$date_range[ 'before' ] = date( 'Y-m-d', strtotime( sanitize_text_field( $_GET['to'] ), current_time( 'timestamp' ) ) + DAY_IN_SECONDS );
131
+			if (isset($_GET['to'])) {
132
+				$date_range['before'] = date('Y-m-d', strtotime(sanitize_text_field($_GET['to']), current_time('timestamp')) + DAY_IN_SECONDS);
133 133
 			}
134 134
 
135 135
 		}
136 136
 
137 137
         $i18n = array(
138
-            'ajax_url'                  => admin_url( 'admin-ajax.php' ),
139
-            'post_ID'                   => isset( $post->ID ) ? $post->ID : '',
140
-			'wpinv_nonce'               => wp_create_nonce( 'wpinv-nonce' ),
141
-			'rest_nonce'                => wp_create_nonce( 'wp_rest' ),
142
-			'rest_root'                 => esc_url_raw( rest_url() ),
138
+            'ajax_url'                  => admin_url('admin-ajax.php'),
139
+            'post_ID'                   => isset($post->ID) ? $post->ID : '',
140
+			'wpinv_nonce'               => wp_create_nonce('wpinv-nonce'),
141
+			'rest_nonce'                => wp_create_nonce('wp_rest'),
142
+			'rest_root'                 => esc_url_raw(rest_url()),
143 143
 			'date_range'                => $date_range,
144
-            'add_invoice_note_nonce'    => wp_create_nonce( 'add-invoice-note' ),
145
-            'delete_invoice_note_nonce' => wp_create_nonce( 'delete-invoice-note' ),
146
-            'invoice_item_nonce'        => wp_create_nonce( 'invoice-item' ),
147
-            'billing_details_nonce'     => wp_create_nonce( 'get-billing-details' ),
144
+            'add_invoice_note_nonce'    => wp_create_nonce('add-invoice-note'),
145
+            'delete_invoice_note_nonce' => wp_create_nonce('delete-invoice-note'),
146
+            'invoice_item_nonce'        => wp_create_nonce('invoice-item'),
147
+            'billing_details_nonce'     => wp_create_nonce('get-billing-details'),
148 148
             'tax'                       => wpinv_tax_amount(),
149 149
             'discount'                  => 0,
150 150
 			'currency_symbol'           => wpinv_currency_symbol(),
@@ -153,35 +153,35 @@  discard block
 block discarded – undo
153 153
             'thousand_sep'              => wpinv_thousands_separator(),
154 154
             'decimal_sep'               => wpinv_decimal_separator(),
155 155
             'decimals'                  => wpinv_decimals(),
156
-            'save_invoice'              => __( 'Save Invoice', 'invoicing' ),
157
-            'status_publish'            => wpinv_status_nicename( 'publish' ),
158
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
159
-            'delete_tax_rate'           => __( 'Are you sure you wish to delete this tax rate?', 'invoicing' ),
160
-            'status_pending'            => wpinv_status_nicename( 'wpi-pending' ),
161
-            'FillBillingDetails'        => __( 'Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing' ),
162
-            'confirmCalcTotals'         => __( 'Recalculate totals? This will recalculate totals based on the user billing country. If no billing country is set it will use the base country.', 'invoicing' ),
163
-            'AreYouSure'                => __( 'Are you sure?', 'invoicing' ),
164
-            'errDeleteItem'             => __( 'This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing' ),
165
-            'delete_subscription'       => __( 'Are you sure you want to delete this subscription?', 'invoicing' ),
166
-            'action_edit'               => __( 'Edit', 'invoicing' ),
167
-            'action_cancel'             => __( 'Cancel', 'invoicing' ),
168
-            'item_description'          => __( 'Item Description', 'invoicing' ),
169
-            'invoice_description'       => __( 'Invoice Description', 'invoicing' ),
170
-            'discount_description'      => __( 'Discount Description', 'invoicing' ),
171
-            'searching'                 => __( 'Searching', 'invoicing' ),
156
+            'save_invoice'              => __('Save Invoice', 'invoicing'),
157
+            'status_publish'            => wpinv_status_nicename('publish'),
158
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
159
+            'delete_tax_rate'           => __('Are you sure you wish to delete this tax rate?', 'invoicing'),
160
+            'status_pending'            => wpinv_status_nicename('wpi-pending'),
161
+            'FillBillingDetails'        => __('Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing'),
162
+            'confirmCalcTotals'         => __('Recalculate totals? This will recalculate totals based on the user billing country. If no billing country is set it will use the base country.', 'invoicing'),
163
+            'AreYouSure'                => __('Are you sure?', 'invoicing'),
164
+            'errDeleteItem'             => __('This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing'),
165
+            'delete_subscription'       => __('Are you sure you want to delete this subscription?', 'invoicing'),
166
+            'action_edit'               => __('Edit', 'invoicing'),
167
+            'action_cancel'             => __('Cancel', 'invoicing'),
168
+            'item_description'          => __('Item Description', 'invoicing'),
169
+            'invoice_description'       => __('Invoice Description', 'invoicing'),
170
+            'discount_description'      => __('Discount Description', 'invoicing'),
171
+            'searching'                 => __('Searching', 'invoicing'),
172 172
         );
173 173
 
174
-		if ( ! empty( $post ) && getpaid_is_invoice_post_type( $post->post_type ) ) {
174
+		if (!empty($post) && getpaid_is_invoice_post_type($post->post_type)) {
175 175
 
176
-			$invoice              = new WPInv_Invoice( $post );
176
+			$invoice              = new WPInv_Invoice($post);
177 177
 			$i18n['save_invoice'] = sprintf(
178
-				__( 'Save %s', 'invoicing' ),
179
-				ucfirst( $invoice->get_type() )
178
+				__('Save %s', 'invoicing'),
179
+				ucfirst($invoice->get_type())
180 180
 			);
181 181
 
182 182
 			$i18n['invoice_description'] = sprintf(
183
-				__( '%s Description', 'invoicing' ),
184
-				ucfirst( $invoice->get_type() )
183
+				__('%s Description', 'invoicing'),
184
+				ucfirst($invoice->get_type())
185 185
 			);
186 186
 
187 187
 		}
@@ -195,30 +195,30 @@  discard block
 block discarded – undo
195 195
 	protected function load_payment_form_scripts() {
196 196
         global $post;
197 197
 
198
-        wp_enqueue_script( 'vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.js', array(), WPINV_VERSION );
199
-		wp_enqueue_script( 'sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION );
200
-		wp_enqueue_script( 'vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array( 'sortable', 'vue' ), WPINV_VERSION );
198
+        wp_enqueue_script('vue', WPINV_PLUGIN_URL . 'assets/js/vue/vue.js', array(), WPINV_VERSION);
199
+		wp_enqueue_script('sortable', WPINV_PLUGIN_URL . 'assets/js/sortable.min.js', array(), WPINV_VERSION);
200
+		wp_enqueue_script('vue_draggable', WPINV_PLUGIN_URL . 'assets/js/vue/vuedraggable.min.js', array('sortable', 'vue'), WPINV_VERSION);
201 201
 
202
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js' );
203
-		wp_register_script( 'wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array( 'wpinv-admin-script', 'vue_draggable' ),  $version );
202
+		$version = filemtime(WPINV_PLUGIN_DIR . 'assets/js/admin-payment-forms.js');
203
+		wp_register_script('wpinv-admin-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/admin-payment-forms.js', array('wpinv-admin-script', 'vue_draggable'), $version);
204 204
 
205 205
 		wp_localize_script(
206 206
             'wpinv-admin-payment-form-script',
207 207
             'wpinvPaymentFormAdmin',
208 208
             array(
209
-				'elements'      => wpinv_get_data( 'payment-form-elements' ),
210
-				'form_elements' => getpaid_get_payment_form_elements( $post->ID ),
209
+				'elements'      => wpinv_get_data('payment-form-elements'),
210
+				'form_elements' => getpaid_get_payment_form_elements($post->ID),
211 211
 				'currency'      => wpinv_currency_symbol(),
212 212
 				'position'      => wpinv_currency_position(),
213 213
 				'decimals'      => (int) wpinv_decimals(),
214 214
 				'thousands_sep' => wpinv_thousands_separator(),
215 215
 				'decimals_sep'  => wpinv_decimal_separator(),
216
-				'form_items'    => gepaid_get_form_items( $post->ID ),
216
+				'form_items'    => gepaid_get_form_items($post->ID),
217 217
 				'is_default'    => $post->ID == wpinv_get_default_payment_form(),
218 218
             )
219 219
         );
220 220
 
221
-        wp_enqueue_script( 'wpinv-admin-payment-form-script' );
221
+        wp_enqueue_script('wpinv-admin-payment-form-script');
222 222
 
223 223
     }
224 224
 
@@ -229,25 +229,25 @@  discard block
 block discarded – undo
229 229
      * @return string
230 230
 	 *
231 231
 	 */
232
-    public function admin_body_class( $classes ) {
232
+    public function admin_body_class($classes) {
233 233
 		global $pagenow, $post, $current_screen;
234 234
 
235 235
 
236
-        $page = isset( $_GET['page'] ) ? $_GET['page'] : '';
236
+        $page = isset($_GET['page']) ? $_GET['page'] : '';
237 237
 
238
-        if ( ! empty( $current_screen->post_type ) ) {
238
+        if (!empty($current_screen->post_type)) {
239 239
 			$page = $current_screen->post_type;
240 240
         }
241 241
 
242
-        if ( false !== stripos( $page, 'wpi' ) ) {
243
-            $classes .= ' wpi-' . sanitize_key( $page );
242
+        if (false !== stripos($page, 'wpi')) {
243
+            $classes .= ' wpi-' . sanitize_key($page);
244 244
         }
245 245
 
246
-        if ( in_array( $page, wpinv_parse_list( 'wpi_invoice wpi_payment_form wpi_quote' ) ) ) {
246
+        if (in_array($page, wpinv_parse_list('wpi_invoice wpi_payment_form wpi_quote'))) {
247 247
             $classes .= ' wpinv-cpt wpinv';
248 248
 		}
249 249
 		
250
-		if ( getpaid_is_invoice_post_type( $page ) ) {
250
+		if (getpaid_is_invoice_post_type($page)) {
251 251
             $classes .= ' getpaid-is-invoice-cpt';
252 252
         }
253 253
 
@@ -257,19 +257,19 @@  discard block
 block discarded – undo
257 257
     /**
258 258
 	 * Maybe show the AyeCode Connect Notice.
259 259
 	 */
260
-	public function init_ayecode_connect_helper(){
260
+	public function init_ayecode_connect_helper() {
261 261
 
262 262
         new AyeCode_Connect_Helper(
263 263
             array(
264
-				'connect_title' => __("WP Invoicing - an AyeCode product!","invoicing"),
265
-				'connect_external'  => __( "Please confirm you wish to connect your site?","invoicing" ),
266
-				'connect'           => sprintf( __( "<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s","invoicing" ),"<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>","</a>" ),
267
-				'connect_button'    => __("Connect Site","invoicing"),
268
-				'connecting_button'    => __("Connecting...","invoicing"),
269
-				'error_localhost'   => __( "This service will only work with a live domain, not a localhost.","invoicing" ),
270
-				'error'             => __( "Something went wrong, please refresh and try again.","invoicing" ),
264
+				'connect_title' => __("WP Invoicing - an AyeCode product!", "invoicing"),
265
+				'connect_external'  => __("Please confirm you wish to connect your site?", "invoicing"),
266
+				'connect'           => sprintf(__("<strong>Have a license?</strong> Forget about entering license keys or downloading zip files, connect your site for instant access. %slearn more%s", "invoicing"), "<a href='https://ayecode.io/introducing-ayecode-connect/' target='_blank'>", "</a>"),
267
+				'connect_button'    => __("Connect Site", "invoicing"),
268
+				'connecting_button'    => __("Connecting...", "invoicing"),
269
+				'error_localhost'   => __("This service will only work with a live domain, not a localhost.", "invoicing"),
270
+				'error'             => __("Something went wrong, please refresh and try again.", "invoicing"),
271 271
             ),
272
-            array( 'wpi-addons' )
272
+            array('wpi-addons')
273 273
         );
274 274
 
275 275
     }
@@ -280,19 +280,19 @@  discard block
 block discarded – undo
280 280
     public function activation_redirect() {
281 281
 
282 282
 		// Bail if no activation redirect.
283
-		if ( ! get_transient( '_wpinv_activation_redirect' ) || wp_doing_ajax() ) {
283
+		if (!get_transient('_wpinv_activation_redirect') || wp_doing_ajax()) {
284 284
 			return;
285 285
 		}
286 286
 
287 287
 		// Delete the redirect transient.
288
-		delete_transient( '_wpinv_activation_redirect' );
288
+		delete_transient('_wpinv_activation_redirect');
289 289
 
290 290
 		// Bail if activating from network, or bulk
291
-		if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) {
291
+		if (is_network_admin() || isset($_GET['activate-multi'])) {
292 292
 			return;
293 293
 		}
294 294
 
295
-		wp_safe_redirect( admin_url( 'admin.php?page=wpinv-settings&tab=general' ) );
295
+		wp_safe_redirect(admin_url('admin.php?page=wpinv-settings&tab=general'));
296 296
 		exit;
297 297
     }
298 298
 
@@ -301,9 +301,9 @@  discard block
 block discarded – undo
301 301
      */
302 302
     public function maybe_do_admin_action() {
303 303
 
304
-        if ( wpinv_current_user_can_manage_invoicing() && isset( $_REQUEST['getpaid-admin-action'] ) && isset( $_REQUEST['getpaid-nonce'] ) && wp_verify_nonce( $_REQUEST['getpaid-nonce'], 'getpaid-nonce' ) ) {
305
-            $key = sanitize_key( $_REQUEST['getpaid-admin-action'] );
306
-            do_action( "getpaid_authenticated_admin_action_$key", $_REQUEST );
304
+        if (wpinv_current_user_can_manage_invoicing() && isset($_REQUEST['getpaid-admin-action']) && isset($_REQUEST['getpaid-nonce']) && wp_verify_nonce($_REQUEST['getpaid-nonce'], 'getpaid-nonce')) {
305
+            $key = sanitize_key($_REQUEST['getpaid-admin-action']);
306
+            do_action("getpaid_authenticated_admin_action_$key", $_REQUEST);
307 307
         }
308 308
 
309 309
     }
@@ -313,16 +313,16 @@  discard block
 block discarded – undo
313 313
 	 * 
314 314
 	 * @param array $args
315 315
      */
316
-    public function send_customer_invoice( $args ) {
317
-		$sent = getpaid()->get( 'invoice_emails' )->user_invoice( new WPInv_Invoice( $args['invoice_id'] ) );
316
+    public function send_customer_invoice($args) {
317
+		$sent = getpaid()->get('invoice_emails')->user_invoice(new WPInv_Invoice($args['invoice_id']));
318 318
 
319
-		if ( $sent ) {
320
-			$this->show_success( __( 'Invoice was successfully sent to the customer', 'invoicing' ) );
319
+		if ($sent) {
320
+			$this->show_success(__('Invoice was successfully sent to the customer', 'invoicing'));
321 321
 		} else {
322
-			$this->show_error( __( 'Could not sent the invoice to the customer', 'invoicing' ) );
322
+			$this->show_error(__('Could not sent the invoice to the customer', 'invoicing'));
323 323
 		}
324 324
 
325
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
325
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
326 326
 		exit;
327 327
 	}
328 328
 
@@ -331,16 +331,16 @@  discard block
 block discarded – undo
331 331
 	 * 
332 332
 	 * @param array $args
333 333
      */
334
-    public function send_customer_payment_reminder( $args ) {
335
-		$sent = getpaid()->get( 'invoice_emails' )->force_send_overdue_notice( new WPInv_Invoice( $args['invoice_id'] ) );
334
+    public function send_customer_payment_reminder($args) {
335
+		$sent = getpaid()->get('invoice_emails')->force_send_overdue_notice(new WPInv_Invoice($args['invoice_id']));
336 336
 
337
-		if ( $sent ) {
338
-			$this->show_success( __( 'Payment reminder was successfully sent to the customer', 'invoicing' ) );
337
+		if ($sent) {
338
+			$this->show_success(__('Payment reminder was successfully sent to the customer', 'invoicing'));
339 339
 		} else {
340
-			$this->show_error( __( 'Could not sent payment reminder to the customer', 'invoicing' ) );
340
+			$this->show_error(__('Could not sent payment reminder to the customer', 'invoicing'));
341 341
 		}
342 342
 
343
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce', 'invoice_id' ) ) );
343
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce', 'invoice_id')));
344 344
 		exit;
345 345
 	}
346 346
 
@@ -350,8 +350,8 @@  discard block
 block discarded – undo
350 350
      */
351 351
     public function admin_reset_tax_rates() {
352 352
 
353
-		update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) );
354
-		wp_safe_redirect( remove_query_arg( array( 'getpaid-admin-action', 'getpaid-nonce' ) ) );
353
+		update_option('wpinv_tax_rates', wpinv_get_data('tax-rates'));
354
+		wp_safe_redirect(remove_query_arg(array('getpaid-admin-action', 'getpaid-nonce')));
355 355
 		exit;
356 356
 
357 357
 	}
@@ -363,8 +363,8 @@  discard block
 block discarded – undo
363 363
      * @return array
364 364
 	 */
365 365
 	public function get_notices() {
366
-		$notices = get_option( 'wpinv_admin_notices' );
367
-        return is_array( $notices ) ? $notices : array();
366
+		$notices = get_option('wpinv_admin_notices');
367
+        return is_array($notices) ? $notices : array();
368 368
 	}
369 369
 
370 370
 	/**
@@ -374,7 +374,7 @@  discard block
 block discarded – undo
374 374
 	 * @since       1.0.19
375 375
 	 */
376 376
 	public function clear_notices() {
377
-		delete_option( 'wpinv_admin_notices' );
377
+		delete_option('wpinv_admin_notices');
378 378
 	}
379 379
 
380 380
 	/**
@@ -383,16 +383,16 @@  discard block
 block discarded – undo
383 383
 	 * @access      public
384 384
 	 * @since       1.0.19
385 385
 	 */
386
-	public function save_notice( $type, $message ) {
386
+	public function save_notice($type, $message) {
387 387
 		$notices = $this->get_notices();
388 388
 
389
-		if ( empty( $notices[ $type ] ) || ! is_array( $notices[ $type ]) ) {
390
-			$notices[ $type ] = array();
389
+		if (empty($notices[$type]) || !is_array($notices[$type])) {
390
+			$notices[$type] = array();
391 391
 		}
392 392
 
393
-		$notices[ $type ][] = $message;
393
+		$notices[$type][] = $message;
394 394
 
395
-		update_option( 'wpinv_admin_notices', $notices );
395
+		update_option('wpinv_admin_notices', $notices);
396 396
 	}
397 397
 
398 398
 	/**
@@ -402,8 +402,8 @@  discard block
 block discarded – undo
402 402
 	 * @access      public
403 403
 	 * @since       1.0.19
404 404
 	 */
405
-	public function show_success( $msg ) {
406
-		$this->save_notice( 'success', $msg );
405
+	public function show_success($msg) {
406
+		$this->save_notice('success', $msg);
407 407
 	}
408 408
 
409 409
 	/**
@@ -413,8 +413,8 @@  discard block
 block discarded – undo
413 413
 	 * @param       string $msg The message to qeue.
414 414
 	 * @since       1.0.19
415 415
 	 */
416
-	public function show_error( $msg ) {
417
-		$this->save_notice( 'error', $msg );
416
+	public function show_error($msg) {
417
+		$this->save_notice('error', $msg);
418 418
 	}
419 419
 
420 420
 	/**
@@ -424,8 +424,8 @@  discard block
 block discarded – undo
424 424
 	 * @param       string $msg The message to qeue.
425 425
 	 * @since       1.0.19
426 426
 	 */
427
-	public function show_warning( $msg ) {
428
-		$this->save_notice( 'warning', $msg );
427
+	public function show_warning($msg) {
428
+		$this->save_notice('warning', $msg);
429 429
 	}
430 430
 
431 431
 	/**
@@ -435,8 +435,8 @@  discard block
 block discarded – undo
435 435
 	 * @param       string $msg The message to qeue.
436 436
 	 * @since       1.0.19
437 437
 	 */
438
-	public function show_info( $msg ) {
439
-		$this->save_notice( 'info', $msg );
438
+	public function show_info($msg) {
439
+		$this->save_notice('info', $msg);
440 440
 	}
441 441
 
442 442
 	/**
@@ -450,15 +450,15 @@  discard block
 block discarded – undo
450 450
         $notices = $this->get_notices();
451 451
         $this->clear_notices();
452 452
 
453
-		foreach ( $notices as $type => $messages ) {
453
+		foreach ($notices as $type => $messages) {
454 454
 
455
-			if ( ! is_array( $messages ) ) {
455
+			if (!is_array($messages)) {
456 456
 				continue;
457 457
 			}
458 458
 
459
-            $type  = sanitize_key( $type );
460
-			foreach ( $messages as $message ) {
461
-                $message = wp_kses_post( $message );
459
+            $type = sanitize_key($type);
460
+			foreach ($messages as $message) {
461
+                $message = wp_kses_post($message);
462 462
 				echo "<div class='notice notice-$type is-dismissible'><p>$message</p></div>";
463 463
             }
464 464
 
Please login to merge, or discard this patch.
includes/api/class-getpaid-rest-date-based-controller.php 2 patches
Indentation   +573 added lines, -573 removed lines patch added patch discarded remove patch
@@ -16,577 +16,577 @@
 block discarded – undo
16 16
  */
17 17
 class GetPaid_REST_Date_Based_Controller extends GetPaid_REST_Controller {
18 18
 
19
-	/**
20
-	 * Group response items by day or month.
21
-	 *
22
-	 * @var string
23
-	 */
24
-	public $groupby = 'day';
25
-
26
-	/**
27
-	 * Returns an array with arguments to request the previous report.
28
-	 *
29
-	 * @var array
30
-	 */
31
-	public $previous_range = array();
32
-
33
-	/**
34
-	 * The period interval.
35
-	 *
36
-	 * @var int
37
-	 */
38
-	public $interval;
39
-
40
-	/**
41
-	 * Retrieves the before and after dates.
42
-	 *
43
-	 * @param WP_REST_Request $request Request object.
44
-	 * @return array The appropriate date range.
45
-	 */
46
-	public function get_date_range( $request ) {
47
-
48
-		// If not supported, assume all time.
49
-		if ( ! in_array( $request['period'], array( 'custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days', '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year' ) ) ) {
50
-			$request['period'] = '7_days';
51
-		}
52
-
53
-		$date_range = call_user_func( array( $this, 'get_' . $request['period'] . '_date_range' ), $request );
54
-		$this->prepare_interval( $date_range );
55
-
56
-		return $date_range;
57
-
58
-	}
59
-
60
-	/**
61
-	 * Groups by month or days.
62
-	 *
63
-	 * @param array $range Date range.
64
-	 * @return array The appropriate date range.
65
-	 */
66
-	public function prepare_interval( $range ) {
67
-
68
-		$before = strtotime( $range['before'] ) - DAY_IN_SECONDS;
69
-		$after  = strtotime( $range['after'] ) + DAY_IN_SECONDS;
70
-		if ( 'day' === $this->groupby ) {
71
-			$difference     = max( DAY_IN_SECONDS, ( DAY_IN_SECONDS + $before - $after ) ); // Prevent division by 0;
72
-			$this->interval = absint( ceil( max( 1, $difference / DAY_IN_SECONDS ) ) );
73
-			return;
74
-		}
75
-
76
-		$this->interval = 0;
77
-		$min_date       = strtotime( date( 'Y-m-01', $after ) );
78
-
79
-		while ( $min_date <= $before ) {
80
-			$this->interval ++;
81
-			$min_date = strtotime( '+1 MONTH', $min_date );
82
-		}
83
-
84
-		$this->interval = max( 1, $this->interval );
85
-
86
-	}
87
-
88
-	/**
89
-	 * Retrieves a custom date range.
90
-	 *
91
-	 * @param WP_REST_Request $request Request object.
92
-	 * @return array The appropriate date range.
93
-	 */
94
-	public function get_custom_date_range( $request ) {
95
-
96
-		$after  = max( strtotime( '-20 years' ), strtotime( sanitize_text_field( $request['after'] ) ) );
97
-		$before = strtotime( '+1 day', current_time( 'timestamp' ) );
98
-
99
-		if ( ! empty( $request['before'] ) ) {
100
-			$before  = min( $before, strtotime( sanitize_text_field( $request['before'] ) ) );
101
-		}
102
-
103
-		// 3 months max for day view
104
-		if ( floor( ( $before - $after ) / MONTH_IN_SECONDS ) > 3 ) {
105
-			$this->groupby = 'month';
106
-		}
107
-
108
-		// Set the previous date range.
109
-		$difference           = $before - $after;
110
-		$this->previous_range = array(
111
-			'period' => 'custom',
112
-			'before' => date( 'Y-m-d', $before - $difference ),
113
-			'after'  => date( 'Y-m-d', $after - $difference ),
114
-		);
115
-
116
-		// Generate the report.
117
-		return array(
118
-			'before' => date( 'Y-m-d', $before ),
119
-			'after' => date( 'Y-m-d', $after ),
120
-		);
121
-
122
-	}
123
-
124
-	/**
125
-	 * Retrieves todays date range.
126
-	 *
127
-	 * @return array The appropriate date range.
128
-	 */
129
-	public function get_today_date_range() {
130
-
131
-		// Set the previous date range.
132
-		$this->previous_range = array(
133
-			'period' => 'yesterday',
134
-		);
135
-
136
-		// Generate the report.
137
-		return array(
138
-			'before' => date( 'Y-m-d', strtotime( '+1 day', current_time( 'timestamp' ) ) ),
139
-			'after'  => date( 'Y-m-d', strtotime( '-1 day', current_time( 'timestamp' ) ) ),
140
-		);
141
-
142
-	}
143
-
144
-	/**
145
-	 * Retrieves yesterdays date range.
146
-	 *
147
-	 * @return array The appropriate date range.
148
-	 */
149
-	public function get_yesterday_date_range() {
150
-
151
-		// Set the previous date range.
152
-		$this->previous_range = array(
153
-			'period' => 'custom',
154
-			'before' => date( 'Y-m-d', strtotime( '-1 day', current_time( 'timestamp' ) ) ),
155
-			'after'  => date( 'Y-m-d', strtotime( '-3 days', current_time( 'timestamp' ) ) ),
156
-		);
157
-
158
-		// Generate the report.
159
-		return array(
160
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
161
-			'after'  => date( 'Y-m-d', strtotime( '-2 days', current_time( 'timestamp' ) ) ),
162
-		);
163
-
164
-	}
165
-
166
-	/**
167
-	 * Retrieves this week's date range.
168
-	 *
169
-	 * @return array The appropriate date range.
170
-	 */
171
-	public function get_week_date_range() {
172
-
173
-		// Set the previous date range.
174
-		$this->previous_range = array(
175
-			'period' => 'last_week',
176
-		);
177
-
178
-		// Generate the report.
179
-		return array(
180
-			'before' => date( 'Y-m-d', strtotime( 'sunday last week', current_time( 'timestamp' )  ) + 8 * DAY_IN_SECONDS ),
181
-			'after'  => date( 'Y-m-d', strtotime( 'sunday last week', current_time( 'timestamp' )  ) ),
182
-		);
183
-
184
-	}
185
-
186
-	/**
187
-	 * Retrieves last week's date range.
188
-	 *
189
-	 * @return array The appropriate date range.
190
-	 */
191
-	public function get_last_week_date_range() {
192
-
193
-		// Set the previous date range.
194
-		$this->previous_range = array(
195
-			'period' => 'custom',
196
-			'before' => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) ),
197
-			'after'  => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) - 8 * DAY_IN_SECONDS ),
198
-		);
199
-
200
-		// Generate the report.
201
-		return array(
202
-			'before' => date( 'Y-m-d', strtotime( 'monday this week', current_time( 'timestamp' )  ) ),
203
-			'after'  => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) - DAY_IN_SECONDS ),
204
-		);
205
-
206
-	}
207
-
208
-	/**
209
-	 * Retrieves last 7 days date range.
210
-	 *
211
-	 * @return array The appropriate date range.
212
-	 */
213
-	public function get_7_days_date_range() {
214
-
215
-		// Set the previous date range.
216
-		$this->previous_range = array(
217
-			'period' => 'custom',
218
-			'before' => date( 'Y-m-d', strtotime( '-7 days', current_time( 'timestamp' ) ) ),
219
-			'after'  => date( 'Y-m-d', strtotime( '-15 days', current_time( 'timestamp' ) ) ),
220
-		);
221
-
222
-		// Generate the report.
223
-		return array(
224
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
225
-			'after'  => date( 'Y-m-d', strtotime( '-8 days', current_time( 'timestamp' ) ) ),
226
-		);
227
-
228
-	}
229
-
230
-	/**
231
-	 * Retrieves last 30 days date range.
232
-	 *
233
-	 * @return array The appropriate date range.
234
-	 */
235
-	public function get_30_days_date_range() {
236
-
237
-		// Set the previous date range.
238
-		$this->previous_range = array(
239
-			'period' => 'custom',
240
-			'before' => date( 'Y-m-d', strtotime( '-30 days', current_time( 'timestamp' ) ) ),
241
-			'after'  => date( 'Y-m-d', strtotime( '-61 days', current_time( 'timestamp' ) ) ),
242
-		);
243
-
244
-		// Generate the report.
245
-		return array(
246
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
247
-			'after'  => date( 'Y-m-d', strtotime( '-31 days', current_time( 'timestamp' ) ) ),
248
-		);
249
-
250
-	}
251
-
252
-	/**
253
-	 * Retrieves last 90 days date range.
254
-	 *
255
-	 * @return array The appropriate date range.
256
-	 */
257
-	public function get_90_days_date_range() {
258
-
259
-		$this->groupby = 'month';
260
-
261
-		// Set the previous date range.
262
-		$this->previous_range = array(
263
-			'period' => 'custom',
264
-			'before' => date( 'Y-m-d', strtotime( '-90 days', current_time( 'timestamp' ) ) ),
265
-			'after'  => date( 'Y-m-d', strtotime( '-181 days', current_time( 'timestamp' ) ) ),
266
-		);
267
-
268
-		// Generate the report.
269
-		return array(
270
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
271
-			'after'  => date( 'Y-m-d', strtotime( '-91 days', current_time( 'timestamp' ) ) ),
272
-		);
273
-
274
-	}
275
-
276
-	/**
277
-	 * Retrieves last 180 days date range.
278
-	 *
279
-	 * @return array The appropriate date range.
280
-	 */
281
-	public function get_180_days_date_range() {
282
-
283
-		$this->groupby = 'month';
284
-
285
-		// Set the previous date range.
286
-		$this->previous_range = array(
287
-			'period' => 'custom',
288
-			'before' => date( 'Y-m-d', strtotime( '-180 days', current_time( 'timestamp' ) ) ),
289
-			'after'  => date( 'Y-m-d', strtotime( '-361 days', current_time( 'timestamp' ) ) ),
290
-		);
291
-
292
-		// Generate the report.
293
-		return array(
294
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
295
-			'after'  => date( 'Y-m-d', strtotime( '-181 days', current_time( 'timestamp' ) ) ),
296
-		);
297
-
298
-	}
299
-
300
-	/**
301
-	 * Retrieves last 60 days date range.
302
-	 *
303
-	 * @return array The appropriate date range.
304
-	 */
305
-	public function get_60_days_date_range() {
306
-
307
-		// Set the previous date range.
308
-		$this->previous_range = array(
309
-			'period' => 'custom',
310
-			'before' => date( 'Y-m-d', strtotime( '-60 days', current_time( 'timestamp' ) ) ),
311
-			'after'  => date( 'Y-m-d', strtotime( '-121 days', current_time( 'timestamp' ) ) ),
312
-		);
313
-
314
-		// Generate the report.
315
-		return array(
316
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
317
-			'after'  => date( 'Y-m-d', strtotime( '-61 days', current_time( 'timestamp' ) ) ),
318
-		);
319
-
320
-	}
321
-
322
-	/**
323
-	 * Retrieves this month date range.
324
-	 *
325
-	 * @return array The appropriate date range.
326
-	 */
327
-	public function get_month_date_range() {
328
-
329
-		// Set the previous date range.
330
-		$this->previous_range = array(
331
-			'period' => 'last_month',
332
-		);
333
-
334
-		// Generate the report.
335
-		return array(
336
-			'before' => date( 'Y-m-01', strtotime( 'next month', current_time( 'timestamp' ) ) ),
337
-			'after'  => date( 'Y-m-t', strtotime( 'last month', current_time( 'timestamp' ) ) ),
338
-		);
339
-
340
-	}
341
-
342
-	/**
343
-	 * Retrieves last month's date range.
344
-	 *
345
-	 * @return array The appropriate date range.
346
-	 */
347
-	public function get_last_month_date_range() {
348
-
349
-		// Set the previous date range.
350
-		$this->previous_range = array(
351
-			'period' => 'custom',
352
-			'before' => date( 'Y-m-1', strtotime( 'last month', current_time( 'timestamp' ) ) ),
353
-			'after'  => date( 'Y-m-t', strtotime( "-3 months", current_time( 'timestamp' ) ) ),
354
-		);
355
-
356
-		// Generate the report.
357
-		return array(
358
-			'before' => date( 'Y-m-1', current_time( 'timestamp' ) ),
359
-			'after'  => date( 'Y-m-t', strtotime( "-2 months", current_time( 'timestamp' ) ) ),
360
-		);
361
-
362
-	}
363
-
364
-	/**
365
-	 * Retrieves this quarter date range.
366
-	 *
367
-	 * @return array The available quarters.
368
-	 */
369
-	public function get_quarters() {
370
-
371
-		$last_year = (int) date('Y') - 1;
372
-		$next_year = (int) date('Y') + 1;
373
-		$year      = (int) date('Y');
374
-		return array(
375
-
376
-			array(
377
-				'after'  => "$last_year-06-30",
378
-				'before' => "$last_year-10-01",
379
-			),
380
-
381
-			array(
382
-				'before' => "$year-01-01",
383
-				'after'  => "$last_year-09-30",
384
-			),
385
-
386
-			array(
387
-				'before' => "$year-04-01",
388
-				'after'  => "$last_year-12-31",
389
-			),
390
-
391
-			array(
392
-				'before' => "$year-07-01",
393
-				'after'  => "$year-03-31",
394
-			),
395
-
396
-			array(
397
-				'after'  => "$year-06-30",
398
-				'before' => "$year-10-01",
399
-			),
400
-
401
-			array(
402
-				'before' => "$next_year-01-01",
403
-				'after'  => "$year-09-30",
404
-			)
405
-
406
-		);
407
-
408
-	}
409
-
410
-	/**
411
-	 * Retrieves the current quater.
412
-	 *
413
-	 * @return int The current quarter.
414
-	 */
415
-	public function get_quarter() {
416
-
417
-		$month    = (int) date( 'n', current_time( 'timestamp' ) );
418
-		$quarters = array( 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 );
419
-		return $quarters[ $month - 1 ];
420
-
421
-	}
422
-
423
-	/**
424
-	 * Retrieves this quarter date range.
425
-	 *
426
-	 * @return array The appropriate date range.
427
-	 */
428
-	public function get_quarter_date_range() {
429
-
430
-		// Set the previous date range.
431
-		$this->previous_range = array(
432
-			'period' => 'last_quarter',
433
-		);
434
-
435
-		// Generate the report.
436
-		$quarters = $this->get_quarters();
437
-		return $quarters[ $this->get_quarter() + 1 ];
438
-
439
-	}
440
-
441
-	/**
442
-	 * Retrieves last quarter's date range.
443
-	 *
444
-	 * @return array The appropriate date range.
445
-	 */
446
-	public function get_last_quarter_date_range() {
447
-
448
-		$quarters = $this->get_quarters();
449
-		$quarter  = $this->get_quarter();
450
-
451
-		// Set the previous date range.
452
-		$this->previous_range = array_merge(
453
-			$quarters[ $quarter - 1 ],
454
-			array( 'period' => 'custom' )
455
-		);
456
-
457
-		// Generate the report.
458
-		return $quarters[ $quarter ];
459
-
460
-	}
461
-
462
-	/**
463
-	 * Retrieves this year date range.
464
-	 *
465
-	 * @return array The appropriate date range.
466
-	 */
467
-	public function get_year_date_range() {
468
-
469
-		$this->groupby = 'month';
470
-
471
-		// Set the previous date range.
472
-		$this->previous_range = array(
473
-			'period' => 'last_year',
474
-		);
475
-
476
-		// Generate the report.
477
-		return array(
478
-			'before' => date( 'Y-m-d', strtotime( 'next year January 1st', current_time( 'timestamp' ) ) ),
479
-			'after'  => date( 'Y-m-d', strtotime( 'last year December 31st', current_time( 'timestamp' ) ) ),
480
-		);
481
-
482
-	}
483
-
484
-	/**
485
-	 * Retrieves last year date range.
486
-	 *
487
-	 * @return array The appropriate date range.
488
-	 */
489
-	public function get_last_year_date_range() {
490
-
491
-		$this->groupby = 'month';
492
-
493
-		// Set the previous date range.
494
-		$year          = (int) date('Y') - 3;
495
-		$this->previous_range = array(
496
-			'period' => 'custom',
497
-			'before' => date( 'Y-m-d', strtotime( 'first day of january last year', current_time( 'timestamp' ) ) ),
498
-			'after'  => "$year-12-31",
499
-		);
500
-
501
-		// Generate the report.
502
-		$year          = (int) date('Y') - 2;
503
-		return array(
504
-			'after'  => "$year-12-31",
505
-			'before' => date( 'Y-m-d', strtotime( 'first day of january this year', current_time( 'timestamp' ) ) ),
506
-		);
507
-
508
-	}
509
-
510
-	/**
511
-	 * Prepare a the request date for SQL usage.
512
-	 *
513
-	 * @param WP_REST_Request $request Request object.
514
-	 * @param string $date_field The date field.
515
-	 * @return string The appropriate SQL.
516
-	 */
517
-	public function get_date_range_sql( $request, $date_field ) {
518
-		global $wpdb;
519
-
520
-		$sql = '1=1';
521
-		$range = $this->get_date_range( $request );
522
-
523
-		if ( ! empty( $range['after'] ) ) {
524
-			$sql .= ' AND ' .  $wpdb->prepare(
525
-				"$date_field > %s",
526
-				$range['after']
527
-			);
528
-		}
529
-
530
-		if ( ! empty( $range['before'] ) ) {
531
-			$sql .= ' AND ' .  $wpdb->prepare(
532
-				"$date_field < %s",
533
-				$range['before']
534
-			);
535
-		}
536
-
537
-		return $sql;
538
-
539
-	}
540
-
541
-	/**
542
-	 * Prepares a group by query.
543
-	 *
544
-	 * @param string $date_field The date field.
545
-	 * @return string The appropriate SQL.
546
-	 */
547
-	public function get_group_by_sql( $date_field ) {
548
-
549
-		if ( 'day' === $this->groupby ) {
550
-			return "YEAR($date_field), MONTH($date_field), DAY($date_field)";
551
-		}
552
-
553
-		return "YEAR($date_field), MONTH($date_field)";
554
-	}
555
-
556
-	/**
557
-	 * Get the query params for collections.
558
-	 *
559
-	 * @return array
560
-	 */
561
-	public function get_collection_params() {
562
-		return array(
563
-			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
564
-			'period' => array(
565
-				'description'       => __( 'Limit to results of a specific period.', 'invoicing' ),
566
-				'type'              => 'string',
567
-				'enum'              => array( 'custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days' , '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year', 'quarter', 'last_quarter' ),
568
-				'validate_callback' => 'rest_validate_request_arg',
569
-				'sanitize_callback' => 'sanitize_text_field',
570
-				'default'           => '7_days',
571
-			),
572
-			'after' => array(
573
-				/* translators: %s: date format */
574
-				'description'       => sprintf( __( 'Limit to results after a specific date, the date needs to be in the %s format.', 'invoicing' ), 'YYYY-MM-DD' ),
575
-				'type'              => 'string',
576
-				'format'            => 'date',
577
-				'validate_callback' => 'rest_validate_request_arg',
578
-				'sanitize_callback' => 'sanitize_text_field',
579
-				'default'           => date( 'Y-m-d', strtotime( '-8 days', current_time( 'timestamp' ) ) ),
580
-			),
581
-			'before' => array(
582
-				/* translators: %s: date format */
583
-				'description'       => sprintf( __( 'Limit to results before a specific date, the date needs to be in the %s format.', 'invoicing' ), 'YYYY-MM-DD' ),
584
-				'type'              => 'string',
585
-				'format'            => 'date',
586
-				'validate_callback' => 'rest_validate_request_arg',
587
-				'sanitize_callback' => 'sanitize_text_field',
588
-				'default'           => date( 'Y-m-d', current_time( 'timestamp' ) ),
589
-			),
590
-		);
591
-	}
19
+    /**
20
+     * Group response items by day or month.
21
+     *
22
+     * @var string
23
+     */
24
+    public $groupby = 'day';
25
+
26
+    /**
27
+     * Returns an array with arguments to request the previous report.
28
+     *
29
+     * @var array
30
+     */
31
+    public $previous_range = array();
32
+
33
+    /**
34
+     * The period interval.
35
+     *
36
+     * @var int
37
+     */
38
+    public $interval;
39
+
40
+    /**
41
+     * Retrieves the before and after dates.
42
+     *
43
+     * @param WP_REST_Request $request Request object.
44
+     * @return array The appropriate date range.
45
+     */
46
+    public function get_date_range( $request ) {
47
+
48
+        // If not supported, assume all time.
49
+        if ( ! in_array( $request['period'], array( 'custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days', '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year' ) ) ) {
50
+            $request['period'] = '7_days';
51
+        }
52
+
53
+        $date_range = call_user_func( array( $this, 'get_' . $request['period'] . '_date_range' ), $request );
54
+        $this->prepare_interval( $date_range );
55
+
56
+        return $date_range;
57
+
58
+    }
59
+
60
+    /**
61
+     * Groups by month or days.
62
+     *
63
+     * @param array $range Date range.
64
+     * @return array The appropriate date range.
65
+     */
66
+    public function prepare_interval( $range ) {
67
+
68
+        $before = strtotime( $range['before'] ) - DAY_IN_SECONDS;
69
+        $after  = strtotime( $range['after'] ) + DAY_IN_SECONDS;
70
+        if ( 'day' === $this->groupby ) {
71
+            $difference     = max( DAY_IN_SECONDS, ( DAY_IN_SECONDS + $before - $after ) ); // Prevent division by 0;
72
+            $this->interval = absint( ceil( max( 1, $difference / DAY_IN_SECONDS ) ) );
73
+            return;
74
+        }
75
+
76
+        $this->interval = 0;
77
+        $min_date       = strtotime( date( 'Y-m-01', $after ) );
78
+
79
+        while ( $min_date <= $before ) {
80
+            $this->interval ++;
81
+            $min_date = strtotime( '+1 MONTH', $min_date );
82
+        }
83
+
84
+        $this->interval = max( 1, $this->interval );
85
+
86
+    }
87
+
88
+    /**
89
+     * Retrieves a custom date range.
90
+     *
91
+     * @param WP_REST_Request $request Request object.
92
+     * @return array The appropriate date range.
93
+     */
94
+    public function get_custom_date_range( $request ) {
95
+
96
+        $after  = max( strtotime( '-20 years' ), strtotime( sanitize_text_field( $request['after'] ) ) );
97
+        $before = strtotime( '+1 day', current_time( 'timestamp' ) );
98
+
99
+        if ( ! empty( $request['before'] ) ) {
100
+            $before  = min( $before, strtotime( sanitize_text_field( $request['before'] ) ) );
101
+        }
102
+
103
+        // 3 months max for day view
104
+        if ( floor( ( $before - $after ) / MONTH_IN_SECONDS ) > 3 ) {
105
+            $this->groupby = 'month';
106
+        }
107
+
108
+        // Set the previous date range.
109
+        $difference           = $before - $after;
110
+        $this->previous_range = array(
111
+            'period' => 'custom',
112
+            'before' => date( 'Y-m-d', $before - $difference ),
113
+            'after'  => date( 'Y-m-d', $after - $difference ),
114
+        );
115
+
116
+        // Generate the report.
117
+        return array(
118
+            'before' => date( 'Y-m-d', $before ),
119
+            'after' => date( 'Y-m-d', $after ),
120
+        );
121
+
122
+    }
123
+
124
+    /**
125
+     * Retrieves todays date range.
126
+     *
127
+     * @return array The appropriate date range.
128
+     */
129
+    public function get_today_date_range() {
130
+
131
+        // Set the previous date range.
132
+        $this->previous_range = array(
133
+            'period' => 'yesterday',
134
+        );
135
+
136
+        // Generate the report.
137
+        return array(
138
+            'before' => date( 'Y-m-d', strtotime( '+1 day', current_time( 'timestamp' ) ) ),
139
+            'after'  => date( 'Y-m-d', strtotime( '-1 day', current_time( 'timestamp' ) ) ),
140
+        );
141
+
142
+    }
143
+
144
+    /**
145
+     * Retrieves yesterdays date range.
146
+     *
147
+     * @return array The appropriate date range.
148
+     */
149
+    public function get_yesterday_date_range() {
150
+
151
+        // Set the previous date range.
152
+        $this->previous_range = array(
153
+            'period' => 'custom',
154
+            'before' => date( 'Y-m-d', strtotime( '-1 day', current_time( 'timestamp' ) ) ),
155
+            'after'  => date( 'Y-m-d', strtotime( '-3 days', current_time( 'timestamp' ) ) ),
156
+        );
157
+
158
+        // Generate the report.
159
+        return array(
160
+            'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
161
+            'after'  => date( 'Y-m-d', strtotime( '-2 days', current_time( 'timestamp' ) ) ),
162
+        );
163
+
164
+    }
165
+
166
+    /**
167
+     * Retrieves this week's date range.
168
+     *
169
+     * @return array The appropriate date range.
170
+     */
171
+    public function get_week_date_range() {
172
+
173
+        // Set the previous date range.
174
+        $this->previous_range = array(
175
+            'period' => 'last_week',
176
+        );
177
+
178
+        // Generate the report.
179
+        return array(
180
+            'before' => date( 'Y-m-d', strtotime( 'sunday last week', current_time( 'timestamp' )  ) + 8 * DAY_IN_SECONDS ),
181
+            'after'  => date( 'Y-m-d', strtotime( 'sunday last week', current_time( 'timestamp' )  ) ),
182
+        );
183
+
184
+    }
185
+
186
+    /**
187
+     * Retrieves last week's date range.
188
+     *
189
+     * @return array The appropriate date range.
190
+     */
191
+    public function get_last_week_date_range() {
192
+
193
+        // Set the previous date range.
194
+        $this->previous_range = array(
195
+            'period' => 'custom',
196
+            'before' => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) ),
197
+            'after'  => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) - 8 * DAY_IN_SECONDS ),
198
+        );
199
+
200
+        // Generate the report.
201
+        return array(
202
+            'before' => date( 'Y-m-d', strtotime( 'monday this week', current_time( 'timestamp' )  ) ),
203
+            'after'  => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) - DAY_IN_SECONDS ),
204
+        );
205
+
206
+    }
207
+
208
+    /**
209
+     * Retrieves last 7 days date range.
210
+     *
211
+     * @return array The appropriate date range.
212
+     */
213
+    public function get_7_days_date_range() {
214
+
215
+        // Set the previous date range.
216
+        $this->previous_range = array(
217
+            'period' => 'custom',
218
+            'before' => date( 'Y-m-d', strtotime( '-7 days', current_time( 'timestamp' ) ) ),
219
+            'after'  => date( 'Y-m-d', strtotime( '-15 days', current_time( 'timestamp' ) ) ),
220
+        );
221
+
222
+        // Generate the report.
223
+        return array(
224
+            'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
225
+            'after'  => date( 'Y-m-d', strtotime( '-8 days', current_time( 'timestamp' ) ) ),
226
+        );
227
+
228
+    }
229
+
230
+    /**
231
+     * Retrieves last 30 days date range.
232
+     *
233
+     * @return array The appropriate date range.
234
+     */
235
+    public function get_30_days_date_range() {
236
+
237
+        // Set the previous date range.
238
+        $this->previous_range = array(
239
+            'period' => 'custom',
240
+            'before' => date( 'Y-m-d', strtotime( '-30 days', current_time( 'timestamp' ) ) ),
241
+            'after'  => date( 'Y-m-d', strtotime( '-61 days', current_time( 'timestamp' ) ) ),
242
+        );
243
+
244
+        // Generate the report.
245
+        return array(
246
+            'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
247
+            'after'  => date( 'Y-m-d', strtotime( '-31 days', current_time( 'timestamp' ) ) ),
248
+        );
249
+
250
+    }
251
+
252
+    /**
253
+     * Retrieves last 90 days date range.
254
+     *
255
+     * @return array The appropriate date range.
256
+     */
257
+    public function get_90_days_date_range() {
258
+
259
+        $this->groupby = 'month';
260
+
261
+        // Set the previous date range.
262
+        $this->previous_range = array(
263
+            'period' => 'custom',
264
+            'before' => date( 'Y-m-d', strtotime( '-90 days', current_time( 'timestamp' ) ) ),
265
+            'after'  => date( 'Y-m-d', strtotime( '-181 days', current_time( 'timestamp' ) ) ),
266
+        );
267
+
268
+        // Generate the report.
269
+        return array(
270
+            'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
271
+            'after'  => date( 'Y-m-d', strtotime( '-91 days', current_time( 'timestamp' ) ) ),
272
+        );
273
+
274
+    }
275
+
276
+    /**
277
+     * Retrieves last 180 days date range.
278
+     *
279
+     * @return array The appropriate date range.
280
+     */
281
+    public function get_180_days_date_range() {
282
+
283
+        $this->groupby = 'month';
284
+
285
+        // Set the previous date range.
286
+        $this->previous_range = array(
287
+            'period' => 'custom',
288
+            'before' => date( 'Y-m-d', strtotime( '-180 days', current_time( 'timestamp' ) ) ),
289
+            'after'  => date( 'Y-m-d', strtotime( '-361 days', current_time( 'timestamp' ) ) ),
290
+        );
291
+
292
+        // Generate the report.
293
+        return array(
294
+            'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
295
+            'after'  => date( 'Y-m-d', strtotime( '-181 days', current_time( 'timestamp' ) ) ),
296
+        );
297
+
298
+    }
299
+
300
+    /**
301
+     * Retrieves last 60 days date range.
302
+     *
303
+     * @return array The appropriate date range.
304
+     */
305
+    public function get_60_days_date_range() {
306
+
307
+        // Set the previous date range.
308
+        $this->previous_range = array(
309
+            'period' => 'custom',
310
+            'before' => date( 'Y-m-d', strtotime( '-60 days', current_time( 'timestamp' ) ) ),
311
+            'after'  => date( 'Y-m-d', strtotime( '-121 days', current_time( 'timestamp' ) ) ),
312
+        );
313
+
314
+        // Generate the report.
315
+        return array(
316
+            'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
317
+            'after'  => date( 'Y-m-d', strtotime( '-61 days', current_time( 'timestamp' ) ) ),
318
+        );
319
+
320
+    }
321
+
322
+    /**
323
+     * Retrieves this month date range.
324
+     *
325
+     * @return array The appropriate date range.
326
+     */
327
+    public function get_month_date_range() {
328
+
329
+        // Set the previous date range.
330
+        $this->previous_range = array(
331
+            'period' => 'last_month',
332
+        );
333
+
334
+        // Generate the report.
335
+        return array(
336
+            'before' => date( 'Y-m-01', strtotime( 'next month', current_time( 'timestamp' ) ) ),
337
+            'after'  => date( 'Y-m-t', strtotime( 'last month', current_time( 'timestamp' ) ) ),
338
+        );
339
+
340
+    }
341
+
342
+    /**
343
+     * Retrieves last month's date range.
344
+     *
345
+     * @return array The appropriate date range.
346
+     */
347
+    public function get_last_month_date_range() {
348
+
349
+        // Set the previous date range.
350
+        $this->previous_range = array(
351
+            'period' => 'custom',
352
+            'before' => date( 'Y-m-1', strtotime( 'last month', current_time( 'timestamp' ) ) ),
353
+            'after'  => date( 'Y-m-t', strtotime( "-3 months", current_time( 'timestamp' ) ) ),
354
+        );
355
+
356
+        // Generate the report.
357
+        return array(
358
+            'before' => date( 'Y-m-1', current_time( 'timestamp' ) ),
359
+            'after'  => date( 'Y-m-t', strtotime( "-2 months", current_time( 'timestamp' ) ) ),
360
+        );
361
+
362
+    }
363
+
364
+    /**
365
+     * Retrieves this quarter date range.
366
+     *
367
+     * @return array The available quarters.
368
+     */
369
+    public function get_quarters() {
370
+
371
+        $last_year = (int) date('Y') - 1;
372
+        $next_year = (int) date('Y') + 1;
373
+        $year      = (int) date('Y');
374
+        return array(
375
+
376
+            array(
377
+                'after'  => "$last_year-06-30",
378
+                'before' => "$last_year-10-01",
379
+            ),
380
+
381
+            array(
382
+                'before' => "$year-01-01",
383
+                'after'  => "$last_year-09-30",
384
+            ),
385
+
386
+            array(
387
+                'before' => "$year-04-01",
388
+                'after'  => "$last_year-12-31",
389
+            ),
390
+
391
+            array(
392
+                'before' => "$year-07-01",
393
+                'after'  => "$year-03-31",
394
+            ),
395
+
396
+            array(
397
+                'after'  => "$year-06-30",
398
+                'before' => "$year-10-01",
399
+            ),
400
+
401
+            array(
402
+                'before' => "$next_year-01-01",
403
+                'after'  => "$year-09-30",
404
+            )
405
+
406
+        );
407
+
408
+    }
409
+
410
+    /**
411
+     * Retrieves the current quater.
412
+     *
413
+     * @return int The current quarter.
414
+     */
415
+    public function get_quarter() {
416
+
417
+        $month    = (int) date( 'n', current_time( 'timestamp' ) );
418
+        $quarters = array( 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 );
419
+        return $quarters[ $month - 1 ];
420
+
421
+    }
422
+
423
+    /**
424
+     * Retrieves this quarter date range.
425
+     *
426
+     * @return array The appropriate date range.
427
+     */
428
+    public function get_quarter_date_range() {
429
+
430
+        // Set the previous date range.
431
+        $this->previous_range = array(
432
+            'period' => 'last_quarter',
433
+        );
434
+
435
+        // Generate the report.
436
+        $quarters = $this->get_quarters();
437
+        return $quarters[ $this->get_quarter() + 1 ];
438
+
439
+    }
440
+
441
+    /**
442
+     * Retrieves last quarter's date range.
443
+     *
444
+     * @return array The appropriate date range.
445
+     */
446
+    public function get_last_quarter_date_range() {
447
+
448
+        $quarters = $this->get_quarters();
449
+        $quarter  = $this->get_quarter();
450
+
451
+        // Set the previous date range.
452
+        $this->previous_range = array_merge(
453
+            $quarters[ $quarter - 1 ],
454
+            array( 'period' => 'custom' )
455
+        );
456
+
457
+        // Generate the report.
458
+        return $quarters[ $quarter ];
459
+
460
+    }
461
+
462
+    /**
463
+     * Retrieves this year date range.
464
+     *
465
+     * @return array The appropriate date range.
466
+     */
467
+    public function get_year_date_range() {
468
+
469
+        $this->groupby = 'month';
470
+
471
+        // Set the previous date range.
472
+        $this->previous_range = array(
473
+            'period' => 'last_year',
474
+        );
475
+
476
+        // Generate the report.
477
+        return array(
478
+            'before' => date( 'Y-m-d', strtotime( 'next year January 1st', current_time( 'timestamp' ) ) ),
479
+            'after'  => date( 'Y-m-d', strtotime( 'last year December 31st', current_time( 'timestamp' ) ) ),
480
+        );
481
+
482
+    }
483
+
484
+    /**
485
+     * Retrieves last year date range.
486
+     *
487
+     * @return array The appropriate date range.
488
+     */
489
+    public function get_last_year_date_range() {
490
+
491
+        $this->groupby = 'month';
492
+
493
+        // Set the previous date range.
494
+        $year          = (int) date('Y') - 3;
495
+        $this->previous_range = array(
496
+            'period' => 'custom',
497
+            'before' => date( 'Y-m-d', strtotime( 'first day of january last year', current_time( 'timestamp' ) ) ),
498
+            'after'  => "$year-12-31",
499
+        );
500
+
501
+        // Generate the report.
502
+        $year          = (int) date('Y') - 2;
503
+        return array(
504
+            'after'  => "$year-12-31",
505
+            'before' => date( 'Y-m-d', strtotime( 'first day of january this year', current_time( 'timestamp' ) ) ),
506
+        );
507
+
508
+    }
509
+
510
+    /**
511
+     * Prepare a the request date for SQL usage.
512
+     *
513
+     * @param WP_REST_Request $request Request object.
514
+     * @param string $date_field The date field.
515
+     * @return string The appropriate SQL.
516
+     */
517
+    public function get_date_range_sql( $request, $date_field ) {
518
+        global $wpdb;
519
+
520
+        $sql = '1=1';
521
+        $range = $this->get_date_range( $request );
522
+
523
+        if ( ! empty( $range['after'] ) ) {
524
+            $sql .= ' AND ' .  $wpdb->prepare(
525
+                "$date_field > %s",
526
+                $range['after']
527
+            );
528
+        }
529
+
530
+        if ( ! empty( $range['before'] ) ) {
531
+            $sql .= ' AND ' .  $wpdb->prepare(
532
+                "$date_field < %s",
533
+                $range['before']
534
+            );
535
+        }
536
+
537
+        return $sql;
538
+
539
+    }
540
+
541
+    /**
542
+     * Prepares a group by query.
543
+     *
544
+     * @param string $date_field The date field.
545
+     * @return string The appropriate SQL.
546
+     */
547
+    public function get_group_by_sql( $date_field ) {
548
+
549
+        if ( 'day' === $this->groupby ) {
550
+            return "YEAR($date_field), MONTH($date_field), DAY($date_field)";
551
+        }
552
+
553
+        return "YEAR($date_field), MONTH($date_field)";
554
+    }
555
+
556
+    /**
557
+     * Get the query params for collections.
558
+     *
559
+     * @return array
560
+     */
561
+    public function get_collection_params() {
562
+        return array(
563
+            'context' => $this->get_context_param( array( 'default' => 'view' ) ),
564
+            'period' => array(
565
+                'description'       => __( 'Limit to results of a specific period.', 'invoicing' ),
566
+                'type'              => 'string',
567
+                'enum'              => array( 'custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days' , '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year', 'quarter', 'last_quarter' ),
568
+                'validate_callback' => 'rest_validate_request_arg',
569
+                'sanitize_callback' => 'sanitize_text_field',
570
+                'default'           => '7_days',
571
+            ),
572
+            'after' => array(
573
+                /* translators: %s: date format */
574
+                'description'       => sprintf( __( 'Limit to results after a specific date, the date needs to be in the %s format.', 'invoicing' ), 'YYYY-MM-DD' ),
575
+                'type'              => 'string',
576
+                'format'            => 'date',
577
+                'validate_callback' => 'rest_validate_request_arg',
578
+                'sanitize_callback' => 'sanitize_text_field',
579
+                'default'           => date( 'Y-m-d', strtotime( '-8 days', current_time( 'timestamp' ) ) ),
580
+            ),
581
+            'before' => array(
582
+                /* translators: %s: date format */
583
+                'description'       => sprintf( __( 'Limit to results before a specific date, the date needs to be in the %s format.', 'invoicing' ), 'YYYY-MM-DD' ),
584
+                'type'              => 'string',
585
+                'format'            => 'date',
586
+                'validate_callback' => 'rest_validate_request_arg',
587
+                'sanitize_callback' => 'sanitize_text_field',
588
+                'default'           => date( 'Y-m-d', current_time( 'timestamp' ) ),
589
+            ),
590
+        );
591
+    }
592 592
 }
Please login to merge, or discard this patch.
Spacing   +91 added lines, -91 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  * @since   2.0.0
8 8
  */
9 9
 
10
-defined( 'ABSPATH' ) || exit;
10
+defined('ABSPATH') || exit;
11 11
 
12 12
 /**
13 13
  * GetPaid REST date based controller class.
@@ -43,15 +43,15 @@  discard block
 block discarded – undo
43 43
 	 * @param WP_REST_Request $request Request object.
44 44
 	 * @return array The appropriate date range.
45 45
 	 */
46
-	public function get_date_range( $request ) {
46
+	public function get_date_range($request) {
47 47
 
48 48
 		// If not supported, assume all time.
49
-		if ( ! in_array( $request['period'], array( 'custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days', '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year' ) ) ) {
49
+		if (!in_array($request['period'], array('custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days', '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year'))) {
50 50
 			$request['period'] = '7_days';
51 51
 		}
52 52
 
53
-		$date_range = call_user_func( array( $this, 'get_' . $request['period'] . '_date_range' ), $request );
54
-		$this->prepare_interval( $date_range );
53
+		$date_range = call_user_func(array($this, 'get_' . $request['period'] . '_date_range'), $request);
54
+		$this->prepare_interval($date_range);
55 55
 
56 56
 		return $date_range;
57 57
 
@@ -63,25 +63,25 @@  discard block
 block discarded – undo
63 63
 	 * @param array $range Date range.
64 64
 	 * @return array The appropriate date range.
65 65
 	 */
66
-	public function prepare_interval( $range ) {
66
+	public function prepare_interval($range) {
67 67
 
68
-		$before = strtotime( $range['before'] ) - DAY_IN_SECONDS;
69
-		$after  = strtotime( $range['after'] ) + DAY_IN_SECONDS;
70
-		if ( 'day' === $this->groupby ) {
71
-			$difference     = max( DAY_IN_SECONDS, ( DAY_IN_SECONDS + $before - $after ) ); // Prevent division by 0;
72
-			$this->interval = absint( ceil( max( 1, $difference / DAY_IN_SECONDS ) ) );
68
+		$before = strtotime($range['before']) - DAY_IN_SECONDS;
69
+		$after  = strtotime($range['after']) + DAY_IN_SECONDS;
70
+		if ('day' === $this->groupby) {
71
+			$difference     = max(DAY_IN_SECONDS, (DAY_IN_SECONDS + $before - $after)); // Prevent division by 0;
72
+			$this->interval = absint(ceil(max(1, $difference / DAY_IN_SECONDS)));
73 73
 			return;
74 74
 		}
75 75
 
76 76
 		$this->interval = 0;
77
-		$min_date       = strtotime( date( 'Y-m-01', $after ) );
77
+		$min_date       = strtotime(date('Y-m-01', $after));
78 78
 
79
-		while ( $min_date <= $before ) {
80
-			$this->interval ++;
81
-			$min_date = strtotime( '+1 MONTH', $min_date );
79
+		while ($min_date <= $before) {
80
+			$this->interval++;
81
+			$min_date = strtotime('+1 MONTH', $min_date);
82 82
 		}
83 83
 
84
-		$this->interval = max( 1, $this->interval );
84
+		$this->interval = max(1, $this->interval);
85 85
 
86 86
 	}
87 87
 
@@ -91,17 +91,17 @@  discard block
 block discarded – undo
91 91
 	 * @param WP_REST_Request $request Request object.
92 92
 	 * @return array The appropriate date range.
93 93
 	 */
94
-	public function get_custom_date_range( $request ) {
94
+	public function get_custom_date_range($request) {
95 95
 
96
-		$after  = max( strtotime( '-20 years' ), strtotime( sanitize_text_field( $request['after'] ) ) );
97
-		$before = strtotime( '+1 day', current_time( 'timestamp' ) );
96
+		$after  = max(strtotime('-20 years'), strtotime(sanitize_text_field($request['after'])));
97
+		$before = strtotime('+1 day', current_time('timestamp'));
98 98
 
99
-		if ( ! empty( $request['before'] ) ) {
100
-			$before  = min( $before, strtotime( sanitize_text_field( $request['before'] ) ) );
99
+		if (!empty($request['before'])) {
100
+			$before = min($before, strtotime(sanitize_text_field($request['before'])));
101 101
 		}
102 102
 
103 103
 		// 3 months max for day view
104
-		if ( floor( ( $before - $after ) / MONTH_IN_SECONDS ) > 3 ) {
104
+		if (floor(($before - $after) / MONTH_IN_SECONDS) > 3) {
105 105
 			$this->groupby = 'month';
106 106
 		}
107 107
 
@@ -109,14 +109,14 @@  discard block
 block discarded – undo
109 109
 		$difference           = $before - $after;
110 110
 		$this->previous_range = array(
111 111
 			'period' => 'custom',
112
-			'before' => date( 'Y-m-d', $before - $difference ),
113
-			'after'  => date( 'Y-m-d', $after - $difference ),
112
+			'before' => date('Y-m-d', $before - $difference),
113
+			'after'  => date('Y-m-d', $after - $difference),
114 114
 		);
115 115
 
116 116
 		// Generate the report.
117 117
 		return array(
118
-			'before' => date( 'Y-m-d', $before ),
119
-			'after' => date( 'Y-m-d', $after ),
118
+			'before' => date('Y-m-d', $before),
119
+			'after' => date('Y-m-d', $after),
120 120
 		);
121 121
 
122 122
 	}
@@ -135,8 +135,8 @@  discard block
 block discarded – undo
135 135
 
136 136
 		// Generate the report.
137 137
 		return array(
138
-			'before' => date( 'Y-m-d', strtotime( '+1 day', current_time( 'timestamp' ) ) ),
139
-			'after'  => date( 'Y-m-d', strtotime( '-1 day', current_time( 'timestamp' ) ) ),
138
+			'before' => date('Y-m-d', strtotime('+1 day', current_time('timestamp'))),
139
+			'after'  => date('Y-m-d', strtotime('-1 day', current_time('timestamp'))),
140 140
 		);
141 141
 
142 142
 	}
@@ -151,14 +151,14 @@  discard block
 block discarded – undo
151 151
 		// Set the previous date range.
152 152
 		$this->previous_range = array(
153 153
 			'period' => 'custom',
154
-			'before' => date( 'Y-m-d', strtotime( '-1 day', current_time( 'timestamp' ) ) ),
155
-			'after'  => date( 'Y-m-d', strtotime( '-3 days', current_time( 'timestamp' ) ) ),
154
+			'before' => date('Y-m-d', strtotime('-1 day', current_time('timestamp'))),
155
+			'after'  => date('Y-m-d', strtotime('-3 days', current_time('timestamp'))),
156 156
 		);
157 157
 
158 158
 		// Generate the report.
159 159
 		return array(
160
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
161
-			'after'  => date( 'Y-m-d', strtotime( '-2 days', current_time( 'timestamp' ) ) ),
160
+			'before' => date('Y-m-d', current_time('timestamp')),
161
+			'after'  => date('Y-m-d', strtotime('-2 days', current_time('timestamp'))),
162 162
 		);
163 163
 
164 164
 	}
@@ -177,8 +177,8 @@  discard block
 block discarded – undo
177 177
 
178 178
 		// Generate the report.
179 179
 		return array(
180
-			'before' => date( 'Y-m-d', strtotime( 'sunday last week', current_time( 'timestamp' )  ) + 8 * DAY_IN_SECONDS ),
181
-			'after'  => date( 'Y-m-d', strtotime( 'sunday last week', current_time( 'timestamp' )  ) ),
180
+			'before' => date('Y-m-d', strtotime('sunday last week', current_time('timestamp')) + 8 * DAY_IN_SECONDS),
181
+			'after'  => date('Y-m-d', strtotime('sunday last week', current_time('timestamp'))),
182 182
 		);
183 183
 
184 184
 	}
@@ -193,14 +193,14 @@  discard block
 block discarded – undo
193 193
 		// Set the previous date range.
194 194
 		$this->previous_range = array(
195 195
 			'period' => 'custom',
196
-			'before' => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) ),
197
-			'after'  => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) - 8 * DAY_IN_SECONDS ),
196
+			'before' => date('Y-m-d', strtotime('monday last week', current_time('timestamp'))),
197
+			'after'  => date('Y-m-d', strtotime('monday last week', current_time('timestamp')) - 8 * DAY_IN_SECONDS),
198 198
 		);
199 199
 
200 200
 		// Generate the report.
201 201
 		return array(
202
-			'before' => date( 'Y-m-d', strtotime( 'monday this week', current_time( 'timestamp' )  ) ),
203
-			'after'  => date( 'Y-m-d', strtotime( 'monday last week', current_time( 'timestamp' )  ) - DAY_IN_SECONDS ),
202
+			'before' => date('Y-m-d', strtotime('monday this week', current_time('timestamp'))),
203
+			'after'  => date('Y-m-d', strtotime('monday last week', current_time('timestamp')) - DAY_IN_SECONDS),
204 204
 		);
205 205
 
206 206
 	}
@@ -215,14 +215,14 @@  discard block
 block discarded – undo
215 215
 		// Set the previous date range.
216 216
 		$this->previous_range = array(
217 217
 			'period' => 'custom',
218
-			'before' => date( 'Y-m-d', strtotime( '-7 days', current_time( 'timestamp' ) ) ),
219
-			'after'  => date( 'Y-m-d', strtotime( '-15 days', current_time( 'timestamp' ) ) ),
218
+			'before' => date('Y-m-d', strtotime('-7 days', current_time('timestamp'))),
219
+			'after'  => date('Y-m-d', strtotime('-15 days', current_time('timestamp'))),
220 220
 		);
221 221
 
222 222
 		// Generate the report.
223 223
 		return array(
224
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
225
-			'after'  => date( 'Y-m-d', strtotime( '-8 days', current_time( 'timestamp' ) ) ),
224
+			'before' => date('Y-m-d', current_time('timestamp')),
225
+			'after'  => date('Y-m-d', strtotime('-8 days', current_time('timestamp'))),
226 226
 		);
227 227
 
228 228
 	}
@@ -237,14 +237,14 @@  discard block
 block discarded – undo
237 237
 		// Set the previous date range.
238 238
 		$this->previous_range = array(
239 239
 			'period' => 'custom',
240
-			'before' => date( 'Y-m-d', strtotime( '-30 days', current_time( 'timestamp' ) ) ),
241
-			'after'  => date( 'Y-m-d', strtotime( '-61 days', current_time( 'timestamp' ) ) ),
240
+			'before' => date('Y-m-d', strtotime('-30 days', current_time('timestamp'))),
241
+			'after'  => date('Y-m-d', strtotime('-61 days', current_time('timestamp'))),
242 242
 		);
243 243
 
244 244
 		// Generate the report.
245 245
 		return array(
246
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
247
-			'after'  => date( 'Y-m-d', strtotime( '-31 days', current_time( 'timestamp' ) ) ),
246
+			'before' => date('Y-m-d', current_time('timestamp')),
247
+			'after'  => date('Y-m-d', strtotime('-31 days', current_time('timestamp'))),
248 248
 		);
249 249
 
250 250
 	}
@@ -261,14 +261,14 @@  discard block
 block discarded – undo
261 261
 		// Set the previous date range.
262 262
 		$this->previous_range = array(
263 263
 			'period' => 'custom',
264
-			'before' => date( 'Y-m-d', strtotime( '-90 days', current_time( 'timestamp' ) ) ),
265
-			'after'  => date( 'Y-m-d', strtotime( '-181 days', current_time( 'timestamp' ) ) ),
264
+			'before' => date('Y-m-d', strtotime('-90 days', current_time('timestamp'))),
265
+			'after'  => date('Y-m-d', strtotime('-181 days', current_time('timestamp'))),
266 266
 		);
267 267
 
268 268
 		// Generate the report.
269 269
 		return array(
270
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
271
-			'after'  => date( 'Y-m-d', strtotime( '-91 days', current_time( 'timestamp' ) ) ),
270
+			'before' => date('Y-m-d', current_time('timestamp')),
271
+			'after'  => date('Y-m-d', strtotime('-91 days', current_time('timestamp'))),
272 272
 		);
273 273
 
274 274
 	}
@@ -285,14 +285,14 @@  discard block
 block discarded – undo
285 285
 		// Set the previous date range.
286 286
 		$this->previous_range = array(
287 287
 			'period' => 'custom',
288
-			'before' => date( 'Y-m-d', strtotime( '-180 days', current_time( 'timestamp' ) ) ),
289
-			'after'  => date( 'Y-m-d', strtotime( '-361 days', current_time( 'timestamp' ) ) ),
288
+			'before' => date('Y-m-d', strtotime('-180 days', current_time('timestamp'))),
289
+			'after'  => date('Y-m-d', strtotime('-361 days', current_time('timestamp'))),
290 290
 		);
291 291
 
292 292
 		// Generate the report.
293 293
 		return array(
294
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
295
-			'after'  => date( 'Y-m-d', strtotime( '-181 days', current_time( 'timestamp' ) ) ),
294
+			'before' => date('Y-m-d', current_time('timestamp')),
295
+			'after'  => date('Y-m-d', strtotime('-181 days', current_time('timestamp'))),
296 296
 		);
297 297
 
298 298
 	}
@@ -307,14 +307,14 @@  discard block
 block discarded – undo
307 307
 		// Set the previous date range.
308 308
 		$this->previous_range = array(
309 309
 			'period' => 'custom',
310
-			'before' => date( 'Y-m-d', strtotime( '-60 days', current_time( 'timestamp' ) ) ),
311
-			'after'  => date( 'Y-m-d', strtotime( '-121 days', current_time( 'timestamp' ) ) ),
310
+			'before' => date('Y-m-d', strtotime('-60 days', current_time('timestamp'))),
311
+			'after'  => date('Y-m-d', strtotime('-121 days', current_time('timestamp'))),
312 312
 		);
313 313
 
314 314
 		// Generate the report.
315 315
 		return array(
316
-			'before' => date( 'Y-m-d', current_time( 'timestamp' ) ),
317
-			'after'  => date( 'Y-m-d', strtotime( '-61 days', current_time( 'timestamp' ) ) ),
316
+			'before' => date('Y-m-d', current_time('timestamp')),
317
+			'after'  => date('Y-m-d', strtotime('-61 days', current_time('timestamp'))),
318 318
 		);
319 319
 
320 320
 	}
@@ -333,8 +333,8 @@  discard block
 block discarded – undo
333 333
 
334 334
 		// Generate the report.
335 335
 		return array(
336
-			'before' => date( 'Y-m-01', strtotime( 'next month', current_time( 'timestamp' ) ) ),
337
-			'after'  => date( 'Y-m-t', strtotime( 'last month', current_time( 'timestamp' ) ) ),
336
+			'before' => date('Y-m-01', strtotime('next month', current_time('timestamp'))),
337
+			'after'  => date('Y-m-t', strtotime('last month', current_time('timestamp'))),
338 338
 		);
339 339
 
340 340
 	}
@@ -349,14 +349,14 @@  discard block
 block discarded – undo
349 349
 		// Set the previous date range.
350 350
 		$this->previous_range = array(
351 351
 			'period' => 'custom',
352
-			'before' => date( 'Y-m-1', strtotime( 'last month', current_time( 'timestamp' ) ) ),
353
-			'after'  => date( 'Y-m-t', strtotime( "-3 months", current_time( 'timestamp' ) ) ),
352
+			'before' => date('Y-m-1', strtotime('last month', current_time('timestamp'))),
353
+			'after'  => date('Y-m-t', strtotime("-3 months", current_time('timestamp'))),
354 354
 		);
355 355
 
356 356
 		// Generate the report.
357 357
 		return array(
358
-			'before' => date( 'Y-m-1', current_time( 'timestamp' ) ),
359
-			'after'  => date( 'Y-m-t', strtotime( "-2 months", current_time( 'timestamp' ) ) ),
358
+			'before' => date('Y-m-1', current_time('timestamp')),
359
+			'after'  => date('Y-m-t', strtotime("-2 months", current_time('timestamp'))),
360 360
 		);
361 361
 
362 362
 	}
@@ -414,9 +414,9 @@  discard block
 block discarded – undo
414 414
 	 */
415 415
 	public function get_quarter() {
416 416
 
417
-		$month    = (int) date( 'n', current_time( 'timestamp' ) );
418
-		$quarters = array( 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4 );
419
-		return $quarters[ $month - 1 ];
417
+		$month    = (int) date('n', current_time('timestamp'));
418
+		$quarters = array(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4);
419
+		return $quarters[$month - 1];
420 420
 
421 421
 	}
422 422
 
@@ -434,7 +434,7 @@  discard block
 block discarded – undo
434 434
 
435 435
 		// Generate the report.
436 436
 		$quarters = $this->get_quarters();
437
-		return $quarters[ $this->get_quarter() + 1 ];
437
+		return $quarters[$this->get_quarter() + 1];
438 438
 
439 439
 	}
440 440
 
@@ -450,12 +450,12 @@  discard block
 block discarded – undo
450 450
 
451 451
 		// Set the previous date range.
452 452
 		$this->previous_range = array_merge(
453
-			$quarters[ $quarter - 1 ],
454
-			array( 'period' => 'custom' )
453
+			$quarters[$quarter - 1],
454
+			array('period' => 'custom')
455 455
 		);
456 456
 
457 457
 		// Generate the report.
458
-		return $quarters[ $quarter ];
458
+		return $quarters[$quarter];
459 459
 
460 460
 	}
461 461
 
@@ -475,8 +475,8 @@  discard block
 block discarded – undo
475 475
 
476 476
 		// Generate the report.
477 477
 		return array(
478
-			'before' => date( 'Y-m-d', strtotime( 'next year January 1st', current_time( 'timestamp' ) ) ),
479
-			'after'  => date( 'Y-m-d', strtotime( 'last year December 31st', current_time( 'timestamp' ) ) ),
478
+			'before' => date('Y-m-d', strtotime('next year January 1st', current_time('timestamp'))),
479
+			'after'  => date('Y-m-d', strtotime('last year December 31st', current_time('timestamp'))),
480 480
 		);
481 481
 
482 482
 	}
@@ -494,15 +494,15 @@  discard block
 block discarded – undo
494 494
 		$year          = (int) date('Y') - 3;
495 495
 		$this->previous_range = array(
496 496
 			'period' => 'custom',
497
-			'before' => date( 'Y-m-d', strtotime( 'first day of january last year', current_time( 'timestamp' ) ) ),
497
+			'before' => date('Y-m-d', strtotime('first day of january last year', current_time('timestamp'))),
498 498
 			'after'  => "$year-12-31",
499 499
 		);
500 500
 
501 501
 		// Generate the report.
502
-		$year          = (int) date('Y') - 2;
502
+		$year = (int) date('Y') - 2;
503 503
 		return array(
504 504
 			'after'  => "$year-12-31",
505
-			'before' => date( 'Y-m-d', strtotime( 'first day of january this year', current_time( 'timestamp' ) ) ),
505
+			'before' => date('Y-m-d', strtotime('first day of january this year', current_time('timestamp'))),
506 506
 		);
507 507
 
508 508
 	}
@@ -514,21 +514,21 @@  discard block
 block discarded – undo
514 514
 	 * @param string $date_field The date field.
515 515
 	 * @return string The appropriate SQL.
516 516
 	 */
517
-	public function get_date_range_sql( $request, $date_field ) {
517
+	public function get_date_range_sql($request, $date_field) {
518 518
 		global $wpdb;
519 519
 
520 520
 		$sql = '1=1';
521
-		$range = $this->get_date_range( $request );
521
+		$range = $this->get_date_range($request);
522 522
 
523
-		if ( ! empty( $range['after'] ) ) {
524
-			$sql .= ' AND ' .  $wpdb->prepare(
523
+		if (!empty($range['after'])) {
524
+			$sql .= ' AND ' . $wpdb->prepare(
525 525
 				"$date_field > %s",
526 526
 				$range['after']
527 527
 			);
528 528
 		}
529 529
 
530
-		if ( ! empty( $range['before'] ) ) {
531
-			$sql .= ' AND ' .  $wpdb->prepare(
530
+		if (!empty($range['before'])) {
531
+			$sql .= ' AND ' . $wpdb->prepare(
532 532
 				"$date_field < %s",
533 533
 				$range['before']
534 534
 			);
@@ -544,9 +544,9 @@  discard block
 block discarded – undo
544 544
 	 * @param string $date_field The date field.
545 545
 	 * @return string The appropriate SQL.
546 546
 	 */
547
-	public function get_group_by_sql( $date_field ) {
547
+	public function get_group_by_sql($date_field) {
548 548
 
549
-		if ( 'day' === $this->groupby ) {
549
+		if ('day' === $this->groupby) {
550 550
 			return "YEAR($date_field), MONTH($date_field), DAY($date_field)";
551 551
 		}
552 552
 
@@ -560,32 +560,32 @@  discard block
 block discarded – undo
560 560
 	 */
561 561
 	public function get_collection_params() {
562 562
 		return array(
563
-			'context' => $this->get_context_param( array( 'default' => 'view' ) ),
563
+			'context' => $this->get_context_param(array('default' => 'view')),
564 564
 			'period' => array(
565
-				'description'       => __( 'Limit to results of a specific period.', 'invoicing' ),
565
+				'description'       => __('Limit to results of a specific period.', 'invoicing'),
566 566
 				'type'              => 'string',
567
-				'enum'              => array( 'custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days' , '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year', 'quarter', 'last_quarter' ),
567
+				'enum'              => array('custom', 'today', 'yesterday', 'week', 'last_week', '7_days', '30_days', '60_days', '90_days', '180_days', 'month', 'last_month', 'quarter', 'last_quarter', 'year', 'last_year', 'quarter', 'last_quarter'),
568 568
 				'validate_callback' => 'rest_validate_request_arg',
569 569
 				'sanitize_callback' => 'sanitize_text_field',
570 570
 				'default'           => '7_days',
571 571
 			),
572 572
 			'after' => array(
573 573
 				/* translators: %s: date format */
574
-				'description'       => sprintf( __( 'Limit to results after a specific date, the date needs to be in the %s format.', 'invoicing' ), 'YYYY-MM-DD' ),
574
+				'description'       => sprintf(__('Limit to results after a specific date, the date needs to be in the %s format.', 'invoicing'), 'YYYY-MM-DD'),
575 575
 				'type'              => 'string',
576 576
 				'format'            => 'date',
577 577
 				'validate_callback' => 'rest_validate_request_arg',
578 578
 				'sanitize_callback' => 'sanitize_text_field',
579
-				'default'           => date( 'Y-m-d', strtotime( '-8 days', current_time( 'timestamp' ) ) ),
579
+				'default'           => date('Y-m-d', strtotime('-8 days', current_time('timestamp'))),
580 580
 			),
581 581
 			'before' => array(
582 582
 				/* translators: %s: date format */
583
-				'description'       => sprintf( __( 'Limit to results before a specific date, the date needs to be in the %s format.', 'invoicing' ), 'YYYY-MM-DD' ),
583
+				'description'       => sprintf(__('Limit to results before a specific date, the date needs to be in the %s format.', 'invoicing'), 'YYYY-MM-DD'),
584 584
 				'type'              => 'string',
585 585
 				'format'            => 'date',
586 586
 				'validate_callback' => 'rest_validate_request_arg',
587 587
 				'sanitize_callback' => 'sanitize_text_field',
588
-				'default'           => date( 'Y-m-d', current_time( 'timestamp' ) ),
588
+				'default'           => date('Y-m-d', current_time('timestamp')),
589 589
 			),
590 590
 		);
591 591
 	}
Please login to merge, or discard this patch.
includes/reports/class-getpaid-reports-report.php 2 patches
Indentation   +189 added lines, -189 removed lines patch added patch discarded remove patch
@@ -12,88 +12,88 @@  discard block
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Reports_Report {
14 14
 
15
-	/**
16
-	 * @var array
17
-	 */
18
-	public $views;
15
+    /**
16
+     * @var array
17
+     */
18
+    public $views;
19 19
 
20
-	/**
21
-	 * Class constructor.
22
-	 *
23
-	 */
24
-	public function __construct() {
20
+    /**
21
+     * Class constructor.
22
+     *
23
+     */
24
+    public function __construct() {
25 25
 
26
-		$this->views        = array(
26
+        $this->views        = array(
27 27
 
28 28
             'items'     => array(
29
-				'label' => __( 'Items', 'invoicing' ),
30
-				'class' => 'GetPaid_Reports_Report_Items',
31
-			),
29
+                'label' => __( 'Items', 'invoicing' ),
30
+                'class' => 'GetPaid_Reports_Report_Items',
31
+            ),
32 32
 
33
-			'gateways'  => array(
34
-				'label' => __( 'Payment Methods', 'invoicing' ),
35
-				'class' => 'GetPaid_Reports_Report_Gateways',
36
-			),
33
+            'gateways'  => array(
34
+                'label' => __( 'Payment Methods', 'invoicing' ),
35
+                'class' => 'GetPaid_Reports_Report_Gateways',
36
+            ),
37 37
 
38
-			'discounts'  => array(
39
-				'label' => __( 'Discount Codes', 'invoicing' ),
40
-				'class' => 'GetPaid_Reports_Report_Discounts',
41
-			),
38
+            'discounts'  => array(
39
+                'label' => __( 'Discount Codes', 'invoicing' ),
40
+                'class' => 'GetPaid_Reports_Report_Discounts',
41
+            ),
42 42
 
43 43
         );
44 44
 
45
-		$this->views        = apply_filters( 'wpinv_report_views', $this->views );
46
-
47
-	}
48
-
49
-	/**
50
-	 * Retrieves the current range.
51
-	 *
52
-	 */
53
-	public function get_range() {
54
-		$valid_ranges = $this->get_periods();
55
-
56
-		if ( isset( $_GET['date_range'] ) && array_key_exists( $_GET['date_range'], $valid_ranges ) ) {
57
-			return sanitize_key( $_GET['date_range'] );
58
-		}
59
-
60
-		return '7_days';
61
-	}
62
-
63
-	/**
64
-	 * Returns an array of date ranges.
65
-	 *
66
-	 * @return array
67
-	 */
68
-	public function get_periods() {
69
-
70
-		$periods = array(
71
-			'today'        => __( 'Today', 'invoicing' ),
72
-			'yesterday'    => __( 'Yesterday', 'invoicing' ),
73
-			'week'         => __( 'This week', 'invoicing' ),
74
-			'last_week'    => __( 'Last week', 'invoicing' ),
75
-			'7_days'       => __( 'Last 7 days', 'invoicing' ),
76
-			'month'        => __( 'This month', 'invoicing' ),
77
-			'last_month'   => __( 'Last month', 'invoicing' ),
78
-			'30_days'      => __( 'Last 30 days', 'invoicing' ),
79
-			'quarter'      => __( 'This Quarter', 'invoicing' ),
80
-			'last_quarter' => __( 'Last Quarter', 'invoicing' ),
81
-			'year'         => __( 'This year', 'invoicing' ),
82
-			'last_year'    => __( 'Last Year', 'invoicing' ),
83
-			'custom'       => __( 'Custom Date Range', 'invoicing' ),
84
-		);
85
-
86
-		return apply_filters( 'getpaid_earning_periods', $periods );
87
-	}
88
-
89
-	/**
90
-	 * Displays the range selector.
91
-	 *
92
-	 */
93
-	public function display_range_selector() {
94
-
95
-		$range = $this->get_range();
96
-		?>
45
+        $this->views        = apply_filters( 'wpinv_report_views', $this->views );
46
+
47
+    }
48
+
49
+    /**
50
+     * Retrieves the current range.
51
+     *
52
+     */
53
+    public function get_range() {
54
+        $valid_ranges = $this->get_periods();
55
+
56
+        if ( isset( $_GET['date_range'] ) && array_key_exists( $_GET['date_range'], $valid_ranges ) ) {
57
+            return sanitize_key( $_GET['date_range'] );
58
+        }
59
+
60
+        return '7_days';
61
+    }
62
+
63
+    /**
64
+     * Returns an array of date ranges.
65
+     *
66
+     * @return array
67
+     */
68
+    public function get_periods() {
69
+
70
+        $periods = array(
71
+            'today'        => __( 'Today', 'invoicing' ),
72
+            'yesterday'    => __( 'Yesterday', 'invoicing' ),
73
+            'week'         => __( 'This week', 'invoicing' ),
74
+            'last_week'    => __( 'Last week', 'invoicing' ),
75
+            '7_days'       => __( 'Last 7 days', 'invoicing' ),
76
+            'month'        => __( 'This month', 'invoicing' ),
77
+            'last_month'   => __( 'Last month', 'invoicing' ),
78
+            '30_days'      => __( 'Last 30 days', 'invoicing' ),
79
+            'quarter'      => __( 'This Quarter', 'invoicing' ),
80
+            'last_quarter' => __( 'Last Quarter', 'invoicing' ),
81
+            'year'         => __( 'This year', 'invoicing' ),
82
+            'last_year'    => __( 'Last Year', 'invoicing' ),
83
+            'custom'       => __( 'Custom Date Range', 'invoicing' ),
84
+        );
85
+
86
+        return apply_filters( 'getpaid_earning_periods', $periods );
87
+    }
88
+
89
+    /**
90
+     * Displays the range selector.
91
+     *
92
+     */
93
+    public function display_range_selector() {
94
+
95
+        $range = $this->get_range();
96
+        ?>
97 97
 
98 98
 			<form method="get" class="getpaid-filter-earnings float-right">
99 99
 				<?php getpaid_hidden_field( 'page', 'wpinv-reports' );  ?>
@@ -115,14 +115,14 @@  discard block
 block discarded – undo
115 115
 			</form>
116 116
 
117 117
 		<?php
118
-	}
118
+    }
119 119
 
120
-	/**
121
-	 * Displays the reports tab.
122
-	 *
123
-	 */
124
-	public function display() {
125
-		?>
120
+    /**
121
+     * Displays the reports tab.
122
+     *
123
+     */
124
+    public function display() {
125
+        ?>
126 126
 
127 127
 		<div class="mt-4" style="max-width: 1200px;">
128 128
 
@@ -202,24 +202,24 @@  discard block
 block discarded – undo
202 202
 
203 203
 		<?php
204 204
 
205
-	}
206
-
207
-	/**
208
-	 * Displays the left side.
209
-	 *
210
-	 */
211
-	public function display_left() {
212
-		$graphs = array(
213
-			'sales'    => __( 'Earnings', 'invoicing' ),
214
-			'refunds'  => __( 'Refunds', 'invoicing' ),
215
-			'tax'      => __( 'Taxes', 'invoicing' ),
216
-			'fees'     => __( 'Fees', 'invoicing' ),
217
-			'discount' => __( 'Discounts', 'invoicing' ),
218
-			'invoices' => __( 'Invoices', 'invoicing' ),
219
-			'items'    => __( 'Purchased Items', 'invoicing' ),
220
-		);
221
-
222
-		?>
205
+    }
206
+
207
+    /**
208
+     * Displays the left side.
209
+     *
210
+     */
211
+    public function display_left() {
212
+        $graphs = array(
213
+            'sales'    => __( 'Earnings', 'invoicing' ),
214
+            'refunds'  => __( 'Refunds', 'invoicing' ),
215
+            'tax'      => __( 'Taxes', 'invoicing' ),
216
+            'fees'     => __( 'Fees', 'invoicing' ),
217
+            'discount' => __( 'Discounts', 'invoicing' ),
218
+            'invoices' => __( 'Invoices', 'invoicing' ),
219
+            'items'    => __( 'Purchased Items', 'invoicing' ),
220
+        );
221
+
222
+        ?>
223 223
 
224 224
 			<?php foreach ( $graphs as $key => $graph ) : ?>
225 225
 				<div class="row mb-4">
@@ -238,35 +238,35 @@  discard block
 block discarded – undo
238 238
 
239 239
 		<?php
240 240
 
241
-	}
242
-
243
-	/**
244
-	 * Retrieves the download url.
245
-	 *
246
-	 */
247
-	public function get_download_url( $graph, $file_type ) {
248
-
249
-		return wp_nonce_url(
250
-			add_query_arg(
251
-				array(
252
-					'getpaid-admin-action' => 'download_graph',
253
-					'file_type'            => urlencode( $file_type ),
254
-					'graph'                => urlencode( $graph ),
255
-				)
256
-			),
257
-			'getpaid-nonce',
258
-			'getpaid-nonce'
259
-		);
241
+    }
242
+
243
+    /**
244
+     * Retrieves the download url.
245
+     *
246
+     */
247
+    public function get_download_url( $graph, $file_type ) {
248
+
249
+        return wp_nonce_url(
250
+            add_query_arg(
251
+                array(
252
+                    'getpaid-admin-action' => 'download_graph',
253
+                    'file_type'            => urlencode( $file_type ),
254
+                    'graph'                => urlencode( $graph ),
255
+                )
256
+            ),
257
+            'getpaid-nonce',
258
+            'getpaid-nonce'
259
+        );
260 260
 
261
-	}
261
+    }
262 262
 
263
-	/**
264
-	 * Displays the right side.
265
-	 *
266
-	 */
267
-	public function display_right() {
263
+    /**
264
+     * Displays the right side.
265
+     *
266
+     */
267
+    public function display_right() {
268 268
 
269
-		?>
269
+        ?>
270 270
 
271 271
 			<?php foreach ( $this->views as $key => $view ) : ?>
272 272
 				<div class="row mb-4">
@@ -295,10 +295,10 @@  discard block
 block discarded – undo
295 295
 							</div>
296 296
 							<div class="card-body">
297 297
 								<?php
298
-									$class = $view['class'];
299
-									$class = new $class();
300
-									$class->display_stats();
301
-								?>
298
+                                    $class = $view['class'];
299
+                                    $class = new $class();
300
+                                    $class->display_stats();
301
+                                ?>
302 302
 							</div>
303 303
 						</div>
304 304
 					</div>
@@ -307,67 +307,67 @@  discard block
 block discarded – undo
307 307
 
308 308
 		<?php
309 309
 
310
-	}
311
-
312
-	/**
313
-	 * Returns a list of report cards.
314
-	 *
315
-	 */
316
-	public function get_cards() {
317
-
318
-		$cards = array(
319
-			'total_sales' => array(
320
-				'description' => __( 'Gross sales in the period.', 'invoicing' ),
321
-				'label'       => __( 'Gross Revenue', 'invoicing' ),
322
-			),
323
-			'net_sales' => array(
324
-				'description' => __( 'Net sales in the period.', 'invoicing' ),
325
-				'label'       => __( 'Net Revenue', 'invoicing' ),
326
-			),
327
-			'average_sales' => array(
328
-				'description' => __( 'Average net daily/monthly sales.', 'invoicing' ),
329
-				'label'       => __( 'Avg. Net Sales', 'invoicing' ),
330
-			),
331
-			'average_total_sales' => array(
332
-				'description' => __( 'Average gross daily/monthly sales.', 'invoicing' ),
333
-				'label'       => __( 'Avg. Gross Sales', 'invoicing' ),
334
-			),
335
-			'total_invoices'  => array(
336
-				'description' => __( 'Number of paid invoices.', 'invoicing' ),
337
-				'label'       => __( 'Paid Invoices', 'invoicing' ),
338
-			),
339
-			'total_items' => array(
340
-				'description' => __( 'Number of items purchased.', 'invoicing' ),
341
-				'label'       => __( 'Purchased Items', 'invoicing' ),
342
-			),
343
-			'refunded_items' => array(
344
-				'description' => __( 'Number of items refunded.', 'invoicing' ),
345
-				'label'       => __( 'Refunded Items', 'invoicing' ),
346
-			),
347
-			'total_tax' => array(
348
-				'description' => __( 'Total charged for taxes.', 'invoicing' ),
349
-				'label'       => __( 'Tax', 'invoicing' ),
350
-			),
351
-			'total_refunded_tax' => array(
352
-				'description' => __( 'Total refunded for taxes.', 'invoicing' ),
353
-				'label'       => __( 'Refunded Tax', 'invoicing' ),
354
-			),
355
-			'total_fees' => array(
356
-				'description' => __( 'Total fees charged.', 'invoicing' ),
357
-				'label'       => __( 'Fees', 'invoicing' ),
358
-			),
359
-			'total_refunds' => array(
360
-				'description' => __( 'Total of refunded invoices.', 'invoicing' ),
361
-				'label'       => __( 'Refunded', 'invoicing' ),
362
-			),
363
-			'total_discount'  => array(
364
-				'description' => __( 'Total of discounts used.', 'invoicing' ),
365
-				'label'       => __( 'Discounted', 'invoicing' ),
366
-			),
367
-		);
368
-
369
-		return apply_filters( 'wpinv_report_cards', $cards );
370
-	}
310
+    }
311
+
312
+    /**
313
+     * Returns a list of report cards.
314
+     *
315
+     */
316
+    public function get_cards() {
317
+
318
+        $cards = array(
319
+            'total_sales' => array(
320
+                'description' => __( 'Gross sales in the period.', 'invoicing' ),
321
+                'label'       => __( 'Gross Revenue', 'invoicing' ),
322
+            ),
323
+            'net_sales' => array(
324
+                'description' => __( 'Net sales in the period.', 'invoicing' ),
325
+                'label'       => __( 'Net Revenue', 'invoicing' ),
326
+            ),
327
+            'average_sales' => array(
328
+                'description' => __( 'Average net daily/monthly sales.', 'invoicing' ),
329
+                'label'       => __( 'Avg. Net Sales', 'invoicing' ),
330
+            ),
331
+            'average_total_sales' => array(
332
+                'description' => __( 'Average gross daily/monthly sales.', 'invoicing' ),
333
+                'label'       => __( 'Avg. Gross Sales', 'invoicing' ),
334
+            ),
335
+            'total_invoices'  => array(
336
+                'description' => __( 'Number of paid invoices.', 'invoicing' ),
337
+                'label'       => __( 'Paid Invoices', 'invoicing' ),
338
+            ),
339
+            'total_items' => array(
340
+                'description' => __( 'Number of items purchased.', 'invoicing' ),
341
+                'label'       => __( 'Purchased Items', 'invoicing' ),
342
+            ),
343
+            'refunded_items' => array(
344
+                'description' => __( 'Number of items refunded.', 'invoicing' ),
345
+                'label'       => __( 'Refunded Items', 'invoicing' ),
346
+            ),
347
+            'total_tax' => array(
348
+                'description' => __( 'Total charged for taxes.', 'invoicing' ),
349
+                'label'       => __( 'Tax', 'invoicing' ),
350
+            ),
351
+            'total_refunded_tax' => array(
352
+                'description' => __( 'Total refunded for taxes.', 'invoicing' ),
353
+                'label'       => __( 'Refunded Tax', 'invoicing' ),
354
+            ),
355
+            'total_fees' => array(
356
+                'description' => __( 'Total fees charged.', 'invoicing' ),
357
+                'label'       => __( 'Fees', 'invoicing' ),
358
+            ),
359
+            'total_refunds' => array(
360
+                'description' => __( 'Total of refunded invoices.', 'invoicing' ),
361
+                'label'       => __( 'Refunded', 'invoicing' ),
362
+            ),
363
+            'total_discount'  => array(
364
+                'description' => __( 'Total of discounts used.', 'invoicing' ),
365
+                'label'       => __( 'Discounted', 'invoicing' ),
366
+            ),
367
+        );
368
+
369
+        return apply_filters( 'wpinv_report_cards', $cards );
370
+    }
371 371
 
372 372
 	
373 373
 
Please login to merge, or discard this patch.
Spacing   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 
8
-defined( 'ABSPATH' ) || exit;
8
+defined('ABSPATH') || exit;
9 9
 
10 10
 /**
11 11
  * GetPaid_Reports_Report Class.
@@ -23,26 +23,26 @@  discard block
 block discarded – undo
23 23
 	 */
24 24
 	public function __construct() {
25 25
 
26
-		$this->views        = array(
26
+		$this->views = array(
27 27
 
28 28
             'items'     => array(
29
-				'label' => __( 'Items', 'invoicing' ),
29
+				'label' => __('Items', 'invoicing'),
30 30
 				'class' => 'GetPaid_Reports_Report_Items',
31 31
 			),
32 32
 
33 33
 			'gateways'  => array(
34
-				'label' => __( 'Payment Methods', 'invoicing' ),
34
+				'label' => __('Payment Methods', 'invoicing'),
35 35
 				'class' => 'GetPaid_Reports_Report_Gateways',
36 36
 			),
37 37
 
38 38
 			'discounts'  => array(
39
-				'label' => __( 'Discount Codes', 'invoicing' ),
39
+				'label' => __('Discount Codes', 'invoicing'),
40 40
 				'class' => 'GetPaid_Reports_Report_Discounts',
41 41
 			),
42 42
 
43 43
         );
44 44
 
45
-		$this->views        = apply_filters( 'wpinv_report_views', $this->views );
45
+		$this->views = apply_filters('wpinv_report_views', $this->views);
46 46
 
47 47
 	}
48 48
 
@@ -53,8 +53,8 @@  discard block
 block discarded – undo
53 53
 	public function get_range() {
54 54
 		$valid_ranges = $this->get_periods();
55 55
 
56
-		if ( isset( $_GET['date_range'] ) && array_key_exists( $_GET['date_range'], $valid_ranges ) ) {
57
-			return sanitize_key( $_GET['date_range'] );
56
+		if (isset($_GET['date_range']) && array_key_exists($_GET['date_range'], $valid_ranges)) {
57
+			return sanitize_key($_GET['date_range']);
58 58
 		}
59 59
 
60 60
 		return '7_days';
@@ -68,22 +68,22 @@  discard block
 block discarded – undo
68 68
 	public function get_periods() {
69 69
 
70 70
 		$periods = array(
71
-			'today'        => __( 'Today', 'invoicing' ),
72
-			'yesterday'    => __( 'Yesterday', 'invoicing' ),
73
-			'week'         => __( 'This week', 'invoicing' ),
74
-			'last_week'    => __( 'Last week', 'invoicing' ),
75
-			'7_days'       => __( 'Last 7 days', 'invoicing' ),
76
-			'month'        => __( 'This month', 'invoicing' ),
77
-			'last_month'   => __( 'Last month', 'invoicing' ),
78
-			'30_days'      => __( 'Last 30 days', 'invoicing' ),
79
-			'quarter'      => __( 'This Quarter', 'invoicing' ),
80
-			'last_quarter' => __( 'Last Quarter', 'invoicing' ),
81
-			'year'         => __( 'This year', 'invoicing' ),
82
-			'last_year'    => __( 'Last Year', 'invoicing' ),
83
-			'custom'       => __( 'Custom Date Range', 'invoicing' ),
71
+			'today'        => __('Today', 'invoicing'),
72
+			'yesterday'    => __('Yesterday', 'invoicing'),
73
+			'week'         => __('This week', 'invoicing'),
74
+			'last_week'    => __('Last week', 'invoicing'),
75
+			'7_days'       => __('Last 7 days', 'invoicing'),
76
+			'month'        => __('This month', 'invoicing'),
77
+			'last_month'   => __('Last month', 'invoicing'),
78
+			'30_days'      => __('Last 30 days', 'invoicing'),
79
+			'quarter'      => __('This Quarter', 'invoicing'),
80
+			'last_quarter' => __('Last Quarter', 'invoicing'),
81
+			'year'         => __('This year', 'invoicing'),
82
+			'last_year'    => __('Last Year', 'invoicing'),
83
+			'custom'       => __('Custom Date Range', 'invoicing'),
84 84
 		);
85 85
 
86
-		return apply_filters( 'getpaid_earning_periods', $periods );
86
+		return apply_filters('getpaid_earning_periods', $periods);
87 87
 	}
88 88
 
89 89
 	/**
@@ -96,21 +96,21 @@  discard block
 block discarded – undo
96 96
 		?>
97 97
 
98 98
 			<form method="get" class="getpaid-filter-earnings float-right">
99
-				<?php getpaid_hidden_field( 'page', 'wpinv-reports' );  ?>
100
-				<?php getpaid_hidden_field( 'tab', 'reports' );  ?>
99
+				<?php getpaid_hidden_field('page', 'wpinv-reports'); ?>
100
+				<?php getpaid_hidden_field('tab', 'reports'); ?>
101 101
 				<select name='date_range'>
102
-					<?php foreach( $this->get_periods() as $key => $label ) :?>
103
-						<option value="<?php echo sanitize_key( $key ); ?>" <?php selected( $key, $range ); ?>><?php echo sanitize_text_field( $label ); ?></option>
104
-					<?php endforeach;?>
102
+					<?php foreach ($this->get_periods() as $key => $label) :?>
103
+						<option value="<?php echo sanitize_key($key); ?>" <?php selected($key, $range); ?>><?php echo sanitize_text_field($label); ?></option>
104
+					<?php endforeach; ?>
105 105
 				</select>
106 106
 				<span class="getpaid-date-range-picker <?php echo 'custom' == $range ? '' : 'd-none'; ?>">
107 107
 					<input type="text" name="from" class="getpaid-from align-middle" />
108
-						<?php _e( 'to', 'invoicing' ); ?>
108
+						<?php _e('to', 'invoicing'); ?>
109 109
 					<input type="text" name="to" class="getpaid-to align-middle" />
110 110
 				</span>
111 111
 				<button type="submit" class="button button-primary">
112 112
 					<i class="fa fa-chevron-right fa-lg"></i>
113
-					<span class="screen-reader-text"><?php _e( 'Next', 'invoicing' ); ?></span>
113
+					<span class="screen-reader-text"><?php _e('Next', 'invoicing'); ?></span>
114 114
 				</button>
115 115
 			</form>
116 116
 
@@ -159,17 +159,17 @@  discard block
 block discarded – undo
159 159
 
160 160
 				<div class="col-12 col-md-4">
161 161
 					<div class="row getpaid-report-cards">
162
-						<?php foreach( $this->get_cards() as $key => $card ) : ?>
162
+						<?php foreach ($this->get_cards() as $key => $card) : ?>
163 163
 							<div class="col-12 mb-4">
164 164
 
165
-								<!-- <?php echo sanitize_text_field(  $card['label']  ); ?> Card -->
166
-								<div class="card p-0 m-0 shadow-none <?php echo sanitize_html_class( $key ); ?>">
165
+								<!-- <?php echo sanitize_text_field($card['label']); ?> Card -->
166
+								<div class="card p-0 m-0 shadow-none <?php echo sanitize_html_class($key); ?>">
167 167
 
168 168
 									<div class="card-body">
169 169
 
170 170
 										<p class="getpaid-current text-uppercase small mb-2">
171
-											<strong><?php echo sanitize_text_field( $card['label']  ); ?></strong>
172
-											<span title="<?php echo esc_attr( $card['description'] ); ?>" class="wpi-help-tip dashicons dashicons-editor-help text-muted" style="margin-top: -2px;"></span>
171
+											<strong><?php echo sanitize_text_field($card['label']); ?></strong>
172
+											<span title="<?php echo esc_attr($card['description']); ?>" class="wpi-help-tip dashicons dashicons-editor-help text-muted" style="margin-top: -2px;"></span>
173 173
 										</p>
174 174
 										<h5 class="font-weight-bold mb-0">
175 175
 											<span class="getpaid-report-card-value">
@@ -180,7 +180,7 @@  discard block
 block discarded – undo
180 180
 
181 181
 										<hr>
182 182
 
183
-										<p class="getpaid-previous text-uppercase text-muted small mb-2"><strong><?php _e( 'Previous Period', 'invoicing' ); ?></strong></p>
183
+										<p class="getpaid-previous text-uppercase text-muted small mb-2"><strong><?php _e('Previous Period', 'invoicing'); ?></strong></p>
184 184
 										<h5 class="getpaid-report-card-previous-value font-weight-bold text-muted mb-0">
185 185
 											<span class="spinner is-active float-none"></span>
186 186
 										</h5>
@@ -188,7 +188,7 @@  discard block
 block discarded – undo
188 188
 									</div>
189 189
 
190 190
 								</div>
191
-								<!-- <?php echo sanitize_text_field( $card['label'] ); ?> Card -->
191
+								<!-- <?php echo sanitize_text_field($card['label']); ?> Card -->
192 192
 
193 193
 							</div>
194 194
 						<?php endforeach; ?>
@@ -210,26 +210,26 @@  discard block
 block discarded – undo
210 210
 	 */
211 211
 	public function display_left() {
212 212
 		$graphs = array(
213
-			'sales'    => __( 'Earnings', 'invoicing' ),
214
-			'refunds'  => __( 'Refunds', 'invoicing' ),
215
-			'tax'      => __( 'Taxes', 'invoicing' ),
216
-			'fees'     => __( 'Fees', 'invoicing' ),
217
-			'discount' => __( 'Discounts', 'invoicing' ),
218
-			'invoices' => __( 'Invoices', 'invoicing' ),
219
-			'items'    => __( 'Purchased Items', 'invoicing' ),
213
+			'sales'    => __('Earnings', 'invoicing'),
214
+			'refunds'  => __('Refunds', 'invoicing'),
215
+			'tax'      => __('Taxes', 'invoicing'),
216
+			'fees'     => __('Fees', 'invoicing'),
217
+			'discount' => __('Discounts', 'invoicing'),
218
+			'invoices' => __('Invoices', 'invoicing'),
219
+			'items'    => __('Purchased Items', 'invoicing'),
220 220
 		);
221 221
 
222 222
 		?>
223 223
 
224
-			<?php foreach ( $graphs as $key => $graph ) : ?>
224
+			<?php foreach ($graphs as $key => $graph) : ?>
225 225
 				<div class="row mb-4">
226 226
 					<div class="col-12">
227 227
 						<div class="card m-0 p-0" style="max-width:100%">
228 228
 							<div class="card-header">
229
-								<strong><?php echo wpinv_clean( $graph ); ?></strong>
229
+								<strong><?php echo wpinv_clean($graph); ?></strong>
230 230
 							</div>
231 231
 							<div class="card-body">
232
-								<canvas id="getpaid-chartjs-<?php echo sanitize_key( $key ); ?>"></canvas>
232
+								<canvas id="getpaid-chartjs-<?php echo sanitize_key($key); ?>"></canvas>
233 233
 							</div>
234 234
 						</div>
235 235
 					</div>
@@ -244,14 +244,14 @@  discard block
 block discarded – undo
244 244
 	 * Retrieves the download url.
245 245
 	 *
246 246
 	 */
247
-	public function get_download_url( $graph, $file_type ) {
247
+	public function get_download_url($graph, $file_type) {
248 248
 
249 249
 		return wp_nonce_url(
250 250
 			add_query_arg(
251 251
 				array(
252 252
 					'getpaid-admin-action' => 'download_graph',
253
-					'file_type'            => urlencode( $file_type ),
254
-					'graph'                => urlencode( $graph ),
253
+					'file_type'            => urlencode($file_type),
254
+					'graph'                => urlencode($graph),
255 255
 				)
256 256
 			),
257 257
 			'getpaid-nonce',
@@ -268,7 +268,7 @@  discard block
 block discarded – undo
268 268
 
269 269
 		?>
270 270
 
271
-			<?php foreach ( $this->views as $key => $view ) : ?>
271
+			<?php foreach ($this->views as $key => $view) : ?>
272 272
 				<div class="row mb-4">
273 273
 					<div class="col-12">
274 274
 						<div class="card m-0 p-0" style="max-width:100%">
@@ -278,17 +278,17 @@  discard block
 block discarded – undo
278 278
 										<strong><?php echo $view['label']; ?></strong>
279 279
 									</div>
280 280
 									<div class="col-3">
281
-										<a title="<?php esc_attr_e( 'Download JSON', 'invoicing' ); ?>" href="<?php echo esc_url( $this->get_download_url( $key, 'json' ) ); ?>">
281
+										<a title="<?php esc_attr_e('Download JSON', 'invoicing'); ?>" href="<?php echo esc_url($this->get_download_url($key, 'json')); ?>">
282 282
 											<i class="fa fa-download text-dark" style="font-size: 16px" aria-hidden="true"></i>
283
-											<span class="screen-reader-text"><?php _e( 'Download JSON', 'invoicing' ); ?></span>
283
+											<span class="screen-reader-text"><?php _e('Download JSON', 'invoicing'); ?></span>
284 284
 										</a>
285
-										<a title="<?php esc_attr_e( 'Download CSV', 'invoicing' ); ?>" href="<?php echo esc_url( $this->get_download_url( $key, 'csv' ) ); ?>">
285
+										<a title="<?php esc_attr_e('Download CSV', 'invoicing'); ?>" href="<?php echo esc_url($this->get_download_url($key, 'csv')); ?>">
286 286
 											<i class="fa fa-file-csv text-dark" style="font-size: 16px" aria-hidden="true"></i>
287
-											<span class="screen-reader-text"><?php _e( 'Download CSV', 'invoicing' ); ?></span>
287
+											<span class="screen-reader-text"><?php _e('Download CSV', 'invoicing'); ?></span>
288 288
 										</a>
289
-										<a title="<?php esc_attr_e( 'Download XML', 'invoicing' ); ?>" href="<?php echo esc_url( $this->get_download_url( $key, 'xml' ) ); ?>">
289
+										<a title="<?php esc_attr_e('Download XML', 'invoicing'); ?>" href="<?php echo esc_url($this->get_download_url($key, 'xml')); ?>">
290 290
 											<i class="fa fa-file-code text-dark" style="font-size: 16px" aria-hidden="true"></i>
291
-											<span class="screen-reader-text"><?php _e( 'Download XML', 'invoicing' ); ?></span>
291
+											<span class="screen-reader-text"><?php _e('Download XML', 'invoicing'); ?></span>
292 292
 										</a>
293 293
 									</div>
294 294
 								</div>
@@ -317,56 +317,56 @@  discard block
 block discarded – undo
317 317
 
318 318
 		$cards = array(
319 319
 			'total_sales' => array(
320
-				'description' => __( 'Gross sales in the period.', 'invoicing' ),
321
-				'label'       => __( 'Gross Revenue', 'invoicing' ),
320
+				'description' => __('Gross sales in the period.', 'invoicing'),
321
+				'label'       => __('Gross Revenue', 'invoicing'),
322 322
 			),
323 323
 			'net_sales' => array(
324
-				'description' => __( 'Net sales in the period.', 'invoicing' ),
325
-				'label'       => __( 'Net Revenue', 'invoicing' ),
324
+				'description' => __('Net sales in the period.', 'invoicing'),
325
+				'label'       => __('Net Revenue', 'invoicing'),
326 326
 			),
327 327
 			'average_sales' => array(
328
-				'description' => __( 'Average net daily/monthly sales.', 'invoicing' ),
329
-				'label'       => __( 'Avg. Net Sales', 'invoicing' ),
328
+				'description' => __('Average net daily/monthly sales.', 'invoicing'),
329
+				'label'       => __('Avg. Net Sales', 'invoicing'),
330 330
 			),
331 331
 			'average_total_sales' => array(
332
-				'description' => __( 'Average gross daily/monthly sales.', 'invoicing' ),
333
-				'label'       => __( 'Avg. Gross Sales', 'invoicing' ),
332
+				'description' => __('Average gross daily/monthly sales.', 'invoicing'),
333
+				'label'       => __('Avg. Gross Sales', 'invoicing'),
334 334
 			),
335 335
 			'total_invoices'  => array(
336
-				'description' => __( 'Number of paid invoices.', 'invoicing' ),
337
-				'label'       => __( 'Paid Invoices', 'invoicing' ),
336
+				'description' => __('Number of paid invoices.', 'invoicing'),
337
+				'label'       => __('Paid Invoices', 'invoicing'),
338 338
 			),
339 339
 			'total_items' => array(
340
-				'description' => __( 'Number of items purchased.', 'invoicing' ),
341
-				'label'       => __( 'Purchased Items', 'invoicing' ),
340
+				'description' => __('Number of items purchased.', 'invoicing'),
341
+				'label'       => __('Purchased Items', 'invoicing'),
342 342
 			),
343 343
 			'refunded_items' => array(
344
-				'description' => __( 'Number of items refunded.', 'invoicing' ),
345
-				'label'       => __( 'Refunded Items', 'invoicing' ),
344
+				'description' => __('Number of items refunded.', 'invoicing'),
345
+				'label'       => __('Refunded Items', 'invoicing'),
346 346
 			),
347 347
 			'total_tax' => array(
348
-				'description' => __( 'Total charged for taxes.', 'invoicing' ),
349
-				'label'       => __( 'Tax', 'invoicing' ),
348
+				'description' => __('Total charged for taxes.', 'invoicing'),
349
+				'label'       => __('Tax', 'invoicing'),
350 350
 			),
351 351
 			'total_refunded_tax' => array(
352
-				'description' => __( 'Total refunded for taxes.', 'invoicing' ),
353
-				'label'       => __( 'Refunded Tax', 'invoicing' ),
352
+				'description' => __('Total refunded for taxes.', 'invoicing'),
353
+				'label'       => __('Refunded Tax', 'invoicing'),
354 354
 			),
355 355
 			'total_fees' => array(
356
-				'description' => __( 'Total fees charged.', 'invoicing' ),
357
-				'label'       => __( 'Fees', 'invoicing' ),
356
+				'description' => __('Total fees charged.', 'invoicing'),
357
+				'label'       => __('Fees', 'invoicing'),
358 358
 			),
359 359
 			'total_refunds' => array(
360
-				'description' => __( 'Total of refunded invoices.', 'invoicing' ),
361
-				'label'       => __( 'Refunded', 'invoicing' ),
360
+				'description' => __('Total of refunded invoices.', 'invoicing'),
361
+				'label'       => __('Refunded', 'invoicing'),
362 362
 			),
363 363
 			'total_discount'  => array(
364
-				'description' => __( 'Total of discounts used.', 'invoicing' ),
365
-				'label'       => __( 'Discounted', 'invoicing' ),
364
+				'description' => __('Total of discounts used.', 'invoicing'),
365
+				'label'       => __('Discounted', 'invoicing'),
366 366
 			),
367 367
 		);
368 368
 
369
-		return apply_filters( 'wpinv_report_cards', $cards );
369
+		return apply_filters('wpinv_report_cards', $cards);
370 370
 	}
371 371
 
372 372
 	
Please login to merge, or discard this patch.