Passed
Push — master ( cc57e9...222a59 )
by Brian
09:42
created
includes/class-bp-getpaid-component.php 1 patch
Indentation   +129 added lines, -129 removed lines patch added patch discarded remove patch
@@ -17,45 +17,45 @@  discard block
 block discarded – undo
17 17
  */
18 18
 class BP_GetPaid_Component extends BP_Component {
19 19
 
20
-	/**
21
-	 * Start the component setup process.
22
-	 *
23
-	 * @since 2.1.5
24
-	 */
25
-	public function __construct() {
26
-		parent::start(
27
-			'getpaid',
28
-			'GetPaid',
29
-			buddypress()->plugin_dir,
30
-			array(
31
-				'adminbar_myaccount_order' => 30,
32
-			)
33
-		);
34
-	}
20
+    /**
21
+     * Start the component setup process.
22
+     *
23
+     * @since 2.1.5
24
+     */
25
+    public function __construct() {
26
+        parent::start(
27
+            'getpaid',
28
+            'GetPaid',
29
+            buddypress()->plugin_dir,
30
+            array(
31
+                'adminbar_myaccount_order' => 30,
32
+            )
33
+        );
34
+    }
35 35
 
36 36
     /**
37
-	 * Set up component global variables.
38
-	 *
39
-	 * @since 2.1.5
40
-	 *
41
-	 *
42
-	 * @param array $args {
43
-	 *     All values are optional.
44
-	 *     @type string   $slug                  The component slug. Used to construct certain URLs, such as 'friends' in
45
-	 *                                           http://example.com/members/joe/friends/. Default: the value of $this->id.
46
-	 *     @type string   $root_slug             The component root slug. Note that this value is generally unused if the
47
-	 *                                           component has a root directory (the slug will be overridden by the
48
-	 *                                           post_name of the directory page). Default: the slug of the directory page
49
-	 *                                           if one is found, otherwise an empty string.
50
-	 *     @type bool     $has_directory         Set to true if the component requires an associated WordPress page.
51
-	 *     @type callable $notification_callback Optional. The callable function that formats the component's notifications.
52
-	 *     @type string   $search_term           Optional. The placeholder text in the component directory search box. Eg,
53
-	 *                                           'Search Groups...'.
54
-	 *     @type array    $global_tables         Optional. An array of database table names.
55
-	 *     @type array    $meta_tables           Optional. An array of metadata table names.
56
-	 * }
57
-	 */
58
-	public function setup_globals( $args = array() ) {
37
+     * Set up component global variables.
38
+     *
39
+     * @since 2.1.5
40
+     *
41
+     *
42
+     * @param array $args {
43
+     *     All values are optional.
44
+     *     @type string   $slug                  The component slug. Used to construct certain URLs, such as 'friends' in
45
+     *                                           http://example.com/members/joe/friends/. Default: the value of $this->id.
46
+     *     @type string   $root_slug             The component root slug. Note that this value is generally unused if the
47
+     *                                           component has a root directory (the slug will be overridden by the
48
+     *                                           post_name of the directory page). Default: the slug of the directory page
49
+     *                                           if one is found, otherwise an empty string.
50
+     *     @type bool     $has_directory         Set to true if the component requires an associated WordPress page.
51
+     *     @type callable $notification_callback Optional. The callable function that formats the component's notifications.
52
+     *     @type string   $search_term           Optional. The placeholder text in the component directory search box. Eg,
53
+     *                                           'Search Groups...'.
54
+     *     @type array    $global_tables         Optional. An array of database table names.
55
+     *     @type array    $meta_tables           Optional. An array of metadata table names.
56
+     * }
57
+     */
58
+    public function setup_globals( $args = array() ) {
59 59
         parent::setup_globals(
60 60
             array(
61 61
                 'id'            => 'getpaid',
@@ -64,21 +64,21 @@  discard block
 block discarded – undo
64 64
                 'has_directory' => false
65 65
             )
66 66
         );
67
-	}
68
-
69
-	/**
70
-	 * Set up component navigation.
71
-	 *
72
-	 * @since 2.1.5
73
-	 *
74
-	 * @see BP_Component::setup_nav() for a description of arguments.
75
-	 *
76
-	 * @param array $main_nav Optional. See BP_Component::setup_nav() for description.
77
-	 * @param array $sub_nav  Optional. See BP_Component::setup_nav() for description.
78
-	 */
79
-	public function setup_nav( $main_nav = array(), $sub_nav = array() ) {
80
-
81
-		// Abort if the integration is inactive.
67
+    }
68
+
69
+    /**
70
+     * Set up component navigation.
71
+     *
72
+     * @since 2.1.5
73
+     *
74
+     * @see BP_Component::setup_nav() for a description of arguments.
75
+     *
76
+     * @param array $main_nav Optional. See BP_Component::setup_nav() for description.
77
+     * @param array $sub_nav  Optional. See BP_Component::setup_nav() for description.
78
+     */
79
+    public function setup_nav( $main_nav = array(), $sub_nav = array() ) {
80
+
81
+        // Abort if the integration is inactive.
82 82
         if ( ! getpaid_is_buddypress_integration_active() || ! is_user_logged_in() ) {
83 83
             return;
84 84
         }
@@ -88,25 +88,25 @@  discard block
 block discarded – undo
88 88
             return;
89 89
         }
90 90
 
91
-		// Determine user to use.
92
-		$user_domain   = bp_loggedin_user_domain();
93
-		$slug          = 'getpaid';
94
-		$payments_link = trailingslashit( $user_domain . $slug );
95
-
96
-		// Add 'Payments' to the main navigation.
97
-		$main_nav = array(
98
-			'name'                => _x( 'Billing', 'BuddyPress profile payments screen nav', 'invoicing' ),
99
-			'slug'                => $slug,
100
-			'position'            => apply_filters( 'wpinv_bp_nav_position', wpinv_get_option( 'wpinv_menu_position', 91 ), $slug ),
101
-			'screen_function'     => array( $this, 'display_current_tab' ),
102
-			'default_subnav_slug' => 'gp-edit-address',
91
+        // Determine user to use.
92
+        $user_domain   = bp_loggedin_user_domain();
93
+        $slug          = 'getpaid';
94
+        $payments_link = trailingslashit( $user_domain . $slug );
95
+
96
+        // Add 'Payments' to the main navigation.
97
+        $main_nav = array(
98
+            'name'                => _x( 'Billing', 'BuddyPress profile payments screen nav', 'invoicing' ),
99
+            'slug'                => $slug,
100
+            'position'            => apply_filters( 'wpinv_bp_nav_position', wpinv_get_option( 'wpinv_menu_position', 91 ), $slug ),
101
+            'screen_function'     => array( $this, 'display_current_tab' ),
102
+            'default_subnav_slug' => 'gp-edit-address',
103 103
             'show_for_displayed_user' => false,
104
-			'item_css_id'         => $this->id,
105
-			'parent_url'          => $user_domain,
106
-			'parent_slug'         => buddypress()->slug,
107
-		);
104
+            'item_css_id'         => $this->id,
105
+            'parent_url'          => $user_domain,
106
+            'parent_slug'         => buddypress()->slug,
107
+        );
108 108
 
109
-		// Add the subnav items to the payments nav item if we are using a theme that supports this.
109
+        // Add the subnav items to the payments nav item if we are using a theme that supports this.
110 110
         foreach ( getpaid_get_user_content_tabs() as $_slug => $tab ) {
111 111
 
112 112
             $sub_nav[] = array(
@@ -116,8 +116,8 @@  discard block
 block discarded – undo
116 116
                 'parent_slug'     => $slug,
117 117
                 'position' => 10,
118 118
                 'screen_function'        => function() use ( $tab ) {
119
-					$GLOBALS['getpaid_bp_current_tab'] = $tab;
120
-					$this->display_current_tab();
119
+                    $GLOBALS['getpaid_bp_current_tab'] = $tab;
120
+                    $this->display_current_tab();
121 121
                 },
122 122
                 'show_for_displayed_user' => false,
123 123
                 'item_css_id'             => "getpaid-bp-$_slug",
@@ -125,27 +125,27 @@  discard block
 block discarded – undo
125 125
 
126 126
         }
127 127
 
128
-		parent::setup_nav( $main_nav, $sub_nav );
129
-	}
130
-
131
-	/**
132
-	 * Set up the component entries in the WordPress Admin Bar.
133
-	 *
134
-	 * @since 2.1.5
135
-	 *
136
-	 * @see BP_Component::setup_nav() for a description of the $wp_admin_nav
137
-	 *      parameter array.
138
-	 *
139
-	 * @param array $wp_admin_nav See BP_Component::setup_admin_bar() for a
140
-	 *                            description.
141
-	 */
142
-	public function setup_admin_bar( $wp_admin_nav = array() ) {
143
-
144
-		// Menus for logged in user.
145
-		if ( is_user_logged_in() ) {
128
+        parent::setup_nav( $main_nav, $sub_nav );
129
+    }
146 130
 
147
-			// Setup the logged in user variables.
148
-			$payments_link = trailingslashit( bp_loggedin_user_domain() . 'getpaid/' );
131
+    /**
132
+     * Set up the component entries in the WordPress Admin Bar.
133
+     *
134
+     * @since 2.1.5
135
+     *
136
+     * @see BP_Component::setup_nav() for a description of the $wp_admin_nav
137
+     *      parameter array.
138
+     *
139
+     * @param array $wp_admin_nav See BP_Component::setup_admin_bar() for a
140
+     *                            description.
141
+     */
142
+    public function setup_admin_bar( $wp_admin_nav = array() ) {
143
+
144
+        // Menus for logged in user.
145
+        if ( is_user_logged_in() ) {
146
+
147
+            // Setup the logged in user variables.
148
+            $payments_link = trailingslashit( bp_loggedin_user_domain() . 'getpaid/' );
149 149
 
150 150
             // Add the "Payments" sub menu.
151 151
             $wp_admin_nav[] = array(
@@ -167,50 +167,50 @@  discard block
 block discarded – undo
167 167
 
168 168
             }
169 169
 
170
-		}
171
-
172
-		parent::setup_admin_bar( $wp_admin_nav );
173
-	}
170
+        }
174 171
 
175
-	/**
176
-	 * Retrieves the current tab.
177
-	 *
178
-	 * @since 2.1.5
179
-	 */
180
-	public function get_current_tab() {
181
-		global $getpaid_bp_current_tab;
172
+        parent::setup_admin_bar( $wp_admin_nav );
173
+    }
182 174
 
183
-		if ( empty( $getpaid_bp_current_tab ) ) {
184
-			return array(
185
-				'label'     => __( 'Invoices', 'invoicing' ),
186
-				'content'   => '[wpinv_history]',
187
-				'icon'      => 'fas fa-file-invoice',
188
-			);
189
-		}
175
+    /**
176
+     * Retrieves the current tab.
177
+     *
178
+     * @since 2.1.5
179
+     */
180
+    public function get_current_tab() {
181
+        global $getpaid_bp_current_tab;
182
+
183
+        if ( empty( $getpaid_bp_current_tab ) ) {
184
+            return array(
185
+                'label'     => __( 'Invoices', 'invoicing' ),
186
+                'content'   => '[wpinv_history]',
187
+                'icon'      => 'fas fa-file-invoice',
188
+            );
189
+        }
190 190
 
191
-		return $getpaid_bp_current_tab;
192
-	}
191
+        return $getpaid_bp_current_tab;
192
+    }
193 193
 
194
-	/**
195
-	 * Displays the current tab.
196
-	 *
197
-	 * @since 2.1.5
198
-	 */
199
-	public function display_current_tab() {
194
+    /**
195
+     * Displays the current tab.
196
+     *
197
+     * @since 2.1.5
198
+     */
199
+    public function display_current_tab() {
200 200
 
201
-		add_action( 'bp_template_content', array( $this, 'handle_display_current_tab' ) );
202
-		$template = apply_filters( 'bp_core_template_plugin', 'members/single/plugins' );
201
+        add_action( 'bp_template_content', array( $this, 'handle_display_current_tab' ) );
202
+        $template = apply_filters( 'bp_core_template_plugin', 'members/single/plugins' );
203 203
 
204 204
         bp_core_load_template( apply_filters( 'wpinv_bp_core_template_plugin', $template ) );
205
-	}
206
-
207
-	/**
208
-	 * Handles the actual display of the current tab.
209
-	 *
210
-	 * @since 2.1.5
211
-	 */
212
-	public function handle_display_current_tab() {
213
-		echo getpaid_prepare_user_content_tab( $this->get_current_tab() );
214
-	}
205
+    }
206
+
207
+    /**
208
+     * Handles the actual display of the current tab.
209
+     *
210
+     * @since 2.1.5
211
+     */
212
+    public function handle_display_current_tab() {
213
+        echo getpaid_prepare_user_content_tab( $this->get_current_tab() );
214
+    }
215 215
 
216 216
 }
