Passed
Push — master ( 763170...0f9edb )
by Kiran
07:19 queued 16s
created
templates/emails/wpinv-email-billing-details.php 2 patches
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@
 block discarded – undo
20 20
 <a href="<?php echo esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), self_admin_url( 'user-edit.php' ) ) ); ?>"><?php echo esc_html( $invoice->get_user_full_name() ); ?></a>
21 21
                     <?php
22 22
 } else {
23
-					echo esc_html( $invoice->get_user_full_name() ); }
23
+                    echo esc_html( $invoice->get_user_full_name() ); }
24 24
 ?>
25 25
 </td>
26 26
             </tr>
Please login to merge, or discard this patch.
Spacing   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -1,51 +1,51 @@
 block discarded – undo
1 1
 <?php
2 2
 // don't load directly
3
-if ( ! defined( 'ABSPATH' ) ) {
4
-    die( '-1' );
3
+if (!defined('ABSPATH')) {
4
+    die('-1');
5 5
 }
6 6
 
7
-do_action( 'wpinv_email_before_billing_details', $invoice ); ?>
7
+do_action('wpinv_email_before_billing_details', $invoice); ?>
8 8
 <div id="wpinv-email-billing">
9
-    <h3 class="wpinv-address-t"><?php echo esc_html( apply_filters( 'wpinv_email_billing_title', __( 'Billing Details', 'invoicing' ) ) ); ?></h3>
9
+    <h3 class="wpinv-address-t"><?php echo esc_html(apply_filters('wpinv_email_billing_title', __('Billing Details', 'invoicing'))); ?></h3>
10 10
 
11 11
     <table class="table table-bordered table-sm wpi-billing-details">
12 12
         <tbody>
13
-            <?php do_action( 'wpinv_email_billing_fields_first', $invoice ); ?>
13
+            <?php do_action('wpinv_email_billing_fields_first', $invoice); ?>
14 14
             <tr class="wpi-receipt-name">
15
-                <th class="text-left"><?php esc_html_e( 'Name', 'invoicing' ); ?></th>
15
+                <th class="text-left"><?php esc_html_e('Name', 'invoicing'); ?></th>
16 16
                 <td>
17 17
                 <?php
18
-                if ( $sent_to_admin && $invoice->get_user_id() ) {
18
+                if ($sent_to_admin && $invoice->get_user_id()) {
19 19
 ?>
20
-<a href="<?php echo esc_url( add_query_arg( 'user_id', $invoice->get_user_id(), self_admin_url( 'user-edit.php' ) ) ); ?>"><?php echo esc_html( $invoice->get_user_full_name() ); ?></a>
20
+<a href="<?php echo esc_url(add_query_arg('user_id', $invoice->get_user_id(), self_admin_url('user-edit.php'))); ?>"><?php echo esc_html($invoice->get_user_full_name()); ?></a>
21 21
                     <?php
22 22
 } else {
23
-					echo esc_html( $invoice->get_user_full_name() ); }
23
+					echo esc_html($invoice->get_user_full_name()); }
24 24
 ?>
25 25
 </td>
26 26
             </tr>
27 27
             <tr class="wpi-receipt-email">
28
-                <th class="text-left"><?php esc_html_e( 'Email', 'invoicing' ); ?></th>
29
-                <td><?php echo esc_html( sanitize_email( $invoice->get_email() ) ); ?></td>
28
+                <th class="text-left"><?php esc_html_e('Email', 'invoicing'); ?></th>
29
+                <td><?php echo esc_html(sanitize_email($invoice->get_email())); ?></td>
30 30
             </tr>
31
-            <?php if ( $invoice->get_company() ) { ?>
31
+            <?php if ($invoice->get_company()) { ?>
32 32
             <tr class="wpi-receipt-company">
33
-                <th class="text-left"><?php esc_html_e( 'Company', 'invoicing' ); ?></th>
34
-                <td><?php echo esc_html( $invoice->get_company() ); ?></td>
33
+                <th class="text-left"><?php esc_html_e('Company', 'invoicing'); ?></th>
34
+                <td><?php echo esc_html($invoice->get_company()); ?></td>
35 35
             </tr>
36 36
             <?php } ?>
37 37
             <tr class="wpi-receipt-address">
38
-                <th class="text-left"><?php esc_html_e( 'Address', 'invoicing' ); ?></th>
39
-                <td><?php echo wp_kses_post( wpinv_get_invoice_address_markup( $invoice->get_user_info() ) ); ?></td>
38
+                <th class="text-left"><?php esc_html_e('Address', 'invoicing'); ?></th>
39
+                <td><?php echo wp_kses_post(wpinv_get_invoice_address_markup($invoice->get_user_info())); ?></td>
40 40
             </tr>
41
-            <?php if ( $invoice->get_phone() ) { ?>
41
+            <?php if ($invoice->get_phone()) { ?>
42 42
             <tr class="wpi-receipt-phone">
43
-                <th class="text-left"><?php esc_html_e( 'Phone', 'invoicing' ); ?></th>
44
-                <td><?php echo esc_html( $invoice->get_phone() ); ?></td>
43
+                <th class="text-left"><?php esc_html_e('Phone', 'invoicing'); ?></th>
44
+                <td><?php echo esc_html($invoice->get_phone()); ?></td>
45 45
             </tr>
46 46
             <?php } ?>
47
-            <?php do_action( 'wpinv_email_billing_fields_last', $invoice ); ?>
47
+            <?php do_action('wpinv_email_billing_fields_last', $invoice); ?>
48 48
         </tbody>
49 49
     </table>
50 50
 </div>
51
-<?php do_action( 'wpinv_email_after_billing_details', $invoice ); ?>
51
+<?php do_action('wpinv_email_after_billing_details', $invoice); ?>
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-payment-form-data-store.php 2 patches
Indentation   +169 added lines, -169 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  *
5 5
  */
6 6
 if ( ! defined( 'ABSPATH' ) ) {
7
-	exit;
7
+    exit;
8 8
 }
9 9
 
10 10
 /**
@@ -14,179 +14,179 @@  discard block
 block discarded – undo
14 14
  */
15 15
 class GetPaid_Payment_Form_Data_Store extends GetPaid_Data_Store_WP {
16 16
 
17
-	/**
18
-	 * Data stored in meta keys, but not considered "meta" for a form.
19
-	 *
20
-	 * @since 1.0.19
21
-	 * @var array
22
-	 */
23
-	protected $internal_meta_keys = array(
24
-		'wpinv_form_elements',
25
-		'wpinv_form_items',
26
-		'wpinv_form_earned',
27
-		'wpinv_form_refunded',
28
-		'wpinv_form_cancelled',
29
-		'wpinv_form_failed',
30
-	);
31
-
32
-	/**
33
-	 * A map of meta keys to data props.
34
-	 *
35
-	 * @since 1.0.19
36
-	 *
37
-	 * @var array
38
-	 */
39
-	protected $meta_key_to_props = array(
40
-		'wpinv_form_elements'  => 'elements',
41
-		'wpinv_form_items'     => 'items',
42
-		'wpinv_form_earned'    => 'earned',
43
-		'wpinv_form_refunded'  => 'refunded',
44
-		'wpinv_form_cancelled' => 'cancelled',
45
-		'wpinv_form_failed'    => 'failed',
46
-	);
47
-
48
-	/*
17
+    /**
18
+     * Data stored in meta keys, but not considered "meta" for a form.
19
+     *
20
+     * @since 1.0.19
21
+     * @var array
22
+     */
23
+    protected $internal_meta_keys = array(
24
+        'wpinv_form_elements',
25
+        'wpinv_form_items',
26
+        'wpinv_form_earned',
27
+        'wpinv_form_refunded',
28
+        'wpinv_form_cancelled',
29
+        'wpinv_form_failed',
30
+    );
31
+
32
+    /**
33
+     * A map of meta keys to data props.
34
+     *
35
+     * @since 1.0.19
36
+     *
37
+     * @var array
38
+     */
39
+    protected $meta_key_to_props = array(
40
+        'wpinv_form_elements'  => 'elements',
41
+        'wpinv_form_items'     => 'items',
42
+        'wpinv_form_earned'    => 'earned',
43
+        'wpinv_form_refunded'  => 'refunded',
44
+        'wpinv_form_cancelled' => 'cancelled',
45
+        'wpinv_form_failed'    => 'failed',
46
+    );
47
+
48
+    /*
49 49
 	|--------------------------------------------------------------------------
50 50
 	| CRUD Methods
51 51
 	|--------------------------------------------------------------------------
52 52
 	*/
53 53
 
54
-	/**
55
-	 * Method to create a new form in the database.
56
-	 *
57
-	 * @param GetPaid_Payment_Form $form Form object.
58
-	 */
59
-	public function create( &$form ) {
60
-		$form->set_version( WPINV_VERSION );
61
-		$form->set_date_created( current_time( 'mysql' ) );
62
-
63
-		// Create a new post.
64
-		$id = wp_insert_post(
65
-			apply_filters(
66
-				'getpaid_new_payment_form_data',
67
-				array(
68
-					'post_date'   => $form->get_date_created( 'edit' ),
69
-					'post_type'   => 'wpi_payment_form',
70
-					'post_status' => $this->get_post_status( $form ),
71
-					'ping_status' => 'closed',
72
-					'post_author' => $form->get_author( 'edit' ),
73
-					'post_title'  => $form->get_name( 'edit' ),
74
-				)
75
-			),
76
-			true
77
-		);
78
-
79
-		if ( $id && ! is_wp_error( $id ) ) {
80
-			$form->set_id( $id );
81
-			$this->update_post_meta( $form );
82
-			$form->save_meta_data();
83
-			$form->apply_changes();
84
-			$this->clear_caches( $form );
85
-			do_action( 'getpaid_create_payment_form', $form );
86
-			return true;
87
-		}
88
-
89
-		if ( is_wp_error( $id ) ) {
90
-			$form->last_error = $id->get_error_message();
91
-		}
92
-
93
-		return false;
94
-	}
95
-
96
-	/**
97
-	 * Method to read a form from the database.
98
-	 *
99
-	 * @param GetPaid_Payment_Form $form Form object.
100
-	 *
101
-	 */
102
-	public function read( &$form ) {
103
-
104
-		$form->set_defaults();
105
-		$form_object = get_post( $form->get_id() );
106
-
107
-		if ( ! $form->get_id() || ! $form_object || $form_object->post_type != 'wpi_payment_form' ) {
108
-			$form->last_error = __( 'Invalid form.', 'invoicing' );
109
-			$form->set_id( 0 );
110
-			return false;
111
-		}
112
-
113
-		$form->set_props(
114
-			array(
115
-				'date_created'  => 0 < $form_object->post_date ? $form_object->post_date : null,
116
-				'date_modified' => 0 < $form_object->post_modified ? $form_object->post_modified : null,
117
-				'status'        => $form_object->post_status,
118
-				'name'          => $form_object->post_title,
119
-				'author'        => $form_object->post_author,
120
-			)
121
-		);
122
-
123
-		$this->read_object_data( $form, $form_object );
124
-		$form->read_meta_data();
125
-		$form->set_object_read( true );
126
-		do_action( 'getpaid_read_payment_form', $form );
127
-
128
-	}
129
-
130
-	/**
131
-	 * Method to update a form in the database.
132
-	 *
133
-	 * @param GetPaid_Payment_Form $form Form object.
134
-	 */
135
-	public function update( &$form ) {
136
-		$form->save_meta_data();
137
-		$form->set_version( WPINV_VERSION );
138
-
139
-		if ( null === $form->get_date_created( 'edit' ) ) {
140
-			$form->set_date_created( current_time( 'mysql' ) );
141
-		}
142
-
143
-		// Grab the current status so we can compare.
144
-		$previous_status = get_post_status( $form->get_id() );
145
-
146
-		$changes = $form->get_changes();
147
-
148
-		// Only update the post when the post data changes.
149
-		if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author' ), array_keys( $changes ) ) ) {
150
-			$post_data = array(
151
-				'post_date'     => $form->get_date_created( 'edit' ),
152
-				'post_status'   => $form->get_status( 'edit' ),
153
-				'post_title'    => $form->get_name( 'edit' ),
154
-				'post_author'   => $form->get_author( 'edit' ),
155
-				'post_modified' => $form->get_date_modified( 'edit' ),
156
-			);
157
-
158
-			/**
159
-			 * When updating this object, to prevent infinite loops, use $wpdb
160
-			 * to update data, since wp_update_post spawns more calls to the
161
-			 * save_post action.
162
-			 *
163
-			 * This ensures hooks are fired by either WP itself (admin screen save),
164
-			 * or an update purely from CRUD.
165
-			 */
166
-			if ( doing_action( 'save_post' ) ) {
167
-				$GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $form->get_id() ) );
168
-				clean_post_cache( $form->get_id() );
169
-			} else {
170
-				wp_update_post( array_merge( array( 'ID' => $form->get_id() ), $post_data ) );
171
-			}
172
-			$form->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
173
-		}
174
-		$this->update_post_meta( $form );
175
-		$form->apply_changes();
176
-		$this->clear_caches( $form );
177
-
178
-		// Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
179
-		$new_status = $form->get_status( 'edit' );
180
-
181
-		if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
182
-			do_action( 'getpaid_new_payment_form', $form );
183
-		} else {
184
-			do_action( 'getpaid_update_payment_form', $form );
185
-		}
186
-
187
-	}
188
-
189
-	/*
54
+    /**
55
+     * Method to create a new form in the database.
56
+     *
57
+     * @param GetPaid_Payment_Form $form Form object.
58
+     */
59
+    public function create( &$form ) {
60
+        $form->set_version( WPINV_VERSION );
61
+        $form->set_date_created( current_time( 'mysql' ) );
62
+
63
+        // Create a new post.
64
+        $id = wp_insert_post(
65
+            apply_filters(
66
+                'getpaid_new_payment_form_data',
67
+                array(
68
+                    'post_date'   => $form->get_date_created( 'edit' ),
69
+                    'post_type'   => 'wpi_payment_form',
70
+                    'post_status' => $this->get_post_status( $form ),
71
+                    'ping_status' => 'closed',
72
+                    'post_author' => $form->get_author( 'edit' ),
73
+                    'post_title'  => $form->get_name( 'edit' ),
74
+                )
75
+            ),
76
+            true
77
+        );
78
+
79
+        if ( $id && ! is_wp_error( $id ) ) {
80
+            $form->set_id( $id );
81
+            $this->update_post_meta( $form );
82
+            $form->save_meta_data();
83
+            $form->apply_changes();
84
+            $this->clear_caches( $form );
85
+            do_action( 'getpaid_create_payment_form', $form );
86
+            return true;
87
+        }
88
+
89
+        if ( is_wp_error( $id ) ) {
90
+            $form->last_error = $id->get_error_message();
91
+        }
92
+
93
+        return false;
94
+    }
95
+
96
+    /**
97
+     * Method to read a form from the database.
98
+     *
99
+     * @param GetPaid_Payment_Form $form Form object.
100
+     *
101
+     */
102
+    public function read( &$form ) {
103
+
104
+        $form->set_defaults();
105
+        $form_object = get_post( $form->get_id() );
106
+
107
+        if ( ! $form->get_id() || ! $form_object || $form_object->post_type != 'wpi_payment_form' ) {
108
+            $form->last_error = __( 'Invalid form.', 'invoicing' );
109
+            $form->set_id( 0 );
110
+            return false;
111
+        }
112
+
113
+        $form->set_props(
114
+            array(
115
+                'date_created'  => 0 < $form_object->post_date ? $form_object->post_date : null,
116
+                'date_modified' => 0 < $form_object->post_modified ? $form_object->post_modified : null,
117
+                'status'        => $form_object->post_status,
118
+                'name'          => $form_object->post_title,
119
+                'author'        => $form_object->post_author,
120
+            )
121
+        );
122
+
123
+        $this->read_object_data( $form, $form_object );
124
+        $form->read_meta_data();
125
+        $form->set_object_read( true );
126
+        do_action( 'getpaid_read_payment_form', $form );
127
+
128
+    }
129
+
130
+    /**
131
+     * Method to update a form in the database.
132
+     *
133
+     * @param GetPaid_Payment_Form $form Form object.
134
+     */
135
+    public function update( &$form ) {
136
+        $form->save_meta_data();
137
+        $form->set_version( WPINV_VERSION );
138
+
139
+        if ( null === $form->get_date_created( 'edit' ) ) {
140
+            $form->set_date_created( current_time( 'mysql' ) );
141
+        }
142
+
143
+        // Grab the current status so we can compare.
144
+        $previous_status = get_post_status( $form->get_id() );
145
+
146
+        $changes = $form->get_changes();
147
+
148
+        // Only update the post when the post data changes.
149
+        if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author' ), array_keys( $changes ) ) ) {
150
+            $post_data = array(
151
+                'post_date'     => $form->get_date_created( 'edit' ),
152
+                'post_status'   => $form->get_status( 'edit' ),
153
+                'post_title'    => $form->get_name( 'edit' ),
154
+                'post_author'   => $form->get_author( 'edit' ),
155
+                'post_modified' => $form->get_date_modified( 'edit' ),
156
+            );
157
+
158
+            /**
159
+             * When updating this object, to prevent infinite loops, use $wpdb
160
+             * to update data, since wp_update_post spawns more calls to the
161
+             * save_post action.
162
+             *
163
+             * This ensures hooks are fired by either WP itself (admin screen save),
164
+             * or an update purely from CRUD.
165
+             */
166
+            if ( doing_action( 'save_post' ) ) {
167
+                $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $form->get_id() ) );
168
+                clean_post_cache( $form->get_id() );
169
+            } else {
170
+                wp_update_post( array_merge( array( 'ID' => $form->get_id() ), $post_data ) );
171
+            }
172
+            $form->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
173
+        }
174
+        $this->update_post_meta( $form );
175
+        $form->apply_changes();
176
+        $this->clear_caches( $form );
177
+
178
+        // Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
179
+        $new_status = $form->get_status( 'edit' );
180
+
181
+        if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
182
+            do_action( 'getpaid_new_payment_form', $form );
183
+        } else {
184
+            do_action( 'getpaid_update_payment_form', $form );
185
+        }
186
+
187
+    }
188
+
189
+    /*
190 190
 	|--------------------------------------------------------------------------
191 191
 	| Additional Methods
192 192
 	|--------------------------------------------------------------------------
Please login to merge, or discard this patch.
Spacing   +44 added lines, -44 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * GetPaid_Payment_Form_Data_Store class file.
4 4
  *
5 5
  */
6
-if ( ! defined( 'ABSPATH' ) ) {
6
+if (!defined('ABSPATH')) {
7 7
 	exit;
8 8
 }
9 9
 
@@ -56,37 +56,37 @@  discard block
 block discarded – undo
56 56
 	 *
57 57
 	 * @param GetPaid_Payment_Form $form Form object.
58 58
 	 */
59
-	public function create( &$form ) {
60
-		$form->set_version( WPINV_VERSION );
61
-		$form->set_date_created( current_time( 'mysql' ) );
59
+	public function create(&$form) {
60
+		$form->set_version(WPINV_VERSION);
61
+		$form->set_date_created(current_time('mysql'));
62 62
 
63 63
 		// Create a new post.
64 64
 		$id = wp_insert_post(
65 65
 			apply_filters(
66 66
 				'getpaid_new_payment_form_data',
67 67
 				array(
68
-					'post_date'   => $form->get_date_created( 'edit' ),
68
+					'post_date'   => $form->get_date_created('edit'),
69 69
 					'post_type'   => 'wpi_payment_form',
70
-					'post_status' => $this->get_post_status( $form ),
70
+					'post_status' => $this->get_post_status($form),
71 71
 					'ping_status' => 'closed',
72
-					'post_author' => $form->get_author( 'edit' ),
73
-					'post_title'  => $form->get_name( 'edit' ),
72
+					'post_author' => $form->get_author('edit'),
73
+					'post_title'  => $form->get_name('edit'),
74 74
 				)
75 75
 			),
76 76
 			true
77 77
 		);
78 78
 
79
-		if ( $id && ! is_wp_error( $id ) ) {
80
-			$form->set_id( $id );
81
-			$this->update_post_meta( $form );
79
+		if ($id && !is_wp_error($id)) {
80
+			$form->set_id($id);
81
+			$this->update_post_meta($form);
82 82
 			$form->save_meta_data();
83 83
 			$form->apply_changes();
84
-			$this->clear_caches( $form );
85
-			do_action( 'getpaid_create_payment_form', $form );
84
+			$this->clear_caches($form);
85
+			do_action('getpaid_create_payment_form', $form);
86 86
 			return true;
87 87
 		}
88 88
 
89
-		if ( is_wp_error( $id ) ) {
89
+		if (is_wp_error($id)) {
90 90
 			$form->last_error = $id->get_error_message();
91 91
 		}
92 92
 
@@ -99,14 +99,14 @@  discard block
 block discarded – undo
99 99
 	 * @param GetPaid_Payment_Form $form Form object.
100 100
 	 *
101 101
 	 */
102
-	public function read( &$form ) {
102
+	public function read(&$form) {
103 103
 
104 104
 		$form->set_defaults();
105
-		$form_object = get_post( $form->get_id() );
105
+		$form_object = get_post($form->get_id());
106 106
 
107
-		if ( ! $form->get_id() || ! $form_object || $form_object->post_type != 'wpi_payment_form' ) {
108
-			$form->last_error = __( 'Invalid form.', 'invoicing' );
109
-			$form->set_id( 0 );
107
+		if (!$form->get_id() || !$form_object || $form_object->post_type != 'wpi_payment_form') {
108
+			$form->last_error = __('Invalid form.', 'invoicing');
109
+			$form->set_id(0);
110 110
 			return false;
111 111
 		}
112 112
 
@@ -120,10 +120,10 @@  discard block
 block discarded – undo
120 120
 			)
121 121
 		);
122 122
 
123
-		$this->read_object_data( $form, $form_object );
123
+		$this->read_object_data($form, $form_object);
124 124
 		$form->read_meta_data();
125
-		$form->set_object_read( true );
126
-		do_action( 'getpaid_read_payment_form', $form );
125
+		$form->set_object_read(true);
126
+		do_action('getpaid_read_payment_form', $form);
127 127
 
128 128
 	}
129 129
 
@@ -132,27 +132,27 @@  discard block
 block discarded – undo
132 132
 	 *
133 133
 	 * @param GetPaid_Payment_Form $form Form object.
134 134
 	 */
135
-	public function update( &$form ) {
135
+	public function update(&$form) {
136 136
 		$form->save_meta_data();
137
-		$form->set_version( WPINV_VERSION );
137
+		$form->set_version(WPINV_VERSION);
138 138
 
139
-		if ( null === $form->get_date_created( 'edit' ) ) {
140
-			$form->set_date_created( current_time( 'mysql' ) );
139
+		if (null === $form->get_date_created('edit')) {
140
+			$form->set_date_created(current_time('mysql'));
141 141
 		}
142 142
 
143 143
 		// Grab the current status so we can compare.
144
-		$previous_status = get_post_status( $form->get_id() );
144
+		$previous_status = get_post_status($form->get_id());
145 145
 
146 146
 		$changes = $form->get_changes();
147 147
 
148 148
 		// Only update the post when the post data changes.
149
-		if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author' ), array_keys( $changes ) ) ) {
149
+		if (array_intersect(array('date_created', 'date_modified', 'status', 'name', 'author'), array_keys($changes))) {
150 150
 			$post_data = array(
151
-				'post_date'     => $form->get_date_created( 'edit' ),
152
-				'post_status'   => $form->get_status( 'edit' ),
153
-				'post_title'    => $form->get_name( 'edit' ),
154
-				'post_author'   => $form->get_author( 'edit' ),
155
-				'post_modified' => $form->get_date_modified( 'edit' ),
151
+				'post_date'     => $form->get_date_created('edit'),
152
+				'post_status'   => $form->get_status('edit'),
153
+				'post_title'    => $form->get_name('edit'),
154
+				'post_author'   => $form->get_author('edit'),
155
+				'post_modified' => $form->get_date_modified('edit'),
156 156
 			);
157 157
 
158 158
 			/**
@@ -163,25 +163,25 @@  discard block
 block discarded – undo
163 163
 			 * This ensures hooks are fired by either WP itself (admin screen save),
164 164
 			 * or an update purely from CRUD.
165 165
 			 */
166
-			if ( doing_action( 'save_post' ) ) {
167
-				$GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $form->get_id() ) );
168
-				clean_post_cache( $form->get_id() );
166
+			if (doing_action('save_post')) {
167
+				$GLOBALS['wpdb']->update($GLOBALS['wpdb']->posts, $post_data, array('ID' => $form->get_id()));
168
+				clean_post_cache($form->get_id());
169 169
 			} else {
170
-				wp_update_post( array_merge( array( 'ID' => $form->get_id() ), $post_data ) );
170
+				wp_update_post(array_merge(array('ID' => $form->get_id()), $post_data));
171 171
 			}
172
-			$form->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
172
+			$form->read_meta_data(true); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
173 173
 		}
174
-		$this->update_post_meta( $form );
174
+		$this->update_post_meta($form);
175 175
 		$form->apply_changes();
176
-		$this->clear_caches( $form );
176
+		$this->clear_caches($form);
177 177
 
178 178
 		// Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
179
-		$new_status = $form->get_status( 'edit' );
179
+		$new_status = $form->get_status('edit');
180 180
 
181
-		if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
182
-			do_action( 'getpaid_new_payment_form', $form );
181
+		if ($new_status !== $previous_status && in_array($previous_status, array('new', 'auto-draft', 'draft'), true)) {
182
+			do_action('getpaid_new_payment_form', $form);
183 183
 		} else {
184
-			do_action( 'getpaid_update_payment_form', $form );
184
+			do_action('getpaid_update_payment_form', $form);
185 185
 		}
186 186
 
187 187
 	}
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-data.php 2 patches
Indentation   +857 added lines, -857 removed lines patch added patch discarded remove patch
@@ -9,7 +9,7 @@  discard block
 block discarded – undo
9 9
  */
10 10
 
11 11
 if ( ! defined( 'ABSPATH' ) ) {
12
-	exit;
12
+    exit;
13 13
 }
14 14
 
15 15
 /**
@@ -21,356 +21,356 @@  discard block
 block discarded – undo
21 21
  */
22 22
 abstract class GetPaid_Data {
23 23
 
24
-	/**
25
-	 * ID for this object.
26
-	 *
27
-	 * @since 1.0.19
28
-	 * @var int
29
-	 */
30
-	protected $id = 0;
31
-
32
-	/**
33
-	 * Core data for this object. Name value pairs (name + default value).
34
-	 *
35
-	 * @since 1.0.19
36
-	 * @var array
37
-	 */
38
-	protected $data = array();
39
-
40
-	/**
41
-	 * Core data changes for this object.
42
-	 *
43
-	 * @since 1.0.19
44
-	 * @var array
45
-	 */
46
-	protected $changes = array();
47
-
48
-	/**
49
-	 * This is false until the object is read from the DB.
50
-	 *
51
-	 * @since 1.0.19
52
-	 * @var bool
53
-	 */
54
-	protected $object_read = false;
55
-
56
-	/**
57
-	 * This is the name of this object type.
58
-	 *
59
-	 * @since 1.0.19
60
-	 * @var string
61
-	 */
62
-	protected $object_type = 'data';
63
-
64
-	/**
65
-	 * Extra data for this object. Name value pairs (name + default value).
66
-	 * Used as a standard way for sub classes (like item types) to add
67
-	 * additional information to an inherited class.
68
-	 *
69
-	 * @since 1.0.19
70
-	 * @var array
71
-	 */
72
-	protected $extra_data = array();
73
-
74
-	/**
75
-	 * Set to _data on construct so we can track and reset data if needed.
76
-	 *
77
-	 * @since 1.0.19
78
-	 * @var array
79
-	 */
80
-	protected $default_data = array();
81
-
82
-	/**
83
-	 * Contains a reference to the data store for this class.
84
-	 *
85
-	 * @since 1.0.19
86
-	 * @var GetPaid_Data_Store
87
-	 */
88
-	protected $data_store;
89
-
90
-	/**
91
-	 * Stores meta in cache for future reads.
92
-	 * A group must be set to to enable caching.
93
-	 *
94
-	 * @since 1.0.19
95
-	 * @var string
96
-	 */
97
-	protected $cache_group = '';
98
-
99
-	/**
100
-	 * Stores the last error.
101
-	 *
102
-	 * @since 1.0.19
103
-	 * @var string
104
-	 */
105
-	public $last_error = '';
106
-
107
-	/**
108
-	 * Stores additional meta data.
109
-	 *
110
-	 * @since 1.0.19
111
-	 * @var array
112
-	 */
113
-	protected $meta_data = null;
114
-
115
-	/**
116
-	 * Default constructor.
117
-	 *
118
-	 * @param int|object|array|string $read ID to load from the DB (optional) or already queried data.
119
-	 */
120
-	public function __construct( $read = 0 ) {
121
-		$this->data         = array_merge( $this->data, $this->extra_data );
122
-		$this->default_data = $this->data;
123
-	}
124
-
125
-	/**
126
-	 * Only store the object ID to avoid serializing the data object instance.
127
-	 *
128
-	 * @return array
129
-	 */
130
-	public function __sleep() {
131
-		return array( 'id' );
132
-	}
133
-
134
-	/**
135
-	 * Re-run the constructor with the object ID.
136
-	 *
137
-	 * If the object no longer exists, remove the ID.
138
-	 */
139
-	public function __wakeup() {
140
-		$this->__construct( absint( $this->id ) );
141
-
142
-		if ( ! empty( $this->last_error ) ) {
143
-			$this->set_id( 0 );
144
-		}
145
-
146
-	}
147
-
148
-	/**
149
-	 * When the object is cloned, make sure meta is duplicated correctly.
150
-	 *
151
-	 * @since 1.0.19
152
-	 */
153
-	public function __clone() {
154
-		$this->maybe_read_meta_data();
155
-		if ( ! empty( $this->meta_data ) ) {
156
-			foreach ( $this->meta_data as $array_key => $meta ) {
157
-				$this->meta_data[ $array_key ] = clone $meta;
158
-				if ( ! empty( $meta->id ) ) {
159
-					$this->meta_data[ $array_key ]->id = null;
160
-				}
161
-			}
162
-		}
163
-	}
164
-
165
-	/**
166
-	 * Get the data store.
167
-	 *
168
-	 * @since  1.0.19
169
-	 * @return object
170
-	 */
171
-	public function get_data_store() {
172
-		return $this->data_store;
173
-	}
174
-
175
-	/**
176
-	 * Get the object type.
177
-	 *
178
-	 * @since  1.0.19
179
-	 * @return string
180
-	 */
181
-	public function get_object_type() {
182
-		return $this->object_type;
183
-	}
184
-
185
-	/**
186
-	 * Returns the unique ID for this object.
187
-	 *
188
-	 * @since  1.0.19
189
-	 * @return int
190
-	 */
191
-	public function get_id() {
192
-		return $this->id;
193
-	}
194
-
195
-	/**
196
-	 * Get form status.
197
-	 *
198
-	 * @since 1.0.19
199
-	 * @param  string $context View or edit context.
200
-	 * @return string
201
-	 */
202
-	public function get_status( $context = 'view' ) {
203
-		return $this->get_prop( 'status', $context );
204
-    }
205
-
206
-	/**
207
-	 * Delete an object, set the ID to 0, and return result.
208
-	 *
209
-	 * @since  1.0.19
210
-	 * @param  bool $force_delete Should the data be deleted permanently.
211
-	 * @return bool result
212
-	 */
213
-	public function delete( $force_delete = false ) {
214
-		if ( $this->data_store && $this->exists() ) {
215
-			$this->data_store->delete( $this, array( 'force_delete' => $force_delete ) );
216
-			$this->set_id( 0 );
217
-			return true;
218
-		}
219
-		return false;
220
-	}
221
-
222
-	/**
223
-	 * Save should create or update based on object existence.
224
-	 *
225
-	 * @since  1.0.19
226
-	 * @return int
227
-	 */
228
-	public function save() {
229
-		if ( ! $this->data_store ) {
230
-			return $this->get_id();
231
-		}
232
-
233
-		/**
234
-		 * Trigger action before saving to the DB. Allows you to adjust object props before save.
235
-		 *
236
-		 * @param GetPaid_Data          $this The object being saved.
237
-		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
238
-		 */
239
-		do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store );
240
-
241
-		if ( $this->get_id() ) {
242
-			$this->data_store->update( $this );
243
-		} else {
244
-			$this->data_store->create( $this );
245
-		}
246
-
247
-		/**
248
-		 * Trigger action after saving to the DB.
249
-		 *
250
-		 * @param GetPaid_Data          $this The object being saved.
251
-		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
252
-		 */
253
-		do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store );
254
-
255
-		return $this->get_id();
256
-	}
257
-
258
-	/**
259
-	 * Change data to JSON format.
260
-	 *
261
-	 * @since  1.0.19
262
-	 * @return string Data in JSON format.
263
-	 */
264
-	public function __toString() {
265
-		return wp_json_encode( $this->get_data() );
266
-	}
267
-
268
-	/**
269
-	 * Returns all data for this object.
270
-	 *
271
-	 * @since  1.0.19
272
-	 * @return array
273
-	 */
274
-	public function get_data() {
275
-		return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) );
276
-	}
277
-
278
-	/**
279
-	 * Returns array of expected data keys for this object.
280
-	 *
281
-	 * @since   1.0.19
282
-	 * @return array
283
-	 */
284
-	public function get_data_keys() {
285
-		return array_keys( $this->data );
286
-	}
287
-
288
-	/**
289
-	 * Returns all "extra" data keys for an object (for sub objects like item types).
290
-	 *
291
-	 * @since  1.0.19
292
-	 * @return array
293
-	 */
294
-	public function get_extra_data_keys() {
295
-		return array_keys( $this->extra_data );
296
-	}
297
-
298
-	/**
299
-	 * Filter null meta values from array.
300
-	 *
301
-	 * @since  1.0.19
302
-	 * @param mixed $meta Meta value to check.
303
-	 * @return bool
304
-	 */
305
-	protected function filter_null_meta( $meta ) {
306
-		return ! is_null( $meta->value );
307
-	}
308
-
309
-	/**
310
-	 * Get All Meta Data.
311
-	 *
312
-	 * @since 1.0.19
313
-	 * @return array of objects.
314
-	 */
315
-	public function get_meta_data() {
316
-		$this->maybe_read_meta_data();
317
-		return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) );
318
-	}
319
-
320
-	/**
321
-	 * Check if the key is an internal one.
322
-	 *
323
-	 * @since  1.0.19
324
-	 * @param  string $key Key to check.
325
-	 * @return bool   true if it's an internal key, false otherwise
326
-	 */
327
-	protected function is_internal_meta_key( $key ) {
328
-		$internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true );
329
-
330
-		if ( ! $internal_meta_key ) {
331
-			return false;
332
-		}
333
-
334
-		$has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) );
335
-
336
-		if ( ! $has_setter_or_getter ) {
337
-			return false;
338
-		}
339
-
340
-		/* translators: %s: $key Key to check */
341
-		getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
342
-
343
-		return true;
344
-	}
345
-
346
-	/**
347
-	 * Magic method for setting data fields.
348
-	 *
349
-	 * This method does not update custom fields in the database.
350
-	 *
351
-	 * @since 1.0.19
352
-	 * @access public
353
-	 *
354
-	 */
355
-	public function __set( $key, $value ) {
356
-
357
-		if ( 'id' == strtolower( $key ) ) {
358
-			return $this->set_id( $value );
359
-		}
360
-
361
-		if ( method_exists( $this, "set_$key" ) ) {
362
-
363
-			/* translators: %s: $key Key to set */
364
-			getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
365
-
366
-			call_user_func( array( $this, "set_$key" ), $value );
367
-		} else {
368
-			$this->set_prop( $key, $value );
369
-		}
370
-
371
-	}
372
-
373
-	/**
24
+    /**
25
+     * ID for this object.
26
+     *
27
+     * @since 1.0.19
28
+     * @var int
29
+     */
30
+    protected $id = 0;
31
+
32
+    /**
33
+     * Core data for this object. Name value pairs (name + default value).
34
+     *
35
+     * @since 1.0.19
36
+     * @var array
37
+     */
38
+    protected $data = array();
39
+
40
+    /**
41
+     * Core data changes for this object.
42
+     *
43
+     * @since 1.0.19
44
+     * @var array
45
+     */
46
+    protected $changes = array();
47
+
48
+    /**
49
+     * This is false until the object is read from the DB.
50
+     *
51
+     * @since 1.0.19
52
+     * @var bool
53
+     */
54
+    protected $object_read = false;
55
+
56
+    /**
57
+     * This is the name of this object type.
58
+     *
59
+     * @since 1.0.19
60
+     * @var string
61
+     */
62
+    protected $object_type = 'data';
63
+
64
+    /**
65
+     * Extra data for this object. Name value pairs (name + default value).
66
+     * Used as a standard way for sub classes (like item types) to add
67
+     * additional information to an inherited class.
68
+     *
69
+     * @since 1.0.19
70
+     * @var array
71
+     */
72
+    protected $extra_data = array();
73
+
74
+    /**
75
+     * Set to _data on construct so we can track and reset data if needed.
76
+     *
77
+     * @since 1.0.19
78
+     * @var array
79
+     */
80
+    protected $default_data = array();
81
+
82
+    /**
83
+     * Contains a reference to the data store for this class.
84
+     *
85
+     * @since 1.0.19
86
+     * @var GetPaid_Data_Store
87
+     */
88
+    protected $data_store;
89
+
90
+    /**
91
+     * Stores meta in cache for future reads.
92
+     * A group must be set to to enable caching.
93
+     *
94
+     * @since 1.0.19
95
+     * @var string
96
+     */
97
+    protected $cache_group = '';
98
+
99
+    /**
100
+     * Stores the last error.
101
+     *
102
+     * @since 1.0.19
103
+     * @var string
104
+     */
105
+    public $last_error = '';
106
+
107
+    /**
108
+     * Stores additional meta data.
109
+     *
110
+     * @since 1.0.19
111
+     * @var array
112
+     */
113
+    protected $meta_data = null;
114
+
115
+    /**
116
+     * Default constructor.
117
+     *
118
+     * @param int|object|array|string $read ID to load from the DB (optional) or already queried data.
119
+     */
120
+    public function __construct( $read = 0 ) {
121
+        $this->data         = array_merge( $this->data, $this->extra_data );
122
+        $this->default_data = $this->data;
123
+    }
124
+
125
+    /**
126
+     * Only store the object ID to avoid serializing the data object instance.
127
+     *
128
+     * @return array
129
+     */
130
+    public function __sleep() {
131
+        return array( 'id' );
132
+    }
133
+
134
+    /**
135
+     * Re-run the constructor with the object ID.
136
+     *
137
+     * If the object no longer exists, remove the ID.
138
+     */
139
+    public function __wakeup() {
140
+        $this->__construct( absint( $this->id ) );
141
+
142
+        if ( ! empty( $this->last_error ) ) {
143
+            $this->set_id( 0 );
144
+        }
145
+
146
+    }
147
+
148
+    /**
149
+     * When the object is cloned, make sure meta is duplicated correctly.
150
+     *
151
+     * @since 1.0.19
152
+     */
153
+    public function __clone() {
154
+        $this->maybe_read_meta_data();
155
+        if ( ! empty( $this->meta_data ) ) {
156
+            foreach ( $this->meta_data as $array_key => $meta ) {
157
+                $this->meta_data[ $array_key ] = clone $meta;
158
+                if ( ! empty( $meta->id ) ) {
159
+                    $this->meta_data[ $array_key ]->id = null;
160
+                }
161
+            }
162
+        }
163
+    }
164
+
165
+    /**
166
+     * Get the data store.
167
+     *
168
+     * @since  1.0.19
169
+     * @return object
170
+     */
171
+    public function get_data_store() {
172
+        return $this->data_store;
173
+    }
174
+
175
+    /**
176
+     * Get the object type.
177
+     *
178
+     * @since  1.0.19
179
+     * @return string
180
+     */
181
+    public function get_object_type() {
182
+        return $this->object_type;
183
+    }
184
+
185
+    /**
186
+     * Returns the unique ID for this object.
187
+     *
188
+     * @since  1.0.19
189
+     * @return int
190
+     */
191
+    public function get_id() {
192
+        return $this->id;
193
+    }
194
+
195
+    /**
196
+     * Get form status.
197
+     *
198
+     * @since 1.0.19
199
+     * @param  string $context View or edit context.
200
+     * @return string
201
+     */
202
+    public function get_status( $context = 'view' ) {
203
+        return $this->get_prop( 'status', $context );
204
+    }
205
+
206
+    /**
207
+     * Delete an object, set the ID to 0, and return result.
208
+     *
209
+     * @since  1.0.19
210
+     * @param  bool $force_delete Should the data be deleted permanently.
211
+     * @return bool result
212
+     */
213
+    public function delete( $force_delete = false ) {
214
+        if ( $this->data_store && $this->exists() ) {
215
+            $this->data_store->delete( $this, array( 'force_delete' => $force_delete ) );
216
+            $this->set_id( 0 );
217
+            return true;
218
+        }
219
+        return false;
220
+    }
221
+
222
+    /**
223
+     * Save should create or update based on object existence.
224
+     *
225
+     * @since  1.0.19
226
+     * @return int
227
+     */
228
+    public function save() {
229
+        if ( ! $this->data_store ) {
230
+            return $this->get_id();
231
+        }
232
+
233
+        /**
234
+         * Trigger action before saving to the DB. Allows you to adjust object props before save.
235
+         *
236
+         * @param GetPaid_Data          $this The object being saved.
237
+         * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
238
+         */
239
+        do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store );
240
+
241
+        if ( $this->get_id() ) {
242
+            $this->data_store->update( $this );
243
+        } else {
244
+            $this->data_store->create( $this );
245
+        }
246
+
247
+        /**
248
+         * Trigger action after saving to the DB.
249
+         *
250
+         * @param GetPaid_Data          $this The object being saved.
251
+         * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
252
+         */
253
+        do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store );
254
+
255
+        return $this->get_id();
256
+    }
257
+
258
+    /**
259
+     * Change data to JSON format.
260
+     *
261
+     * @since  1.0.19
262
+     * @return string Data in JSON format.
263
+     */
264
+    public function __toString() {
265
+        return wp_json_encode( $this->get_data() );
266
+    }
267
+
268
+    /**
269
+     * Returns all data for this object.
270
+     *
271
+     * @since  1.0.19
272
+     * @return array
273
+     */
274
+    public function get_data() {
275
+        return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) );
276
+    }
277
+
278
+    /**
279
+     * Returns array of expected data keys for this object.
280
+     *
281
+     * @since   1.0.19
282
+     * @return array
283
+     */
284
+    public function get_data_keys() {
285
+        return array_keys( $this->data );
286
+    }
287
+
288
+    /**
289
+     * Returns all "extra" data keys for an object (for sub objects like item types).
290
+     *
291
+     * @since  1.0.19
292
+     * @return array
293
+     */
294
+    public function get_extra_data_keys() {
295
+        return array_keys( $this->extra_data );
296
+    }
297
+
298
+    /**
299
+     * Filter null meta values from array.
300
+     *
301
+     * @since  1.0.19
302
+     * @param mixed $meta Meta value to check.
303
+     * @return bool
304
+     */
305
+    protected function filter_null_meta( $meta ) {
306
+        return ! is_null( $meta->value );
307
+    }
308
+
309
+    /**
310
+     * Get All Meta Data.
311
+     *
312
+     * @since 1.0.19
313
+     * @return array of objects.
314
+     */
315
+    public function get_meta_data() {
316
+        $this->maybe_read_meta_data();
317
+        return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) );
318
+    }
319
+
320
+    /**
321
+     * Check if the key is an internal one.
322
+     *
323
+     * @since  1.0.19
324
+     * @param  string $key Key to check.
325
+     * @return bool   true if it's an internal key, false otherwise
326
+     */
327
+    protected function is_internal_meta_key( $key ) {
328
+        $internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true );
329
+
330
+        if ( ! $internal_meta_key ) {
331
+            return false;
332
+        }
333
+
334
+        $has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) );
335
+
336
+        if ( ! $has_setter_or_getter ) {
337
+            return false;
338
+        }
339
+
340
+        /* translators: %s: $key Key to check */
341
+        getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
342
+
343
+        return true;
344
+    }
345
+
346
+    /**
347
+     * Magic method for setting data fields.
348
+     *
349
+     * This method does not update custom fields in the database.
350
+     *
351
+     * @since 1.0.19
352
+     * @access public
353
+     *
354
+     */
355
+    public function __set( $key, $value ) {
356
+
357
+        if ( 'id' == strtolower( $key ) ) {
358
+            return $this->set_id( $value );
359
+        }
360
+
361
+        if ( method_exists( $this, "set_$key" ) ) {
362
+
363
+            /* translators: %s: $key Key to set */
364
+            getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
365
+
366
+            call_user_func( array( $this, "set_$key" ), $value );
367
+        } else {
368
+            $this->set_prop( $key, $value );
369
+        }
370
+
371
+    }
372
+
373
+    /**
374 374
      * Margic method for retrieving a property.
375 375
      */
376 376
     public function __get( $key ) {
@@ -378,10 +378,10 @@  discard block
 block discarded – undo
378 378
         // Check if we have a helper method for that.
379 379
         if ( method_exists( $this, 'get_' . $key ) ) {
380 380
 
381
-			if ( 'post_type' != $key ) {
382
-				/* translators: %s: $key Key to set */
383
-				getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
384
-			}
381
+            if ( 'post_type' != $key ) {
382
+                /* translators: %s: $key Key to set */
383
+                getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
384
+            }
385 385
 
386 386
             return call_user_func( array( $this, 'get_' . $key ) );
387 387
         }
@@ -391,513 +391,513 @@  discard block
 block discarded – undo
391 391
             return $this->post->$key;
392 392
         }
393 393
 
394
-		return $this->get_prop( $key );
395
-
396
-    }
397
-
398
-	/**
399
-	 * Get Meta Data by Key.
400
-	 *
401
-	 * @since  1.0.19
402
-	 * @param  string $key Meta Key.
403
-	 * @param  bool   $single return first found meta with key, or all with $key.
404
-	 * @param  string $context What the value is for. Valid values are view and edit.
405
-	 * @return mixed
406
-	 */
407
-	public function get_meta( $key = '', $single = true, $context = 'view' ) {
408
-
409
-		// Check if this is an internal meta key.
410
-		$_key = str_replace( '_wpinv', '', $key );
411
-		$_key = str_replace( 'wpinv', '', $_key );
412
-		if ( $this->is_internal_meta_key( $key ) ) {
413
-			$function = 'get_' . $_key;
414
-
415
-			if ( is_callable( array( $this, $function ) ) ) {
416
-				return $this->{$function}();
417
-			}
418
-		}
419
-
420
-		// Read the meta data if not yet read.
421
-		$this->maybe_read_meta_data();
422
-		$meta_data  = $this->get_meta_data();
423
-		$array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true );
424
-		$value      = $single ? '' : array();
425
-
426
-		if ( ! empty( $array_keys ) ) {
427
-			// We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()).
428
-			if ( $single ) {
429
-				$value = $meta_data[ current( $array_keys ) ]->value;
430
-			} else {
431
-				$value = array_intersect_key( $meta_data, array_flip( $array_keys ) );
432
-			}
433
-		}
434
-
435
-		if ( 'view' === $context ) {
436
-			$value = apply_filters( $this->get_hook_prefix() . $key, $value, $this );
437
-		}
438
-
439
-		return $value;
440
-	}
441
-
442
-	/**
443
-	 * See if meta data exists, since get_meta always returns a '' or array().
444
-	 *
445
-	 * @since  1.0.19
446
-	 * @param  string $key Meta Key.
447
-	 * @return boolean
448
-	 */
449
-	public function meta_exists( $key = '' ) {
450
-		$this->maybe_read_meta_data();
451
-		$array_keys = wp_list_pluck( $this->get_meta_data(), 'key' );
452
-		return in_array( $key, $array_keys, true );
453
-	}
454
-
455
-	/**
456
-	 * Set all meta data from array.
457
-	 *
458
-	 * @since 1.0.19
459
-	 * @param array $data Key/Value pairs.
460
-	 */
461
-	public function set_meta_data( $data ) {
462
-		if ( ! empty( $data ) && is_array( $data ) ) {
463
-			$this->maybe_read_meta_data();
464
-			foreach ( $data as $meta ) {
465
-				$meta = (array) $meta;
466
-				if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) {
467
-					$this->meta_data[] = new GetPaid_Meta_Data(
468
-						array(
469
-							'id'    => $meta['id'],
470
-							'key'   => $meta['key'],
471
-							'value' => $meta['value'],
472
-						)
473
-					);
474
-				}
475
-			}
476
-		}
477
-	}
478
-
479
-	/**
480
-	 * Add meta data.
481
-	 *
482
-	 * @since 1.0.19
483
-	 *
484
-	 * @param string       $key Meta key.
485
-	 * @param string|array $value Meta value.
486
-	 * @param bool         $unique Should this be a unique key?.
487
-	 */
488
-	public function add_meta_data( $key, $value, $unique = false ) {
489
-		if ( $this->is_internal_meta_key( $key ) ) {
490
-			$function = 'set_' . $key;
491
-
492
-			if ( is_callable( array( $this, $function ) ) ) {
493
-				return $this->{$function}( $value );
494
-			}
495
-		}
496
-
497
-		$this->maybe_read_meta_data();
498
-		if ( $unique ) {
499
-			$this->delete_meta_data( $key );
500
-		}
501
-		$this->meta_data[] = new GetPaid_Meta_Data(
502
-			array(
503
-				'key'   => $key,
504
-				'value' => $value,
505
-			)
506
-		);
507
-
508
-		$this->save();
509
-	}
510
-
511
-	/**
512
-	 * Update meta data by key or ID, if provided.
513
-	 *
514
-	 * @since  1.0.19
515
-	 *
516
-	 * @param  string       $key Meta key.
517
-	 * @param  string|array $value Meta value.
518
-	 * @param  int          $meta_id Meta ID.
519
-	 */
520
-	public function update_meta_data( $key, $value, $meta_id = 0 ) {
521
-		if ( $this->is_internal_meta_key( $key ) ) {
522
-			$function = 'set_' . $key;
523
-
524
-			if ( is_callable( array( $this, $function ) ) ) {
525
-				return $this->{$function}( $value );
526
-			}
527
-		}
528
-
529
-		$this->maybe_read_meta_data();
530
-
531
-		$array_key = false;
532
-
533
-		if ( $meta_id ) {
534
-			$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true );
535
-			$array_key  = $array_keys ? current( $array_keys ) : false;
536
-		} else {
537
-			// Find matches by key.
538
-			$matches = array();
539
-			foreach ( $this->meta_data as $meta_data_array_key => $meta ) {
540
-				if ( $meta->key === $key ) {
541
-					$matches[] = $meta_data_array_key;
542
-				}
543
-			}
544
-
545
-			if ( ! empty( $matches ) ) {
546
-				// Set matches to null so only one key gets the new value.
547
-				foreach ( $matches as $meta_data_array_key ) {
548
-					$this->meta_data[ $meta_data_array_key ]->value = null;
549
-				}
550
-				$array_key = current( $matches );
551
-			}
552
-		}
553
-
554
-		if ( false !== $array_key ) {
555
-			$meta        = $this->meta_data[ $array_key ];
556
-			$meta->key   = $key;
557
-			$meta->value = $value;
558
-		} else {
559
-			$this->add_meta_data( $key, $value, true );
560
-		}
561
-	}
562
-
563
-	/**
564
-	 * Delete meta data.
565
-	 *
566
-	 * @since 1.0.19
567
-	 * @param string $key Meta key.
568
-	 */
569
-	public function delete_meta_data( $key ) {
570
-		$this->maybe_read_meta_data();
571
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true );
572
-
573
-		if ( $array_keys ) {
574
-			foreach ( $array_keys as $array_key ) {
575
-				$this->meta_data[ $array_key ]->value = null;
576
-			}
577
-		}
578
-	}
579
-
580
-	/**
581
-	 * Delete meta data.
582
-	 *
583
-	 * @since 1.0.19
584
-	 * @param int $mid Meta ID.
585
-	 */
586
-	public function delete_meta_data_by_mid( $mid ) {
587
-		$this->maybe_read_meta_data();
588
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true );
589
-
590
-		if ( $array_keys ) {
591
-			foreach ( $array_keys as $array_key ) {
592
-				$this->meta_data[ $array_key ]->value = null;
593
-			}
594
-		}
595
-	}
596
-
597
-	/**
598
-	 * Read meta data if null.
599
-	 *
600
-	 * @since 1.0.19
601
-	 */
602
-	protected function maybe_read_meta_data() {
603
-		if ( is_null( $this->meta_data ) ) {
604
-			$this->read_meta_data();
605
-		}
606
-	}
607
-
608
-	/**
609
-	 * Read Meta Data from the database. Ignore any internal properties.
610
-	 * Uses it's own caches because get_metadata does not provide meta_ids.
611
-	 *
612
-	 * @since 1.0.19
613
-	 * @param bool $force_read True to force a new DB read (and update cache).
614
-	 */
615
-	public function read_meta_data( $force_read = false ) {
616
-
617
-		// Reset meta data.
618
-		$this->meta_data = array();
619
-
620
-		// Maybe abort early.
621
-		if ( ! $this->get_id() || ! $this->data_store ) {
622
-			return;
623
-		}
624
-
625
-		// Only read from cache if the cache key is set.
626
-		$cache_key = null;
627
-		if ( ! $force_read && ! empty( $this->cache_group ) ) {
628
-			$cache_key     = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
629
-			$raw_meta_data = wp_cache_get( $cache_key, $this->cache_group );
630
-		}
631
-
632
-		// Should we force read?
633
-		if ( empty( $raw_meta_data ) ) {
634
-			$raw_meta_data = $this->data_store->read_meta( $this );
635
-
636
-			if ( ! empty( $cache_key ) ) {
637
-				wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group );
638
-			}
394
+        return $this->get_prop( $key );
395
+
396
+    }
397
+
398
+    /**
399
+     * Get Meta Data by Key.
400
+     *
401
+     * @since  1.0.19
402
+     * @param  string $key Meta Key.
403
+     * @param  bool   $single return first found meta with key, or all with $key.
404
+     * @param  string $context What the value is for. Valid values are view and edit.
405
+     * @return mixed
406
+     */
407
+    public function get_meta( $key = '', $single = true, $context = 'view' ) {
408
+
409
+        // Check if this is an internal meta key.
410
+        $_key = str_replace( '_wpinv', '', $key );
411
+        $_key = str_replace( 'wpinv', '', $_key );
412
+        if ( $this->is_internal_meta_key( $key ) ) {
413
+            $function = 'get_' . $_key;
414
+
415
+            if ( is_callable( array( $this, $function ) ) ) {
416
+                return $this->{$function}();
417
+            }
418
+        }
419
+
420
+        // Read the meta data if not yet read.
421
+        $this->maybe_read_meta_data();
422
+        $meta_data  = $this->get_meta_data();
423
+        $array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true );
424
+        $value      = $single ? '' : array();
425
+
426
+        if ( ! empty( $array_keys ) ) {
427
+            // We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()).
428
+            if ( $single ) {
429
+                $value = $meta_data[ current( $array_keys ) ]->value;
430
+            } else {
431
+                $value = array_intersect_key( $meta_data, array_flip( $array_keys ) );
432
+            }
433
+        }
434
+
435
+        if ( 'view' === $context ) {
436
+            $value = apply_filters( $this->get_hook_prefix() . $key, $value, $this );
437
+        }
438
+
439
+        return $value;
440
+    }
441
+
442
+    /**
443
+     * See if meta data exists, since get_meta always returns a '' or array().
444
+     *
445
+     * @since  1.0.19
446
+     * @param  string $key Meta Key.
447
+     * @return boolean
448
+     */
449
+    public function meta_exists( $key = '' ) {
450
+        $this->maybe_read_meta_data();
451
+        $array_keys = wp_list_pluck( $this->get_meta_data(), 'key' );
452
+        return in_array( $key, $array_keys, true );
453
+    }
454
+
455
+    /**
456
+     * Set all meta data from array.
457
+     *
458
+     * @since 1.0.19
459
+     * @param array $data Key/Value pairs.
460
+     */
461
+    public function set_meta_data( $data ) {
462
+        if ( ! empty( $data ) && is_array( $data ) ) {
463
+            $this->maybe_read_meta_data();
464
+            foreach ( $data as $meta ) {
465
+                $meta = (array) $meta;
466
+                if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) {
467
+                    $this->meta_data[] = new GetPaid_Meta_Data(
468
+                        array(
469
+                            'id'    => $meta['id'],
470
+                            'key'   => $meta['key'],
471
+                            'value' => $meta['value'],
472
+                        )
473
+                    );
474
+                }
475
+            }
476
+        }
477
+    }
478
+
479
+    /**
480
+     * Add meta data.
481
+     *
482
+     * @since 1.0.19
483
+     *
484
+     * @param string       $key Meta key.
485
+     * @param string|array $value Meta value.
486
+     * @param bool         $unique Should this be a unique key?.
487
+     */
488
+    public function add_meta_data( $key, $value, $unique = false ) {
489
+        if ( $this->is_internal_meta_key( $key ) ) {
490
+            $function = 'set_' . $key;
491
+
492
+            if ( is_callable( array( $this, $function ) ) ) {
493
+                return $this->{$function}( $value );
494
+            }
495
+        }
496
+
497
+        $this->maybe_read_meta_data();
498
+        if ( $unique ) {
499
+            $this->delete_meta_data( $key );
500
+        }
501
+        $this->meta_data[] = new GetPaid_Meta_Data(
502
+            array(
503
+                'key'   => $key,
504
+                'value' => $value,
505
+            )
506
+        );
507
+
508
+        $this->save();
509
+    }
510
+
511
+    /**
512
+     * Update meta data by key or ID, if provided.
513
+     *
514
+     * @since  1.0.19
515
+     *
516
+     * @param  string       $key Meta key.
517
+     * @param  string|array $value Meta value.
518
+     * @param  int          $meta_id Meta ID.
519
+     */
520
+    public function update_meta_data( $key, $value, $meta_id = 0 ) {
521
+        if ( $this->is_internal_meta_key( $key ) ) {
522
+            $function = 'set_' . $key;
523
+
524
+            if ( is_callable( array( $this, $function ) ) ) {
525
+                return $this->{$function}( $value );
526
+            }
527
+        }
528
+
529
+        $this->maybe_read_meta_data();
530
+
531
+        $array_key = false;
532
+
533
+        if ( $meta_id ) {
534
+            $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true );
535
+            $array_key  = $array_keys ? current( $array_keys ) : false;
536
+        } else {
537
+            // Find matches by key.
538
+            $matches = array();
539
+            foreach ( $this->meta_data as $meta_data_array_key => $meta ) {
540
+                if ( $meta->key === $key ) {
541
+                    $matches[] = $meta_data_array_key;
542
+                }
543
+            }
544
+
545
+            if ( ! empty( $matches ) ) {
546
+                // Set matches to null so only one key gets the new value.
547
+                foreach ( $matches as $meta_data_array_key ) {
548
+                    $this->meta_data[ $meta_data_array_key ]->value = null;
549
+                }
550
+                $array_key = current( $matches );
551
+            }
552
+        }
553
+
554
+        if ( false !== $array_key ) {
555
+            $meta        = $this->meta_data[ $array_key ];
556
+            $meta->key   = $key;
557
+            $meta->value = $value;
558
+        } else {
559
+            $this->add_meta_data( $key, $value, true );
560
+        }
561
+    }
562
+
563
+    /**
564
+     * Delete meta data.
565
+     *
566
+     * @since 1.0.19
567
+     * @param string $key Meta key.
568
+     */
569
+    public function delete_meta_data( $key ) {
570
+        $this->maybe_read_meta_data();
571
+        $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true );
572
+
573
+        if ( $array_keys ) {
574
+            foreach ( $array_keys as $array_key ) {
575
+                $this->meta_data[ $array_key ]->value = null;
576
+            }
577
+        }
578
+    }
579
+
580
+    /**
581
+     * Delete meta data.
582
+     *
583
+     * @since 1.0.19
584
+     * @param int $mid Meta ID.
585
+     */
586
+    public function delete_meta_data_by_mid( $mid ) {
587
+        $this->maybe_read_meta_data();
588
+        $array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true );
589
+
590
+        if ( $array_keys ) {
591
+            foreach ( $array_keys as $array_key ) {
592
+                $this->meta_data[ $array_key ]->value = null;
593
+            }
594
+        }
595
+    }
596
+
597
+    /**
598
+     * Read meta data if null.
599
+     *
600
+     * @since 1.0.19
601
+     */
602
+    protected function maybe_read_meta_data() {
603
+        if ( is_null( $this->meta_data ) ) {
604
+            $this->read_meta_data();
605
+        }
606
+    }
607
+
608
+    /**
609
+     * Read Meta Data from the database. Ignore any internal properties.
610
+     * Uses it's own caches because get_metadata does not provide meta_ids.
611
+     *
612
+     * @since 1.0.19
613
+     * @param bool $force_read True to force a new DB read (and update cache).
614
+     */
615
+    public function read_meta_data( $force_read = false ) {
616
+
617
+        // Reset meta data.
618
+        $this->meta_data = array();
619
+
620
+        // Maybe abort early.
621
+        if ( ! $this->get_id() || ! $this->data_store ) {
622
+            return;
623
+        }
624
+
625
+        // Only read from cache if the cache key is set.
626
+        $cache_key = null;
627
+        if ( ! $force_read && ! empty( $this->cache_group ) ) {
628
+            $cache_key     = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
629
+            $raw_meta_data = wp_cache_get( $cache_key, $this->cache_group );
630
+        }
631
+
632
+        // Should we force read?
633
+        if ( empty( $raw_meta_data ) ) {
634
+            $raw_meta_data = $this->data_store->read_meta( $this );
635
+
636
+            if ( ! empty( $cache_key ) ) {
637
+                wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group );
638
+            }
639 639
 }
640 640
 
641
-		// Set meta data.
642
-		if ( is_array( $raw_meta_data ) ) {
643
-
644
-			foreach ( $raw_meta_data as $meta ) {
645
-				$this->meta_data[] = new GetPaid_Meta_Data(
646
-					array(
647
-						'id'    => (int) $meta->meta_id,
648
-						'key'   => $meta->meta_key,
649
-						'value' => maybe_unserialize( $meta->meta_value ),
650
-					)
651
-				);
652
-			}
641
+        // Set meta data.
642
+        if ( is_array( $raw_meta_data ) ) {
643
+
644
+            foreach ( $raw_meta_data as $meta ) {
645
+                $this->meta_data[] = new GetPaid_Meta_Data(
646
+                    array(
647
+                        'id'    => (int) $meta->meta_id,
648
+                        'key'   => $meta->meta_key,
649
+                        'value' => maybe_unserialize( $meta->meta_value ),
650
+                    )
651
+                );
652
+            }
653 653
 }
654 654
 
655
-	}
656
-
657
-	/**
658
-	 * Update Meta Data in the database.
659
-	 *
660
-	 * @since 1.0.19
661
-	 */
662
-	public function save_meta_data() {
663
-		if ( ! $this->data_store || is_null( $this->meta_data ) ) {
664
-			return;
665
-		}
666
-		foreach ( $this->meta_data as $array_key => $meta ) {
667
-			if ( is_null( $meta->value ) ) {
668
-				if ( ! empty( $meta->id ) ) {
669
-					$this->data_store->delete_meta( $this, $meta );
670
-					unset( $this->meta_data[ $array_key ] );
671
-				}
672
-			} elseif ( empty( $meta->id ) ) {
673
-				$meta->id = $this->data_store->add_meta( $this, $meta );
674
-				$meta->apply_changes();
675
-			} else {
676
-				if ( $meta->get_changes() ) {
677
-					$this->data_store->update_meta( $this, $meta );
678
-					$meta->apply_changes();
679
-				}
680
-			}
681
-		}
682
-		if ( ! empty( $this->cache_group ) ) {
683
-			$cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
684
-			wp_cache_delete( $cache_key, $this->cache_group );
685
-		}
686
-	}
687
-
688
-	/**
689
-	 * Set ID.
690
-	 *
691
-	 * @since 1.0.19
692
-	 * @param int $id ID.
693
-	 */
694
-	public function set_id( $id ) {
695
-		$this->id = absint( $id );
696
-	}
697
-
698
-	/**
699
-	 * Sets item status.
700
-	 *
701
-	 * @since 1.0.19
702
-	 * @param string $status New status.
703
-	 * @return array details of change.
704
-	 */
705
-	public function set_status( $status ) {
655
+    }
656
+
657
+    /**
658
+     * Update Meta Data in the database.
659
+     *
660
+     * @since 1.0.19
661
+     */
662
+    public function save_meta_data() {
663
+        if ( ! $this->data_store || is_null( $this->meta_data ) ) {
664
+            return;
665
+        }
666
+        foreach ( $this->meta_data as $array_key => $meta ) {
667
+            if ( is_null( $meta->value ) ) {
668
+                if ( ! empty( $meta->id ) ) {
669
+                    $this->data_store->delete_meta( $this, $meta );
670
+                    unset( $this->meta_data[ $array_key ] );
671
+                }
672
+            } elseif ( empty( $meta->id ) ) {
673
+                $meta->id = $this->data_store->add_meta( $this, $meta );
674
+                $meta->apply_changes();
675
+            } else {
676
+                if ( $meta->get_changes() ) {
677
+                    $this->data_store->update_meta( $this, $meta );
678
+                    $meta->apply_changes();
679
+                }
680
+            }
681
+        }
682
+        if ( ! empty( $this->cache_group ) ) {
683
+            $cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
684
+            wp_cache_delete( $cache_key, $this->cache_group );
685
+        }
686
+    }
687
+
688
+    /**
689
+     * Set ID.
690
+     *
691
+     * @since 1.0.19
692
+     * @param int $id ID.
693
+     */
694
+    public function set_id( $id ) {
695
+        $this->id = absint( $id );
696
+    }
697
+
698
+    /**
699
+     * Sets item status.
700
+     *
701
+     * @since 1.0.19
702
+     * @param string $status New status.
703
+     * @return array details of change.
704
+     */
705
+    public function set_status( $status ) {
706 706
         $old_status = $this->get_status();
707 707
 
708
-		$this->set_prop( 'status', $status );
709
-
710
-		return array(
711
-			'from' => $old_status,
712
-			'to'   => $status,
713
-		);
714
-    }
715
-
716
-	/**
717
-	 * Set all props to default values.
718
-	 *
719
-	 * @since 1.0.19
720
-	 */
721
-	public function set_defaults() {
722
-		$this->data    = $this->default_data;
723
-		$this->changes = array();
724
-		$this->set_object_read( false );
725
-	}
726
-
727
-	/**
728
-	 * Set object read property.
729
-	 *
730
-	 * @since 1.0.19
731
-	 * @param boolean $read Should read?.
732
-	 */
733
-	public function set_object_read( $read = true ) {
734
-		$this->object_read = (bool) $read;
735
-	}
736
-
737
-	/**
738
-	 * Get object read property.
739
-	 *
740
-	 * @since  1.0.19
741
-	 * @return boolean
742
-	 */
743
-	public function get_object_read() {
744
-		return (bool) $this->object_read;
745
-	}
746
-
747
-	/**
748
-	 * Set a collection of props in one go, collect any errors, and return the result.
749
-	 * Only sets using public methods.
750
-	 *
751
-	 * @since  1.0.19
752
-	 *
753
-	 * @param array  $props Key value pairs to set. Key is the prop and should map to a setter function name.
754
-	 * @param string $context In what context to run this.
755
-	 *
756
-	 * @return bool|WP_Error
757
-	 */
758
-	public function set_props( $props, $context = 'set' ) {
759
-		$errors = false;
760
-
761
-		$props = wp_unslash( $props );
762
-		foreach ( $props as $prop => $value ) {
763
-			try {
764
-				/**
765
-				 * Checks if the prop being set is allowed, and the value is not null.
766
-				 */
767
-				if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) {
768
-					continue;
769
-				}
770
-				$setter = "set_$prop";
771
-
772
-				if ( is_callable( array( $this, $setter ) ) ) {
773
-					$this->{$setter}( $value );
774
-				}
775
-			} catch ( Exception $e ) {
776
-				if ( ! $errors ) {
777
-					$errors = new WP_Error();
778
-				}
779
-				$errors->add( $e->getCode(), $e->getMessage() );
780
-				$this->last_error = $e->getMessage();
781
-			}
782
-		}
783
-
784
-		return $errors && count( $errors->get_error_codes() ) ? $errors : true;
785
-	}
786
-
787
-	/**
788
-	 * Sets a prop for a setter method.
789
-	 *
790
-	 * This stores changes in a special array so we can track what needs saving
791
-	 * the the DB later.
792
-	 *
793
-	 * @since 1.0.19
794
-	 * @param string $prop Name of prop to set.
795
-	 * @param mixed  $value Value of the prop.
796
-	 */
797
-	protected function set_prop( $prop, $value ) {
798
-		if ( array_key_exists( $prop, $this->data ) ) {
799
-			if ( true === $this->object_read ) {
800
-				if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) {
801
-					$this->changes[ $prop ] = $value;
802
-				}
803
-			} else {
804
-				$this->data[ $prop ] = $value;
805
-			}
806
-		}
807
-	}
808
-
809
-	/**
810
-	 * Return data changes only.
811
-	 *
812
-	 * @since 1.0.19
813
-	 * @return array
814
-	 */
815
-	public function get_changes() {
816
-		return $this->changes;
817
-	}
818
-
819
-	/**
820
-	 * Merge changes with data and clear.
821
-	 *
822
-	 * @since 1.0.19
823
-	 */
824
-	public function apply_changes() {
825
-		$this->data    = array_replace( $this->data, $this->changes );
826
-		$this->changes = array();
827
-	}
828
-
829
-	/**
830
-	 * Prefix for action and filter hooks on data.
831
-	 *
832
-	 * @since  1.0.19
833
-	 * @return string
834
-	 */
835
-	protected function get_hook_prefix() {
836
-		return 'wpinv_get_' . $this->object_type . '_';
837
-	}
838
-
839
-	/**
840
-	 * Gets a prop for a getter method.
841
-	 *
842
-	 * Gets the value from either current pending changes, or the data itself.
843
-	 * Context controls what happens to the value before it's returned.
844
-	 *
845
-	 * @since  1.0.19
846
-	 * @param  string $prop Name of prop to get.
847
-	 * @param  string $context What the value is for. Valid values are view and edit.
848
-	 * @return mixed
849
-	 */
850
-	protected function get_prop( $prop, $context = 'view' ) {
851
-		$value = null;
852
-
853
-		if ( array_key_exists( $prop, $this->data ) ) {
854
-			$value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ];
855
-
856
-			if ( 'view' === $context ) {
857
-				$value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );
858
-			}
859
-		}
860
-
861
-		return $value;
862
-	}
863
-
864
-	/**
865
-	 * Sets a date prop whilst handling formatting and datetime objects.
866
-	 *
867
-	 * @since 1.0.19
868
-	 * @param string         $prop Name of prop to set.
869
-	 * @param string|integer $value Value of the prop.
870
-	 */
871
-	protected function set_date_prop( $prop, $value ) {
872
-
873
-		if ( empty( $value ) ) {
874
-			$this->set_prop( $prop, null );
875
-			return;
876
-		}
877
-		$this->set_prop( $prop, $value );
878
-
879
-	}
880
-
881
-	/**
882
-	 * When invalid data is found, throw an exception unless reading from the DB.
883
-	 *
884
-	 * @since 1.0.19
885
-	 * @param string $code             Error code.
886
-	 * @param string $message          Error message.
887
-	 */
888
-	protected function error( $code, $message ) {
889
-		$this->last_error = $message;
890
-	}
891
-
892
-	/**
893
-	 * Checks if the object is saved in the database
894
-	 *
895
-	 * @since 1.0.19
896
-	 * @return bool
897
-	 */
898
-	public function exists() {
899
-		$id = $this->get_id();
900
-		return ! empty( $id );
901
-	}
708
+        $this->set_prop( 'status', $status );
709
+
710
+        return array(
711
+            'from' => $old_status,
712
+            'to'   => $status,
713
+        );
714
+    }
715
+
716
+    /**
717
+     * Set all props to default values.
718
+     *
719
+     * @since 1.0.19
720
+     */
721
+    public function set_defaults() {
722
+        $this->data    = $this->default_data;
723
+        $this->changes = array();
724
+        $this->set_object_read( false );
725
+    }
726
+
727
+    /**
728
+     * Set object read property.
729
+     *
730
+     * @since 1.0.19
731
+     * @param boolean $read Should read?.
732
+     */
733
+    public function set_object_read( $read = true ) {
734
+        $this->object_read = (bool) $read;
735
+    }
736
+
737
+    /**
738
+     * Get object read property.
739
+     *
740
+     * @since  1.0.19
741
+     * @return boolean
742
+     */
743
+    public function get_object_read() {
744
+        return (bool) $this->object_read;
745
+    }
746
+
747
+    /**
748
+     * Set a collection of props in one go, collect any errors, and return the result.
749
+     * Only sets using public methods.
750
+     *
751
+     * @since  1.0.19
752
+     *
753
+     * @param array  $props Key value pairs to set. Key is the prop and should map to a setter function name.
754
+     * @param string $context In what context to run this.
755
+     *
756
+     * @return bool|WP_Error
757
+     */
758
+    public function set_props( $props, $context = 'set' ) {
759
+        $errors = false;
760
+
761
+        $props = wp_unslash( $props );
762
+        foreach ( $props as $prop => $value ) {
763
+            try {
764
+                /**
765
+                 * Checks if the prop being set is allowed, and the value is not null.
766
+                 */
767
+                if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) {
768
+                    continue;
769
+                }
770
+                $setter = "set_$prop";
771
+
772
+                if ( is_callable( array( $this, $setter ) ) ) {
773
+                    $this->{$setter}( $value );
774
+                }
775
+            } catch ( Exception $e ) {
776
+                if ( ! $errors ) {
777
+                    $errors = new WP_Error();
778
+                }
779
+                $errors->add( $e->getCode(), $e->getMessage() );
780
+                $this->last_error = $e->getMessage();
781
+            }
782
+        }
783
+
784
+        return $errors && count( $errors->get_error_codes() ) ? $errors : true;
785
+    }
786
+
787
+    /**
788
+     * Sets a prop for a setter method.
789
+     *
790
+     * This stores changes in a special array so we can track what needs saving
791
+     * the the DB later.
792
+     *
793
+     * @since 1.0.19
794
+     * @param string $prop Name of prop to set.
795
+     * @param mixed  $value Value of the prop.
796
+     */
797
+    protected function set_prop( $prop, $value ) {
798
+        if ( array_key_exists( $prop, $this->data ) ) {
799
+            if ( true === $this->object_read ) {
800
+                if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) {
801
+                    $this->changes[ $prop ] = $value;
802
+                }
803
+            } else {
804
+                $this->data[ $prop ] = $value;
805
+            }
806
+        }
807
+    }
808
+
809
+    /**
810
+     * Return data changes only.
811
+     *
812
+     * @since 1.0.19
813
+     * @return array
814
+     */
815
+    public function get_changes() {
816
+        return $this->changes;
817
+    }
818
+
819
+    /**
820
+     * Merge changes with data and clear.
821
+     *
822
+     * @since 1.0.19
823
+     */
824
+    public function apply_changes() {
825
+        $this->data    = array_replace( $this->data, $this->changes );
826
+        $this->changes = array();
827
+    }
828
+
829
+    /**
830
+     * Prefix for action and filter hooks on data.
831
+     *
832
+     * @since  1.0.19
833
+     * @return string
834
+     */
835
+    protected function get_hook_prefix() {
836
+        return 'wpinv_get_' . $this->object_type . '_';
837
+    }
838
+
839
+    /**
840
+     * Gets a prop for a getter method.
841
+     *
842
+     * Gets the value from either current pending changes, or the data itself.
843
+     * Context controls what happens to the value before it's returned.
844
+     *
845
+     * @since  1.0.19
846
+     * @param  string $prop Name of prop to get.
847
+     * @param  string $context What the value is for. Valid values are view and edit.
848
+     * @return mixed
849
+     */
850
+    protected function get_prop( $prop, $context = 'view' ) {
851
+        $value = null;
852
+
853
+        if ( array_key_exists( $prop, $this->data ) ) {
854
+            $value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ];
855
+
856
+            if ( 'view' === $context ) {
857
+                $value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );
858
+            }
859
+        }
860
+
861
+        return $value;
862
+    }
863
+
864
+    /**
865
+     * Sets a date prop whilst handling formatting and datetime objects.
866
+     *
867
+     * @since 1.0.19
868
+     * @param string         $prop Name of prop to set.
869
+     * @param string|integer $value Value of the prop.
870
+     */
871
+    protected function set_date_prop( $prop, $value ) {
872
+
873
+        if ( empty( $value ) ) {
874
+            $this->set_prop( $prop, null );
875
+            return;
876
+        }
877
+        $this->set_prop( $prop, $value );
878
+
879
+    }
880
+
881
+    /**
882
+     * When invalid data is found, throw an exception unless reading from the DB.
883
+     *
884
+     * @since 1.0.19
885
+     * @param string $code             Error code.
886
+     * @param string $message          Error message.
887
+     */
888
+    protected function error( $code, $message ) {
889
+        $this->last_error = $message;
890
+    }
891
+
892
+    /**
893
+     * Checks if the object is saved in the database
894
+     *
895
+     * @since 1.0.19
896
+     * @return bool
897
+     */
898
+    public function exists() {
899
+        $id = $this->get_id();
900
+        return ! empty( $id );
901
+    }
902 902
 
903 903
 }
Please login to merge, or discard this patch.
Spacing   +162 added lines, -162 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  *
9 9
  */
10 10
 
11
-if ( ! defined( 'ABSPATH' ) ) {
11
+if (!defined('ABSPATH')) {
12 12
 	exit;
13 13
 }
14 14
 
@@ -117,8 +117,8 @@  discard block
 block discarded – undo
117 117
 	 *
118 118
 	 * @param int|object|array|string $read ID to load from the DB (optional) or already queried data.
119 119
 	 */
120
-	public function __construct( $read = 0 ) {
121
-		$this->data         = array_merge( $this->data, $this->extra_data );
120
+	public function __construct($read = 0) {
121
+		$this->data         = array_merge($this->data, $this->extra_data);
122 122
 		$this->default_data = $this->data;
123 123
 	}
124 124
 
@@ -128,7 +128,7 @@  discard block
 block discarded – undo
128 128
 	 * @return array
129 129
 	 */
130 130
 	public function __sleep() {
131
-		return array( 'id' );
131
+		return array('id');
132 132
 	}
133 133
 
134 134
 	/**
@@ -137,10 +137,10 @@  discard block
 block discarded – undo
137 137
 	 * If the object no longer exists, remove the ID.
138 138
 	 */
139 139
 	public function __wakeup() {
140
-		$this->__construct( absint( $this->id ) );
140
+		$this->__construct(absint($this->id));
141 141
 
142
-		if ( ! empty( $this->last_error ) ) {
143
-			$this->set_id( 0 );
142
+		if (!empty($this->last_error)) {
143
+			$this->set_id(0);
144 144
 		}
145 145
 
146 146
 	}
@@ -152,11 +152,11 @@  discard block
 block discarded – undo
152 152
 	 */
153 153
 	public function __clone() {
154 154
 		$this->maybe_read_meta_data();
155
-		if ( ! empty( $this->meta_data ) ) {
156
-			foreach ( $this->meta_data as $array_key => $meta ) {
157
-				$this->meta_data[ $array_key ] = clone $meta;
158
-				if ( ! empty( $meta->id ) ) {
159
-					$this->meta_data[ $array_key ]->id = null;
155
+		if (!empty($this->meta_data)) {
156
+			foreach ($this->meta_data as $array_key => $meta) {
157
+				$this->meta_data[$array_key] = clone $meta;
158
+				if (!empty($meta->id)) {
159
+					$this->meta_data[$array_key]->id = null;
160 160
 				}
161 161
 			}
162 162
 		}
@@ -199,8 +199,8 @@  discard block
 block discarded – undo
199 199
 	 * @param  string $context View or edit context.
200 200
 	 * @return string
201 201
 	 */
202
-	public function get_status( $context = 'view' ) {
203
-		return $this->get_prop( 'status', $context );
202
+	public function get_status($context = 'view') {
203
+		return $this->get_prop('status', $context);
204 204
     }
205 205
 
206 206
 	/**
@@ -210,10 +210,10 @@  discard block
 block discarded – undo
210 210
 	 * @param  bool $force_delete Should the data be deleted permanently.
211 211
 	 * @return bool result
212 212
 	 */
213
-	public function delete( $force_delete = false ) {
214
-		if ( $this->data_store && $this->exists() ) {
215
-			$this->data_store->delete( $this, array( 'force_delete' => $force_delete ) );
216
-			$this->set_id( 0 );
213
+	public function delete($force_delete = false) {
214
+		if ($this->data_store && $this->exists()) {
215
+			$this->data_store->delete($this, array('force_delete' => $force_delete));
216
+			$this->set_id(0);
217 217
 			return true;
218 218
 		}
219 219
 		return false;
@@ -226,7 +226,7 @@  discard block
 block discarded – undo
226 226
 	 * @return int
227 227
 	 */
228 228
 	public function save() {
229
-		if ( ! $this->data_store ) {
229
+		if (!$this->data_store) {
230 230
 			return $this->get_id();
231 231
 		}
232 232
 
@@ -236,12 +236,12 @@  discard block
 block discarded – undo
236 236
 		 * @param GetPaid_Data          $this The object being saved.
237 237
 		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
238 238
 		 */
239
-		do_action( 'getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store );
239
+		do_action('getpaid_before_' . $this->object_type . '_object_save', $this, $this->data_store);
240 240
 
241
-		if ( $this->get_id() ) {
242
-			$this->data_store->update( $this );
241
+		if ($this->get_id()) {
242
+			$this->data_store->update($this);
243 243
 		} else {
244
-			$this->data_store->create( $this );
244
+			$this->data_store->create($this);
245 245
 		}
246 246
 
247 247
 		/**
@@ -250,7 +250,7 @@  discard block
 block discarded – undo
250 250
 		 * @param GetPaid_Data          $this The object being saved.
251 251
 		 * @param GetPaid_Data_Store_WP $data_store The data store persisting the data.
252 252
 		 */
253
-		do_action( 'getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store );
253
+		do_action('getpaid_after_' . $this->object_type . '_object_save', $this, $this->data_store);
254 254
 
255 255
 		return $this->get_id();
256 256
 	}
@@ -262,7 +262,7 @@  discard block
 block discarded – undo
262 262
 	 * @return string Data in JSON format.
263 263
 	 */
264 264
 	public function __toString() {
265
-		return wp_json_encode( $this->get_data() );
265
+		return wp_json_encode($this->get_data());
266 266
 	}
267 267
 
268 268
 	/**
@@ -272,7 +272,7 @@  discard block
 block discarded – undo
272 272
 	 * @return array
273 273
 	 */
274 274
 	public function get_data() {
275
-		return array_merge( array( 'id' => $this->get_id() ), $this->data, array( 'meta_data' => $this->get_meta_data() ) );
275
+		return array_merge(array('id' => $this->get_id()), $this->data, array('meta_data' => $this->get_meta_data()));
276 276
 	}
277 277
 
278 278
 	/**
@@ -282,7 +282,7 @@  discard block
 block discarded – undo
282 282
 	 * @return array
283 283
 	 */
284 284
 	public function get_data_keys() {
285
-		return array_keys( $this->data );
285
+		return array_keys($this->data);
286 286
 	}
287 287
 
288 288
 	/**
@@ -292,7 +292,7 @@  discard block
 block discarded – undo
292 292
 	 * @return array
293 293
 	 */
294 294
 	public function get_extra_data_keys() {
295
-		return array_keys( $this->extra_data );
295
+		return array_keys($this->extra_data);
296 296
 	}
297 297
 
298 298
 	/**
@@ -302,8 +302,8 @@  discard block
 block discarded – undo
302 302
 	 * @param mixed $meta Meta value to check.
303 303
 	 * @return bool
304 304
 	 */
305
-	protected function filter_null_meta( $meta ) {
306
-		return ! is_null( $meta->value );
305
+	protected function filter_null_meta($meta) {
306
+		return !is_null($meta->value);
307 307
 	}
308 308
 
309 309
 	/**
@@ -314,7 +314,7 @@  discard block
 block discarded – undo
314 314
 	 */
315 315
 	public function get_meta_data() {
316 316
 		$this->maybe_read_meta_data();
317
-		return array_values( array_filter( $this->meta_data, array( $this, 'filter_null_meta' ) ) );
317
+		return array_values(array_filter($this->meta_data, array($this, 'filter_null_meta')));
318 318
 	}
319 319
 
320 320
 	/**
@@ -324,21 +324,21 @@  discard block
 block discarded – undo
324 324
 	 * @param  string $key Key to check.
325 325
 	 * @return bool   true if it's an internal key, false otherwise
326 326
 	 */
327
-	protected function is_internal_meta_key( $key ) {
328
-		$internal_meta_key = ! empty( $key ) && $this->data_store && in_array( $key, $this->data_store->get_internal_meta_keys(), true );
327
+	protected function is_internal_meta_key($key) {
328
+		$internal_meta_key = !empty($key) && $this->data_store && in_array($key, $this->data_store->get_internal_meta_keys(), true);
329 329
 
330
-		if ( ! $internal_meta_key ) {
330
+		if (!$internal_meta_key) {
331 331
 			return false;
332 332
 		}
333 333
 
334
-		$has_setter_or_getter = is_callable( array( $this, 'set_' . $key ) ) || is_callable( array( $this, 'get_' . $key ) );
334
+		$has_setter_or_getter = is_callable(array($this, 'set_' . $key)) || is_callable(array($this, 'get_' . $key));
335 335
 
336
-		if ( ! $has_setter_or_getter ) {
336
+		if (!$has_setter_or_getter) {
337 337
 			return false;
338 338
 		}
339 339
 
340 340
 		/* translators: %s: $key Key to check */
341
-		getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
341
+		getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Generic add/update/get meta methods should not be used for internal meta data, including "%s". Use getters and setters.', 'invoicing'), $key), '1.0.19');
342 342
 
343 343
 		return true;
344 344
 	}
@@ -352,20 +352,20 @@  discard block
 block discarded – undo
352 352
 	 * @access public
353 353
 	 *
354 354
 	 */
355
-	public function __set( $key, $value ) {
355
+	public function __set($key, $value) {
356 356
 
357
-		if ( 'id' == strtolower( $key ) ) {
358
-			return $this->set_id( $value );
357
+		if ('id' == strtolower($key)) {
358
+			return $this->set_id($value);
359 359
 		}
360 360
 
361
-		if ( method_exists( $this, "set_$key" ) ) {
361
+		if (method_exists($this, "set_$key")) {
362 362
 
363 363
 			/* translators: %s: $key Key to set */
364
-			getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
364
+			getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19');
365 365
 
366
-			call_user_func( array( $this, "set_$key" ), $value );
366
+			call_user_func(array($this, "set_$key"), $value);
367 367
 		} else {
368
-			$this->set_prop( $key, $value );
368
+			$this->set_prop($key, $value);
369 369
 		}
370 370
 
371 371
 	}
@@ -373,25 +373,25 @@  discard block
 block discarded – undo
373 373
 	/**
374 374
      * Margic method for retrieving a property.
375 375
      */
376
-    public function __get( $key ) {
376
+    public function __get($key) {
377 377
 
378 378
         // Check if we have a helper method for that.
379
-        if ( method_exists( $this, 'get_' . $key ) ) {
379
+        if (method_exists($this, 'get_' . $key)) {
380 380
 
381
-			if ( 'post_type' != $key ) {
381
+			if ('post_type' != $key) {
382 382
 				/* translators: %s: $key Key to set */
383
-				getpaid_doing_it_wrong( __FUNCTION__, sprintf( __( 'Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing' ), $key ), '1.0.19' );
383
+				getpaid_doing_it_wrong(__FUNCTION__, sprintf(__('Object data such as "%s" should not be accessed directly. Use getters and setters.', 'invoicing'), $key), '1.0.19');
384 384
 			}
385 385
 
386
-            return call_user_func( array( $this, 'get_' . $key ) );
386
+            return call_user_func(array($this, 'get_' . $key));
387 387
         }
388 388
 
389 389
         // Check if the key is in the associated $post object.
390
-        if ( ! empty( $this->post ) && isset( $this->post->$key ) ) {
390
+        if (!empty($this->post) && isset($this->post->$key)) {
391 391
             return $this->post->$key;
392 392
         }
393 393
 
394
-		return $this->get_prop( $key );
394
+		return $this->get_prop($key);
395 395
 
396 396
     }
397 397
 
@@ -404,15 +404,15 @@  discard block
 block discarded – undo
404 404
 	 * @param  string $context What the value is for. Valid values are view and edit.
405 405
 	 * @return mixed
406 406
 	 */
407
-	public function get_meta( $key = '', $single = true, $context = 'view' ) {
407
+	public function get_meta($key = '', $single = true, $context = 'view') {
408 408
 
409 409
 		// Check if this is an internal meta key.
410
-		$_key = str_replace( '_wpinv', '', $key );
411
-		$_key = str_replace( 'wpinv', '', $_key );
412
-		if ( $this->is_internal_meta_key( $key ) ) {
410
+		$_key = str_replace('_wpinv', '', $key);
411
+		$_key = str_replace('wpinv', '', $_key);
412
+		if ($this->is_internal_meta_key($key)) {
413 413
 			$function = 'get_' . $_key;
414 414
 
415
-			if ( is_callable( array( $this, $function ) ) ) {
415
+			if (is_callable(array($this, $function))) {
416 416
 				return $this->{$function}();
417 417
 			}
418 418
 		}
@@ -420,20 +420,20 @@  discard block
 block discarded – undo
420 420
 		// Read the meta data if not yet read.
421 421
 		$this->maybe_read_meta_data();
422 422
 		$meta_data  = $this->get_meta_data();
423
-		$array_keys = array_keys( wp_list_pluck( $meta_data, 'key' ), $key, true );
423
+		$array_keys = array_keys(wp_list_pluck($meta_data, 'key'), $key, true);
424 424
 		$value      = $single ? '' : array();
425 425
 
426
-		if ( ! empty( $array_keys ) ) {
426
+		if (!empty($array_keys)) {
427 427
 			// We don't use the $this->meta_data property directly here because we don't want meta with a null value (i.e. meta which has been deleted via $this->delete_meta_data()).
428
-			if ( $single ) {
429
-				$value = $meta_data[ current( $array_keys ) ]->value;
428
+			if ($single) {
429
+				$value = $meta_data[current($array_keys)]->value;
430 430
 			} else {
431
-				$value = array_intersect_key( $meta_data, array_flip( $array_keys ) );
431
+				$value = array_intersect_key($meta_data, array_flip($array_keys));
432 432
 			}
433 433
 		}
434 434
 
435
-		if ( 'view' === $context ) {
436
-			$value = apply_filters( $this->get_hook_prefix() . $key, $value, $this );
435
+		if ('view' === $context) {
436
+			$value = apply_filters($this->get_hook_prefix() . $key, $value, $this);
437 437
 		}
438 438
 
439 439
 		return $value;
@@ -446,10 +446,10 @@  discard block
 block discarded – undo
446 446
 	 * @param  string $key Meta Key.
447 447
 	 * @return boolean
448 448
 	 */
449
-	public function meta_exists( $key = '' ) {
449
+	public function meta_exists($key = '') {
450 450
 		$this->maybe_read_meta_data();
451
-		$array_keys = wp_list_pluck( $this->get_meta_data(), 'key' );
452
-		return in_array( $key, $array_keys, true );
451
+		$array_keys = wp_list_pluck($this->get_meta_data(), 'key');
452
+		return in_array($key, $array_keys, true);
453 453
 	}
454 454
 
455 455
 	/**
@@ -458,12 +458,12 @@  discard block
 block discarded – undo
458 458
 	 * @since 1.0.19
459 459
 	 * @param array $data Key/Value pairs.
460 460
 	 */
461
-	public function set_meta_data( $data ) {
462
-		if ( ! empty( $data ) && is_array( $data ) ) {
461
+	public function set_meta_data($data) {
462
+		if (!empty($data) && is_array($data)) {
463 463
 			$this->maybe_read_meta_data();
464
-			foreach ( $data as $meta ) {
464
+			foreach ($data as $meta) {
465 465
 				$meta = (array) $meta;
466
-				if ( isset( $meta['key'], $meta['value'], $meta['id'] ) ) {
466
+				if (isset($meta['key'], $meta['value'], $meta['id'])) {
467 467
 					$this->meta_data[] = new GetPaid_Meta_Data(
468 468
 						array(
469 469
 							'id'    => $meta['id'],
@@ -485,18 +485,18 @@  discard block
 block discarded – undo
485 485
 	 * @param string|array $value Meta value.
486 486
 	 * @param bool         $unique Should this be a unique key?.
487 487
 	 */
488
-	public function add_meta_data( $key, $value, $unique = false ) {
489
-		if ( $this->is_internal_meta_key( $key ) ) {
488
+	public function add_meta_data($key, $value, $unique = false) {
489
+		if ($this->is_internal_meta_key($key)) {
490 490
 			$function = 'set_' . $key;
491 491
 
492
-			if ( is_callable( array( $this, $function ) ) ) {
493
-				return $this->{$function}( $value );
492
+			if (is_callable(array($this, $function))) {
493
+				return $this->{$function}($value);
494 494
 			}
495 495
 		}
496 496
 
497 497
 		$this->maybe_read_meta_data();
498
-		if ( $unique ) {
499
-			$this->delete_meta_data( $key );
498
+		if ($unique) {
499
+			$this->delete_meta_data($key);
500 500
 		}
501 501
 		$this->meta_data[] = new GetPaid_Meta_Data(
502 502
 			array(
@@ -517,12 +517,12 @@  discard block
 block discarded – undo
517 517
 	 * @param  string|array $value Meta value.
518 518
 	 * @param  int          $meta_id Meta ID.
519 519
 	 */
520
-	public function update_meta_data( $key, $value, $meta_id = 0 ) {
521
-		if ( $this->is_internal_meta_key( $key ) ) {
520
+	public function update_meta_data($key, $value, $meta_id = 0) {
521
+		if ($this->is_internal_meta_key($key)) {
522 522
 			$function = 'set_' . $key;
523 523
 
524
-			if ( is_callable( array( $this, $function ) ) ) {
525
-				return $this->{$function}( $value );
524
+			if (is_callable(array($this, $function))) {
525
+				return $this->{$function}($value);
526 526
 			}
527 527
 		}
528 528
 
@@ -530,33 +530,33 @@  discard block
 block discarded – undo
530 530
 
531 531
 		$array_key = false;
532 532
 
533
-		if ( $meta_id ) {
534
-			$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), $meta_id, true );
535
-			$array_key  = $array_keys ? current( $array_keys ) : false;
533
+		if ($meta_id) {
534
+			$array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), $meta_id, true);
535
+			$array_key  = $array_keys ? current($array_keys) : false;
536 536
 		} else {
537 537
 			// Find matches by key.
538 538
 			$matches = array();
539
-			foreach ( $this->meta_data as $meta_data_array_key => $meta ) {
540
-				if ( $meta->key === $key ) {
539
+			foreach ($this->meta_data as $meta_data_array_key => $meta) {
540
+				if ($meta->key === $key) {
541 541
 					$matches[] = $meta_data_array_key;
542 542
 				}
543 543
 			}
544 544
 
545
-			if ( ! empty( $matches ) ) {
545
+			if (!empty($matches)) {
546 546
 				// Set matches to null so only one key gets the new value.
547
-				foreach ( $matches as $meta_data_array_key ) {
548
-					$this->meta_data[ $meta_data_array_key ]->value = null;
547
+				foreach ($matches as $meta_data_array_key) {
548
+					$this->meta_data[$meta_data_array_key]->value = null;
549 549
 				}
550
-				$array_key = current( $matches );
550
+				$array_key = current($matches);
551 551
 			}
552 552
 		}
553 553
 
554
-		if ( false !== $array_key ) {
555
-			$meta        = $this->meta_data[ $array_key ];
554
+		if (false !== $array_key) {
555
+			$meta        = $this->meta_data[$array_key];
556 556
 			$meta->key   = $key;
557 557
 			$meta->value = $value;
558 558
 		} else {
559
-			$this->add_meta_data( $key, $value, true );
559
+			$this->add_meta_data($key, $value, true);
560 560
 		}
561 561
 	}
562 562
 
@@ -566,13 +566,13 @@  discard block
 block discarded – undo
566 566
 	 * @since 1.0.19
567 567
 	 * @param string $key Meta key.
568 568
 	 */
569
-	public function delete_meta_data( $key ) {
569
+	public function delete_meta_data($key) {
570 570
 		$this->maybe_read_meta_data();
571
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'key' ), $key, true );
571
+		$array_keys = array_keys(wp_list_pluck($this->meta_data, 'key'), $key, true);
572 572
 
573
-		if ( $array_keys ) {
574
-			foreach ( $array_keys as $array_key ) {
575
-				$this->meta_data[ $array_key ]->value = null;
573
+		if ($array_keys) {
574
+			foreach ($array_keys as $array_key) {
575
+				$this->meta_data[$array_key]->value = null;
576 576
 			}
577 577
 		}
578 578
 	}
@@ -583,13 +583,13 @@  discard block
 block discarded – undo
583 583
 	 * @since 1.0.19
584 584
 	 * @param int $mid Meta ID.
585 585
 	 */
586
-	public function delete_meta_data_by_mid( $mid ) {
586
+	public function delete_meta_data_by_mid($mid) {
587 587
 		$this->maybe_read_meta_data();
588
-		$array_keys = array_keys( wp_list_pluck( $this->meta_data, 'id' ), (int) $mid, true );
588
+		$array_keys = array_keys(wp_list_pluck($this->meta_data, 'id'), (int) $mid, true);
589 589
 
590
-		if ( $array_keys ) {
591
-			foreach ( $array_keys as $array_key ) {
592
-				$this->meta_data[ $array_key ]->value = null;
590
+		if ($array_keys) {
591
+			foreach ($array_keys as $array_key) {
592
+				$this->meta_data[$array_key]->value = null;
593 593
 			}
594 594
 		}
595 595
 	}
@@ -600,7 +600,7 @@  discard block
 block discarded – undo
600 600
 	 * @since 1.0.19
601 601
 	 */
602 602
 	protected function maybe_read_meta_data() {
603
-		if ( is_null( $this->meta_data ) ) {
603
+		if (is_null($this->meta_data)) {
604 604
 			$this->read_meta_data();
605 605
 		}
606 606
 	}
@@ -612,41 +612,41 @@  discard block
 block discarded – undo
612 612
 	 * @since 1.0.19
613 613
 	 * @param bool $force_read True to force a new DB read (and update cache).
614 614
 	 */
615
-	public function read_meta_data( $force_read = false ) {
615
+	public function read_meta_data($force_read = false) {
616 616
 
617 617
 		// Reset meta data.
618 618
 		$this->meta_data = array();
619 619
 
620 620
 		// Maybe abort early.
621
-		if ( ! $this->get_id() || ! $this->data_store ) {
621
+		if (!$this->get_id() || !$this->data_store) {
622 622
 			return;
623 623
 		}
624 624
 
625 625
 		// Only read from cache if the cache key is set.
626 626
 		$cache_key = null;
627
-		if ( ! $force_read && ! empty( $this->cache_group ) ) {
628
-			$cache_key     = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
629
-			$raw_meta_data = wp_cache_get( $cache_key, $this->cache_group );
627
+		if (!$force_read && !empty($this->cache_group)) {
628
+			$cache_key     = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id();
629
+			$raw_meta_data = wp_cache_get($cache_key, $this->cache_group);
630 630
 		}
631 631
 
632 632
 		// Should we force read?
633
-		if ( empty( $raw_meta_data ) ) {
634
-			$raw_meta_data = $this->data_store->read_meta( $this );
633
+		if (empty($raw_meta_data)) {
634
+			$raw_meta_data = $this->data_store->read_meta($this);
635 635
 
636
-			if ( ! empty( $cache_key ) ) {
637
-				wp_cache_set( $cache_key, $raw_meta_data, $this->cache_group );
636
+			if (!empty($cache_key)) {
637
+				wp_cache_set($cache_key, $raw_meta_data, $this->cache_group);
638 638
 			}
639 639
 }
640 640
 
641 641
 		// Set meta data.
642
-		if ( is_array( $raw_meta_data ) ) {
642
+		if (is_array($raw_meta_data)) {
643 643
 
644
-			foreach ( $raw_meta_data as $meta ) {
644
+			foreach ($raw_meta_data as $meta) {
645 645
 				$this->meta_data[] = new GetPaid_Meta_Data(
646 646
 					array(
647 647
 						'id'    => (int) $meta->meta_id,
648 648
 						'key'   => $meta->meta_key,
649
-						'value' => maybe_unserialize( $meta->meta_value ),
649
+						'value' => maybe_unserialize($meta->meta_value),
650 650
 					)
651 651
 				);
652 652
 			}
@@ -660,28 +660,28 @@  discard block
 block discarded – undo
660 660
 	 * @since 1.0.19
661 661
 	 */
662 662
 	public function save_meta_data() {
663
-		if ( ! $this->data_store || is_null( $this->meta_data ) ) {
663
+		if (!$this->data_store || is_null($this->meta_data)) {
664 664
 			return;
665 665
 		}
666
-		foreach ( $this->meta_data as $array_key => $meta ) {
667
-			if ( is_null( $meta->value ) ) {
668
-				if ( ! empty( $meta->id ) ) {
669
-					$this->data_store->delete_meta( $this, $meta );
670
-					unset( $this->meta_data[ $array_key ] );
666
+		foreach ($this->meta_data as $array_key => $meta) {
667
+			if (is_null($meta->value)) {
668
+				if (!empty($meta->id)) {
669
+					$this->data_store->delete_meta($this, $meta);
670
+					unset($this->meta_data[$array_key]);
671 671
 				}
672
-			} elseif ( empty( $meta->id ) ) {
673
-				$meta->id = $this->data_store->add_meta( $this, $meta );
672
+			} elseif (empty($meta->id)) {
673
+				$meta->id = $this->data_store->add_meta($this, $meta);
674 674
 				$meta->apply_changes();
675 675
 			} else {
676
-				if ( $meta->get_changes() ) {
677
-					$this->data_store->update_meta( $this, $meta );
676
+				if ($meta->get_changes()) {
677
+					$this->data_store->update_meta($this, $meta);
678 678
 					$meta->apply_changes();
679 679
 				}
680 680
 			}
681 681
 		}
682
-		if ( ! empty( $this->cache_group ) ) {
683
-			$cache_key = GetPaid_Cache_Helper::get_cache_prefix( $this->cache_group ) . GetPaid_Cache_Helper::get_cache_prefix( 'object_' . $this->get_id() ) . 'object_meta_' . $this->get_id();
684
-			wp_cache_delete( $cache_key, $this->cache_group );
682
+		if (!empty($this->cache_group)) {
683
+			$cache_key = GetPaid_Cache_Helper::get_cache_prefix($this->cache_group) . GetPaid_Cache_Helper::get_cache_prefix('object_' . $this->get_id()) . 'object_meta_' . $this->get_id();
684
+			wp_cache_delete($cache_key, $this->cache_group);
685 685
 		}
686 686
 	}
687 687
 
@@ -691,8 +691,8 @@  discard block
 block discarded – undo
691 691
 	 * @since 1.0.19
692 692
 	 * @param int $id ID.
693 693
 	 */
694
-	public function set_id( $id ) {
695
-		$this->id = absint( $id );
694
+	public function set_id($id) {
695
+		$this->id = absint($id);
696 696
 	}
697 697
 
698 698
 	/**
@@ -702,10 +702,10 @@  discard block
 block discarded – undo
702 702
 	 * @param string $status New status.
703 703
 	 * @return array details of change.
704 704
 	 */
705
-	public function set_status( $status ) {
705
+	public function set_status($status) {
706 706
         $old_status = $this->get_status();
707 707
 
708
-		$this->set_prop( 'status', $status );
708
+		$this->set_prop('status', $status);
709 709
 
710 710
 		return array(
711 711
 			'from' => $old_status,
@@ -721,7 +721,7 @@  discard block
 block discarded – undo
721 721
 	public function set_defaults() {
722 722
 		$this->data    = $this->default_data;
723 723
 		$this->changes = array();
724
-		$this->set_object_read( false );
724
+		$this->set_object_read(false);
725 725
 	}
726 726
 
727 727
 	/**
@@ -730,7 +730,7 @@  discard block
 block discarded – undo
730 730
 	 * @since 1.0.19
731 731
 	 * @param boolean $read Should read?.
732 732
 	 */
733
-	public function set_object_read( $read = true ) {
733
+	public function set_object_read($read = true) {
734 734
 		$this->object_read = (bool) $read;
735 735
 	}
736 736
 
@@ -755,33 +755,33 @@  discard block
 block discarded – undo
755 755
 	 *
756 756
 	 * @return bool|WP_Error
757 757
 	 */
758
-	public function set_props( $props, $context = 'set' ) {
758
+	public function set_props($props, $context = 'set') {
759 759
 		$errors = false;
760 760
 
761
-		$props = wp_unslash( $props );
762
-		foreach ( $props as $prop => $value ) {
761
+		$props = wp_unslash($props);
762
+		foreach ($props as $prop => $value) {
763 763
 			try {
764 764
 				/**
765 765
 				 * Checks if the prop being set is allowed, and the value is not null.
766 766
 				 */
767
-				if ( is_null( $value ) || in_array( $prop, array( 'prop', 'date_prop', 'meta_data' ), true ) ) {
767
+				if (is_null($value) || in_array($prop, array('prop', 'date_prop', 'meta_data'), true)) {
768 768
 					continue;
769 769
 				}
770 770
 				$setter = "set_$prop";
771 771
 
772
-				if ( is_callable( array( $this, $setter ) ) ) {
773
-					$this->{$setter}( $value );
772
+				if (is_callable(array($this, $setter))) {
773
+					$this->{$setter}($value);
774 774
 				}
775
-			} catch ( Exception $e ) {
776
-				if ( ! $errors ) {
775
+			} catch (Exception $e) {
776
+				if (!$errors) {
777 777
 					$errors = new WP_Error();
778 778
 				}
779
-				$errors->add( $e->getCode(), $e->getMessage() );
779
+				$errors->add($e->getCode(), $e->getMessage());
780 780
 				$this->last_error = $e->getMessage();
781 781
 			}
782 782
 		}
783 783
 
784
-		return $errors && count( $errors->get_error_codes() ) ? $errors : true;
784
+		return $errors && count($errors->get_error_codes()) ? $errors : true;
785 785
 	}
786 786
 
787 787
 	/**
@@ -794,14 +794,14 @@  discard block
 block discarded – undo
794 794
 	 * @param string $prop Name of prop to set.
795 795
 	 * @param mixed  $value Value of the prop.
796 796
 	 */
797
-	protected function set_prop( $prop, $value ) {
798
-		if ( array_key_exists( $prop, $this->data ) ) {
799
-			if ( true === $this->object_read ) {
800
-				if ( $value !== $this->data[ $prop ] || array_key_exists( $prop, $this->changes ) ) {
801
-					$this->changes[ $prop ] = $value;
797
+	protected function set_prop($prop, $value) {
798
+		if (array_key_exists($prop, $this->data)) {
799
+			if (true === $this->object_read) {
800
+				if ($value !== $this->data[$prop] || array_key_exists($prop, $this->changes)) {
801
+					$this->changes[$prop] = $value;
802 802
 				}
803 803
 			} else {
804
-				$this->data[ $prop ] = $value;
804
+				$this->data[$prop] = $value;
805 805
 			}
806 806
 		}
807 807
 	}
@@ -822,7 +822,7 @@  discard block
 block discarded – undo
822 822
 	 * @since 1.0.19
823 823
 	 */
824 824
 	public function apply_changes() {
825
-		$this->data    = array_replace( $this->data, $this->changes );
825
+		$this->data    = array_replace($this->data, $this->changes);
826 826
 		$this->changes = array();
827 827
 	}
828 828
 
@@ -847,14 +847,14 @@  discard block
 block discarded – undo
847 847
 	 * @param  string $context What the value is for. Valid values are view and edit.
848 848
 	 * @return mixed
849 849
 	 */
850
-	protected function get_prop( $prop, $context = 'view' ) {
850
+	protected function get_prop($prop, $context = 'view') {
851 851
 		$value = null;
852 852
 
853
-		if ( array_key_exists( $prop, $this->data ) ) {
854
-			$value = array_key_exists( $prop, $this->changes ) ? $this->changes[ $prop ] : $this->data[ $prop ];
853
+		if (array_key_exists($prop, $this->data)) {
854
+			$value = array_key_exists($prop, $this->changes) ? $this->changes[$prop] : $this->data[$prop];
855 855
 
856
-			if ( 'view' === $context ) {
857
-				$value = apply_filters( $this->get_hook_prefix() . $prop, $value, $this );
856
+			if ('view' === $context) {
857
+				$value = apply_filters($this->get_hook_prefix() . $prop, $value, $this);
858 858
 			}
859 859
 		}
860 860
 
@@ -868,13 +868,13 @@  discard block
 block discarded – undo
868 868
 	 * @param string         $prop Name of prop to set.
869 869
 	 * @param string|integer $value Value of the prop.
870 870
 	 */
871
-	protected function set_date_prop( $prop, $value ) {
871
+	protected function set_date_prop($prop, $value) {
872 872
 
873
-		if ( empty( $value ) ) {
874
-			$this->set_prop( $prop, null );
873
+		if (empty($value)) {
874
+			$this->set_prop($prop, null);
875 875
 			return;
876 876
 		}
877
-		$this->set_prop( $prop, $value );
877
+		$this->set_prop($prop, $value);
878 878
 
879 879
 	}
880 880
 
@@ -885,7 +885,7 @@  discard block
 block discarded – undo
885 885
 	 * @param string $code             Error code.
886 886
 	 * @param string $message          Error message.
887 887
 	 */
888
-	protected function error( $code, $message ) {
888
+	protected function error($code, $message) {
889 889
 		$this->last_error = $message;
890 890
 	}
891 891
 
@@ -897,7 +897,7 @@  discard block
 block discarded – undo
897 897
 	 */
898 898
 	public function exists() {
899 899
 		$id = $this->get_id();
900
-		return ! empty( $id );
900
+		return !empty($id);
901 901
 	}
902 902
 
903 903
 }
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-subscription-data-store.php 2 patches
Indentation   +182 added lines, -182 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 if ( ! defined( 'ABSPATH' ) ) {
8
-	exit;
8
+    exit;
9 9
 }
10 10
 
11 11
 /**
@@ -15,198 +15,198 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class GetPaid_Subscription_Data_Store {
17 17
 
18
-	/**
19
-	 * A map of database fields to data types.
20
-	 *
21
-	 * @since 1.0.19
22
-	 * @var array
23
-	 */
24
-	protected $database_fields_to_data_type = array(
25
-		'id'                => '%d',
26
-		'customer_id'       => '%d',
27
-		'frequency'         => '%d',
28
-		'period'            => '%s',
29
-		'initial_amount'    => '%s',
30
-		'recurring_amount'  => '%s',
31
-		'bill_times'        => '%d',
32
-		'transaction_id'    => '%s',
33
-		'parent_payment_id' => '%d',
34
-		'product_id'        => '%d',
35
-		'created'           => '%s',
36
-		'expiration'        => '%s',
37
-		'trial_period'      => '%s',
38
-		'status'            => '%s',
39
-		'profile_id'        => '%s',
40
-	);
41
-
42
-	/*
18
+    /**
19
+     * A map of database fields to data types.
20
+     *
21
+     * @since 1.0.19
22
+     * @var array
23
+     */
24
+    protected $database_fields_to_data_type = array(
25
+        'id'                => '%d',
26
+        'customer_id'       => '%d',
27
+        'frequency'         => '%d',
28
+        'period'            => '%s',
29
+        'initial_amount'    => '%s',
30
+        'recurring_amount'  => '%s',
31
+        'bill_times'        => '%d',
32
+        'transaction_id'    => '%s',
33
+        'parent_payment_id' => '%d',
34
+        'product_id'        => '%d',
35
+        'created'           => '%s',
36
+        'expiration'        => '%s',
37
+        'trial_period'      => '%s',
38
+        'status'            => '%s',
39
+        'profile_id'        => '%s',
40
+    );
41
+
42
+    /*
43 43
 	|--------------------------------------------------------------------------
44 44
 	| CRUD Methods
45 45
 	|--------------------------------------------------------------------------
46 46
 	*/
47 47
 
48
-	/**
49
-	 * Method to create a new subscription in the database.
50
-	 *
51
-	 * @param WPInv_Subscription $subscription Subscription object.
52
-	 */
53
-	public function create( &$subscription ) {
54
-		global $wpdb;
55
-
56
-		$values  = array();
57
-		$formats = array();
58
-
59
-		$fields = $this->database_fields_to_data_type;
60
-		unset( $fields['id'] );
61
-
62
-		foreach ( $fields as $key => $format ) {
63
-			$method       = "get_$key";
64
-			$values[ $key ] = $subscription->$method( 'edit' );
65
-			$formats[]    = $format;
66
-		}
67
-
68
-		$result = $wpdb->insert( $wpdb->prefix . 'wpinv_subscriptions', $values, $formats );
69
-
70
-		if ( $result ) {
71
-			$subscription->set_id( $wpdb->insert_id );
72
-			$subscription->apply_changes();
73
-			$subscription->clear_cache();
74
-			update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() );
75
-			do_action( 'getpaid_new_subscription', $subscription );
76
-			return true;
77
-		}
78
-
79
-		return false;
80
-	}
81
-
82
-	/**
83
-	 * Method to read a subscription from the database.
84
-	 *
85
-	 * @param WPInv_Subscription $subscription Subscription object.
86
-	 *
87
-	 */
88
-	public function read( &$subscription ) {
89
-		global $wpdb;
90
-
91
-		$subscription->set_defaults();
92
-
93
-		if ( ! $subscription->get_id() ) {
94
-			$subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' );
95
-			$subscription->set_id( 0 );
96
-			return false;
97
-		}
98
-
99
-		// Maybe retrieve from the cache.
100
-		$raw_subscription = wp_cache_get( $subscription->get_id(), 'getpaid_subscriptions' );
101
-
102
-		// If not found, retrieve from the db.
103
-		if ( false === $raw_subscription ) {
104
-
105
-			$raw_subscription = $wpdb->get_row(
106
-				$wpdb->prepare(
107
-					"SELECT * FROM {$wpdb->prefix}wpinv_subscriptions WHERE id = %d",
108
-					$subscription->get_id()
109
-				)
110
-			);
111
-
112
-			// Update the cache with our data
113
-			wp_cache_set( $subscription->get_id(), $raw_subscription, 'getpaid_subscriptions' );
114
-
115
-		}
116
-
117
-		if ( ! $raw_subscription ) {
118
-			$subscription->set_id( 0 );
119
-			$subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' );
120
-			return false;
121
-		}
122
-
123
-		foreach ( array_keys( $this->database_fields_to_data_type ) as $key ) {
124
-			$method     = "set_$key";
125
-			$subscription->$method( $raw_subscription->$key );
126
-		}
127
-
128
-		$subscription->set_object_read( true );
129
-		do_action( 'getpaid_read_subscription', $subscription );
130
-
131
-	}
132
-
133
-	/**
134
-	 * Method to update a subscription in the database.
135
-	 *
136
-	 * @param WPInv_Subscription $subscription Subscription object.
137
-	 */
138
-	public function update( &$subscription ) {
139
-		global $wpdb;
140
-
141
-		$changes = $subscription->get_changes();
142
-		$values  = array();
143
-		$formats = array();
144
-
145
-		foreach ( $this->database_fields_to_data_type as $key => $format ) {
146
-			if ( array_key_exists( $key, $changes ) ) {
147
-				$method       = "get_$key";
148
-				$values[ $key ] = $subscription->$method( 'edit' );
149
-				$formats[]    = $format;
150
-			}
151
-		}
152
-
153
-		if ( empty( $values ) ) {
154
-			return;
155
-		}
156
-
157
-		$wpdb->update(
158
-			$wpdb->prefix . 'wpinv_subscriptions',
159
-			$values,
160
-			array(
161
-				'id' => $subscription->get_id(),
162
-			),
163
-			$formats,
164
-			'%d'
165
-		);
166
-
167
-		// Apply the changes.
168
-		$subscription->apply_changes();
169
-
170
-		// Delete cache.
171
-		$subscription->clear_cache();
172
-
173
-		update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id() );
174
-		update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() );
175
-
176
-		// Fire a hook.
177
-		do_action( 'getpaid_update_subscription', $subscription );
178
-
179
-	}
180
-
181
-	/**
182
-	 * Method to delete a subscription from the database.
183
-	 *
184
-	 * @param WPInv_Subscription $subscription
185
-	 */
186
-	public function delete( &$subscription ) {
187
-		global $wpdb;
188
-
189
-		$wpdb->query(
190
-			$wpdb->prepare(
191
-				"DELETE FROM {$wpdb->prefix}wpinv_subscriptions
48
+    /**
49
+     * Method to create a new subscription in the database.
50
+     *
51
+     * @param WPInv_Subscription $subscription Subscription object.
52
+     */
53
+    public function create( &$subscription ) {
54
+        global $wpdb;
55
+
56
+        $values  = array();
57
+        $formats = array();
58
+
59
+        $fields = $this->database_fields_to_data_type;
60
+        unset( $fields['id'] );
61
+
62
+        foreach ( $fields as $key => $format ) {
63
+            $method       = "get_$key";
64
+            $values[ $key ] = $subscription->$method( 'edit' );
65
+            $formats[]    = $format;
66
+        }
67
+
68
+        $result = $wpdb->insert( $wpdb->prefix . 'wpinv_subscriptions', $values, $formats );
69
+
70
+        if ( $result ) {
71
+            $subscription->set_id( $wpdb->insert_id );
72
+            $subscription->apply_changes();
73
+            $subscription->clear_cache();
74
+            update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() );
75
+            do_action( 'getpaid_new_subscription', $subscription );
76
+            return true;
77
+        }
78
+
79
+        return false;
80
+    }
81
+
82
+    /**
83
+     * Method to read a subscription from the database.
84
+     *
85
+     * @param WPInv_Subscription $subscription Subscription object.
86
+     *
87
+     */
88
+    public function read( &$subscription ) {
89
+        global $wpdb;
90
+
91
+        $subscription->set_defaults();
92
+
93
+        if ( ! $subscription->get_id() ) {
94
+            $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' );
95
+            $subscription->set_id( 0 );
96
+            return false;
97
+        }
98
+
99
+        // Maybe retrieve from the cache.
100
+        $raw_subscription = wp_cache_get( $subscription->get_id(), 'getpaid_subscriptions' );
101
+
102
+        // If not found, retrieve from the db.
103
+        if ( false === $raw_subscription ) {
104
+
105
+            $raw_subscription = $wpdb->get_row(
106
+                $wpdb->prepare(
107
+                    "SELECT * FROM {$wpdb->prefix}wpinv_subscriptions WHERE id = %d",
108
+                    $subscription->get_id()
109
+                )
110
+            );
111
+
112
+            // Update the cache with our data
113
+            wp_cache_set( $subscription->get_id(), $raw_subscription, 'getpaid_subscriptions' );
114
+
115
+        }
116
+
117
+        if ( ! $raw_subscription ) {
118
+            $subscription->set_id( 0 );
119
+            $subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' );
120
+            return false;
121
+        }
122
+
123
+        foreach ( array_keys( $this->database_fields_to_data_type ) as $key ) {
124
+            $method     = "set_$key";
125
+            $subscription->$method( $raw_subscription->$key );
126
+        }
127
+
128
+        $subscription->set_object_read( true );
129
+        do_action( 'getpaid_read_subscription', $subscription );
130
+
131
+    }
132
+
133
+    /**
134
+     * Method to update a subscription in the database.
135
+     *
136
+     * @param WPInv_Subscription $subscription Subscription object.
137
+     */
138
+    public function update( &$subscription ) {
139
+        global $wpdb;
140
+
141
+        $changes = $subscription->get_changes();
142
+        $values  = array();
143
+        $formats = array();
144
+
145
+        foreach ( $this->database_fields_to_data_type as $key => $format ) {
146
+            if ( array_key_exists( $key, $changes ) ) {
147
+                $method       = "get_$key";
148
+                $values[ $key ] = $subscription->$method( 'edit' );
149
+                $formats[]    = $format;
150
+            }
151
+        }
152
+
153
+        if ( empty( $values ) ) {
154
+            return;
155
+        }
156
+
157
+        $wpdb->update(
158
+            $wpdb->prefix . 'wpinv_subscriptions',
159
+            $values,
160
+            array(
161
+                'id' => $subscription->get_id(),
162
+            ),
163
+            $formats,
164
+            '%d'
165
+        );
166
+
167
+        // Apply the changes.
168
+        $subscription->apply_changes();
169
+
170
+        // Delete cache.
171
+        $subscription->clear_cache();
172
+
173
+        update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id() );
174
+        update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() );
175
+
176
+        // Fire a hook.
177
+        do_action( 'getpaid_update_subscription', $subscription );
178
+
179
+    }
180
+
181
+    /**
182
+     * Method to delete a subscription from the database.
183
+     *
184
+     * @param WPInv_Subscription $subscription
185
+     */
186
+    public function delete( &$subscription ) {
187
+        global $wpdb;
188
+
189
+        $wpdb->query(
190
+            $wpdb->prepare(
191
+                "DELETE FROM {$wpdb->prefix}wpinv_subscriptions
192 192
 				WHERE id = %d",
193
-				$subscription->get_id()
194
-			)
195
-		);
193
+                $subscription->get_id()
194
+            )
195
+        );
196 196
 
197
-		delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id' );
198
-		delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id' );
197
+        delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id' );
198
+        delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id' );
199 199
 
200
-		// Delete cache.
201
-		$subscription->clear_cache();
200
+        // Delete cache.
201
+        $subscription->clear_cache();
202 202
 
203
-		// Fire a hook.
204
-		do_action( 'getpaid_delete_subscription', $subscription );
203
+        // Fire a hook.
204
+        do_action( 'getpaid_delete_subscription', $subscription );
205 205
 
206
-		$subscription->set_id( 0 );
207
-	}
206
+        $subscription->set_id( 0 );
207
+    }
208 208
 
209
-	/*
209
+    /*
210 210
 	|--------------------------------------------------------------------------
211 211
 	| Additional Methods
212 212
 	|--------------------------------------------------------------------------
Please login to merge, or discard this patch.
Spacing   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  * GetPaid_Subscription_Data_Store class file.
5 5
  *
6 6
  */
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
 	exit;
9 9
 }
10 10
 
@@ -50,29 +50,29 @@  discard block
 block discarded – undo
50 50
 	 *
51 51
 	 * @param WPInv_Subscription $subscription Subscription object.
52 52
 	 */
53
-	public function create( &$subscription ) {
53
+	public function create(&$subscription) {
54 54
 		global $wpdb;
55 55
 
56 56
 		$values  = array();
57 57
 		$formats = array();
58 58
 
59 59
 		$fields = $this->database_fields_to_data_type;
60
-		unset( $fields['id'] );
60
+		unset($fields['id']);
61 61
 
62
-		foreach ( $fields as $key => $format ) {
62
+		foreach ($fields as $key => $format) {
63 63
 			$method       = "get_$key";
64
-			$values[ $key ] = $subscription->$method( 'edit' );
64
+			$values[$key] = $subscription->$method('edit');
65 65
 			$formats[]    = $format;
66 66
 		}
67 67
 
68
-		$result = $wpdb->insert( $wpdb->prefix . 'wpinv_subscriptions', $values, $formats );
68
+		$result = $wpdb->insert($wpdb->prefix . 'wpinv_subscriptions', $values, $formats);
69 69
 
70
-		if ( $result ) {
71
-			$subscription->set_id( $wpdb->insert_id );
70
+		if ($result) {
71
+			$subscription->set_id($wpdb->insert_id);
72 72
 			$subscription->apply_changes();
73 73
 			$subscription->clear_cache();
74
-			update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() );
75
-			do_action( 'getpaid_new_subscription', $subscription );
74
+			update_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id());
75
+			do_action('getpaid_new_subscription', $subscription);
76 76
 			return true;
77 77
 		}
78 78
 
@@ -85,22 +85,22 @@  discard block
 block discarded – undo
85 85
 	 * @param WPInv_Subscription $subscription Subscription object.
86 86
 	 *
87 87
 	 */
88
-	public function read( &$subscription ) {
88
+	public function read(&$subscription) {
89 89
 		global $wpdb;
90 90
 
91 91
 		$subscription->set_defaults();
92 92
 
93
-		if ( ! $subscription->get_id() ) {
94
-			$subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' );
95
-			$subscription->set_id( 0 );
93
+		if (!$subscription->get_id()) {
94
+			$subscription->last_error = __('Invalid subscription ID.', 'invoicing');
95
+			$subscription->set_id(0);
96 96
 			return false;
97 97
 		}
98 98
 
99 99
 		// Maybe retrieve from the cache.
100
-		$raw_subscription = wp_cache_get( $subscription->get_id(), 'getpaid_subscriptions' );
100
+		$raw_subscription = wp_cache_get($subscription->get_id(), 'getpaid_subscriptions');
101 101
 
102 102
 		// If not found, retrieve from the db.
103
-		if ( false === $raw_subscription ) {
103
+		if (false === $raw_subscription) {
104 104
 
105 105
 			$raw_subscription = $wpdb->get_row(
106 106
 				$wpdb->prepare(
@@ -110,23 +110,23 @@  discard block
 block discarded – undo
110 110
 			);
111 111
 
112 112
 			// Update the cache with our data
113
-			wp_cache_set( $subscription->get_id(), $raw_subscription, 'getpaid_subscriptions' );
113
+			wp_cache_set($subscription->get_id(), $raw_subscription, 'getpaid_subscriptions');
114 114
 
115 115
 		}
116 116
 
117
-		if ( ! $raw_subscription ) {
118
-			$subscription->set_id( 0 );
119
-			$subscription->last_error = __( 'Invalid subscription ID.', 'invoicing' );
117
+		if (!$raw_subscription) {
118
+			$subscription->set_id(0);
119
+			$subscription->last_error = __('Invalid subscription ID.', 'invoicing');
120 120
 			return false;
121 121
 		}
122 122
 
123
-		foreach ( array_keys( $this->database_fields_to_data_type ) as $key ) {
124
-			$method     = "set_$key";
125
-			$subscription->$method( $raw_subscription->$key );
123
+		foreach (array_keys($this->database_fields_to_data_type) as $key) {
124
+			$method = "set_$key";
125
+			$subscription->$method($raw_subscription->$key);
126 126
 		}
127 127
 
128
-		$subscription->set_object_read( true );
129
-		do_action( 'getpaid_read_subscription', $subscription );
128
+		$subscription->set_object_read(true);
129
+		do_action('getpaid_read_subscription', $subscription);
130 130
 
131 131
 	}
132 132
 
@@ -135,22 +135,22 @@  discard block
 block discarded – undo
135 135
 	 *
136 136
 	 * @param WPInv_Subscription $subscription Subscription object.
137 137
 	 */
138
-	public function update( &$subscription ) {
138
+	public function update(&$subscription) {
139 139
 		global $wpdb;
140 140
 
141 141
 		$changes = $subscription->get_changes();
142 142
 		$values  = array();
143 143
 		$formats = array();
144 144
 
145
-		foreach ( $this->database_fields_to_data_type as $key => $format ) {
146
-			if ( array_key_exists( $key, $changes ) ) {
145
+		foreach ($this->database_fields_to_data_type as $key => $format) {
146
+			if (array_key_exists($key, $changes)) {
147 147
 				$method       = "get_$key";
148
-				$values[ $key ] = $subscription->$method( 'edit' );
148
+				$values[$key] = $subscription->$method('edit');
149 149
 				$formats[]    = $format;
150 150
 			}
151 151
 		}
152 152
 
153
-		if ( empty( $values ) ) {
153
+		if (empty($values)) {
154 154
 			return;
155 155
 		}
156 156
 
@@ -170,11 +170,11 @@  discard block
 block discarded – undo
170 170
 		// Delete cache.
171 171
 		$subscription->clear_cache();
172 172
 
173
-		update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id() );
174
-		update_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id() );
173
+		update_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id', $subscription->get_profile_id());
174
+		update_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscription_id', $subscription->get_id());
175 175
 
176 176
 		// Fire a hook.
177
-		do_action( 'getpaid_update_subscription', $subscription );
177
+		do_action('getpaid_update_subscription', $subscription);
178 178
 
179 179
 	}
180 180
 
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
 	 *
184 184
 	 * @param WPInv_Subscription $subscription
185 185
 	 */
186
-	public function delete( &$subscription ) {
186
+	public function delete(&$subscription) {
187 187
 		global $wpdb;
188 188
 
189 189
 		$wpdb->query(
@@ -194,16 +194,16 @@  discard block
 block discarded – undo
194 194
 			)
195 195
 		);
196 196
 
197
-		delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id' );
198
-		delete_post_meta( $subscription->get_parent_invoice_id(), '_wpinv_subscription_id' );
197
+		delete_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscr_profile_id');
198
+		delete_post_meta($subscription->get_parent_invoice_id(), '_wpinv_subscription_id');
199 199
 
200 200
 		// Delete cache.
201 201
 		$subscription->clear_cache();
202 202
 
203 203
 		// Fire a hook.
204
-		do_action( 'getpaid_delete_subscription', $subscription );
204
+		do_action('getpaid_delete_subscription', $subscription);
205 205
 
206
-		$subscription->set_id( 0 );
206
+		$subscription->set_id(0);
207 207
 	}
208 208
 
209 209
 	/*
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-discount-data-store.php 2 patches
Indentation   +188 added lines, -188 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 if ( ! defined( 'ABSPATH' ) ) {
8
-	exit;
8
+    exit;
9 9
 }
10 10
 
11 11
 /**
@@ -15,198 +15,198 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class GetPaid_Discount_Data_Store extends GetPaid_Data_Store_WP {
17 17
 
18
-	/**
19
-	 * Data stored in meta keys, but not considered "meta" for a discount.
20
-	 *
21
-	 * @since 1.0.19
22
-	 * @var array
23
-	 */
24
-	protected $internal_meta_keys = array(
25
-		'_wpi_discount_code',
26
-		'_wpi_discount_amount',
27
-		'_wpi_discount_start',
28
-		'_wpi_discount_expiration',
29
-		'_wpi_discount_type',
30
-		'_wpi_discount_uses',
31
-		'_wpi_discount_is_single_use',
32
-		'_wpi_discount_items',
33
-		'_wpi_discount_excluded_items',
34
-		'_wpi_discount_required_items',
35
-		'_wpi_discount_max_uses',
36
-		'_wpi_discount_is_recurring',
37
-		'_wpi_discount_min_total',
38
-		'_wpi_discount_max_total',
39
-	);
40
-
41
-	/**
42
-	 * A map of meta keys to data props.
43
-	 *
44
-	 * @since 1.0.19
45
-	 *
46
-	 * @var array
47
-	 */
48
-	protected $meta_key_to_props = array(
49
-		'_wpi_discount_code'           => 'code',
50
-		'_wpi_discount_amount'         => 'amount',
51
-		'_wpi_discount_start'          => 'start',
52
-		'_wpi_discount_expiration'     => 'expiration',
53
-		'_wpi_discount_type'           => 'type',
54
-		'_wpi_discount_uses'           => 'uses',
55
-		'_wpi_discount_is_single_use'  => 'is_single_use',
56
-		'_wpi_discount_items'          => 'items',
57
-		'_wpi_discount_excluded_items' => 'excluded_items',
58
-		'_wpi_discount_required_items' => 'required_items',
59
-		'_wpi_discount_max_uses'       => 'max_uses',
60
-		'_wpi_discount_is_recurring'   => 'is_recurring',
61
-		'_wpi_discount_min_total'      => 'min_total',
62
-		'_wpi_discount_max_total'      => 'max_total',
63
-	);
64
-
65
-	/*
18
+    /**
19
+     * Data stored in meta keys, but not considered "meta" for a discount.
20
+     *
21
+     * @since 1.0.19
22
+     * @var array
23
+     */
24
+    protected $internal_meta_keys = array(
25
+        '_wpi_discount_code',
26
+        '_wpi_discount_amount',
27
+        '_wpi_discount_start',
28
+        '_wpi_discount_expiration',
29
+        '_wpi_discount_type',
30
+        '_wpi_discount_uses',
31
+        '_wpi_discount_is_single_use',
32
+        '_wpi_discount_items',
33
+        '_wpi_discount_excluded_items',
34
+        '_wpi_discount_required_items',
35
+        '_wpi_discount_max_uses',
36
+        '_wpi_discount_is_recurring',
37
+        '_wpi_discount_min_total',
38
+        '_wpi_discount_max_total',
39
+    );
40
+
41
+    /**
42
+     * A map of meta keys to data props.
43
+     *
44
+     * @since 1.0.19
45
+     *
46
+     * @var array
47
+     */
48
+    protected $meta_key_to_props = array(
49
+        '_wpi_discount_code'           => 'code',
50
+        '_wpi_discount_amount'         => 'amount',
51
+        '_wpi_discount_start'          => 'start',
52
+        '_wpi_discount_expiration'     => 'expiration',
53
+        '_wpi_discount_type'           => 'type',
54
+        '_wpi_discount_uses'           => 'uses',
55
+        '_wpi_discount_is_single_use'  => 'is_single_use',
56
+        '_wpi_discount_items'          => 'items',
57
+        '_wpi_discount_excluded_items' => 'excluded_items',
58
+        '_wpi_discount_required_items' => 'required_items',
59
+        '_wpi_discount_max_uses'       => 'max_uses',
60
+        '_wpi_discount_is_recurring'   => 'is_recurring',
61
+        '_wpi_discount_min_total'      => 'min_total',
62
+        '_wpi_discount_max_total'      => 'max_total',
63
+    );
64
+
65
+    /*
66 66
 	|--------------------------------------------------------------------------
67 67
 	| CRUD Methods
68 68
 	|--------------------------------------------------------------------------
69 69
 	*/
70 70
 
71
-	/**
72
-	 * Method to create a new discount in the database.
73
-	 *
74
-	 * @param WPInv_Discount $discount Discount object.
75
-	 */
76
-	public function create( &$discount ) {
77
-		$discount->set_version( WPINV_VERSION );
78
-		$discount->set_date_created( current_time( 'mysql' ) );
79
-
80
-		// Create a new post.
81
-		$id = wp_insert_post(
82
-			apply_filters(
83
-				'getpaid_new_discount_data',
84
-				array(
85
-					'post_date'    => $discount->get_date_created( 'edit' ),
86
-					'post_type'    => 'wpi_discount',
87
-					'post_status'  => $this->get_post_status( $discount ),
88
-					'ping_status'  => 'closed',
89
-					'post_author'  => $discount->get_author( 'edit' ),
90
-					'post_title'   => $discount->get_name( 'edit' ),
91
-					'post_excerpt' => $discount->get_description( 'edit' ),
92
-				)
93
-			),
94
-			true
95
-		);
96
-
97
-		if ( $id && ! is_wp_error( $id ) ) {
98
-			$discount->set_id( $id );
99
-			$this->update_post_meta( $discount );
100
-			$discount->save_meta_data();
101
-			$discount->apply_changes();
102
-			$this->clear_caches( $discount );
103
-			do_action( 'getpaid_new_discount', $discount );
104
-			return true;
105
-		}
106
-
107
-		if ( is_wp_error( $id ) ) {
108
-			$discount->last_error = $id->get_error_message();
109
-		}
110
-
111
-		return false;
112
-	}
113
-
114
-	/**
115
-	 * Method to read a discount from the database.
116
-	 *
117
-	 * @param WPInv_Discount $discount Discount object.
118
-	 *
119
-	 */
120
-	public function read( &$discount ) {
121
-
122
-		$discount->set_defaults();
123
-		$discount_object = get_post( $discount->get_id() );
124
-
125
-		if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) {
126
-			$discount->last_error = __( 'Invalid discount.', 'invoicing' );
127
-			$discount->set_id( 0 );
128
-			return false;
129
-		}
130
-
131
-		$discount->set_props(
132
-			array(
133
-				'date_created'  => 0 < $discount_object->post_date ? $discount_object->post_date : null,
134
-				'date_modified' => 0 < $discount_object->post_modified ? $discount_object->post_modified : null,
135
-				'status'        => $discount_object->post_status,
136
-				'name'          => $discount_object->post_title,
137
-				'author'        => $discount_object->post_author,
138
-				'description'   => $discount_object->post_excerpt,
139
-			)
140
-		);
141
-
142
-		$this->read_object_data( $discount, $discount_object );
143
-		$discount->read_meta_data();
144
-		$discount->set_object_read( true );
145
-		do_action( 'getpaid_read_discount', $discount );
146
-
147
-	}
148
-
149
-	/**
150
-	 * Method to update a discount in the database.
151
-	 *
152
-	 * @param WPInv_Discount $discount Discount object.
153
-	 */
154
-	public function update( &$discount ) {
155
-		$discount->save_meta_data();
156
-		$discount->set_version( WPINV_VERSION );
157
-
158
-		if ( null === $discount->get_date_created( 'edit' ) ) {
159
-			$discount->set_date_created( current_time( 'mysql' ) );
160
-		}
161
-
162
-		// Grab the current status so we can compare.
163
-		$previous_status = get_post_status( $discount->get_id() );
164
-
165
-		$changes = $discount->get_changes();
166
-
167
-		// Only update the post when the post data changes.
168
-		if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) {
169
-			$post_data = array(
170
-				'post_date'     => $discount->get_date_created( 'edit' ),
171
-				'post_status'   => $discount->get_status( 'edit' ),
172
-				'post_title'    => $discount->get_name( 'edit' ),
173
-				'post_author'   => $discount->get_author( 'edit' ),
174
-				'post_modified' => $discount->get_date_modified( 'edit' ),
175
-				'post_excerpt'  => $discount->get_description( 'edit' ),
176
-			);
177
-
178
-			/**
179
-			 * When updating this object, to prevent infinite loops, use $wpdb
180
-			 * to update data, since wp_update_post spawns more calls to the
181
-			 * save_post action.
182
-			 *
183
-			 * This ensures hooks are fired by either WP itself (admin screen save),
184
-			 * or an update purely from CRUD.
185
-			 */
186
-			if ( doing_action( 'save_post' ) ) {
187
-				$GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) );
188
-				clean_post_cache( $discount->get_id() );
189
-			} else {
190
-				wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) );
191
-			}
192
-			$discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
193
-		}
194
-		$this->update_post_meta( $discount );
195
-		$discount->apply_changes();
196
-		$this->clear_caches( $discount );
197
-
198
-		// Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
199
-		$new_status = $discount->get_status( 'edit' );
200
-
201
-		if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
202
-			do_action( 'getpaid_new_discount', $discount );
203
-		} else {
204
-			do_action( 'getpaid_update_discount', $discount );
205
-		}
206
-
207
-	}
208
-
209
-	/*
71
+    /**
72
+     * Method to create a new discount in the database.
73
+     *
74
+     * @param WPInv_Discount $discount Discount object.
75
+     */
76
+    public function create( &$discount ) {
77
+        $discount->set_version( WPINV_VERSION );
78
+        $discount->set_date_created( current_time( 'mysql' ) );
79
+
80
+        // Create a new post.
81
+        $id = wp_insert_post(
82
+            apply_filters(
83
+                'getpaid_new_discount_data',
84
+                array(
85
+                    'post_date'    => $discount->get_date_created( 'edit' ),
86
+                    'post_type'    => 'wpi_discount',
87
+                    'post_status'  => $this->get_post_status( $discount ),
88
+                    'ping_status'  => 'closed',
89
+                    'post_author'  => $discount->get_author( 'edit' ),
90
+                    'post_title'   => $discount->get_name( 'edit' ),
91
+                    'post_excerpt' => $discount->get_description( 'edit' ),
92
+                )
93
+            ),
94
+            true
95
+        );
96
+
97
+        if ( $id && ! is_wp_error( $id ) ) {
98
+            $discount->set_id( $id );
99
+            $this->update_post_meta( $discount );
100
+            $discount->save_meta_data();
101
+            $discount->apply_changes();
102
+            $this->clear_caches( $discount );
103
+            do_action( 'getpaid_new_discount', $discount );
104
+            return true;
105
+        }
106
+
107
+        if ( is_wp_error( $id ) ) {
108
+            $discount->last_error = $id->get_error_message();
109
+        }
110
+
111
+        return false;
112
+    }
113
+
114
+    /**
115
+     * Method to read a discount from the database.
116
+     *
117
+     * @param WPInv_Discount $discount Discount object.
118
+     *
119
+     */
120
+    public function read( &$discount ) {
121
+
122
+        $discount->set_defaults();
123
+        $discount_object = get_post( $discount->get_id() );
124
+
125
+        if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) {
126
+            $discount->last_error = __( 'Invalid discount.', 'invoicing' );
127
+            $discount->set_id( 0 );
128
+            return false;
129
+        }
130
+
131
+        $discount->set_props(
132
+            array(
133
+                'date_created'  => 0 < $discount_object->post_date ? $discount_object->post_date : null,
134
+                'date_modified' => 0 < $discount_object->post_modified ? $discount_object->post_modified : null,
135
+                'status'        => $discount_object->post_status,
136
+                'name'          => $discount_object->post_title,
137
+                'author'        => $discount_object->post_author,
138
+                'description'   => $discount_object->post_excerpt,
139
+            )
140
+        );
141
+
142
+        $this->read_object_data( $discount, $discount_object );
143
+        $discount->read_meta_data();
144
+        $discount->set_object_read( true );
145
+        do_action( 'getpaid_read_discount', $discount );
146
+
147
+    }
148
+
149
+    /**
150
+     * Method to update a discount in the database.
151
+     *
152
+     * @param WPInv_Discount $discount Discount object.
153
+     */
154
+    public function update( &$discount ) {
155
+        $discount->save_meta_data();
156
+        $discount->set_version( WPINV_VERSION );
157
+
158
+        if ( null === $discount->get_date_created( 'edit' ) ) {
159
+            $discount->set_date_created( current_time( 'mysql' ) );
160
+        }
161
+
162
+        // Grab the current status so we can compare.
163
+        $previous_status = get_post_status( $discount->get_id() );
164
+
165
+        $changes = $discount->get_changes();
166
+
167
+        // Only update the post when the post data changes.
168
+        if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) {
169
+            $post_data = array(
170
+                'post_date'     => $discount->get_date_created( 'edit' ),
171
+                'post_status'   => $discount->get_status( 'edit' ),
172
+                'post_title'    => $discount->get_name( 'edit' ),
173
+                'post_author'   => $discount->get_author( 'edit' ),
174
+                'post_modified' => $discount->get_date_modified( 'edit' ),
175
+                'post_excerpt'  => $discount->get_description( 'edit' ),
176
+            );
177
+
178
+            /**
179
+             * When updating this object, to prevent infinite loops, use $wpdb
180
+             * to update data, since wp_update_post spawns more calls to the
181
+             * save_post action.
182
+             *
183
+             * This ensures hooks are fired by either WP itself (admin screen save),
184
+             * or an update purely from CRUD.
185
+             */
186
+            if ( doing_action( 'save_post' ) ) {
187
+                $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) );
188
+                clean_post_cache( $discount->get_id() );
189
+            } else {
190
+                wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) );
191
+            }
192
+            $discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
193
+        }
194
+        $this->update_post_meta( $discount );
195
+        $discount->apply_changes();
196
+        $this->clear_caches( $discount );
197
+
198
+        // Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
199
+        $new_status = $discount->get_status( 'edit' );
200
+
201
+        if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
202
+            do_action( 'getpaid_new_discount', $discount );
203
+        } else {
204
+            do_action( 'getpaid_update_discount', $discount );
205
+        }
206
+
207
+    }
208
+
209
+    /*
210 210
 	|--------------------------------------------------------------------------
211 211
 	| Additional Methods
212 212
 	|--------------------------------------------------------------------------
Please login to merge, or discard this patch.
Spacing   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  * GetPaid_Discount_Data_Store class file.
5 5
  *
6 6
  */
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
 	exit;
9 9
 }
10 10
 
@@ -73,38 +73,38 @@  discard block
 block discarded – undo
73 73
 	 *
74 74
 	 * @param WPInv_Discount $discount Discount object.
75 75
 	 */
76
-	public function create( &$discount ) {
77
-		$discount->set_version( WPINV_VERSION );
78
-		$discount->set_date_created( current_time( 'mysql' ) );
76
+	public function create(&$discount) {
77
+		$discount->set_version(WPINV_VERSION);
78
+		$discount->set_date_created(current_time('mysql'));
79 79
 
80 80
 		// Create a new post.
81 81
 		$id = wp_insert_post(
82 82
 			apply_filters(
83 83
 				'getpaid_new_discount_data',
84 84
 				array(
85
-					'post_date'    => $discount->get_date_created( 'edit' ),
85
+					'post_date'    => $discount->get_date_created('edit'),
86 86
 					'post_type'    => 'wpi_discount',
87
-					'post_status'  => $this->get_post_status( $discount ),
87
+					'post_status'  => $this->get_post_status($discount),
88 88
 					'ping_status'  => 'closed',
89
-					'post_author'  => $discount->get_author( 'edit' ),
90
-					'post_title'   => $discount->get_name( 'edit' ),
91
-					'post_excerpt' => $discount->get_description( 'edit' ),
89
+					'post_author'  => $discount->get_author('edit'),
90
+					'post_title'   => $discount->get_name('edit'),
91
+					'post_excerpt' => $discount->get_description('edit'),
92 92
 				)
93 93
 			),
94 94
 			true
95 95
 		);
96 96
 
97
-		if ( $id && ! is_wp_error( $id ) ) {
98
-			$discount->set_id( $id );
99
-			$this->update_post_meta( $discount );
97
+		if ($id && !is_wp_error($id)) {
98
+			$discount->set_id($id);
99
+			$this->update_post_meta($discount);
100 100
 			$discount->save_meta_data();
101 101
 			$discount->apply_changes();
102
-			$this->clear_caches( $discount );
103
-			do_action( 'getpaid_new_discount', $discount );
102
+			$this->clear_caches($discount);
103
+			do_action('getpaid_new_discount', $discount);
104 104
 			return true;
105 105
 		}
106 106
 
107
-		if ( is_wp_error( $id ) ) {
107
+		if (is_wp_error($id)) {
108 108
 			$discount->last_error = $id->get_error_message();
109 109
 		}
110 110
 
@@ -117,14 +117,14 @@  discard block
 block discarded – undo
117 117
 	 * @param WPInv_Discount $discount Discount object.
118 118
 	 *
119 119
 	 */
120
-	public function read( &$discount ) {
120
+	public function read(&$discount) {
121 121
 
122 122
 		$discount->set_defaults();
123
-		$discount_object = get_post( $discount->get_id() );
123
+		$discount_object = get_post($discount->get_id());
124 124
 
125
-		if ( ! $discount->get_id() || ! $discount_object || $discount_object->post_type != 'wpi_discount' ) {
126
-			$discount->last_error = __( 'Invalid discount.', 'invoicing' );
127
-			$discount->set_id( 0 );
125
+		if (!$discount->get_id() || !$discount_object || $discount_object->post_type != 'wpi_discount') {
126
+			$discount->last_error = __('Invalid discount.', 'invoicing');
127
+			$discount->set_id(0);
128 128
 			return false;
129 129
 		}
130 130
 
@@ -139,10 +139,10 @@  discard block
 block discarded – undo
139 139
 			)
140 140
 		);
141 141
 
142
-		$this->read_object_data( $discount, $discount_object );
142
+		$this->read_object_data($discount, $discount_object);
143 143
 		$discount->read_meta_data();
144
-		$discount->set_object_read( true );
145
-		do_action( 'getpaid_read_discount', $discount );
144
+		$discount->set_object_read(true);
145
+		do_action('getpaid_read_discount', $discount);
146 146
 
147 147
 	}
148 148
 
@@ -151,28 +151,28 @@  discard block
 block discarded – undo
151 151
 	 *
152 152
 	 * @param WPInv_Discount $discount Discount object.
153 153
 	 */
154
-	public function update( &$discount ) {
154
+	public function update(&$discount) {
155 155
 		$discount->save_meta_data();
156
-		$discount->set_version( WPINV_VERSION );
156
+		$discount->set_version(WPINV_VERSION);
157 157
 
158
-		if ( null === $discount->get_date_created( 'edit' ) ) {
159
-			$discount->set_date_created( current_time( 'mysql' ) );
158
+		if (null === $discount->get_date_created('edit')) {
159
+			$discount->set_date_created(current_time('mysql'));
160 160
 		}
161 161
 
162 162
 		// Grab the current status so we can compare.
163
-		$previous_status = get_post_status( $discount->get_id() );
163
+		$previous_status = get_post_status($discount->get_id());
164 164
 
165 165
 		$changes = $discount->get_changes();
166 166
 
167 167
 		// Only update the post when the post data changes.
168
-		if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt' ), array_keys( $changes ) ) ) {
168
+		if (array_intersect(array('date_created', 'date_modified', 'status', 'name', 'author', 'post_excerpt'), array_keys($changes))) {
169 169
 			$post_data = array(
170
-				'post_date'     => $discount->get_date_created( 'edit' ),
171
-				'post_status'   => $discount->get_status( 'edit' ),
172
-				'post_title'    => $discount->get_name( 'edit' ),
173
-				'post_author'   => $discount->get_author( 'edit' ),
174
-				'post_modified' => $discount->get_date_modified( 'edit' ),
175
-				'post_excerpt'  => $discount->get_description( 'edit' ),
170
+				'post_date'     => $discount->get_date_created('edit'),
171
+				'post_status'   => $discount->get_status('edit'),
172
+				'post_title'    => $discount->get_name('edit'),
173
+				'post_author'   => $discount->get_author('edit'),
174
+				'post_modified' => $discount->get_date_modified('edit'),
175
+				'post_excerpt'  => $discount->get_description('edit'),
176 176
 			);
177 177
 
178 178
 			/**
@@ -183,25 +183,25 @@  discard block
 block discarded – undo
183 183
 			 * This ensures hooks are fired by either WP itself (admin screen save),
184 184
 			 * or an update purely from CRUD.
185 185
 			 */
186
-			if ( doing_action( 'save_post' ) ) {
187
-				$GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $discount->get_id() ) );
188
-				clean_post_cache( $discount->get_id() );
186
+			if (doing_action('save_post')) {
187
+				$GLOBALS['wpdb']->update($GLOBALS['wpdb']->posts, $post_data, array('ID' => $discount->get_id()));
188
+				clean_post_cache($discount->get_id());
189 189
 			} else {
190
-				wp_update_post( array_merge( array( 'ID' => $discount->get_id() ), $post_data ) );
190
+				wp_update_post(array_merge(array('ID' => $discount->get_id()), $post_data));
191 191
 			}
192
-			$discount->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
192
+			$discount->read_meta_data(true); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
193 193
 		}
194
-		$this->update_post_meta( $discount );
194
+		$this->update_post_meta($discount);
195 195
 		$discount->apply_changes();
196
-		$this->clear_caches( $discount );
196
+		$this->clear_caches($discount);
197 197
 
198 198
 		// Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
199
-		$new_status = $discount->get_status( 'edit' );
199
+		$new_status = $discount->get_status('edit');
200 200
 
201
-		if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
202
-			do_action( 'getpaid_new_discount', $discount );
201
+		if ($new_status !== $previous_status && in_array($previous_status, array('new', 'auto-draft', 'draft'), true)) {
202
+			do_action('getpaid_new_discount', $discount);
203 203
 		} else {
204
-			do_action( 'getpaid_update_discount', $discount );
204
+			do_action('getpaid_update_discount', $discount);
205 205
 		}
206 206
 
207 207
 	}
Please login to merge, or discard this patch.
includes/data-stores/class-getpaid-invoice-data-store.php 2 patches
Spacing   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -4,7 +4,7 @@  discard block
 block discarded – undo
4 4
  * GetPaid_Invoice_Data_Store class file.
5 5
  *
6 6
  */
7
-if ( ! defined( 'ABSPATH' ) ) {
7
+if (!defined('ABSPATH')) {
8 8
 	exit;
9 9
 }
10 10
 
@@ -114,61 +114,61 @@  discard block
 block discarded – undo
114 114
 	 *
115 115
 	 * @param WPInv_Invoice $invoice Invoice object.
116 116
 	 */
117
-	public function create( &$invoice ) {
118
-		$invoice->set_version( WPINV_VERSION );
119
-		$invoice->set_date_created( current_time( 'mysql' ) );
117
+	public function create(&$invoice) {
118
+		$invoice->set_version(WPINV_VERSION);
119
+		$invoice->set_date_created(current_time('mysql'));
120 120
 
121 121
 		// Create a new post.
122 122
 		$id = wp_insert_post(
123 123
 			apply_filters(
124 124
 				'getpaid_new_invoice_data',
125 125
 				array(
126
-					'post_date'    => $invoice->get_date_created( 'edit' ),
127
-					'post_type'    => $invoice->get_post_type( 'edit' ),
128
-					'post_status'  => $this->get_post_status( $invoice ),
126
+					'post_date'    => $invoice->get_date_created('edit'),
127
+					'post_type'    => $invoice->get_post_type('edit'),
128
+					'post_status'  => $this->get_post_status($invoice),
129 129
 					'ping_status'  => 'closed',
130
-					'post_author'  => $invoice->get_user_id( 'edit' ),
131
-					'post_title'   => $invoice->get_title( 'edit' ),
132
-					'post_excerpt' => $invoice->get_description( 'edit' ),
133
-					'post_parent'  => $invoice->get_parent_id( 'edit' ),
130
+					'post_author'  => $invoice->get_user_id('edit'),
131
+					'post_title'   => $invoice->get_title('edit'),
132
+					'post_excerpt' => $invoice->get_description('edit'),
133
+					'post_parent'  => $invoice->get_parent_id('edit'),
134 134
 				)
135 135
 			),
136 136
 			true
137 137
 		);
138 138
 
139
-		if ( $id && ! is_wp_error( $id ) ) {
139
+		if ($id && !is_wp_error($id)) {
140 140
 
141 141
 			// Update the new id and regenerate a title.
142
-			$invoice->set_id( $id );
142
+			$invoice->set_id($id);
143 143
 
144 144
 			$invoice->maybe_set_number();
145 145
 
146 146
 			wp_update_post(
147 147
 				array(
148 148
 					'ID'         => $invoice->get_id(),
149
-					'post_title' => $invoice->get_number( 'edit' ),
150
-					'post_name'  => $invoice->get_path( 'edit' ),
149
+					'post_title' => $invoice->get_number('edit'),
150
+					'post_name'  => $invoice->get_path('edit'),
151 151
 				)
152 152
 			);
153 153
 
154 154
 			// Save special fields and items.
155
-			$this->save_special_fields( $invoice );
156
-			$this->save_items( $invoice );
155
+			$this->save_special_fields($invoice);
156
+			$this->save_items($invoice);
157 157
 
158 158
 			// Update meta data.
159
-			$this->update_post_meta( $invoice );
159
+			$this->update_post_meta($invoice);
160 160
 			$invoice->save_meta_data();
161 161
 
162 162
 			// Apply changes.
163 163
 			$invoice->apply_changes();
164
-			$this->clear_caches( $invoice );
164
+			$this->clear_caches($invoice);
165 165
 
166 166
 			// Fires after a new invoice is created.
167
-			do_action( 'getpaid_new_invoice', $invoice );
167
+			do_action('getpaid_new_invoice', $invoice);
168 168
 			return true;
169 169
 		}
170 170
 
171
-		if ( is_wp_error( $id ) ) {
171
+		if (is_wp_error($id)) {
172 172
 			$invoice->last_error = $id->get_error_message();
173 173
 		}
174 174
 
@@ -181,14 +181,14 @@  discard block
 block discarded – undo
181 181
 	 * @param WPInv_Invoice $invoice Invoice object.
182 182
 	 *
183 183
 	 */
184
-	public function read( &$invoice ) {
184
+	public function read(&$invoice) {
185 185
 
186 186
 		$invoice->set_defaults();
187
-		$invoice_object = get_post( $invoice->get_id() );
187
+		$invoice_object = get_post($invoice->get_id());
188 188
 
189
-		if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) {
190
-			$invoice->last_error = __( 'Invalid invoice.', 'invoicing' );
191
-			$invoice->set_id( 0 );
189
+		if (!$invoice->get_id() || !$invoice_object || !getpaid_is_invoice_post_type($invoice_object->post_type)) {
190
+			$invoice->last_error = __('Invalid invoice.', 'invoicing');
191
+			$invoice->set_id(0);
192 192
 			return false;
193 193
 		}
194 194
 
@@ -206,14 +206,14 @@  discard block
 block discarded – undo
206 206
 			)
207 207
 		);
208 208
 
209
-		$invoice->set_type( $invoice_object->post_type );
209
+		$invoice->set_type($invoice_object->post_type);
210 210
 
211
-		$this->read_object_data( $invoice, $invoice_object );
212
-		$this->add_special_fields( $invoice );
213
-		$this->add_items( $invoice );
211
+		$this->read_object_data($invoice, $invoice_object);
212
+		$this->add_special_fields($invoice);
213
+		$this->add_items($invoice);
214 214
 		$invoice->read_meta_data();
215
-		$invoice->set_object_read( true );
216
-		do_action( 'getpaid_read_invoice', $invoice );
215
+		$invoice->set_object_read(true);
216
+		do_action('getpaid_read_invoice', $invoice);
217 217
 
218 218
 	}
219 219
 
@@ -222,35 +222,35 @@  discard block
 block discarded – undo
222 222
 	 *
223 223
 	 * @param WPInv_Invoice $invoice Invoice object.
224 224
 	 */
225
-	public function update( &$invoice ) {
225
+	public function update(&$invoice) {
226 226
 		$invoice->save_meta_data();
227
-		$invoice->set_version( WPINV_VERSION );
227
+		$invoice->set_version(WPINV_VERSION);
228 228
 
229
-		if ( null === $invoice->get_date_created( 'edit' ) ) {
230
-			$invoice->set_date_created( current_time( 'mysql' ) );
229
+		if (null === $invoice->get_date_created('edit')) {
230
+			$invoice->set_date_created(current_time('mysql'));
231 231
 		}
232 232
 
233 233
 		// Ensure both the key and number are set.
234 234
 		$invoice->get_path();
235 235
 
236 236
 		// Grab the current status so we can compare.
237
-		$previous_status = get_post_status( $invoice->get_id() );
237
+		$previous_status = get_post_status($invoice->get_id());
238 238
 
239 239
 		$changes = $invoice->get_changes();
240 240
 
241 241
 		// Only update the post when the post data changes.
242
-		if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) {
242
+		if (array_intersect(array('date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path'), array_keys($changes))) {
243 243
 			$post_data = array(
244
-				'post_date'     => $invoice->get_date_created( 'edit' ),
245
-				'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ),
246
-				'post_status'   => $invoice->get_status( 'edit' ),
247
-				'post_title'    => $invoice->get_name( 'edit' ),
248
-				'post_author'   => $invoice->get_user_id( 'edit' ),
249
-				'post_modified' => $invoice->get_date_modified( 'edit' ),
250
-				'post_excerpt'  => $invoice->get_description( 'edit' ),
251
-				'post_parent'   => $invoice->get_parent_id( 'edit' ),
252
-				'post_name'     => $invoice->get_path( 'edit' ),
253
-				'post_type'     => $invoice->get_post_type( 'edit' ),
244
+				'post_date'     => $invoice->get_date_created('edit'),
245
+				'post_date_gmt' => $invoice->get_date_created_gmt('edit'),
246
+				'post_status'   => $invoice->get_status('edit'),
247
+				'post_title'    => $invoice->get_name('edit'),
248
+				'post_author'   => $invoice->get_user_id('edit'),
249
+				'post_modified' => $invoice->get_date_modified('edit'),
250
+				'post_excerpt'  => $invoice->get_description('edit'),
251
+				'post_parent'   => $invoice->get_parent_id('edit'),
252
+				'post_name'     => $invoice->get_path('edit'),
253
+				'post_type'     => $invoice->get_post_type('edit'),
254 254
 			);
255 255
 
256 256
 			/**
@@ -261,35 +261,35 @@  discard block
 block discarded – undo
261 261
 			 * This ensures hooks are fired by either WP itself (admin screen save),
262 262
 			 * or an update purely from CRUD.
263 263
 			 */
264
-			if ( doing_action( 'save_post' ) ) {
265
-				$GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) );
266
-				clean_post_cache( $invoice->get_id() );
264
+			if (doing_action('save_post')) {
265
+				$GLOBALS['wpdb']->update($GLOBALS['wpdb']->posts, $post_data, array('ID' => $invoice->get_id()));
266
+				clean_post_cache($invoice->get_id());
267 267
 			} else {
268
-				wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) );
268
+				wp_update_post(array_merge(array('ID' => $invoice->get_id()), $post_data));
269 269
 			}
270
-			$invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
270
+			$invoice->read_meta_data(true); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
271 271
 		}
272 272
 
273 273
 		// Update meta data.
274
-		$this->update_post_meta( $invoice );
274
+		$this->update_post_meta($invoice);
275 275
 
276 276
 		// Save special fields and items.
277
-		$this->save_special_fields( $invoice );
278
-		$this->save_items( $invoice );
277
+		$this->save_special_fields($invoice);
278
+		$this->save_items($invoice);
279 279
 
280 280
 		// Apply the changes.
281 281
 		$invoice->apply_changes();
282 282
 
283 283
 		// Clear caches.
284
-		$this->clear_caches( $invoice );
284
+		$this->clear_caches($invoice);
285 285
 
286 286
 		// Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
287
-		$new_status = $invoice->get_status( 'edit' );
287
+		$new_status = $invoice->get_status('edit');
288 288
 
289
-		if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
290
-			do_action( 'getpaid_new_invoice', $invoice );
289
+		if ($new_status !== $previous_status && in_array($previous_status, array('new', 'auto-draft', 'draft'), true)) {
290
+			do_action('getpaid_new_invoice', $invoice);
291 291
 		} else {
292
-			do_action( 'getpaid_update_invoice', $invoice );
292
+			do_action('getpaid_update_invoice', $invoice);
293 293
 		}
294 294
 
295 295
 	}
@@ -305,45 +305,45 @@  discard block
 block discarded – undo
305 305
 	 *
306 306
 	 * @param WPInv_Invoice $invoice Invoice object.
307 307
      */
308
-    public function add_special_fields( &$invoice ) {
308
+    public function add_special_fields(&$invoice) {
309 309
 		global $wpdb;
310 310
 
311 311
 		// Maybe retrieve from the cache.
312
-		$data   = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' );
312
+		$data = wp_cache_get($invoice->get_id(), 'getpaid_invoice_special_fields');
313 313
 
314 314
 		// If not found, retrieve from the db.
315
-		if ( false === $data ) {
315
+		if (false === $data) {
316 316
 			$table = $wpdb->prefix . 'getpaid_invoices';
317 317
 
318 318
 			$data  = $wpdb->get_row(
319
-				$wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ),
319
+				$wpdb->prepare("SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id()),
320 320
 				ARRAY_A
321 321
 			);
322 322
 
323 323
 			// Update the cache with our data
324
-			wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' );
324
+			wp_cache_set($invoice->get_id(), $data, 'getpaid_invoice_special_fields');
325 325
 
326 326
 		}
327 327
 
328 328
 		// Abort if the data does not exist.
329
-		if ( empty( $data ) ) {
330
-			$invoice->set_object_read( true );
331
-			$invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) );
329
+		if (empty($data)) {
330
+			$invoice->set_object_read(true);
331
+			$invoice->set_props(wpinv_get_user_address($invoice->get_user_id()));
332 332
 			return;
333 333
 		}
334 334
 
335 335
 		$props = array();
336 336
 
337
-		foreach ( $this->database_fields_to_props as $db_field => $prop ) {
337
+		foreach ($this->database_fields_to_props as $db_field => $prop) {
338 338
 
339
-			if ( $db_field == 'post_id' ) {
339
+			if ($db_field == 'post_id') {
340 340
 				continue;
341 341
 			}
342 342
 
343
-			$props[ $prop ] = $data[ $db_field ];
343
+			$props[$prop] = $data[$db_field];
344 344
 		}
345 345
 
346
-		$invoice->set_props( $props );
346
+		$invoice->set_props($props);
347 347
 
348 348
 	}
349 349
 
@@ -354,14 +354,14 @@  discard block
 block discarded – undo
354 354
 	 * @param  WPInv_Invoice $invoice       The Invoice object.
355 355
 	 * @return array                        A mapping of field keys => prop names, filtered by ones that should be updated.
356 356
 	 */
357
-	protected function get_special_fields_to_update( $invoice ) {
357
+	protected function get_special_fields_to_update($invoice) {
358 358
 		$fields_to_update = array();
359
-		$changed_props   = $invoice->get_changes();
359
+		$changed_props = $invoice->get_changes();
360 360
 
361 361
 		// Props should be updated if they are a part of the $changed array or don't exist yet.
362
-		foreach ( $this->database_fields_to_props as $database_field => $prop ) {
363
-			if ( array_key_exists( $prop, $changed_props ) ) {
364
-				$fields_to_update[ $database_field ] = $prop;
362
+		foreach ($this->database_fields_to_props as $database_field => $prop) {
363
+			if (array_key_exists($prop, $changed_props)) {
364
+				$fields_to_update[$database_field] = $prop;
365 365
 			}
366 366
 		}
367 367
 
@@ -374,25 +374,25 @@  discard block
 block discarded – undo
374 374
 	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
375 375
 	 * @since 1.0.19
376 376
 	 */
377
-	protected function update_special_fields( &$invoice ) {
377
+	protected function update_special_fields(&$invoice) {
378 378
 		global $wpdb;
379 379
 
380 380
 		$updated_props    = array();
381
-		$fields_to_update = $this->get_special_fields_to_update( $invoice );
381
+		$fields_to_update = $this->get_special_fields_to_update($invoice);
382 382
 
383
-		foreach ( $fields_to_update as $database_field => $prop ) {
384
-			$value = $invoice->{"get_$prop"}( 'edit' );
385
-			$value = is_string( $value ) ? wp_slash( $value ) : $value;
386
-			$value = is_bool( $value ) ? (int) $value : $value;
387
-			$updated_props[ $database_field ] = maybe_serialize( $value );
383
+		foreach ($fields_to_update as $database_field => $prop) {
384
+			$value = $invoice->{"get_$prop"}('edit');
385
+			$value = is_string($value) ? wp_slash($value) : $value;
386
+			$value = is_bool($value) ? (int) $value : $value;
387
+			$updated_props[$database_field] = maybe_serialize($value);
388 388
 		}
389 389
 
390
-		if ( ! empty( $updated_props ) ) {
390
+		if (!empty($updated_props)) {
391 391
 
392 392
 			$table = $wpdb->prefix . 'getpaid_invoices';
393
-			$wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) );
394
-			wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' );
395
-			do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props );
393
+			$wpdb->update($table, $updated_props, array('post_id' => $invoice->get_id()));
394
+			wp_cache_delete($invoice->get_id(), 'getpaid_invoice_special_fields');
395
+			do_action('getpaid_invoice_update_database_fields', $invoice, $updated_props);
396 396
 
397 397
 		}
398 398
 
@@ -404,22 +404,22 @@  discard block
 block discarded – undo
404 404
 	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
405 405
 	 * @since 1.0.19
406 406
 	 */
407
-	protected function insert_special_fields( &$invoice ) {
407
+	protected function insert_special_fields(&$invoice) {
408 408
 		global $wpdb;
409 409
 
410
-		$updated_props   = array();
410
+		$updated_props = array();
411 411
 
412
-		foreach ( $this->database_fields_to_props as $database_field => $prop ) {
413
-			$value = $invoice->{"get_$prop"}( 'edit' );
414
-			$value = is_string( $value ) ? wp_slash( $value ) : $value;
415
-			$value = is_bool( $value ) ? (int) $value : $value;
416
-			$updated_props[ $database_field ] = maybe_serialize( $value );
412
+		foreach ($this->database_fields_to_props as $database_field => $prop) {
413
+			$value = $invoice->{"get_$prop"}('edit');
414
+			$value = is_string($value) ? wp_slash($value) : $value;
415
+			$value = is_bool($value) ? (int) $value : $value;
416
+			$updated_props[$database_field] = maybe_serialize($value);
417 417
 		}
418 418
 
419 419
 		$table = $wpdb->prefix . 'getpaid_invoices';
420
-		$wpdb->insert( $table, $updated_props );
421
-		wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' );
422
-		do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props );
420
+		$wpdb->insert($table, $updated_props);
421
+		wp_cache_delete($invoice->get_id(), 'getpaid_invoice_special_fields');
422
+		do_action('getpaid_invoice_insert_database_fields', $invoice, $updated_props);
423 423
 
424 424
 	}
425 425
 
@@ -428,7 +428,7 @@  discard block
 block discarded – undo
428 428
 	 *
429 429
 	 * @param WPInv_Invoice $invoice Invoice object.
430 430
      */
431
-    public function save_special_fields( &$invoice ) {
431
+    public function save_special_fields(&$invoice) {
432 432
 		global $wpdb;
433 433
 
434 434
 		// The invoices table.
@@ -436,13 +436,13 @@  discard block
 block discarded – undo
436 436
 		$id    = (int) $invoice->get_id();
437 437
 		$invoice->maybe_set_key();
438 438
 
439
-		if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) {
439
+		if ($wpdb->get_var("SELECT `post_id` FROM $table WHERE `post_id`= $id")) {
440 440
 
441
-			$this->update_special_fields( $invoice );
441
+			$this->update_special_fields($invoice);
442 442
 
443 443
 		} else {
444 444
 
445
-			$this->insert_special_fields( $invoice );
445
+			$this->insert_special_fields($invoice);
446 446
 
447 447
 		}
448 448
 
@@ -453,46 +453,46 @@  discard block
 block discarded – undo
453 453
 	 *
454 454
 	 * @param WPInv_Invoice $invoice Invoice object.
455 455
      */
456
-    public function add_items( &$invoice ) {
456
+    public function add_items(&$invoice) {
457 457
 		global $wpdb;
458 458
 
459 459
 		// Maybe retrieve from the cache.
460
-		$items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' );
460
+		$items = wp_cache_get($invoice->get_id(), 'getpaid_invoice_cart_details');
461 461
 
462 462
 		// If not found, retrieve from the db.
463
-		if ( false === $items ) {
463
+		if (false === $items) {
464 464
 			$table = $wpdb->prefix . 'getpaid_invoice_items';
465 465
 
466 466
 			$items = $wpdb->get_results(
467
-				$wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() )
467
+				$wpdb->prepare("SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id())
468 468
 			);
469 469
 
470 470
 			// Update the cache with our data
471
-			wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' );
471
+			wp_cache_set($invoice->get_id(), $items, 'getpaid_invoice_cart_details');
472 472
 
473 473
 		}
474 474
 
475 475
 		// Abort if no items found.
476
-        if ( empty( $items ) ) {
476
+        if (empty($items)) {
477 477
             return;
478 478
 		}
479 479
 
480 480
 		$_items = array();
481
-		foreach ( $items as $item_data ) {
482
-			$item = new GetPaid_Form_Item( $item_data->item_id );
481
+		foreach ($items as $item_data) {
482
+			$item = new GetPaid_Form_Item($item_data->item_id);
483 483
 
484 484
 			// Set item data.
485
-			$item->item_tax      = wpinv_sanitize_amount( $item_data->tax );
486
-			$item->item_discount = wpinv_sanitize_amount( $item_data->discount );
487
-			$item->set_name( $item_data->item_name );
488
-			$item->set_description( $item_data->item_description );
489
-			$item->set_price( $item_data->item_price );
490
-			$item->set_quantity( $item_data->quantity );
491
-			$item->set_item_meta( $item_data->meta );
485
+			$item->item_tax      = wpinv_sanitize_amount($item_data->tax);
486
+			$item->item_discount = wpinv_sanitize_amount($item_data->discount);
487
+			$item->set_name($item_data->item_name);
488
+			$item->set_description($item_data->item_description);
489
+			$item->set_price($item_data->item_price);
490
+			$item->set_quantity($item_data->quantity);
491
+			$item->set_item_meta($item_data->meta);
492 492
 			$_items[] = $item;
493 493
 		}
494 494
 
495
-		$invoice->set_items( $_items );
495
+		$invoice->set_items($_items);
496 496
 	}
497 497
 
498 498
 	/**
@@ -500,20 +500,20 @@  discard block
 block discarded – undo
500 500
 	 *
501 501
 	 * @param WPInv_Invoice $invoice Invoice object.
502 502
      */
503
-    public function save_items( $invoice ) {
503
+    public function save_items($invoice) {
504 504
 
505 505
 		// Delete previously existing items.
506
-		$this->delete_items( $invoice );
506
+		$this->delete_items($invoice);
507 507
 
508
-		$table   = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items';
508
+		$table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items';
509 509
 
510
-		foreach ( $invoice->get_cart_details() as $item_data ) {
511
-			$item_data = array_map( 'maybe_serialize', $item_data );
512
-			$GLOBALS['wpdb']->insert( $table, $item_data );
510
+		foreach ($invoice->get_cart_details() as $item_data) {
511
+			$item_data = array_map('maybe_serialize', $item_data);
512
+			$GLOBALS['wpdb']->insert($table, $item_data);
513 513
 		}
514 514
 
515
-		wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' );
516
-		do_action( 'getpaid_invoice_save_items', $invoice );
515
+		wp_cache_delete($invoice->get_id(), 'getpaid_invoice_cart_details');
516
+		do_action('getpaid_invoice_save_items', $invoice);
517 517
 
518 518
 	}
519 519
 
@@ -522,9 +522,9 @@  discard block
 block discarded – undo
522 522
 	 *
523 523
 	 * @param WPInv_Invoice $invoice Invoice object.
524 524
      */
525
-    public function delete_items( $invoice ) {
525
+    public function delete_items($invoice) {
526 526
 		$table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items';
527
-		return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) );
527
+		return $GLOBALS['wpdb']->delete($table, array('post_id' => $invoice->get_id()));
528 528
 	}
529 529
 
530 530
 	/**
@@ -532,9 +532,9 @@  discard block
 block discarded – undo
532 532
 	 *
533 533
 	 * @param WPInv_Invoice $invoice Invoice object.
534 534
      */
535
-    public function delete_special_fields( $invoice ) {
535
+    public function delete_special_fields($invoice) {
536 536
 		$table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices';
537
-		return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) );
537
+		return $GLOBALS['wpdb']->delete($table, array('post_id' => $invoice->get_id()));
538 538
 	}
539 539
 
540 540
 	/**
@@ -545,10 +545,10 @@  discard block
 block discarded – undo
545 545
 	 * @param  WPInv_Invoice $object GetPaid_Data object.
546 546
 	 * @return string
547 547
 	 */
548
-	protected function get_post_status( $object ) {
549
-		$object_status = $object->get_status( 'edit' );
548
+	protected function get_post_status($object) {
549
+		$object_status = $object->get_status('edit');
550 550
 
551
-		if ( ! $object_status ) {
551
+		if (!$object_status) {
552 552
 			$object_status = $object->get_default_status();
553 553
 		}
554 554
 
Please login to merge, or discard this patch.
Indentation   +490 added lines, -490 removed lines patch added patch discarded remove patch
@@ -5,7 +5,7 @@  discard block
 block discarded – undo
5 5
  *
6 6
  */
7 7
 if ( ! defined( 'ABSPATH' ) ) {
8
-	exit;
8
+    exit;
9 9
 }
10 10
 
11 11
 /**
@@ -15,545 +15,545 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class GetPaid_Invoice_Data_Store extends GetPaid_Data_Store_WP {
17 17
 
18
-	/**
19
-	 * Data stored in meta keys, but not considered "meta" for a discount.
20
-	 *
21
-	 * @since 1.0.19
22
-	 * @var array
23
-	 */
24
-	protected $internal_meta_keys = array(
25
-		'_wpinv_subscr_profile_id',
26
-		'_wpinv_subscription_id',
27
-		'_wpinv_taxes',
28
-		'_wpinv_fees',
29
-		'_wpinv_discounts',
30
-		'_wpinv_submission_id',
31
-		'_wpinv_payment_form',
32
-		'_wpinv_is_viewed',
33
-		'_wpinv_phone',
34
-		'_wpinv_company_id',
35
-		'wpinv_shipping',
36
-		'wpinv_email_cc',
37
-		'wpinv_template',
38
-		'wpinv_created_via',
39
-	);
40
-
41
-	/**
42
-	 * A map of meta keys to data props.
43
-	 *
44
-	 * @since 1.0.19
45
-	 *
46
-	 * @var array
47
-	 */
48
-	protected $meta_key_to_props = array(
49
-		'_wpinv_subscr_profile_id' => 'remote_subscription_id',
50
-		'_wpinv_subscription_id'   => 'subscription_id',
51
-		'_wpinv_taxes'             => 'taxes',
52
-		'_wpinv_fees'              => 'fees',
53
-		'_wpinv_discounts'         => 'discounts',
54
-		'_wpinv_submission_id'     => 'submission_id',
55
-		'_wpinv_payment_form'      => 'payment_form',
56
-		'_wpinv_is_viewed'         => 'is_viewed',
57
-		'wpinv_email_cc'           => 'email_cc',
58
-		'wpinv_template'           => 'template',
59
-		'wpinv_created_via'        => 'created_via',
60
-		'_wpinv_phone'             => 'phone',
61
-		'_wpinv_company_id'        => 'company_id',
62
-		'wpinv_shipping'           => 'shipping',
63
-	);
64
-
65
-	/**
66
-	 * A map of database fields to data props.
67
-	 *
68
-	 * @since 1.0.19
69
-	 *
70
-	 * @var array
71
-	 */
72
-	protected $database_fields_to_props = array(
73
-		'post_id'            => 'id',
74
-		'number'             => 'number',
75
-		'currency'           => 'currency',
76
-		'invoice_key'        => 'key',
77
-		'type'               => 'type',
78
-		'mode'               => 'mode',
79
-		'user_ip'            => 'user_ip',
80
-		'first_name'         => 'first_name',
81
-		'last_name'          => 'last_name',
82
-		'address'            => 'address',
83
-		'city'               => 'city',
84
-		'state'              => 'state',
85
-		'country'            => 'country',
86
-		'zip'                => 'zip',
87
-		'zip'                => 'zip',
88
-		'adddress_confirmed' => 'address_confirmed',
89
-		'gateway'            => 'gateway',
90
-		'transaction_id'     => 'transaction_id',
91
-		'currency'           => 'currency',
92
-		'subtotal'           => 'subtotal',
93
-		'tax'                => 'total_tax',
94
-		'fees_total'         => 'total_fees',
95
-		'discount'           => 'total_discount',
96
-		'total'              => 'total',
97
-		'discount_code'      => 'discount_code',
98
-		'disable_taxes'      => 'disable_taxes',
99
-		'due_date'           => 'due_date',
100
-		'completed_date'     => 'completed_date',
101
-		'company'            => 'company',
102
-		'vat_number'         => 'vat_number',
103
-		'vat_rate'           => 'vat_rate',
104
-		'customer_id'        => 'customer_id',
105
-	);
106
-
107
-	/*
18
+    /**
19
+     * Data stored in meta keys, but not considered "meta" for a discount.
20
+     *
21
+     * @since 1.0.19
22
+     * @var array
23
+     */
24
+    protected $internal_meta_keys = array(
25
+        '_wpinv_subscr_profile_id',
26
+        '_wpinv_subscription_id',
27
+        '_wpinv_taxes',
28
+        '_wpinv_fees',
29
+        '_wpinv_discounts',
30
+        '_wpinv_submission_id',
31
+        '_wpinv_payment_form',
32
+        '_wpinv_is_viewed',
33
+        '_wpinv_phone',
34
+        '_wpinv_company_id',
35
+        'wpinv_shipping',
36
+        'wpinv_email_cc',
37
+        'wpinv_template',
38
+        'wpinv_created_via',
39
+    );
40
+
41
+    /**
42
+     * A map of meta keys to data props.
43
+     *
44
+     * @since 1.0.19
45
+     *
46
+     * @var array
47
+     */
48
+    protected $meta_key_to_props = array(
49
+        '_wpinv_subscr_profile_id' => 'remote_subscription_id',
50
+        '_wpinv_subscription_id'   => 'subscription_id',
51
+        '_wpinv_taxes'             => 'taxes',
52
+        '_wpinv_fees'              => 'fees',
53
+        '_wpinv_discounts'         => 'discounts',
54
+        '_wpinv_submission_id'     => 'submission_id',
55
+        '_wpinv_payment_form'      => 'payment_form',
56
+        '_wpinv_is_viewed'         => 'is_viewed',
57
+        'wpinv_email_cc'           => 'email_cc',
58
+        'wpinv_template'           => 'template',
59
+        'wpinv_created_via'        => 'created_via',
60
+        '_wpinv_phone'             => 'phone',
61
+        '_wpinv_company_id'        => 'company_id',
62
+        'wpinv_shipping'           => 'shipping',
63
+    );
64
+
65
+    /**
66
+     * A map of database fields to data props.
67
+     *
68
+     * @since 1.0.19
69
+     *
70
+     * @var array
71
+     */
72
+    protected $database_fields_to_props = array(
73
+        'post_id'            => 'id',
74
+        'number'             => 'number',
75
+        'currency'           => 'currency',
76
+        'invoice_key'        => 'key',
77
+        'type'               => 'type',
78
+        'mode'               => 'mode',
79
+        'user_ip'            => 'user_ip',
80
+        'first_name'         => 'first_name',
81
+        'last_name'          => 'last_name',
82
+        'address'            => 'address',
83
+        'city'               => 'city',
84
+        'state'              => 'state',
85
+        'country'            => 'country',
86
+        'zip'                => 'zip',
87
+        'zip'                => 'zip',
88
+        'adddress_confirmed' => 'address_confirmed',
89
+        'gateway'            => 'gateway',
90
+        'transaction_id'     => 'transaction_id',
91
+        'currency'           => 'currency',
92
+        'subtotal'           => 'subtotal',
93
+        'tax'                => 'total_tax',
94
+        'fees_total'         => 'total_fees',
95
+        'discount'           => 'total_discount',
96
+        'total'              => 'total',
97
+        'discount_code'      => 'discount_code',
98
+        'disable_taxes'      => 'disable_taxes',
99
+        'due_date'           => 'due_date',
100
+        'completed_date'     => 'completed_date',
101
+        'company'            => 'company',
102
+        'vat_number'         => 'vat_number',
103
+        'vat_rate'           => 'vat_rate',
104
+        'customer_id'        => 'customer_id',
105
+    );
106
+
107
+    /*
108 108
 	|--------------------------------------------------------------------------
109 109
 	| CRUD Methods
110 110
 	|--------------------------------------------------------------------------
111 111
 	*/
112 112
 
113
-	/**
114
-	 * Method to create a new invoice in the database.
115
-	 *
116
-	 * @param WPInv_Invoice $invoice Invoice object.
117
-	 */
118
-	public function create( &$invoice ) {
119
-		$invoice->set_version( WPINV_VERSION );
120
-		$invoice->set_date_created( current_time( 'mysql' ) );
121
-
122
-		// Create a new post.
123
-		$id = wp_insert_post(
124
-			apply_filters(
125
-				'getpaid_new_invoice_data',
126
-				array(
127
-					'post_date'    => $invoice->get_date_created( 'edit' ),
128
-					'post_type'    => $invoice->get_post_type( 'edit' ),
129
-					'post_status'  => $this->get_post_status( $invoice ),
130
-					'ping_status'  => 'closed',
131
-					'post_author'  => $invoice->get_user_id( 'edit' ),
132
-					'post_title'   => $invoice->get_title( 'edit' ),
133
-					'post_excerpt' => $invoice->get_description( 'edit' ),
134
-					'post_parent'  => $invoice->get_parent_id( 'edit' ),
135
-				)
136
-			),
137
-			true
138
-		);
139
-
140
-		if ( $id && ! is_wp_error( $id ) ) {
141
-
142
-			// Update the new id and regenerate a title.
143
-			$invoice->set_id( $id );
144
-
145
-			$invoice->maybe_set_number();
146
-
147
-			wp_update_post(
148
-				array(
149
-					'ID'         => $invoice->get_id(),
150
-					'post_title' => $invoice->get_number( 'edit' ),
151
-					'post_name'  => $invoice->get_path( 'edit' ),
152
-				)
153
-			);
154
-
155
-			// Save special fields and items.
156
-			$this->save_special_fields( $invoice );
157
-			$this->save_items( $invoice );
158
-
159
-			// Update meta data.
160
-			$this->update_post_meta( $invoice );
161
-			$invoice->save_meta_data();
162
-
163
-			// Apply changes.
164
-			$invoice->apply_changes();
165
-			$this->clear_caches( $invoice );
166
-
167
-			// Fires after a new invoice is created.
168
-			do_action( 'getpaid_new_invoice', $invoice );
169
-			return true;
170
-		}
171
-
172
-		if ( is_wp_error( $id ) ) {
173
-			$invoice->last_error = $id->get_error_message();
174
-		}
175
-
176
-		return false;
177
-	}
178
-
179
-	/**
180
-	 * Method to read an invoice from the database.
181
-	 *
182
-	 * @param WPInv_Invoice $invoice Invoice object.
183
-	 *
184
-	 */
185
-	public function read( &$invoice ) {
186
-
187
-		$invoice->set_defaults();
188
-		$invoice_object = get_post( $invoice->get_id() );
189
-
190
-		if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) {
191
-			$invoice->last_error = __( 'Invalid invoice.', 'invoicing' );
192
-			$invoice->set_id( 0 );
193
-			return false;
194
-		}
195
-
196
-		$invoice->set_props(
197
-			array(
198
-				'date_created'  => 0 < $invoice_object->post_date ? $invoice_object->post_date : null,
199
-				'date_modified' => 0 < $invoice_object->post_modified ? $invoice_object->post_modified : null,
200
-				'status'        => $invoice_object->post_status,
201
-				'author'        => $invoice_object->post_author,
202
-				'description'   => $invoice_object->post_excerpt,
203
-				'parent_id'     => $invoice_object->post_parent,
204
-				'name'          => $invoice_object->post_title,
205
-				'path'          => $invoice_object->post_name,
206
-				'post_type'     => $invoice_object->post_type,
207
-			)
208
-		);
209
-
210
-		$invoice->set_type( $invoice_object->post_type );
211
-
212
-		$this->read_object_data( $invoice, $invoice_object );
213
-		$this->add_special_fields( $invoice );
214
-		$this->add_items( $invoice );
215
-		$invoice->read_meta_data();
216
-		$invoice->set_object_read( true );
217
-		do_action( 'getpaid_read_invoice', $invoice );
218
-
219
-	}
220
-
221
-	/**
222
-	 * Method to update an invoice in the database.
223
-	 *
224
-	 * @param WPInv_Invoice $invoice Invoice object.
225
-	 */
226
-	public function update( &$invoice ) {
227
-		$invoice->save_meta_data();
228
-		$invoice->set_version( WPINV_VERSION );
229
-
230
-		if ( null === $invoice->get_date_created( 'edit' ) ) {
231
-			$invoice->set_date_created( current_time( 'mysql' ) );
232
-		}
233
-
234
-		// Ensure both the key and number are set.
235
-		$invoice->get_path();
236
-
237
-		// Grab the current status so we can compare.
238
-		$previous_status = get_post_status( $invoice->get_id() );
239
-
240
-		$changes = $invoice->get_changes();
241
-
242
-		// Only update the post when the post data changes.
243
-		if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) {
244
-			$post_data = array(
245
-				'post_date'     => $invoice->get_date_created( 'edit' ),
246
-				'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ),
247
-				'post_status'   => $invoice->get_status( 'edit' ),
248
-				'post_title'    => $invoice->get_name( 'edit' ),
249
-				'post_author'   => $invoice->get_user_id( 'edit' ),
250
-				'post_modified' => $invoice->get_date_modified( 'edit' ),
251
-				'post_excerpt'  => $invoice->get_description( 'edit' ),
252
-				'post_parent'   => $invoice->get_parent_id( 'edit' ),
253
-				'post_name'     => $invoice->get_path( 'edit' ),
254
-				'post_type'     => $invoice->get_post_type( 'edit' ),
255
-			);
256
-
257
-			/**
258
-			 * When updating this object, to prevent infinite loops, use $wpdb
259
-			 * to update data, since wp_update_post spawns more calls to the
260
-			 * save_post action.
261
-			 *
262
-			 * This ensures hooks are fired by either WP itself (admin screen save),
263
-			 * or an update purely from CRUD.
264
-			 */
265
-			if ( doing_action( 'save_post' ) ) {
266
-				$GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) );
267
-				clean_post_cache( $invoice->get_id() );
268
-			} else {
269
-				wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) );
270
-			}
271
-			$invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
272
-		}
273
-
274
-		// Update meta data.
275
-		$this->update_post_meta( $invoice );
276
-
277
-		// Save special fields and items.
278
-		$this->save_special_fields( $invoice );
279
-		$this->save_items( $invoice );
280
-
281
-		// Apply the changes.
282
-		$invoice->apply_changes();
283
-
284
-		// Clear caches.
285
-		$this->clear_caches( $invoice );
286
-
287
-		// Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
288
-		$new_status = $invoice->get_status( 'edit' );
289
-
290
-		if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
291
-			do_action( 'getpaid_new_invoice', $invoice );
292
-		} else {
293
-			do_action( 'getpaid_update_invoice', $invoice );
294
-		}
295
-
296
-	}
297
-
298
-	/*
113
+    /**
114
+     * Method to create a new invoice in the database.
115
+     *
116
+     * @param WPInv_Invoice $invoice Invoice object.
117
+     */
118
+    public function create( &$invoice ) {
119
+        $invoice->set_version( WPINV_VERSION );
120
+        $invoice->set_date_created( current_time( 'mysql' ) );
121
+
122
+        // Create a new post.
123
+        $id = wp_insert_post(
124
+            apply_filters(
125
+                'getpaid_new_invoice_data',
126
+                array(
127
+                    'post_date'    => $invoice->get_date_created( 'edit' ),
128
+                    'post_type'    => $invoice->get_post_type( 'edit' ),
129
+                    'post_status'  => $this->get_post_status( $invoice ),
130
+                    'ping_status'  => 'closed',
131
+                    'post_author'  => $invoice->get_user_id( 'edit' ),
132
+                    'post_title'   => $invoice->get_title( 'edit' ),
133
+                    'post_excerpt' => $invoice->get_description( 'edit' ),
134
+                    'post_parent'  => $invoice->get_parent_id( 'edit' ),
135
+                )
136
+            ),
137
+            true
138
+        );
139
+
140
+        if ( $id && ! is_wp_error( $id ) ) {
141
+
142
+            // Update the new id and regenerate a title.
143
+            $invoice->set_id( $id );
144
+
145
+            $invoice->maybe_set_number();
146
+
147
+            wp_update_post(
148
+                array(
149
+                    'ID'         => $invoice->get_id(),
150
+                    'post_title' => $invoice->get_number( 'edit' ),
151
+                    'post_name'  => $invoice->get_path( 'edit' ),
152
+                )
153
+            );
154
+
155
+            // Save special fields and items.
156
+            $this->save_special_fields( $invoice );
157
+            $this->save_items( $invoice );
158
+
159
+            // Update meta data.
160
+            $this->update_post_meta( $invoice );
161
+            $invoice->save_meta_data();
162
+
163
+            // Apply changes.
164
+            $invoice->apply_changes();
165
+            $this->clear_caches( $invoice );
166
+
167
+            // Fires after a new invoice is created.
168
+            do_action( 'getpaid_new_invoice', $invoice );
169
+            return true;
170
+        }
171
+
172
+        if ( is_wp_error( $id ) ) {
173
+            $invoice->last_error = $id->get_error_message();
174
+        }
175
+
176
+        return false;
177
+    }
178
+
179
+    /**
180
+     * Method to read an invoice from the database.
181
+     *
182
+     * @param WPInv_Invoice $invoice Invoice object.
183
+     *
184
+     */
185
+    public function read( &$invoice ) {
186
+
187
+        $invoice->set_defaults();
188
+        $invoice_object = get_post( $invoice->get_id() );
189
+
190
+        if ( ! $invoice->get_id() || ! $invoice_object || ! getpaid_is_invoice_post_type( $invoice_object->post_type ) ) {
191
+            $invoice->last_error = __( 'Invalid invoice.', 'invoicing' );
192
+            $invoice->set_id( 0 );
193
+            return false;
194
+        }
195
+
196
+        $invoice->set_props(
197
+            array(
198
+                'date_created'  => 0 < $invoice_object->post_date ? $invoice_object->post_date : null,
199
+                'date_modified' => 0 < $invoice_object->post_modified ? $invoice_object->post_modified : null,
200
+                'status'        => $invoice_object->post_status,
201
+                'author'        => $invoice_object->post_author,
202
+                'description'   => $invoice_object->post_excerpt,
203
+                'parent_id'     => $invoice_object->post_parent,
204
+                'name'          => $invoice_object->post_title,
205
+                'path'          => $invoice_object->post_name,
206
+                'post_type'     => $invoice_object->post_type,
207
+            )
208
+        );
209
+
210
+        $invoice->set_type( $invoice_object->post_type );
211
+
212
+        $this->read_object_data( $invoice, $invoice_object );
213
+        $this->add_special_fields( $invoice );
214
+        $this->add_items( $invoice );
215
+        $invoice->read_meta_data();
216
+        $invoice->set_object_read( true );
217
+        do_action( 'getpaid_read_invoice', $invoice );
218
+
219
+    }
220
+
221
+    /**
222
+     * Method to update an invoice in the database.
223
+     *
224
+     * @param WPInv_Invoice $invoice Invoice object.
225
+     */
226
+    public function update( &$invoice ) {
227
+        $invoice->save_meta_data();
228
+        $invoice->set_version( WPINV_VERSION );
229
+
230
+        if ( null === $invoice->get_date_created( 'edit' ) ) {
231
+            $invoice->set_date_created( current_time( 'mysql' ) );
232
+        }
233
+
234
+        // Ensure both the key and number are set.
235
+        $invoice->get_path();
236
+
237
+        // Grab the current status so we can compare.
238
+        $previous_status = get_post_status( $invoice->get_id() );
239
+
240
+        $changes = $invoice->get_changes();
241
+
242
+        // Only update the post when the post data changes.
243
+        if ( array_intersect( array( 'date_created', 'date_modified', 'status', 'name', 'author', 'description', 'parent_id', 'post_excerpt', 'path' ), array_keys( $changes ) ) ) {
244
+            $post_data = array(
245
+                'post_date'     => $invoice->get_date_created( 'edit' ),
246
+                'post_date_gmt' => $invoice->get_date_created_gmt( 'edit' ),
247
+                'post_status'   => $invoice->get_status( 'edit' ),
248
+                'post_title'    => $invoice->get_name( 'edit' ),
249
+                'post_author'   => $invoice->get_user_id( 'edit' ),
250
+                'post_modified' => $invoice->get_date_modified( 'edit' ),
251
+                'post_excerpt'  => $invoice->get_description( 'edit' ),
252
+                'post_parent'   => $invoice->get_parent_id( 'edit' ),
253
+                'post_name'     => $invoice->get_path( 'edit' ),
254
+                'post_type'     => $invoice->get_post_type( 'edit' ),
255
+            );
256
+
257
+            /**
258
+             * When updating this object, to prevent infinite loops, use $wpdb
259
+             * to update data, since wp_update_post spawns more calls to the
260
+             * save_post action.
261
+             *
262
+             * This ensures hooks are fired by either WP itself (admin screen save),
263
+             * or an update purely from CRUD.
264
+             */
265
+            if ( doing_action( 'save_post' ) ) {
266
+                $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->posts, $post_data, array( 'ID' => $invoice->get_id() ) );
267
+                clean_post_cache( $invoice->get_id() );
268
+            } else {
269
+                wp_update_post( array_merge( array( 'ID' => $invoice->get_id() ), $post_data ) );
270
+            }
271
+            $invoice->read_meta_data( true ); // Refresh internal meta data, in case things were hooked into `save_post` or another WP hook.
272
+        }
273
+
274
+        // Update meta data.
275
+        $this->update_post_meta( $invoice );
276
+
277
+        // Save special fields and items.
278
+        $this->save_special_fields( $invoice );
279
+        $this->save_items( $invoice );
280
+
281
+        // Apply the changes.
282
+        $invoice->apply_changes();
283
+
284
+        // Clear caches.
285
+        $this->clear_caches( $invoice );
286
+
287
+        // Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
288
+        $new_status = $invoice->get_status( 'edit' );
289
+
290
+        if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
291
+            do_action( 'getpaid_new_invoice', $invoice );
292
+        } else {
293
+            do_action( 'getpaid_update_invoice', $invoice );
294
+        }
295
+
296
+    }
297
+
298
+    /*
299 299
 	|--------------------------------------------------------------------------
300 300
 	| Additional Methods
301 301
 	|--------------------------------------------------------------------------
302 302
 	*/
303 303
 
304
-	/**
304
+    /**
305 305
      * Retrieves special fields and adds to the invoice.
306
-	 *
307
-	 * @param WPInv_Invoice $invoice Invoice object.
306
+     *
307
+     * @param WPInv_Invoice $invoice Invoice object.
308 308
      */
309 309
     public function add_special_fields( &$invoice ) {
310
-		global $wpdb;
311
-
312
-		// Maybe retrieve from the cache.
313
-		$data   = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' );
314
-
315
-		// If not found, retrieve from the db.
316
-		if ( false === $data ) {
317
-			$table = $wpdb->prefix . 'getpaid_invoices';
318
-
319
-			$data  = $wpdb->get_row(
320
-				$wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ),
321
-				ARRAY_A
322
-			);
323
-
324
-			// Update the cache with our data
325
-			wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' );
326
-
327
-		}
328
-
329
-		// Abort if the data does not exist.
330
-		if ( empty( $data ) ) {
331
-			$invoice->set_object_read( true );
332
-			$invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) );
333
-			return;
334
-		}
335
-
336
-		$props = array();
337
-
338
-		foreach ( $this->database_fields_to_props as $db_field => $prop ) {
339
-
340
-			if ( $db_field == 'post_id' ) {
341
-				continue;
342
-			}
343
-
344
-			$props[ $prop ] = $data[ $db_field ];
345
-		}
346
-
347
-		$invoice->set_props( $props );
348
-
349
-	}
350
-
351
-	/**
352
-	 * Gets a list of special fields that need updated based on change state
353
-	 * or if they are present in the database or not.
354
-	 *
355
-	 * @param  WPInv_Invoice $invoice       The Invoice object.
356
-	 * @return array                        A mapping of field keys => prop names, filtered by ones that should be updated.
357
-	 */
358
-	protected function get_special_fields_to_update( $invoice ) {
359
-		$fields_to_update = array();
360
-		$changed_props   = $invoice->get_changes();
361
-
362
-		// Props should be updated if they are a part of the $changed array or don't exist yet.
363
-		foreach ( $this->database_fields_to_props as $database_field => $prop ) {
364
-			if ( array_key_exists( $prop, $changed_props ) ) {
365
-				$fields_to_update[ $database_field ] = $prop;
366
-			}
367
-		}
368
-
369
-		return $fields_to_update;
370
-	}
371
-
372
-	/**
373
-	 * Helper method that updates all the database fields for an invoice based on it's settings in the WPInv_Invoice class.
374
-	 *
375
-	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
376
-	 * @since 1.0.19
377
-	 */
378
-	protected function update_special_fields( &$invoice ) {
379
-		global $wpdb;
380
-
381
-		$updated_props    = array();
382
-		$fields_to_update = $this->get_special_fields_to_update( $invoice );
383
-
384
-		foreach ( $fields_to_update as $database_field => $prop ) {
385
-			$value = $invoice->{"get_$prop"}( 'edit' );
386
-			$value = is_string( $value ) ? wp_slash( $value ) : $value;
387
-			$value = is_bool( $value ) ? (int) $value : $value;
388
-			$updated_props[ $database_field ] = maybe_serialize( $value );
389
-		}
390
-
391
-		if ( ! empty( $updated_props ) ) {
392
-
393
-			$table = $wpdb->prefix . 'getpaid_invoices';
394
-			$wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) );
395
-			wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' );
396
-			do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props );
397
-
398
-		}
399
-
400
-	}
401
-
402
-	/**
403
-	 * Helper method that inserts special fields to the database.
404
-	 *
405
-	 * @param WPInv_Invoice $invoice WPInv_Invoice object.
406
-	 * @since 1.0.19
407
-	 */
408
-	protected function insert_special_fields( &$invoice ) {
409
-		global $wpdb;
410
-
411
-		$updated_props   = array();
412
-
413
-		foreach ( $this->database_fields_to_props as $database_field => $prop ) {
414
-			$value = $invoice->{"get_$prop"}( 'edit' );
415
-			$value = is_string( $value ) ? wp_slash( $value ) : $value;
416
-			$value = is_bool( $value ) ? (int) $value : $value;
417
-			$updated_props[ $database_field ] = maybe_serialize( $value );
418
-		}
419
-
420
-		$table = $wpdb->prefix . 'getpaid_invoices';
421
-		$wpdb->insert( $table, $updated_props );
422
-		wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' );
423
-		do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props );
424
-
425
-	}
426
-
427
-	/**
310
+        global $wpdb;
311
+
312
+        // Maybe retrieve from the cache.
313
+        $data   = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_special_fields' );
314
+
315
+        // If not found, retrieve from the db.
316
+        if ( false === $data ) {
317
+            $table = $wpdb->prefix . 'getpaid_invoices';
318
+
319
+            $data  = $wpdb->get_row(
320
+                $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d LIMIT 1", $invoice->get_id() ),
321
+                ARRAY_A
322
+            );
323
+
324
+            // Update the cache with our data
325
+            wp_cache_set( $invoice->get_id(), $data, 'getpaid_invoice_special_fields' );
326
+
327
+        }
328
+
329
+        // Abort if the data does not exist.
330
+        if ( empty( $data ) ) {
331
+            $invoice->set_object_read( true );
332
+            $invoice->set_props( wpinv_get_user_address( $invoice->get_user_id() ) );
333
+            return;
334
+        }
335
+
336
+        $props = array();
337
+
338
+        foreach ( $this->database_fields_to_props as $db_field => $prop ) {
339
+
340
+            if ( $db_field == 'post_id' ) {
341
+                continue;
342
+            }
343
+
344
+            $props[ $prop ] = $data[ $db_field ];
345
+        }
346
+
347
+        $invoice->set_props( $props );
348
+
349
+    }
350
+
351
+    /**
352
+     * Gets a list of special fields that need updated based on change state
353
+     * or if they are present in the database or not.
354
+     *
355
+     * @param  WPInv_Invoice $invoice       The Invoice object.
356
+     * @return array                        A mapping of field keys => prop names, filtered by ones that should be updated.
357
+     */
358
+    protected function get_special_fields_to_update( $invoice ) {
359
+        $fields_to_update = array();
360
+        $changed_props   = $invoice->get_changes();
361
+
362
+        // Props should be updated if they are a part of the $changed array or don't exist yet.
363
+        foreach ( $this->database_fields_to_props as $database_field => $prop ) {
364
+            if ( array_key_exists( $prop, $changed_props ) ) {
365
+                $fields_to_update[ $database_field ] = $prop;
366
+            }
367
+        }
368
+
369
+        return $fields_to_update;
370
+    }
371
+
372
+    /**
373
+     * Helper method that updates all the database fields for an invoice based on it's settings in the WPInv_Invoice class.
374
+     *
375
+     * @param WPInv_Invoice $invoice WPInv_Invoice object.
376
+     * @since 1.0.19
377
+     */
378
+    protected function update_special_fields( &$invoice ) {
379
+        global $wpdb;
380
+
381
+        $updated_props    = array();
382
+        $fields_to_update = $this->get_special_fields_to_update( $invoice );
383
+
384
+        foreach ( $fields_to_update as $database_field => $prop ) {
385
+            $value = $invoice->{"get_$prop"}( 'edit' );
386
+            $value = is_string( $value ) ? wp_slash( $value ) : $value;
387
+            $value = is_bool( $value ) ? (int) $value : $value;
388
+            $updated_props[ $database_field ] = maybe_serialize( $value );
389
+        }
390
+
391
+        if ( ! empty( $updated_props ) ) {
392
+
393
+            $table = $wpdb->prefix . 'getpaid_invoices';
394
+            $wpdb->update( $table, $updated_props, array( 'post_id' => $invoice->get_id() ) );
395
+            wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' );
396
+            do_action( 'getpaid_invoice_update_database_fields', $invoice, $updated_props );
397
+
398
+        }
399
+
400
+    }
401
+
402
+    /**
403
+     * Helper method that inserts special fields to the database.
404
+     *
405
+     * @param WPInv_Invoice $invoice WPInv_Invoice object.
406
+     * @since 1.0.19
407
+     */
408
+    protected function insert_special_fields( &$invoice ) {
409
+        global $wpdb;
410
+
411
+        $updated_props   = array();
412
+
413
+        foreach ( $this->database_fields_to_props as $database_field => $prop ) {
414
+            $value = $invoice->{"get_$prop"}( 'edit' );
415
+            $value = is_string( $value ) ? wp_slash( $value ) : $value;
416
+            $value = is_bool( $value ) ? (int) $value : $value;
417
+            $updated_props[ $database_field ] = maybe_serialize( $value );
418
+        }
419
+
420
+        $table = $wpdb->prefix . 'getpaid_invoices';
421
+        $wpdb->insert( $table, $updated_props );
422
+        wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_special_fields' );
423
+        do_action( 'getpaid_invoice_insert_database_fields', $invoice, $updated_props );
424
+
425
+    }
426
+
427
+    /**
428 428
      * Saves all special fields.
429
-	 *
430
-	 * @param WPInv_Invoice $invoice Invoice object.
429
+     *
430
+     * @param WPInv_Invoice $invoice Invoice object.
431 431
      */
432 432
     public function save_special_fields( &$invoice ) {
433
-		global $wpdb;
433
+        global $wpdb;
434 434
 
435
-		// The invoices table.
436
-		$table = $wpdb->prefix . 'getpaid_invoices';
437
-		$id    = (int) $invoice->get_id();
438
-		$invoice->maybe_set_key();
435
+        // The invoices table.
436
+        $table = $wpdb->prefix . 'getpaid_invoices';
437
+        $id    = (int) $invoice->get_id();
438
+        $invoice->maybe_set_key();
439 439
 
440
-		if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) {
440
+        if ( $wpdb->get_var( "SELECT `post_id` FROM $table WHERE `post_id`= $id" ) ) {
441 441
 
442
-			$this->update_special_fields( $invoice );
442
+            $this->update_special_fields( $invoice );
443 443
 
444
-		} else {
444
+        } else {
445 445
 
446
-			$this->insert_special_fields( $invoice );
446
+            $this->insert_special_fields( $invoice );
447 447
 
448
-		}
448
+        }
449 449
 
450
-	}
450
+    }
451 451
 
452
-	/**
452
+    /**
453 453
      * Set's up cart details.
454
-	 *
455
-	 * @param WPInv_Invoice $invoice Invoice object.
454
+     *
455
+     * @param WPInv_Invoice $invoice Invoice object.
456 456
      */
457 457
     public function add_items( &$invoice ) {
458
-		global $wpdb;
458
+        global $wpdb;
459 459
 
460
-		// Maybe retrieve from the cache.
461
-		$items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' );
460
+        // Maybe retrieve from the cache.
461
+        $items = wp_cache_get( $invoice->get_id(), 'getpaid_invoice_cart_details' );
462 462
 
463
-		// If not found, retrieve from the db.
464
-		if ( false === $items ) {
465
-			$table = $wpdb->prefix . 'getpaid_invoice_items';
463
+        // If not found, retrieve from the db.
464
+        if ( false === $items ) {
465
+            $table = $wpdb->prefix . 'getpaid_invoice_items';
466 466
 
467
-			$items = $wpdb->get_results(
468
-				$wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() )
469
-			);
467
+            $items = $wpdb->get_results(
468
+                $wpdb->prepare( "SELECT * FROM $table WHERE `post_id`=%d", $invoice->get_id() )
469
+            );
470 470
 
471
-			// Update the cache with our data
472
-			wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' );
471
+            // Update the cache with our data
472
+            wp_cache_set( $invoice->get_id(), $items, 'getpaid_invoice_cart_details' );
473 473
 
474
-		}
474
+        }
475 475
 
476
-		// Abort if no items found.
476
+        // Abort if no items found.
477 477
         if ( empty( $items ) ) {
478 478
             return;
479
-		}
480
-
481
-		$_items = array();
482
-		foreach ( $items as $item_data ) {
483
-			$item = new GetPaid_Form_Item( $item_data->item_id );
484
-
485
-			// Set item data.
486
-			$item->item_tax      = wpinv_sanitize_amount( $item_data->tax );
487
-			$item->item_discount = wpinv_sanitize_amount( $item_data->discount );
488
-			$item->set_name( $item_data->item_name );
489
-			$item->set_description( $item_data->item_description );
490
-			$item->set_price( $item_data->item_price );
491
-			$item->set_quantity( $item_data->quantity );
492
-			$item->set_item_meta( $item_data->meta );
493
-			$_items[] = $item;
494
-		}
495
-
496
-		$invoice->set_items( $_items );
497
-	}
498
-
499
-	/**
479
+        }
480
+
481
+        $_items = array();
482
+        foreach ( $items as $item_data ) {
483
+            $item = new GetPaid_Form_Item( $item_data->item_id );
484
+
485
+            // Set item data.
486
+            $item->item_tax      = wpinv_sanitize_amount( $item_data->tax );
487
+            $item->item_discount = wpinv_sanitize_amount( $item_data->discount );
488
+            $item->set_name( $item_data->item_name );
489
+            $item->set_description( $item_data->item_description );
490
+            $item->set_price( $item_data->item_price );
491
+            $item->set_quantity( $item_data->quantity );
492
+            $item->set_item_meta( $item_data->meta );
493
+            $_items[] = $item;
494
+        }
495
+
496
+        $invoice->set_items( $_items );
497
+    }
498
+
499
+    /**
500 500
      * Saves cart details.
501
-	 *
502
-	 * @param WPInv_Invoice $invoice Invoice object.
501
+     *
502
+     * @param WPInv_Invoice $invoice Invoice object.
503 503
      */
504 504
     public function save_items( $invoice ) {
505 505
 
506
-		// Delete previously existing items.
507
-		$this->delete_items( $invoice );
506
+        // Delete previously existing items.
507
+        $this->delete_items( $invoice );
508 508
 
509
-		$table   = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items';
509
+        $table   = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items';
510 510
 
511
-		foreach ( $invoice->get_cart_details() as $item_data ) {
512
-			$item_data = array_map( 'maybe_serialize', $item_data );
513
-			$GLOBALS['wpdb']->insert( $table, $item_data );
514
-		}
511
+        foreach ( $invoice->get_cart_details() as $item_data ) {
512
+            $item_data = array_map( 'maybe_serialize', $item_data );
513
+            $GLOBALS['wpdb']->insert( $table, $item_data );
514
+        }
515 515
 
516
-		wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' );
517
-		do_action( 'getpaid_invoice_save_items', $invoice );
516
+        wp_cache_delete( $invoice->get_id(), 'getpaid_invoice_cart_details' );
517
+        do_action( 'getpaid_invoice_save_items', $invoice );
518 518
 
519
-	}
519
+    }
520 520
 
521
-	/**
521
+    /**
522 522
      * Deletes an invoice's cart details from the database.
523
-	 *
524
-	 * @param WPInv_Invoice $invoice Invoice object.
523
+     *
524
+     * @param WPInv_Invoice $invoice Invoice object.
525 525
      */
526 526
     public function delete_items( $invoice ) {
527
-		$table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items';
528
-		return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) );
529
-	}
527
+        $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoice_items';
528
+        return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) );
529
+    }
530 530
 
531
-	/**
531
+    /**
532 532
      * Deletes an invoice's special fields from the database.
533
-	 *
534
-	 * @param WPInv_Invoice $invoice Invoice object.
533
+     *
534
+     * @param WPInv_Invoice $invoice Invoice object.
535 535
      */
536 536
     public function delete_special_fields( $invoice ) {
537
-		$table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices';
538
-		return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) );
539
-	}
540
-
541
-	/**
542
-	 * Get the status to save to the post object.
543
-	 *
544
-	 *
545
-	 * @since 1.0.19
546
-	 * @param  WPInv_Invoice $object GetPaid_Data object.
547
-	 * @return string
548
-	 */
549
-	protected function get_post_status( $object ) {
550
-		$object_status = $object->get_status( 'edit' );
551
-
552
-		if ( ! $object_status ) {
553
-			$object_status = $object->get_default_status();
554
-		}
555
-
556
-		return $object_status;
557
-	}
537
+        $table = $GLOBALS['wpdb']->prefix . 'getpaid_invoices';
538
+        return $GLOBALS['wpdb']->delete( $table, array( 'post_id' => $invoice->get_id() ) );
539
+    }
540
+
541
+    /**
542
+     * Get the status to save to the post object.
543
+     *
544
+     *
545
+     * @since 1.0.19
546
+     * @param  WPInv_Invoice $object GetPaid_Data object.
547
+     * @return string
548
+     */
549
+    protected function get_post_status( $object ) {
550
+        $object_status = $object->get_status( 'edit' );
551
+
552
+        if ( ! $object_status ) {
553
+            $object_status = $object->get_default_status();
554
+        }
555
+
556
+        return $object_status;
557
+    }
558 558
 
559 559
 }
Please login to merge, or discard this patch.
includes/class-wpinv-subscriptions.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -12,8 +12,8 @@  discard block
 block discarded – undo
12 12
 class WPInv_Subscriptions {
13 13
 
14 14
     /**
15
-	 * Class constructor.
16
-	 */
15
+     * Class constructor.
16
+     */
17 17
     public function __construct() {
18 18
 
19 19
         // Fire gateway specific hooks when a subscription changes.
@@ -89,12 +89,12 @@  discard block
 block discarded – undo
89 89
     }
90 90
 
91 91
     /**
92
-	 * Processes subscription status changes.
92
+     * Processes subscription status changes.
93 93
      *
94 94
      * @param WPInv_Subscription $subscription
95 95
      * @param string $from
96 96
      * @param string $to
97
-	 */
97
+     */
98 98
     public function process_subscription_status_change( $subscription, $from, $to ) {
99 99
 
100 100
         $gateway = $subscription->get_gateway();
Please login to merge, or discard this patch.
Spacing   +171 added lines, -171 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
  *
@@ -17,28 +17,28 @@  discard block
 block discarded – undo
17 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 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 );
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( 'wpinv_invoice_metabox_saved', array( $this, 'maybe_update_invoice_subscription' ), 5 );
33
-        add_action( 'getpaid_checkout_invoice_updated', array( $this, 'maybe_update_invoice_subscription' ), 5 );
32
+        add_action('wpinv_invoice_metabox_saved', array($this, 'maybe_update_invoice_subscription'), 5);
33
+        add_action('getpaid_checkout_invoice_updated', array($this, 'maybe_update_invoice_subscription'), 5);
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->exists() ? $subscription : wpinv_get_invoice_subscription( $invoice );
62
+        return $subscription->exists() ? $subscription : wpinv_get_invoice_subscription($invoice);
63 63
     }
64 64
 
65 65
     /**
@@ -67,21 +67,21 @@  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
-        $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
72
+        $subscriptions = getpaid_get_invoice_subscriptions($invoice);
73 73
 
74
-        if ( empty( $subscriptions ) ) {
74
+        if (empty($subscriptions)) {
75 75
             return;
76 76
         }
77 77
 
78
-        if ( ! is_array( $subscriptions ) ) {
79
-            $subscriptions = array( $subscriptions );
78
+        if (!is_array($subscriptions)) {
79
+            $subscriptions = array($subscriptions);
80 80
         }
81 81
 
82
-        foreach ( $subscriptions as $subscription ) {
83
-            if ( $subscription->is_active() ) {
84
-                $subscription->set_status( 'pending' );
82
+        foreach ($subscriptions as $subscription) {
83
+            if ($subscription->is_active()) {
84
+                $subscription->set_status('pending');
85 85
                 $subscription->save();
86 86
             }
87 87
         }
@@ -95,15 +95,15 @@  discard block
 block discarded – undo
95 95
      * @param string $from
96 96
      * @param string $to
97 97
 	 */
98
-    public function process_subscription_status_change( $subscription, $from, $to ) {
98
+    public function process_subscription_status_change($subscription, $from, $to) {
99 99
 
100 100
         $gateway = $subscription->get_gateway();
101 101
 
102
-        if ( ! empty( $gateway ) ) {
103
-            $gateway = sanitize_key( $gateway );
104
-            $from    = sanitize_key( $from );
105
-            $to      = sanitize_key( $to );
106
-            do_action( "getpaid_{$gateway}_subscription_$to", $subscription, $from );
102
+        if (!empty($gateway)) {
103
+            $gateway = sanitize_key($gateway);
104
+            $from    = sanitize_key($from);
105
+            $to      = sanitize_key($to);
106
+            do_action("getpaid_{$gateway}_subscription_$to", $subscription, $from);
107 107
         }
108 108
 
109 109
     }
@@ -116,8 +116,8 @@  discard block
 block discarded – undo
116 116
      * @deprecated
117 117
      * @return mixed|string|void
118 118
      */
119
-    public static function wpinv_get_pretty_subscription_frequency( $period, $frequency_count = 1 ) {
120
-        return getpaid_get_subscription_period_label( $period, $frequency_count );
119
+    public static function wpinv_get_pretty_subscription_frequency($period, $frequency_count = 1) {
120
+        return getpaid_get_subscription_period_label($period, $frequency_count);
121 121
     }
122 122
 
123 123
     /**
@@ -127,21 +127,21 @@  discard block
 block discarded – undo
127 127
      * @since       1.0.0
128 128
      * @return      void
129 129
      */
130
-    public function user_cancel_single_subscription( $data ) {
130
+    public function user_cancel_single_subscription($data) {
131 131
 
132 132
         // Ensure there is a subscription to cancel.
133
-        if ( empty( $data['subscription'] ) ) {
133
+        if (empty($data['subscription'])) {
134 134
             return;
135 135
         }
136 136
 
137
-        $subscription = new WPInv_Subscription( (int) $data['subscription'] );
137
+        $subscription = new WPInv_Subscription((int) $data['subscription']);
138 138
 
139 139
         // Ensure that it exists and that it belongs to the current user.
140
-        if ( ! $subscription->exists() || $subscription->get_customer_id() != get_current_user_id() ) {
140
+        if (!$subscription->exists() || $subscription->get_customer_id() != get_current_user_id()) {
141 141
             $notice = 'perm_cancel_subscription';
142 142
 
143 143
         // Can it be cancelled.
144
-        } elseif ( ! $subscription->can_cancel() ) {
144
+        } elseif (!$subscription->can_cancel()) {
145 145
             $notice = 'cannot_cancel_subscription';
146 146
 
147 147
         // Cancel it.
@@ -157,7 +157,7 @@  discard block
 block discarded – undo
157 157
             'wpinv-notice'   => $notice,
158 158
         );
159 159
 
160
-        wp_safe_redirect( add_query_arg( $redirect ) );
160
+        wp_safe_redirect(add_query_arg($redirect));
161 161
         exit;
162 162
 
163 163
     }
@@ -169,41 +169,41 @@  discard block
 block discarded – undo
169 169
      * @param       WPInv_Invoice $invoice
170 170
      * @since       1.0.0
171 171
      */
172
-    public function maybe_create_invoice_subscription( $invoice ) {
172
+    public function maybe_create_invoice_subscription($invoice) {
173 173
         global $getpaid_subscriptions_skip_invoice_update;
174 174
 
175 175
         // Abort if it is not recurring.
176
-        if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_free() || ! $invoice->is_recurring() || $invoice->is_renewal() ) {
176
+        if (!$invoice->is_type('invoice') || $invoice->is_free() || !$invoice->is_recurring() || $invoice->is_renewal()) {
177 177
             return;
178 178
         }
179 179
 
180 180
         // Either group the subscriptions or only process a single suscription.
181
-        if ( getpaid_should_group_subscriptions( $invoice ) ) {
181
+        if (getpaid_should_group_subscriptions($invoice)) {
182 182
 
183 183
             $subscription_groups = array();
184 184
             $is_first            = true;
185 185
 
186
-            foreach ( getpaid_calculate_subscription_totals( $invoice ) as $group_key => $totals ) {
187
-                $subscription_groups[ $group_key ] = $this->create_invoice_subscription_group( $totals, $invoice, 0, $is_first );
186
+            foreach (getpaid_calculate_subscription_totals($invoice) as $group_key => $totals) {
187
+                $subscription_groups[$group_key] = $this->create_invoice_subscription_group($totals, $invoice, 0, $is_first);
188 188
 
189
-                if ( $is_first ) {
189
+                if ($is_first) {
190 190
                     $getpaid_subscriptions_skip_invoice_update = true;
191
-                    $invoice->set_subscription_id( $subscription_groups[ $group_key ]['subscription_id'] );
191
+                    $invoice->set_subscription_id($subscription_groups[$group_key]['subscription_id']);
192 192
                     $invoice->save();
193 193
                     $getpaid_subscriptions_skip_invoice_update = false;
194 194
                 }
195 195
 
196
-                $is_first                          = false;
196
+                $is_first = false;
197 197
             }
198 198
 
199 199
             // Cache subscription groups.
200
-            update_post_meta( $invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups );
200
+            update_post_meta($invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups);
201 201
             return true;
202 202
 
203 203
         }
204 204
 
205 205
         $subscription = new WPInv_Subscription();
206
-        return $this->update_invoice_subscription( $subscription, $invoice );
206
+        return $this->update_invoice_subscription($subscription, $invoice);
207 207
 
208 208
     }
209 209
 
@@ -218,46 +218,46 @@  discard block
 block discarded – undo
218 218
      *
219 219
      * @since       2.3.0
220 220
      */
221
-    public function create_invoice_subscription_group( $totals, $invoice, $subscription_id = 0, $is_first = false ) {
221
+    public function create_invoice_subscription_group($totals, $invoice, $subscription_id = 0, $is_first = false) {
222 222
 
223
-        $subscription  = new WPInv_Subscription( (int) $subscription_id );
223
+        $subscription  = new WPInv_Subscription((int) $subscription_id);
224 224
         $initial_amt   = $totals['initial_total'];
225 225
         $recurring_amt = $totals['recurring_total'];
226 226
         $fees          = array();
227 227
 
228 228
         // Maybe add recurring fees.
229
-        if ( $is_first ) {
229
+        if ($is_first) {
230 230
 
231
-            foreach ( $invoice->get_fees() as $i => $fee ) {
232
-                if ( ! empty( $fee['recurring_fee'] ) ) {
233
-                    $initial_amt   += wpinv_sanitize_amount( $fee['initial_fee'] );
234
-                    $recurring_amt += wpinv_sanitize_amount( $fee['recurring_fee'] );
235
-                    $fees[ $i ]       = $fee;
231
+            foreach ($invoice->get_fees() as $i => $fee) {
232
+                if (!empty($fee['recurring_fee'])) {
233
+                    $initial_amt   += wpinv_sanitize_amount($fee['initial_fee']);
234
+                    $recurring_amt += wpinv_sanitize_amount($fee['recurring_fee']);
235
+                    $fees[$i] = $fee;
236 236
                 }
237 237
             }
238 238
         }
239 239
 
240
-        $subscription->set_customer_id( $invoice->get_user_id() );
241
-        $subscription->set_parent_invoice_id( $invoice->get_id() );
242
-        $subscription->set_initial_amount( $initial_amt );
243
-        $subscription->set_recurring_amount( $recurring_amt );
244
-        $subscription->set_date_created( current_time( 'mysql' ) );
245
-        $subscription->set_status( $invoice->is_paid() ? 'active' : 'pending' );
246
-        $subscription->set_product_id( $totals['item_id'] );
247
-        $subscription->set_period( $totals['period'] );
248
-        $subscription->set_frequency( $totals['interval'] );
249
-        $subscription->set_bill_times( $totals['recurring_limit'] );
250
-        $subscription->set_next_renewal_date( $totals['renews_on'] );
240
+        $subscription->set_customer_id($invoice->get_user_id());
241
+        $subscription->set_parent_invoice_id($invoice->get_id());
242
+        $subscription->set_initial_amount($initial_amt);
243
+        $subscription->set_recurring_amount($recurring_amt);
244
+        $subscription->set_date_created(current_time('mysql'));
245
+        $subscription->set_status($invoice->is_paid() ? 'active' : 'pending');
246
+        $subscription->set_product_id($totals['item_id']);
247
+        $subscription->set_period($totals['period']);
248
+        $subscription->set_frequency($totals['interval']);
249
+        $subscription->set_bill_times($totals['recurring_limit']);
250
+        $subscription->set_next_renewal_date($totals['renews_on']);
251 251
 
252 252
         // Trial periods.
253
-        if ( ! empty( $totals['trialling'] ) ) {
254
-            $subscription->set_trial_period( $totals['trialling'] );
255
-            $subscription->set_status( 'trialling' );
253
+        if (!empty($totals['trialling'])) {
254
+            $subscription->set_trial_period($totals['trialling']);
255
+            $subscription->set_status('trialling');
256 256
 
257 257
         // If initial amount is free, treat it as a free trial even if the subscription item does not have a free trial.
258
-        } elseif ( empty( $initial_amt ) ) {
259
-            $subscription->set_trial_period( $totals['interval'] . ' ' . $totals['period'] );
260
-            $subscription->set_status( 'trialling' );
258
+        } elseif (empty($initial_amt)) {
259
+            $subscription->set_trial_period($totals['interval'] . ' ' . $totals['period']);
260
+            $subscription->set_status('trialling');
261 261
         }
262 262
 
263 263
         $subscription->save();
@@ -275,86 +275,86 @@  discard block
 block discarded – undo
275 275
      * @param       WPInv_Invoice $invoice
276 276
      * @since       1.0.19
277 277
      */
278
-    public function maybe_update_invoice_subscription( $invoice ) {
278
+    public function maybe_update_invoice_subscription($invoice) {
279 279
         global $getpaid_subscriptions_skip_invoice_update;
280 280
 
281 281
         // Avoid infinite loops.
282
-        if ( ! empty( $getpaid_subscriptions_skip_invoice_update ) ) {
282
+        if (!empty($getpaid_subscriptions_skip_invoice_update)) {
283 283
             return;
284 284
         }
285 285
 
286 286
         // Do not process renewals.
287
-        if ( $invoice->is_renewal() ) {
287
+        if ($invoice->is_renewal()) {
288 288
             return;
289 289
         }
290 290
 
291 291
         // Delete existing subscriptions if available and the invoice is not recurring.
292
-        if ( ! $invoice->is_recurring() ) {
293
-            $this->delete_invoice_subscriptions( $invoice );
292
+        if (!$invoice->is_recurring()) {
293
+            $this->delete_invoice_subscriptions($invoice);
294 294
             return;
295 295
         }
296 296
 
297 297
         // Fetch existing subscriptions.
298
-        $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
298
+        $subscriptions = getpaid_get_invoice_subscriptions($invoice);
299 299
 
300 300
         // Create new ones if no existing subscriptions.
301
-        if ( empty( $subscriptions ) ) {
302
-            return $this->maybe_create_invoice_subscription( $invoice );
301
+        if (empty($subscriptions)) {
302
+            return $this->maybe_create_invoice_subscription($invoice);
303 303
         }
304 304
 
305 305
         // Abort if an invoice is paid and already has a subscription.
306
-        if ( $invoice->is_paid() || $invoice->is_refunded() ) {
306
+        if ($invoice->is_paid() || $invoice->is_refunded()) {
307 307
             return;
308 308
         }
309 309
 
310
-        $is_grouped   = is_array( $subscriptions );
311
-        $should_group = getpaid_should_group_subscriptions( $invoice );
310
+        $is_grouped   = is_array($subscriptions);
311
+        $should_group = getpaid_should_group_subscriptions($invoice);
312 312
 
313 313
         // Ensure that the subscriptions are only grouped if there are more than 1 recurring items.
314
-        if ( $is_grouped != $should_group ) {
315
-            $this->delete_invoice_subscriptions( $invoice );
316
-            delete_post_meta( $invoice->get_id(), 'getpaid_subscription_groups' );
317
-            return $this->maybe_create_invoice_subscription( $invoice );
314
+        if ($is_grouped != $should_group) {
315
+            $this->delete_invoice_subscriptions($invoice);
316
+            delete_post_meta($invoice->get_id(), 'getpaid_subscription_groups');
317
+            return $this->maybe_create_invoice_subscription($invoice);
318 318
         }
319 319
 
320 320
         // If there is only one recurring item...
321
-        if ( ! $is_grouped ) {
322
-            return $this->update_invoice_subscription( $subscriptions, $invoice );
321
+        if (!$is_grouped) {
322
+            return $this->update_invoice_subscription($subscriptions, $invoice);
323 323
         }
324 324
 
325 325
         // Process subscription groups.
326
-        $current_groups      = getpaid_get_invoice_subscription_groups( $invoice->get_id() );
326
+        $current_groups      = getpaid_get_invoice_subscription_groups($invoice->get_id());
327 327
         $subscription_groups = array();
328 328
         $is_first            = true;
329 329
 
330 330
         // Create new subscription groups.
331
-        foreach ( getpaid_calculate_subscription_totals( $invoice ) as $group_key => $totals ) {
332
-            $subscription_id                   = isset( $current_groups[ $group_key ] ) ? $current_groups[ $group_key ]['subscription_id'] : 0;
333
-            $subscription_groups[ $group_key ] = $this->create_invoice_subscription_group( $totals, $invoice, $subscription_id, $is_first );
331
+        foreach (getpaid_calculate_subscription_totals($invoice) as $group_key => $totals) {
332
+            $subscription_id                   = isset($current_groups[$group_key]) ? $current_groups[$group_key]['subscription_id'] : 0;
333
+            $subscription_groups[$group_key] = $this->create_invoice_subscription_group($totals, $invoice, $subscription_id, $is_first);
334 334
 
335
-            if ( $is_first && $invoice->get_subscription_id() !== $subscription_groups[ $group_key ]['subscription_id'] ) {
335
+            if ($is_first && $invoice->get_subscription_id() !== $subscription_groups[$group_key]['subscription_id']) {
336 336
                 $getpaid_subscriptions_skip_invoice_update = true;
337
-                $invoice->set_subscription_id( $subscription_groups[ $group_key ]['subscription_id'] );
337
+                $invoice->set_subscription_id($subscription_groups[$group_key]['subscription_id']);
338 338
                 $invoice->save();
339 339
                 $getpaid_subscriptions_skip_invoice_update = false;
340 340
             }
341 341
 
342
-            $is_first                          = false;
342
+            $is_first = false;
343 343
         }
344 344
 
345 345
         // Delete non-existent subscription groups.
346
-        foreach ( $current_groups as $group_key => $data ) {
347
-            if ( ! isset( $subscription_groups[ $group_key ] ) ) {
348
-                $subscription = new WPInv_Subscription( (int) $data['subscription_id'] );
346
+        foreach ($current_groups as $group_key => $data) {
347
+            if (!isset($subscription_groups[$group_key])) {
348
+                $subscription = new WPInv_Subscription((int) $data['subscription_id']);
349 349
 
350
-                if ( $subscription->exists() ) {
351
-                    $subscription->delete( true );
350
+                if ($subscription->exists()) {
351
+                    $subscription->delete(true);
352 352
                 }
353 353
 }
354 354
         }
355 355
 
356 356
         // Cache subscription groups.
357
-        update_post_meta( $invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups );
357
+        update_post_meta($invoice->get_id(), 'getpaid_subscription_groups', $subscription_groups);
358 358
         return true;
359 359
 
360 360
     }
@@ -364,20 +364,20 @@  discard block
 block discarded – undo
364 364
      *
365 365
      * @param WPInv_Invoice $invoice
366 366
      */
367
-    public function delete_invoice_subscriptions( $invoice ) {
367
+    public function delete_invoice_subscriptions($invoice) {
368 368
 
369
-        $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
369
+        $subscriptions = getpaid_get_invoice_subscriptions($invoice);
370 370
 
371
-        if ( empty( $subscriptions ) ) {
371
+        if (empty($subscriptions)) {
372 372
             return;
373 373
         }
374 374
 
375
-        if ( ! is_array( $subscriptions ) ) {
376
-            $subscriptions = array( $subscriptions );
375
+        if (!is_array($subscriptions)) {
376
+            $subscriptions = array($subscriptions);
377 377
         }
378 378
 
379
-        foreach ( $subscriptions as $subscription ) {
380
-            $subscription->delete( true );
379
+        foreach ($subscriptions as $subscription) {
380
+            $subscription->delete(true);
381 381
         }
382 382
 
383 383
     }
@@ -390,57 +390,57 @@  discard block
 block discarded – undo
390 390
      * @param       WPInv_Invoice $invoice
391 391
      * @since       1.0.19
392 392
      */
393
-    public function update_invoice_subscription( $subscription, $invoice ) {
393
+    public function update_invoice_subscription($subscription, $invoice) {
394 394
 
395 395
         // Delete the subscription if an invoice is free or nolonger recurring.
396
-        if ( ! $invoice->is_type( 'invoice' ) || $invoice->is_free() || ! $invoice->is_recurring() ) {
396
+        if (!$invoice->is_type('invoice') || $invoice->is_free() || !$invoice->is_recurring()) {
397 397
             return $subscription->delete();
398 398
         }
399 399
 
400
-        $subscription->set_customer_id( $invoice->get_user_id() );
401
-        $subscription->set_parent_invoice_id( $invoice->get_id() );
402
-        $subscription->set_initial_amount( $invoice->get_initial_total() );
403
-        $subscription->set_recurring_amount( $invoice->get_recurring_total() );
404
-        $subscription->set_date_created( current_time( 'mysql' ) );
405
-        $subscription->set_status( $invoice->is_paid() ? 'active' : 'pending' );
400
+        $subscription->set_customer_id($invoice->get_user_id());
401
+        $subscription->set_parent_invoice_id($invoice->get_id());
402
+        $subscription->set_initial_amount($invoice->get_initial_total());
403
+        $subscription->set_recurring_amount($invoice->get_recurring_total());
404
+        $subscription->set_date_created(current_time('mysql'));
405
+        $subscription->set_status($invoice->is_paid() ? 'active' : 'pending');
406 406
 
407 407
         // Get the recurring item and abort if it does not exist.
408
-        $subscription_item = $invoice->get_recurring( true );
409
-        if ( ! $subscription_item->get_id() ) {
410
-            $invoice->set_subscription_id( 0 );
408
+        $subscription_item = $invoice->get_recurring(true);
409
+        if (!$subscription_item->get_id()) {
410
+            $invoice->set_subscription_id(0);
411 411
             $invoice->save();
412 412
             return $subscription->delete();
413 413
         }
414 414
 
415
-        $subscription->set_product_id( $subscription_item->get_id() );
416
-        $subscription->set_period( $subscription_item->get_recurring_period( true ) );
417
-        $subscription->set_frequency( $subscription_item->get_recurring_interval() );
418
-        $subscription->set_bill_times( $subscription_item->get_recurring_limit() );
415
+        $subscription->set_product_id($subscription_item->get_id());
416
+        $subscription->set_period($subscription_item->get_recurring_period(true));
417
+        $subscription->set_frequency($subscription_item->get_recurring_interval());
418
+        $subscription->set_bill_times($subscription_item->get_recurring_limit());
419 419
 
420 420
         // Calculate the next renewal date.
421
-        $period       = $subscription_item->get_recurring_period( true );
421
+        $period       = $subscription_item->get_recurring_period(true);
422 422
         $interval     = $subscription_item->get_recurring_interval();
423 423
 
424 424
         // If the subscription item has a trial period...
425
-        if ( $subscription_item->has_free_trial() ) {
426
-            $period   = $subscription_item->get_trial_period( true );
425
+        if ($subscription_item->has_free_trial()) {
426
+            $period   = $subscription_item->get_trial_period(true);
427 427
             $interval = $subscription_item->get_trial_interval();
428
-            $subscription->set_trial_period( $interval . ' ' . $period );
429
-            $subscription->set_status( 'trialling' );
428
+            $subscription->set_trial_period($interval . ' ' . $period);
429
+            $subscription->set_status('trialling');
430 430
         }
431 431
 
432 432
         // If initial amount is free, treat it as a free trial even if the subscription item does not have a free trial.
433
-        if ( $invoice->has_free_trial() ) {
434
-            $subscription->set_trial_period( $interval . ' ' . $period );
435
-            $subscription->set_status( 'trialling' );
433
+        if ($invoice->has_free_trial()) {
434
+            $subscription->set_trial_period($interval . ' ' . $period);
435
+            $subscription->set_status('trialling');
436 436
         }
437 437
 
438 438
         // Calculate the next renewal date.
439
-        $expiration = date( 'Y-m-d H:i:s', strtotime( "+$interval $period", strtotime( $subscription->get_date_created() ) ) );
439
+        $expiration = date('Y-m-d H:i:s', strtotime("+$interval $period", strtotime($subscription->get_date_created())));
440 440
 
441
-        $subscription->set_next_renewal_date( $expiration );
441
+        $subscription->set_next_renewal_date($expiration);
442 442
         $subscription->save();
443
-        $invoice->set_subscription_id( $subscription->get_id() );
443
+        $invoice->set_subscription_id($subscription->get_id());
444 444
         return $subscription->get_id();
445 445
 
446 446
     }
@@ -451,34 +451,34 @@  discard block
 block discarded – undo
451 451
      * @param       array $data
452 452
      * @since       1.0.19
453 453
      */
454
-    public function admin_update_single_subscription( $args ) {
454
+    public function admin_update_single_subscription($args) {
455 455
 
456 456
         // Ensure the subscription exists and that a status has been given.
457
-        if ( empty( $args['subscription_id'] ) ) {
457
+        if (empty($args['subscription_id'])) {
458 458
             return;
459 459
         }
460 460
 
461 461
         // Retrieve the subscriptions.
462
-        $subscription = new WPInv_Subscription( $args['subscription_id'] );
462
+        $subscription = new WPInv_Subscription($args['subscription_id']);
463 463
 
464
-        if ( $subscription->get_id() ) {
464
+        if ($subscription->get_id()) {
465 465
 
466 466
             $subscription->set_props(
467 467
                 array(
468
-                    'status'       => isset( $args['subscription_status'] ) ? $args['subscription_status'] : null,
469
-                    'profile_id'   => isset( $args['wpinv_subscription_profile_id'] ) ? $args['wpinv_subscription_profile_id'] : null,
470
-                    'date_created' => ! empty( $args['wpinv_subscription_date_created'] ) ? $args['wpinv_subscription_date_created'] : null,
471
-                    'expiration'   => ! empty( $args['wpinv_subscription_expiration'] ) ? $args['wpinv_subscription_expiration'] : null,
472
-                    'bill_times'   => ! empty( $args['wpinv_subscription_max_bill_times'] ) ? $args['wpinv_subscription_max_bill_times'] : null,
468
+                    'status'       => isset($args['subscription_status']) ? $args['subscription_status'] : null,
469
+                    'profile_id'   => isset($args['wpinv_subscription_profile_id']) ? $args['wpinv_subscription_profile_id'] : null,
470
+                    'date_created' => !empty($args['wpinv_subscription_date_created']) ? $args['wpinv_subscription_date_created'] : null,
471
+                    'expiration'   => !empty($args['wpinv_subscription_expiration']) ? $args['wpinv_subscription_expiration'] : null,
472
+                    'bill_times'   => !empty($args['wpinv_subscription_max_bill_times']) ? $args['wpinv_subscription_max_bill_times'] : null,
473 473
                 )
474 474
             );
475 475
 
476 476
             $changes = $subscription->get_changes();
477 477
 
478 478
             $subscription->save();
479
-            getpaid_admin()->show_info( __( 'Subscription updated', 'invoicing' ) );
479
+            getpaid_admin()->show_info(__('Subscription updated', 'invoicing'));
480 480
 
481
-            do_action( 'getpaid_admin_updated_subscription', $subscription, $args, $changes );
481
+            do_action('getpaid_admin_updated_subscription', $subscription, $args, $changes);
482 482
         }
483 483
 
484 484
     }
@@ -489,27 +489,27 @@  discard block
 block discarded – undo
489 489
      * @param       array $data
490 490
      * @since       1.0.19
491 491
      */
492
-    public function admin_renew_single_subscription( $args ) {
492
+    public function admin_renew_single_subscription($args) {
493 493
 
494 494
         // Ensure the subscription exists and that a status has been given.
495
-        if ( empty( $args['id'] ) ) {
495
+        if (empty($args['id'])) {
496 496
             return;
497 497
         }
498 498
 
499 499
         // Retrieve the subscriptions.
500
-        $subscription = new WPInv_Subscription( $args['id'] );
500
+        $subscription = new WPInv_Subscription($args['id']);
501 501
 
502
-        if ( $subscription->get_id() ) {
502
+        if ($subscription->get_id()) {
503 503
 
504
-            do_action( 'getpaid_admin_renew_subscription', $subscription );
504
+            do_action('getpaid_admin_renew_subscription', $subscription);
505 505
 
506
-            $args = array( 'transaction_id', $subscription->get_parent_invoice()->generate_key( 'renewal_' ) );
506
+            $args = array('transaction_id', $subscription->get_parent_invoice()->generate_key('renewal_'));
507 507
 
508
-            if ( ! $subscription->add_payment( $args ) ) {
509
-                getpaid_admin()->show_error( __( 'We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing' ) );
508
+            if (!$subscription->add_payment($args)) {
509
+                getpaid_admin()->show_error(__('We are unable to renew this subscription as the parent invoice does not exist.', 'invoicing'));
510 510
             } else {
511 511
                 $subscription->renew();
512
-                getpaid_admin()->show_info( __( 'This subscription has been renewed and extended.', 'invoicing' ) );
512
+                getpaid_admin()->show_info(__('This subscription has been renewed and extended.', 'invoicing'));
513 513
             }
514 514
 
515 515
             wp_safe_redirect(
@@ -532,20 +532,20 @@  discard block
 block discarded – undo
532 532
      * @param       array $data
533 533
      * @since       1.0.19
534 534
      */
535
-    public function admin_delete_single_subscription( $args ) {
535
+    public function admin_delete_single_subscription($args) {
536 536
 
537 537
         // Ensure the subscription exists and that a status has been given.
538
-        if ( empty( $args['id'] ) ) {
538
+        if (empty($args['id'])) {
539 539
             return;
540 540
         }
541 541
 
542 542
         // Retrieve the subscriptions.
543
-        $subscription = new WPInv_Subscription( $args['id'] );
543
+        $subscription = new WPInv_Subscription($args['id']);
544 544
 
545
-        if ( $subscription->delete() ) {
546
-            getpaid_admin()->show_info( __( 'This subscription has been deleted.', 'invoicing' ) );
545
+        if ($subscription->delete()) {
546
+            getpaid_admin()->show_info(__('This subscription has been deleted.', 'invoicing'));
547 547
         } else {
548
-            getpaid_admin()->show_error( __( 'We are unable to delete this subscription. Please try again.', 'invoicing' ) );
548
+            getpaid_admin()->show_error(__('We are unable to delete this subscription. Please try again.', 'invoicing'));
549 549
         }
550 550
 
551 551
         $redirected = wp_safe_redirect(
@@ -558,7 +558,7 @@  discard block
 block discarded – undo
558 558
             )
559 559
         );
560 560
 
561
-        if ( $redirected ) {
561
+        if ($redirected) {
562 562
             exit;
563 563
         }
564 564
 
@@ -571,16 +571,16 @@  discard block
 block discarded – undo
571 571
      * @param WPInv_Item $item
572 572
      * @param WPInv_Invoice $invoice
573 573
      */
574
-    public function filter_invoice_line_item_actions( $actions, $item, $invoice ) {
574
+    public function filter_invoice_line_item_actions($actions, $item, $invoice) {
575 575
 
576 576
         // Abort if this invoice uses subscription groups.
577
-        $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
578
-        if ( ! $invoice->is_recurring() || ! is_object( $subscriptions ) ) {
577
+        $subscriptions = getpaid_get_invoice_subscriptions($invoice);
578
+        if (!$invoice->is_recurring() || !is_object($subscriptions)) {
579 579
             return $actions;
580 580
         }
581 581
 
582 582
         // Fetch item subscription.
583
-        $args  = array(
583
+        $args = array(
584 584
             'invoice_in'  => $invoice->is_parent() ? $invoice->get_id() : $invoice->get_parent_id(),
585 585
             'product_in'  => $item->get_id(),
586 586
             'number'      => 1,
@@ -588,13 +588,13 @@  discard block
 block discarded – undo
588 588
             'fields'      => 'id',
589 589
         );
590 590
 
591
-        $subscription = new GetPaid_Subscriptions_Query( $args );
591
+        $subscription = new GetPaid_Subscriptions_Query($args);
592 592
         $subscription = $subscription->get_results();
593 593
 
594 594
         // In case we found a match...
595
-        if ( ! empty( $subscription ) ) {
596
-            $url                     = esc_url( add_query_arg( 'subscription', (int) $subscription[0], get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) ) );
597
-            $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __( 'Manage Subscription', 'invoicing' ) . '</a>';
595
+        if (!empty($subscription)) {
596
+            $url                     = esc_url(add_query_arg('subscription', (int) $subscription[0], get_permalink((int) wpinv_get_option('invoice_subscription_page'))));
597
+            $actions['subscription'] = "<a href='$url' class='text-decoration-none'>" . __('Manage Subscription', 'invoicing') . '</a>';
598 598
         }
599 599
 
600 600
         return $actions;
Please login to merge, or discard this patch.
includes/wpinv-gateway-functions.php 2 patches
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -271,26 +271,26 @@  discard block
 block discarded – undo
271 271
 }
272 272
 
273 273
 function wpinv_get_chosen_gateway( $invoice_id = 0 ) {
274
-	$gateways = array_keys( wpinv_get_enabled_payment_gateways() );
274
+    $gateways = array_keys( wpinv_get_enabled_payment_gateways() );
275 275
 
276 276
     $chosen = false;
277 277
     if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) {
278 278
         $chosen = $invoice->get_gateway();
279 279
     }
280 280
 
281
-	$chosen   = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen;
281
+    $chosen   = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen;
282 282
 
283
-	if ( false !== $chosen ) {
284
-		$chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen );
285
-	}
283
+    if ( false !== $chosen ) {
284
+        $chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen );
285
+    }
286 286
 
287
-	if ( ! empty( $chosen ) ) {
288
-		$enabled_gateway = urldecode( $chosen );
289
-	} elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) {
290
-		$enabled_gateway = 'manual';
291
-	} else {
292
-		$enabled_gateway = wpinv_get_default_gateway();
293
-	}
287
+    if ( ! empty( $chosen ) ) {
288
+        $enabled_gateway = urldecode( $chosen );
289
+    } elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) {
290
+        $enabled_gateway = 'manual';
291
+    } else {
292
+        $enabled_gateway = wpinv_get_default_gateway();
293
+    }
294 294
 
295 295
     if ( ! wpinv_is_gateway_active( $enabled_gateway ) && ! empty( $gateways ) ) {
296 296
         if ( wpinv_is_gateway_active( wpinv_get_default_gateway() ) ) {
@@ -300,7 +300,7 @@  discard block
 block discarded – undo
300 300
         }
301 301
 }
302 302
 
303
-	return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway );
303
+    return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway );
304 304
 }
305 305
 
306 306
 function wpinv_record_gateway_error( $title = '', $message = '' ) {
@@ -308,22 +308,22 @@  discard block
 block discarded – undo
308 308
 }
309 309
 
310 310
 function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) {
311
-	$ret  = 0;
312
-	$args = array(
313
-		'meta_key'    => '_wpinv_gateway',
314
-		'meta_value'  => $gateway_id,
315
-		'nopaging'    => true,
316
-		'post_type'   => 'wpi_invoice',
317
-		'post_status' => $status,
318
-		'fields'      => 'ids',
319
-	);
320
-
321
-	$payments = new WP_Query( $args );
322
-
323
-	if ( $payments ) {
324
-		$ret = $payments->post_count;
311
+    $ret  = 0;
312
+    $args = array(
313
+        'meta_key'    => '_wpinv_gateway',
314
+        'meta_value'  => $gateway_id,
315
+        'nopaging'    => true,
316
+        'post_type'   => 'wpi_invoice',
317
+        'post_status' => $status,
318
+        'fields'      => 'ids',
319
+    );
320
+
321
+    $payments = new WP_Query( $args );
322
+
323
+    if ( $payments ) {
324
+        $ret = $payments->post_count;
325 325
     }
326
-	return $ret;
326
+    return $ret;
327 327
 }
328 328
 
329 329
 /**
Please login to merge, or discard this patch.
Spacing   +123 added lines, -123 removed lines patch added patch discarded remove patch
@@ -3,7 +3,7 @@  discard block
 block discarded – undo
3 3
  * Contains gateway functions.
4 4
  *
5 5
  */
6
-defined( 'ABSPATH' ) || exit;
6
+defined('ABSPATH') || exit;
7 7
 
8 8
 /**
9 9
  * Returns an array of payment gateways.
@@ -11,30 +11,30 @@  discard block
 block discarded – undo
11 11
  * @return array
12 12
  */
13 13
 function wpinv_get_payment_gateways() {
14
-    return apply_filters( 'wpinv_payment_gateways', array() );
14
+    return apply_filters('wpinv_payment_gateways', array());
15 15
 }
16 16
 
17
-function wpinv_payment_gateway_titles( $all_gateways ) {
17
+function wpinv_payment_gateway_titles($all_gateways) {
18 18
 
19 19
     $options  = wpinv_get_options();
20 20
     $gateways = array();
21
-    foreach ( $all_gateways as $key => $gateway ) {
22
-        if ( ! empty( $options[ $key . '_title' ] ) ) {
23
-            $all_gateways[ $key ]['checkout_label'] = __( $options[ $key . '_title' ], 'invoicing' );
21
+    foreach ($all_gateways as $key => $gateway) {
22
+        if (!empty($options[$key . '_title'])) {
23
+            $all_gateways[$key]['checkout_label'] = __($options[$key . '_title'], 'invoicing');
24 24
         }
25 25
 
26
-        $gateways[ $key ] = isset( $options[ $key . '_ordering' ] ) ? $options[ $key . '_ordering' ] : ( isset( $gateway['ordering'] ) ? $gateway['ordering'] : '' );
26
+        $gateways[$key] = isset($options[$key . '_ordering']) ? $options[$key . '_ordering'] : (isset($gateway['ordering']) ? $gateway['ordering'] : '');
27 27
     }
28 28
 
29
-    asort( $gateways );
29
+    asort($gateways);
30 30
 
31
-    foreach ( $gateways as $gateway => $key ) {
32
-        $gateways[ $gateway ] = $all_gateways[ $gateway ];
31
+    foreach ($gateways as $gateway => $key) {
32
+        $gateways[$gateway] = $all_gateways[$gateway];
33 33
     }
34 34
 
35 35
     return $gateways;
36 36
 }
37
-add_filter( 'wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1 );
37
+add_filter('wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1);
38 38
 
39 39
 /**
40 40
  * Returns an array of enabled gateways.
@@ -42,36 +42,36 @@  discard block
 block discarded – undo
42 42
  * @param bool $sort
43 43
  * @return array
44 44
  */
45
-function wpinv_get_enabled_payment_gateways( $sort = false ) {
45
+function wpinv_get_enabled_payment_gateways($sort = false) {
46 46
 
47 47
     $enabled = array();
48 48
 
49
-    foreach ( wpinv_get_payment_gateways() as $gateway => $data ) {
49
+    foreach (wpinv_get_payment_gateways() as $gateway => $data) {
50 50
 
51
-        if ( (int) wpinv_get_option( "{$gateway}_active", $gateway === 'manual' ) === 1 ) {
52
-            $enabled[ $gateway ] = $data;
51
+        if ((int) wpinv_get_option("{$gateway}_active", $gateway === 'manual') === 1) {
52
+            $enabled[$gateway] = $data;
53 53
         }
54 54
 }
55 55
 
56
-    if ( true === $sort ) {
57
-        uasort( $enabled, 'wpinv_sort_gateway_order' );
56
+    if (true === $sort) {
57
+        uasort($enabled, 'wpinv_sort_gateway_order');
58 58
 
59 59
         // Reorder our gateways so the default is first
60 60
         $default_gateway_id = wpinv_get_default_gateway();
61
-        if ( isset( $enabled[ $default_gateway_id ] ) ) {
61
+        if (isset($enabled[$default_gateway_id])) {
62 62
             $default_gateway = array(
63
-                $default_gateway_id => $enabled[ $default_gateway_id ],
63
+                $default_gateway_id => $enabled[$default_gateway_id],
64 64
             );
65 65
 
66
-            unset( $enabled[ $default_gateway_id ] );
67
-            $enabled = array_merge( $default_gateway, $enabled );
66
+            unset($enabled[$default_gateway_id]);
67
+            $enabled = array_merge($default_gateway, $enabled);
68 68
         }
69 69
 }
70 70
 
71
-    return apply_filters( 'wpinv_enabled_payment_gateways', $enabled );
71
+    return apply_filters('wpinv_enabled_payment_gateways', $enabled);
72 72
 }
73 73
 
74
-function wpinv_sort_gateway_order( $a, $b ) {
74
+function wpinv_sort_gateway_order($a, $b) {
75 75
     return $a['ordering'] - $b['ordering'];
76 76
 }
77 77
 
@@ -81,9 +81,9 @@  discard block
 block discarded – undo
81 81
  * @param string $gateway
82 82
  * @return bool
83 83
  */
84
-function wpinv_is_gateway_active( $gateway ) {
85
-    $is_active = (int) wpinv_get_option( "{$gateway}_active", $gateway === 'manual' ) === 1;
86
-    return apply_filters( 'wpinv_is_gateway_active', $is_active, $gateway );
84
+function wpinv_is_gateway_active($gateway) {
85
+    $is_active = (int) wpinv_get_option("{$gateway}_active", $gateway === 'manual') === 1;
86
+    return apply_filters('wpinv_is_gateway_active', $is_active, $gateway);
87 87
 }
88 88
 
89 89
 /**
@@ -92,11 +92,11 @@  discard block
 block discarded – undo
92 92
  * @return string|false
93 93
  */
94 94
 function wpinv_get_default_gateway() {
95
-    $default  = wpinv_get_option( 'default_gateway' );
95
+    $default  = wpinv_get_option('default_gateway');
96 96
     $gateways = wpinv_get_enabled_payment_gateways();
97
-    $default  = ! empty( $default ) && isset( $gateways[ $default ] ) ? $default : false;
97
+    $default  = !empty($default) && isset($gateways[$default]) ? $default : false;
98 98
 
99
-    return apply_filters( 'wpinv_default_gateway', $default );
99
+    return apply_filters('wpinv_default_gateway', $default);
100 100
 }
101 101
 
102 102
 /**
@@ -105,17 +105,17 @@  discard block
 block discarded – undo
105 105
  * @param string $gateway The gateway to key.
106 106
  * @return string
107 107
  */
108
-function wpinv_get_gateway_admin_label( $gateway ) {
108
+function wpinv_get_gateway_admin_label($gateway) {
109 109
 
110
-    if ( empty( $gateway ) || 'none' == $gateway ) {
111
-        return esc_html__( 'No Gateway', 'invoicing' );
110
+    if (empty($gateway) || 'none' == $gateway) {
111
+        return esc_html__('No Gateway', 'invoicing');
112 112
     }
113 113
 
114 114
     $gateways = wpinv_get_payment_gateways();
115
-    $label    = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['admin_label'] : $gateway;
116
-    $gateway  = apply_filters( 'wpinv_gateway_admin_label', $label, $gateway );
115
+    $label    = isset($gateways[$gateway]) ? $gateways[$gateway]['admin_label'] : $gateway;
116
+    $gateway  = apply_filters('wpinv_gateway_admin_label', $label, $gateway);
117 117
 
118
-    return wpinv_clean( $gateway );
118
+    return wpinv_clean($gateway);
119 119
 }
120 120
 
121 121
 /**
@@ -123,48 +123,48 @@  discard block
 block discarded – undo
123 123
  *
124 124
  * @param string $gateway
125 125
  */
126
-function wpinv_get_gateway_description( $gateway ) {
126
+function wpinv_get_gateway_description($gateway) {
127 127
 
128 128
     $options     = wpinv_get_options();
129
-    $description = ! empty( $options[ $gateway . '_desc' ] ) ? $options[ $gateway . '_desc' ] : '';
129
+    $description = !empty($options[$gateway . '_desc']) ? $options[$gateway . '_desc'] : '';
130 130
 
131
-    return apply_filters( 'wpinv_gateway_description', $description, $gateway );
131
+    return apply_filters('wpinv_gateway_description', $description, $gateway);
132 132
 }
133 133
 
134
-function wpinv_get_gateway_button_label( $gateway ) {
135
-    return apply_filters( 'wpinv_gateway_' . $gateway . '_button_label', '' );
134
+function wpinv_get_gateway_button_label($gateway) {
135
+    return apply_filters('wpinv_gateway_' . $gateway . '_button_label', '');
136 136
 }
137 137
 
138
-function wpinv_get_gateway_checkout_label( $gateway ) {
138
+function wpinv_get_gateway_checkout_label($gateway) {
139 139
     $gateways = wpinv_get_payment_gateways();
140
-    $label    = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['checkout_label'] : $gateway;
140
+    $label    = isset($gateways[$gateway]) ? $gateways[$gateway]['checkout_label'] : $gateway;
141 141
 
142
-    if ( $gateway == 'none' ) {
143
-        $label = __( 'None', 'invoicing' );
142
+    if ($gateway == 'none') {
143
+        $label = __('None', 'invoicing');
144 144
     }
145 145
 
146
-    return apply_filters( 'wpinv_gateway_checkout_label', ucfirst( $label ), $gateway );
146
+    return apply_filters('wpinv_gateway_checkout_label', ucfirst($label), $gateway);
147 147
 }
148 148
 
149
-function wpinv_settings_sections_gateways( $settings ) {
149
+function wpinv_settings_sections_gateways($settings) {
150 150
     $gateways = wpinv_get_payment_gateways();
151
-    ksort( $gateways );
151
+    ksort($gateways);
152 152
 
153
-    foreach ( $gateways as $key => $gateway ) {
154
-        $settings[ $key ] = $gateway['admin_label'];
153
+    foreach ($gateways as $key => $gateway) {
154
+        $settings[$key] = $gateway['admin_label'];
155 155
     }
156 156
 
157 157
     return $settings;
158 158
 }
159
-add_filter( 'wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1 );
159
+add_filter('wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1);
160 160
 
161 161
 /**
162 162
  * Adds GateWay settings.
163 163
  */
164
-function wpinv_settings_gateways( $settings ) {
164
+function wpinv_settings_gateways($settings) {
165 165
 
166 166
     // Loop through each gateway.
167
-    foreach ( wpinv_get_payment_gateways() as $key => $gateway ) {
167
+    foreach (wpinv_get_payment_gateways() as $key => $gateway) {
168 168
 
169 169
         $gateway_settings = array(
170 170
 
@@ -172,7 +172,7 @@  discard block
 block discarded – undo
172 172
             "{$key}_header"   => array(
173 173
 
174 174
                 'id'     => "{$key}_gateway_header",
175
-                'name'   => '<h3>' . wp_sprintf( __( '%s Settings', 'invoicing' ), $gateway['admin_label'] ) . '</h3>',
175
+                'name'   => '<h3>' . wp_sprintf(__('%s Settings', 'invoicing'), $gateway['admin_label']) . '</h3>',
176 176
                 'custom' => $key,
177 177
                 'type'   => 'gateway_header',
178 178
 
@@ -181,8 +181,8 @@  discard block
 block discarded – undo
181 181
             // Activate/Deactivate a gateway.
182 182
             "{$key}_active"   => array(
183 183
                 'id'   => $key . '_active',
184
-                'name' => __( 'Activate', 'invoicing' ),
185
-                'desc' => wp_sprintf( __( 'Enable %s', 'invoicing' ), $gateway['admin_label'] ),
184
+                'name' => __('Activate', 'invoicing'),
185
+                'desc' => wp_sprintf(__('Enable %s', 'invoicing'), $gateway['admin_label']),
186 186
                 'type' => 'checkbox',
187 187
                 'std'  => $key === 'manual' ? '1' : '0',
188 188
             ),
@@ -190,8 +190,8 @@  discard block
 block discarded – undo
190 190
             // Activate/Deactivate sandbox.
191 191
             "{$key}_sandbox"  => array(
192 192
                 'id'   => $key . '_sandbox',
193
-                'name' => __( 'Sandbox', 'invoicing' ),
194
-                'desc' => __( 'Enable sandbox to test payments', 'invoicing' ),
193
+                'name' => __('Sandbox', 'invoicing'),
194
+                'desc' => __('Enable sandbox to test payments', 'invoicing'),
195 195
                 'type' => 'checkbox',
196 196
                 'std'  => '1',
197 197
             ),
@@ -199,52 +199,52 @@  discard block
 block discarded – undo
199 199
             // Checkout title.
200 200
             "{$key}_title"    => array(
201 201
                 'id'   => $key . '_title',
202
-                'name' => __( 'Checkout Title', 'invoicing' ),
203
-                'std'  => isset( $gateway['checkout_label'] ) ? $gateway['checkout_label'] : '',
202
+                'name' => __('Checkout Title', 'invoicing'),
203
+                'std'  => isset($gateway['checkout_label']) ? $gateway['checkout_label'] : '',
204 204
                 'type' => 'text',
205 205
             ),
206 206
 
207 207
             // Checkout description.
208 208
             "{$key}_desc"     => array(
209 209
                 'id'   => $key . '_desc',
210
-                'name' => __( 'Checkout Description', 'invoicing' ),
211
-                'std'  => apply_filters( "getpaid_default_{$key}_checkout_description", '' ),
210
+                'name' => __('Checkout Description', 'invoicing'),
211
+                'std'  => apply_filters("getpaid_default_{$key}_checkout_description", ''),
212 212
                 'type' => 'text',
213 213
             ),
214 214
 
215 215
             // Checkout order.
216 216
             "{$key}_ordering" => array(
217 217
                 'id'   => $key . '_ordering',
218
-                'name' => __( 'Priority', 'invoicing' ),
219
-                'std'  => apply_filters( "getpaid_default_{$key}_checkout_description", '' ),
218
+                'name' => __('Priority', 'invoicing'),
219
+                'std'  => apply_filters("getpaid_default_{$key}_checkout_description", ''),
220 220
                 'type' => 'number',
221 221
                 'step' => '1',
222 222
                 'min'  => '0',
223 223
                 'max'  => '100000',
224
-                'std'  => isset( $gateway['ordering'] ) ? $gateway['ordering'] : '10',
224
+                'std'  => isset($gateway['ordering']) ? $gateway['ordering'] : '10',
225 225
             ),
226 226
 
227 227
         );
228 228
 
229 229
         // Maybe remove the sandbox.
230
-        if ( ! getpaid_payment_gateway_supports( $key, 'sandbox' ) ) {
231
-            unset( $gateway_settings[ "{$key}_sandbox" ] );
230
+        if (!getpaid_payment_gateway_supports($key, 'sandbox')) {
231
+            unset($gateway_settings["{$key}_sandbox"]);
232 232
         }
233 233
 
234
-        $gateway_settings = apply_filters( 'wpinv_gateway_settings', $gateway_settings, $key, $gateway );
235
-        $gateway_settings = apply_filters( 'wpinv_gateway_settings_' . $key, $gateway_settings, $gateway );
234
+        $gateway_settings = apply_filters('wpinv_gateway_settings', $gateway_settings, $key, $gateway);
235
+        $gateway_settings = apply_filters('wpinv_gateway_settings_' . $key, $gateway_settings, $gateway);
236 236
 
237
-        $settings[ $key ] = $gateway_settings;
237
+        $settings[$key] = $gateway_settings;
238 238
     }
239 239
 
240
-    do_action( 'getpaid_after_gateway_settings', $settings );
240
+    do_action('getpaid_after_gateway_settings', $settings);
241 241
     return $settings;
242 242
 
243 243
 }
244
-add_filter( 'wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1 );
244
+add_filter('wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1);
245 245
 
246
-function wpinv_gateway_header_callback( $args ) {
247
-    echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr( $args['custom'] ) . '" />';
246
+function wpinv_gateway_header_callback($args) {
247
+    echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr($args['custom']) . '" />';
248 248
 }
249 249
 
250 250
 /**
@@ -255,60 +255,60 @@  discard block
 block discarded – undo
255 255
  * @return bool
256 256
  * @since 2.3.0
257 257
  */
258
-function getpaid_payment_gateway_supports( $gateway, $feature ) {
258
+function getpaid_payment_gateway_supports($gateway, $feature) {
259 259
 
260 260
     $supports = false;
261 261
 
262
-    $supports = apply_filters( "getpaid_{$gateway}_supports_{$feature}", false );
262
+    $supports = apply_filters("getpaid_{$gateway}_supports_{$feature}", false);
263 263
 
264 264
     // Backwards compatibility.
265
-    $supports = apply_filters( "wpinv_{$gateway}_supports_{$feature}", $supports );
266
-    $supports = apply_filters( "wpinv_{$gateway}_support_{$feature}", $supports );
265
+    $supports = apply_filters("wpinv_{$gateway}_supports_{$feature}", $supports);
266
+    $supports = apply_filters("wpinv_{$gateway}_support_{$feature}", $supports);
267 267
 
268
-    $supports = apply_filters( "getpaid_gateway_supports_{$feature}", $supports, $gateway );
269
-    $supports = apply_filters( 'getpaid_payment_gateway_supports', $supports, $feature, $gateway );
268
+    $supports = apply_filters("getpaid_gateway_supports_{$feature}", $supports, $gateway);
269
+    $supports = apply_filters('getpaid_payment_gateway_supports', $supports, $feature, $gateway);
270 270
 
271 271
     return $supports;
272 272
 }
273 273
 
274
-function wpinv_get_chosen_gateway( $invoice_id = 0 ) {
275
-	$gateways = array_keys( wpinv_get_enabled_payment_gateways() );
274
+function wpinv_get_chosen_gateway($invoice_id = 0) {
275
+	$gateways = array_keys(wpinv_get_enabled_payment_gateways());
276 276
 
277 277
     $chosen = false;
278
-    if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) {
278
+    if ($invoice_id > 0 && $invoice = wpinv_get_invoice($invoice_id)) {
279 279
         $chosen = $invoice->get_gateway();
280 280
     }
281 281
 
282
-	$chosen   = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen;
282
+	$chosen = isset($_REQUEST['payment-mode']) ? sanitize_text_field($_REQUEST['payment-mode']) : $chosen;
283 283
 
284
-	if ( false !== $chosen ) {
285
-		$chosen = preg_replace( '/[^a-zA-Z0-9-_]+/', '', $chosen );
284
+	if (false !== $chosen) {
285
+		$chosen = preg_replace('/[^a-zA-Z0-9-_]+/', '', $chosen);
286 286
 	}
287 287
 
288
-	if ( ! empty( $chosen ) ) {
289
-		$enabled_gateway = urldecode( $chosen );
290
-	} elseif ( ! empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) {
288
+	if (!empty($chosen)) {
289
+		$enabled_gateway = urldecode($chosen);
290
+	} elseif (!empty($invoice) && (float) $invoice->get_subtotal() <= 0) {
291 291
 		$enabled_gateway = 'manual';
292 292
 	} else {
293 293
 		$enabled_gateway = wpinv_get_default_gateway();
294 294
 	}
295 295
 
296
-    if ( ! wpinv_is_gateway_active( $enabled_gateway ) && ! empty( $gateways ) ) {
297
-        if ( wpinv_is_gateway_active( wpinv_get_default_gateway() ) ) {
296
+    if (!wpinv_is_gateway_active($enabled_gateway) && !empty($gateways)) {
297
+        if (wpinv_is_gateway_active(wpinv_get_default_gateway())) {
298 298
             $enabled_gateway = wpinv_get_default_gateway();
299 299
         } else {
300 300
             $enabled_gateway = $gateways[0];
301 301
         }
302 302
 }
303 303
 
304
-	return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway );
304
+	return apply_filters('wpinv_chosen_gateway', $enabled_gateway);
305 305
 }
306 306
 
307
-function wpinv_record_gateway_error( $title = '', $message = '' ) {
308
-    return wpinv_error_log( $message, $title );
307
+function wpinv_record_gateway_error($title = '', $message = '') {
308
+    return wpinv_error_log($message, $title);
309 309
 }
310 310
 
311
-function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) {
311
+function wpinv_count_sales_by_gateway($gateway_id = 'paypal', $status = 'publish') {
312 312
 	$ret  = 0;
313 313
 	$args = array(
314 314
 		'meta_key'    => '_wpinv_gateway',
@@ -319,9 +319,9 @@  discard block
 block discarded – undo
319 319
 		'fields'      => 'ids',
320 320
 	);
321 321
 
322
-	$payments = new WP_Query( $args );
322
+	$payments = new WP_Query($args);
323 323
 
324
-	if ( $payments ) {
324
+	if ($payments) {
325 325
 		$ret = $payments->post_count;
326 326
     }
327 327
 	return $ret;
@@ -330,11 +330,11 @@  discard block
 block discarded – undo
330 330
 /**
331 331
  * Displays the ipn url field.
332 332
  */
333
-function wpinv_ipn_url_callback( $args ) {
334
-    $sanitize_id = esc_attr( wpinv_sanitize_key( $args['id'] ) );
333
+function wpinv_ipn_url_callback($args) {
334
+    $sanitize_id = esc_attr(wpinv_sanitize_key($args['id']));
335 335
 
336
-    echo '<input class="regular-text" type="text" ' . ( $args['readonly'] ? ' readonly' : '' ) . ' value="' . esc_attr( $args['std'] ) . '" name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" onClick="this.select()">';
337
-    echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']">' . wp_kses_post( $args['desc'] ) . '</label>';
336
+    echo '<input class="regular-text" type="text" ' . ($args['readonly'] ? ' readonly' : '') . ' value="' . esc_attr($args['std']) . '" name="wpinv_settings[' . esc_attr($sanitize_id) . ']" id="wpinv_settings[' . esc_attr($sanitize_id) . ']" onClick="this.select()">';
337
+    echo '<label for="wpinv_settings[' . esc_attr($sanitize_id) . ']">' . wp_kses_post($args['desc']) . '</label>';
338 338
 
339 339
 }
340 340
 
@@ -345,10 +345,10 @@  discard block
 block discarded – undo
345 345
  *
346 346
  * @return bool
347 347
  */
348
-function wpinv_is_test_mode( $gateway = '' ) {
349
-    $sandbox  = empty( $gateway ) ? false : wpinv_get_option( "{$gateway}_sandbox", true );
350
-    $supports = getpaid_payment_gateway_supports( $gateway, 'sandbox' );
351
-    return apply_filters( 'wpinv_is_test_mode', $sandbox && $supports, $gateway );
348
+function wpinv_is_test_mode($gateway = '') {
349
+    $sandbox  = empty($gateway) ? false : wpinv_get_option("{$gateway}_sandbox", true);
350
+    $supports = getpaid_payment_gateway_supports($gateway, 'sandbox');
351
+    return apply_filters('wpinv_is_test_mode', $sandbox && $supports, $gateway);
352 352
 }
353 353
 
354 354
 /**
@@ -359,7 +359,7 @@  discard block
 block discarded – undo
359 359
  *
360 360
  * @return string
361 361
  */
362
-function wpinv_get_ipn_url( $gateway = false, $args = array() ) {
362
+function wpinv_get_ipn_url($gateway = false, $args = array()) {
363 363
     $args = wp_parse_args(
364 364
         array(
365 365
             'wpi-listener' => 'IPN',
@@ -368,7 +368,7 @@  discard block
 block discarded – undo
368 368
         $args
369 369
     );
370 370
 
371
-    return apply_filters( 'wpinv_ipn_url', add_query_arg( $args, home_url( 'index.php' ) ), $gateway, $args );
371
+    return apply_filters('wpinv_ipn_url', add_query_arg($args, home_url('index.php')), $gateway, $args);
372 372
 
373 373
 }
374 374
 
@@ -379,34 +379,34 @@  discard block
 block discarded – undo
379 379
  *
380 380
  * @return string
381 381
  */
382
-function getpaid_get_non_query_string_ipn_url( $gateway ) {
383
-    $gateway = wpinv_sanitize_key( $gateway );
384
-    return home_url( "getpaid-ipn/$gateway" );
382
+function getpaid_get_non_query_string_ipn_url($gateway) {
383
+    $gateway = wpinv_sanitize_key($gateway);
384
+    return home_url("getpaid-ipn/$gateway");
385 385
 }
386 386
 
387 387
 
388 388
 /**
389 389
  * Retrieves request data with slashes removed slashes.
390 390
  */
391
-function wpinv_get_post_data( $method = 'request' ) {
391
+function wpinv_get_post_data($method = 'request') {
392 392
 
393
-    if ( $method == 'post' ) {
394
-        return wp_kses_post_deep( wp_unslash( $_POST ) );
393
+    if ($method == 'post') {
394
+        return wp_kses_post_deep(wp_unslash($_POST));
395 395
     }
396 396
 
397
-    if ( $method == 'get' ) {
398
-        return wp_kses_post_deep( wp_unslash( $_GET ) );
397
+    if ($method == 'get') {
398
+        return wp_kses_post_deep(wp_unslash($_GET));
399 399
     }
400 400
 
401
-    return wp_kses_post_deep( wp_unslash( $_REQUEST ) );
401
+    return wp_kses_post_deep(wp_unslash($_REQUEST));
402 402
 
403 403
 }
404 404
 
405 405
 /**
406 406
  * Checks if a given gateway supports subscription payments.
407 407
  */
408
-function wpinv_gateway_support_subscription( $gateway ) {
409
-    return getpaid_payment_gateway_supports( $gateway, 'subscription' );
408
+function wpinv_gateway_support_subscription($gateway) {
409
+    return getpaid_payment_gateway_supports($gateway, 'subscription');
410 410
 }
411 411
 
412 412
 /**
@@ -415,18 +415,18 @@  discard block
 block discarded – undo
415 415
  * @param array $gateways an array of gateways.
416 416
  * @param GetPaid_Payment_Form $form payment form.
417 417
  */
418
-function wpinv_payment_gateways_on_cart( $gateways, $form ) {
418
+function wpinv_payment_gateways_on_cart($gateways, $form) {
419 419
 
420
-    if ( $form->is_recurring() ) {
420
+    if ($form->is_recurring()) {
421 421
 
422
-        foreach ( array_keys( $gateways ) as $gateway ) {
422
+        foreach (array_keys($gateways) as $gateway) {
423 423
 
424
-            if ( ! wpinv_gateway_support_subscription( $gateway ) ) {
425
-                unset( $gateways[ $gateway ] );
424
+            if (!wpinv_gateway_support_subscription($gateway)) {
425
+                unset($gateways[$gateway]);
426 426
             }
427 427
 }
428 428
 }
429 429
 
430 430
     return $gateways;
431 431
 }
432
-add_filter( 'getpaid_payment_form_gateways', 'wpinv_payment_gateways_on_cart', 10, 2 );
432
+add_filter('getpaid_payment_form_gateways', 'wpinv_payment_gateways_on_cart', 10, 2);
Please login to merge, or discard this patch.
includes/data/countries.php 2 patches
Indentation   +252 added lines, -252 removed lines patch added patch discarded remove patch
@@ -12,256 +12,256 @@
 block discarded – undo
12 12
 defined( 'ABSPATH' ) || exit;
13 13
 
14 14
 return array(
15
-	'US' => __( 'United States', 'invoicing' ),
16
-	'CA' => __( 'Canada', 'invoicing' ),
17
-	'GB' => __( 'United Kingdom', 'invoicing' ),
18
-	'AF' => __( 'Afghanistan', 'invoicing' ),
19
-	'AX' => __( 'Aland Islands', 'invoicing' ),
20
-	'AL' => __( 'Albania', 'invoicing' ),
21
-	'DZ' => __( 'Algeria', 'invoicing' ),
22
-	'AS' => __( 'American Samoa', 'invoicing' ),
23
-	'AD' => __( 'Andorra', 'invoicing' ),
24
-	'AO' => __( 'Angola', 'invoicing' ),
25
-	'AI' => __( 'Anguilla', 'invoicing' ),
26
-	'AQ' => __( 'Antarctica', 'invoicing' ),
27
-	'AG' => __( 'Antigua and Barbuda', 'invoicing' ),
28
-	'AR' => __( 'Argentina', 'invoicing' ),
29
-	'AM' => __( 'Armenia', 'invoicing' ),
30
-	'AW' => __( 'Aruba', 'invoicing' ),
31
-	'AU' => __( 'Australia', 'invoicing' ),
32
-	'AT' => __( 'Austria', 'invoicing' ),
33
-	'AZ' => __( 'Azerbaijan', 'invoicing' ),
34
-	'BS' => __( 'Bahamas', 'invoicing' ),
35
-	'BH' => __( 'Bahrain', 'invoicing' ),
36
-	'BD' => __( 'Bangladesh', 'invoicing' ),
37
-	'BB' => __( 'Barbados', 'invoicing' ),
38
-	'BY' => __( 'Belarus', 'invoicing' ),
39
-	'BE' => __( 'Belgium', 'invoicing' ),
40
-	'BZ' => __( 'Belize', 'invoicing' ),
41
-	'BJ' => __( 'Benin', 'invoicing' ),
42
-	'BM' => __( 'Bermuda', 'invoicing' ),
43
-	'BT' => __( 'Bhutan', 'invoicing' ),
44
-	'BO' => __( 'Bolivia', 'invoicing' ),
45
-	'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ),
46
-	'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ),
47
-	'BW' => __( 'Botswana', 'invoicing' ),
48
-	'BV' => __( 'Bouvet Island', 'invoicing' ),
49
-	'BR' => __( 'Brazil', 'invoicing' ),
50
-	'IO' => __( 'British Indian Ocean Territory', 'invoicing' ),
51
-	'BN' => __( 'Brunei Darrussalam', 'invoicing' ),
52
-	'BG' => __( 'Bulgaria', 'invoicing' ),
53
-	'BF' => __( 'Burkina Faso', 'invoicing' ),
54
-	'BI' => __( 'Burundi', 'invoicing' ),
55
-	'KH' => __( 'Cambodia', 'invoicing' ),
56
-	'CM' => __( 'Cameroon', 'invoicing' ),
57
-	'CV' => __( 'Cape Verde', 'invoicing' ),
58
-	'KY' => __( 'Cayman Islands', 'invoicing' ),
59
-	'CF' => __( 'Central African Republic', 'invoicing' ),
60
-	'TD' => __( 'Chad', 'invoicing' ),
61
-	'CL' => __( 'Chile', 'invoicing' ),
62
-	'CN' => __( 'China', 'invoicing' ),
63
-	'CX' => __( 'Christmas Island', 'invoicing' ),
64
-	'CC' => __( 'Cocos Islands', 'invoicing' ),
65
-	'CO' => __( 'Colombia', 'invoicing' ),
66
-	'KM' => __( 'Comoros', 'invoicing' ),
67
-	'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ),
68
-	'CG' => __( 'Congo, Republic of', 'invoicing' ),
69
-	'CK' => __( 'Cook Islands', 'invoicing' ),
70
-	'CR' => __( 'Costa Rica', 'invoicing' ),
71
-	'CI' => __( 'Cote d\'Ivoire', 'invoicing' ),
72
-	'HR' => __( 'Croatia/Hrvatska', 'invoicing' ),
73
-	'CU' => __( 'Cuba', 'invoicing' ),
74
-	'CW' => __( 'Cura&Ccedil;ao', 'invoicing' ),
75
-	'CY' => __( 'Cyprus', 'invoicing' ),
76
-	'CZ' => __( 'Czech Republic', 'invoicing' ),
77
-	'DK' => __( 'Denmark', 'invoicing' ),
78
-	'DJ' => __( 'Djibouti', 'invoicing' ),
79
-	'DM' => __( 'Dominica', 'invoicing' ),
80
-	'DO' => __( 'Dominican Republic', 'invoicing' ),
81
-	'TP' => __( 'East Timor', 'invoicing' ),
82
-	'EC' => __( 'Ecuador', 'invoicing' ),
83
-	'EG' => __( 'Egypt', 'invoicing' ),
84
-	'GQ' => __( 'Equatorial Guinea', 'invoicing' ),
85
-	'SV' => __( 'El Salvador', 'invoicing' ),
86
-	'ER' => __( 'Eritrea', 'invoicing' ),
87
-	'EE' => __( 'Estonia', 'invoicing' ),
88
-	'ET' => __( 'Ethiopia', 'invoicing' ),
89
-	'FK' => __( 'Falkland Islands', 'invoicing' ),
90
-	'FO' => __( 'Faroe Islands', 'invoicing' ),
91
-	'FJ' => __( 'Fiji', 'invoicing' ),
92
-	'FI' => __( 'Finland', 'invoicing' ),
93
-	'FR' => __( 'France', 'invoicing' ),
94
-	'GF' => __( 'French Guiana', 'invoicing' ),
95
-	'PF' => __( 'French Polynesia', 'invoicing' ),
96
-	'TF' => __( 'French Southern Territories', 'invoicing' ),
97
-	'GA' => __( 'Gabon', 'invoicing' ),
98
-	'GM' => __( 'Gambia', 'invoicing' ),
99
-	'GE' => __( 'Georgia', 'invoicing' ),
100
-	'DE' => __( 'Germany', 'invoicing' ),
101
-	'GR' => __( 'Greece', 'invoicing' ),
102
-	'GH' => __( 'Ghana', 'invoicing' ),
103
-	'GI' => __( 'Gibraltar', 'invoicing' ),
104
-	'GL' => __( 'Greenland', 'invoicing' ),
105
-	'GD' => __( 'Grenada', 'invoicing' ),
106
-	'GP' => __( 'Guadeloupe', 'invoicing' ),
107
-	'GU' => __( 'Guam', 'invoicing' ),
108
-	'GT' => __( 'Guatemala', 'invoicing' ),
109
-	'GG' => __( 'Guernsey', 'invoicing' ),
110
-	'GN' => __( 'Guinea', 'invoicing' ),
111
-	'GW' => __( 'Guinea-Bissau', 'invoicing' ),
112
-	'GY' => __( 'Guyana', 'invoicing' ),
113
-	'HT' => __( 'Haiti', 'invoicing' ),
114
-	'HM' => __( 'Heard and McDonald Islands', 'invoicing' ),
115
-	'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ),
116
-	'HN' => __( 'Honduras', 'invoicing' ),
117
-	'HK' => __( 'Hong Kong', 'invoicing' ),
118
-	'HU' => __( 'Hungary', 'invoicing' ),
119
-	'IS' => __( 'Iceland', 'invoicing' ),
120
-	'IN' => __( 'India', 'invoicing' ),
121
-	'ID' => __( 'Indonesia', 'invoicing' ),
122
-	'IR' => __( 'Iran', 'invoicing' ),
123
-	'IQ' => __( 'Iraq', 'invoicing' ),
124
-	'IE' => __( 'Ireland', 'invoicing' ),
125
-	'IM' => __( 'Isle of Man', 'invoicing' ),
126
-	'IL' => __( 'Israel', 'invoicing' ),
127
-	'IT' => __( 'Italy', 'invoicing' ),
128
-	'JM' => __( 'Jamaica', 'invoicing' ),
129
-	'JP' => __( 'Japan', 'invoicing' ),
130
-	'JE' => __( 'Jersey', 'invoicing' ),
131
-	'JO' => __( 'Jordan', 'invoicing' ),
132
-	'KZ' => __( 'Kazakhstan', 'invoicing' ),
133
-	'KE' => __( 'Kenya', 'invoicing' ),
134
-	'KI' => __( 'Kiribati', 'invoicing' ),
135
-	'KW' => __( 'Kuwait', 'invoicing' ),
136
-	'KG' => __( 'Kyrgyzstan', 'invoicing' ),
137
-	'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ),
138
-	'LV' => __( 'Latvia', 'invoicing' ),
139
-	'LB' => __( 'Lebanon', 'invoicing' ),
140
-	'LS' => __( 'Lesotho', 'invoicing' ),
141
-	'LR' => __( 'Liberia', 'invoicing' ),
142
-	'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ),
143
-	'LI' => __( 'Liechtenstein', 'invoicing' ),
144
-	'LT' => __( 'Lithuania', 'invoicing' ),
145
-	'LU' => __( 'Luxembourg', 'invoicing' ),
146
-	'MO' => __( 'Macau', 'invoicing' ),
147
-	'MK' => __( 'Macedonia', 'invoicing' ),
148
-	'MG' => __( 'Madagascar', 'invoicing' ),
149
-	'MW' => __( 'Malawi', 'invoicing' ),
150
-	'MY' => __( 'Malaysia', 'invoicing' ),
151
-	'MV' => __( 'Maldives', 'invoicing' ),
152
-	'ML' => __( 'Mali', 'invoicing' ),
153
-	'MT' => __( 'Malta', 'invoicing' ),
154
-	'MH' => __( 'Marshall Islands', 'invoicing' ),
155
-	'MQ' => __( 'Martinique', 'invoicing' ),
156
-	'MR' => __( 'Mauritania', 'invoicing' ),
157
-	'MU' => __( 'Mauritius', 'invoicing' ),
158
-	'YT' => __( 'Mayotte', 'invoicing' ),
159
-	'MX' => __( 'Mexico', 'invoicing' ),
160
-	'FM' => __( 'Micronesia', 'invoicing' ),
161
-	'MD' => __( 'Moldova, Republic of', 'invoicing' ),
162
-	'MC' => __( 'Monaco', 'invoicing' ),
163
-	'MN' => __( 'Mongolia', 'invoicing' ),
164
-	'ME' => __( 'Montenegro', 'invoicing' ),
165
-	'MS' => __( 'Montserrat', 'invoicing' ),
166
-	'MA' => __( 'Morocco', 'invoicing' ),
167
-	'MZ' => __( 'Mozambique', 'invoicing' ),
168
-	'MM' => __( 'Myanmar', 'invoicing' ),
169
-	'NA' => __( 'Namibia', 'invoicing' ),
170
-	'NR' => __( 'Nauru', 'invoicing' ),
171
-	'NP' => __( 'Nepal', 'invoicing' ),
172
-	'NL' => __( 'Netherlands', 'invoicing' ),
173
-	'AN' => __( 'Netherlands Antilles', 'invoicing' ),
174
-	'NC' => __( 'New Caledonia', 'invoicing' ),
175
-	'NZ' => __( 'New Zealand', 'invoicing' ),
176
-	'NI' => __( 'Nicaragua', 'invoicing' ),
177
-	'NE' => __( 'Niger', 'invoicing' ),
178
-	'NG' => __( 'Nigeria', 'invoicing' ),
179
-	'NU' => __( 'Niue', 'invoicing' ),
180
-	'NF' => __( 'Norfolk Island', 'invoicing' ),
181
-	'KP' => __( 'North Korea', 'invoicing' ),
182
-	'MP' => __( 'Northern Mariana Islands', 'invoicing' ),
183
-	'NO' => __( 'Norway', 'invoicing' ),
184
-	'OM' => __( 'Oman', 'invoicing' ),
185
-	'PK' => __( 'Pakistan', 'invoicing' ),
186
-	'PW' => __( 'Palau', 'invoicing' ),
187
-	'PS' => __( 'Palestinian Territories', 'invoicing' ),
188
-	'PA' => __( 'Panama', 'invoicing' ),
189
-	'PG' => __( 'Papua New Guinea', 'invoicing' ),
190
-	'PY' => __( 'Paraguay', 'invoicing' ),
191
-	'PE' => __( 'Peru', 'invoicing' ),
192
-	'PH' => __( 'Philippines', 'invoicing' ),
193
-	'PN' => __( 'Pitcairn Island', 'invoicing' ),
194
-	'PL' => __( 'Poland', 'invoicing' ),
195
-	'PT' => __( 'Portugal', 'invoicing' ),
196
-	'PR' => __( 'Puerto Rico', 'invoicing' ),
197
-	'QA' => __( 'Qatar', 'invoicing' ),
198
-	'XK' => __( 'Republic of Kosovo', 'invoicing' ),
199
-	'RE' => __( 'Reunion Island', 'invoicing' ),
200
-	'RO' => __( 'Romania', 'invoicing' ),
201
-	'RU' => __( 'Russian Federation', 'invoicing' ),
202
-	'RW' => __( 'Rwanda', 'invoicing' ),
203
-	'BL' => __( 'Saint Barth&eacute;lemy', 'invoicing' ),
204
-	'SH' => __( 'Saint Helena', 'invoicing' ),
205
-	'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ),
206
-	'LC' => __( 'Saint Lucia', 'invoicing' ),
207
-	'MF' => __( 'Saint Martin (French)', 'invoicing' ),
208
-	'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ),
209
-	'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ),
210
-	'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ),
211
-	'SM' => __( 'San Marino', 'invoicing' ),
212
-	'ST' => __( 'S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'invoicing' ),
213
-	'SA' => __( 'Saudi Arabia', 'invoicing' ),
214
-	'SN' => __( 'Senegal', 'invoicing' ),
215
-	'RS' => __( 'Serbia', 'invoicing' ),
216
-	'SC' => __( 'Seychelles', 'invoicing' ),
217
-	'SL' => __( 'Sierra Leone', 'invoicing' ),
218
-	'SG' => __( 'Singapore', 'invoicing' ),
219
-	'SK' => __( 'Slovak Republic', 'invoicing' ),
220
-	'SI' => __( 'Slovenia', 'invoicing' ),
221
-	'SB' => __( 'Solomon Islands', 'invoicing' ),
222
-	'SO' => __( 'Somalia', 'invoicing' ),
223
-	'ZA' => __( 'South Africa', 'invoicing' ),
224
-	'GS' => __( 'South Georgia', 'invoicing' ),
225
-	'KR' => __( 'South Korea', 'invoicing' ),
226
-	'SS' => __( 'South Sudan', 'invoicing' ),
227
-	'ES' => __( 'Spain', 'invoicing' ),
228
-	'LK' => __( 'Sri Lanka', 'invoicing' ),
229
-	'SD' => __( 'Sudan', 'invoicing' ),
230
-	'SR' => __( 'Suriname', 'invoicing' ),
231
-	'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ),
232
-	'SZ' => __( 'Swaziland', 'invoicing' ),
233
-	'SE' => __( 'Sweden', 'invoicing' ),
234
-	'CH' => __( 'Switzerland', 'invoicing' ),
235
-	'SY' => __( 'Syrian Arab Republic', 'invoicing' ),
236
-	'TW' => __( 'Taiwan', 'invoicing' ),
237
-	'TJ' => __( 'Tajikistan', 'invoicing' ),
238
-	'TZ' => __( 'Tanzania', 'invoicing' ),
239
-	'TH' => __( 'Thailand', 'invoicing' ),
240
-	'TL' => __( 'Timor-Leste', 'invoicing' ),
241
-	'TG' => __( 'Togo', 'invoicing' ),
242
-	'TK' => __( 'Tokelau', 'invoicing' ),
243
-	'TO' => __( 'Tonga', 'invoicing' ),
244
-	'TT' => __( 'Trinidad and Tobago', 'invoicing' ),
245
-	'TN' => __( 'Tunisia', 'invoicing' ),
246
-	'TR' => __( 'Turkey', 'invoicing' ),
247
-	'TM' => __( 'Turkmenistan', 'invoicing' ),
248
-	'TC' => __( 'Turks and Caicos Islands', 'invoicing' ),
249
-	'TV' => __( 'Tuvalu', 'invoicing' ),
250
-	'UG' => __( 'Uganda', 'invoicing' ),
251
-	'UA' => __( 'Ukraine', 'invoicing' ),
252
-	'AE' => __( 'United Arab Emirates', 'invoicing' ),
253
-	'UY' => __( 'Uruguay', 'invoicing' ),
254
-	'UM' => __( 'US Minor Outlying Islands', 'invoicing' ),
255
-	'UZ' => __( 'Uzbekistan', 'invoicing' ),
256
-	'VU' => __( 'Vanuatu', 'invoicing' ),
257
-	'VE' => __( 'Venezuela', 'invoicing' ),
258
-	'VN' => __( 'Vietnam', 'invoicing' ),
259
-	'VG' => __( 'Virgin Islands (British)', 'invoicing' ),
260
-	'VI' => __( 'Virgin Islands (USA)', 'invoicing' ),
261
-	'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ),
262
-	'EH' => __( 'Western Sahara', 'invoicing' ),
263
-	'WS' => __( 'Western Samoa', 'invoicing' ),
264
-	'YE' => __( 'Yemen', 'invoicing' ),
265
-	'ZM' => __( 'Zambia', 'invoicing' ),
266
-	'ZW' => __( 'Zimbabwe', 'invoicing' ),
15
+    'US' => __( 'United States', 'invoicing' ),
16
+    'CA' => __( 'Canada', 'invoicing' ),
17
+    'GB' => __( 'United Kingdom', 'invoicing' ),
18
+    'AF' => __( 'Afghanistan', 'invoicing' ),
19
+    'AX' => __( 'Aland Islands', 'invoicing' ),
20
+    'AL' => __( 'Albania', 'invoicing' ),
21
+    'DZ' => __( 'Algeria', 'invoicing' ),
22
+    'AS' => __( 'American Samoa', 'invoicing' ),
23
+    'AD' => __( 'Andorra', 'invoicing' ),
24
+    'AO' => __( 'Angola', 'invoicing' ),
25
+    'AI' => __( 'Anguilla', 'invoicing' ),
26
+    'AQ' => __( 'Antarctica', 'invoicing' ),
27
+    'AG' => __( 'Antigua and Barbuda', 'invoicing' ),
28
+    'AR' => __( 'Argentina', 'invoicing' ),
29
+    'AM' => __( 'Armenia', 'invoicing' ),
30
+    'AW' => __( 'Aruba', 'invoicing' ),
31
+    'AU' => __( 'Australia', 'invoicing' ),
32
+    'AT' => __( 'Austria', 'invoicing' ),
33
+    'AZ' => __( 'Azerbaijan', 'invoicing' ),
34
+    'BS' => __( 'Bahamas', 'invoicing' ),
35
+    'BH' => __( 'Bahrain', 'invoicing' ),
36
+    'BD' => __( 'Bangladesh', 'invoicing' ),
37
+    'BB' => __( 'Barbados', 'invoicing' ),
38
+    'BY' => __( 'Belarus', 'invoicing' ),
39
+    'BE' => __( 'Belgium', 'invoicing' ),
40
+    'BZ' => __( 'Belize', 'invoicing' ),
41
+    'BJ' => __( 'Benin', 'invoicing' ),
42
+    'BM' => __( 'Bermuda', 'invoicing' ),
43
+    'BT' => __( 'Bhutan', 'invoicing' ),
44
+    'BO' => __( 'Bolivia', 'invoicing' ),
45
+    'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ),
46
+    'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ),
47
+    'BW' => __( 'Botswana', 'invoicing' ),
48
+    'BV' => __( 'Bouvet Island', 'invoicing' ),
49
+    'BR' => __( 'Brazil', 'invoicing' ),
50
+    'IO' => __( 'British Indian Ocean Territory', 'invoicing' ),
51
+    'BN' => __( 'Brunei Darrussalam', 'invoicing' ),
52
+    'BG' => __( 'Bulgaria', 'invoicing' ),
53
+    'BF' => __( 'Burkina Faso', 'invoicing' ),
54
+    'BI' => __( 'Burundi', 'invoicing' ),
55
+    'KH' => __( 'Cambodia', 'invoicing' ),
56
+    'CM' => __( 'Cameroon', 'invoicing' ),
57
+    'CV' => __( 'Cape Verde', 'invoicing' ),
58
+    'KY' => __( 'Cayman Islands', 'invoicing' ),
59
+    'CF' => __( 'Central African Republic', 'invoicing' ),
60
+    'TD' => __( 'Chad', 'invoicing' ),
61
+    'CL' => __( 'Chile', 'invoicing' ),
62
+    'CN' => __( 'China', 'invoicing' ),
63
+    'CX' => __( 'Christmas Island', 'invoicing' ),
64
+    'CC' => __( 'Cocos Islands', 'invoicing' ),
65
+    'CO' => __( 'Colombia', 'invoicing' ),
66
+    'KM' => __( 'Comoros', 'invoicing' ),
67
+    'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ),
68
+    'CG' => __( 'Congo, Republic of', 'invoicing' ),
69
+    'CK' => __( 'Cook Islands', 'invoicing' ),
70
+    'CR' => __( 'Costa Rica', 'invoicing' ),
71
+    'CI' => __( 'Cote d\'Ivoire', 'invoicing' ),
72
+    'HR' => __( 'Croatia/Hrvatska', 'invoicing' ),
73
+    'CU' => __( 'Cuba', 'invoicing' ),
74
+    'CW' => __( 'Cura&Ccedil;ao', 'invoicing' ),
75
+    'CY' => __( 'Cyprus', 'invoicing' ),
76
+    'CZ' => __( 'Czech Republic', 'invoicing' ),
77
+    'DK' => __( 'Denmark', 'invoicing' ),
78
+    'DJ' => __( 'Djibouti', 'invoicing' ),
79
+    'DM' => __( 'Dominica', 'invoicing' ),
80
+    'DO' => __( 'Dominican Republic', 'invoicing' ),
81
+    'TP' => __( 'East Timor', 'invoicing' ),
82
+    'EC' => __( 'Ecuador', 'invoicing' ),
83
+    'EG' => __( 'Egypt', 'invoicing' ),
84
+    'GQ' => __( 'Equatorial Guinea', 'invoicing' ),
85
+    'SV' => __( 'El Salvador', 'invoicing' ),
86
+    'ER' => __( 'Eritrea', 'invoicing' ),
87
+    'EE' => __( 'Estonia', 'invoicing' ),
88
+    'ET' => __( 'Ethiopia', 'invoicing' ),
89
+    'FK' => __( 'Falkland Islands', 'invoicing' ),
90
+    'FO' => __( 'Faroe Islands', 'invoicing' ),
91
+    'FJ' => __( 'Fiji', 'invoicing' ),
92
+    'FI' => __( 'Finland', 'invoicing' ),
93
+    'FR' => __( 'France', 'invoicing' ),
94
+    'GF' => __( 'French Guiana', 'invoicing' ),
95
+    'PF' => __( 'French Polynesia', 'invoicing' ),
96
+    'TF' => __( 'French Southern Territories', 'invoicing' ),
97
+    'GA' => __( 'Gabon', 'invoicing' ),
98
+    'GM' => __( 'Gambia', 'invoicing' ),
99
+    'GE' => __( 'Georgia', 'invoicing' ),
100
+    'DE' => __( 'Germany', 'invoicing' ),
101
+    'GR' => __( 'Greece', 'invoicing' ),
102
+    'GH' => __( 'Ghana', 'invoicing' ),
103
+    'GI' => __( 'Gibraltar', 'invoicing' ),
104
+    'GL' => __( 'Greenland', 'invoicing' ),
105
+    'GD' => __( 'Grenada', 'invoicing' ),
106
+    'GP' => __( 'Guadeloupe', 'invoicing' ),
107
+    'GU' => __( 'Guam', 'invoicing' ),
108
+    'GT' => __( 'Guatemala', 'invoicing' ),
109
+    'GG' => __( 'Guernsey', 'invoicing' ),
110
+    'GN' => __( 'Guinea', 'invoicing' ),
111
+    'GW' => __( 'Guinea-Bissau', 'invoicing' ),
112
+    'GY' => __( 'Guyana', 'invoicing' ),
113
+    'HT' => __( 'Haiti', 'invoicing' ),
114
+    'HM' => __( 'Heard and McDonald Islands', 'invoicing' ),
115
+    'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ),
116
+    'HN' => __( 'Honduras', 'invoicing' ),
117
+    'HK' => __( 'Hong Kong', 'invoicing' ),
118
+    'HU' => __( 'Hungary', 'invoicing' ),
119
+    'IS' => __( 'Iceland', 'invoicing' ),
120
+    'IN' => __( 'India', 'invoicing' ),
121
+    'ID' => __( 'Indonesia', 'invoicing' ),
122
+    'IR' => __( 'Iran', 'invoicing' ),
123
+    'IQ' => __( 'Iraq', 'invoicing' ),
124
+    'IE' => __( 'Ireland', 'invoicing' ),
125
+    'IM' => __( 'Isle of Man', 'invoicing' ),
126
+    'IL' => __( 'Israel', 'invoicing' ),
127
+    'IT' => __( 'Italy', 'invoicing' ),
128
+    'JM' => __( 'Jamaica', 'invoicing' ),
129
+    'JP' => __( 'Japan', 'invoicing' ),
130
+    'JE' => __( 'Jersey', 'invoicing' ),
131
+    'JO' => __( 'Jordan', 'invoicing' ),
132
+    'KZ' => __( 'Kazakhstan', 'invoicing' ),
133
+    'KE' => __( 'Kenya', 'invoicing' ),
134
+    'KI' => __( 'Kiribati', 'invoicing' ),
135
+    'KW' => __( 'Kuwait', 'invoicing' ),
136
+    'KG' => __( 'Kyrgyzstan', 'invoicing' ),
137
+    'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ),
138
+    'LV' => __( 'Latvia', 'invoicing' ),
139
+    'LB' => __( 'Lebanon', 'invoicing' ),
140
+    'LS' => __( 'Lesotho', 'invoicing' ),
141
+    'LR' => __( 'Liberia', 'invoicing' ),
142
+    'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ),
143
+    'LI' => __( 'Liechtenstein', 'invoicing' ),
144
+    'LT' => __( 'Lithuania', 'invoicing' ),
145
+    'LU' => __( 'Luxembourg', 'invoicing' ),
146
+    'MO' => __( 'Macau', 'invoicing' ),
147
+    'MK' => __( 'Macedonia', 'invoicing' ),
148
+    'MG' => __( 'Madagascar', 'invoicing' ),
149
+    'MW' => __( 'Malawi', 'invoicing' ),
150
+    'MY' => __( 'Malaysia', 'invoicing' ),
151
+    'MV' => __( 'Maldives', 'invoicing' ),
152
+    'ML' => __( 'Mali', 'invoicing' ),
153
+    'MT' => __( 'Malta', 'invoicing' ),
154
+    'MH' => __( 'Marshall Islands', 'invoicing' ),
155
+    'MQ' => __( 'Martinique', 'invoicing' ),
156
+    'MR' => __( 'Mauritania', 'invoicing' ),
157
+    'MU' => __( 'Mauritius', 'invoicing' ),
158
+    'YT' => __( 'Mayotte', 'invoicing' ),
159
+    'MX' => __( 'Mexico', 'invoicing' ),
160
+    'FM' => __( 'Micronesia', 'invoicing' ),
161
+    'MD' => __( 'Moldova, Republic of', 'invoicing' ),
162
+    'MC' => __( 'Monaco', 'invoicing' ),
163
+    'MN' => __( 'Mongolia', 'invoicing' ),
164
+    'ME' => __( 'Montenegro', 'invoicing' ),
165
+    'MS' => __( 'Montserrat', 'invoicing' ),
166
+    'MA' => __( 'Morocco', 'invoicing' ),
167
+    'MZ' => __( 'Mozambique', 'invoicing' ),
168
+    'MM' => __( 'Myanmar', 'invoicing' ),
169
+    'NA' => __( 'Namibia', 'invoicing' ),
170
+    'NR' => __( 'Nauru', 'invoicing' ),
171
+    'NP' => __( 'Nepal', 'invoicing' ),
172
+    'NL' => __( 'Netherlands', 'invoicing' ),
173
+    'AN' => __( 'Netherlands Antilles', 'invoicing' ),
174
+    'NC' => __( 'New Caledonia', 'invoicing' ),
175
+    'NZ' => __( 'New Zealand', 'invoicing' ),
176
+    'NI' => __( 'Nicaragua', 'invoicing' ),
177
+    'NE' => __( 'Niger', 'invoicing' ),
178
+    'NG' => __( 'Nigeria', 'invoicing' ),
179
+    'NU' => __( 'Niue', 'invoicing' ),
180
+    'NF' => __( 'Norfolk Island', 'invoicing' ),
181
+    'KP' => __( 'North Korea', 'invoicing' ),
182
+    'MP' => __( 'Northern Mariana Islands', 'invoicing' ),
183
+    'NO' => __( 'Norway', 'invoicing' ),
184
+    'OM' => __( 'Oman', 'invoicing' ),
185
+    'PK' => __( 'Pakistan', 'invoicing' ),
186
+    'PW' => __( 'Palau', 'invoicing' ),
187
+    'PS' => __( 'Palestinian Territories', 'invoicing' ),
188
+    'PA' => __( 'Panama', 'invoicing' ),
189
+    'PG' => __( 'Papua New Guinea', 'invoicing' ),
190
+    'PY' => __( 'Paraguay', 'invoicing' ),
191
+    'PE' => __( 'Peru', 'invoicing' ),
192
+    'PH' => __( 'Philippines', 'invoicing' ),
193
+    'PN' => __( 'Pitcairn Island', 'invoicing' ),
194
+    'PL' => __( 'Poland', 'invoicing' ),
195
+    'PT' => __( 'Portugal', 'invoicing' ),
196
+    'PR' => __( 'Puerto Rico', 'invoicing' ),
197
+    'QA' => __( 'Qatar', 'invoicing' ),
198
+    'XK' => __( 'Republic of Kosovo', 'invoicing' ),
199
+    'RE' => __( 'Reunion Island', 'invoicing' ),
200
+    'RO' => __( 'Romania', 'invoicing' ),
201
+    'RU' => __( 'Russian Federation', 'invoicing' ),
202
+    'RW' => __( 'Rwanda', 'invoicing' ),
203
+    'BL' => __( 'Saint Barth&eacute;lemy', 'invoicing' ),
204
+    'SH' => __( 'Saint Helena', 'invoicing' ),
205
+    'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ),
206
+    'LC' => __( 'Saint Lucia', 'invoicing' ),
207
+    'MF' => __( 'Saint Martin (French)', 'invoicing' ),
208
+    'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ),
209
+    'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ),
210
+    'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ),
211
+    'SM' => __( 'San Marino', 'invoicing' ),
212
+    'ST' => __( 'S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'invoicing' ),
213
+    'SA' => __( 'Saudi Arabia', 'invoicing' ),
214
+    'SN' => __( 'Senegal', 'invoicing' ),
215
+    'RS' => __( 'Serbia', 'invoicing' ),
216
+    'SC' => __( 'Seychelles', 'invoicing' ),
217
+    'SL' => __( 'Sierra Leone', 'invoicing' ),
218
+    'SG' => __( 'Singapore', 'invoicing' ),
219
+    'SK' => __( 'Slovak Republic', 'invoicing' ),
220
+    'SI' => __( 'Slovenia', 'invoicing' ),
221
+    'SB' => __( 'Solomon Islands', 'invoicing' ),
222
+    'SO' => __( 'Somalia', 'invoicing' ),
223
+    'ZA' => __( 'South Africa', 'invoicing' ),
224
+    'GS' => __( 'South Georgia', 'invoicing' ),
225
+    'KR' => __( 'South Korea', 'invoicing' ),
226
+    'SS' => __( 'South Sudan', 'invoicing' ),
227
+    'ES' => __( 'Spain', 'invoicing' ),
228
+    'LK' => __( 'Sri Lanka', 'invoicing' ),
229
+    'SD' => __( 'Sudan', 'invoicing' ),
230
+    'SR' => __( 'Suriname', 'invoicing' ),
231
+    'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ),
232
+    'SZ' => __( 'Swaziland', 'invoicing' ),
233
+    'SE' => __( 'Sweden', 'invoicing' ),
234
+    'CH' => __( 'Switzerland', 'invoicing' ),
235
+    'SY' => __( 'Syrian Arab Republic', 'invoicing' ),
236
+    'TW' => __( 'Taiwan', 'invoicing' ),
237
+    'TJ' => __( 'Tajikistan', 'invoicing' ),
238
+    'TZ' => __( 'Tanzania', 'invoicing' ),
239
+    'TH' => __( 'Thailand', 'invoicing' ),
240
+    'TL' => __( 'Timor-Leste', 'invoicing' ),
241
+    'TG' => __( 'Togo', 'invoicing' ),
242
+    'TK' => __( 'Tokelau', 'invoicing' ),
243
+    'TO' => __( 'Tonga', 'invoicing' ),
244
+    'TT' => __( 'Trinidad and Tobago', 'invoicing' ),
245
+    'TN' => __( 'Tunisia', 'invoicing' ),
246
+    'TR' => __( 'Turkey', 'invoicing' ),
247
+    'TM' => __( 'Turkmenistan', 'invoicing' ),
248
+    'TC' => __( 'Turks and Caicos Islands', 'invoicing' ),
249
+    'TV' => __( 'Tuvalu', 'invoicing' ),
250
+    'UG' => __( 'Uganda', 'invoicing' ),
251
+    'UA' => __( 'Ukraine', 'invoicing' ),
252
+    'AE' => __( 'United Arab Emirates', 'invoicing' ),
253
+    'UY' => __( 'Uruguay', 'invoicing' ),
254
+    'UM' => __( 'US Minor Outlying Islands', 'invoicing' ),
255
+    'UZ' => __( 'Uzbekistan', 'invoicing' ),
256
+    'VU' => __( 'Vanuatu', 'invoicing' ),
257
+    'VE' => __( 'Venezuela', 'invoicing' ),
258
+    'VN' => __( 'Vietnam', 'invoicing' ),
259
+    'VG' => __( 'Virgin Islands (British)', 'invoicing' ),
260
+    'VI' => __( 'Virgin Islands (USA)', 'invoicing' ),
261
+    'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ),
262
+    'EH' => __( 'Western Sahara', 'invoicing' ),
263
+    'WS' => __( 'Western Samoa', 'invoicing' ),
264
+    'YE' => __( 'Yemen', 'invoicing' ),
265
+    'ZM' => __( 'Zambia', 'invoicing' ),
266
+    'ZW' => __( 'Zimbabwe', 'invoicing' ),
267 267
 );
Please login to merge, or discard this patch.
Spacing   +253 added lines, -253 removed lines patch added patch discarded remove patch
@@ -9,259 +9,259 @@
 block discarded – undo
9 9
  * @version 1.0.14
10 10
  */
11 11
 
12
-defined( 'ABSPATH' ) || exit;
12
+defined('ABSPATH') || exit;
13 13
 
14 14
 return array(
15
-	'US' => __( 'United States', 'invoicing' ),
16
-	'CA' => __( 'Canada', 'invoicing' ),
17
-	'GB' => __( 'United Kingdom', 'invoicing' ),
18
-	'AF' => __( 'Afghanistan', 'invoicing' ),
19
-	'AX' => __( 'Aland Islands', 'invoicing' ),
20
-	'AL' => __( 'Albania', 'invoicing' ),
21
-	'DZ' => __( 'Algeria', 'invoicing' ),
22
-	'AS' => __( 'American Samoa', 'invoicing' ),
23
-	'AD' => __( 'Andorra', 'invoicing' ),
24
-	'AO' => __( 'Angola', 'invoicing' ),
25
-	'AI' => __( 'Anguilla', 'invoicing' ),
26
-	'AQ' => __( 'Antarctica', 'invoicing' ),
27
-	'AG' => __( 'Antigua and Barbuda', 'invoicing' ),
28
-	'AR' => __( 'Argentina', 'invoicing' ),
29
-	'AM' => __( 'Armenia', 'invoicing' ),
30
-	'AW' => __( 'Aruba', 'invoicing' ),
31
-	'AU' => __( 'Australia', 'invoicing' ),
32
-	'AT' => __( 'Austria', 'invoicing' ),
33
-	'AZ' => __( 'Azerbaijan', 'invoicing' ),
34
-	'BS' => __( 'Bahamas', 'invoicing' ),
35
-	'BH' => __( 'Bahrain', 'invoicing' ),
36
-	'BD' => __( 'Bangladesh', 'invoicing' ),
37
-	'BB' => __( 'Barbados', 'invoicing' ),
38
-	'BY' => __( 'Belarus', 'invoicing' ),
39
-	'BE' => __( 'Belgium', 'invoicing' ),
40
-	'BZ' => __( 'Belize', 'invoicing' ),
41
-	'BJ' => __( 'Benin', 'invoicing' ),
42
-	'BM' => __( 'Bermuda', 'invoicing' ),
43
-	'BT' => __( 'Bhutan', 'invoicing' ),
44
-	'BO' => __( 'Bolivia', 'invoicing' ),
45
-	'BQ' => __( 'Bonaire, Saint Eustatius and Saba', 'invoicing' ),
46
-	'BA' => __( 'Bosnia and Herzegovina', 'invoicing' ),
47
-	'BW' => __( 'Botswana', 'invoicing' ),
48
-	'BV' => __( 'Bouvet Island', 'invoicing' ),
49
-	'BR' => __( 'Brazil', 'invoicing' ),
50
-	'IO' => __( 'British Indian Ocean Territory', 'invoicing' ),
51
-	'BN' => __( 'Brunei Darrussalam', 'invoicing' ),
52
-	'BG' => __( 'Bulgaria', 'invoicing' ),
53
-	'BF' => __( 'Burkina Faso', 'invoicing' ),
54
-	'BI' => __( 'Burundi', 'invoicing' ),
55
-	'KH' => __( 'Cambodia', 'invoicing' ),
56
-	'CM' => __( 'Cameroon', 'invoicing' ),
57
-	'CV' => __( 'Cape Verde', 'invoicing' ),
58
-	'KY' => __( 'Cayman Islands', 'invoicing' ),
59
-	'CF' => __( 'Central African Republic', 'invoicing' ),
60
-	'TD' => __( 'Chad', 'invoicing' ),
61
-	'CL' => __( 'Chile', 'invoicing' ),
62
-	'CN' => __( 'China', 'invoicing' ),
63
-	'CX' => __( 'Christmas Island', 'invoicing' ),
64
-	'CC' => __( 'Cocos Islands', 'invoicing' ),
65
-	'CO' => __( 'Colombia', 'invoicing' ),
66
-	'KM' => __( 'Comoros', 'invoicing' ),
67
-	'CD' => __( 'Congo, Democratic People\'s Republic', 'invoicing' ),
68
-	'CG' => __( 'Congo, Republic of', 'invoicing' ),
69
-	'CK' => __( 'Cook Islands', 'invoicing' ),
70
-	'CR' => __( 'Costa Rica', 'invoicing' ),
71
-	'CI' => __( 'Cote d\'Ivoire', 'invoicing' ),
72
-	'HR' => __( 'Croatia/Hrvatska', 'invoicing' ),
73
-	'CU' => __( 'Cuba', 'invoicing' ),
74
-	'CW' => __( 'Cura&Ccedil;ao', 'invoicing' ),
75
-	'CY' => __( 'Cyprus', 'invoicing' ),
76
-	'CZ' => __( 'Czech Republic', 'invoicing' ),
77
-	'DK' => __( 'Denmark', 'invoicing' ),
78
-	'DJ' => __( 'Djibouti', 'invoicing' ),
79
-	'DM' => __( 'Dominica', 'invoicing' ),
80
-	'DO' => __( 'Dominican Republic', 'invoicing' ),
81
-	'TP' => __( 'East Timor', 'invoicing' ),
82
-	'EC' => __( 'Ecuador', 'invoicing' ),
83
-	'EG' => __( 'Egypt', 'invoicing' ),
84
-	'GQ' => __( 'Equatorial Guinea', 'invoicing' ),
85
-	'SV' => __( 'El Salvador', 'invoicing' ),
86
-	'ER' => __( 'Eritrea', 'invoicing' ),
87
-	'EE' => __( 'Estonia', 'invoicing' ),
88
-	'ET' => __( 'Ethiopia', 'invoicing' ),
89
-	'FK' => __( 'Falkland Islands', 'invoicing' ),
90
-	'FO' => __( 'Faroe Islands', 'invoicing' ),
91
-	'FJ' => __( 'Fiji', 'invoicing' ),
92
-	'FI' => __( 'Finland', 'invoicing' ),
93
-	'FR' => __( 'France', 'invoicing' ),
94
-	'GF' => __( 'French Guiana', 'invoicing' ),
95
-	'PF' => __( 'French Polynesia', 'invoicing' ),
96
-	'TF' => __( 'French Southern Territories', 'invoicing' ),
97
-	'GA' => __( 'Gabon', 'invoicing' ),
98
-	'GM' => __( 'Gambia', 'invoicing' ),
99
-	'GE' => __( 'Georgia', 'invoicing' ),
100
-	'DE' => __( 'Germany', 'invoicing' ),
101
-	'GR' => __( 'Greece', 'invoicing' ),
102
-	'GH' => __( 'Ghana', 'invoicing' ),
103
-	'GI' => __( 'Gibraltar', 'invoicing' ),
104
-	'GL' => __( 'Greenland', 'invoicing' ),
105
-	'GD' => __( 'Grenada', 'invoicing' ),
106
-	'GP' => __( 'Guadeloupe', 'invoicing' ),
107
-	'GU' => __( 'Guam', 'invoicing' ),
108
-	'GT' => __( 'Guatemala', 'invoicing' ),
109
-	'GG' => __( 'Guernsey', 'invoicing' ),
110
-	'GN' => __( 'Guinea', 'invoicing' ),
111
-	'GW' => __( 'Guinea-Bissau', 'invoicing' ),
112
-	'GY' => __( 'Guyana', 'invoicing' ),
113
-	'HT' => __( 'Haiti', 'invoicing' ),
114
-	'HM' => __( 'Heard and McDonald Islands', 'invoicing' ),
115
-	'VA' => __( 'Holy See (City Vatican State)', 'invoicing' ),
116
-	'HN' => __( 'Honduras', 'invoicing' ),
117
-	'HK' => __( 'Hong Kong', 'invoicing' ),
118
-	'HU' => __( 'Hungary', 'invoicing' ),
119
-	'IS' => __( 'Iceland', 'invoicing' ),
120
-	'IN' => __( 'India', 'invoicing' ),
121
-	'ID' => __( 'Indonesia', 'invoicing' ),
122
-	'IR' => __( 'Iran', 'invoicing' ),
123
-	'IQ' => __( 'Iraq', 'invoicing' ),
124
-	'IE' => __( 'Ireland', 'invoicing' ),
125
-	'IM' => __( 'Isle of Man', 'invoicing' ),
126
-	'IL' => __( 'Israel', 'invoicing' ),
127
-	'IT' => __( 'Italy', 'invoicing' ),
128
-	'JM' => __( 'Jamaica', 'invoicing' ),
129
-	'JP' => __( 'Japan', 'invoicing' ),
130
-	'JE' => __( 'Jersey', 'invoicing' ),
131
-	'JO' => __( 'Jordan', 'invoicing' ),
132
-	'KZ' => __( 'Kazakhstan', 'invoicing' ),
133
-	'KE' => __( 'Kenya', 'invoicing' ),
134
-	'KI' => __( 'Kiribati', 'invoicing' ),
135
-	'KW' => __( 'Kuwait', 'invoicing' ),
136
-	'KG' => __( 'Kyrgyzstan', 'invoicing' ),
137
-	'LA' => __( 'Lao People\'s Democratic Republic', 'invoicing' ),
138
-	'LV' => __( 'Latvia', 'invoicing' ),
139
-	'LB' => __( 'Lebanon', 'invoicing' ),
140
-	'LS' => __( 'Lesotho', 'invoicing' ),
141
-	'LR' => __( 'Liberia', 'invoicing' ),
142
-	'LY' => __( 'Libyan Arab Jamahiriya', 'invoicing' ),
143
-	'LI' => __( 'Liechtenstein', 'invoicing' ),
144
-	'LT' => __( 'Lithuania', 'invoicing' ),
145
-	'LU' => __( 'Luxembourg', 'invoicing' ),
146
-	'MO' => __( 'Macau', 'invoicing' ),
147
-	'MK' => __( 'Macedonia', 'invoicing' ),
148
-	'MG' => __( 'Madagascar', 'invoicing' ),
149
-	'MW' => __( 'Malawi', 'invoicing' ),
150
-	'MY' => __( 'Malaysia', 'invoicing' ),
151
-	'MV' => __( 'Maldives', 'invoicing' ),
152
-	'ML' => __( 'Mali', 'invoicing' ),
153
-	'MT' => __( 'Malta', 'invoicing' ),
154
-	'MH' => __( 'Marshall Islands', 'invoicing' ),
155
-	'MQ' => __( 'Martinique', 'invoicing' ),
156
-	'MR' => __( 'Mauritania', 'invoicing' ),
157
-	'MU' => __( 'Mauritius', 'invoicing' ),
158
-	'YT' => __( 'Mayotte', 'invoicing' ),
159
-	'MX' => __( 'Mexico', 'invoicing' ),
160
-	'FM' => __( 'Micronesia', 'invoicing' ),
161
-	'MD' => __( 'Moldova, Republic of', 'invoicing' ),
162
-	'MC' => __( 'Monaco', 'invoicing' ),
163
-	'MN' => __( 'Mongolia', 'invoicing' ),
164
-	'ME' => __( 'Montenegro', 'invoicing' ),
165
-	'MS' => __( 'Montserrat', 'invoicing' ),
166
-	'MA' => __( 'Morocco', 'invoicing' ),
167
-	'MZ' => __( 'Mozambique', 'invoicing' ),
168
-	'MM' => __( 'Myanmar', 'invoicing' ),
169
-	'NA' => __( 'Namibia', 'invoicing' ),
170
-	'NR' => __( 'Nauru', 'invoicing' ),
171
-	'NP' => __( 'Nepal', 'invoicing' ),
172
-	'NL' => __( 'Netherlands', 'invoicing' ),
173
-	'AN' => __( 'Netherlands Antilles', 'invoicing' ),
174
-	'NC' => __( 'New Caledonia', 'invoicing' ),
175
-	'NZ' => __( 'New Zealand', 'invoicing' ),
176
-	'NI' => __( 'Nicaragua', 'invoicing' ),
177
-	'NE' => __( 'Niger', 'invoicing' ),
178
-	'NG' => __( 'Nigeria', 'invoicing' ),
179
-	'NU' => __( 'Niue', 'invoicing' ),
180
-	'NF' => __( 'Norfolk Island', 'invoicing' ),
181
-	'KP' => __( 'North Korea', 'invoicing' ),
182
-	'MP' => __( 'Northern Mariana Islands', 'invoicing' ),
183
-	'NO' => __( 'Norway', 'invoicing' ),
184
-	'OM' => __( 'Oman', 'invoicing' ),
185
-	'PK' => __( 'Pakistan', 'invoicing' ),
186
-	'PW' => __( 'Palau', 'invoicing' ),
187
-	'PS' => __( 'Palestinian Territories', 'invoicing' ),
188
-	'PA' => __( 'Panama', 'invoicing' ),
189
-	'PG' => __( 'Papua New Guinea', 'invoicing' ),
190
-	'PY' => __( 'Paraguay', 'invoicing' ),
191
-	'PE' => __( 'Peru', 'invoicing' ),
192
-	'PH' => __( 'Philippines', 'invoicing' ),
193
-	'PN' => __( 'Pitcairn Island', 'invoicing' ),
194
-	'PL' => __( 'Poland', 'invoicing' ),
195
-	'PT' => __( 'Portugal', 'invoicing' ),
196
-	'PR' => __( 'Puerto Rico', 'invoicing' ),
197
-	'QA' => __( 'Qatar', 'invoicing' ),
198
-	'XK' => __( 'Republic of Kosovo', 'invoicing' ),
199
-	'RE' => __( 'Reunion Island', 'invoicing' ),
200
-	'RO' => __( 'Romania', 'invoicing' ),
201
-	'RU' => __( 'Russian Federation', 'invoicing' ),
202
-	'RW' => __( 'Rwanda', 'invoicing' ),
203
-	'BL' => __( 'Saint Barth&eacute;lemy', 'invoicing' ),
204
-	'SH' => __( 'Saint Helena', 'invoicing' ),
205
-	'KN' => __( 'Saint Kitts and Nevis', 'invoicing' ),
206
-	'LC' => __( 'Saint Lucia', 'invoicing' ),
207
-	'MF' => __( 'Saint Martin (French)', 'invoicing' ),
208
-	'SX' => __( 'Saint Martin (Dutch)', 'invoicing' ),
209
-	'PM' => __( 'Saint Pierre and Miquelon', 'invoicing' ),
210
-	'VC' => __( 'Saint Vincent and the Grenadines', 'invoicing' ),
211
-	'SM' => __( 'San Marino', 'invoicing' ),
212
-	'ST' => __( 'S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'invoicing' ),
213
-	'SA' => __( 'Saudi Arabia', 'invoicing' ),
214
-	'SN' => __( 'Senegal', 'invoicing' ),
215
-	'RS' => __( 'Serbia', 'invoicing' ),
216
-	'SC' => __( 'Seychelles', 'invoicing' ),
217
-	'SL' => __( 'Sierra Leone', 'invoicing' ),
218
-	'SG' => __( 'Singapore', 'invoicing' ),
219
-	'SK' => __( 'Slovak Republic', 'invoicing' ),
220
-	'SI' => __( 'Slovenia', 'invoicing' ),
221
-	'SB' => __( 'Solomon Islands', 'invoicing' ),
222
-	'SO' => __( 'Somalia', 'invoicing' ),
223
-	'ZA' => __( 'South Africa', 'invoicing' ),
224
-	'GS' => __( 'South Georgia', 'invoicing' ),
225
-	'KR' => __( 'South Korea', 'invoicing' ),
226
-	'SS' => __( 'South Sudan', 'invoicing' ),
227
-	'ES' => __( 'Spain', 'invoicing' ),
228
-	'LK' => __( 'Sri Lanka', 'invoicing' ),
229
-	'SD' => __( 'Sudan', 'invoicing' ),
230
-	'SR' => __( 'Suriname', 'invoicing' ),
231
-	'SJ' => __( 'Svalbard and Jan Mayen Islands', 'invoicing' ),
232
-	'SZ' => __( 'Swaziland', 'invoicing' ),
233
-	'SE' => __( 'Sweden', 'invoicing' ),
234
-	'CH' => __( 'Switzerland', 'invoicing' ),
235
-	'SY' => __( 'Syrian Arab Republic', 'invoicing' ),
236
-	'TW' => __( 'Taiwan', 'invoicing' ),
237
-	'TJ' => __( 'Tajikistan', 'invoicing' ),
238
-	'TZ' => __( 'Tanzania', 'invoicing' ),
239
-	'TH' => __( 'Thailand', 'invoicing' ),
240
-	'TL' => __( 'Timor-Leste', 'invoicing' ),
241
-	'TG' => __( 'Togo', 'invoicing' ),
242
-	'TK' => __( 'Tokelau', 'invoicing' ),
243
-	'TO' => __( 'Tonga', 'invoicing' ),
244
-	'TT' => __( 'Trinidad and Tobago', 'invoicing' ),
245
-	'TN' => __( 'Tunisia', 'invoicing' ),
246
-	'TR' => __( 'Turkey', 'invoicing' ),
247
-	'TM' => __( 'Turkmenistan', 'invoicing' ),
248
-	'TC' => __( 'Turks and Caicos Islands', 'invoicing' ),
249
-	'TV' => __( 'Tuvalu', 'invoicing' ),
250
-	'UG' => __( 'Uganda', 'invoicing' ),
251
-	'UA' => __( 'Ukraine', 'invoicing' ),
252
-	'AE' => __( 'United Arab Emirates', 'invoicing' ),
253
-	'UY' => __( 'Uruguay', 'invoicing' ),
254
-	'UM' => __( 'US Minor Outlying Islands', 'invoicing' ),
255
-	'UZ' => __( 'Uzbekistan', 'invoicing' ),
256
-	'VU' => __( 'Vanuatu', 'invoicing' ),
257
-	'VE' => __( 'Venezuela', 'invoicing' ),
258
-	'VN' => __( 'Vietnam', 'invoicing' ),
259
-	'VG' => __( 'Virgin Islands (British)', 'invoicing' ),
260
-	'VI' => __( 'Virgin Islands (USA)', 'invoicing' ),
261
-	'WF' => __( 'Wallis and Futuna Islands', 'invoicing' ),
262
-	'EH' => __( 'Western Sahara', 'invoicing' ),
263
-	'WS' => __( 'Western Samoa', 'invoicing' ),
264
-	'YE' => __( 'Yemen', 'invoicing' ),
265
-	'ZM' => __( 'Zambia', 'invoicing' ),
266
-	'ZW' => __( 'Zimbabwe', 'invoicing' ),
15
+	'US' => __('United States', 'invoicing'),
16
+	'CA' => __('Canada', 'invoicing'),
17
+	'GB' => __('United Kingdom', 'invoicing'),
18
+	'AF' => __('Afghanistan', 'invoicing'),
19
+	'AX' => __('Aland Islands', 'invoicing'),
20
+	'AL' => __('Albania', 'invoicing'),
21
+	'DZ' => __('Algeria', 'invoicing'),
22
+	'AS' => __('American Samoa', 'invoicing'),
23
+	'AD' => __('Andorra', 'invoicing'),
24
+	'AO' => __('Angola', 'invoicing'),
25
+	'AI' => __('Anguilla', 'invoicing'),
26
+	'AQ' => __('Antarctica', 'invoicing'),
27
+	'AG' => __('Antigua and Barbuda', 'invoicing'),
28
+	'AR' => __('Argentina', 'invoicing'),
29
+	'AM' => __('Armenia', 'invoicing'),
30
+	'AW' => __('Aruba', 'invoicing'),
31
+	'AU' => __('Australia', 'invoicing'),
32
+	'AT' => __('Austria', 'invoicing'),
33
+	'AZ' => __('Azerbaijan', 'invoicing'),
34
+	'BS' => __('Bahamas', 'invoicing'),
35
+	'BH' => __('Bahrain', 'invoicing'),
36
+	'BD' => __('Bangladesh', 'invoicing'),
37
+	'BB' => __('Barbados', 'invoicing'),
38
+	'BY' => __('Belarus', 'invoicing'),
39
+	'BE' => __('Belgium', 'invoicing'),
40
+	'BZ' => __('Belize', 'invoicing'),
41
+	'BJ' => __('Benin', 'invoicing'),
42
+	'BM' => __('Bermuda', 'invoicing'),
43
+	'BT' => __('Bhutan', 'invoicing'),
44
+	'BO' => __('Bolivia', 'invoicing'),
45
+	'BQ' => __('Bonaire, Saint Eustatius and Saba', 'invoicing'),
46
+	'BA' => __('Bosnia and Herzegovina', 'invoicing'),
47
+	'BW' => __('Botswana', 'invoicing'),
48
+	'BV' => __('Bouvet Island', 'invoicing'),
49
+	'BR' => __('Brazil', 'invoicing'),
50
+	'IO' => __('British Indian Ocean Territory', 'invoicing'),
51
+	'BN' => __('Brunei Darrussalam', 'invoicing'),
52
+	'BG' => __('Bulgaria', 'invoicing'),
53
+	'BF' => __('Burkina Faso', 'invoicing'),
54
+	'BI' => __('Burundi', 'invoicing'),
55
+	'KH' => __('Cambodia', 'invoicing'),
56
+	'CM' => __('Cameroon', 'invoicing'),
57
+	'CV' => __('Cape Verde', 'invoicing'),
58
+	'KY' => __('Cayman Islands', 'invoicing'),
59
+	'CF' => __('Central African Republic', 'invoicing'),
60
+	'TD' => __('Chad', 'invoicing'),
61
+	'CL' => __('Chile', 'invoicing'),
62
+	'CN' => __('China', 'invoicing'),
63
+	'CX' => __('Christmas Island', 'invoicing'),
64
+	'CC' => __('Cocos Islands', 'invoicing'),
65
+	'CO' => __('Colombia', 'invoicing'),
66
+	'KM' => __('Comoros', 'invoicing'),
67
+	'CD' => __('Congo, Democratic People\'s Republic', 'invoicing'),
68
+	'CG' => __('Congo, Republic of', 'invoicing'),
69
+	'CK' => __('Cook Islands', 'invoicing'),
70
+	'CR' => __('Costa Rica', 'invoicing'),
71
+	'CI' => __('Cote d\'Ivoire', 'invoicing'),
72
+	'HR' => __('Croatia/Hrvatska', 'invoicing'),
73
+	'CU' => __('Cuba', 'invoicing'),
74
+	'CW' => __('Cura&Ccedil;ao', 'invoicing'),
75
+	'CY' => __('Cyprus', 'invoicing'),
76
+	'CZ' => __('Czech Republic', 'invoicing'),
77
+	'DK' => __('Denmark', 'invoicing'),
78
+	'DJ' => __('Djibouti', 'invoicing'),
79
+	'DM' => __('Dominica', 'invoicing'),
80
+	'DO' => __('Dominican Republic', 'invoicing'),
81
+	'TP' => __('East Timor', 'invoicing'),
82
+	'EC' => __('Ecuador', 'invoicing'),
83
+	'EG' => __('Egypt', 'invoicing'),
84
+	'GQ' => __('Equatorial Guinea', 'invoicing'),
85
+	'SV' => __('El Salvador', 'invoicing'),
86
+	'ER' => __('Eritrea', 'invoicing'),
87
+	'EE' => __('Estonia', 'invoicing'),
88
+	'ET' => __('Ethiopia', 'invoicing'),
89
+	'FK' => __('Falkland Islands', 'invoicing'),
90
+	'FO' => __('Faroe Islands', 'invoicing'),
91
+	'FJ' => __('Fiji', 'invoicing'),
92
+	'FI' => __('Finland', 'invoicing'),
93
+	'FR' => __('France', 'invoicing'),
94
+	'GF' => __('French Guiana', 'invoicing'),
95
+	'PF' => __('French Polynesia', 'invoicing'),
96
+	'TF' => __('French Southern Territories', 'invoicing'),
97
+	'GA' => __('Gabon', 'invoicing'),
98
+	'GM' => __('Gambia', 'invoicing'),
99
+	'GE' => __('Georgia', 'invoicing'),
100
+	'DE' => __('Germany', 'invoicing'),
101
+	'GR' => __('Greece', 'invoicing'),
102
+	'GH' => __('Ghana', 'invoicing'),
103
+	'GI' => __('Gibraltar', 'invoicing'),
104
+	'GL' => __('Greenland', 'invoicing'),
105
+	'GD' => __('Grenada', 'invoicing'),
106
+	'GP' => __('Guadeloupe', 'invoicing'),
107
+	'GU' => __('Guam', 'invoicing'),
108
+	'GT' => __('Guatemala', 'invoicing'),
109
+	'GG' => __('Guernsey', 'invoicing'),
110
+	'GN' => __('Guinea', 'invoicing'),
111
+	'GW' => __('Guinea-Bissau', 'invoicing'),
112
+	'GY' => __('Guyana', 'invoicing'),
113
+	'HT' => __('Haiti', 'invoicing'),
114
+	'HM' => __('Heard and McDonald Islands', 'invoicing'),
115
+	'VA' => __('Holy See (City Vatican State)', 'invoicing'),
116
+	'HN' => __('Honduras', 'invoicing'),
117
+	'HK' => __('Hong Kong', 'invoicing'),
118
+	'HU' => __('Hungary', 'invoicing'),
119
+	'IS' => __('Iceland', 'invoicing'),
120
+	'IN' => __('India', 'invoicing'),
121
+	'ID' => __('Indonesia', 'invoicing'),
122
+	'IR' => __('Iran', 'invoicing'),
123
+	'IQ' => __('Iraq', 'invoicing'),
124
+	'IE' => __('Ireland', 'invoicing'),
125
+	'IM' => __('Isle of Man', 'invoicing'),
126
+	'IL' => __('Israel', 'invoicing'),
127
+	'IT' => __('Italy', 'invoicing'),
128
+	'JM' => __('Jamaica', 'invoicing'),
129
+	'JP' => __('Japan', 'invoicing'),
130
+	'JE' => __('Jersey', 'invoicing'),
131
+	'JO' => __('Jordan', 'invoicing'),
132
+	'KZ' => __('Kazakhstan', 'invoicing'),
133
+	'KE' => __('Kenya', 'invoicing'),
134
+	'KI' => __('Kiribati', 'invoicing'),
135
+	'KW' => __('Kuwait', 'invoicing'),
136
+	'KG' => __('Kyrgyzstan', 'invoicing'),
137
+	'LA' => __('Lao People\'s Democratic Republic', 'invoicing'),
138
+	'LV' => __('Latvia', 'invoicing'),
139
+	'LB' => __('Lebanon', 'invoicing'),
140
+	'LS' => __('Lesotho', 'invoicing'),
141
+	'LR' => __('Liberia', 'invoicing'),
142
+	'LY' => __('Libyan Arab Jamahiriya', 'invoicing'),
143
+	'LI' => __('Liechtenstein', 'invoicing'),
144
+	'LT' => __('Lithuania', 'invoicing'),
145
+	'LU' => __('Luxembourg', 'invoicing'),
146
+	'MO' => __('Macau', 'invoicing'),
147
+	'MK' => __('Macedonia', 'invoicing'),
148
+	'MG' => __('Madagascar', 'invoicing'),
149
+	'MW' => __('Malawi', 'invoicing'),
150
+	'MY' => __('Malaysia', 'invoicing'),
151
+	'MV' => __('Maldives', 'invoicing'),
152
+	'ML' => __('Mali', 'invoicing'),
153
+	'MT' => __('Malta', 'invoicing'),
154
+	'MH' => __('Marshall Islands', 'invoicing'),
155
+	'MQ' => __('Martinique', 'invoicing'),
156
+	'MR' => __('Mauritania', 'invoicing'),
157
+	'MU' => __('Mauritius', 'invoicing'),
158
+	'YT' => __('Mayotte', 'invoicing'),
159
+	'MX' => __('Mexico', 'invoicing'),
160
+	'FM' => __('Micronesia', 'invoicing'),
161
+	'MD' => __('Moldova, Republic of', 'invoicing'),
162
+	'MC' => __('Monaco', 'invoicing'),
163
+	'MN' => __('Mongolia', 'invoicing'),
164
+	'ME' => __('Montenegro', 'invoicing'),
165
+	'MS' => __('Montserrat', 'invoicing'),
166
+	'MA' => __('Morocco', 'invoicing'),
167
+	'MZ' => __('Mozambique', 'invoicing'),
168
+	'MM' => __('Myanmar', 'invoicing'),
169
+	'NA' => __('Namibia', 'invoicing'),
170
+	'NR' => __('Nauru', 'invoicing'),
171
+	'NP' => __('Nepal', 'invoicing'),
172
+	'NL' => __('Netherlands', 'invoicing'),
173
+	'AN' => __('Netherlands Antilles', 'invoicing'),
174
+	'NC' => __('New Caledonia', 'invoicing'),
175
+	'NZ' => __('New Zealand', 'invoicing'),
176
+	'NI' => __('Nicaragua', 'invoicing'),
177
+	'NE' => __('Niger', 'invoicing'),
178
+	'NG' => __('Nigeria', 'invoicing'),
179
+	'NU' => __('Niue', 'invoicing'),
180
+	'NF' => __('Norfolk Island', 'invoicing'),
181
+	'KP' => __('North Korea', 'invoicing'),
182
+	'MP' => __('Northern Mariana Islands', 'invoicing'),
183
+	'NO' => __('Norway', 'invoicing'),
184
+	'OM' => __('Oman', 'invoicing'),
185
+	'PK' => __('Pakistan', 'invoicing'),
186
+	'PW' => __('Palau', 'invoicing'),
187
+	'PS' => __('Palestinian Territories', 'invoicing'),
188
+	'PA' => __('Panama', 'invoicing'),
189
+	'PG' => __('Papua New Guinea', 'invoicing'),
190
+	'PY' => __('Paraguay', 'invoicing'),
191
+	'PE' => __('Peru', 'invoicing'),
192
+	'PH' => __('Philippines', 'invoicing'),
193
+	'PN' => __('Pitcairn Island', 'invoicing'),
194
+	'PL' => __('Poland', 'invoicing'),
195
+	'PT' => __('Portugal', 'invoicing'),
196
+	'PR' => __('Puerto Rico', 'invoicing'),
197
+	'QA' => __('Qatar', 'invoicing'),
198
+	'XK' => __('Republic of Kosovo', 'invoicing'),
199
+	'RE' => __('Reunion Island', 'invoicing'),
200
+	'RO' => __('Romania', 'invoicing'),
201
+	'RU' => __('Russian Federation', 'invoicing'),
202
+	'RW' => __('Rwanda', 'invoicing'),
203
+	'BL' => __('Saint Barth&eacute;lemy', 'invoicing'),
204
+	'SH' => __('Saint Helena', 'invoicing'),
205
+	'KN' => __('Saint Kitts and Nevis', 'invoicing'),
206
+	'LC' => __('Saint Lucia', 'invoicing'),
207
+	'MF' => __('Saint Martin (French)', 'invoicing'),
208
+	'SX' => __('Saint Martin (Dutch)', 'invoicing'),
209
+	'PM' => __('Saint Pierre and Miquelon', 'invoicing'),
210
+	'VC' => __('Saint Vincent and the Grenadines', 'invoicing'),
211
+	'SM' => __('San Marino', 'invoicing'),
212
+	'ST' => __('S&atilde;o Tom&eacute; and Pr&iacute;ncipe', 'invoicing'),
213
+	'SA' => __('Saudi Arabia', 'invoicing'),
214
+	'SN' => __('Senegal', 'invoicing'),
215
+	'RS' => __('Serbia', 'invoicing'),
216
+	'SC' => __('Seychelles', 'invoicing'),
217
+	'SL' => __('Sierra Leone', 'invoicing'),
218
+	'SG' => __('Singapore', 'invoicing'),
219
+	'SK' => __('Slovak Republic', 'invoicing'),
220
+	'SI' => __('Slovenia', 'invoicing'),
221
+	'SB' => __('Solomon Islands', 'invoicing'),
222
+	'SO' => __('Somalia', 'invoicing'),
223
+	'ZA' => __('South Africa', 'invoicing'),
224
+	'GS' => __('South Georgia', 'invoicing'),
225
+	'KR' => __('South Korea', 'invoicing'),
226
+	'SS' => __('South Sudan', 'invoicing'),
227
+	'ES' => __('Spain', 'invoicing'),
228
+	'LK' => __('Sri Lanka', 'invoicing'),
229
+	'SD' => __('Sudan', 'invoicing'),
230
+	'SR' => __('Suriname', 'invoicing'),
231
+	'SJ' => __('Svalbard and Jan Mayen Islands', 'invoicing'),
232
+	'SZ' => __('Swaziland', 'invoicing'),
233
+	'SE' => __('Sweden', 'invoicing'),
234
+	'CH' => __('Switzerland', 'invoicing'),
235
+	'SY' => __('Syrian Arab Republic', 'invoicing'),
236
+	'TW' => __('Taiwan', 'invoicing'),
237
+	'TJ' => __('Tajikistan', 'invoicing'),
238
+	'TZ' => __('Tanzania', 'invoicing'),
239
+	'TH' => __('Thailand', 'invoicing'),
240
+	'TL' => __('Timor-Leste', 'invoicing'),
241
+	'TG' => __('Togo', 'invoicing'),
242
+	'TK' => __('Tokelau', 'invoicing'),
243
+	'TO' => __('Tonga', 'invoicing'),
244
+	'TT' => __('Trinidad and Tobago', 'invoicing'),
245
+	'TN' => __('Tunisia', 'invoicing'),
246
+	'TR' => __('Turkey', 'invoicing'),
247
+	'TM' => __('Turkmenistan', 'invoicing'),
248
+	'TC' => __('Turks and Caicos Islands', 'invoicing'),
249
+	'TV' => __('Tuvalu', 'invoicing'),
250
+	'UG' => __('Uganda', 'invoicing'),
251
+	'UA' => __('Ukraine', 'invoicing'),
252
+	'AE' => __('United Arab Emirates', 'invoicing'),
253
+	'UY' => __('Uruguay', 'invoicing'),
254
+	'UM' => __('US Minor Outlying Islands', 'invoicing'),
255
+	'UZ' => __('Uzbekistan', 'invoicing'),
256
+	'VU' => __('Vanuatu', 'invoicing'),
257
+	'VE' => __('Venezuela', 'invoicing'),
258
+	'VN' => __('Vietnam', 'invoicing'),
259
+	'VG' => __('Virgin Islands (British)', 'invoicing'),
260
+	'VI' => __('Virgin Islands (USA)', 'invoicing'),
261
+	'WF' => __('Wallis and Futuna Islands', 'invoicing'),
262
+	'EH' => __('Western Sahara', 'invoicing'),
263
+	'WS' => __('Western Samoa', 'invoicing'),
264
+	'YE' => __('Yemen', 'invoicing'),
265
+	'ZM' => __('Zambia', 'invoicing'),
266
+	'ZW' => __('Zimbabwe', 'invoicing'),
267 267
 );
Please login to merge, or discard this patch.