Passed
Push — master ( 7ee9b2...f95e54 )
by Brian
05:07
created
includes/class-getpaid-notification-email-sender.php 1 patch
Indentation   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -13,17 +13,17 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Notification_Email_Sender {
14 14
 
15 15
     /**
16
-	 * Whether or not we should inline CSS into the email.
17
-	 */
18
-	public $inline_css = true;
16
+     * Whether or not we should inline CSS into the email.
17
+     */
18
+    public $inline_css = true;
19 19
 
20 20
     /**
21
-	 * The wp_mail() data.
22
-	 */
21
+     * The wp_mail() data.
22
+     */
23 23
     public $wp_mail_data = null;
24 24
 
25 25
     /**
26
-	 * Sends a new email.
26
+     * Sends a new email.
27 27
      * 
28 28
      * @param string|array $to The recipients email or an array of recipient emails.
29 29
      * @param string $subject The email's subject.
@@ -31,49 +31,49 @@  discard block
 block discarded – undo
31 31
      * @param array $attachments The email attachments.
32 32
      * 
33 33
      * @return bool
34
-	 */
35
-	public function send( $to, $subject, $email, $attachments = array() ) {
34
+     */
35
+    public function send( $to, $subject, $email, $attachments = array() ) {
36 36
 
37
-		/*
37
+        /*
38 38
 		 * Allow to filter data on per-email basis.
39 39
 		 */
40
-		$data = apply_filters(
41
-			'getpaid_email_data',
42
-			array(
43
-				'to'          => array_filter( array_unique( wpinv_parse_list( $to ) ) ),
44
-				'subject'     => $subject,
45
-				'email'       => $email,
46
-				'headers'     => $this->get_headers(),
47
-				'attachments' => $attachments,
48
-			),
49
-			$this
50
-		);
40
+        $data = apply_filters(
41
+            'getpaid_email_data',
42
+            array(
43
+                'to'          => array_filter( array_unique( wpinv_parse_list( $to ) ) ),
44
+                'subject'     => $subject,
45
+                'email'       => $email,
46
+                'headers'     => $this->get_headers(),
47
+                'attachments' => $attachments,
48
+            ),
49
+            $this
50
+        );
51 51
 
52 52
         // Remove slashes.
53 53
         $data               = (array) wp_unslash( $data );
54 54
 
55 55
         // Cache it.
56
-		$this->wp_mail_data = $data;
56
+        $this->wp_mail_data = $data;
57 57
 
58
-		// Attach our own hooks.
59
-		$this->before_sending();
58
+        // Attach our own hooks.
59
+        $this->before_sending();
60 60
 
61 61
         $result = false;
62 62
 
63 63
         foreach ( $this->wp_mail_data['to'] as $to ) {
64
-			$result = $this->_send( $to, $data );
64
+            $result = $this->_send( $to, $data );
65 65
         }
66 66
 
67
-		// Remove our hooks.
68
-		$this->after_sending();		
67
+        // Remove our hooks.
68
+        $this->after_sending();		
69 69
 
70
-		$this->wp_mail_data = null;
70
+        $this->wp_mail_data = null;
71 71
 
72
-		return $result;
73
-	}
72
+        return $result;
73
+    }
74 74
 
75
-	/**
76
-	 * Does the actual sending.
75
+    /**
76
+     * Does the actual sending.
77 77
      * 
78 78
      * @param string $to The recipient's email.
79 79
      * @param array $data The email's data.
@@ -81,81 +81,81 @@  discard block
 block discarded – undo
81 81
      * @param array $attachments The email attachments.
82 82
      * 
83 83
      * @return bool
84
-	 */
85
-	protected function _send( $to, $data ) {
86
-
87
-		// Prepare the sending function.
88
-		$sending_function = apply_filters( 'getpaid_email_email_sending_function', 'wp_mail' );
89
-
90
-		// Send the actual email.
91
-		$result = call_user_func(
92
-			$sending_function,
93
-			$to,
94
-			html_entity_decode( $data['subject'], ENT_QUOTES, get_bloginfo( 'charset' ) ),
95
-			$data['email'],
96
-			$data['headers'],
97
-			$data['attachments']
98
-		);
99
-
100
-		if ( ! $result ) {
101
-			$log_message = wp_sprintf( __( "\nTime: %s\nTo: %s\nSubject: %s\n", 'invoicing' ), date_i18n( 'F j Y H:i:s', current_time( 'timestamp' ) ), $to, $data['subject'] );
102
-			wpinv_error_log( $log_message, __( 'Email from Invoicing plugin failed to send', 'invoicing' ), __FILE__, __LINE__ );
103
-		}
104
-
105
-		return $result;
106
-	}
84
+     */
85
+    protected function _send( $to, $data ) {
86
+
87
+        // Prepare the sending function.
88
+        $sending_function = apply_filters( 'getpaid_email_email_sending_function', 'wp_mail' );
89
+
90
+        // Send the actual email.
91
+        $result = call_user_func(
92
+            $sending_function,
93
+            $to,
94
+            html_entity_decode( $data['subject'], ENT_QUOTES, get_bloginfo( 'charset' ) ),
95
+            $data['email'],
96
+            $data['headers'],
97
+            $data['attachments']
98
+        );
99
+
100
+        if ( ! $result ) {
101
+            $log_message = wp_sprintf( __( "\nTime: %s\nTo: %s\nSubject: %s\n", 'invoicing' ), date_i18n( 'F j Y H:i:s', current_time( 'timestamp' ) ), $to, $data['subject'] );
102
+            wpinv_error_log( $log_message, __( 'Email from Invoicing plugin failed to send', 'invoicing' ), __FILE__, __LINE__ );
103
+        }
104
+
105
+        return $result;
106
+    }
107 107
     
108 108
     /**
109
-	 * Retrieves email headers.
110
-	 */
111
-	public function get_headers() {
109
+     * Retrieves email headers.
110
+     */
111
+    public function get_headers() {
112 112
 
113
-		$name       = $this->get_from_name();
114
-		$reply_to   = $this->get_reply_to();
115
-		$headers    = array( "Reply-To:$name <$reply_to>" );
113
+        $name       = $this->get_from_name();
114
+        $reply_to   = $this->get_reply_to();
115
+        $headers    = array( "Reply-To:$name <$reply_to>" );
116 116
 
117
-		return apply_filters( 'getpaid_email_headers',  $headers, $this );
117
+        return apply_filters( 'getpaid_email_headers',  $headers, $this );
118 118
 
119
-	}
119
+    }
120 120
 
121 121
     /**
122
-	 * Fires before an email is sent
123
-	 *
124
-	 * @since 1.0.0
125
-	 */
126
-	public function before_sending() {
122
+     * Fires before an email is sent
123
+     *
124
+     * @since 1.0.0
125
+     */
126
+    public function before_sending() {
127 127
 
128 128
         do_action( 'getpaid_before_send_email', $this );
129
-		add_filter( 'wp_mail_from', array( $this, 'get_from_address' ), 1000 );
130
-		add_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ), 1000 );
131
-		add_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ), 1000 );
132
-		add_filter( 'wp_mail', array( $this, 'ensure_email_content' ), 1000000 );
129
+        add_filter( 'wp_mail_from', array( $this, 'get_from_address' ), 1000 );
130
+        add_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ), 1000 );
131
+        add_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ), 1000 );
132
+        add_filter( 'wp_mail', array( $this, 'ensure_email_content' ), 1000000 );
133 133
 
134
-	}
134
+    }
135 135
 