Please login to merge, or discard this patch.
includes/admin/meta-boxes/class-getpaid-meta-box-invoice-address.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  */
9 9
 
10 10
 if ( ! defined( 'ABSPATH' ) ) {
11
-	exit; // Exit if accessed directly
11
+    exit; // Exit if accessed directly
12 12
 }
13 13
 
14 14
 /**
@@ -17,10 +17,10 @@  discard block
 block discarded – undo
17 17
 class GetPaid_Meta_Box_Invoice_Address {
18 18
 
19 19
     /**
20
-	 * Output the metabox.
21
-	 *
22
-	 * @param WP_Post $post
23
-	 */
20
+     * Output the metabox.
21
+     *
22
+     * @param WP_Post $post
23
+     */
24 24
     public static function output( $post ) {
25 25
 
26 26
         // Prepare the invoice.
@@ -298,18 +298,18 @@  discard block
 block discarded – undo
298 298
     }
299 299
 
300 300
     /**
301
-	 * Save meta box data.
302
-	 *
303
-	 * @param int $post_id
304
-	 */
305
-	public static function save( $post_id ) {
301
+     * Save meta box data.
302
+     *
303
+     * @param int $post_id
304
+     */
305
+    public static function save( $post_id ) {
306 306
 
307 307
         // Prepare the invoice.
308 308
         $invoice = new WPInv_Invoice( $post_id );
309 309
 
310 310
         // Load new data.
311 311
         $invoice->set_props(
312
-			array(
312
+            array(
313 313
                 'template'             => isset( $_POST['wpinv_template'] ) ? wpinv_clean( $_POST['wpinv_template'] ) : null,
314 314
                 'email_cc'             => isset( $_POST['wpinv_cc'] ) ? wpinv_clean( $_POST['wpinv_cc'] ) : null,
315 315
                 'disable_taxes'        => isset( $_POST['disable_taxes'] ),
@@ -330,7 +330,7 @@  discard block
 block discarded – undo
330 330
                 'due_date'             => isset( $_POST['wpinv_due_date'] ) ? wpinv_clean( $_POST['wpinv_due_date'] ) : null,
331 331
                 'number'               => isset( $_POST['wpinv_number'] ) ? wpinv_clean( $_POST['wpinv_number'] ) : null,
332 332
                 'status'               => isset( $_POST['wpinv_status'] ) ? wpinv_clean( $_POST['wpinv_status'] ) : null,
333
-			)
333
+            )
334 334
         );
335 335
 
336 336
         // Discount code.
@@ -376,6 +376,6 @@  discard block
 block discarded – undo
376 376
         }
377 377
 
378 378
         // Fires after an invoice is saved.
379
-		do_action( 'wpinv_invoice_metabox_saved', $invoice );
380
-	}
379
+        do_action( 'wpinv_invoice_metabox_saved', $invoice );
380
+    }
381 381
 }
Please login to merge, or discard this patch.
includes/data/countries.php 1 patch
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Ç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é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ão Tomé and Prí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Ç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é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ão Tomé and Prí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.
templates/payment-forms/elements/address.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -10,7 +10,7 @@  discard block
 block discarded – undo
10 10
 defined( 'ABSPATH' ) || exit;
11 11
 
12 12
 if ( empty( $fields ) ) {
13
-	return;
13
+    return;
14 14
 }
15 15
 
16 16
 // A prefix for all ids (so that a form can be included in the same page multiple times).
