Passed
Push — master ( e41a84...13b1e4 )
by Brian
16:00 queued 11:28
created
includes/class-wpinv-subscriptions.php 1 patch
Spacing   +101 added lines, -101 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 
7
-defined( 'ABSPATH' ) || exit;
7
+defined('ABSPATH') || exit;
8 8
 /**
9 9
  * Main Subscriptions class.
10 10
  *
@@ -14,31 +14,31 @@  discard block
 block discarded – undo
14 14
     /**
15 15
 	 * Class constructor.
16 16
 	 */
17
-    public function __construct(){
17
+    public function __construct() {
18 18
 
19 19
         // Fire gateway specific hooks when a subscription changes.
20
-        add_action( 'getpaid_subscription_status_changed', array( $this, 'process_subscription_status_change' ), 10, 3 );
20
+        add_action('getpaid_subscription_status_changed', array($this, 'process_subscription_status_change'), 10, 3);
21 21
 
22 22
         // De-activate a subscription whenever the invoice changes payment statuses.
23
-        add_action( 'getpaid_invoice_status_wpi-refunded', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 );
24
-        add_action( 'getpaid_invoice_status_wpi-failed', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 );
25
-        add_action( 'getpaid_invoice_status_wpi-cancelled', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 );
26
-        add_action( 'getpaid_invoice_status_wpi-pending', array( $this, 'maybe_deactivate_invoice_subscription' ), 20 );
23
+        add_action('getpaid_invoice_status_wpi-refunded', array($this, 'maybe_deactivate_invoice_subscription'), 20);
24
+        add_action('getpaid_invoice_status_wpi-failed', array($this, 'maybe_deactivate_invoice_subscription'), 20);
25
+        add_action('getpaid_invoice_status_wpi-cancelled', array($this, 'maybe_deactivate_invoice_subscription'), 20);
26
+        add_action('getpaid_invoice_status_wpi-pending', array($this, 'maybe_deactivate_invoice_subscription'), 20);
27 27
 
28 28
         // Handles subscription cancelations.
29
-        add_action( 'getpaid_authenticated_action_subscription_cancel', array( $this, 'user_cancel_single_subscription' ) );
29
+        add_action('getpaid_authenticated_action_subscription_cancel', array($this, 'user_cancel_single_subscription'));
30 30
 
31 31
         // Create a subscription whenever an invoice is created, (and update it when it is updated).
32
-        add_action( 'getpaid_new_invoice', array( $this, 'maybe_create_invoice_subscription' ) );
33
-        add_action( 'getpaid_update_invoice', array( $this, 'maybe_update_invoice_subscription' ) );
32
+        add_action('getpaid_new_invoice', array($this, 'maybe_create_invoice_subscription'));
33
+        add_action('getpaid_update_invoice', array($this, 'maybe_update_invoice_subscription'));
34 34
 
35 35
         // Handles admin subscription update actions.
36
-        add_action( 'getpaid_authenticated_admin_action_update_single_subscription', array( $this, 'admin_update_single_subscription' ) );
37
-        add_action( 'getpaid_authenticated_admin_action_subscription_manual_renew', array( $this, 'admin_renew_single_subscription' ) );
38
-        add_action( 'getpaid_authenticated_admin_action_subscription_manual_delete', array( $this, 'admin_delete_single_subscription' ) );
36
+        add_action('getpaid_authenticated_admin_action_update_single_subscription', array($this, 'admin_update_single_subscription'));
37
+        add_action('getpaid_authenticated_admin_action_subscription_manual_renew', array($this, 'admin_renew_single_subscription'));
38
+        add_action('getpaid_authenticated_admin_action_subscription_manual_delete', array($this, 'admin_delete_single_subscription'));
39 39
 
40 40
         // Filter invoice item row actions.
41
-        add_action( 'getpaid-invoice-page-line-item-actions', array( $this, 'filter_invoice_line_item_actions' ), 10, 3 );
41
+        add_action('getpaid-invoice-page-line-item-actions', array($this, 'filter_invoice_line_item_actions'), 10, 3);
42 42
     }
43 43
 
44 44
     /**
@@ -47,19 +47,19 @@  discard block
 block discarded – undo
47 47
      * @param WPInv_Invoice $invoice
48 48
      * @return WPInv_Subscription|bool
49 49
      */
50
-    public function get_invoice_subscription( $invoice ) {
50
+    public function get_invoice_subscription($invoice) {
51 51
         $subscription_id = $invoice->get_subscription_id();
52 52
 
53 53
         // Fallback to the parent invoice if the child invoice has no subscription id.
54
-        if ( empty( $subscription_id && $invoice->is_renewal() ) ) {
54
+        if (empty($subscription_id && $invoice->is_renewal())) {
55 55
             $subscription_id = $invoice->get_parent_payment()->get_subscription_id();
56 56
         }
57 57
 
58 58
         // Fetch the subscription.
59
-        $subscription = new WPInv_Subscription( $subscription_id );
59
+        $subscription = new WPInv_Subscription($subscription_id);
60 60
 
61 61
         // Return subscription or use a fallback for backwards compatibility.
62
-        return $subscription->get_id() ? $subscription : wpinv_get_subscription( $invoice );
62
+        return $subscription->get_id() ? $subscription : wpinv_get_subscription($invoice);
63 63
     }
64 64
 
65 65
     /**
@@ -67,16 +67,16 @@  discard block
 block discarded – undo
67 67
      * 
68 68
      * @param WPInv_Invoice $invoice
69 69
      */
70
-    public function maybe_deactivate_invoice_subscription( $invoice ) {
70
+    public function maybe_deactivate_invoice_subscription($invoice) {
71 71
 
72
-        $subscription = $this->get_invoice_subscription( $invoice );
72
+        $subscription = $this->get_invoice_subscription($invoice);
73 73
 
74 74
         // Abort if the subscription is missing or not active.
75
-        if ( empty( $subscription ) || ! $subscription->is_active() ) {
75
+        if (empty($subscription) || !$subscription->is_active()) {
76 76
             return;
77 77
         }
78 78
 
79
-        $subscription->set_status( 'pending' );
79
+        $subscription->set_status('pending');
80 80
         $subscription->save();
81 81
 
82 82
     }
@@ -88,15 +88,15 @@  discard block
 block discarded – undo
88 88
      * @param string $from
89 89
      * @param string $to
90 90
 	 */
91
-    public function process_subscription_status_change( $subscription, $from, $to ) {
91
+    public function process_subscription_status_change($subscription, $from, $to) {
92 92
 
93 93
         $gateway = $subscription->get_gateway();
94 94
 
95
-        if ( ! empty( $gateway ) ) {
96
-            $gateway = sanitize_key( $gateway );
97
-            $from    = sanitize_key( $from );
98
-            $to      = sanitize_key( $to );
99
-            do_action( "getpaid_{$gateway}_subscription_$to", $subscription, $from );
95
+        if (!empty($gateway)) {
96
+            $gateway = sanitize_key($gateway);
97
+            $from    = sanitize_key($from);
98
+            $to      = sanitize_key($to);
99
+            do_action("getpaid_{$gateway}_subscription_$to", $subscription, $from);
100 100
         }
101 101
 
102 102
     }
@@ -109,8 +109,8 @@  discard block
 block discarded – undo
109 109
      * @deprecated
110 110
      * @return mixed|string|void
111 111
      */
112
-    public static function wpinv_get_pretty_subscription_frequency( $period, $frequency_count = 1 ) {
113
-        return getpaid_get_subscription_period_label( $period, $frequency_count );
112
+    public static function wpinv_get_pretty_subscription_frequency($period, $frequency_count = 1) {
113
+        return getpaid_get_subscription_period_label($period, $frequency_count);
114 114
     }
115 115
 
116 116
     /**
@@ -120,29 +120,29 @@  discard block
 block discarded – undo
120 120
      * @since       1.0.0
121 121
      * @return      void
122 122
      */
123
-    public function user_cancel_single_subscription( $data ) {
123
+    public function user_cancel_single_subscription($data) {
124 124
 
125 125
         // Ensure there is a subscription to cancel.
126
-        if ( empty( $data['subscription'] ) ) {
126
+        if (empty($data['subscription'])) {
127 127
             return;
128 128
         }
129 129
 
130
-        $subscription = new WPInv_Subscription( (int) $data['subscription'] );
130
+        $subscription = new WPInv_Subscription((int) $data['subscription']);
131 131
 
132 132
         // Ensure that it exists and that it belongs to the current user.
133
-        if ( ! $subscription->get_id() || $subscription->get_customer_id() != get_current_user_id() ) {
134
-            wpinv_set_error( 'invalid_subscription', __( 'You do not have permission to cancel this subscription', 'invoicing' ) );
133
+        if (!$subscription->get_id() || $subscription->get_customer_id() != get_current_user_id()) {
134
+            wpinv_set_error('invalid_subscription', __('You do not have permission to cancel this subscription', 'invoicing'));
135 135
 
136 136
         // Can it be cancelled.
137
-        } else if ( ! $subscription->can_cancel() ) {
138
-            wpinv_set_error( 'cannot_cancel', __( 'This subscription cannot be cancelled as it is not active.', 'invoicing' ) );
137
+        } else if (!$subscription->can_cancel()) {
138
+            wpinv_set_error('cannot_cancel', __('This subscription cannot be cancelled as it is not active.', 'invoicing'));
139 139
             
140 140
 
141 141
         // Cancel it.
142 142
         } else {
143 143
 
144 144
             $subscription->cancel();
145
-            wpinv_set_error( 'cancelled', __( 'This subscription has been cancelled.', 'invoicing' ), 'info' );
145
+            wpinv_set_error('cancelled', __('This subscription has been cancelled.', 'invoicing'), 'info');
146 146
         }
147 147
 
148 148
         $redirect = add_query_arg(
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
             )
153 153
         );
154 154
 
155
-        wp_safe_redirect( esc_url( $redirect ) );
155
+        wp_safe_redirect(esc_url($redirect));
156 156
         exit;
157 157
 
158 158
     }
@@ -164,15 +164,15 @@  discard block
 block discarded – undo
164 164
      * @param       WPInv_Invoice $invoice
165 165
      * @since       1.0.0
166 166
      */
167
-    public function maybe_create_invoice_subscription( $invoice ) {
167
+    public function maybe_create_invoice_subscription($invoice) {
168 168
 
169 169
         // Abort if it is not recurring.
170
-        if ( $invoice->is_free() || ! $invoice->is_recurring() || $invoice->is_renewal() ) {
170
+        if ($invoice->is_free() || !$invoice->is_recurring() || $invoice->is_renewal()) {
171 171
             return;
172 172
         }
173 173
 
174 174
         $subscription = new WPInv_Subscription();
175
-        return $this->update_invoice_subscription( $subscription, $invoice );
175
+        return $this->update_invoice_subscription($subscription, $invoice);
176 176
 
177 177
     }
178 178
 
@@ -183,25 +183,25 @@  discard block
 block discarded – undo
183 183
      * @param       WPInv_Invoice $invoice
184 184
      * @since       1.0.19
185 185
      */
186
-    public function maybe_update_invoice_subscription( $invoice ) {
186
+    public function maybe_update_invoice_subscription($invoice) {
187 187
 
188 188
         // Do not process renewals.
189
-        if ( $invoice->is_renewal() ) {
189
+        if ($invoice->is_renewal()) {
190 190
             return;
191 191
         }
192 192
 
193 193
         // (Maybe) create a new subscription.
194
-        $subscription = $this->get_invoice_subscription( $invoice );
195
-        if ( empty( $subscription ) ) {
196
-            return $this->maybe_create_invoice_subscription( $invoice );
194
+        $subscription = $this->get_invoice_subscription($invoice);
195
+        if (empty($subscription)) {
196
+            return $this->maybe_create_invoice_subscription($invoice);
197 197
         }
198 198
 
199 199
         // Abort if an invoice is paid and already has a subscription.
200
-        if ( $invoice->is_paid() || $invoice->is_refunded() ) {
200
+        if ($invoice->is_paid() || $invoice->is_refunded()) {
201 201
             return;
202 202
         }
203 203
 
204
-        return $this->update_invoice_subscription( $subscription, $invoice );
204
+        return $this->update_invoice_subscription($subscription, $invoice);
205 205
 
206 206
     }
207 207
 
@@ -213,55 +213,55 @@  discard block
 block discarded – undo
213 213
      * @param       WPInv_Invoice $invoice
214 214
      * @since       1.0.19
215 215
      */
216
-    public function update_invoice_subscription( $subscription, $invoice ) {
216
+    public function update_invoice_subscription($subscription, $invoice) {
217 217
 
218 218
         // Delete the subscription if an invoice is free or nolonger recurring.
219
-        if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_free() || ! $invoice->is_recurring() ) {
219
+        if (!$invoice->is_type('invoice') || $invoice->is_free() || !$invoice->is_recurring()) {
220 220
             return $subscription->delete();
221 221
         }
222 222
 
223
-        $subscription->set_customer_id( $invoice->get_customer_id() );
224
-        $subscription->set_parent_invoice_id( $invoice->get_id() );
225
-        $subscription->set_initial_amount( $invoice->get_initial_total() );
226
-        $subscription->set_recurring_amount( $invoice->get_recurring_total() );
227
-        $subscription->set_date_created( current_time( 'mysql' ) );
228
-        $subscription->set_status( $invoice->is_paid() ? 'active' : 'pending' );
223
+        $subscription->set_customer_id($invoice->get_customer_id());
224
+        $subscription->set_parent_invoice_id($invoice->get_id());
225
+        $subscription->set_initial_amount($invoice->get_initial_total());
226
+        $subscription->set_recurring_amount($invoice->get_recurring_total());
227
+        $subscription->set_date_created(current_time('mysql'));
228
+        $subscription->set_status($invoice->is_paid() ? 'active' : 'pending');
229 229
 
230 230
         // Get the recurring item and abort if it does not exist.
231
-        $subscription_item = $invoice->get_recurring( true );
232
-        if ( ! $subscription_item->get_id() ) {
231
+        $subscription_item = $invoice->get_recurring(true);
232
+        if (!$subscription_item->get_id()) {
233 233
             $invoice->set_subscription_id(0);
234 234
             $invoice->save();
235 235
             return $subscription->delete();
236 236
         }
237 237
 
238
-        $subscription->set_product_id( $subscription_item->get_id() );
239
-        $subscription->set_period( $subscription_item->get_recurring_period( true ) );
240
-        $subscription->set_frequency( $subscription_item->get_recurring_interval() );
241
-        $subscription->set_bill_times( $subscription_item->get_recurring_limit() );
238
+        $subscription->set_product_id($subscription_item->get_id());
239
+        $subscription->set_period($subscription_item->get_recurring_period(true));
240
+        $subscription->set_frequency($subscription_item->get_recurring_interval());
241
+        $subscription->set_bill_times($subscription_item->get_recurring_limit());
242 242
 
243 243
         // Calculate the next renewal date.
244
-        $period       = $subscription_item->get_recurring_period( true );
244
+        $period       = $subscription_item->get_recurring_period(true);
245 245
         $interval     = $subscription_item->get_recurring_interval();
246 246
 
247 247
         // If the subscription item has a trial period...
248
-        if ( $subscription_item->has_free_trial() ) {
249
-            $period   = $subscription_item->get_trial_period( true );
248
+        if ($subscription_item->has_free_trial()) {
249
+            $period   = $subscription_item->get_trial_period(true);
250 250
             $interval = $subscription_item->get_trial_interval();
251
-            $subscription->set_trial_period( $interval . ' ' . $period );
252
-            $subscription->set_status( 'trialling' );
251
+            $subscription->set_trial_period($interval . ' ' . $period);
252
+            $subscription->set_status('trialling');
253 253
         }
254 254
 
255 255
         // If initial amount is free, treat it as a free trial even if the subscription item does not have a free trial.
256
-        if ( $invoice->has_free_trial() ) {
257
-            $subscription->set_trial_period( $interval . ' ' . $period );
258
-            $subscription->set_status( 'trialling' );
256
+        if ($invoice->has_free_trial()) {
257
+            $subscription->set_trial_period($interval . ' ' . $period);
258
+            $subscription->set_status('trialling');
259 259
         }
260 260
 
261 261
         // Calculate the next renewal date.
262
-        $expiration = date( 'Y-m-d H:i:s', strtotime( "+$interval $period", strtotime( $subscription->get_date_created() ) ) );
262
+        $expiration = date('Y-m-d H:i:s', strtotime("+$interval $period", strtotime($subscription->get_date_created())));
263 263
 
264
-        $subscription->set_next_renewal_date( $expiration );
264
+        $subscription->set_next_renewal_date($expiration);
265 265
         return $subscription->save();
266 266
 
267 267
     }
@@ -272,21 +272,21 @@  discard block
 block discarded – undo
272 272
      * @param       array $data
273 273
      * @since       1.0.19
274 274
      */
275
-    public function admin_update_single_subscription( $args ) {
275
+    public function admin_update_single_subscription($args) {
276 276
 
277 277
         // Ensure the subscription exists and that a status has been given.
278
-        if ( empty( $args['subscription_id'] ) || empty( $args['subscription_status'] ) ) {
278
+        if (empty($args['subscription_id']) || empty($args['subscription_status'])) {
279 279
             return;
280 280
         }
281 281
 
282 282
         // Retrieve the subscriptions.
283
-        $subscription = new WPInv_Subscription( $args['subscription_id'] );
283
+        $subscription = new WPInv_Subscription($args['subscription_id']);
284 284
 
285
-        if ( $subscription->get_id() ) {
285
+        if ($subscription->get_id()) {
286 286
 
287
-            $subscription->set_status( $args['subscription_status'] );
287
+            $subscription->set_status($args['subscription_status']);
288 288
             $subscription->save();
289
-            getpaid_admin()->show_info( __( 'Your changes have been saved', 'invoicing' ) );
289
+            getpaid_admin()->show_info(__('Your changes have been saved', 'invoicing'));
290 290
 
291 291
         }
292 292
 
@@ -298,27 +298,27 @@  discard block
 block discarded – undo
298 298
      * @param       array $data
299 299
      * @since       1.0.19
300 300
      */
301
-    public function admin_renew_single_subscription( $args ) {
301
+    public function admin_renew_single_subscription($args) {
302 302
 
303 303
         // Ensure the subscription exists and that a status has been given.
304
-        if ( empty( $args['id'] ) ) {
304
+        if (empty($args['id'])) {
305 305
             return;
306 306
         }
307 307
 
308 308
         // Retrieve the subscriptions.
309
-        $subscription = new WPInv_Subscription( $args['id'] );
309
+        $subscription = new WPInv_Subscription($args['id']);
310 310
 
311
-        if ( $subscription->get_id() ) {
311
+        if ($subscription->get_id()) {
312 312
 
313
-            do_action( 'getpaid_admin_renew_subscription', $subscription );
313
+            do_action('getpaid_admin_renew_subscription', $subscription);
314 314
 
315
-            $args = array( 'transaction_id', $subscription->get_parent_invoice()->generate_key( 'renewal_' ) );
315
+            $args = array('transaction_id', $subscription->get_parent_invoice()->generate_key('renewal_'));
316 316
 
317
-            if ( ! $subscription->add_payment( $args ) ) {
318
-                getpaid_admin()->show_error( __( 'We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing' ) );
317
+            if (!$subscription->add_payment($args)) {
318
+                getpaid_admin()->show_error(__('We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing'));
319 319
             } else {
320 320
                 $subscription->renew();
321
-                getpaid_admin()->show_info( __( 'This subscription has been renewed and extended.', 'invoicing' ) );
321
+                getpaid_admin()->show_info(__('This subscription has been renewed and extended.', 'invoicing'));
322 322
             } 
323 323
 
324 324
             wp_safe_redirect(
@@ -341,20 +341,20 @@  discard block
 block discarded – undo
341 341
      * @param       array $data
342 342
      * @since       1.0.19
343 343
      */
344
-    public function admin_delete_single_subscription( $args ) {
344
+    public function admin_delete_single_subscription($args) {
345 345
 
346 346
         // Ensure the subscription exists and that a status has been given.
347
-        if ( empty( $args['id'] ) ) {
347
+        if (empty($args['id'])) {
348 348
             return;
349 349
         }
350 350
 
351 351
         // Retrieve the subscriptions.
352
-        $subscription = new WPInv_Subscription( $args['id'] );
352
+        $subscription = new WPInv_Subscription($args['id']);
353 353
 
354
-        if ( $subscription->delete() ) {
355
-            getpaid_admin()->show_info( __( 'This subscription has been deleted.', 'invoicing' ) );
354
+        if ($subscription->delete()) {
355
+            getpaid_admin()->show_info(__('This subscription has been deleted.', 'invoicing'));
356 356
         } else {
357
-            getpaid_admin()->show_error( __( 'We are unable to delete this subscription. Please try again.', 'invoicing' ) );
357
+            getpaid_admin()->show_error(__('We are unable to delete this subscription. Please try again.', 'invoicing'));
358 358
         }
359 359
     
360 360
         $redirected = wp_safe_redirect(
@@ -367,7 +367,7 @@  discard block
 block discarded – undo
367 367
             )
368 368
         );
369 369
 
370
-        if ( $redirected ) {
370
+        if ($redirected) {
371 371
             exit;
372 372
         }
373 373
 
@@ -380,10 +380,10 @@  discard block
 block discarded – undo
380 380
      * @param WPInv_Item $item
381 381
      * @param WPInv_Invoice $invoice
382 382
      */
383
-    public function filter_invoice_line_item_actions( $actions, $item, $invoice ) {
383
+    public function filter_invoice_line_item_actions($actions, $item, $invoice) {
384 384
 
385 385
         // Fetch item subscription.
386
-        $args  = array(
386
+        $args = array(
387 387
             'invoice_in'  => $invoice->is_parent() ? $invoice->get_id() : $invoice->get_parent_id(),
388 388
             'product_in'  => $item->get_id(),
389 389
             'number'      => 1,
@@ -391,13 +391,13 @@  discard block
 block discarded – undo
391 391
             'fields'      => 'id',
392 392
         );
393 393
 
394
-        $subscription = new GetPaid_Subscriptions_Query( $args );
394
+        $subscription = new GetPaid_Subscriptions_Query($args);
395 395
         $subscription = $subscription->get_results();
396 396
 
397 397
         // In case we found a match...
398
-        if ( ! empty( $subscription ) ) {
399
-            $url                     = esc_url( add_query_arg( 'subscription', (int) $subscription[0], get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ) );
400
-            $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>';
398
+        if (!empty($subscription)) {
399
+            $url                     = esc_url(add_query_arg('subscription', (int) $subscription[0], get_permalink((int) wpinv_get_option('invoice_subscription_page'))));
400
+            $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __('Manage Subscription', 'invoicing') . '</a>';
401 401
         }
402 402
 
403 403
         return $actions;
Please login to merge, or discard this patch.