136 136
     /**
137
-	 * Returns the from name.
138
-	 */
139
-	public function get_from_name() {
137
+     * Returns the from name.
138
+     */
139
+    public function get_from_name() {
140 140
 
141 141
         $from_name = wpinv_get_option( 'email_from_name', get_bloginfo( 'name' ) );
142 142
 
143
-		if ( empty( $from_name ) ) {
144
-			$from_name =  get_bloginfo( 'name' );
143
+        if ( empty( $from_name ) ) {
144
+            $from_name =  get_bloginfo( 'name' );
145 145
         }
146 146
 
147
-		return wp_specialchars_decode( $from_name, ENT_QUOTES );
147
+        return wp_specialchars_decode( $from_name, ENT_QUOTES );
148 148
     }
149 149
 
150 150
     /**
151
-	 * Returns the from email.
152
-	 */
153
-	public function get_from_address() {
151
+     * Returns the from email.
152
+     */
153
+    public function get_from_address() {
154 154
 
155 155
         $from_address = wpinv_get_option( 'email_from', $this->default_from_address() );
156 156
 
157
-		if ( ! is_email( $from_address ) ) {
158
-			$from_address =  $this->default_from_address();
157
+        if ( ! is_email( $from_address ) ) {
158
+            $from_address =  $this->default_from_address();
159 159
         }
160 160
         
161 161
         return $from_address;
@@ -163,75 +163,75 @@  discard block
 block discarded – undo
163 163
     }
164 164
 
165 165
     /**
166
-	 * The default emails from address.
167
-	 * 
168
-	 * Defaults to wordpress@$sitename
169
-	 * Some hosts will block outgoing mail from this address if it doesn't exist,
170
-	 * but there's no easy alternative. Defaulting to admin_email might appear to be
171
-	 * another option, but some hosts may refuse to relay mail from an unknown domain.
172
-	 *
173
-	 */
174
-	public function default_from_address() {
175
-
176
-		// Get the site domain and get rid of www.
177
-		$sitename = strtolower( $_SERVER['SERVER_NAME'] );
178
-		if ( substr( $sitename, 0, 4 ) == 'www.' ) {
179
-			$sitename = substr( $sitename, 4 );
180
-		}
181
-
182
-		$from_email = 'wordpress@' . $sitename;
183
-
184
-		return apply_filters( 'getpaid_default_from_address', $from_email );
166
+     * The default emails from address.
167
+     * 
168
+     * Defaults to wordpress@$sitename
169
+     * Some hosts will block outgoing mail from this address if it doesn't exist,
170
+     * but there's no easy alternative. Defaulting to admin_email might appear to be
171
+     * another option, but some hosts may refuse to relay mail from an unknown domain.
172
+     *
173
+     */
174
+    public function default_from_address() {
175
+
176
+        // Get the site domain and get rid of www.
177
+        $sitename = strtolower( $_SERVER['SERVER_NAME'] );
178
+        if ( substr( $sitename, 0, 4 ) == 'www.' ) {
179
+            $sitename = substr( $sitename, 4 );
180
+        }
181
+
182
+        $from_email = 'wordpress@' . $sitename;
183
+
184
+        return apply_filters( 'getpaid_default_from_address', $from_email );
185 185
 
186 186
     }
187 187
     
188 188
     /**
189
-	 * Get the email reply-to.
190
-	 *
191
-	 *
192
-	 * @return string The email reply-to address.
193
-	 */
194
-	public function get_reply_to() {
189
+     * Get the email reply-to.
190
+     *
191
+     *
192
+     * @return string The email reply-to address.
193
+     */
194
+    public function get_reply_to() {
195 195
 
196
-		$reply_to = wpinv_get_admin_email();
196
+        $reply_to = wpinv_get_admin_email();
197 197
 
198
-		if ( ! is_email( $reply_to ) ) {
199
-			$reply_to =  get_option( 'admin_email' );
200
-		}
198
+        if ( ! is_email( $reply_to ) ) {
199
+            $reply_to =  get_option( 'admin_email' );
200
+        }
201 201
 
202
-		return $reply_to;
202
+        return $reply_to;
203 203
     }
204 204
     
205 205
     /**
206
-	 * Get the email content type.
207
-	 *
208
-	 */
209
-	public function get_content_type() {
210
-		return apply_filters( 'getpaid_email_content_type', 'text/html', $this );
206
+     * Get the email content type.
207
+     *
208
+     */
209
+    public function get_content_type() {
210
+        return apply_filters( 'getpaid_email_content_type', 'text/html', $this );
211 211
     }
212 212
     
213 213
     /**
214
-	 * Ensures that our email messages are not messed up by template plugins.
215
-	 *
216
-	 * @return array wp_mail_data.
217
-	 */
218
-	public function ensure_email_content( $args ) {
219
-		$args['message'] = $this->wp_mail_data['email'];
220
-		return $args;
214
+     * Ensures that our email messages are not messed up by template plugins.
215
+     *
216
+     * @return array wp_mail_data.
217
+     */
218
+    public function ensure_email_content( $args ) {
219
+        $args['message'] = $this->wp_mail_data['email'];
220
+        return $args;
221 221
     }
222 222
     
223 223
     /**
224
-	 * A little house keeping after an email is sent.
225
-	 *
226
- 	 */
227
-	public function after_sending() {
224
+     * A little house keeping after an email is sent.
225
+     *
226
+     */
227
+    public function after_sending() {
228 228
 
229 229
         do_action( 'getpaid_after_send_email', $this->wp_mail_data );
230
-		remove_filter( 'wp_mail_from', array( $this, 'get_from_address' ), 1000 );
231
-		remove_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ), 1000 );
232
-		remove_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ), 1000 );
233
-		remove_filter( 'wp_mail', array( $this, 'ensure_email_content' ), 1000000 );
230
+        remove_filter( 'wp_mail_from', array( $this, 'get_from_address' ), 1000 );
231
+        remove_filter( 'wp_mail_from_name', array( $this, 'get_from_name' ), 1000 );
232
+        remove_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ), 1000 );
233
+        remove_filter( 'wp_mail', array( $this, 'ensure_email_content' ), 1000000 );
234 234
 
235
-	}
235
+    }
236 236
 
237 237
 }
Please login to merge, or discard this patch.
includes/gateways/class-getpaid-bank-transfer-gateway.php 1 patch
Indentation   +159 added lines, -159 removed lines patch added patch discarded remove patch
@@ -13,23 +13,23 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'bank_transfer';
21 21
 
22 22
     /**
23
-	 * Payment method order.
24
-	 *
25
-	 * @var int
26
-	 */
27
-	public $order = 8;
23
+     * Payment method order.
24
+     *
25
+     * @var int
26
+     */
27
+    public $order = 8;
28 28
     
29 29
     /**
30
-	 * Class constructor.
31
-	 */
32
-	public function __construct() {
30
+     * Class constructor.
31
+     */
32
+    public function __construct() {
33 33
         parent::__construct();
34 34
 
35 35
         $this->title                = __( 'Direct bank transfer', 'invoicing' );
@@ -37,22 +37,22 @@  discard block
 block discarded – undo
37 37
         $this->checkout_button_text = __( 'Proceed', 'invoicing' );
38 38
         $this->instructions         = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) );
39 39
 
40
-		add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
41
-		add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
42
-		add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
40
+        add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
41
+        add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
42
+        add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
43 43
 
44 44
     }
45 45
 
46 46
     /**
47
-	 * Process Payment.
48
-	 *
49
-	 *
50
-	 * @param WPInv_Invoice $invoice Invoice.
51
-	 * @param array $submission_data Posted checkout fields.
52
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
53
-	 * @return array
54
-	 */
55
-	public function process_payment( $invoice, $submission_data, $submission ) {
47
+     * Process Payment.
48
+     *
49
+     *
50
+     * @param WPInv_Invoice $invoice Invoice.
51
+     * @param array $submission_data Posted checkout fields.
52
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
53
+     * @return array
54
+     */
55
+    public function process_payment( $invoice, $submission_data, $submission ) {
56 56
 
57 57
         // Add a transaction id.
58 58
         $invoice->set_transaction_id( $invoice->generate_key('trans_') );
@@ -73,66 +73,66 @@  discard block
 block discarded – undo
73 73
     }
74 74
 
75 75
     /**
76
-	 * Output for the order received page.
77
-	 *
78
-	 * @param WPInv_Invoice $invoice Invoice.
79
-	 */
80
-	public function thankyou_page( $invoice ) {
76
+     * Output for the order received page.
77
+     *
78
+     * @param WPInv_Invoice $invoice Invoice.
79
+     */
80
+    public function thankyou_page( $invoice ) {
81 81
 
82 82
         if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
83 83
 
84
-			echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
84
+            echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
85 85
 
86 86
             if ( ! empty( $this->instructions ) ) {
87 87
                 echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) );
88
-			}
88
+            }
89 89
 
90
-			$this->bank_details( $invoice );
90
+            $this->bank_details( $invoice );
91 91
 			
92
-			echo '</div>';
92
+            echo '</div>';
93 93
         
94 94
         }
95 95
 
96
-	}
96
+    }
97 97
     
98 98
     /**
99
-	 * Add content to the WPI emails.
100
-	 *
101
-	 * @param WPInv_Invoice $invoice Invoice.
102
-	 * @param string     $email_type Email format: plain text or HTML.
103
-	 * @param bool     $sent_to_admin Sent to admin.
104
-	 */
105
-	public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
99
+     * Add content to the WPI emails.
100
+     *
101
+     * @param WPInv_Invoice $invoice Invoice.
102
+     * @param string     $email_type Email format: plain text or HTML.
103
+     * @param bool     $sent_to_admin Sent to admin.
104
+     */
105
+    public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
106 106
 
107
-		if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
107
+        if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
108 108
 
109
-			echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
109
+            echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
110 110
 