@@ -18,12 +18,12 @@  discard block
 block discarded – undo
18 18
 
19 19
 // Prepare the user's country.
20 20
 if ( ! empty( $form->invoice ) ) {
21
-	$country = $form->invoice->get_country();
21
+    $country = $form->invoice->get_country();
22 22
 }
23 23
 
24 24
 if ( empty( $country ) ) {
25
-	$country = empty( $country ) ? getpaid_get_ip_country() : $country;
26
-	$country = empty( $country ) ? wpinv_get_default_country() : $country;
25
+    $country = empty( $country ) ? getpaid_get_ip_country() : $country;
26
+    $country = empty( $country ) ? wpinv_get_default_country() : $country;
27 27
 }
28 28
 
29 29
 // A prefix for all ids (so that a form can be included in the same page multiple times).
@@ -55,10 +55,10 @@  discard block
 block discarded – undo
55 55
 	<!-- Start Billing Address -->
56 56
 	<div class="getpaid-billing-address-wrapper">
57 57
 		<?php
58
-			$field_type = 'billing';
59
-			include plugin_dir_path( __FILE__ ) . 'address-fields.php';
60
-			do_action( 'getpaid_after_payment_form_billing_fields', $form );
61
-		?>
58
+            $field_type = 'billing';
59
+            include plugin_dir_path( __FILE__ ) . 'address-fields.php';
60
+            do_action( 'getpaid_after_payment_form_billing_fields', $form );
61
+        ?>
62 62
 	</div>
63 63
 	<!-- End Billing Address -->
64 64
 
@@ -70,20 +70,20 @@  discard block
 block discarded – undo
70 70
 
71 71
 	<?php
72 72
 
73
-		echo aui()->input(
74
-		    array(
75
-			    'type'       => 'checkbox',
76
-			    'name'       => 'same-shipping-address',
77
-			    'id'         => "shipping-toggle$uniqid",
78
-			    'required'   => false,
79
-			    'label'      => wp_kses_post( $shipping_address_toggle ),
80
-			    'value'      => 1,
81
-			    'checked'    => true,
82
-				'class'      => 'w-auto',
83
-		    )
84
-		);
73
+        echo aui()->input(
74
+            array(
75
+                'type'       => 'checkbox',
76
+                'name'       => 'same-shipping-address',
77
+                'id'         => "shipping-toggle$uniqid",
78
+                'required'   => false,
79
+                'label'      => wp_kses_post( $shipping_address_toggle ),
80
+                'value'      => 1,
81
+                'checked'    => true,
82
+                'class'      => 'w-auto',
83
+            )
84
+        );
85 85
 
86
-	?>
86
+    ?>
87 87
 
88 88
 
89 89
 	<!-- Start Shipping Address Title -->
@@ -102,10 +102,10 @@  discard block
 block discarded – undo
102 102
 	<!-- Start Shipping Address -->
103 103
 	<div class="getpaid-shipping-address-wrapper">
104 104
 		<?php
105
-			$field_type = 'shipping';
106
-			include plugin_dir_path( __FILE__ ) . 'address-fields.php';
107
-			do_action( 'getpaid_after_payment_form_shipping_fields', $form );
108
-		?>
105
+            $field_type = 'shipping';
106
+            include plugin_dir_path( __FILE__ ) . 'address-fields.php';
107
+            do_action( 'getpaid_after_payment_form_shipping_fields', $form );
108
+        ?>
109 109
 	</div>
110 110
 	<!-- End Shipping Address -->
111 111
 
Please login to merge, or discard this patch.
includes/class-getpaid-template.php 1 patch
Indentation   +152 added lines, -152 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined( 'ABSPATH' ) ) {
3
-	exit;
3
+    exit;
4 4
 }
5 5
 
6 6
 /**
@@ -20,29 +20,29 @@  discard block
 block discarded – undo
20 20
     public $templates_url;
21 21
 
22 22
     /**
23
-	 * Class constructor.
24
-	 *
25
-	 * @since 1.0.19
26
-	 */
27
-	public function __construct() {
23
+     * Class constructor.
24
+     *
25
+     * @since 1.0.19
26
+     */
27
+    public function __construct() {
28 28
 
29 29
         $this->templates_dir = apply_filters( 'getpaid_default_templates_dir', WPINV_PLUGIN_DIR . 'templates' );
30 30
         $this->templates_url = apply_filters( 'getpaid_default_templates_url', WPINV_PLUGIN_URL . 'templates' );
31 31
 
32 32
         // Oxygen plugin
33
-		if ( defined( 'CT_VERSION' ) ) {
34
-			add_filter( 'wpinv_locate_template', array( $this, 'oxygen_override_template' ), 11, 4 );
35
-		}
33
+        if ( defined( 'CT_VERSION' ) ) {
34
+            add_filter( 'wpinv_locate_template', array( $this, 'oxygen_override_template' ), 11, 4 );
35
+        }
36 36
 
37 37
     }
38 38
 
39 39
     /**
40
-	 * Checks if this is a preview page
41
-	 *
42
-	 * @since 1.0.19
43
-	 * @return bool
44
-	 */
45
-	public function is_preview() {
40
+     * Checks if this is a preview page
41
+     *
42
+     * @since 1.0.19
43
+     * @return bool
44
+     */
45
+    public function is_preview() {
46 46
         return 
47 47
             $this->is_divi_preview() ||
48 48
             $this->is_elementor_preview() ||
@@ -54,73 +54,73 @@  discard block
 block discarded – undo
54 54
     }
55 55
 
56 56
     /**
57
-	 * Checks if this is an elementor preview page
58
-	 *
59
-	 * @since 1.0.19
60
-	 * @return bool
61
-	 */
62
-	public function is_elementor_preview() {
63
-		return isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' );
64
-	}
65
-
66
-	/**
67
-	 * Checks if this is a DIVI preview page
68
-	 *
69
-	 * @since 1.0.19
70
-	 * @return bool
71
-	 */
72
-	public function is_divi_preview() {
73
-		return isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'et_pb' );
74
-	}
75
-
76
-	/**
77
-	 * Checks if this is a beaver builder preview page
78
-	 *
79
-	 * @since 1.0.19
80
-	 * @return bool
81
-	 */
82
-	public function is_beaver_preview() {
83
-		return isset( $_REQUEST['fl_builder'] );
84
-	}
85
-
86
-	/**
87
-	 * Checks if this is a siteorigin builder preview page
88
-	 *
89
-	 * @since 1.0.19
90
-	 * @return bool
91
-	 */
92
-	public function is_siteorigin_preview() {
93
-		return ! empty( $_REQUEST['siteorigin_panels_live_editor'] );
94
-	}
95
-
96
-	/**
97
-	 * Checks if this is a cornerstone builder preview page
98
-	 *
99
-	 * @since 1.0.19
100
-	 * @return bool
101
-	 */
102
-	public function is_cornerstone_preview() {
103
-		return ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint';
104
-	}
105
-
106
-	/**
107
-	 * Checks if this is a fusion builder preview page
108
-	 *
109
-	 * @since 1.0.19
110
-	 * @return bool
111
-	 */
112
-	public function is_fusion_preview() {
113
-		return ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] );
114
-	}
115
-
116
-	/**
117
-	 * Checks if this is an oxygen builder preview page
118
-	 *
119
-	 * @since 1.0.19
120
-	 * @return bool
121
-	 */
122
-	public function is_oxygen_preview() {
123
-		return ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) );
57
+     * Checks if this is an elementor preview page
58
+     *
59
+     * @since 1.0.19
60
+     * @return bool
61
+     */
62
+    public function is_elementor_preview() {
63
+        return isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' );
64
+    }
65
+
66
+    /**
67
+     * Checks if this is a DIVI preview page
68
+     *
69
+     * @since 1.0.19
70
+     * @return bool
71
+     */
72
+    public function is_divi_preview() {
73
+        return isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'et_pb' );
74
+    }
75
+
76
+    /**
77
+     * Checks if this is a beaver builder preview page
78
+     *
79
+     * @since 1.0.19
80
+     * @return bool
81
+     */
82
+    public function is_beaver_preview() {
83
+        return isset( $_REQUEST['fl_builder'] );
84
+    }
85
+
86
+    /**
87
+     * Checks if this is a siteorigin builder preview page
88
+     *
89
+     * @since 1.0.19
90
+     * @return bool
91
+     */
92
+    public function is_siteorigin_preview() {
93
+        return ! empty( $_REQUEST['siteorigin_panels_live_editor'] );
94
+    }
95
+
96
+    /**
97
+     * Checks if this is a cornerstone builder preview page
98
+     *
99
+     * @since 1.0.19
100
+     * @return bool
101
+     */
102
+    public function is_cornerstone_preview() {
103
+        return ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint';
104
+    }
105
+
106
+    /**
107
+     * Checks if this is a fusion builder preview page
108
+     *
109
+     * @since 1.0.19
110
+     * @return bool
111
+     */
112
+    public function is_fusion_preview() {
113
+        return ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] );
114
+    }
115
+
116
+    /**
117
+     * Checks if this is an oxygen builder preview page
118
+     *
119
+     * @since 1.0.19
120
+     * @return bool
121
+     */
122
+    public function is_oxygen_preview() {
123
+        return ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) );
124 124
     }
125 125
 
126 126
     /**
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
      * @param string $template_path The template path relative to the theme's root dir. Defaults to 'invoicing'.
131 131
      * @param string $default_path The root path to the default template. Defaults to invoicing/templates
132 132
      */
133
-	public function locate_template( $template_name, $template_path = '', $default_path = '' ) {
133
+    public function locate_template( $template_name, $template_path = '', $default_path = '' ) {
134 134
 
135 135
         // Load the defaults for the template path and default path.
136 136
         $template_path = empty( $template_path ) ? 'invoicing' : $template_path;
@@ -151,22 +151,22 @@  discard block
 block discarded – undo
151 151
     }
152 152
     
153 153
     /**
154
-	 * Loads a template
155
-	 *
156
-	 * @since 1.0.19
157
-	 * @return bool
158
-	 */
159
-	protected function load_template( $template_name, $template_path, $args ) {
154
+     * Loads a template
155
+     *
156
+     * @since 1.0.19
157
+     * @return bool
158
+     */
159
+    protected function load_template( $template_name, $template_path, $args ) {
160 160
 
161 161
         if ( is_array( $args ) ){
162 162
             extract( $args );
163 163
         }
164 164
 
165 165
         // Fires before loading a template.
166
-	    do_action( 'wpinv_before_template_part', $template_name, $template_path, $args );
166
+        do_action( 'wpinv_before_template_part', $template_name, $template_path, $args );
167 167
 
168 168
         // Load the template.
169
-	    include( $template_path );
169
+        include( $template_path );
170 170
 
171 171
         // Fires after loading a template.
172 172
         do_action( 'wpinv_after_template_part', $template_name, $template_path, $args );
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
      * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'.
184 184
      * @param string $default_path The root path to the default template. Defaults to invoicing/templates
185 185
      */
186
-	public function display_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
186
+    public function display_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
187 187
 
188 188
         // Locate the template.
189 189
         $located = $this->locate_template( $template_name, $template_path, $default_path );
@@ -208,74 +208,74 @@  discard block
 block discarded – undo
208 208
      * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'.
209 209
      * @param string $default_path The root path to the default template. Defaults to invoicing/templates
210 210
      */
211
-	public function get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
211
+    public function get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) {
212 212
         ob_start();
213 213
         $this->display_template( $template_name, $args, $template_path, $default_path );
214 214
         return ob_get_clean();
215 215
     }
216 216
 
217 217
     /**
218
-	 * Get the geodirectory templates theme path.
219
-	 *
220
-	 *
221
-	 * @return string Template path.
222
-	 */
223
-	public static function get_theme_template_path() {
224
-		$template   = get_template();
225
-		$theme_root = get_theme_root( $template );
226
-
227
-		return $theme_root . '/' . $template . '/' . untrailingslashit( wpinv_get_theme_template_dir_name() );
228
-
229
-	}
230
-
231
-	/**
232
-	 * Oxygen locate theme template.
233
-	 *
234
-	 * @param string $template The template.
235
-	 * @return string The theme template.
236
-	 */
237
-	public static function oxygen_locate_template( $template ) {
238
-
239
-		if ( empty( $template ) ) {
240
-			return '';
241
-		}
242
-
243
-		$has_filter = has_filter( 'template', 'ct_oxygen_template_name' );
244
-
245
-		// Remove template filter
246
-		if ( $has_filter ) {
247
-			remove_filter( 'template', 'ct_oxygen_template_name' );
248
-		}
249
-
250
-		$template = self::get_theme_template_path() . '/' . $template;
251
-
252
-		if ( ! file_exists( $template ) ) {
253
-			$template = '';
254
-		}
255
-
256
-		// Add template filter
257
-		if ( $has_filter ) {
258
-			add_filter( 'template', 'ct_oxygen_template_name' );
259
-		}
260
-
261
-		return $template;
262
-	}
263
-
264
-	/**
265
-	 * Oxygen override theme template.
266
-	 *
267
-	 * @param string $located Located template.
268
-	 * @param string $template_name Template name.
269
-	 * @return string Located template.
270
-	 */
271
-	public function oxygen_override_template( $located, $template_name ) {
218
+     * Get the geodirectory templates theme path.
219
+     *
220
+     *
221
+     * @return string Template path.
222
+     */
223
+    public static function get_theme_template_path() {
224
+        $template   = get_template();
225
+        $theme_root = get_theme_root( $template );
226
+
227
+        return $theme_root . '/' . $template . '/' . untrailingslashit( wpinv_get_theme_template_dir_name() );
228
+
229
+    }
230
+
231
+    /**
232
+     * Oxygen locate theme template.
233
+     *
234
+     * @param string $template The template.
235
+     * @return string The theme template.
236
+     */
237
+    public static function oxygen_locate_template( $template ) {
238
+
239
+        if ( empty( $template ) ) {
240
+            return '';
241
+        }
242
+
243
+        $has_filter = has_filter( 'template', 'ct_oxygen_template_name' );
244
+
245
+        // Remove template filter
246
+        if ( $has_filter ) {
247
+            remove_filter( 'template', 'ct_oxygen_template_name' );
248
+        }
249
+
250
+        $template = self::get_theme_template_path() . '/' . $template;
251
+
252
+        if ( ! file_exists( $template ) ) {
253
+            $template = '';
254
+        }
255
+
256
+        // Add template filter
257
+        if ( $has_filter ) {
258
+            add_filter( 'template', 'ct_oxygen_template_name' );
259
+        }
260
+
261
+        return $template;
262
+    }
263
+
264
+    /**
265
+     * Oxygen override theme template.
266
+     *
267
+     * @param string $located Located template.
268
+     * @param string $template_name Template name.
269
+     * @return string Located template.
270
+     */
271
+    public function oxygen_override_template( $located, $template_name ) {
272 272
 
273 273
         $oxygen_overide = self::oxygen_locate_template( $template_name );
274
-		if ( ! empty( $oxygen_overide ) ) {
275
-			return $oxygen_overide;
276
-		}
274
+        if ( ! empty( $oxygen_overide ) ) {
275
+            return $oxygen_overide;
276
+        }
277 277
 
278
-		return $located;
279
-	}
278
+        return $located;
279
+    }
280 280
 
281 281
 }
Please login to merge, or discard this patch.
includes/wpinv-item-functions.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -411,9 +411,9 @@
 block discarded – undo
411 411
     $bill_times      = $item->get_recurring_limit();
412 412
 
413 413
     if ( ! empty( $bill_times ) ) {
414
-		$bill_times = $item->get_recurring_interval() * $bill_times;
415
-		$bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times );
416
-	}
414
+        $bill_times = $item->get_recurring_interval() * $bill_times;
415
+        $bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times );
416
+    }
417 417
 