111
-			if ( $this->instructions ) {
112
-				echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
111
+            if ( $this->instructions ) {
112
+                echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
113 113
             }
114 114
 
115
-			$this->bank_details( $invoice );
115
+            $this->bank_details( $invoice );
116 116
 			
117
-			echo '</div>';
117
+            echo '</div>';
118 118
 
119
-		}
119
+        }
120 120
 
121 121
     }
122 122
     
123 123
     /**
124
-	 * Get bank details and place into a list format.
125
-	 *
126
-	 * @param WPInv_Invoice $invoice Invoice.
127
-	 */
128
-	protected function bank_details( $invoice ) {
124
+     * Get bank details and place into a list format.
125
+     *
126
+     * @param WPInv_Invoice $invoice Invoice.
127
+     */
128
+    protected function bank_details( $invoice ) {
129 129
 
130
-		// Get the invoice country and country $locale.
131
-		$country = $invoice->get_country();
132
-		$locale  = $this->get_country_locale();
130
+        // Get the invoice country and country $locale.
131
+        $country = $invoice->get_country();
132
+        $locale  = $this->get_country_locale();
133 133
 
134
-		// Get sortcode label in the $locale array and use appropriate one.
135
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
134
+        // Get sortcode label in the $locale array and use appropriate one.
135
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
136 136
 
137 137
         $bank_fields = array(
138 138
             'ac_name'     => __( 'Account Name', 'invoicing' ),
@@ -161,144 +161,144 @@  discard block
 block discarded – undo
161 161
             return;
162 162
         }
163 163
 
164
-		echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL;
164
+        echo '<h3 class="getpaid-bank-transfer-title"> ' . apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) . '</h3>' . PHP_EOL;
165 165
 
166
-		echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
166
+        echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
167 167
 
168
-		foreach ( $bank_info as $key => $data ) {
168
+        foreach ( $bank_info as $key => $data ) {
169 169
 
170
-			$key   = sanitize_html_class( $key );
171
-			$label = wp_kses_post( $data['label'] );
172
-			$value = wp_kses_post( wptexturize( $data['value'] ) );
170
+            $key   = sanitize_html_class( $key );
171
+            $label = wp_kses_post( $data['label'] );
172
+            $value = wp_kses_post( wptexturize( $data['value'] ) );
173 173
 
174
-			echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL;
175
-		}
174
+            echo "<tr class='getpaid-bank-transfer-$key'><th>$label</th><td>$value</td></tr>" . PHP_EOL;
175
+        }
176 176
 
177
-		echo '</table>';
177
+        echo '</table>';
178 178
 
179 179
     }
180 180
     
181 181
     /**
182
-	 * Get country locale if localized.
183
-	 *
184
-	 * @return array
185
-	 */
186
-	public function get_country_locale() {
187
-
188
-		if ( empty( $this->locale ) ) {
189
-
190
-			// Locale information to be used - only those that are not 'Sort Code'.
191
-			$this->locale = apply_filters(
192
-				'getpaid_get_bank_transfer_locale',
193
-				array(
194
-					'AU' => array(
195
-						'sortcode' => array(
196
-							'label' => __( 'BSB', 'invoicing' ),
197
-						),
198
-					),
199
-					'CA' => array(
200
-						'sortcode' => array(
201
-							'label' => __( 'Bank transit number', 'invoicing' ),
202
-						),
203
-					),
204
-					'IN' => array(
205
-						'sortcode' => array(
206
-							'label' => __( 'IFSC', 'invoicing' ),
207
-						),
208
-					),
209
-					'IT' => array(
210
-						'sortcode' => array(
211
-							'label' => __( 'Branch sort', 'invoicing' ),
212
-						),
213
-					),
214
-					'NZ' => array(
215
-						'sortcode' => array(
216
-							'label' => __( 'Bank code', 'invoicing' ),
217
-						),
218
-					),
219
-					'SE' => array(
220
-						'sortcode' => array(
221
-							'label' => __( 'Bank code', 'invoicing' ),
222
-						),
223
-					),
224
-					'US' => array(
225
-						'sortcode' => array(
226
-							'label' => __( 'Routing number', 'invoicing' ),
227
-						),
228
-					),
229
-					'ZA' => array(
230
-						'sortcode' => array(
231
-							'label' => __( 'Branch code', 'invoicing' ),
232
-						),
233
-					),
234
-				)
235
-			);
236
-
237
-		}
238
-
239
-		return $this->locale;
240
-
241
-	}
242
-
243
-	/**
244
-	 * Filters the gateway settings.
245
-	 * 
246
-	 * @param array $admin_settings
247
-	 */
248
-	public function admin_settings( $admin_settings ) {
182
+     * Get country locale if localized.
183
+     *
184
+     * @return array
185
+     */
186
+    public function get_country_locale() {
187
+
188
+        if ( empty( $this->locale ) ) {
189
+
190
+            // Locale information to be used - only those that are not 'Sort Code'.
191
+            $this->locale = apply_filters(
192
+                'getpaid_get_bank_transfer_locale',
193
+                array(
194
+                    'AU' => array(
195
+                        'sortcode' => array(
196
+                            'label' => __( 'BSB', 'invoicing' ),
197
+                        ),
198
+                    ),
199
+                    'CA' => array(
200
+                        'sortcode' => array(
201
+                            'label' => __( 'Bank transit number', 'invoicing' ),
202
+                        ),
203
+                    ),
204
+                    'IN' => array(
205
+                        'sortcode' => array(
206
+                            'label' => __( 'IFSC', 'invoicing' ),
207
+                        ),
208
+                    ),
209
+                    'IT' => array(
210
+                        'sortcode' => array(
211
+                            'label' => __( 'Branch sort', 'invoicing' ),
212
+                        ),
213
+                    ),
214
+                    'NZ' => array(
215
+                        'sortcode' => array(
216
+                            'label' => __( 'Bank code', 'invoicing' ),
217
+                        ),
218
+                    ),
219
+                    'SE' => array(
220
+                        'sortcode' => array(
221
+                            'label' => __( 'Bank code', 'invoicing' ),
222
+                        ),
223
+                    ),
224
+                    'US' => array(
225
+                        'sortcode' => array(
226
+                            'label' => __( 'Routing number', 'invoicing' ),
227
+                        ),
228
+                    ),
229
+                    'ZA' => array(
230
+                        'sortcode' => array(
231
+                            'label' => __( 'Branch code', 'invoicing' ),
232
+                        ),
233
+                    ),
234
+                )
235
+            );
236
+
237
+        }
238
+
239
+        return $this->locale;
240
+
241
+    }
242
+
243
+    /**
244
+     * Filters the gateway settings.
245
+     * 
246
+     * @param array $admin_settings
247
+     */
248
+    public function admin_settings( $admin_settings ) {
249 249
 
250 250
         $admin_settings['worldpay_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
251
-		$admin_settings['worldpay_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
251
+        $admin_settings['worldpay_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
252 252
 
253
-		$locale  = $this->get_country_locale();
253
+        $locale  = $this->get_country_locale();
254 254
 
255
-		// Get sortcode label in the $locale array and use appropriate one.
256
-		$country  = wpinv_default_billing_country();
257
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
255
+        // Get sortcode label in the $locale array and use appropriate one.
256
+        $country  = wpinv_default_billing_country();
257
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
258 258
 
259
-		$admin_settings['bank_transfer_ac_name'] = array(
259
+        $admin_settings['bank_transfer_ac_name'] = array(
260 260
             'type' => 'text',
261 261
             'id'   => 'bank_transfer_ac_name',
262 262
             'name' => __( 'Account Name', 'invoicing' ),
263
-		);
263
+        );
264 264
 		
265
-		$admin_settings['bank_transfer_ac_no'] = array(
265
+        $admin_settings['bank_transfer_ac_no'] = array(
266 266
             'type' => 'text',
267 267
             'id'   => 'bank_transfer_ac_no',
268 268
             'name' => __( 'Account Number', 'invoicing' ),
269
-		);
269
+        );
270 270
 		
271
-		$admin_settings['bank_transfer_bank_name'] = array(
271
+        $admin_settings['bank_transfer_bank_name'] = array(
272 272
             'type' => 'text',
273 273
             'id'   => 'bank_transfer_bank_name',
274 274
             'name' => __( 'Bank Name', 'invoicing' ),
275
-		);
275
+        );
276 276
 
277
-		$admin_settings['bank_transfer_ifsc'] = array(
277
+        $admin_settings['bank_transfer_ifsc'] = array(
278 278
             'type' => 'text',
279 279
             'id'   => 'bank_transfer_ifsc',
280 280
             'name' => __( 'IFSC Code', 'invoicing' ),
281
-		);
281
+        );
282 282
 
283
-		$admin_settings['bank_transfer_iban'] = array(
283
+        $admin_settings['bank_transfer_iban'] = array(
284 284
             'type' => 'text',
285 285
             'id'   => 'bank_transfer_iban',
286 286
             'name' => __( 'IBAN', 'invoicing' ),
287
-		);
287
+        );
288 288
 
289
-		$admin_settings['bank_transfer_bic'] = array(
289
+        $admin_settings['bank_transfer_bic'] = array(
290 290
             'type' => 'text',
291 291
             'id'   => 'bank_transfer_bic',
292 292
             'name' => __( 'BIC/Swift Code', 'invoicing' ),
293
-		);
293
+        );
294 294
 		
295
-		$admin_settings['bank_transfer_sort_code'] = array(
296
-			'type' => 'text',
297
-			'id'   => 'bank_transfer_sort_code',
298
-			'name' => $sortcode,
299
-		);
295
+        $admin_settings['bank_transfer_sort_code'] = array(
296
+            'type' => 'text',
297
+            'id'   => 'bank_transfer_sort_code',
298
+            'name' => $sortcode,
299
+        );
300 300
 
301
-		$admin_settings['bank_transfer_info'] = array(
301
+        $admin_settings['bank_transfer_info'] = array(
302 302
             'id'   => 'bank_transfer_info',
303 303
             'name' => __( 'Instructions', 'invoicing' ),
304 304
             'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
@@ -308,7 +308,7 @@  discard block
 block discarded – undo
308 308
             'rows' => 5
309 309
         );
310 310
 
311
-		return $admin_settings;
312
-	}
311
+        return $admin_settings;
312
+    }
313 313
 
314 314
 }
Please login to merge, or discard this patch.
includes/class-wpinv-reports.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -116,7 +116,7 @@  discard block
 block discarded – undo
116 116
         $current = 'earnings';
117 117
 
118 118
         if ( isset( $_GET['view'] ) && array_key_exists( $_GET['view'], $views ) )
119
-		$current = $_GET['view'];
119
+        $current = $_GET['view'];
120 120
 
121 121
         ?>
122 122
 	        <form id="wpinv-reports-filter" method="get" class="tablenav">
@@ -134,7 +134,7 @@  discard block
 block discarded – undo
134 134
 	        </form>
135 135
         <?php
136 136
 
137
-	    do_action( 'wpinv_reports_view_' . $current );
137
+        do_action( 'wpinv_reports_view_' . $current );
138 138
 
139 139
     }
140 140
 
@@ -224,13 +224,13 @@  discard block
 block discarded – undo
224 224
             $is_writeable   = $is_dir && is_writeable( $this->export_dir );
225 225
 
226 226
             if ( $is_dir && $is_writeable ) {
227
-               return true;
227
+                return true;
228 228
             } else if ( $is_dir && !$is_writeable ) {
229
-               if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) {
230
-                   return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir );
231
-               }
229
+                if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) {
230
+                    return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir );
231
+                }
232 232
 