418 418
     if ( $item instanceof GetPaid_Form_Item && false === $_initial_price ) {
419 419
         $initial_price   = wpinv_price( $item->get_sub_total(), $currency );
Please login to merge, or discard this patch.
includes/payments/class-getpaid-payment-exception.php 1 patch
Indentation   +41 added lines, -41 removed lines patch added patch discarded remove patch
@@ -14,51 +14,51 @@
 block discarded – undo
14 14
  */
15 15
 class GetPaid_Payment_Exception extends Exception {
16 16
 
17
-	/**
18
-	 * Sanitized error code.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	protected $error_code;
17
+    /**
18
+     * Sanitized error code.
19
+     *
20
+     * @var string
21
+     */
22
+    protected $error_code;
23 23
 
24
-	/**
25
-	 * Error extra data.
26
-	 *
27
-	 * @var array
28
-	 */
29
-	protected $error_data;
24
+    /**
25
+     * Error extra data.
26
+     *
27
+     * @var array
28
+     */
29
+    protected $error_data;
30 30
 
31
-	/**
32
-	 * Setup exception.
33
-	 *
34
-	 * @param string $code             Machine-readable error code, e.g `getpaid-discount-error`.
35
-	 * @param string $message          User-friendly translated error message, e.g. 'Discount is invalid'.
36
-	 * @param int    $http_status_code Proper HTTP status code to respond with, e.g. 400.
37
-	 * @param array  $data             Extra error data.
38
-	 */
39
-	public function __construct( $code, $message, $http_status_code = 400, $data = array() ) {
40
-		$this->error_code = $code;
41
-		$this->error_data = array_merge( array( 'status' => $http_status_code ), $data );
31
+    /**
32
+     * Setup exception.
33
+     *
34
+     * @param string $code             Machine-readable error code, e.g `getpaid-discount-error`.
35
+     * @param string $message          User-friendly translated error message, e.g. 'Discount is invalid'.
36
+     * @param int    $http_status_code Proper HTTP status code to respond with, e.g. 400.
37
+     * @param array  $data             Extra error data.
38
+     */
39
+    public function __construct( $code, $message, $http_status_code = 400, $data = array() ) {
40
+        $this->error_code = $code;
41
+        $this->error_data = array_merge( array( 'status' => $http_status_code ), $data );
42 42
 
43
-		parent::__construct( $message, $http_status_code );
44
-	}
43
+        parent::__construct( $message, $http_status_code );
44
+    }
45 45
 
46
-	/**
47
-	 * Returns the error code.
48
-	 *
49
-	 * @return string
50
-	 */
51
-	public function getErrorCode() {
52
-		return $this->error_code;
53
-	}
46
+    /**
47
+     * Returns the error code.
48
+     *
49
+     * @return string
50
+     */
51
+    public function getErrorCode() {
52
+        return $this->error_code;
53
+    }
54 54
 
55
-	/**
56
-	 * Returns error data.
57
-	 *
58
-	 * @return array
59
-	 */
60
-	public function getErrorData() {
61
-		return $this->error_data;
62
-	}
55
+    /**
56
+     * Returns error data.
57
+     *
58
+     * @return array
59
+     */
60
+    public function getErrorData() {
61
+        return $this->error_data;
62
+    }
63 63
 
64 64
 }
Please login to merge, or discard this patch.
includes/payments/class-getpaid-payment-form-submission-discount.php 1 patch
Indentation   +154 added lines, -154 removed lines patch added patch discarded remove patch
@@ -12,162 +12,162 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Payment_Form_Submission_Discount {
14 14
 
15
-	/**
16
-	 * Submission discounts.
17
-	 * @var array
18
-	 */
19
-	public $discounts = array();
15
+    /**
16
+     * Submission discounts.
17
+     * @var array
18
+     */
19
+    public $discounts = array();
20
+
21
+    /**
22
+     * Class constructor
23
+     *
24
+     * @param GetPaid_Payment_Form_Submission $submission
25
+     * @param float                           $initial_total
26
+     * @param float                           $recurring_total
27
+     */
28
+    public function __construct( $submission, $initial_total, $recurring_total ) {
29
+
30
+        // Process any existing invoice discounts.
31
+        if ( $submission->has_invoice() ) {
32
+            $this->discounts = $submission->get_invoice()->get_discounts();
33
+        }
34
+
35
+        // Do we have a discount?
36
+        $discount = $submission->get_field( 'discount' );
37
+
38
+        if ( empty( $discount ) ) {
39
+
40
+            if ( isset( $this->discounts['discount_code'] ) ) {
41
+                unset( $this->discounts['discount_code'] );
42
+            }
43
+
44
+            return;
45
+        }
46
+
47
+        // Processes the discount code.
48
+        $amount = max( $initial_total, $recurring_total );
49
+        $this->process_discount( $submission, $discount, $amount );
50
+
51
+    }
20 52
 
21 53
     /**
22
-	 * Class constructor
23
-	 *
24
-	 * @param GetPaid_Payment_Form_Submission $submission
25
-	 * @param float                           $initial_total
26
-	 * @param float                           $recurring_total
27
-	 */
28
-	public function __construct( $submission, $initial_total, $recurring_total ) {
29
-
30
-		// Process any existing invoice discounts.
31
-		if ( $submission->has_invoice() ) {
32
-			$this->discounts = $submission->get_invoice()->get_discounts();
33
-		}
34
-
35
-		// Do we have a discount?
36
-		$discount = $submission->get_field( 'discount' );
37
-
38
-		if ( empty( $discount ) ) {
39
-
40
-			if ( isset( $this->discounts['discount_code'] ) ) {
41
-				unset( $this->discounts['discount_code'] );
42
-			}
43
-
44
-			return;
45
-		}
46
-
47
-		// Processes the discount code.
48
-		$amount = max( $initial_total, $recurring_total );
49
-		$this->process_discount( $submission, $discount, $amount );
50
-
51
-	}
52
-
53
-	/**
54
-	 * Processes a submission discount.
55
-	 *
56
-	 * @param GetPaid_Payment_Form_Submission $submission
57
-	 * @param string                          $discount
58
-	 * @param float                           $amount
59
-	 */
60
-	public function process_discount( $submission, $discount, $amount ) {
61
-
62
-		// Fetch the discount.
63
-		$discount = new WPInv_Discount( $discount );
64
-
65
-		// Ensure it is active.
54
+     * Processes a submission discount.
55
+     *
56
+     * @param GetPaid_Payment_Form_Submission $submission
57
+     * @param string                          $discount
58
+     * @param float                           $amount
59
+     */
60
+    public function process_discount( $submission, $discount, $amount ) {
61
+
62
+        // Fetch the discount.
63
+        $discount = new WPInv_Discount( $discount );
64
+
65
+        // Ensure it is active.
66 66
         if ( ! $this->is_discount_active( $discount ) ) {
67
-			throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'Invalid or expired discount code', 'invoicing' ) );
68
-		}
69
-
70
-		// Exceeded limit.
71
-		if ( $discount->has_exceeded_limit() ) {
72
-			throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'This discount code has been used up', 'invoicing' ) );
73
-		}
74
-
75
-		// Validate usages.
76
-		$this->validate_single_use_discount( $submission, $discount );
77
-
78
-		// Validate amount.
79
-		$this->validate_discount_amount( $submission, $discount, $amount );
80
-
81
-		// Save the discount.
82
-		$this->discounts['discount_code'] = $this->calculate_discount( $submission, $discount );
83
-	}
84
-
85
-	/**
86
-	 * Validates a single use discount.
87
-	 *
88
-	 * @param WPInv_Discount                  $discount
89
-	 * @return bool
90
-	 */
91
-	public function is_discount_active(  $discount ) {
92
-		return $discount->exists() && $discount->is_active() && $discount->has_started() && ! $discount->is_expired();
93
-	}
94
-
95
-	/**
96
-	 * Returns a user's id or email.
97
-	 *
98
-	 * @param string $email
99
-	 * @return int|string|false
100
-	 */
101
-	public function get_user_id_or_email( $email ) {
102
-
103
-		if ( is_user_logged_in() ) {
104
-			return get_current_user_id();
105
-		}
106
-
107
-		return empty( $email ) ? false : sanitize_email( $email );
108
-	}
109
-
110
-	/**
111
-	 * Validates a single use discount.
112
-	 *
113
-	 * @param GetPaid_Payment_Form_Submission $submission
114
-	 * @param WPInv_Discount                  $discount
115
-	 */
116
-	public function validate_single_use_discount( $submission, $discount ) {
117
-
118
-		// Abort if it is not a single use discount.
119
-		if ( ! $discount->is_single_use() ) {
120
-			return;
121
-		}
122
-
123
-		// Ensure there is a valid billing email.
124
-		$user = $this->get_user_id_or_email( $submission->get_billing_email() );
125
-
126
-		if ( empty( $user ) ) {
127
-			throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You need to either log in or enter your billing email before applying this discount', 'invoicing' ) );
128
-		}
129
-
130
-		// Has the user used this discount code before?
131
-		if ( ! $discount->is_valid_for_user( $user ) ) {
132
-			throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You have already used this discount', 'invoicing' ) );
133
-		}
134
-
135
-	}
136
-
137
-	/**
138
-	 * Validates the discount's amount.
139
-	 *
140
-	 * @param GetPaid_Payment_Form_Submission $submission
141
-	 * @param WPInv_Discount         $discount
142
-	 * @param float                  $amount
143
-	 */
144
-	public function validate_discount_amount( $submission, $discount, $amount ) {
145
-
146
-		// Validate minimum amount.
147
-		if ( ! $discount->is_minimum_amount_met( $amount ) ) {
148
-			$min = wpinv_price( $discount->get_minimum_total(), $submission->get_currency() );
149
-			throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The minimum total for using this discount is %s', 'invoicing' ), $min ) );
150
-		}
151
-
152
-		// Validate the maximum amount.
153
-		if ( ! $discount->is_maximum_amount_met( $amount ) ) {
154
-			$max = wpinv_price( $discount->get_maximum_total(), $submission->get_currency() );
155
-			throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The maximum total for using this discount is %s', 'invoicing' ), $max ) );
156
-		}
157
-
158
-	}
159
-
160
-	/**
161
-	 * Calculates the discount code's amount.
162
-	 *
163
-	 * Ensure that the discount exists and has been validated before calling this method.
164
-	 *
165
-	 * @param GetPaid_Payment_Form_Submission $submission
166
-	 * @param WPInv_Discount                  $discount
167
-	 * @return array
168
-	 */
169
-	public function calculate_discount( $submission, $discount ) {
170
-		return getpaid_calculate_invoice_discount( $submission, $discount );
171
-	}
67
+            throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'Invalid or expired discount code', 'invoicing' ) );
68
+        }
69
+
70
+        // Exceeded limit.
71
+        if ( $discount->has_exceeded_limit() ) {
72
+            throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'This discount code has been used up', 'invoicing' ) );
73
+        }
74
+
75
+        // Validate usages.
76
+        $this->validate_single_use_discount( $submission, $discount );
77
+
78
+        // Validate amount.
79
+        $this->validate_discount_amount( $submission, $discount, $amount );
80
+
81
+        // Save the discount.
82
+        $this->discounts['discount_code'] = $this->calculate_discount( $submission, $discount );
83
+    }
84
+
85
+    /**
86
+     * Validates a single use discount.
87
+     *
88
+     * @param WPInv_Discount                  $discount
89
+     * @return bool
90
+     */
91
+    public function is_discount_active(  $discount ) {
92
+        return $discount->exists() && $discount->is_active() && $discount->has_started() && ! $discount->is_expired();
93
+    }
94
+
95
+    /**
96
+     * Returns a user's id or email.
97
+     *
98
+     * @param string $email
99
+     * @return int|string|false
100
+     */
101
+    public function get_user_id_or_email( $email ) {
102
+
103
+        if ( is_user_logged_in() ) {
104
+            return get_current_user_id();
105
+        }
106
+
107
+        return empty( $email ) ? false : sanitize_email( $email );
108
+    }
109
+
110
+    /**
111
+     * Validates a single use discount.
112
+     *
113
+     * @param GetPaid_Payment_Form_Submission $submission
114
+     * @param WPInv_Discount                  $discount
115
+     */
116
+    public function validate_single_use_discount( $submission, $discount ) {
117
+
118
+        // Abort if it is not a single use discount.
119
+        if ( ! $discount->is_single_use() ) {
120
+            return;
121
+        }
122
+
123
+        // Ensure there is a valid billing email.
124
+        $user = $this->get_user_id_or_email( $submission->get_billing_email() );
125
+
126
+        if ( empty( $user ) ) {
127
+            throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You need to either log in or enter your billing email before applying this discount', 'invoicing' ) );
128
+        }
129
+
130
+        // Has the user used this discount code before?
131
+        if ( ! $discount->is_valid_for_user( $user ) ) {
132
+            throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You have already used this discount', 'invoicing' ) );
133
+        }
134
+
135
+    }
136
+
137
+    /**
138
+     * Validates the discount's amount.
139
+     *
140
+     * @param GetPaid_Payment_Form_Submission $submission
141
+     * @param WPInv_Discount         $discount
142
+     * @param float                  $amount
143
+     */
144
+    public function validate_discount_amount( $submission, $discount, $amount ) {
145
+
146
+        // Validate minimum amount.
147
+        if ( ! $discount->is_minimum_amount_met( $amount ) ) {
148
+            $min = wpinv_price( $discount->get_minimum_total(), $submission->get_currency() );
149
+            throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The minimum total for using this discount is %s', 'invoicing' ), $min ) );
150
+        }
151
+
152
+        // Validate the maximum amount.
153
+        if ( ! $discount->is_maximum_amount_met( $amount ) ) {
154
+            $max = wpinv_price( $discount->get_maximum_total(), $submission->get_currency() );
155
+            throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The maximum total for using this discount is %s', 'invoicing' ), $max ) );
156
+        }
157
+
158
+    }
159
+
160
+    /**
161
+     * Calculates the discount code's amount.
162
+     *
163
+     * Ensure that the discount exists and has been validated before calling this method.
164
+     *
165
+     * @param GetPaid_Payment_Form_Submission $submission
166
+     * @param WPInv_Discount                  $discount
167
+     * @return array
168
+     */
169
+    public function calculate_discount( $submission, $discount ) {
170
+        return getpaid_calculate_invoice_discount( $submission, $discount );
171
+    }
172 172
 