233
-               return true;
233
+                return true;
234 234
             } else {
235 235
                 if ( !$this->wp_filesystem->mkdir( $this->export_dir, FS_CHMOD_DIR ) ) {
236 236
                     return wp_sprintf( __( 'Filesystem ERROR: Could not create directory %s. This is usually due to inconsistent file permissions.', 'invoicing' ), $this->export_dir );
@@ -325,12 +325,12 @@  discard block
 block discarded – undo
325 325
         $output  = fopen( 'php://output', 'w' ) or die( 'Unsupported server' );
326 326
 
327 327
         // Let the browser know what content we're streaming and how it should save the content.
328
-		$name = time();
329
-		header( "Content-Type:application/csv" );
328
+        $name = time();
329
+        header( "Content-Type:application/csv" );
330 330
         header( "Content-Disposition:attachment;filename=getpaid-discounts-$name.csv" );
331 331
 
332 332
         // Output the csv column headers.
333
-		fputcsv(
333
+        fputcsv(
334 334
             $output,
335 335
             array(
336 336
                 __( 'Discount Id', 'invoicing' ),
@@ -698,12 +698,12 @@  discard block
 block discarded – undo
698 698
         $thirty_days_ago      = date( 'Y-m-d', strtotime( '-30 days', current_time( 'timestamp' ) ) );
699 699
         $first_day_month  	  = date( 'Y-m-1', current_time( 'timestamp' ) );
700 700
         $last_day_month  	  = date( 'Y-m-t', current_time( 'timestamp' ) );
701
-		$first_day_last_month = date( 'Y-m-d', strtotime( 'first day of last month', current_time( 'timestamp' ) ) );
701
+        $first_day_last_month = date( 'Y-m-d', strtotime( 'first day of last month', current_time( 'timestamp' ) ) );
702 702
         $last_day_last_month  = date( 'Y-m-d', strtotime( 'last day of last month', current_time( 'timestamp' ) ) );
703 703
         $first_day_year  	  = date( 'Y-1-1', current_time( 'timestamp' ) );
704 704
         $last_day_year  	  = date( 'Y-12-31', current_time( 'timestamp' ) );
705
-		$first_day_last_year  = date( 'Y-m-d', strtotime( 'first day of last year', current_time( 'timestamp' ) ) );
706
-		$last_day_last_year   = date( 'Y-m-d', strtotime( 'last day of last year', current_time( 'timestamp' ) ) );
705
+        $first_day_last_year  = date( 'Y-m-d', strtotime( 'first day of last year', current_time( 'timestamp' ) ) );
706
+        $last_day_last_year   = date( 'Y-m-d', strtotime( 'last day of last year', current_time( 'timestamp' ) ) );
707 707
 
708 708
         $ranges = array(
709 709
 
Please login to merge, or discard this patch.
includes/class-wpinv.php 1 patch
Indentation   +478 added lines, -478 removed lines patch added patch discarded remove patch
@@ -14,421 +14,421 @@  discard block
 block discarded – undo
14 14
  */
15 15
 class WPInv_Plugin {
16 16
 
17
-	/**
18
-	 * GetPaid version.
19
-	 *
20
-	 * @var string
21
-	 */
22
-	public $version;
23
-
24
-	/**
25
-	 * Data container.
26
-	 *
27
-	 * @var array
28
-	 */
29
-	protected $data = array();
30
-
31
-	/**
32
-	 * Form elements instance.
33
-	 *
34
-	 * @var WPInv_Payment_Form_Elements
35
-	 */
36
-	public $form_elements;
37
-
38
-	/**
39
-	 * Tax instance.
40
-	 *
41
-	 * @var WPInv_EUVat
42
-	 */
43
-	public $tax;
44
-
45
-	/**
46
-	 * @param array An array of payment gateways.
47
-	 */
48
-	public $gateways;
49
-
50
-	/**
51
-	 * Class constructor.
52
-	 */
53
-	public function __construct() {
54
-		$this->define_constants();
55
-		$this->includes();
56
-		$this->init_hooks();
57
-		$this->set_properties();
58
-	}
59
-
60
-	/**
61
-	 * Sets a custom data property.
62
-	 * 
63
-	 * @param string $prop The prop to set.
64
-	 * @param mixed $value The value to retrieve.
65
-	 */
66
-	public function set( $prop, $value ) {
67
-		$this->data[ $prop ] = $value;
68
-	}
69
-
70
-	/**
71
-	 * Gets a custom data property.
72
-	 *
73
-	 * @param string $prop The prop to set.
74
-	 * @return mixed The value.
75
-	 */
76
-	public function get( $prop ) {
77
-
78
-		if ( isset( $this->data[ $prop ] ) ) {
79
-			return $this->data[ $prop ];
80
-		}
81
-
82
-		return null;
83
-	}
84
-
85
-	/**
86
-	 * Define class properties.
87
-	 */
88
-	public function set_properties() {
89
-
90
-		// Sessions.
91
-		$this->set( 'session', new WPInv_Session_Handler() );
92
-		$GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
93
-		$this->form_elements = new WPInv_Payment_Form_Elements();
94
-		$this->tax           = new WPInv_EUVat();
95
-		$this->tax->init();
96
-		$GLOBALS['wpinv_euvat'] = $this->tax; // Backwards compatibility.
97
-
98
-		// Init other objects.
99
-		$this->set( 'reports', new WPInv_Reports() ); // TODO: Refactor.
100
-		$this->set( 'session', new WPInv_Session_Handler() );
101
-		$this->set( 'notes', new WPInv_Notes() );
102
-		$this->set( 'api', new WPInv_API() );
103
-		$this->set( 'post_types', new GetPaid_Post_Types() );
104
-		$this->set( 'template', new GetPaid_Template() );
105
-		$this->set( 'admin', new GetPaid_Admin() );
106
-		$this->set( 'subscriptions', new WPInv_Subscriptions() );
107
-		$this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
108
-		$this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
109
-		$this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
110
-		$this->set( 'payment_forms', new GetPaid_Payment_Forms() );
111
-
112
-	}
113
-
114
-	 /**
115
-	 * Define plugin constants.
116
-	 */
117
-	public function define_constants() {
118
-		define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
119
-		define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
120
-		$this->version = WPINV_VERSION;
121
-	}
122
-
123
-	/**
124
-	 * Hook into actions and filters.
125
-	 *
126
-	 * @since 1.0.19
127
-	 */
128
-	protected function init_hooks() {
129
-		/* Internationalize the text strings used. */
130
-		add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
131
-
132
-		// Init the plugin after WordPress inits.
133
-		add_action( 'init', array( $this, 'init' ), 1 );
134
-		add_action( 'getpaid_init', array( $this, 'maybe_process_ipn' ), 5 );
135
-		add_action( 'init', array( &$this, 'wpinv_actions' ) );
136
-		add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
137
-
138
-		if ( class_exists( 'BuddyPress' ) ) {
139
-			add_action( 'bp_include', array( &$this, 'bp_invoicing_init' ) );
140
-		}
141
-
142
-		add_action( 'wp_enqueue_scripts', array( &$this, 'enqueue_scripts' ) );
143
-		add_action( 'wp_footer', array( &$this, 'wp_footer' ) );
144
-		add_action( 'widgets_init', array( &$this, 'register_widgets' ) );
145
-		add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
146
-		add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
147
-
148
-		// Fires after registering actions.
149
-		do_action( 'wpinv_actions', $this );
150
-		do_action( 'getpaid_actions', $this );
151
-
152
-	}
153
-
154
-	public function plugins_loaded() {
155
-		/* Internationalize the text strings used. */
156
-		$this->load_textdomain();
157
-
158
-		do_action( 'wpinv_loaded' );
159
-
160
-		// Fix oxygen page builder conflict
161
-		if ( function_exists( 'ct_css_output' ) ) {
162
-			wpinv_oxygen_fix_conflict();
163
-		}
164
-	}
165
-
166
-	/**
167
-	 * Load the translation of the plugin.
168
-	 *
169
-	 * @since 1.0
170
-	 */
171
-	public function load_textdomain( $locale = NULL ) {
172
-		if ( empty( $locale ) ) {
173
-			$locale = is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale();
174
-		}
175
-
176
-		$locale = apply_filters( 'plugin_locale', $locale, 'invoicing' );
177
-
178
-		unload_textdomain( 'invoicing' );
179
-		load_textdomain( 'invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo' );
180
-		load_plugin_textdomain( 'invoicing', false, WPINV_PLUGIN_DIR . 'languages' );
181
-
182
-		/**
183
-		 * Define language constants.
184
-		 */
185
-		require_once( WPINV_PLUGIN_DIR . 'language.php' );
186
-	}
187
-
188
-	/**
189
-	 * Include required core files used in admin and on the frontend.
190
-	 */
191
-	public function includes() {
192
-
193
-		// Start with the settings.
194
-		require_once( WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php' );
195
-
196
-		// Packages/libraries.
197
-		require_once( WPINV_PLUGIN_DIR . 'vendor/autoload.php' );
198
-		require_once( WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php' );
199
-
200
-		// Load functions.
201
-		require_once( WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php' );
202
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php' );
203
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php' );
204
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php' );
205
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php' );
206
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php' );
207
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php' );
208
-		require_once( WPINV_PLUGIN_DIR . 'includes/invoice-functions.php' );
209
-		require_once( WPINV_PLUGIN_DIR . 'includes/subscription-functions.php' );
210
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php' );
211
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php' );
212
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php' );
213
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php' );
214
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-user-functions.php' );
215
-		require_once( WPINV_PLUGIN_DIR . 'includes/error-functions.php' );
216
-
217
-		// Register autoloader.
218
-		try {
219
-			spl_autoload_register( array( $this, 'autoload' ), true );
220
-		} catch ( Exception $e ) {
221
-			wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
222
-		}
223
-
224
-		require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php' );
225
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php' );
226
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php' );
227
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php' );
228
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-reports.php' );
229
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php' );
230
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php' );
231
-		require_once( WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php' );
232
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php' );
233
-		require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php' );
234
-		require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php' );
235
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php' );
236
-		require_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php' );
237
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php' );
238
-		require_once( WPINV_PLUGIN_DIR . 'widgets/checkout.php' );
239
-		require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-history.php' );
240
-		require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php' );
241
-		require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php' );
242
-		require_once( WPINV_PLUGIN_DIR . 'widgets/subscriptions.php' );
243
-		require_once( WPINV_PLUGIN_DIR . 'widgets/buy-item.php' );
244
-		require_once( WPINV_PLUGIN_DIR . 'widgets/getpaid.php' );
245
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-payment-form-elements.php' );
246
-
247
-		/**
248
-		 * Load the tax class.
249
-		 */
250
-		if ( ! class_exists( 'WPInv_EUVat' ) ) {
251
-			require_once( WPINV_PLUGIN_DIR . 'includes/libraries/wpinv-euvat/class-wpinv-euvat.php' );
252
-		}
253
-
254
-		if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
255
-			GetPaid_Post_Types_Admin::init();
256
-
257
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-upgrade-functions.php' );
258
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php' );
259
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php' );
260
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php' );
261
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php' );
262
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php' );
263
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php' );
264
-			require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php' );
265
-			// load the user class only on the users.php page
266
-			global $pagenow;
267
-			if($pagenow=='users.php'){
268
-				new WPInv_Admin_Users();
269
-			}
270
-		}
271
-
272
-		// Register cli commands
273
-		if ( defined( 'WP_CLI' ) && WP_CLI ) {
274
-			require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php' );
275
-			WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
276
-		}
277
-
278
-		require_once( WPINV_PLUGIN_DIR . 'includes/admin/install.php' );
279
-	}
280
-
281
-	/**
282
-	 * Class autoloader
283
-	 *
284
-	 * @param       string $class_name The name of the class to load.
285
-	 * @access      public
286
-	 * @since       1.0.19
287
-	 * @return      void
288
-	 */
289
-	public function autoload( $class_name ) {
290
-
291
-		// Normalize the class name...
292
-		$class_name  = strtolower( $class_name );
293
-
294
-		// ... and make sure it is our class.
295
-		if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
296
-			return;
297
-		}
298
-
299
-		// Next, prepare the file name from the class.
300
-		$file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
301
-
302
-		// Base path of the classes.
303
-		$plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
304
-
305
-		// And an array of possible locations in order of importance.
306
-		$locations = array(
307
-			"$plugin_path/includes",
308
-			"$plugin_path/includes/data-stores",
309
-			"$plugin_path/includes/gateways",
310
-			"$plugin_path/includes/api",
311
-			"$plugin_path/includes/admin",
312
-			"$plugin_path/includes/admin/meta-boxes",
313
-		);
314
-
315
-		foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
316
-
317
-			if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
318
-				include trailingslashit( $location ) . $file_name;
319
-				break;
320
-			}
321
-
322
-		}
323
-
324
-	}
325
-
326
-	/**
327
-	 * Inits hooks etc.
328
-	 */
329
-	public function init() {
330
-
331
-		// Fires before getpaid inits.
332
-		do_action( 'before_getpaid_init', $this );
333
-
334
-		// Load default gateways.
335
-		$gateways = apply_filters(
336
-			'getpaid_default_gateways',
337
-			array(
338
-				'manual'        => 'GetPaid_Manual_Gateway',
339
-				'paypal'        => 'GetPaid_Paypal_Gateway',
340
-				'worldpay'      => 'GetPaid_Worldpay_Gateway',
341
-				'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
342
-				'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
343
-			)
344
-		);
345
-
346
-		foreach ( $gateways as $id => $class ) {
347
-			$this->gateways[ $id ] = new $class();
348
-		}
349
-
350
-		// Fires after getpaid inits.
351
-		do_action( 'getpaid_init', $this );
352
-
353
-	}
354
-
355
-	/**
356
-	 * Checks if this is an IPN request and processes it.
357
-	 */
358
-	public function maybe_process_ipn() {
359
-
360
-		// Ensure that this is an IPN request.
361
-		if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
362
-			return;
363
-		}
364
-
365
-		$gateway = wpinv_clean( $_GET['wpi-gateway'] );
366
-
367
-		do_action( 'wpinv_verify_payment_ipn', $gateway );
368
-		do_action( "wpinv_verify_{$gateway}_ipn" );
369
-		exit;
370
-
371
-	}
372
-
373
-	public function enqueue_scripts() {
374
-		$suffix       = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
375
-
376
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/css/invoice-front.css' );
377
-		wp_register_style( 'wpinv_front_style', WPINV_PLUGIN_URL . 'assets/css/invoice-front.css', array(), $version );
378
-		wp_enqueue_style( 'wpinv_front_style' );
379
-
380
-		// Register scripts
381
-		wp_register_script( 'jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array( 'jquery' ), '2.70', true );
382
-		wp_register_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/invoice-front.js', array( 'jquery' ),  filemtime( WPINV_PLUGIN_DIR . 'assets/js/invoice-front.js' ) );
383
-
384
-		$localize                         = array();
385
-		$localize['ajax_url']             = admin_url( 'admin-ajax.php' );
386
-		$localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
387
-		$localize['currency_symbol']      = wpinv_currency_symbol();
388
-		$localize['currency_pos']         = wpinv_currency_position();
389
-		$localize['thousand_sep']         = wpinv_thousands_separator();
390
-		$localize['decimal_sep']          = wpinv_decimal_separator();
391
-		$localize['decimals']             = wpinv_decimals();
392
-		$localize['txtComplete']          = __( 'Continue', 'invoicing' );
393
-		$localize['UseTaxes']             = wpinv_use_taxes();
394
-		$localize['checkoutNonce']        = wp_create_nonce( 'wpinv_checkout_nonce' );
395
-		$localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
396
-		$localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
397
-
398
-		$localize = apply_filters( 'wpinv_front_js_localize', $localize );
399
-
400
-		wp_enqueue_script( 'jquery-blockui' );
401
-		$autofill_api = wpinv_get_option('address_autofill_api');
402
-		$autofill_active = wpinv_get_option('address_autofill_active');
403
-		if ( isset( $autofill_active ) && 1 == $autofill_active && !empty( $autofill_api ) && wpinv_is_checkout() ) {
404
-			if ( wp_script_is( 'google-maps-api', 'enqueued' ) ) {
405
-				wp_dequeue_script( 'google-maps-api' );
406
-			}
407
-			wp_enqueue_script( 'google-maps-api', 'https://maps.googleapis.com/maps/api/js?key=' . $autofill_api . '&libraries=places', array( 'jquery' ), '', false );
408
-			wp_enqueue_script( 'google-maps-init', WPINV_PLUGIN_URL . 'assets/js/gaaf.js', array( 'jquery', 'google-maps-api' ), '', true );
409
-		}
410
-
411
-		wp_enqueue_style( "select2", WPINV_PLUGIN_URL . 'assets/css/select2/select2.css', array(), WPINV_VERSION, 'all' );
412
-		wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full' . $suffix . '.js', array( 'jquery' ), WPINV_VERSION );
413
-
414
-		wp_enqueue_script( 'wpinv-front-script' );
415
-		wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
416
-
417
-		$version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
418
-		wp_enqueue_script( 'wpinv-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'wpinv-front-script', 'wp-hooks' ),  $version, true );
419
-	}
420
-
421
-	public function wpinv_actions() {
422
-		if ( isset( $_REQUEST['wpi_action'] ) ) {
423
-			do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
424
-		}
425
-	}
426
-
427
-	/**
17
+    /**
18
+     * GetPaid version.
19
+     *
20
+     * @var string
21
+     */
22
+    public $version;
23
+
24
+    /**
25
+     * Data container.
26
+     *
27
+     * @var array
28
+     */
29
+    protected $data = array();
30
+
31
+    /**
32
+     * Form elements instance.
33
+     *
34
+     * @var WPInv_Payment_Form_Elements
35
+     */
36
+    public $form_elements;
37
+
38
+    /**
39
+     * Tax instance.
40
+     *
41
+     * @var WPInv_EUVat
42
+     */
43
+    public $tax;
44
+
45
+    /**
46
+     * @param array An array of payment gateways.
47
+     */
48
+    public $gateways;
49
+
50
+    /**
51
+     * Class constructor.
52
+     */
53
+    public function __construct() {
54
+        $this->define_constants();
55
+        $this->includes();
56
+        $this->init_hooks();
57
+        $this->set_properties();
58
+    }
59
+
60
+    /**
61
+     * Sets a custom data property.
62
+     * 
63
+     * @param string $prop The prop to set.
64
+     * @param mixed $value The value to retrieve.
65
+     */
66
+    public function set( $prop, $value ) {
67
+        $this->data[ $prop ] = $value;
68
+    }
69
+
70
+    /**
71
+     * Gets a custom data property.
72
+     *
73
+     * @param string $prop The prop to set.
74
+     * @return mixed The value.
75
+     */
76
+    public function get( $prop ) {
77
+
78
+        if ( isset( $this->data[ $prop ] ) ) {
79
+            return $this->data[ $prop ];
80
+        }
81
+
82
+        return null;
83
+    }
84
+
85
+    /**
86
+     * Define class properties.
87
+     */
88
+    public function set_properties() {
89
+
90
+        // Sessions.
91
+        $this->set( 'session', new WPInv_Session_Handler() );
92
+        $GLOBALS['wpi_session'] = $this->get( 'session' ); // Backwards compatibility.
93
+        $this->form_elements = new WPInv_Payment_Form_Elements();
94
+        $this->tax           = new WPInv_EUVat();
95
+        $this->tax->init();
96
+        $GLOBALS['wpinv_euvat'] = $this->tax; // Backwards compatibility.
97
+
98
+        // Init other objects.
99
+        $this->set( 'reports', new WPInv_Reports() ); // TODO: Refactor.
100
+        $this->set( 'session', new WPInv_Session_Handler() );
101
+        $this->set( 'notes', new WPInv_Notes() );
102
+        $this->set( 'api', new WPInv_API() );
103
+        $this->set( 'post_types', new GetPaid_Post_Types() );
104
+        $this->set( 'template', new GetPaid_Template() );
105
+        $this->set( 'admin', new GetPaid_Admin() );
106
+        $this->set( 'subscriptions', new WPInv_Subscriptions() );
107
+        $this->set( 'invoice_emails', new GetPaid_Invoice_Notification_Emails() );
108
+        $this->set( 'subscription_emails', new GetPaid_Subscription_Notification_Emails() );
109
+        $this->set( 'daily_maintenace', new GetPaid_Daily_Maintenance() );
110
+        $this->set( 'payment_forms', new GetPaid_Payment_Forms() );
111
+
112
+    }
113
+
114
+        /**
115
+         * Define plugin constants.
116
+         */
117
+    public function define_constants() {
118
+        define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );
119
+        define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );
120
+        $this->version = WPINV_VERSION;
121
+    }
122
+
123
+    /**
124
+     * Hook into actions and filters.
125
+     *
126
+     * @since 1.0.19
127
+     */
128
+    protected function init_hooks() {
129
+        /* Internationalize the text strings used. */
130
+        add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );
131
+
132
+        // Init the plugin after WordPress inits.
133
+        add_action( 'init', array( $this, 'init' ), 1 );
134
+        add_action( 'getpaid_init', array( $this, 'maybe_process_ipn' ), 5 );
135
+        add_action( 'init', array( &$this, 'wpinv_actions' ) );
136
+        add_action( 'init', array( $this, 'maybe_do_authenticated_action' ), 100 );
137
+
138
+        if ( class_exists( 'BuddyPress' ) ) {
139
+            add_action( 'bp_include', array( &$this, 'bp_invoicing_init' ) );
140
+        }
141
+
142
+        add_action( 'wp_enqueue_scripts', array( &$this, 'enqueue_scripts' ) );
143
+        add_action( 'wp_footer', array( &$this, 'wp_footer' ) );
144
+        add_action( 'widgets_init', array( &$this, 'register_widgets' ) );
145
+        add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', array( $this, 'wpseo_exclude_from_sitemap_by_post_ids' ) );
146
+        add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );
147
+
148
+        // Fires after registering actions.
149
+        do_action( 'wpinv_actions', $this );
150
+        do_action( 'getpaid_actions', $this );
151
+
152
+    }
153
+
154
+    public function plugins_loaded() {
155
+        /* Internationalize the text strings used. */
156
+        $this->load_textdomain();
157
+
158
+        do_action( 'wpinv_loaded' );
159
+
160
+        // Fix oxygen page builder conflict
161
+        if ( function_exists( 'ct_css_output' ) ) {
162
+            wpinv_oxygen_fix_conflict();
163
+        }
164
+    }
165
+
166
+    /**
167
+     * Load the translation of the plugin.
168
+     *
169
+     * @since 1.0
170
+     */
171
+    public function load_textdomain( $locale = NULL ) {
172
+        if ( empty( $locale ) ) {
173
+            $locale = is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale();
174
+        }
175
+
176
+        $locale = apply_filters( 'plugin_locale', $locale, 'invoicing' );
177
+
178
+        unload_textdomain( 'invoicing' );
179
+        load_textdomain( 'invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo' );
180
+        load_plugin_textdomain( 'invoicing', false, WPINV_PLUGIN_DIR . 'languages' );
181
+
182
+        /**
183
+         * Define language constants.
184
+         */
185
+        require_once( WPINV_PLUGIN_DIR . 'language.php' );
186
+    }
187
+
188
+    /**
189
+     * Include required core files used in admin and on the frontend.
190
+     */
191
+    public function includes() {
192
+
193
+        // Start with the settings.
194
+        require_once( WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php' );
195
+
196
+        // Packages/libraries.
197
+        require_once( WPINV_PLUGIN_DIR . 'vendor/autoload.php' );
198
+        require_once( WPINV_PLUGIN_DIR . 'vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php' );
199
+
200
+        // Load functions.
201
+        require_once( WPINV_PLUGIN_DIR . 'includes/deprecated-functions.php' );
202
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php' );
203
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php' );
204
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php' );
205
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php' );
206
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php' );
207
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php' );
208
+        require_once( WPINV_PLUGIN_DIR . 'includes/invoice-functions.php' );
209
+        require_once( WPINV_PLUGIN_DIR . 'includes/subscription-functions.php' );
210
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php' );
211
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php' );
212
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php' );
213
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php' );
214
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-user-functions.php' );
215
+        require_once( WPINV_PLUGIN_DIR . 'includes/error-functions.php' );
216
+
217
+        // Register autoloader.
218
+        try {
219
+            spl_autoload_register( array( $this, 'autoload' ), true );
220
+        } catch ( Exception $e ) {
221
+            wpinv_error_log( $e->getMessage(), '', __FILE__, 149, true );
222
+        }
223
+
224
+        require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php' );
225
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php' );
226
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php' );
227
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php' );
228
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-reports.php' );
229
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php' );
230
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php' );
231
+        require_once( WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php' );
232
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php' );
233
+        require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php' );
234
+        require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php' );
235
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php' );
236
+        require_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php' );
237
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php' );
238
+        require_once( WPINV_PLUGIN_DIR . 'widgets/checkout.php' );
239
+        require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-history.php' );
240
+        require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php' );
241
+        require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php' );
242
+        require_once( WPINV_PLUGIN_DIR . 'widgets/subscriptions.php' );
243
+        require_once( WPINV_PLUGIN_DIR . 'widgets/buy-item.php' );
244
+        require_once( WPINV_PLUGIN_DIR . 'widgets/getpaid.php' );
245
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-payment-form-elements.php' );
246
+
247
+        /**
248
+         * Load the tax class.
249
+         */
250
+        if ( ! class_exists( 'WPInv_EUVat' ) ) {
251
+            require_once( WPINV_PLUGIN_DIR . 'includes/libraries/wpinv-euvat/class-wpinv-euvat.php' );
252
+        }
253
+
254
+        if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) {
255
+            GetPaid_Post_Types_Admin::init();
256
+
257
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-upgrade-functions.php' );
258
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php' );
259
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-payment-form.php' );
260
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php' );
261
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php' );
262
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php' );
263
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php' );
264
+            require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-getpaid-admin-profile.php' );
265
+            // load the user class only on the users.php page
266
+            global $pagenow;
267
+            if($pagenow=='users.php'){
268
+                new WPInv_Admin_Users();
269
+            }
270
+        }
271
+
272
+        // Register cli commands
273
+        if ( defined( 'WP_CLI' ) && WP_CLI ) {
274
+            require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php' );
275
+            WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );
276
+        }
277
+
278
+        require_once( WPINV_PLUGIN_DIR . 'includes/admin/install.php' );
279
+    }
280
+
281
+    /**
282
+     * Class autoloader
283
+     *
284
+     * @param       string $class_name The name of the class to load.
285
+     * @access      public
286
+     * @since       1.0.19
287
+     * @return      void
288
+     */
289
+    public function autoload( $class_name ) {
290
+
291
+        // Normalize the class name...
292
+        $class_name  = strtolower( $class_name );
293
+
294
+        // ... and make sure it is our class.
295
+        if ( false === strpos( $class_name, 'getpaid_' ) && false === strpos( $class_name, 'wpinv_' ) ) {
296
+            return;
297
+        }
298
+
299
+        // Next, prepare the file name from the class.
300
+        $file_name = 'class-' . str_replace( '_', '-', $class_name ) . '.php';
301
+
302
+        // Base path of the classes.
303
+        $plugin_path = untrailingslashit( WPINV_PLUGIN_DIR );
304
+
305
+        // And an array of possible locations in order of importance.
306
+        $locations = array(
307
+            "$plugin_path/includes",
308
+            "$plugin_path/includes/data-stores",
309
+            "$plugin_path/includes/gateways",
310
+            "$plugin_path/includes/api",
311
+            "$plugin_path/includes/admin",
312
+            "$plugin_path/includes/admin/meta-boxes",
313
+        );
314
+
315
+        foreach ( apply_filters( 'getpaid_autoload_locations', $locations ) as $location ) {
316
+
317
+            if ( file_exists( trailingslashit( $location ) . $file_name ) ) {
318
+                include trailingslashit( $location ) . $file_name;
319
+                break;
320
+            }
321
+
322
+        }
323
+
324
+    }
325
+
326
+    /**
327
+     * Inits hooks etc.
328
+     */
329
+    public function init() {
330
+
331
+        // Fires before getpaid inits.
332
+        do_action( 'before_getpaid_init', $this );
333
+
334
+        // Load default gateways.
335
+        $gateways = apply_filters(
336
+            'getpaid_default_gateways',
337
+            array(
338
+                'manual'        => 'GetPaid_Manual_Gateway',
339
+                'paypal'        => 'GetPaid_Paypal_Gateway',
340
+                'worldpay'      => 'GetPaid_Worldpay_Gateway',
341
+                'bank_transfer' => 'GetPaid_Bank_Transfer_Gateway',
342
+                'authorizenet'  => 'GetPaid_Authorize_Net_Gateway',
343
+            )
344
+        );
345
+
346
+        foreach ( $gateways as $id => $class ) {
347
+            $this->gateways[ $id ] = new $class();
348
+        }
349
+
350
+        // Fires after getpaid inits.
351
+        do_action( 'getpaid_init', $this );
352
+
353
+    }
354
+
355
+    /**
356
+     * Checks if this is an IPN request and processes it.
357
+     */
358
+    public function maybe_process_ipn() {
359
+
360
+        // Ensure that this is an IPN request.
361
+        if ( empty( $_GET['wpi-listener'] ) || 'IPN' !== $_GET['wpi-listener'] || empty( $_GET['wpi-gateway'] ) ) {
362
+            return;
363
+        }
364
+
365
+        $gateway = wpinv_clean( $_GET['wpi-gateway'] );
366
+
367
+        do_action( 'wpinv_verify_payment_ipn', $gateway );
368
+        do_action( "wpinv_verify_{$gateway}_ipn" );
369
+        exit;
370
+
371
+    }
372
+
373
+    public function enqueue_scripts() {
374
+        $suffix       = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
375
+
376
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/css/invoice-front.css' );
377
+        wp_register_style( 'wpinv_front_style', WPINV_PLUGIN_URL . 'assets/css/invoice-front.css', array(), $version );
378
+        wp_enqueue_style( 'wpinv_front_style' );
379
+
380
+        // Register scripts
381
+        wp_register_script( 'jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array( 'jquery' ), '2.70', true );
382
+        wp_register_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/invoice-front.js', array( 'jquery' ),  filemtime( WPINV_PLUGIN_DIR . 'assets/js/invoice-front.js' ) );
383
+
384
+        $localize                         = array();
385
+        $localize['ajax_url']             = admin_url( 'admin-ajax.php' );
386
+        $localize['nonce']                = wp_create_nonce( 'wpinv-nonce' );
387
+        $localize['currency_symbol']      = wpinv_currency_symbol();
388
+        $localize['currency_pos']         = wpinv_currency_position();
389
+        $localize['thousand_sep']         = wpinv_thousands_separator();
390
+        $localize['decimal_sep']          = wpinv_decimal_separator();
391
+        $localize['decimals']             = wpinv_decimals();
392
+        $localize['txtComplete']          = __( 'Continue', 'invoicing' );
393
+        $localize['UseTaxes']             = wpinv_use_taxes();
394
+        $localize['checkoutNonce']        = wp_create_nonce( 'wpinv_checkout_nonce' );
395
+        $localize['formNonce']            = wp_create_nonce( 'getpaid_form_nonce' );
396
+        $localize['connectionError']      = __( 'Could not establish a connection to the server.', 'invoicing' );
397
+
398
+        $localize = apply_filters( 'wpinv_front_js_localize', $localize );
399
+
400
+        wp_enqueue_script( 'jquery-blockui' );
401
+        $autofill_api = wpinv_get_option('address_autofill_api');
402
+        $autofill_active = wpinv_get_option('address_autofill_active');
403
+        if ( isset( $autofill_active ) && 1 == $autofill_active && !empty( $autofill_api ) && wpinv_is_checkout() ) {
404
+            if ( wp_script_is( 'google-maps-api', 'enqueued' ) ) {
405
+                wp_dequeue_script( 'google-maps-api' );
406
+            }
407
+            wp_enqueue_script( 'google-maps-api', 'https://maps.googleapis.com/maps/api/js?key=' . $autofill_api . '&libraries=places', array( 'jquery' ), '', false );
408
+            wp_enqueue_script( 'google-maps-init', WPINV_PLUGIN_URL . 'assets/js/gaaf.js', array( 'jquery', 'google-maps-api' ), '', true );
409
+        }
410
+
411
+        wp_enqueue_style( "select2", WPINV_PLUGIN_URL . 'assets/css/select2/select2.css', array(), WPINV_VERSION, 'all' );
412
+        wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full' . $suffix . '.js', array( 'jquery' ), WPINV_VERSION );
413
+
414
+        wp_enqueue_script( 'wpinv-front-script' );
415
+        wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );
416
+
417
+        $version = filemtime( WPINV_PLUGIN_DIR . 'assets/js/payment-forms.js' );
418
+        wp_enqueue_script( 'wpinv-payment-form-script', WPINV_PLUGIN_URL . 'assets/js/payment-forms.js', array( 'wpinv-front-script', 'wp-hooks' ),  $version, true );
419
+    }
420
+
421
+    public function wpinv_actions() {
422
+        if ( isset( $_REQUEST['wpi_action'] ) ) {
423
+            do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );
424
+        }
425
+    }
426
+
427
+    /**
428 428
      * Fires an action after verifying that a user can fire them.
429
-	 *
430
-	 * Note: If the action is on an invoice, subscription etc, esure that the
431
-	 * current user owns the invoice/subscription.
429
+     *
430
+     * Note: If the action is on an invoice, subscription etc, esure that the
431
+     * current user owns the invoice/subscription.
432 432
      */
433 433
     public function maybe_do_authenticated_action() {
434 434
 
@@ -439,82 +439,82 @@  discard block
 block discarded – undo
439 439
 
440 440
     }
441 441
 
442
-	public function pre_get_posts( $wp_query ) {
443
-		if ( ! is_admin() && !empty( $wp_query->query_vars['post_type'] ) && $wp_query->query_vars['post_type'] == 'wpi_invoice' && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
444
-			$wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses() );
445
-		}
446
-
447
-		return $wp_query;
448
-	}
449
-
450
-	public function bp_invoicing_init() {
451
-		require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-bp-core.php' );
452
-	}
453
-
454
-	/**
455
-	 * Register widgets
456
-	 *
457
-	 */
458
-	public function register_widgets() {
459
-		$widgets = apply_filters(
460
-			'getpaid_widget_classes',
461
-			array(
462
-				'WPInv_Checkout_Widget',
463
-				'WPInv_History_Widget',
464
-				'WPInv_Receipt_Widget',
465
-				'WPInv_Subscriptions_Widget',
466
-				'WPInv_Buy_Item_Widget',
467
-				'WPInv_Messages_Widget',
468
-				'WPInv_GetPaid_Widget'
469
-			)
470
-		);
471
-
472
-		foreach ( $widgets as $widget ) {
473
-			register_widget( $widget );
474
-		}
442
+    public function pre_get_posts( $wp_query ) {
443
+        if ( ! is_admin() && !empty( $wp_query->query_vars['post_type'] ) && $wp_query->query_vars['post_type'] == 'wpi_invoice' && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) {
444
+            $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses() );
445
+        }
446
+
447
+        return $wp_query;
448
+    }
449
+
450
+    public function bp_invoicing_init() {
451
+        require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-bp-core.php' );
452
+    }
453
+
454
+    /**
455
+     * Register widgets
456
+     *
457
+     */
458
+    public function register_widgets() {
459
+        $widgets = apply_filters(
460
+            'getpaid_widget_classes',
461
+            array(
462
+                'WPInv_Checkout_Widget',
463
+                'WPInv_History_Widget',
464
+                'WPInv_Receipt_Widget',
465
+                'WPInv_Subscriptions_Widget',
466
+                'WPInv_Buy_Item_Widget',
467
+                'WPInv_Messages_Widget',
468
+                'WPInv_GetPaid_Widget'
469
+            )
470
+        );
471
+
472
+        foreach ( $widgets as $widget ) {
473
+            register_widget( $widget );
474
+        }
475 475
 		
476
-	}
476
+    }
477 477
 
478
-	/**
479
-	 * Remove our pages from yoast sitemaps.
480
-	 *
481
-	 * @since 1.0.19
482
-	 * @param int[] $excluded_posts_ids
483
-	 */
484
-	public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ){
478
+    /**
479
+     * Remove our pages from yoast sitemaps.
480
+     *
481
+     * @since 1.0.19
482
+     * @param int[] $excluded_posts_ids
483
+     */
484
+    public function wpseo_exclude_from_sitemap_by_post_ids( $excluded_posts_ids ){
485 485
 
486
-		// Ensure that we have an array.
487
-		if ( ! is_array( $excluded_posts_ids ) ) {
488
-			$excluded_posts_ids = array();
489
-		}
486
+        // Ensure that we have an array.
487
+        if ( ! is_array( $excluded_posts_ids ) ) {
488
+            $excluded_posts_ids = array();
489
+        }
490 490
 
491
-		// Prepare our pages.
492
-		$our_pages = array();
491
+        // Prepare our pages.
492
+        $our_pages = array();
493 493
 
494
-		// Checkout page.
495
-		$our_pages[] = wpinv_get_option( 'checkout_page', false );
494
+        // Checkout page.
495
+        $our_pages[] = wpinv_get_option( 'checkout_page', false );
496 496
 
497
-		// Success page.
498
-		$our_pages[] = wpinv_get_option( 'success_page', false );
497
+        // Success page.
498
+        $our_pages[] = wpinv_get_option( 'success_page', false );
499 499
 
500
-		// Failure page.
501
-		$our_pages[] = wpinv_get_option( 'failure_page', false );
500
+        // Failure page.
501
+        $our_pages[] = wpinv_get_option( 'failure_page', false );
502 502
 
503
-		// History page.
504
-		$our_pages[] = wpinv_get_option( 'invoice_history_page', false );
503
+        // History page.
504
+        $our_pages[] = wpinv_get_option( 'invoice_history_page', false );
505 505
 
506
-		// Subscriptions page.
507
-		$our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
506
+        // Subscriptions page.
507
+        $our_pages[] = wpinv_get_option( 'invoice_subscription_page', false );
508 508
 
509
-		$our_pages   = array_map( 'intval', array_filter( $our_pages ) );
509
+        $our_pages   = array_map( 'intval', array_filter( $our_pages ) );
510 510
 
511
-		$excluded_posts_ids = $excluded_posts_ids + $our_pages;
512
-		return array_unique( $excluded_posts_ids );
511
+        $excluded_posts_ids = $excluded_posts_ids + $our_pages;
512
+        return array_unique( $excluded_posts_ids );
513 513
 
514
-	}
514
+    }
515 515
 