173 173
 }
Please login to merge, or discard this patch.
includes/reports/class-getpaid-reports-helper.php 1 patch
Indentation   +276 added lines, -276 removed lines patch added patch discarded remove patch
@@ -12,294 +12,294 @@
 block discarded – undo
12 12
  */
13 13
 class GetPaid_Reports_Helper {
14 14
 
15
-	/**
16
-	 * Get report totals such as invoice totals and discount amounts.
17
-	 *
18
-	 * Data example:
19
-	 *
20
-	 * 'subtotal' => array(
21
-	 *     'type'     => 'invoice_data',
22
-	 *     'function' => 'SUM',
23
-	 *     'name'     => 'subtotal'
24
-	 * )
25
-	 *
26
-	 * @param  array $args
27
-	 * @return mixed depending on query_type
28
-	 */
29
-	public static function get_invoice_report_data( $args = array() ) {
30
-		global $wpdb;
31
-
32
-		$default_args = array(
33
-			'data'                  => array(), // The data to retrieve.
34
-			'where'                 => array(), // An array of where queries.
35
-			'query_type'            => 'get_row', // wpdb query to run.
36
-			'group_by'              => '', // What to group results by.
37
-			'order_by'              => '', // What to order by.
38
-			'limit'                 => '', // Results limit.
39
-			'filter_range'          => array(), // An array of before and after dates to limit results by.
40
-			'invoice_types'         => array( 'wpi_invoice' ), // An array of post types to retrieve.
41
-			'invoice_status'        => array( 'publish', 'wpi-processing', 'wpi-onhold' ),
42
-			'parent_invoice_status' => false, // Optionally filter by parent invoice status.
43
-		);
44
-
45
-		$args         = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args );
46
-		$args         = wp_parse_args( $args, $default_args );
47
-
48
-		extract( $args );
49
-
50
-		if ( empty( $data ) ) {
51
-			return '';
52
-		}
53
-
54
-		$query           = array();
55
-		$query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) );
56
-		$query['from']   = "FROM {$wpdb->posts} AS posts";
57
-		$query['join']   = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) );
58
-
59
-		$query['where']  = "
15
+    /**
16
+     * Get report totals such as invoice totals and discount amounts.
17
+     *
18
+     * Data example:
19
+     *
20
+     * 'subtotal' => array(
21
+     *     'type'     => 'invoice_data',
22
+     *     'function' => 'SUM',
23
+     *     'name'     => 'subtotal'
24
+     * )
25
+     *
26
+     * @param  array $args
27
+     * @return mixed depending on query_type
28
+     */
29
+    public static function get_invoice_report_data( $args = array() ) {
30
+        global $wpdb;
31
+
32
+        $default_args = array(
33
+            'data'                  => array(), // The data to retrieve.
34
+            'where'                 => array(), // An array of where queries.
35
+            'query_type'            => 'get_row', // wpdb query to run.
36
+            'group_by'              => '', // What to group results by.
37
+            'order_by'              => '', // What to order by.
38
+            'limit'                 => '', // Results limit.
39
+            'filter_range'          => array(), // An array of before and after dates to limit results by.
40
+            'invoice_types'         => array( 'wpi_invoice' ), // An array of post types to retrieve.
41
+            'invoice_status'        => array( 'publish', 'wpi-processing', 'wpi-onhold' ),
42
+            'parent_invoice_status' => false, // Optionally filter by parent invoice status.
43
+        );
44
+
45
+        $args         = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args );
46
+        $args         = wp_parse_args( $args, $default_args );
47
+
48
+        extract( $args );
49
+
50
+        if ( empty( $data ) ) {
51
+            return '';
52
+        }
53
+
54
+        $query           = array();
55
+        $query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) );
56
+        $query['from']   = "FROM {$wpdb->posts} AS posts";
57
+        $query['join']   = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) );
58
+
59
+        $query['where']  = "
60 60
 			WHERE 	posts.post_type 	IN ( '" . implode( "','", $invoice_types ) . "' )