516
-	public function wp_footer() {
517
-		echo '
516
+    public function wp_footer() {
517
+        echo '
518 518
 			<div class="bsui">
519 519
 				<div  id="getpaid-payment-modal" class="modal" tabindex="-1" role="dialog">
520 520
 					<div class="modal-dialog modal-dialog-centered modal-lg" role="checkout" style="max-width: 650px;">
@@ -525,6 +525,6 @@  discard block
 block discarded – undo
525 525
 				</div>
526 526
 			</div>
527 527
 		';
528
-	}
528
+    }
529 529
 
530 530
 }
Please login to merge, or discard this patch.
includes/wpinv-email-functions.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -110,8 +110,8 @@  discard block
 block discarded – undo
110 110
     $css = getpaid_get_email_css();
111 111
 
112 112
     // include css inliner
113
-	if ( ! class_exists( 'Emogrifier' ) ) {
114
-		include_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-emogrifier.php' );
113
+    if ( ! class_exists( 'Emogrifier' ) ) {
114
+        include_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-emogrifier.php' );
115 115
     }
116 116
 
117 117
     // Inline the css.
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
     $message = wpinv_email_style_body( $message );
191 191
     $to      = array_merge( wpinv_parse_list( $to ), wpinv_parse_list( $cc ) );
192 192
 
193
-	return $mailer->send(
193
+    return $mailer->send(
194 194
         $to,
195 195
         $subject,
196 196
         $message,
Please login to merge, or discard this patch.