61 61
 			";
62 62
 
63
-		if ( ! empty( $invoice_status ) ) {
64
-			$query['where'] .= "
63
+        if ( ! empty( $invoice_status ) ) {
64
+            $query['where'] .= "
65 65
 				AND 	posts.post_status 	IN ( '" . implode( "','", $invoice_status ) . "' )
66 66
 			";
67
-		}
68
-
69
-		if ( ! empty( $parent_invoice_status ) ) {
70
-			if ( ! empty( $invoice_status ) ) {
71
-				$query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) ";
72
-			} else {
73
-				$query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) ";
74
-			}
75
-		}
76
-
77
-		if ( ! empty( $filter_range['before'] ) ) {
78
-			$query['where'] .= "
67
+        }
68
+
69
+        if ( ! empty( $parent_invoice_status ) ) {
70
+            if ( ! empty( $invoice_status ) ) {
71
+                $query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) ";
72
+            } else {
73
+                $query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) ";
74
+            }
75
+        }
76
+
77
+        if ( ! empty( $filter_range['before'] ) ) {
78
+            $query['where'] .= "
79 79
 				AND 	posts.post_date < '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['before'] ) ) . "'
80 80
 			";
81
-		}
81
+        }
82 82
 
83
-		if ( ! empty( $filter_range['after'] ) ) {
84
-			$query['where'] .= "
83
+        if ( ! empty( $filter_range['after'] ) ) {
84
+            $query['where'] .= "
85 85
 				AND 	posts.post_date > '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['after'] ) ) . "'
86 86
 			";
87
-		}
87
+        }
88 88
 
89
-		if ( ! empty( $where ) ) {
89
+        if ( ! empty( $where ) ) {
90 90
 
91
-			foreach ( $where as $value ) {
91
+            foreach ( $where as $value ) {
92 92
 
93
-				if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) {
94
-
95
-					if ( is_array( $value['value'] ) ) {
96
-						$value['value'] = implode( "','", $value['value'] );
97
-					}
98
-
99
-					if ( ! empty( $value['value'] ) ) {
100
-						$where_value = "{$value['operator']} ('{$value['value']}')";
101
-					}
102
-				} else {
103
-					$where_value = "{$value['operator']} '{$value['value']}'";
104
-				}
105
-
106
-				if ( ! empty( $where_value ) ) {
107
-					$query['where'] .= " AND {$value['key']} {$where_value}";
108
-				}
109
-			}
110
-		}
111
-
112
-		if ( $group_by ) {
113
-			$query['group_by'] = "GROUP BY {$group_by}";
114
-		}
115
-
116
-		if ( $order_by ) {
117
-			$query['order_by'] = "ORDER BY {$order_by}";
118
-		}
119
-
120
-		if ( $limit ) {
121
-			$query['limit'] = "LIMIT {$limit}";
122
-		}
123
-
124
-		$query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data );
125
-		$query = implode( ' ', $query );
126
-
127
-		return self::execute( $query_type, $query );
128
-
129
-	}
130
-
131
-	/**
132
-	 * Prepares the data to select.
133
-	 *
134
-	 *
135
-	 * @param  array $data
136
-	 * @return array
137
-	 */
138
-	public static function prepare_invoice_data( $data ) {
139
-
140
-		$prepared = array();
141
-
142
-		foreach ( $data as $raw_key => $value ) {
143
-			$key      = sanitize_key( $raw_key );
144
-			$distinct = '';
145
-
146
-			if ( isset( $value['distinct'] ) ) {
147
-				$distinct = 'DISTINCT';
148
-			}
149
-
150
-			$get_key = self::get_invoice_table_key( $key, $value['type'] );
151
-
152
-			if ( false === $get_key ) {
153
-				// Skip to the next foreach iteration else the query will be invalid.
154
-				continue;
155
-			}
156
-
157
-			if ( ! empty( $value['function'] ) ) {
158
-				$get = "{$value['function']}({$distinct} {$get_key})";
159
-			} else {
160
-				$get = "{$distinct} {$get_key}";
161
-			}
162
-
163
-			$prepared[] = "{$get} as {$value['name']}";
164
-		}
165
-
166
-		return $prepared;
167
-
168
-	}
169
-
170
-	/**
171
-	 * Prepares the joins to use.
172
-	 *
173
-	 *
174
-	 * @param  array $data
175
-	 * @param  bool $with_parent
176
-	 * @return array
177
-	 */
178
-	public static function prepare_invoice_joins( $data, $with_parent ) {
179
-		global $wpdb;
180
-
181
-		$prepared = array();
182
-
183
-		foreach ( $data as $raw_key => $value ) {
184
-			$join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER';
185
-			$type      = isset( $value['type'] ) ? $value['type'] : false;
186
-			$key       = sanitize_key( $raw_key );
187
-
188
-			switch ( $type ) {
189
-				case 'meta':
190
-					$prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )";
191
-					break;
192
-				case 'parent_meta':
193
-					$prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')";
194
-					break;
195
-				case 'invoice_data':
196
-					$prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id";
197
-					break;
198
-				case 'invoice_item':
199
-					$prepared['invoice_items'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoice_items AS invoice_items ON posts.ID = invoice_items.post_id";
200
-					break;
201
-			}
202
-		}
203
-
204
-		if ( $with_parent ) {
205
-			$prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID";
206
-		}
207
-
208
-		return $prepared;
209
-
210
-	}
211
-
212
-	/**
213
-	 * Retrieves the appropriate table key to use.
214
-	 *
215
-	 *
216
-	 * @param  string $key
217
-	 * @param  string $table
218
-	 * @return string|false
219
-	 */
220
-	public static function get_invoice_table_key( $key, $table ) {
221
-
222
-		$keys = array(
223
-			'meta'         => "meta_{$key}.meta_value",
224
-			'parent_meta'  => "parent_meta_{$key}.meta_value",
225
-			'post_data'    => "posts.{$key}",
226
-			'invoice_data' => "invoices.{$key}",
227
-			'invoice_item' => "invoice_items.{$key}",
228
-		);
229
-
230
-		return isset( $keys[ $table ] ) ? $keys[ $table ] : false;
231
-
232
-	}
233
-
234
-	/**
235
-	 * Executes a query and caches the result for a minute.
236
-	 *
237
-	 *
238
-	 * @param  string $query_type
239
-	 * @param  string $query
240
-	 * @return mixed depending on query_type
241
-	 */
242
-	public static function execute( $query_type, $query ) {
243
-		global $wpdb;
244
-
245
-		$query_hash = md5( $query_type . $query );
246
-		$result     = self::get_cached_query( $query_hash );
247
-		if ( $result === false ) {
248
-			self::enable_big_selects();
249
-
250
-			$result = $wpdb->$query_type( $query );
251
-			self::set_cached_query( $query_hash, $result );
252
-		}
253
-
254
-		return $result;
255
-
256
-	}
257
-
258
-	/**
259
-	 * Enables big mysql selects for reports, just once for this session.
260
-	 */
261
-	protected static function enable_big_selects() {
262
-		static $big_selects = false;
263
-
264
-		global $wpdb;
265
-
266
-		if ( ! $big_selects ) {
267
-			$wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' );
268
-			$big_selects = true;
269
-		}
270
-	}
271
-
272
-	/**
273
-	 * Get the cached query result or null if it's not in the cache.
274
-	 *
275
-	 * @param string $query_hash The query hash.
276
-	 *
277
-	 * @return mixed|false The cache contents on success, false on failure to retrieve contents.
278
-	 */
279
-	protected static function get_cached_query( $query_hash ) {
280
-
281
-		return wp_cache_get(
282
-			$query_hash,
283
-			strtolower( __CLASS__ )
284
-		);
285
-
286
-	}
287
-
288
-	/**
289
-	 * Set the cached query result.
290
-	 *
291
-	 * @param string $query_hash The query hash.
292
-	 * @param mixed  $data The data to cache.
293
-	 */
294
-	protected static function set_cached_query( $query_hash, $data ) {
295
-
296
-		wp_cache_set(
297
-			$query_hash,
298
-			$data,
299
-			strtolower( __CLASS__ ),
300
-			MINUTE_IN_SECONDS
301
-		);
302
-
303
-	}
93
+                if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) {
94
+
95
+                    if ( is_array( $value['value'] ) ) {
96
+                        $value['value'] = implode( "','", $value['value'] );
97
+                    }
98
+
99
+                    if ( ! empty( $value['value'] ) ) {
100
+                        $where_value = "{$value['operator']} ('{$value['value']}')";
101
+                    }
102
+                } else {
103
+                    $where_value = "{$value['operator']} '{$value['value']}'";
104
+                }
105
+
106
+                if ( ! empty( $where_value ) ) {
107
+                    $query['where'] .= " AND {$value['key']} {$where_value}";
108
+                }
109
+            }
110
+        }
111
+
112
+        if ( $group_by ) {
113
+            $query['group_by'] = "GROUP BY {$group_by}";
114
+        }
115
+
116
+        if ( $order_by ) {
117
+            $query['order_by'] = "ORDER BY {$order_by}";
118
+        }
119
+
120
+        if ( $limit ) {
121
+            $query['limit'] = "LIMIT {$limit}";
122
+        }
123
+
124
+        $query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data );
125
+        $query = implode( ' ', $query );
126
+
127
+        return self::execute( $query_type, $query );
128
+
129
+    }
130
+
131
+    /**
132
+     * Prepares the data to select.
133
+     *
134
+     *
135
+     * @param  array $data
136
+     * @return array
137
+     */
138
+    public static function prepare_invoice_data( $data ) {
139
+
140
+        $prepared = array();
141
+
142
+        foreach ( $data as $raw_key => $value ) {
143
+            $key      = sanitize_key( $raw_key );
144
+            $distinct = '';
145
+
146
+            if ( isset( $value['distinct'] ) ) {
147
+                $distinct = 'DISTINCT';
148
+            }
149
+
150
+            $get_key = self::get_invoice_table_key( $key, $value['type'] );
151
+
152
+            if ( false === $get_key ) {
153
+                // Skip to the next foreach iteration else the query will be invalid.
154
+                continue;
155
+            }
156
+
157
+            if ( ! empty( $value['function'] ) ) {
158
+                $get = "{$value['function']}({$distinct} {$get_key})";
159
+            } else {
160
+                $get = "{$distinct} {$get_key}";
161
+            }
162
+
163
+            $prepared[] = "{$get} as {$value['name']}";
164
+        }
165
+
166
+        return $prepared;
167
+
168
+    }
169
+
170
+    /**
171
+     * Prepares the joins to use.
172
+     *
173
+     *
174
+     * @param  array $data
175
+     * @param  bool $with_parent
176
+     * @return array
177
+     */
178
+    public static function prepare_invoice_joins( $data, $with_parent ) {
179
+        global $wpdb;
180
+
181
+        $prepared = array();
182
+
183
+        foreach ( $data as $raw_key => $value ) {
184
+            $join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER';
185
+            $type      = isset( $value['type'] ) ? $value['type'] : false;
186
+            $key       = sanitize_key( $raw_key );
187
+
188
+            switch ( $type ) {
189
+                case 'meta':
190
+                    $prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )";
191
+                    break;
192
+                case 'parent_meta':
193
+                    $prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')";
194
+                    break;
195
+                case 'invoice_data':
196
+                    $prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id";
197
+                    break;
198
+                case 'invoice_item':
199
+                    $prepared['invoice_items'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoice_items AS invoice_items ON posts.ID = invoice_items.post_id";
200
+                    break;
201
+            }
202
+        }
203
+
204
+        if ( $with_parent ) {
205
+            $prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID";
206
+        }
207
+
208
+        return $prepared;
209
+
210
+    }
211
+
212
+    /**
213
+     * Retrieves the appropriate table key to use.
214
+     *
215
+     *
216
+     * @param  string $key
217
+     * @param  string $table
218
+     * @return string|false
219
+     */
220
+    public static function get_invoice_table_key( $key, $table ) {
221
+
222
+        $keys = array(
223
+            'meta'         => "meta_{$key}.meta_value",
224
+            'parent_meta'  => "parent_meta_{$key}.meta_value",
225
+            'post_data'    => "posts.{$key}",
226
+            'invoice_data' => "invoices.{$key}",
227
+            'invoice_item' => "invoice_items.{$key}",
228
+        );
229
+
230
+        return isset( $keys[ $table ] ) ? $keys[ $table ] : false;
231
+
232
+    }
233
+
234
+    /**
235
+     * Executes a query and caches the result for a minute.
236
+     *
237
+     *
238
+     * @param  string $query_type
239
+     * @param  string $query
240
+     * @return mixed depending on query_type
241
+     */
242
+    public static function execute( $query_type, $query ) {
243
+        global $wpdb;
244
+
245
+        $query_hash = md5( $query_type . $query );
246
+        $result     = self::get_cached_query( $query_hash );
247
+        if ( $result === false ) {
248
+            self::enable_big_selects();
249
+
250
+            $result = $wpdb->$query_type( $query );
251
+            self::set_cached_query( $query_hash, $result );
252
+        }
253
+
254
+        return $result;
255
+
256
+    }
257
+
258
+    /**
259
+     * Enables big mysql selects for reports, just once for this session.
260
+     */
261
+    protected static function enable_big_selects() {
262
+        static $big_selects = false;
263
+
264
+        global $wpdb;
265
+
266
+        if ( ! $big_selects ) {
267
+            $wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' );
268
+            $big_selects = true;
269
+        }
270
+    }
271
+
272
+    /**
273
+     * Get the cached query result or null if it's not in the cache.
274
+     *
275
+     * @param string $query_hash The query hash.
276
+     *
277
+     * @return mixed|false The cache contents on success, false on failure to retrieve contents.
278
+     */
279
+    protected static function get_cached_query( $query_hash ) {
280
+
281
+        return wp_cache_get(
282
+            $query_hash,
283
+            strtolower( __CLASS__ )
284
+        );
285
+
286
+    }
287
+
288
+    /**
289
+     * Set the cached query result.
290
+     *
291
+     * @param string $query_hash The query hash.
292
+     * @param mixed  $data The data to cache.
293
+     */
294
+    protected static function set_cached_query( $query_hash, $data ) {
295
+
296
+        wp_cache_set(
297
+            $query_hash,
298
+            $data,
299
+            strtolower( __CLASS__ ),
300
+            MINUTE_IN_SECONDS
301
+        );
302
+
303
+    }
304 304
 
305 305
 }
Please login to merge, or discard this patch.