@@ -26,57 +26,57 @@ discard block |
||
26 | 26 | |
27 | 27 | <?php |
28 | 28 | |
29 | - // Fires before printing a line item column. |
|
30 | - do_action( "getpaid_form_cart_item_before_$key", $item, $form ); |
|
29 | + // Fires before printing a line item column. |
|
30 | + do_action( "getpaid_form_cart_item_before_$key", $item, $form ); |
|
31 | 31 | |
32 | - // Item name. |
|
33 | - if ( 'name' == $key ) { |
|
32 | + // Item name. |
|
33 | + if ( 'name' == $key ) { |
|
34 | 34 | |
35 | - ob_start(); |
|
36 | - // And an optional description. |
|
37 | - $description = $item->get_description(); |
|
35 | + ob_start(); |
|
36 | + // And an optional description. |
|
37 | + $description = $item->get_description(); |
|
38 | 38 | |
39 | - if ( ! empty( $description ) ) { |
|
40 | - echo "<small class='form-text text-muted pr-2 m-0'>" . wp_kses_post( $description ) . "</small>"; |
|
41 | - } |
|
39 | + if ( ! empty( $description ) ) { |
|
40 | + echo "<small class='form-text text-muted pr-2 m-0'>" . wp_kses_post( $description ) . "</small>"; |
|
41 | + } |
|
42 | 42 | |
43 | - // Price help text. |
|
44 | - $description = getpaid_item_recurring_price_help_text( $item, $currency ); |
|
45 | - if ( $description ) { |
|
46 | - echo "<small class='getpaid-form-item-price-desc form-text text-muted pr-2 m-0'>" . wp_kses_post( $description ) . "</small>"; |
|
47 | - } |
|
43 | + // Price help text. |
|
44 | + $description = getpaid_item_recurring_price_help_text( $item, $currency ); |
|
45 | + if ( $description ) { |
|
46 | + echo "<small class='getpaid-form-item-price-desc form-text text-muted pr-2 m-0'>" . wp_kses_post( $description ) . "</small>"; |
|
47 | + } |
|
48 | 48 | |
49 | - do_action( 'getpaid_payment_form_cart_item_description', $item, $form ); |
|
49 | + do_action( 'getpaid_payment_form_cart_item_description', $item, $form ); |
|
50 | 50 | |
51 | - if ( wpinv_current_user_can_manage_invoicing() ) { |
|
51 | + if ( wpinv_current_user_can_manage_invoicing() ) { |
|
52 | 52 | |
53 | - edit_post_link( |
|
54 | - __( 'Edit this item.', 'invoicing' ), |
|
55 | - '<small class="form-text text-muted">', |
|
56 | - '</small>', |
|
57 | - $item->get_id(), |
|
58 | - 'text-danger' |
|
59 | - ); |
|
53 | + edit_post_link( |
|
54 | + __( 'Edit this item.', 'invoicing' ), |
|
55 | + '<small class="form-text text-muted">', |
|
56 | + '</small>', |
|
57 | + $item->get_id(), |
|
58 | + 'text-danger' |
|
59 | + ); |
|
60 | 60 | |
61 | - } |
|
61 | + } |
|
62 | 62 | |
63 | - $description = ob_get_clean(); |
|
63 | + $description = ob_get_clean(); |
|
64 | 64 | |
65 | - // Display the name. |
|
66 | - $tootip = empty( $description ) ? '' : ' ' . '<i class="fas fa-xs fa-info gp-tooltip d-sm-none text-muted"></i>'; |
|
67 | - echo '<div class="mb-1">' . esc_html( $item->get_name() ) . wp_kses_post( $tootip ) . '</div>'; |
|
65 | + // Display the name. |
|
66 | + $tootip = empty( $description ) ? '' : ' ' . '<i class="fas fa-xs fa-info gp-tooltip d-sm-none text-muted"></i>'; |
|
67 | + echo '<div class="mb-1">' . esc_html( $item->get_name() ) . wp_kses_post( $tootip ) . '</div>'; |
|
68 | 68 | |
69 | - if ( ! empty( $description ) ) { |
|
70 | - printf( '<span class="d-none d-sm-block getpaid-item-desc">%s</span>', wp_kses_post( $description ) ); |
|
71 | - } |
|
69 | + if ( ! empty( $description ) ) { |
|
70 | + printf( '<span class="d-none d-sm-block getpaid-item-desc">%s</span>', wp_kses_post( $description ) ); |
|
71 | + } |
|
72 | 72 | |
73 | - if ( $item->allows_quantities() ) { |
|
74 | - printf( |
|
75 | - '<small class="d-sm-none text-muted form-text">%s</small>', |
|
76 | - sprintf( |
|
77 | - esc_html__( 'Qty %s', 'invoicing' ), |
|
78 | - sprintf( |
|
79 | - '<input |
|
73 | + if ( $item->allows_quantities() ) { |
|
74 | + printf( |
|
75 | + '<small class="d-sm-none text-muted form-text">%s</small>', |
|
76 | + sprintf( |
|
77 | + esc_html__( 'Qty %s', 'invoicing' ), |
|
78 | + sprintf( |
|
79 | + '<input |
|
80 | 80 | type="number" |
81 | 81 | step="0.01" |
82 | 82 | style="width: 48px;" |
@@ -87,53 +87,53 @@ discard block |
||
87 | 87 | >', |
88 | 88 | (float) $item->get_quantity() == 0 ? 1 : (float) $item->get_quantity(), |
89 | 89 | floatval( null !== $max_qty ? $max_qty : 1000000000000 ) |
90 | - ) |
|
91 | - ) |
|
92 | - ); |
|
93 | - } else { |
|
94 | - printf( |
|
95 | - '<small class="d-sm-none text-muted form-text">%s</small>', |
|
96 | - sprintf( |
|
97 | - esc_html__( 'Qty %s', 'invoicing' ), |
|
98 | - (float) $item->get_quantity() |
|
99 | - ) |
|
100 | - ); |
|
101 | - } |
|
90 | + ) |
|
91 | + ) |
|
92 | + ); |
|
93 | + } else { |
|
94 | + printf( |
|
95 | + '<small class="d-sm-none text-muted form-text">%s</small>', |
|
96 | + sprintf( |
|
97 | + esc_html__( 'Qty %s', 'invoicing' ), |
|
98 | + (float) $item->get_quantity() |
|
99 | + ) |
|
100 | + ); |
|
101 | + } |
|
102 | 102 | } |
103 | 103 | |
104 | - // Item price. |
|
105 | - if ( 'price' == $key ) { |
|
104 | + // Item price. |
|
105 | + if ( 'price' == $key ) { |
|
106 | 106 | |
107 | - // Set the currency position. |
|
108 | - $position = wpinv_currency_position(); |
|
107 | + // Set the currency position. |
|
108 | + $position = wpinv_currency_position(); |
|
109 | 109 | |
110 | - if ( $position == 'left_space' ) { |
|
111 | - $position = 'left'; |
|
112 | - } |
|
110 | + if ( $position == 'left_space' ) { |
|
111 | + $position = 'left'; |
|
112 | + } |
|
113 | 113 | |
114 | - if ( $position == 'right_space' ) { |
|
115 | - $position = 'right'; |
|
116 | - } |
|
114 | + if ( $position == 'right_space' ) { |
|
115 | + $position = 'right'; |
|
116 | + } |
|
117 | 117 | |
118 | - if ( $item->user_can_set_their_price() ) { |
|
119 | - $price = max( (float) $item->get_price(), (float) $item->get_minimum_price() ); |
|
120 | - $minimum = (float) $item->get_minimum_price(); |
|
121 | - $validate_minimum = ''; |
|
122 | - $class = ''; |
|
123 | - $data_minimum = ''; |
|
118 | + if ( $item->user_can_set_their_price() ) { |
|
119 | + $price = max( (float) $item->get_price(), (float) $item->get_minimum_price() ); |
|
120 | + $minimum = (float) $item->get_minimum_price(); |
|
121 | + $validate_minimum = ''; |
|
122 | + $class = ''; |
|
123 | + $data_minimum = ''; |
|
124 | 124 | |
125 | - if ( $minimum > 0 ) { |
|
126 | - $validate_minimum = sprintf( |
|
127 | - esc_attr__( 'The minimum allowed amount is %s', 'invoicing' ), |
|
128 | - strip_tags( wpinv_price( $minimum, $currency ) ) |
|
129 | - ); |
|
125 | + if ( $minimum > 0 ) { |
|
126 | + $validate_minimum = sprintf( |
|
127 | + esc_attr__( 'The minimum allowed amount is %s', 'invoicing' ), |
|
128 | + strip_tags( wpinv_price( $minimum, $currency ) ) |
|
129 | + ); |
|
130 | 130 | |
131 | - $class = 'getpaid-validate-minimum-amount'; |
|
131 | + $class = 'getpaid-validate-minimum-amount'; |
|
132 | 132 | |
133 | - $data_minimum = "data-minimum-amount='" . esc_attr( getpaid_unstandardize_amount( $minimum ) ) . "'"; |
|
134 | - } |
|
133 | + $data_minimum = "data-minimum-amount='" . esc_attr( getpaid_unstandardize_amount( $minimum ) ) . "'"; |
|
134 | + } |
|
135 | 135 | |
136 | - ?> |
|
136 | + ?> |
|
137 | 137 | <div class="input-group input-group-sm"> |
138 | 138 | <?php if ( 'left' == $position ) : ?> |
139 | 139 | <div class="input-group-prepend"> |
@@ -158,43 +158,43 @@ discard block |
||
158 | 158 | |
159 | 159 | <?php |
160 | 160 | |
161 | - } else { |
|
162 | - echo wp_kses_post( wpinv_price( $item->get_price(), $currency ) ); |
|
161 | + } else { |
|
162 | + echo wp_kses_post( wpinv_price( $item->get_price(), $currency ) ); |
|
163 | 163 | |
164 | - ?> |
|
164 | + ?> |
|
165 | 165 | <input name='getpaid-items[<?php echo (int) $item->get_id(); ?>][price]' type='hidden' class='getpaid-item-price-input' value='<?php echo esc_attr( $item->get_price() ); ?>'> |
166 | 166 | <?php |
167 | - } |
|
167 | + } |
|
168 | 168 | |
169 | - printf( |
|
169 | + printf( |
|
170 | 170 | '<small class="d-sm-none text-muted form-text getpaid-mobile-item-subtotal">%s</small>', |
171 | 171 | sprintf( esc_html__( 'Subtotal: %s', 'invoicing' ), wp_kses_post( wpinv_price( $item->get_sub_total(), $currency ) ) ) |
172 | 172 | ); |
173 | - } |
|
173 | + } |
|
174 | 174 | |
175 | - // Item quantity. |
|
176 | - if ( 'quantity' == $key ) { |
|
175 | + // Item quantity. |
|
176 | + if ( 'quantity' == $key ) { |
|
177 | 177 | |
178 | - if ( $item->allows_quantities() ) { |
|
179 | - ?> |
|
178 | + if ( $item->allows_quantities() ) { |
|
179 | + ?> |
|
180 | 180 | <input name='getpaid-items[<?php echo (int) $item->get_id(); ?>][quantity]' type="number" step="0.01" style='width: 64px; line-height: 1; min-height: 35px;' class='getpaid-item-quantity-input p-1 align-middle font-weight-normal shadow-none m-0 rounded-0 text-center border' value='<?php echo (float) $item->get_quantity() == 0 ? 1 : (float) $item->get_quantity(); ?>' min='1' <?php echo null !== $max_qty ? 'max="' . (float) $max_qty . '"' : ''; ?> required> |
181 | 181 | <?php |
182 | - } else { |
|
183 | - echo (float) $item->get_quantity(); |
|
184 | - echo ' '; |
|
185 | - ?> |
|
182 | + } else { |
|
183 | + echo (float) $item->get_quantity(); |
|
184 | + echo ' '; |
|
185 | + ?> |
|
186 | 186 | <input type='hidden' name='getpaid-items[<?php echo (int) $item->get_id(); ?>][quantity]' class='getpaid-item-quantity-input' value='<?php echo (float) $item->get_quantity(); ?>'> |
187 | 187 | <?php |
188 | - } |
|
188 | + } |
|
189 | 189 | } |
190 | 190 | |
191 | - // Item sub total. |
|
192 | - if ( 'subtotal' == $key ) { |
|
193 | - echo wp_kses_post( wpinv_price( $item->get_sub_total(), $currency ) ); |
|
194 | - } |
|
191 | + // Item sub total. |
|
192 | + if ( 'subtotal' == $key ) { |
|
193 | + echo wp_kses_post( wpinv_price( $item->get_sub_total(), $currency ) ); |
|
194 | + } |
|
195 | 195 | |
196 | - do_action( "getpaid_payment_form_cart_item_$key", $item, $form ); |
|
197 | - ?> |
|
196 | + do_action( "getpaid_payment_form_cart_item_$key", $item, $form ); |
|
197 | + ?> |
|
198 | 198 | |
199 | 199 | </div> |
200 | 200 |
@@ -34,11 +34,11 @@ discard block |
||
34 | 34 | */ |
35 | 35 | function wpinv_get_capability( $capalibilty = 'manage_invoicing' ) { |
36 | 36 | |
37 | - if ( current_user_can( 'manage_options' ) ) { |
|
38 | - return 'manage_options'; |
|
39 | - }; |
|
37 | + if ( current_user_can( 'manage_options' ) ) { |
|
38 | + return 'manage_options'; |
|
39 | + }; |
|
40 | 40 | |
41 | - return $capalibilty; |
|
41 | + return $capalibilty; |
|
42 | 42 | } |
43 | 43 | |
44 | 44 | /** |
@@ -62,10 +62,10 @@ discard block |
||
62 | 62 | // Prepare user values. |
63 | 63 | $prefix = preg_replace( '/\s+/', '', $prefix ); |
64 | 64 | $prefix = empty( $prefix ) ? $email : $prefix; |
65 | - $args = array( |
|
66 | - 'user_login' => wpinv_generate_user_name( $prefix ), |
|
67 | - 'user_pass' => wp_generate_password(), |
|
68 | - 'user_email' => $email, |
|
65 | + $args = array( |
|
66 | + 'user_login' => wpinv_generate_user_name( $prefix ), |
|
67 | + 'user_pass' => wp_generate_password(), |
|
68 | + 'user_email' => $email, |
|
69 | 69 | 'role' => 'subscriber', |
70 | 70 | ); |
71 | 71 | |
@@ -82,16 +82,16 @@ discard block |
||
82 | 82 | function wpinv_generate_user_name( $prefix = '' ) { |
83 | 83 | |
84 | 84 | // If prefix is an email, retrieve the part before the email. |
85 | - $prefix = strtok( $prefix, '@' ); |
|
85 | + $prefix = strtok( $prefix, '@' ); |
|
86 | 86 | $prefix = trim( $prefix, '.' ); |
87 | 87 | |
88 | - // Sanitize the username. |
|
89 | - $prefix = sanitize_user( $prefix, true ); |
|
88 | + // Sanitize the username. |
|
89 | + $prefix = sanitize_user( $prefix, true ); |
|
90 | 90 | |
91 | - $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
92 | - if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
93 | - $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
94 | - } |
|
91 | + $illegal_logins = (array) apply_filters( 'illegal_user_logins', array() ); |
|
92 | + if ( empty( $prefix ) || in_array( strtolower( $prefix ), array_map( 'strtolower', $illegal_logins ), true ) ) { |
|
93 | + $prefix = 'gtp_' . zeroise( wp_rand( 0, 9999 ), 4 ); |
|
94 | + } |
|
95 | 95 | |
96 | 96 | $username = $prefix; |
97 | 97 | $postfix = 2; |
@@ -220,43 +220,43 @@ discard block |
||
220 | 220 | |
221 | 221 | foreach ( getpaid_user_address_fields() as $key => $label ) { |
222 | 222 | |
223 | - // Display the country. |
|
224 | - if ( 'country' == $key ) { |
|
225 | - |
|
226 | - aui()->select( |
|
227 | - array( |
|
228 | - 'options' => wpinv_get_country_list(), |
|
229 | - 'name' => 'getpaid_address[' . esc_attr( $key ) . ']', |
|
230 | - 'id' => 'wpinv-' . sanitize_html_class( $key ), |
|
231 | - 'value' => sanitize_text_field( getpaid_get_user_address_field( get_current_user_id(), $key ) ), |
|
232 | - 'placeholder' => $label, |
|
233 | - 'label' => wp_kses_post( $label ), |
|
234 | - 'label_type' => 'vertical', |
|
235 | - 'class' => 'getpaid-address-field', |
|
223 | + // Display the country. |
|
224 | + if ( 'country' == $key ) { |
|
225 | + |
|
226 | + aui()->select( |
|
227 | + array( |
|
228 | + 'options' => wpinv_get_country_list(), |
|
229 | + 'name' => 'getpaid_address[' . esc_attr( $key ) . ']', |
|
230 | + 'id' => 'wpinv-' . sanitize_html_class( $key ), |
|
231 | + 'value' => sanitize_text_field( getpaid_get_user_address_field( get_current_user_id(), $key ) ), |
|
232 | + 'placeholder' => $label, |
|
233 | + 'label' => wp_kses_post( $label ), |
|
234 | + 'label_type' => 'vertical', |
|
235 | + 'class' => 'getpaid-address-field', |
|
236 | 236 | ), |
237 | 237 | true |
238 | - ); |
|
239 | - |
|
240 | - } |
|
241 | - |
|
242 | - // Display the state. |
|
243 | - elseif ( 'state' == $key ) { |
|
244 | - |
|
245 | - getpaid_get_states_select_markup( |
|
246 | - getpaid_get_user_address_field( get_current_user_id(), 'country' ), |
|
247 | - getpaid_get_user_address_field( get_current_user_id(), 'state' ), |
|
248 | - $label, |
|
249 | - $label, |
|
250 | - '', |
|
251 | - false, |
|
252 | - '', |
|
253 | - 'getpaid_address[' . esc_attr( $key ) . ']', |
|
238 | + ); |
|
239 | + |
|
240 | + } |
|
241 | + |
|
242 | + // Display the state. |
|
243 | + elseif ( 'state' == $key ) { |
|
244 | + |
|
245 | + getpaid_get_states_select_markup( |
|
246 | + getpaid_get_user_address_field( get_current_user_id(), 'country' ), |
|
247 | + getpaid_get_user_address_field( get_current_user_id(), 'state' ), |
|
248 | + $label, |
|
249 | + $label, |
|
250 | + '', |
|
251 | + false, |
|
252 | + '', |
|
253 | + 'getpaid_address[' . esc_attr( $key ) . ']', |
|
254 | 254 | true |
255 | - ); |
|
255 | + ); |
|
256 | 256 | |
257 | 257 | } else { |
258 | 258 | |
259 | - aui()->input( |
|
259 | + aui()->input( |
|
260 | 260 | array( |
261 | 261 | 'name' => 'getpaid_address[' . esc_attr( $key ) . ']', |
262 | 262 | 'id' => 'wpinv-' . sanitize_html_class( $key ), |
@@ -268,7 +268,7 @@ discard block |
||
268 | 268 | 'class' => 'getpaid-address-field', |
269 | 269 | ), |
270 | 270 | true |
271 | - ); |
|
271 | + ); |
|
272 | 272 | |
273 | 273 | } |
274 | 274 | } |
@@ -407,7 +407,7 @@ discard block |
||
407 | 407 | function getpaid_allowed_html() { |
408 | 408 | $allowed_html = wp_kses_allowed_html( 'post' ); |
409 | 409 | |
410 | - // form fields |
|
410 | + // form fields |
|
411 | 411 | $allowed_html['form'] = array( |
412 | 412 | 'action' => true, |
413 | 413 | 'accept' => true, |
@@ -419,37 +419,37 @@ discard block |
||
419 | 419 | ); |
420 | 420 | |
421 | 421 | // - input |
422 | - $allowed_html['input'] = array( |
|
423 | - 'class' => array(), |
|
424 | - 'id' => array(), |
|
425 | - 'name' => array(), |
|
426 | - 'value' => array(), |
|
427 | - 'type' => array(), |
|
428 | - ); |
|
422 | + $allowed_html['input'] = array( |
|
423 | + 'class' => array(), |
|
424 | + 'id' => array(), |
|
425 | + 'name' => array(), |
|
426 | + 'value' => array(), |
|
427 | + 'type' => array(), |
|
428 | + ); |
|
429 | 429 | |
430 | 430 | // - input |
431 | - $allowed_html['textarea'] = array( |
|
432 | - 'class' => array(), |
|
433 | - 'id' => array(), |
|
434 | - 'name' => array(), |
|
435 | - 'value' => array(), |
|
436 | - ); |
|
437 | - |
|
438 | - // select |
|
439 | - $allowed_html['select'] = array( |
|
440 | - 'class' => array(), |
|
441 | - 'id' => array(), |
|
442 | - 'name' => array(), |
|
443 | - 'value' => array(), |
|
444 | - 'type' => array(), |
|
445 | - ); |
|
446 | - |
|
447 | - // select options |
|
448 | - $allowed_html['option'] = array( |
|
449 | - 'selected' => array(), |
|
450 | - ); |
|
451 | - |
|
452 | - return $allowed_html; |
|
431 | + $allowed_html['textarea'] = array( |
|
432 | + 'class' => array(), |
|
433 | + 'id' => array(), |
|
434 | + 'name' => array(), |
|
435 | + 'value' => array(), |
|
436 | + ); |
|
437 | + |
|
438 | + // select |
|
439 | + $allowed_html['select'] = array( |
|
440 | + 'class' => array(), |
|
441 | + 'id' => array(), |
|
442 | + 'name' => array(), |
|
443 | + 'value' => array(), |
|
444 | + 'type' => array(), |
|
445 | + ); |
|
446 | + |
|
447 | + // select options |
|
448 | + $allowed_html['option'] = array( |
|
449 | + 'selected' => array(), |
|
450 | + ); |
|
451 | + |
|
452 | + return $allowed_html; |
|
453 | 453 | |
454 | 454 | } |
455 | 455 |
@@ -14,7 +14,7 @@ discard block |
||
14 | 14 | */ |
15 | 15 | function wpinv_subscriptions_page() { |
16 | 16 | |
17 | - ?> |
|
17 | + ?> |
|
18 | 18 | |
19 | 19 | <div class="wrap"> |
20 | 20 | <h1><?php echo esc_html( get_admin_page_title() ); ?></h1> |
@@ -22,28 +22,28 @@ discard block |
||
22 | 22 | |
23 | 23 | <?php |
24 | 24 | |
25 | - // Verify user permissions. |
|
26 | - if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
25 | + // Verify user permissions. |
|
26 | + if ( ! wpinv_current_user_can_manage_invoicing() ) { |
|
27 | 27 | |
28 | - aui()->alert( |
|
28 | + aui()->alert( |
|
29 | 29 | array( |
30 | - 'type' => 'danger', |
|
31 | - 'content' => __( 'You are not permitted to view this page.', 'invoicing' ), |
|
32 | - ), |
|
33 | - true |
|
30 | + 'type' => 'danger', |
|
31 | + 'content' => __( 'You are not permitted to view this page.', 'invoicing' ), |
|
32 | + ), |
|
33 | + true |
|
34 | 34 | ); |
35 | 35 | |
36 | - } elseif ( ! empty( $_GET['id'] ) && is_numeric( $_GET['id'] ) ) { |
|
36 | + } elseif ( ! empty( $_GET['id'] ) && is_numeric( $_GET['id'] ) ) { |
|
37 | 37 | |
38 | - // Display a single subscription. |
|
39 | - wpinv_recurring_subscription_details(); |
|
40 | - } else { |
|
38 | + // Display a single subscription. |
|
39 | + wpinv_recurring_subscription_details(); |
|
40 | + } else { |
|
41 | 41 | |
42 | - // Display a list of available subscriptions. |
|
43 | - getpaid_print_subscriptions_list(); |
|
44 | - } |
|
42 | + // Display a list of available subscriptions. |
|
43 | + getpaid_print_subscriptions_list(); |
|
44 | + } |
|
45 | 45 | |
46 | - ?> |
|
46 | + ?> |
|
47 | 47 | |
48 | 48 | </div> |
49 | 49 | </div> |
@@ -60,10 +60,10 @@ discard block |
||
60 | 60 | */ |
61 | 61 | function getpaid_print_subscriptions_list() { |
62 | 62 | |
63 | - $subscribers_table = new WPInv_Subscriptions_List_Table(); |
|
64 | - $subscribers_table->prepare_items(); |
|
63 | + $subscribers_table = new WPInv_Subscriptions_List_Table(); |
|
64 | + $subscribers_table->prepare_items(); |
|
65 | 65 | |
66 | - ?> |
|
66 | + ?> |
|
67 | 67 | <?php $subscribers_table->views(); ?> |
68 | 68 | <form id="subscribers-filter" class="bsui" method="get"> |
69 | 69 | <input type="hidden" name="page" value="wpinv-subscriptions" /> |
@@ -82,42 +82,42 @@ discard block |
||
82 | 82 | */ |
83 | 83 | function wpinv_recurring_subscription_details() { |
84 | 84 | |
85 | - // Fetch the subscription. |
|
86 | - $sub = new WPInv_Subscription( (int) $_GET['id'] ); |
|
87 | - if ( ! $sub->exists() ) { |
|
85 | + // Fetch the subscription. |
|
86 | + $sub = new WPInv_Subscription( (int) $_GET['id'] ); |
|
87 | + if ( ! $sub->exists() ) { |
|
88 | 88 | |
89 | - aui()->alert( |
|
90 | - array( |
|
91 | - 'type' => 'danger', |
|
92 | - 'content' => __( 'Subscription not found.', 'invoicing' ), |
|
93 | - ), |
|
94 | - true |
|
95 | - ); |
|
89 | + aui()->alert( |
|
90 | + array( |
|
91 | + 'type' => 'danger', |
|
92 | + 'content' => __( 'Subscription not found.', 'invoicing' ), |
|
93 | + ), |
|
94 | + true |
|
95 | + ); |
|
96 | 96 | |
97 | - return; |
|
98 | - } |
|
97 | + return; |
|
98 | + } |
|
99 | 99 | |
100 | - // Use metaboxes to display the subscription details. |
|
101 | - add_meta_box( 'getpaid_admin_subscription_details_metabox', __( 'Subscription Details', 'invoicing' ), 'getpaid_admin_subscription_details_metabox', get_current_screen(), 'normal', 'high' ); |
|
102 | - add_meta_box( 'getpaid_admin_subscription_update_metabox', __( 'Change Status', 'invoicing' ), 'getpaid_admin_subscription_update_metabox', get_current_screen(), 'side' ); |
|
100 | + // Use metaboxes to display the subscription details. |
|
101 | + add_meta_box( 'getpaid_admin_subscription_details_metabox', __( 'Subscription Details', 'invoicing' ), 'getpaid_admin_subscription_details_metabox', get_current_screen(), 'normal', 'high' ); |
|
102 | + add_meta_box( 'getpaid_admin_subscription_update_metabox', __( 'Change Status', 'invoicing' ), 'getpaid_admin_subscription_update_metabox', get_current_screen(), 'side' ); |
|
103 | 103 | |
104 | - $subscription_id = $sub->get_id(); |
|
105 | - $subscription_groups = getpaid_get_invoice_subscription_groups( $sub->get_parent_invoice_id() ); |
|
106 | - $subscription_group = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) ); |
|
104 | + $subscription_id = $sub->get_id(); |
|
105 | + $subscription_groups = getpaid_get_invoice_subscription_groups( $sub->get_parent_invoice_id() ); |
|
106 | + $subscription_group = wp_list_filter( $subscription_groups, compact( 'subscription_id' ) ); |
|
107 | 107 | |
108 | - if ( 1 < count( $subscription_groups ) ) { |
|
109 | - add_meta_box( 'getpaid_admin_subscription_related_subscriptions_metabox', __( 'Related Subscriptions', 'invoicing' ), 'getpaid_admin_subscription_related_subscriptions_metabox', get_current_screen(), 'advanced' ); |
|
110 | - } |
|
108 | + if ( 1 < count( $subscription_groups ) ) { |
|
109 | + add_meta_box( 'getpaid_admin_subscription_related_subscriptions_metabox', __( 'Related Subscriptions', 'invoicing' ), 'getpaid_admin_subscription_related_subscriptions_metabox', get_current_screen(), 'advanced' ); |
|
110 | + } |
|
111 | 111 | |
112 | - if ( ! empty( $subscription_group ) ) { |
|
113 | - add_meta_box( 'getpaid_admin_subscription_item_details_metabox', __( 'Subscription Items', 'invoicing' ), 'getpaid_admin_subscription_item_details_metabox', get_current_screen(), 'normal', 'low' ); |
|
114 | - } |
|
112 | + if ( ! empty( $subscription_group ) ) { |
|
113 | + add_meta_box( 'getpaid_admin_subscription_item_details_metabox', __( 'Subscription Items', 'invoicing' ), 'getpaid_admin_subscription_item_details_metabox', get_current_screen(), 'normal', 'low' ); |
|
114 | + } |
|
115 | 115 | |
116 | - add_meta_box( 'getpaid_admin_subscription_invoice_details_metabox', __( 'Related Invoices', 'invoicing' ), 'getpaid_admin_subscription_invoice_details_metabox', get_current_screen(), 'advanced' ); |
|
116 | + add_meta_box( 'getpaid_admin_subscription_invoice_details_metabox', __( 'Related Invoices', 'invoicing' ), 'getpaid_admin_subscription_invoice_details_metabox', get_current_screen(), 'advanced' ); |
|
117 | 117 | |
118 | - do_action( 'getpaid_admin_single_subscription_register_metabox', $sub ); |
|
118 | + do_action( 'getpaid_admin_single_subscription_register_metabox', $sub ); |
|
119 | 119 | |
120 | - ?> |
|
120 | + ?> |
|
121 | 121 | |
122 | 122 | <form method="post" action="<?php echo esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $sub->get_id() ) ) ); ?>"> |
123 | 123 | |
@@ -157,44 +157,44 @@ discard block |
||
157 | 157 | */ |
158 | 158 | function getpaid_admin_subscription_details_metabox( $sub ) { |
159 | 159 | |
160 | - // Subscription items. |
|
161 | - $subscription_group = getpaid_get_invoice_subscription_group( $sub->get_parent_invoice_id(), $sub->get_id() ); |
|
162 | - $items_count = empty( $subscription_group ) ? 1 : count( $subscription_group['items'] ); |
|
163 | - |
|
164 | - // Prepare subscription detail columns. |
|
165 | - $fields = apply_filters( |
|
166 | - 'getpaid_subscription_admin_page_fields', |
|
167 | - array( |
|
168 | - 'subscription' => __( 'Subscription', 'invoicing' ), |
|
169 | - 'customer' => __( 'Customer', 'invoicing' ), |
|
170 | - 'amount' => __( 'Amount', 'invoicing' ), |
|
171 | - 'start_date' => __( 'Start Date', 'invoicing' ), |
|
172 | - 'renews_on' => __( 'Next Payment', 'invoicing' ), |
|
173 | - 'renewals' => __( 'Payments', 'invoicing' ), |
|
174 | - 'item' => _n( 'Item', 'Items', $items_count, 'invoicing' ), |
|
175 | - 'gateway' => __( 'Payment Method', 'invoicing' ), |
|
176 | - 'profile_id' => __( 'Profile ID', 'invoicing' ), |
|
177 | - 'status' => __( 'Status', 'invoicing' ), |
|
178 | - ) |
|
179 | - ); |
|
180 | - |
|
181 | - if ( ! $sub->is_active() ) { |
|
182 | - |
|
183 | - if ( isset( $fields['renews_on'] ) ) { |
|
184 | - unset( $fields['renews_on'] ); |
|
185 | - } |
|
186 | - |
|
187 | - if ( isset( $fields['gateway'] ) ) { |
|
188 | - unset( $fields['gateway'] ); |
|
189 | - } |
|
160 | + // Subscription items. |
|
161 | + $subscription_group = getpaid_get_invoice_subscription_group( $sub->get_parent_invoice_id(), $sub->get_id() ); |
|
162 | + $items_count = empty( $subscription_group ) ? 1 : count( $subscription_group['items'] ); |
|
163 | + |
|
164 | + // Prepare subscription detail columns. |
|
165 | + $fields = apply_filters( |
|
166 | + 'getpaid_subscription_admin_page_fields', |
|
167 | + array( |
|
168 | + 'subscription' => __( 'Subscription', 'invoicing' ), |
|
169 | + 'customer' => __( 'Customer', 'invoicing' ), |
|
170 | + 'amount' => __( 'Amount', 'invoicing' ), |
|
171 | + 'start_date' => __( 'Start Date', 'invoicing' ), |
|
172 | + 'renews_on' => __( 'Next Payment', 'invoicing' ), |
|
173 | + 'renewals' => __( 'Payments', 'invoicing' ), |
|
174 | + 'item' => _n( 'Item', 'Items', $items_count, 'invoicing' ), |
|
175 | + 'gateway' => __( 'Payment Method', 'invoicing' ), |
|
176 | + 'profile_id' => __( 'Profile ID', 'invoicing' ), |
|
177 | + 'status' => __( 'Status', 'invoicing' ), |
|
178 | + ) |
|
179 | + ); |
|
180 | + |
|
181 | + if ( ! $sub->is_active() ) { |
|
182 | + |
|
183 | + if ( isset( $fields['renews_on'] ) ) { |
|
184 | + unset( $fields['renews_on'] ); |
|
185 | + } |
|
186 | + |
|
187 | + if ( isset( $fields['gateway'] ) ) { |
|
188 | + unset( $fields['gateway'] ); |
|
189 | + } |
|
190 | 190 | } |
191 | 191 | |
192 | - $profile_id = $sub->get_profile_id(); |
|
193 | - if ( empty( $profile_id ) && isset( $fields['profile_id'] ) ) { |
|
194 | - unset( $fields['profile_id'] ); |
|
195 | - } |
|
192 | + $profile_id = $sub->get_profile_id(); |
|
193 | + if ( empty( $profile_id ) && isset( $fields['profile_id'] ) ) { |
|
194 | + unset( $fields['profile_id'] ); |
|
195 | + } |
|
196 | 196 | |
197 | - ?> |
|
197 | + ?> |
|
198 | 198 | |
199 | 199 | <table class="table table-borderless" style="font-size: 14px;"> |
200 | 200 | <tbody> |
@@ -228,20 +228,20 @@ discard block |
||
228 | 228 | */ |
229 | 229 | function getpaid_admin_subscription_metabox_display_customer( $subscription ) { |
230 | 230 | |
231 | - $username = __( '(Missing User)', 'invoicing' ); |
|
231 | + $username = __( '(Missing User)', 'invoicing' ); |
|
232 | 232 | |
233 | - $user = get_userdata( $subscription->get_customer_id() ); |
|
234 | - if ( $user ) { |
|
233 | + $user = get_userdata( $subscription->get_customer_id() ); |
|
234 | + if ( $user ) { |
|
235 | 235 | |
236 | - $username = sprintf( |
|
237 | - '<a href="user-edit.php?user_id=%s">%s</a>', |
|
238 | - absint( $user->ID ), |
|
239 | - ! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email ) |
|
240 | - ); |
|
236 | + $username = sprintf( |
|
237 | + '<a href="user-edit.php?user_id=%s">%s</a>', |
|
238 | + absint( $user->ID ), |
|
239 | + ! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email ) |
|
240 | + ); |
|
241 | 241 | |
242 | - } |
|
242 | + } |
|
243 | 243 | |
244 | - echo wp_kses_post( $username ); |
|
244 | + echo wp_kses_post( $username ); |
|
245 | 245 | } |
246 | 246 | add_action( 'getpaid_subscription_admin_display_customer', 'getpaid_admin_subscription_metabox_display_customer' ); |
247 | 247 | |
@@ -251,8 +251,8 @@ discard block |
||
251 | 251 | * @param WPInv_Subscription $subscription |
252 | 252 | */ |
253 | 253 | function getpaid_admin_subscription_metabox_display_amount( $subscription ) { |
254 | - $amount = getpaid_get_formatted_subscription_amount( $subscription ); |
|
255 | - echo wp_kses_post( "<span>$amount</span>" ); |
|
254 | + $amount = getpaid_get_formatted_subscription_amount( $subscription ); |
|
255 | + echo wp_kses_post( "<span>$amount</span>" ); |
|
256 | 256 | } |
257 | 257 | add_action( 'getpaid_subscription_admin_display_amount', 'getpaid_admin_subscription_metabox_display_amount' ); |
258 | 258 | |
@@ -263,11 +263,11 @@ discard block |
||
263 | 263 | */ |
264 | 264 | function getpaid_admin_subscription_metabox_display_id( $subscription ) { |
265 | 265 | |
266 | - printf( |
|
267 | - '<a href="%s">#%s</a>', |
|
268 | - esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $subscription->get_id() ) ) ), |
|
269 | - absint( $subscription->get_id() ) |
|
270 | - ); |
|
266 | + printf( |
|
267 | + '<a href="%s">#%s</a>', |
|
268 | + esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $subscription->get_id() ) ) ), |
|
269 | + absint( $subscription->get_id() ) |
|
270 | + ); |
|
271 | 271 | |
272 | 272 | } |
273 | 273 | add_action( 'getpaid_subscription_admin_display_subscription', 'getpaid_admin_subscription_metabox_display_id' ); |
@@ -278,7 +278,7 @@ discard block |
||
278 | 278 | * @param WPInv_Subscription $subscription |
279 | 279 | */ |
280 | 280 | function getpaid_admin_subscription_metabox_display_start_date( $subscription ) { |
281 | - echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) ); |
|
281 | + echo esc_html( getpaid_format_date_value( $subscription->get_date_created() ) ); |
|
282 | 282 | } |
283 | 283 | add_action( 'getpaid_subscription_admin_display_start_date', 'getpaid_admin_subscription_metabox_display_start_date' ); |
284 | 284 | |
@@ -288,7 +288,7 @@ discard block |
||
288 | 288 | * @param WPInv_Subscription $subscription |
289 | 289 | */ |
290 | 290 | function getpaid_admin_subscription_metabox_display_renews_on( $subscription ) { |
291 | - echo esc_html( getpaid_format_date_value( $subscription->get_expiration() ) ); |
|
291 | + echo esc_html( getpaid_format_date_value( $subscription->get_expiration() ) ); |
|
292 | 292 | } |
293 | 293 | add_action( 'getpaid_subscription_admin_display_renews_on', 'getpaid_admin_subscription_metabox_display_renews_on' ); |
294 | 294 | |
@@ -298,8 +298,8 @@ discard block |
||
298 | 298 | * @param WPInv_Subscription $subscription |
299 | 299 | */ |
300 | 300 | function getpaid_admin_subscription_metabox_display_renewals( $subscription ) { |
301 | - $max_bills = $subscription->get_bill_times(); |
|
302 | - echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '∞' : (int) $max_bills ); |
|
301 | + $max_bills = $subscription->get_bill_times(); |
|
302 | + echo ( (int) $subscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '∞' : (int) $max_bills ); |
|
303 | 303 | } |
304 | 304 | add_action( 'getpaid_subscription_admin_display_renewals', 'getpaid_admin_subscription_metabox_display_renewals' ); |
305 | 305 | /** |
@@ -310,13 +310,13 @@ discard block |
||
310 | 310 | */ |
311 | 311 | function getpaid_admin_subscription_metabox_display_item( $subscription, $subscription_group = false ) { |
312 | 312 | |
313 | - if ( empty( $subscription_group ) ) { |
|
314 | - echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) ); |
|
315 | - return; |
|
316 | - } |
|
313 | + if ( empty( $subscription_group ) ) { |
|
314 | + echo wp_kses_post( WPInv_Subscriptions_List_Table::generate_item_markup( $subscription->get_product_id() ) ); |
|
315 | + return; |
|
316 | + } |
|
317 | 317 | |
318 | - $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
319 | - echo wp_kses_post( implode( ' | ', $markup ) ); |
|
318 | + $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
319 | + echo wp_kses_post( implode( ' | ', $markup ) ); |
|
320 | 320 | |
321 | 321 | } |
322 | 322 | add_action( 'getpaid_subscription_admin_display_item', 'getpaid_admin_subscription_metabox_display_item', 10, 2 ); |
@@ -328,13 +328,13 @@ discard block |
||
328 | 328 | */ |
329 | 329 | function getpaid_admin_subscription_metabox_display_gateway( $subscription ) { |
330 | 330 | |
331 | - $gateway = $subscription->get_gateway(); |
|
331 | + $gateway = $subscription->get_gateway(); |
|
332 | 332 | |
333 | - if ( ! empty( $gateway ) ) { |
|
334 | - echo esc_html( wpinv_get_gateway_admin_label( $gateway ) ); |
|
335 | - } else { |
|
336 | - echo '—'; |
|
337 | - } |
|
333 | + if ( ! empty( $gateway ) ) { |
|
334 | + echo esc_html( wpinv_get_gateway_admin_label( $gateway ) ); |
|
335 | + } else { |
|
336 | + echo '—'; |
|
337 | + } |
|
338 | 338 | |
339 | 339 | } |
340 | 340 | add_action( 'getpaid_subscription_admin_display_gateway', 'getpaid_admin_subscription_metabox_display_gateway' ); |
@@ -345,7 +345,7 @@ discard block |
||
345 | 345 | * @param WPInv_Subscription $subscription |
346 | 346 | */ |
347 | 347 | function getpaid_admin_subscription_metabox_display_status( $subscription ) { |
348 | - echo wp_kses_post( $subscription->get_status_label_html() ); |
|
348 | + echo wp_kses_post( $subscription->get_status_label_html() ); |
|
349 | 349 | } |
350 | 350 | add_action( 'getpaid_subscription_admin_display_status', 'getpaid_admin_subscription_metabox_display_status' ); |
351 | 351 | |
@@ -356,27 +356,27 @@ discard block |
||
356 | 356 | */ |
357 | 357 | function getpaid_admin_subscription_metabox_display_profile_id( $subscription ) { |
358 | 358 | |
359 | - $profile_id = $subscription->get_profile_id(); |
|
360 | - |
|
361 | - aui()->input( |
|
362 | - array( |
|
363 | - 'type' => 'text', |
|
364 | - 'id' => 'wpinv_subscription_profile_id', |
|
365 | - 'name' => 'wpinv_subscription_profile_id', |
|
366 | - 'label' => __( 'Profile Id', 'invoicing' ), |
|
367 | - 'label_type' => 'hidden', |
|
368 | - 'placeholder' => __( 'Profile Id', 'invoicing' ), |
|
369 | - 'value' => esc_attr( $profile_id ), |
|
370 | - 'input_group_right' => '', |
|
371 | - 'no_wrap' => true, |
|
372 | - ), |
|
373 | - true |
|
374 | - ); |
|
375 | - |
|
376 | - $url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $subscription ); |
|
377 | - if ( ! empty( $url ) ) { |
|
378 | - echo ' <a href="' . esc_url_raw( $url ) . '" title="' . esc_attr__( 'View in Gateway', 'invoicing' ) . '" target="_blank"><i class="fas fa-external-link-alt fa-xs fa-fw align-top"></i></a>'; |
|
379 | - } |
|
359 | + $profile_id = $subscription->get_profile_id(); |
|
360 | + |
|
361 | + aui()->input( |
|
362 | + array( |
|
363 | + 'type' => 'text', |
|
364 | + 'id' => 'wpinv_subscription_profile_id', |
|
365 | + 'name' => 'wpinv_subscription_profile_id', |
|
366 | + 'label' => __( 'Profile Id', 'invoicing' ), |
|
367 | + 'label_type' => 'hidden', |
|
368 | + 'placeholder' => __( 'Profile Id', 'invoicing' ), |
|
369 | + 'value' => esc_attr( $profile_id ), |
|
370 | + 'input_group_right' => '', |
|
371 | + 'no_wrap' => true, |
|
372 | + ), |
|
373 | + true |
|
374 | + ); |
|
375 | + |
|
376 | + $url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $subscription ); |
|
377 | + if ( ! empty( $url ) ) { |
|
378 | + echo ' <a href="' . esc_url_raw( $url ) . '" title="' . esc_attr__( 'View in Gateway', 'invoicing' ) . '" target="_blank"><i class="fas fa-external-link-alt fa-xs fa-fw align-top"></i></a>'; |
|
379 | + } |
|
380 | 380 | |
381 | 381 | } |
382 | 382 | add_action( 'getpaid_subscription_admin_display_profile_id', 'getpaid_admin_subscription_metabox_display_profile_id' ); |
@@ -388,40 +388,40 @@ discard block |
||
388 | 388 | */ |
389 | 389 | function getpaid_admin_subscription_update_metabox( $subscription ) { |
390 | 390 | |
391 | - ?> |
|
391 | + ?> |
|
392 | 392 | <div class="mt-3"> |
393 | 393 | |
394 | 394 | <?php |
395 | - aui()->select( |
|
396 | - array( |
|
397 | - 'options' => getpaid_get_subscription_statuses(), |
|
398 | - 'name' => 'subscription_status', |
|
399 | - 'id' => 'subscription_status_update_select', |
|
400 | - 'required' => true, |
|
401 | - 'no_wrap' => false, |
|
402 | - 'label' => __( 'Subscription Status', 'invoicing' ), |
|
403 | - 'help_text' => __( 'Updating the status will trigger related actions and hooks', 'invoicing' ), |
|
404 | - 'select2' => true, |
|
405 | - 'value' => $subscription->get_status( 'edit' ), |
|
406 | - ), |
|
407 | - true |
|
408 | - ); |
|
409 | - ?> |
|
395 | + aui()->select( |
|
396 | + array( |
|
397 | + 'options' => getpaid_get_subscription_statuses(), |
|
398 | + 'name' => 'subscription_status', |
|
399 | + 'id' => 'subscription_status_update_select', |
|
400 | + 'required' => true, |
|
401 | + 'no_wrap' => false, |
|
402 | + 'label' => __( 'Subscription Status', 'invoicing' ), |
|
403 | + 'help_text' => __( 'Updating the status will trigger related actions and hooks', 'invoicing' ), |
|
404 | + 'select2' => true, |
|
405 | + 'value' => $subscription->get_status( 'edit' ), |
|
406 | + ), |
|
407 | + true |
|
408 | + ); |
|
409 | + ?> |
|
410 | 410 | |
411 | 411 | <div class="mt-2 px-3 py-2 bg-light border-top" style="margin: -12px;"> |
412 | 412 | |
413 | 413 | <?php |
414 | - submit_button( __( 'Update', 'invoicing' ), 'primary', 'submit', false ); |
|
414 | + submit_button( __( 'Update', 'invoicing' ), 'primary', 'submit', false ); |
|
415 | 415 | |
416 | - $url = wp_nonce_url( add_query_arg( 'getpaid-admin-action', 'subscription_manual_renew' ), 'getpaid-nonce', 'getpaid-nonce' ); |
|
417 | - $anchor = __( 'Renew Subscription', 'invoicing' ); |
|
418 | - $title = esc_attr__( 'Are you sure you want to extend the subscription and generate a new invoice that will be automatically marked as paid?', 'invoicing' ); |
|
416 | + $url = wp_nonce_url( add_query_arg( 'getpaid-admin-action', 'subscription_manual_renew' ), 'getpaid-nonce', 'getpaid-nonce' ); |
|
417 | + $anchor = __( 'Renew Subscription', 'invoicing' ); |
|
418 | + $title = esc_attr__( 'Are you sure you want to extend the subscription and generate a new invoice that will be automatically marked as paid?', 'invoicing' ); |
|
419 | 419 | |
420 | - if ( $subscription->is_active() ) { |
|
421 | - echo "<a href='" . esc_url( $url ) . "' class='float-right text-muted' onclick='return confirm(\"" . esc_attr( $title ) . "\")'>" . esc_html( $anchor ) . "</a>"; |
|
422 | - } |
|
420 | + if ( $subscription->is_active() ) { |
|
421 | + echo "<a href='" . esc_url( $url ) . "' class='float-right text-muted' onclick='return confirm(\"" . esc_attr( $title ) . "\")'>" . esc_html( $anchor ) . "</a>"; |
|
422 | + } |
|
423 | 423 | |
424 | - echo '</div></div>'; |
|
424 | + echo '</div></div>'; |
|
425 | 425 | } |
426 | 426 | |
427 | 427 | /** |
@@ -432,33 +432,33 @@ discard block |
||
432 | 432 | */ |
433 | 433 | function getpaid_admin_subscription_invoice_details_metabox( $subscription, $strict = true ) { |
434 | 434 | |
435 | - $columns = apply_filters( |
|
436 | - 'getpaid_subscription_related_invoices_columns', |
|
437 | - array( |
|
438 | - 'invoice' => __( 'Invoice', 'invoicing' ), |
|
439 | - 'relationship' => __( 'Relationship', 'invoicing' ), |
|
440 | - 'date' => __( 'Date', 'invoicing' ), |
|
441 | - 'status' => __( 'Status', 'invoicing' ), |
|
442 | - 'total' => __( 'Total', 'invoicing' ), |
|
443 | - ), |
|
444 | - $subscription |
|
445 | - ); |
|
446 | - |
|
447 | - // Prepare the invoices. |
|
448 | - $payments = $subscription->get_child_payments( ! is_admin() ); |
|
449 | - $parent = $subscription->get_parent_invoice(); |
|
450 | - |
|
451 | - if ( $parent->exists() ) { |
|
452 | - $payments = array_merge( array( $parent ), $payments ); |
|
453 | - } |
|
454 | - |
|
455 | - $table_class = 'w-100 bg-white'; |
|
456 | - |
|
457 | - if ( ! is_admin() ) { |
|
458 | - $table_class = 'table table-bordered'; |
|
459 | - } |
|
460 | - |
|
461 | - ?> |
|
435 | + $columns = apply_filters( |
|
436 | + 'getpaid_subscription_related_invoices_columns', |
|
437 | + array( |
|
438 | + 'invoice' => __( 'Invoice', 'invoicing' ), |
|
439 | + 'relationship' => __( 'Relationship', 'invoicing' ), |
|
440 | + 'date' => __( 'Date', 'invoicing' ), |
|
441 | + 'status' => __( 'Status', 'invoicing' ), |
|
442 | + 'total' => __( 'Total', 'invoicing' ), |
|
443 | + ), |
|
444 | + $subscription |
|
445 | + ); |
|
446 | + |
|
447 | + // Prepare the invoices. |
|
448 | + $payments = $subscription->get_child_payments( ! is_admin() ); |
|
449 | + $parent = $subscription->get_parent_invoice(); |
|
450 | + |
|
451 | + if ( $parent->exists() ) { |
|
452 | + $payments = array_merge( array( $parent ), $payments ); |
|
453 | + } |
|
454 | + |
|
455 | + $table_class = 'w-100 bg-white'; |
|
456 | + |
|
457 | + if ( ! is_admin() ) { |
|
458 | + $table_class = 'table table-bordered'; |
|
459 | + } |
|
460 | + |
|
461 | + ?> |
|
462 | 462 | <div class="m-0" style="overflow: auto;"> |
463 | 463 | |
464 | 464 | <table class="<?php echo esc_attr( $table_class ); ?>"> |
@@ -466,10 +466,10 @@ discard block |
||
466 | 466 | <thead> |
467 | 467 | <tr> |
468 | 468 | <?php |
469 | - foreach ( $columns as $key => $label ) { |
|
470 | - echo "<th class='subscription-invoice-field-" . esc_attr( $key ) . " bg-light p-2 text-left color-dark font-weight-bold'>" . esc_html( $label ) . "</th>"; |
|
471 | - } |
|
472 | - ?> |
|
469 | + foreach ( $columns as $key => $label ) { |
|
470 | + echo "<th class='subscription-invoice-field-" . esc_attr( $key ) . " bg-light p-2 text-left color-dark font-weight-bold'>" . esc_html( $label ) . "</th>"; |
|
471 | + } |
|
472 | + ?> |
|
473 | 473 | </tr> |
474 | 474 | </thead> |
475 | 475 | |
@@ -485,72 +485,72 @@ discard block |
||
485 | 485 | |
486 | 486 | <?php |
487 | 487 | |
488 | - foreach ( $payments as $payment ) : |
|
488 | + foreach ( $payments as $payment ) : |
|
489 | 489 | |
490 | - // Ensure that we have an invoice. |
|
491 | - $payment = new WPInv_Invoice( $payment ); |
|
490 | + // Ensure that we have an invoice. |
|
491 | + $payment = new WPInv_Invoice( $payment ); |
|
492 | 492 | |
493 | - // Abort if the invoice is invalid... |
|
494 | - if ( ! $payment->exists() ) { |
|
495 | - continue; |
|
496 | - } |
|
493 | + // Abort if the invoice is invalid... |
|
494 | + if ( ! $payment->exists() ) { |
|
495 | + continue; |
|
496 | + } |
|
497 | 497 | |
498 | - // ... or belongs to a different subscription. |
|
499 | - if ( $strict && $payment->is_renewal() && $payment->get_subscription_id() && $payment->get_subscription_id() != $subscription->get_id() ) { |
|
500 | - continue; |
|
501 | - } |
|
498 | + // ... or belongs to a different subscription. |
|
499 | + if ( $strict && $payment->is_renewal() && $payment->get_subscription_id() && $payment->get_subscription_id() != $subscription->get_id() ) { |
|
500 | + continue; |
|
501 | + } |
|
502 | 502 | |
503 | - echo '<tr>'; |
|
503 | + echo '<tr>'; |
|
504 | 504 | |
505 | - foreach ( array_keys( $columns ) as $key ) { |
|
505 | + foreach ( array_keys( $columns ) as $key ) { |
|
506 | 506 | |
507 | - echo "<td class='p-2 text-left'>"; |
|
507 | + echo "<td class='p-2 text-left'>"; |
|
508 | 508 | |
509 | - switch ( $key ) { |
|
509 | + switch ( $key ) { |
|
510 | 510 | |
511 | - case 'total': |
|
512 | - echo '<strong>'; |
|
513 | - wpinv_the_price( $payment->get_total(), $payment->get_currency() ); |
|
514 | - echo '</strong>'; |
|
515 | - break; |
|
511 | + case 'total': |
|
512 | + echo '<strong>'; |
|
513 | + wpinv_the_price( $payment->get_total(), $payment->get_currency() ); |
|
514 | + echo '</strong>'; |
|
515 | + break; |
|
516 | 516 | |
517 | - case 'relationship': |
|
518 | - echo $payment->is_renewal() ? esc_html__( 'Renewal Invoice', 'invoicing' ) : esc_html__( 'Initial Invoice', 'invoicing' ); |
|
519 | - break; |
|
517 | + case 'relationship': |
|
518 | + echo $payment->is_renewal() ? esc_html__( 'Renewal Invoice', 'invoicing' ) : esc_html__( 'Initial Invoice', 'invoicing' ); |
|
519 | + break; |
|
520 | 520 | |
521 | - case 'date': |
|
522 | - echo esc_html( getpaid_format_date_value( $payment->get_date_created() ) ); |
|
523 | - break; |
|
521 | + case 'date': |
|
522 | + echo esc_html( getpaid_format_date_value( $payment->get_date_created() ) ); |
|
523 | + break; |
|
524 | 524 | |
525 | - case 'status': |
|
526 | - $status = $payment->get_status_nicename(); |
|
527 | - if ( is_admin() ) { |
|
528 | - $status = $payment->get_status_label_html(); |
|
529 | - } |
|
525 | + case 'status': |
|
526 | + $status = $payment->get_status_nicename(); |
|
527 | + if ( is_admin() ) { |
|
528 | + $status = $payment->get_status_label_html(); |
|
529 | + } |
|
530 | 530 | |
531 | - echo wp_kses_post( $status ); |
|
532 | - break; |
|
531 | + echo wp_kses_post( $status ); |
|
532 | + break; |
|
533 | 533 | |
534 | - case 'invoice': |
|
535 | - $link = esc_url( get_edit_post_link( $payment->get_id() ) ); |
|
534 | + case 'invoice': |
|
535 | + $link = esc_url( get_edit_post_link( $payment->get_id() ) ); |
|
536 | 536 | |
537 | - if ( ! is_admin() ) { |
|
538 | - $link = esc_url( $payment->get_view_url() ); |
|
539 | - } |
|
537 | + if ( ! is_admin() ) { |
|
538 | + $link = esc_url( $payment->get_view_url() ); |
|
539 | + } |
|
540 | 540 | |
541 | - $invoice = esc_html( $payment->get_number() ); |
|
542 | - echo wp_kses_post( "<a href='$link'>$invoice</a>" ); |
|
543 | - break; |
|
544 | - } |
|
541 | + $invoice = esc_html( $payment->get_number() ); |
|
542 | + echo wp_kses_post( "<a href='$link'>$invoice</a>" ); |
|
543 | + break; |
|
544 | + } |
|
545 | 545 | |
546 | - echo '</td>'; |
|
546 | + echo '</td>'; |
|
547 | 547 | |
548 | - } |
|
548 | + } |
|
549 | 549 | |
550 | - echo '</tr>'; |
|
550 | + echo '</tr>'; |
|
551 | 551 | |
552 | - endforeach; |
|
553 | - ?> |
|
552 | + endforeach; |
|
553 | + ?> |
|
554 | 554 | |
555 | 555 | </tbody> |
556 | 556 | |
@@ -568,42 +568,42 @@ discard block |
||
568 | 568 | */ |
569 | 569 | function getpaid_admin_subscription_item_details_metabox( $subscription ) { |
570 | 570 | |
571 | - // Fetch the subscription group. |
|
572 | - $subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_payment_id(), $subscription->get_id() ); |
|
571 | + // Fetch the subscription group. |
|
572 | + $subscription_group = getpaid_get_invoice_subscription_group( $subscription->get_parent_payment_id(), $subscription->get_id() ); |
|
573 | 573 | |
574 | - if ( empty( $subscription_group ) || empty( $subscription_group['items'] ) ) { |
|
575 | - return; |
|
576 | - } |
|
574 | + if ( empty( $subscription_group ) || empty( $subscription_group['items'] ) ) { |
|
575 | + return; |
|
576 | + } |
|
577 | 577 | |
578 | - // Prepare table columns. |
|
579 | - $columns = apply_filters( |
|
580 | - 'getpaid_subscription_item_details_columns', |
|
581 | - array( |
|
582 | - 'item_name' => __( 'Item', 'invoicing' ), |
|
583 | - 'price' => __( 'Price', 'invoicing' ), |
|
584 | - 'tax' => __( 'Tax', 'invoicing' ), |
|
585 | - 'discount' => __( 'Discount', 'invoicing' ), |
|
586 | - //'initial' => __( 'Initial Amount', 'invoicing' ), |
|
587 | - 'recurring' => __( 'Subtotal', 'invoicing' ), |
|
588 | - ), |
|
589 | - $subscription |
|
590 | - ); |
|
578 | + // Prepare table columns. |
|
579 | + $columns = apply_filters( |
|
580 | + 'getpaid_subscription_item_details_columns', |
|
581 | + array( |
|
582 | + 'item_name' => __( 'Item', 'invoicing' ), |
|
583 | + 'price' => __( 'Price', 'invoicing' ), |
|
584 | + 'tax' => __( 'Tax', 'invoicing' ), |
|
585 | + 'discount' => __( 'Discount', 'invoicing' ), |
|
586 | + //'initial' => __( 'Initial Amount', 'invoicing' ), |
|
587 | + 'recurring' => __( 'Subtotal', 'invoicing' ), |
|
588 | + ), |
|
589 | + $subscription |
|
590 | + ); |
|
591 | 591 | |
592 | - // Prepare the invoices. |
|
592 | + // Prepare the invoices. |
|
593 | 593 | |
594 | - $invoice = $subscription->get_parent_invoice(); |
|
594 | + $invoice = $subscription->get_parent_invoice(); |
|
595 | 595 | |
596 | - if ( ( ! wpinv_use_taxes() || ! $invoice->is_taxable() ) && isset( $columns['tax'] ) ) { |
|
597 | - unset( $columns['tax'] ); |
|
598 | - } |
|
596 | + if ( ( ! wpinv_use_taxes() || ! $invoice->is_taxable() ) && isset( $columns['tax'] ) ) { |
|
597 | + unset( $columns['tax'] ); |
|
598 | + } |
|
599 | 599 | |
600 | - $table_class = 'w-100 bg-white'; |
|
600 | + $table_class = 'w-100 bg-white'; |
|
601 | 601 | |
602 | - if ( ! is_admin() ) { |
|
603 | - $table_class = 'table table-bordered'; |
|
604 | - } |
|
602 | + if ( ! is_admin() ) { |
|
603 | + $table_class = 'table table-bordered'; |
|
604 | + } |
|
605 | 605 | |
606 | - ?> |
|
606 | + ?> |
|
607 | 607 | <div class="m-0" style="overflow: auto;"> |
608 | 608 | |
609 | 609 | <table class="<?php echo esc_attr( $table_class ); ?>"> |
@@ -612,10 +612,10 @@ discard block |
||
612 | 612 | <tr> |
613 | 613 | <?php |
614 | 614 | |
615 | - foreach ( $columns as $key => $label ) { |
|
616 | - echo "<th class='subscription-item-field-" . esc_attr( $key ) . " bg-light p-2 text-left color-dark font-weight-bold'>" . esc_html( $label ) . "</th>"; |
|
617 | - } |
|
618 | - ?> |
|
615 | + foreach ( $columns as $key => $label ) { |
|
616 | + echo "<th class='subscription-item-field-" . esc_attr( $key ) . " bg-light p-2 text-left color-dark font-weight-bold'>" . esc_html( $label ) . "</th>"; |
|
617 | + } |
|
618 | + ?> |
|
619 | 619 | </tr> |
620 | 620 | </thead> |
621 | 621 | |
@@ -623,106 +623,106 @@ discard block |
||
623 | 623 | |
624 | 624 | <?php |
625 | 625 | |
626 | - foreach ( $subscription_group['items'] as $subscription_group_item ) : |
|
626 | + foreach ( $subscription_group['items'] as $subscription_group_item ) : |
|
627 | 627 | |
628 | - echo '<tr>'; |
|
628 | + echo '<tr>'; |
|
629 | 629 | |
630 | - foreach ( array_keys( $columns ) as $key ) { |
|
630 | + foreach ( array_keys( $columns ) as $key ) { |
|
631 | 631 | |
632 | - $class = 'text-left'; |
|
632 | + $class = 'text-left'; |
|
633 | 633 | |
634 | - echo "<td class='p-2 text-left'>"; |
|
634 | + echo "<td class='p-2 text-left'>"; |
|
635 | 635 | |
636 | - switch ( $key ) { |
|
636 | + switch ( $key ) { |
|
637 | 637 | |
638 | - case 'item_name': |
|
639 | - $item_name = get_the_title( $subscription_group_item['item_id'] ); |
|
640 | - $item_name = empty( $item_name ) ? $subscription_group_item['item_name'] : $item_name; |
|
638 | + case 'item_name': |
|
639 | + $item_name = get_the_title( $subscription_group_item['item_id'] ); |
|
640 | + $item_name = empty( $item_name ) ? $subscription_group_item['item_name'] : $item_name; |
|
641 | 641 | |
642 | - if ( $invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity'] ) { |
|
643 | - echo esc_html( $item_name ); |
|
644 | - } else { |
|
645 | - printf( '%1$s x %2$d', esc_html( $item_name ), (float) $subscription_group_item['quantity'] ); |
|
646 | - } |
|
642 | + if ( $invoice->get_template() == 'amount' || 1 == (float) $subscription_group_item['quantity'] ) { |
|
643 | + echo esc_html( $item_name ); |
|
644 | + } else { |
|
645 | + printf( '%1$s x %2$d', esc_html( $item_name ), (float) $subscription_group_item['quantity'] ); |
|
646 | + } |
|
647 | 647 | |
648 | - break; |
|
648 | + break; |
|
649 | 649 | |
650 | - case 'price': |
|
651 | - wpinv_the_price( $subscription_group_item['item_price'], $invoice->get_currency() ); |
|
652 | - break; |
|
650 | + case 'price': |
|
651 | + wpinv_the_price( $subscription_group_item['item_price'], $invoice->get_currency() ); |
|
652 | + break; |
|
653 | 653 | |
654 | - case 'tax': |
|
655 | - wpinv_the_price( $subscription_group_item['tax'], $invoice->get_currency() ); |
|
656 | - break; |
|
654 | + case 'tax': |
|
655 | + wpinv_the_price( $subscription_group_item['tax'], $invoice->get_currency() ); |
|
656 | + break; |
|
657 | 657 | |
658 | - case 'discount': |
|
659 | - wpinv_the_price( $subscription_group_item['discount'], $invoice->get_currency() ); |
|
660 | - break; |
|
658 | + case 'discount': |
|
659 | + wpinv_the_price( $subscription_group_item['discount'], $invoice->get_currency() ); |
|
660 | + break; |
|
661 | 661 | |
662 | - case 'initial': |
|
663 | - wpinv_the_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ); |
|
664 | - break; |
|
662 | + case 'initial': |
|
663 | + wpinv_the_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ); |
|
664 | + break; |
|
665 | 665 | |
666 | - case 'recurring': |
|
667 | - echo wp_kses_post( '<strong>' . wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ) . '</strong>' ); |
|
668 | - break; |
|
666 | + case 'recurring': |
|
667 | + echo wp_kses_post( '<strong>' . wpinv_price( $subscription_group_item['price'] * $subscription_group_item['quantity'], $invoice->get_currency() ) . '</strong>' ); |
|
668 | + break; |
|
669 | 669 | |
670 | - } |
|
670 | + } |
|
671 | 671 | |
672 | - echo '</td>'; |
|
672 | + echo '</td>'; |
|
673 | 673 | |
674 | - } |
|
674 | + } |
|
675 | 675 | |
676 | - echo '</tr>'; |
|
676 | + echo '</tr>'; |
|
677 | 677 | |
678 | - endforeach; |
|
678 | + endforeach; |
|
679 | 679 | |
680 | - foreach ( $subscription_group['fees'] as $subscription_group_fee ) : |
|
680 | + foreach ( $subscription_group['fees'] as $subscription_group_fee ) : |
|
681 | 681 | |
682 | - echo '<tr>'; |
|
682 | + echo '<tr>'; |
|
683 | 683 | |
684 | - foreach ( array_keys( $columns ) as $key ) { |
|
684 | + foreach ( array_keys( $columns ) as $key ) { |
|
685 | 685 | |
686 | - $class = 'text-left'; |
|
686 | + $class = 'text-left'; |
|
687 | 687 | |
688 | - echo "<td class='p-2 text-left'>"; |
|
688 | + echo "<td class='p-2 text-left'>"; |
|
689 | 689 | |
690 | - switch ( $key ) { |
|
690 | + switch ( $key ) { |
|
691 | 691 | |
692 | - case 'item_name': |
|
693 | - echo esc_html( $subscription_group_fee['name'] ); |
|
694 | - break; |
|
692 | + case 'item_name': |
|
693 | + echo esc_html( $subscription_group_fee['name'] ); |
|
694 | + break; |
|
695 | 695 | |
696 | - case 'price': |
|
697 | - wpinv_the_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() ); |
|
698 | - break; |
|
696 | + case 'price': |
|
697 | + wpinv_the_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() ); |
|
698 | + break; |
|
699 | 699 | |
700 | - case 'tax': |
|
701 | - echo '—'; |
|
702 | - break; |
|
700 | + case 'tax': |
|
701 | + echo '—'; |
|
702 | + break; |
|
703 | 703 | |
704 | - case 'discount': |
|
705 | - echo '—'; |
|
706 | - break; |
|
704 | + case 'discount': |
|
705 | + echo '—'; |
|
706 | + break; |
|
707 | 707 | |
708 | - case 'initial': |
|
709 | - wpinv_the_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() ); |
|
710 | - break; |
|
708 | + case 'initial': |
|
709 | + wpinv_the_price( $subscription_group_fee['initial_fee'], $invoice->get_currency() ); |
|
710 | + break; |
|
711 | 711 | |
712 | - case 'recurring': |
|
713 | - echo wp_kses_post( '<strong>' . wpinv_price( $subscription_group_fee['recurring_fee'], $invoice->get_currency() ) . '</strong>' ); |
|
714 | - break; |
|
712 | + case 'recurring': |
|
713 | + echo wp_kses_post( '<strong>' . wpinv_price( $subscription_group_fee['recurring_fee'], $invoice->get_currency() ) . '</strong>' ); |
|
714 | + break; |
|
715 | 715 | |
716 | - } |
|
716 | + } |
|
717 | 717 | |
718 | - echo '</td>'; |
|
718 | + echo '</td>'; |
|
719 | 719 | |
720 | - } |
|
720 | + } |
|
721 | 721 | |
722 | - echo '</tr>'; |
|
722 | + echo '</tr>'; |
|
723 | 723 | |
724 | - endforeach; |
|
725 | - ?> |
|
724 | + endforeach; |
|
725 | + ?> |
|
726 | 726 | |
727 | 727 | </tbody> |
728 | 728 | |
@@ -741,38 +741,38 @@ discard block |
||
741 | 741 | */ |
742 | 742 | function getpaid_admin_subscription_related_subscriptions_metabox( $subscription, $skip_current = true ) { |
743 | 743 | |
744 | - // Fetch the subscription groups. |
|
745 | - $subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_payment_id() ); |
|
746 | - |
|
747 | - if ( empty( $subscription_groups ) ) { |
|
748 | - return; |
|
749 | - } |
|
750 | - |
|
751 | - // Prepare table columns. |
|
752 | - $columns = apply_filters( |
|
753 | - 'getpaid_subscription_related_subscriptions_columns', |
|
754 | - array( |
|
755 | - 'subscription' => __( 'Subscription', 'invoicing' ), |
|
756 | - 'start_date' => __( 'Start Date', 'invoicing' ), |
|
757 | - 'renewal_date' => __( 'Next Payment', 'invoicing' ), |
|
758 | - 'renewals' => __( 'Payments', 'invoicing' ), |
|
759 | - 'item' => __( 'Items', 'invoicing' ), |
|
760 | - 'status' => __( 'Status', 'invoicing' ), |
|
761 | - ), |
|
762 | - $subscription |
|
763 | - ); |
|
764 | - |
|
765 | - if ( $subscription->get_status() == 'pending' ) { |
|
766 | - unset( $columns['start_date'], $columns['renewal_date'] ); |
|
767 | - } |
|
768 | - |
|
769 | - $table_class = 'w-100 bg-white'; |
|
770 | - |
|
771 | - if ( ! is_admin() ) { |
|
772 | - $table_class = 'table table-bordered'; |
|
773 | - } |
|
774 | - |
|
775 | - ?> |
|
744 | + // Fetch the subscription groups. |
|
745 | + $subscription_groups = getpaid_get_invoice_subscription_groups( $subscription->get_parent_payment_id() ); |
|
746 | + |
|
747 | + if ( empty( $subscription_groups ) ) { |
|
748 | + return; |
|
749 | + } |
|
750 | + |
|
751 | + // Prepare table columns. |
|
752 | + $columns = apply_filters( |
|
753 | + 'getpaid_subscription_related_subscriptions_columns', |
|
754 | + array( |
|
755 | + 'subscription' => __( 'Subscription', 'invoicing' ), |
|
756 | + 'start_date' => __( 'Start Date', 'invoicing' ), |
|
757 | + 'renewal_date' => __( 'Next Payment', 'invoicing' ), |
|
758 | + 'renewals' => __( 'Payments', 'invoicing' ), |
|
759 | + 'item' => __( 'Items', 'invoicing' ), |
|
760 | + 'status' => __( 'Status', 'invoicing' ), |
|
761 | + ), |
|
762 | + $subscription |
|
763 | + ); |
|
764 | + |
|
765 | + if ( $subscription->get_status() == 'pending' ) { |
|
766 | + unset( $columns['start_date'], $columns['renewal_date'] ); |
|
767 | + } |
|
768 | + |
|
769 | + $table_class = 'w-100 bg-white'; |
|
770 | + |
|
771 | + if ( ! is_admin() ) { |
|
772 | + $table_class = 'table table-bordered'; |
|
773 | + } |
|
774 | + |
|
775 | + ?> |
|
776 | 776 | <div class="m-0" style="overflow: auto;"> |
777 | 777 | |
778 | 778 | <table class="<?php echo esc_attr( $table_class ); ?>"> |
@@ -781,10 +781,10 @@ discard block |
||
781 | 781 | <tr> |
782 | 782 | <?php |
783 | 783 | |
784 | - foreach ( $columns as $key => $label ) { |
|
785 | - echo "<th class='related-subscription-field-" . esc_attr( $key ) . " bg-light p-2 text-left color-dark font-weight-bold'>" . esc_html( $label ) . "</th>"; |
|
786 | - } |
|
787 | - ?> |
|
784 | + foreach ( $columns as $key => $label ) { |
|
785 | + echo "<th class='related-subscription-field-" . esc_attr( $key ) . " bg-light p-2 text-left color-dark font-weight-bold'>" . esc_html( $label ) . "</th>"; |
|
786 | + } |
|
787 | + ?> |
|
788 | 788 | </tr> |
789 | 789 | </thead> |
790 | 790 | |
@@ -792,74 +792,74 @@ discard block |
||
792 | 792 | |
793 | 793 | <?php |
794 | 794 | |
795 | - foreach ( $subscription_groups as $subscription_group ) : |
|
795 | + foreach ( $subscription_groups as $subscription_group ) : |
|
796 | 796 | |
797 | - // Do not list current subscription. |
|
798 | - if ( $skip_current && (int) $subscription_group['subscription_id'] === $subscription->get_id() ) { |
|
799 | - continue; |
|
800 | - } |
|
797 | + // Do not list current subscription. |
|
798 | + if ( $skip_current && (int) $subscription_group['subscription_id'] === $subscription->get_id() ) { |
|
799 | + continue; |
|
800 | + } |
|
801 | 801 | |
802 | - // Ensure the subscription exists. |
|
803 | - $_suscription = new WPInv_Subscription( $subscription_group['subscription_id'] ); |
|
802 | + // Ensure the subscription exists. |
|
803 | + $_suscription = new WPInv_Subscription( $subscription_group['subscription_id'] ); |
|
804 | 804 | |
805 | - if ( ! $_suscription->exists() ) { |
|
806 | - continue; |
|
807 | - } |
|
805 | + if ( ! $_suscription->exists() ) { |
|
806 | + continue; |
|
807 | + } |
|
808 | 808 | |
809 | - echo '<tr>'; |
|
809 | + echo '<tr>'; |
|
810 | 810 | |
811 | - foreach ( array_keys( $columns ) as $key ) { |
|
811 | + foreach ( array_keys( $columns ) as $key ) { |
|
812 | 812 | |
813 | - $class = 'text-left'; |
|
813 | + $class = 'text-left'; |
|
814 | 814 | |
815 | - echo "<td class='p-2 text-left'>"; |
|
815 | + echo "<td class='p-2 text-left'>"; |
|
816 | 816 | |
817 | - switch ( $key ) { |
|
817 | + switch ( $key ) { |
|
818 | 818 | |
819 | - case 'status': |
|
820 | - echo wp_kses_post( $_suscription->get_status_label_html() ); |
|
821 | - break; |
|
819 | + case 'status': |
|
820 | + echo wp_kses_post( $_suscription->get_status_label_html() ); |
|
821 | + break; |
|
822 | 822 | |
823 | - case 'item': |
|
824 | - $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
825 | - echo wp_kses_post( implode( ' | ', $markup ) ); |
|
826 | - break; |
|
823 | + case 'item': |
|
824 | + $markup = array_map( array( 'WPInv_Subscriptions_List_Table', 'generate_item_markup' ), array_keys( $subscription_group['items'] ) ); |
|
825 | + echo wp_kses_post( implode( ' | ', $markup ) ); |
|
826 | + break; |
|
827 | 827 | |
828 | - case 'renewals': |
|
829 | - $max_bills = $_suscription->get_bill_times(); |
|
830 | - echo ( (int) $_suscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '∞' : (int) $max_bills ); |
|
831 | - break; |
|
828 | + case 'renewals': |
|
829 | + $max_bills = $_suscription->get_bill_times(); |
|
830 | + echo ( (int) $_suscription->get_times_billed() ) . ' / ' . ( empty( $max_bills ) ? '∞' : (int) $max_bills ); |
|
831 | + break; |
|
832 | 832 | |
833 | - case 'renewal_date': |
|
834 | - echo $_suscription->is_active() ? esc_html( getpaid_format_date_value( $_suscription->get_expiration() ) ) : '—'; |
|
835 | - break; |
|
833 | + case 'renewal_date': |
|
834 | + echo $_suscription->is_active() ? esc_html( getpaid_format_date_value( $_suscription->get_expiration() ) ) : '—'; |
|
835 | + break; |
|
836 | 836 | |
837 | - case 'start_date': |
|
838 | - echo 'pending' == $_suscription->get_status() ? '—' : esc_html( getpaid_format_date_value( $_suscription->get_date_created() ) ); |
|
839 | - break; |
|
837 | + case 'start_date': |
|
838 | + echo 'pending' == $_suscription->get_status() ? '—' : esc_html( getpaid_format_date_value( $_suscription->get_date_created() ) ); |
|
839 | + break; |
|
840 | 840 | |
841 | - case 'subscription': |
|
842 | - $url = is_admin() ? admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $_suscription->get_id() ) ) : $_suscription->get_view_url(); |
|
843 | - printf( |
|
841 | + case 'subscription': |
|
842 | + $url = is_admin() ? admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $_suscription->get_id() ) ) : $_suscription->get_view_url(); |
|
843 | + printf( |
|
844 | 844 | '%1$s#%2$s%3$s', |
845 | 845 | '<a href="' . esc_url( $url ) . '">', |
846 | 846 | '<strong>' . intval( $_suscription->get_id() ) . '</strong>', |
847 | - '</a>' |
|
847 | + '</a>' |
|
848 | 848 | ); |
849 | 849 | |
850 | - echo wp_kses_post( WPInv_Subscriptions_List_Table::column_amount( $_suscription ) ); |
|
851 | - break; |
|
850 | + echo wp_kses_post( WPInv_Subscriptions_List_Table::column_amount( $_suscription ) ); |
|
851 | + break; |
|
852 | 852 | |
853 | - } |
|
853 | + } |
|
854 | 854 | |
855 | - echo '</td>'; |
|
855 | + echo '</td>'; |
|
856 | 856 | |
857 | - } |
|
857 | + } |
|
858 | 858 | |
859 | - echo '</tr>'; |
|
859 | + echo '</tr>'; |
|
860 | 860 | |
861 | - endforeach; |
|
862 | - ?> |
|
861 | + endforeach; |
|
862 | + ?> |
|
863 | 863 | |
864 | 864 | </tbody> |
865 | 865 |
@@ -192,13 +192,13 @@ discard block |
||
192 | 192 | $name = isset( $option['name'] ) ? $option['name'] : ''; |
193 | 193 | $cb = "wpinv_{$option['type']}_callback"; |
194 | 194 | $section = "wpinv_settings_{$tab}_$section"; |
195 | - $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page']; |
|
195 | + $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page']; |
|
196 | 196 | |
197 | - if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) { |
|
198 | - $tip = wpinv_clean( $option['desc'] ); |
|
199 | - $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>"; |
|
200 | - unset( $option['desc'] ); |
|
201 | - } |
|
197 | + if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) { |
|
198 | + $tip = wpinv_clean( $option['desc'] ); |
|
199 | + $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>"; |
|
200 | + unset( $option['desc'] ); |
|
201 | + } |
|
202 | 202 | |
203 | 203 | // Loop through all tabs. |
204 | 204 | add_settings_field( |
@@ -225,9 +225,9 @@ discard block |
||
225 | 225 | 'faux' => isset( $option['faux'] ) ? $option['faux'] : false, |
226 | 226 | 'onchange' => isset( $option['onchange'] ) ? $option['onchange'] : '', |
227 | 227 | 'custom' => isset( $option['custom'] ) ? $option['custom'] : '', |
228 | - 'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '', |
|
229 | - 'class' => isset( $option['class'] ) ? $option['class'] : '', |
|
230 | - 'style' => isset( $option['style'] ) ? $option['style'] : '', |
|
228 | + 'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '', |
|
229 | + 'class' => isset( $option['class'] ) ? $option['class'] : '', |
|
230 | + 'style' => isset( $option['style'] ) ? $option['style'] : '', |
|
231 | 231 | 'cols' => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50, |
232 | 232 | 'rows' => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5, |
233 | 233 | ) |
@@ -241,7 +241,7 @@ discard block |
||
241 | 241 | * @return array |
242 | 242 | */ |
243 | 243 | function wpinv_get_registered_settings() { |
244 | - return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) ); |
|
244 | + return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) ); |
|
245 | 245 | } |
246 | 246 | |
247 | 247 | /** |
@@ -260,18 +260,18 @@ discard block |
||
260 | 260 | */ |
261 | 261 | function wpinv_settings_sanitize( $input = array() ) { |
262 | 262 | |
263 | - $wpinv_options = wpinv_get_options(); |
|
264 | - $raw_referrer = wp_get_raw_referer(); |
|
263 | + $wpinv_options = wpinv_get_options(); |
|
264 | + $raw_referrer = wp_get_raw_referer(); |
|
265 | 265 | |
266 | 266 | if ( empty( $raw_referrer ) ) { |
267 | - return array_merge( $wpinv_options, $input ); |
|
267 | + return array_merge( $wpinv_options, $input ); |
|
268 | 268 | } |
269 | 269 | |
270 | 270 | wp_parse_str( $raw_referrer, $referrer ); |
271 | 271 | |
272 | - if ( in_array( 'gp-setup', $referrer ) ) { |
|
273 | - return array_merge( $wpinv_options, $input ); |
|
274 | - } |
|
272 | + if ( in_array( 'gp-setup', $referrer ) ) { |
|
273 | + return array_merge( $wpinv_options, $input ); |
|
274 | + } |
|
275 | 275 | |
276 | 276 | $settings = wpinv_get_registered_settings(); |
277 | 277 | $tab = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general'; |
@@ -293,10 +293,10 @@ discard block |
||
293 | 293 | } |
294 | 294 | |
295 | 295 | // General filter |
296 | - $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key ); |
|
296 | + $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key ); |
|
297 | 297 | |
298 | - // Key specific filter. |
|
299 | - $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] ); |
|
298 | + // Key specific filter. |
|
299 | + $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] ); |
|
300 | 300 | } |
301 | 301 | |
302 | 302 | // Loop through the whitelist and unset any that are empty for the tab being saved |
@@ -339,14 +339,14 @@ discard block |
||
339 | 339 | |
340 | 340 | foreach ( $new_rates as $rate ) { |
341 | 341 | |
342 | - $rate['rate'] = wpinv_sanitize_amount( $rate['rate'] ); |
|
343 | - $rate['name'] = sanitize_text_field( $rate['name'] ); |
|
344 | - $rate['state'] = sanitize_text_field( $rate['state'] ); |
|
345 | - $rate['country'] = sanitize_text_field( $rate['country'] ); |
|
346 | - $rate['global'] = empty( $rate['state'] ); |
|
347 | - $tax_rates[] = $rate; |
|
342 | + $rate['rate'] = wpinv_sanitize_amount( $rate['rate'] ); |
|
343 | + $rate['name'] = sanitize_text_field( $rate['name'] ); |
|
344 | + $rate['state'] = sanitize_text_field( $rate['state'] ); |
|
345 | + $rate['country'] = sanitize_text_field( $rate['country'] ); |
|
346 | + $rate['global'] = empty( $rate['state'] ); |
|
347 | + $tax_rates[] = $rate; |
|
348 | 348 | |
349 | - } |
|
349 | + } |
|
350 | 350 | |
351 | 351 | update_option( 'wpinv_tax_rates', $tax_rates ); |
352 | 352 | |
@@ -359,11 +359,11 @@ discard block |
||
359 | 359 | $tabs['general'] = __( 'General', 'invoicing' ); |
360 | 360 | $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' ); |
361 | 361 | $tabs['taxes'] = __( 'Taxes', 'invoicing' ); |
362 | - $tabs['emails'] = __( 'Emails', 'invoicing' ); |
|
362 | + $tabs['emails'] = __( 'Emails', 'invoicing' ); |
|
363 | 363 | |
364 | - if ( count( getpaid_get_integration_settings() ) > 0 ) { |
|
365 | - $tabs['integrations'] = __( 'Integrations', 'invoicing' ); |
|
366 | - } |
|
364 | + if ( count( getpaid_get_integration_settings() ) > 0 ) { |
|
365 | + $tabs['integrations'] = __( 'Integrations', 'invoicing' ); |
|
366 | + } |
|
367 | 367 | |
368 | 368 | $tabs['privacy'] = __( 'Privacy', 'invoicing' ); |
369 | 369 | $tabs['misc'] = __( 'Misc', 'invoicing' ); |
@@ -394,52 +394,52 @@ discard block |
||
394 | 394 | 'general' => apply_filters( |
395 | 395 | 'wpinv_settings_sections_general', |
396 | 396 | array( |
397 | - 'main' => __( 'General Settings', 'invoicing' ), |
|
398 | - 'page_section' => __( 'Page Settings', 'invoicing' ), |
|
399 | - 'currency_section' => __( 'Currency Settings', 'invoicing' ), |
|
400 | - 'labels' => __( 'Label Texts', 'invoicing' ), |
|
397 | + 'main' => __( 'General Settings', 'invoicing' ), |
|
398 | + 'page_section' => __( 'Page Settings', 'invoicing' ), |
|
399 | + 'currency_section' => __( 'Currency Settings', 'invoicing' ), |
|
400 | + 'labels' => __( 'Label Texts', 'invoicing' ), |
|
401 | 401 | ) |
402 | 402 | ), |
403 | 403 | 'gateways' => apply_filters( |
404 | 404 | 'wpinv_settings_sections_gateways', |
405 | 405 | array( |
406 | - 'main' => __( 'Gateway Settings', 'invoicing' ), |
|
406 | + 'main' => __( 'Gateway Settings', 'invoicing' ), |
|
407 | 407 | ) |
408 | 408 | ), |
409 | 409 | 'taxes' => apply_filters( |
410 | 410 | 'wpinv_settings_sections_taxes', |
411 | 411 | array( |
412 | - 'main' => __( 'Tax Settings', 'invoicing' ), |
|
413 | - 'rates' => __( 'Tax Rates', 'invoicing' ), |
|
414 | - 'vat' => __( 'EU VAT Settings', 'invoicing' ), |
|
412 | + 'main' => __( 'Tax Settings', 'invoicing' ), |
|
413 | + 'rates' => __( 'Tax Rates', 'invoicing' ), |
|
414 | + 'vat' => __( 'EU VAT Settings', 'invoicing' ), |
|
415 | 415 | ) |
416 | 416 | ), |
417 | 417 | 'emails' => apply_filters( |
418 | 418 | 'wpinv_settings_sections_emails', |
419 | 419 | array( |
420 | - 'main' => __( 'Email Settings', 'invoicing' ), |
|
420 | + 'main' => __( 'Email Settings', 'invoicing' ), |
|
421 | 421 | ) |
422 | 422 | ), |
423 | 423 | |
424 | - 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ), |
|
424 | + 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ), |
|
425 | 425 | |
426 | 426 | 'privacy' => apply_filters( |
427 | 427 | 'wpinv_settings_sections_privacy', |
428 | 428 | array( |
429 | - 'main' => __( 'Privacy policy', 'invoicing' ), |
|
429 | + 'main' => __( 'Privacy policy', 'invoicing' ), |
|
430 | 430 | ) |
431 | 431 | ), |
432 | 432 | 'misc' => apply_filters( |
433 | 433 | 'wpinv_settings_sections_misc', |
434 | 434 | array( |
435 | - 'main' => __( 'Miscellaneous', 'invoicing' ), |
|
436 | - 'custom-css' => __( 'Custom CSS', 'invoicing' ), |
|
435 | + 'main' => __( 'Miscellaneous', 'invoicing' ), |
|
436 | + 'custom-css' => __( 'Custom CSS', 'invoicing' ), |
|
437 | 437 | ) |
438 | 438 | ), |
439 | 439 | 'tools' => apply_filters( |
440 | 440 | 'wpinv_settings_sections_tools', |
441 | 441 | array( |
442 | - 'main' => __( 'Diagnostic Tools', 'invoicing' ), |
|
442 | + 'main' => __( 'Diagnostic Tools', 'invoicing' ), |
|
443 | 443 | ) |
444 | 444 | ), |
445 | 445 | ); |
@@ -450,46 +450,46 @@ discard block |
||
450 | 450 | } |
451 | 451 | |
452 | 452 | function wpinv_get_pages( $with_slug = false, $default_label = null ) { |
453 | - $pages_options = array(); |
|
453 | + $pages_options = array(); |
|
454 | 454 | |
455 | - if ( $default_label !== null && $default_label !== false ) { |
|
456 | - $pages_options = array( '' => $default_label ); // Blank option |
|
457 | - } |
|
455 | + if ( $default_label !== null && $default_label !== false ) { |
|
456 | + $pages_options = array( '' => $default_label ); // Blank option |
|
457 | + } |
|
458 | 458 | |
459 | - $pages = get_pages(); |
|
460 | - if ( $pages ) { |
|
461 | - foreach ( $pages as $page ) { |
|
462 | - $title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title; |
|
459 | + $pages = get_pages(); |
|
460 | + if ( $pages ) { |
|
461 | + foreach ( $pages as $page ) { |
|
462 | + $title = $with_slug ? $page->post_title . ' (' . $page->post_name . ')' : $page->post_title; |
|
463 | 463 | $pages_options[ $page->ID ] = $title; |
464 | - } |
|
465 | - } |
|
464 | + } |
|
465 | + } |
|
466 | 466 | |
467 | - return $pages_options; |
|
467 | + return $pages_options; |
|
468 | 468 | } |
469 | 469 | |
470 | 470 | function wpinv_header_callback( $args ) { |
471 | - if ( ! empty( $args['desc'] ) ) { |
|
471 | + if ( ! empty( $args['desc'] ) ) { |
|
472 | 472 | echo wp_kses_post( $args['desc'] ); |
473 | 473 | } |
474 | 474 | } |
475 | 475 | |
476 | 476 | function wpinv_hidden_callback( $args ) { |
477 | 477 | |
478 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
479 | - $value = wpinv_get_option( $args['id'], $std ); |
|
478 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
479 | + $value = wpinv_get_option( $args['id'], $std ); |
|
480 | 480 | |
481 | - if ( isset( $args['set_value'] ) ) { |
|
482 | - $value = $args['set_value']; |
|
483 | - } |
|
481 | + if ( isset( $args['set_value'] ) ) { |
|
482 | + $value = $args['set_value']; |
|
483 | + } |
|
484 | 484 | |
485 | - if ( isset( $args['faux'] ) && true === $args['faux'] ) { |
|
486 | - $args['readonly'] = true; |
|
487 | - $name = ''; |
|
488 | - } else { |
|
489 | - $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']'; |
|
490 | - } |
|
485 | + if ( isset( $args['faux'] ) && true === $args['faux'] ) { |
|
486 | + $args['readonly'] = true; |
|
487 | + $name = ''; |
|
488 | + } else { |
|
489 | + $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']'; |
|
490 | + } |
|
491 | 491 | |
492 | - echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />'; |
|
492 | + echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />'; |
|
493 | 493 | |
494 | 494 | } |
495 | 495 | |
@@ -498,12 +498,12 @@ discard block |
||
498 | 498 | */ |
499 | 499 | function wpinv_checkbox_callback( $args ) { |
500 | 500 | |
501 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
502 | - $std = wpinv_get_option( $args['id'], $std ); |
|
503 | - $id = esc_attr( $args['id'] ); |
|
501 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
502 | + $std = wpinv_get_option( $args['id'], $std ); |
|
503 | + $id = esc_attr( $args['id'] ); |
|
504 | 504 | |
505 | - getpaid_hidden_field( "wpinv_settings[$id]", '0' ); |
|
506 | - ?> |
|
505 | + getpaid_hidden_field( "wpinv_settings[$id]", '0' ); |
|
506 | + ?> |
|
507 | 507 | <fieldset> |
508 | 508 | <label> |
509 | 509 | <input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox"> |
@@ -515,75 +515,75 @@ discard block |
||
515 | 515 | |
516 | 516 | function wpinv_multicheck_callback( $args ) { |
517 | 517 | |
518 | - $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
|
519 | - $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : ''; |
|
518 | + $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
|
519 | + $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : ''; |
|
520 | 520 | |
521 | - if ( ! empty( $args['options'] ) ) { |
|
521 | + if ( ! empty( $args['options'] ) ) { |
|
522 | 522 | |
523 | - $std = isset( $args['std'] ) ? $args['std'] : array(); |
|
524 | - $value = wpinv_get_option( $args['id'], $std ); |
|
523 | + $std = isset( $args['std'] ) ? $args['std'] : array(); |
|
524 | + $value = wpinv_get_option( $args['id'], $std ); |
|
525 | 525 | |
526 | - echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">'; |
|
526 | + echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">'; |
|
527 | 527 | foreach ( $args['options'] as $key => $option ) : |
528 | - $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) ); |
|
529 | - if ( in_array( $sanitize_key, $value ) ) { |
|
530 | - $enabled = $sanitize_key; |
|
531 | - } else { |
|
532 | - $enabled = null; |
|
533 | - } |
|
534 | - echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/> '; |
|
535 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>'; |
|
536 | - endforeach; |
|
537 | - echo '</div>'; |
|
538 | - echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
539 | - } |
|
528 | + $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) ); |
|
529 | + if ( in_array( $sanitize_key, $value ) ) { |
|
530 | + $enabled = $sanitize_key; |
|
531 | + } else { |
|
532 | + $enabled = null; |
|
533 | + } |
|
534 | + echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/> '; |
|
535 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>'; |
|
536 | + endforeach; |
|
537 | + echo '</div>'; |
|
538 | + echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
539 | + } |
|
540 | 540 | } |
541 | 541 | |
542 | 542 | function wpinv_payment_icons_callback( $args ) { |
543 | 543 | |
544 | 544 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
545 | - $value = wpinv_get_option( $args['id'], false ); |
|
545 | + $value = wpinv_get_option( $args['id'], false ); |
|
546 | 546 | |
547 | - if ( ! empty( $args['options'] ) ) { |
|
548 | - foreach ( $args['options'] as $key => $option ) { |
|
547 | + if ( ! empty( $args['options'] ) ) { |
|
548 | + foreach ( $args['options'] as $key => $option ) { |
|
549 | 549 | $sanitize_key = wpinv_sanitize_key( $key ); |
550 | 550 | |
551 | - if ( empty( $value ) ) { |
|
552 | - $enabled = $option; |
|
553 | - } else { |
|
554 | - $enabled = null; |
|
555 | - } |
|
556 | - |
|
557 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">'; |
|
558 | - |
|
559 | - echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/> '; |
|
560 | - |
|
561 | - if ( wpinv_string_is_image_url( $key ) ) { |
|
562 | - echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
563 | - } else { |
|
564 | - $card = strtolower( str_replace( ' ', '', $option ) ); |
|
565 | - |
|
566 | - if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) { |
|
567 | - $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' ); |
|
568 | - } else { |
|
569 | - $image = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false ); |
|
570 | - $content_dir = WP_CONTENT_DIR; |
|
571 | - |
|
572 | - if ( function_exists( 'wp_normalize_path' ) ) { |
|
573 | - // Replaces backslashes with forward slashes for Windows systems |
|
574 | - $image = wp_normalize_path( $image ); |
|
575 | - $content_dir = wp_normalize_path( $content_dir ); |
|
576 | - } |
|
577 | - |
|
578 | - $image = str_replace( $content_dir, content_url(), $image ); |
|
579 | - } |
|
580 | - |
|
581 | - echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
582 | - } |
|
583 | - echo wp_kses_post( $option ) . '</label>'; |
|
584 | - } |
|
585 | - echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
586 | - } |
|
551 | + if ( empty( $value ) ) { |
|
552 | + $enabled = $option; |
|
553 | + } else { |
|
554 | + $enabled = null; |
|
555 | + } |
|
556 | + |
|
557 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">'; |
|
558 | + |
|
559 | + echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/> '; |
|
560 | + |
|
561 | + if ( wpinv_string_is_image_url( $key ) ) { |
|
562 | + echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
563 | + } else { |
|
564 | + $card = strtolower( str_replace( ' ', '', $option ) ); |
|
565 | + |
|
566 | + if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) { |
|
567 | + $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' ); |
|
568 | + } else { |
|
569 | + $image = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false ); |
|
570 | + $content_dir = WP_CONTENT_DIR; |
|
571 | + |
|
572 | + if ( function_exists( 'wp_normalize_path' ) ) { |
|
573 | + // Replaces backslashes with forward slashes for Windows systems |
|
574 | + $image = wp_normalize_path( $image ); |
|
575 | + $content_dir = wp_normalize_path( $content_dir ); |
|
576 | + } |
|
577 | + |
|
578 | + $image = str_replace( $content_dir, content_url(), $image ); |
|
579 | + } |
|
580 | + |
|
581 | + echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
582 | + } |
|
583 | + echo wp_kses_post( $option ) . '</label>'; |
|
584 | + } |
|
585 | + echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
586 | + } |
|
587 | 587 | } |
588 | 588 | |
589 | 589 | /** |
@@ -591,9 +591,9 @@ discard block |
||
591 | 591 | */ |
592 | 592 | function wpinv_radio_callback( $args ) { |
593 | 593 | |
594 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
595 | - $std = wpinv_get_option( $args['id'], $std ); |
|
596 | - ?> |
|
594 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
595 | + $std = wpinv_get_option( $args['id'], $std ); |
|
596 | + ?> |
|
597 | 597 | <fieldset> |
598 | 598 | <ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;"> |
599 | 599 | <?php foreach ( $args['options'] as $key => $option ) : ?> |
@@ -607,7 +607,7 @@ discard block |
||
607 | 607 | </ul> |
608 | 608 | </fieldset> |
609 | 609 | <?php |
610 | - getpaid_settings_description_callback( $args ); |
|
610 | + getpaid_settings_description_callback( $args ); |
|
611 | 611 | } |
612 | 612 | |
613 | 613 | /** |
@@ -615,10 +615,10 @@ discard block |
||
615 | 615 | */ |
616 | 616 | function getpaid_settings_description_callback( $args ) { |
617 | 617 | |
618 | - if ( ! empty( $args['desc'] ) ) { |
|
619 | - $description = $args['desc']; |
|
620 | - echo wp_kses_post( "<p class='description'>$description</p>" ); |
|
621 | - } |
|
618 | + if ( ! empty( $args['desc'] ) ) { |
|
619 | + $description = $args['desc']; |
|
620 | + echo wp_kses_post( "<p class='description'>$description</p>" ); |
|
621 | + } |
|
622 | 622 | |
623 | 623 | } |
624 | 624 | |
@@ -627,7 +627,7 @@ discard block |
||
627 | 627 | */ |
628 | 628 | function wpinv_gateways_callback() { |
629 | 629 | |
630 | - ?> |
|
630 | + ?> |
|
631 | 631 | </td> |
632 | 632 | </tr> |
633 | 633 | <tr class="bsui"> |
@@ -641,26 +641,26 @@ discard block |
||
641 | 641 | |
642 | 642 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
643 | 643 | $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : ''; |
644 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
645 | - $value = wpinv_get_option( $args['id'], $std ); |
|
644 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
645 | + $value = wpinv_get_option( $args['id'], $std ); |
|
646 | 646 | |
647 | - echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >'; |
|
647 | + echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >'; |
|
648 | 648 | |
649 | - foreach ( $args['options'] as $key => $option ) : |
|
649 | + foreach ( $args['options'] as $key => $option ) : |
|
650 | 650 | |
651 | - echo '<option value="' . esc_attr( $key ) . '" '; |
|
651 | + echo '<option value="' . esc_attr( $key ) . '" '; |
|
652 | 652 | |
653 | - if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) { |
|
653 | + if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) { |
|
654 | 654 | selected( $key, $args['selected'] ); |
655 | 655 | } else { |
656 | 656 | selected( $key, $value ); |
657 | 657 | } |
658 | 658 | |
659 | - echo '>' . esc_html( $option['admin_label'] ) . '</option>'; |
|
660 | - endforeach; |
|
659 | + echo '>' . esc_html( $option['admin_label'] ) . '</option>'; |
|
660 | + endforeach; |
|
661 | 661 | |
662 | - echo '</select>'; |
|
663 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
662 | + echo '</select>'; |
|
663 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
664 | 664 | } |
665 | 665 | |
666 | 666 | /** |
@@ -671,38 +671,38 @@ discard block |
||
671 | 671 | */ |
672 | 672 | function wpinv_settings_attrs_helper( $args ) { |
673 | 673 | |
674 | - $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
675 | - $id = esc_attr( $args['id'] ); |
|
676 | - $value = is_scalar( $value ) ? $value : ''; |
|
677 | - |
|
678 | - $attrs = array( |
|
679 | - 'name' => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]", |
|
680 | - 'readonly' => ! empty( $args['faux'] ), |
|
681 | - 'value' => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ), |
|
682 | - 'id' => 'wpinv-settings-' . $args['id'], |
|
683 | - 'style' => $args['style'], |
|
684 | - 'class' => $args['class'], |
|
685 | - 'placeholder' => $args['placeholder'], |
|
686 | - 'data-placeholder' => $args['placeholder'], |
|
687 | - ); |
|
674 | + $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
675 | + $id = esc_attr( $args['id'] ); |
|
676 | + $value = is_scalar( $value ) ? $value : ''; |
|
677 | + |
|
678 | + $attrs = array( |
|
679 | + 'name' => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]", |
|
680 | + 'readonly' => ! empty( $args['faux'] ), |
|
681 | + 'value' => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ), |
|
682 | + 'id' => 'wpinv-settings-' . $args['id'], |
|
683 | + 'style' => $args['style'], |
|
684 | + 'class' => $args['class'], |
|
685 | + 'placeholder' => $args['placeholder'], |
|
686 | + 'data-placeholder' => $args['placeholder'], |
|
687 | + ); |
|
688 | 688 | |
689 | - if ( ! empty( $args['onchange'] ) ) { |
|
690 | - $attrs['onchange'] = $args['onchange']; |
|
691 | - } |
|
689 | + if ( ! empty( $args['onchange'] ) ) { |
|
690 | + $attrs['onchange'] = $args['onchange']; |
|
691 | + } |
|
692 | 692 | |
693 | - foreach ( $attrs as $key => $value ) { |
|
693 | + foreach ( $attrs as $key => $value ) { |
|
694 | 694 | |
695 | - if ( false === $value ) { |
|
696 | - continue; |
|
697 | - } |
|
695 | + if ( false === $value ) { |
|
696 | + continue; |
|
697 | + } |
|
698 | 698 | |
699 | - if ( true === $value ) { |
|
700 | - echo ' ' . esc_attr( $key ); |
|
701 | - } else { |
|
702 | - echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"'; |
|
703 | - } |
|
699 | + if ( true === $value ) { |
|
700 | + echo ' ' . esc_attr( $key ); |
|
701 | + } else { |
|
702 | + echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"'; |
|
703 | + } |
|
704 | 704 | |
705 | - } |
|
705 | + } |
|
706 | 706 | |
707 | 707 | } |
708 | 708 | |
@@ -711,9 +711,9 @@ discard block |
||
711 | 711 | */ |
712 | 712 | function wpinv_text_callback( $args ) { |
713 | 713 | |
714 | - $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
714 | + $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
715 | 715 | |
716 | - ?> |
|
716 | + ?> |
|
717 | 717 | <label style="width: 100%;"> |
718 | 718 | <input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>> |
719 | 719 | <?php echo wp_kses_post( $desc ); ?> |
@@ -727,9 +727,9 @@ discard block |
||
727 | 727 | */ |
728 | 728 | function wpinv_number_callback( $args ) { |
729 | 729 | |
730 | - $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
730 | + $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
731 | 731 | |
732 | - ?> |
|
732 | + ?> |
|
733 | 733 | <label style="width: 100%;"> |
734 | 734 | <input type="number" step="<?php echo floatval( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>> |
735 | 735 | <?php echo wp_kses_post( $desc ); ?> |
@@ -741,34 +741,34 @@ discard block |
||
741 | 741 | function wpinv_textarea_callback( $args ) { |
742 | 742 | |
743 | 743 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
744 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
745 | - $value = wpinv_get_option( $args['id'], $std ); |
|
744 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
745 | + $value = wpinv_get_option( $args['id'], $std ); |
|
746 | 746 | |
747 | 747 | $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
748 | 748 | $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text'; |
749 | 749 | |
750 | - echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
751 | - echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
750 | + echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
751 | + echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
752 | 752 | |
753 | 753 | } |
754 | 754 | |
755 | 755 | function wpinv_password_callback( $args ) { |
756 | 756 | |
757 | 757 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
758 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
759 | - $value = wpinv_get_option( $args['id'], $std ); |
|
758 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
759 | + $value = wpinv_get_option( $args['id'], $std ); |
|
760 | 760 | |
761 | - $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
762 | - echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>'; |
|
763 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
761 | + $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
762 | + echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>'; |
|
763 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
764 | 764 | |
765 | 765 | } |
766 | 766 | |
767 | 767 | function wpinv_missing_callback( $args ) { |
768 | - printf( |
|
769 | - esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ), |
|
770 | - '<strong>' . esc_html( $args['id'] ) . '</strong>' |
|
771 | - ); |
|
768 | + printf( |
|
769 | + esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ), |
|
770 | + '<strong>' . esc_html( $args['id'] ) . '</strong>' |
|
771 | + ); |
|
772 | 772 | } |
773 | 773 | |
774 | 774 | /** |
@@ -776,13 +776,13 @@ discard block |
||
776 | 776 | */ |
777 | 777 | function wpinv_select_callback( $args ) { |
778 | 778 | |
779 | - $desc = wp_kses_post( $args['desc'] ); |
|
780 | - $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
781 | - $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
782 | - $value = wpinv_get_option( $args['id'], $value ); |
|
783 | - $rand = uniqid( 'random_id' ); |
|
779 | + $desc = wp_kses_post( $args['desc'] ); |
|
780 | + $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
781 | + $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
782 | + $value = wpinv_get_option( $args['id'], $value ); |
|
783 | + $rand = uniqid( 'random_id' ); |
|
784 | 784 | |
785 | - ?> |
|
785 | + ?> |
|
786 | 786 | <label style="width: 100%;"> |
787 | 787 | <select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true"> |
788 | 788 | <?php foreach ( $args['options'] as $option => $name ) : ?> |
@@ -815,50 +815,50 @@ discard block |
||
815 | 815 | function wpinv_color_select_callback( $args ) { |
816 | 816 | |
817 | 817 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
818 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
819 | - $value = wpinv_get_option( $args['id'], $std ); |
|
818 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
819 | + $value = wpinv_get_option( $args['id'], $std ); |
|
820 | 820 | |
821 | - echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>'; |
|
821 | + echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>'; |
|
822 | 822 | |
823 | - foreach ( $args['options'] as $option => $color ) { |
|
824 | - echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>'; |
|
825 | - } |
|
823 | + foreach ( $args['options'] as $option => $color ) { |
|
824 | + echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>'; |
|
825 | + } |
|
826 | 826 | |
827 | - echo '</select>'; |
|
828 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
827 | + echo '</select>'; |
|
828 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
829 | 829 | |
830 | 830 | } |
831 | 831 | |
832 | 832 | function wpinv_rich_editor_callback( $args ) { |
833 | - global $wp_version; |
|
833 | + global $wp_version; |
|
834 | 834 | |
835 | 835 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
836 | 836 | |
837 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
838 | - $value = wpinv_get_option( $args['id'], $std ); |
|
837 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
838 | + $value = wpinv_get_option( $args['id'], $std ); |
|
839 | 839 | |
840 | - if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) { |
|
841 | - $value = $std; |
|
842 | - } |
|
840 | + if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) { |
|
841 | + $value = $std; |
|
842 | + } |
|
843 | 843 | |
844 | - $rows = isset( $args['size'] ) ? $args['size'] : 20; |
|
844 | + $rows = isset( $args['size'] ) ? $args['size'] : 20; |
|
845 | 845 | |
846 | - echo '<div class="getpaid-settings-editor-input">'; |
|
847 | - if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) { |
|
848 | - wp_editor( |
|
846 | + echo '<div class="getpaid-settings-editor-input">'; |
|
847 | + if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) { |
|
848 | + wp_editor( |
|
849 | 849 | stripslashes( $value ), |
850 | 850 | 'wpinv_settings_' . esc_attr( $args['id'] ), |
851 | 851 | array( |
852 | - 'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']', |
|
853 | - 'textarea_rows' => absint( $rows ), |
|
854 | - 'media_buttons' => false, |
|
852 | + 'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']', |
|
853 | + 'textarea_rows' => absint( $rows ), |
|
854 | + 'media_buttons' => false, |
|
855 | 855 | ) |
856 | 856 | ); |
857 | - } else { |
|
858 | - echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
859 | - } |
|
857 | + } else { |
|
858 | + echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
859 | + } |
|
860 | 860 | |
861 | - echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
861 | + echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
862 | 862 | |
863 | 863 | } |
864 | 864 | |
@@ -866,51 +866,51 @@ discard block |
||
866 | 866 | |
867 | 867 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
868 | 868 | |
869 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
870 | - $value = wpinv_get_option( $args['id'], $std ); |
|
869 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
870 | + $value = wpinv_get_option( $args['id'], $std ); |
|
871 | 871 | |
872 | - $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
873 | - echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>'; |
|
874 | - echo '<span> <input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>'; |
|
875 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
872 | + $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
873 | + echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>'; |
|
874 | + echo '<span> <input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>'; |
|
875 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
876 | 876 | |
877 | 877 | } |
878 | 878 | |
879 | 879 | function wpinv_color_callback( $args ) { |
880 | 880 | |
881 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
882 | - $value = wpinv_get_option( $args['id'], $std ); |
|
881 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
882 | + $value = wpinv_get_option( $args['id'], $std ); |
|
883 | 883 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
884 | 884 | |
885 | - echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />'; |
|
886 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
885 | + echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />'; |
|
886 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
887 | 887 | |
888 | 888 | } |
889 | 889 | |
890 | 890 | function wpinv_country_states_callback( $args ) { |
891 | 891 | |
892 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
893 | - $value = wpinv_get_option( $args['id'], $std ); |
|
892 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
893 | + $value = wpinv_get_option( $args['id'], $std ); |
|
894 | 894 | |
895 | 895 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
896 | 896 | |
897 | - if ( isset( $args['placeholder'] ) ) { |
|
898 | - $placeholder = $args['placeholder']; |
|
899 | - } else { |
|
900 | - $placeholder = ''; |
|
901 | - } |
|
897 | + if ( isset( $args['placeholder'] ) ) { |
|
898 | + $placeholder = $args['placeholder']; |
|
899 | + } else { |
|
900 | + $placeholder = ''; |
|
901 | + } |
|
902 | 902 | |
903 | - $states = wpinv_get_country_states(); |
|
903 | + $states = wpinv_get_country_states(); |
|
904 | 904 | |
905 | - $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2'; |
|
906 | - echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>'; |
|
905 | + $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2'; |
|
906 | + echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>'; |
|
907 | 907 | |
908 | - foreach ( $states as $option => $name ) { |
|
909 | - echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>'; |
|
910 | - } |
|
908 | + foreach ( $states as $option => $name ) { |
|
909 | + echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>'; |
|
910 | + } |
|
911 | 911 | |
912 | - echo '</select>'; |
|
913 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
912 | + echo '</select>'; |
|
913 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
914 | 914 | |
915 | 915 | } |
916 | 916 | |
@@ -919,7 +919,7 @@ discard block |
||
919 | 919 | */ |
920 | 920 | function wpinv_tax_rates_callback() { |
921 | 921 | |
922 | - ?> |
|
922 | + ?> |
|
923 | 923 | </td> |
924 | 924 | </tr> |
925 | 925 | <tr class="bsui"> |
@@ -935,9 +935,9 @@ discard block |
||
935 | 935 | */ |
936 | 936 | function wpinv_tax_rate_callback( $tax_rate, $key ) { |
937 | 937 | |
938 | - $key = sanitize_key( $key ); |
|
939 | - $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate']; |
|
940 | - include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php'; |
|
938 | + $key = sanitize_key( $key ); |
|
939 | + $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate']; |
|
940 | + include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php'; |
|
941 | 941 | |
942 | 942 | } |
943 | 943 | |
@@ -969,14 +969,14 @@ discard block |
||
969 | 969 | <td> |
970 | 970 | <a href=" |
971 | 971 | <?php |
972 | - echo esc_url( |
|
973 | - wp_nonce_url( |
|
974 | - add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ), |
|
975 | - 'getpaid-nonce', |
|
976 | - 'getpaid-nonce' |
|
977 | - ) |
|
978 | - ); |
|
979 | - ?> |
|
972 | + echo esc_url( |
|
973 | + wp_nonce_url( |
|
974 | + add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ), |
|
975 | + 'getpaid-nonce', |
|
976 | + 'getpaid-nonce' |
|
977 | + ) |
|
978 | + ); |
|
979 | + ?> |
|
980 | 980 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
981 | 981 | </td> |
982 | 982 | </tr> |
@@ -988,14 +988,14 @@ discard block |
||
988 | 988 | <td> |
989 | 989 | <a href=" |
990 | 990 | <?php |
991 | - echo esc_url( |
|
992 | - wp_nonce_url( |
|
993 | - add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ), |
|
994 | - 'getpaid-nonce', |
|
995 | - 'getpaid-nonce' |
|
996 | - ) |
|
997 | - ); |
|
998 | - ?> |
|
991 | + echo esc_url( |
|
992 | + wp_nonce_url( |
|
993 | + add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ), |
|
994 | + 'getpaid-nonce', |
|
995 | + 'getpaid-nonce' |
|
996 | + ) |
|
997 | + ); |
|
998 | + ?> |
|
999 | 999 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1000 | 1000 | </td> |
1001 | 1001 | </tr> |
@@ -1007,14 +1007,14 @@ discard block |
||
1007 | 1007 | <td> |
1008 | 1008 | <a href=" |
1009 | 1009 | <?php |
1010 | - echo esc_url( |
|
1011 | - wp_nonce_url( |
|
1012 | - add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ), |
|
1013 | - 'getpaid-nonce', |
|
1014 | - 'getpaid-nonce' |
|
1015 | - ) |
|
1016 | - ); |
|
1017 | - ?> |
|
1010 | + echo esc_url( |
|
1011 | + wp_nonce_url( |
|
1012 | + add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ), |
|
1013 | + 'getpaid-nonce', |
|
1014 | + 'getpaid-nonce' |
|
1015 | + ) |
|
1016 | + ); |
|
1017 | + ?> |
|
1018 | 1018 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1019 | 1019 | </td> |
1020 | 1020 | </tr> |
@@ -1027,14 +1027,14 @@ discard block |
||
1027 | 1027 | <td> |
1028 | 1028 | <a href=" |
1029 | 1029 | <?php |
1030 | - echo esc_url( |
|
1031 | - wp_nonce_url( |
|
1032 | - add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ), |
|
1033 | - 'getpaid-nonce', |
|
1034 | - 'getpaid-nonce' |
|
1035 | - ) |
|
1036 | - ); |
|
1037 | - ?> |
|
1030 | + echo esc_url( |
|
1031 | + wp_nonce_url( |
|
1032 | + add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ), |
|
1033 | + 'getpaid-nonce', |
|
1034 | + 'getpaid-nonce' |
|
1035 | + ) |
|
1036 | + ); |
|
1037 | + ?> |
|
1038 | 1038 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1039 | 1039 | </td> |
1040 | 1040 | </tr> |
@@ -1047,8 +1047,8 @@ discard block |
||
1047 | 1047 | <td> |
1048 | 1048 | <a href=" |
1049 | 1049 | <?php |
1050 | - echo esc_url( admin_url( 'index.php?page=gp-setup' ) ); |
|
1051 | - ?> |
|
1050 | + echo esc_url( admin_url( 'index.php?page=gp-setup' ) ); |
|
1051 | + ?> |
|
1052 | 1052 | " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a> |
1053 | 1053 | </td> |
1054 | 1054 | </tr> |
@@ -1062,19 +1062,19 @@ discard block |
||
1062 | 1062 | |
1063 | 1063 | |
1064 | 1064 | function wpinv_descriptive_text_callback( $args ) { |
1065 | - echo wp_kses_post( $args['desc'] ); |
|
1065 | + echo wp_kses_post( $args['desc'] ); |
|
1066 | 1066 | } |
1067 | 1067 | |
1068 | 1068 | function wpinv_raw_html_callback( $args ) { |
1069 | - echo wp_kses_post( $args['desc'] ); |
|
1069 | + echo wp_kses_post( $args['desc'] ); |
|
1070 | 1070 | } |
1071 | 1071 | |
1072 | 1072 | function wpinv_hook_callback( $args ) { |
1073 | - do_action( 'wpinv_' . $args['id'], $args ); |
|
1073 | + do_action( 'wpinv_' . $args['id'], $args ); |
|
1074 | 1074 | } |
1075 | 1075 | |
1076 | 1076 | function wpinv_set_settings_cap() { |
1077 | - return wpinv_get_capability(); |
|
1077 | + return wpinv_get_capability(); |
|
1078 | 1078 | } |
1079 | 1079 | add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' ); |
1080 | 1080 | |
@@ -1098,15 +1098,15 @@ discard block |
||
1098 | 1098 | */ |
1099 | 1099 | function wpinv_get_merge_tags_help_text( $subscription = false ) { |
1100 | 1100 | |
1101 | - $url = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f'; |
|
1102 | - $link = sprintf( |
|
1103 | - '<strong><a href="%s" target="_blank">%s</a></strong>', |
|
1104 | - $url, |
|
1105 | - esc_html__( 'View available merge tags.', 'wpinv-quotes' ) |
|
1106 | - ); |
|
1101 | + $url = $subscription ? 'https://gist.github.com/picocodes/3d213982d57c34edf7a46fd3f0e8583e' : 'https://gist.github.com/picocodes/43bdc4d4bbba844534b2722e2af0b58f'; |
|
1102 | + $link = sprintf( |
|
1103 | + '<strong><a href="%s" target="_blank">%s</a></strong>', |
|
1104 | + $url, |
|
1105 | + esc_html__( 'View available merge tags.', 'wpinv-quotes' ) |
|
1106 | + ); |
|
1107 | 1107 | |
1108 | - $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' ); |
|
1108 | + $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' ); |
|
1109 | 1109 | |
1110 | - return "$description $link"; |
|
1110 | + return "$description $link"; |
|
1111 | 1111 | |
1112 | 1112 | } |
@@ -126,14 +126,14 @@ |
||
126 | 126 | */ |
127 | 127 | function getpaid_doing_it_wrong( $function, $message, $version ) { |
128 | 128 | |
129 | - $message .= ' Backtrace: ' . wp_debug_backtrace_summary(); |
|
130 | - |
|
131 | - if ( wp_doing_ajax() || defined( 'REST_REQUEST' ) ) { |
|
132 | - do_action( 'doing_it_wrong_run', $function, $message, $version ); |
|
133 | - error_log( "{$function} was called incorrectly. {$message}. This message was added in version {$version}." ); |
|
134 | - } else { |
|
135 | - _doing_it_wrong( esc_html( $function ), wp_kses_post( $message ), esc_html( $version ) ); |
|
136 | - } |
|
129 | + $message .= ' Backtrace: ' . wp_debug_backtrace_summary(); |
|
130 | + |
|
131 | + if ( wp_doing_ajax() || defined( 'REST_REQUEST' ) ) { |
|
132 | + do_action( 'doing_it_wrong_run', $function, $message, $version ); |
|
133 | + error_log( "{$function} was called incorrectly. {$message}. This message was added in version {$version}." ); |
|
134 | + } else { |
|
135 | + _doing_it_wrong( esc_html( $function ), wp_kses_post( $message ), esc_html( $version ) ); |
|
136 | + } |
|
137 | 137 | |
138 | 138 | } |
139 | 139 |
@@ -13,30 +13,30 @@ discard block |
||
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 | - /** |
|
23 | - * An array of features that this gateway supports. |
|
24 | - * |
|
25 | - * @var array |
|
26 | - */ |
|
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
22 | + /** |
|
23 | + * An array of features that this gateway supports. |
|
24 | + * |
|
25 | + * @var array |
|
26 | + */ |
|
27 | + protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
28 | 28 | |
29 | 29 | /** |
30 | - * Payment method order. |
|
31 | - * |
|
32 | - * @var int |
|
33 | - */ |
|
34 | - public $order = 8; |
|
30 | + * Payment method order. |
|
31 | + * |
|
32 | + * @var int |
|
33 | + */ |
|
34 | + public $order = 8; |
|
35 | 35 | |
36 | 36 | /** |
37 | - * Class constructor. |
|
38 | - */ |
|
39 | - public function __construct() { |
|
37 | + * Class constructor. |
|
38 | + */ |
|
39 | + public function __construct() { |
|
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | 42 | $this->title = __( 'Direct bank transfer', 'invoicing' ); |
@@ -44,24 +44,24 @@ discard block |
||
44 | 44 | $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
45 | 45 | $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
46 | 46 | |
47 | - add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | - add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | - add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | - add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | - add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
52 | - add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
47 | + add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) ); |
|
48 | + add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 ); |
|
49 | + add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 ); |
|
50 | + add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 ); |
|
51 | + add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ) ); |
|
52 | + add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
53 | 53 | |
54 | 54 | } |
55 | 55 | |
56 | 56 | /** |
57 | - * Process Payment. |
|
58 | - * |
|
59 | - * @param WPInv_Invoice $invoice Invoice. |
|
60 | - * @param array $submission_data Posted checkout fields. |
|
61 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
62 | - * @return array |
|
63 | - */ |
|
64 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
57 | + * Process Payment. |
|
58 | + * |
|
59 | + * @param WPInv_Invoice $invoice Invoice. |
|
60 | + * @param array $submission_data Posted checkout fields. |
|
61 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
62 | + * @return array |
|
63 | + */ |
|
64 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
65 | 65 | |
66 | 66 | // Add a transaction id. |
67 | 67 | $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) ); |
@@ -82,66 +82,66 @@ discard block |
||
82 | 82 | } |
83 | 83 | |
84 | 84 | /** |
85 | - * Output for the order received page. |
|
86 | - * |
|
87 | - * @param WPInv_Invoice $invoice Invoice. |
|
88 | - */ |
|
89 | - public function thankyou_page( $invoice ) { |
|
85 | + * Output for the order received page. |
|
86 | + * |
|
87 | + * @param WPInv_Invoice $invoice Invoice. |
|
88 | + */ |
|
89 | + public function thankyou_page( $invoice ) { |
|
90 | 90 | |
91 | 91 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
92 | 92 | |
93 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
93 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
94 | 94 | |
95 | 95 | if ( ! empty( $this->instructions ) ) { |
96 | 96 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
97 | - } |
|
97 | + } |
|
98 | 98 | |
99 | - $this->bank_details( $invoice ); |
|
99 | + $this->bank_details( $invoice ); |
|
100 | 100 | |
101 | - echo '</div>'; |
|
101 | + echo '</div>'; |
|
102 | 102 | |
103 | 103 | } |
104 | 104 | |
105 | - } |
|
105 | + } |
|
106 | 106 | |
107 | 107 | /** |
108 | - * Add content to the WPI emails. |
|
109 | - * |
|
110 | - * @param WPInv_Invoice $invoice Invoice. |
|
111 | - * @param string $email_type Email format: plain text or HTML. |
|
112 | - * @param bool $sent_to_admin Sent to admin. |
|
113 | - */ |
|
114 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
108 | + * Add content to the WPI emails. |
|
109 | + * |
|
110 | + * @param WPInv_Invoice $invoice Invoice. |
|
111 | + * @param string $email_type Email format: plain text or HTML. |
|
112 | + * @param bool $sent_to_admin Sent to admin. |
|
113 | + */ |
|
114 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
115 | 115 | |
116 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
116 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
117 | 117 | |
118 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
118 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
119 | 119 | |
120 | - if ( $this->instructions ) { |
|
121 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
120 | + if ( $this->instructions ) { |
|
121 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
122 | 122 | } |
123 | 123 | |
124 | - $this->bank_details( $invoice ); |
|
124 | + $this->bank_details( $invoice ); |
|
125 | 125 | |
126 | - echo '</div>'; |
|
126 | + echo '</div>'; |
|
127 | 127 | |
128 | - } |
|
128 | + } |
|
129 | 129 | |
130 | 130 | } |
131 | 131 | |
132 | 132 | /** |
133 | - * Get bank details and place into a list format. |
|
134 | - * |
|
135 | - * @param WPInv_Invoice $invoice Invoice. |
|
136 | - */ |
|
137 | - protected function bank_details( $invoice ) { |
|
133 | + * Get bank details and place into a list format. |
|
134 | + * |
|
135 | + * @param WPInv_Invoice $invoice Invoice. |
|
136 | + */ |
|
137 | + protected function bank_details( $invoice ) { |
|
138 | 138 | |
139 | - // Get the invoice country and country $locale. |
|
140 | - $country = $invoice->get_country(); |
|
141 | - $locale = $this->get_country_locale(); |
|
139 | + // Get the invoice country and country $locale. |
|
140 | + $country = $invoice->get_country(); |
|
141 | + $locale = $this->get_country_locale(); |
|
142 | 142 | |
143 | - // Get sortcode label in the $locale array and use appropriate one. |
|
144 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
143 | + // Get sortcode label in the $locale array and use appropriate one. |
|
144 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
145 | 145 | |
146 | 146 | $bank_fields = array( |
147 | 147 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -160,9 +160,9 @@ discard block |
||
160 | 160 | |
161 | 161 | if ( ! empty( $value ) ) { |
162 | 162 | $bank_info[ $field ] = array( |
163 | - 'label' => $label, |
|
164 | - 'value' => $value, |
|
165 | - ); |
|
163 | + 'label' => $label, |
|
164 | + 'value' => $value, |
|
165 | + ); |
|
166 | 166 | } |
167 | 167 | } |
168 | 168 | |
@@ -172,139 +172,139 @@ discard block |
||
172 | 172 | return; |
173 | 173 | } |
174 | 174 | |
175 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) ) . '</h3>' . PHP_EOL; |
|
175 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ) ) ) . '</h3>' . PHP_EOL; |
|
176 | 176 | |
177 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
177 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
178 | 178 | |
179 | - foreach ( $bank_info as $key => $data ) { |
|
180 | - echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . "</td></tr>" . PHP_EOL; |
|
181 | - } |
|
179 | + foreach ( $bank_info as $key => $data ) { |
|
180 | + echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . "</td></tr>" . PHP_EOL; |
|
181 | + } |
|
182 | 182 | |
183 | - echo '</table>'; |
|
183 | + echo '</table>'; |
|
184 | 184 | |
185 | 185 | } |
186 | 186 | |
187 | 187 | /** |
188 | - * Get country locale if localized. |
|
189 | - * |
|
190 | - * @return array |
|
191 | - */ |
|
192 | - public function get_country_locale() { |
|
193 | - |
|
194 | - if ( empty( $this->locale ) ) { |
|
195 | - |
|
196 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
197 | - $this->locale = apply_filters( |
|
198 | - 'getpaid_get_bank_transfer_locale', |
|
199 | - array( |
|
200 | - 'AU' => array( |
|
201 | - 'sortcode' => array( |
|
202 | - 'label' => __( 'BSB', 'invoicing' ), |
|
203 | - ), |
|
204 | - ), |
|
205 | - 'CA' => array( |
|
206 | - 'sortcode' => array( |
|
207 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
208 | - ), |
|
209 | - ), |
|
210 | - 'IN' => array( |
|
211 | - 'sortcode' => array( |
|
212 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
213 | - ), |
|
214 | - ), |
|
215 | - 'IT' => array( |
|
216 | - 'sortcode' => array( |
|
217 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
218 | - ), |
|
219 | - ), |
|
220 | - 'NZ' => array( |
|
221 | - 'sortcode' => array( |
|
222 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
223 | - ), |
|
224 | - ), |
|
225 | - 'SE' => array( |
|
226 | - 'sortcode' => array( |
|
227 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
228 | - ), |
|
229 | - ), |
|
230 | - 'US' => array( |
|
231 | - 'sortcode' => array( |
|
232 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
233 | - ), |
|
234 | - ), |
|
235 | - 'ZA' => array( |
|
236 | - 'sortcode' => array( |
|
237 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
238 | - ), |
|
239 | - ), |
|
240 | - ) |
|
241 | - ); |
|
242 | - |
|
243 | - } |
|
244 | - |
|
245 | - return $this->locale; |
|
246 | - |
|
247 | - } |
|
248 | - |
|
249 | - /** |
|
250 | - * Filters the gateway settings. |
|
251 | - * |
|
252 | - * @param array $admin_settings |
|
253 | - */ |
|
254 | - public function admin_settings( $admin_settings ) { |
|
188 | + * Get country locale if localized. |
|
189 | + * |
|
190 | + * @return array |
|
191 | + */ |
|
192 | + public function get_country_locale() { |
|
193 | + |
|
194 | + if ( empty( $this->locale ) ) { |
|
195 | + |
|
196 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
197 | + $this->locale = apply_filters( |
|
198 | + 'getpaid_get_bank_transfer_locale', |
|
199 | + array( |
|
200 | + 'AU' => array( |
|
201 | + 'sortcode' => array( |
|
202 | + 'label' => __( 'BSB', 'invoicing' ), |
|
203 | + ), |
|
204 | + ), |
|
205 | + 'CA' => array( |
|
206 | + 'sortcode' => array( |
|
207 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
208 | + ), |
|
209 | + ), |
|
210 | + 'IN' => array( |
|
211 | + 'sortcode' => array( |
|
212 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
213 | + ), |
|
214 | + ), |
|
215 | + 'IT' => array( |
|
216 | + 'sortcode' => array( |
|
217 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
218 | + ), |
|
219 | + ), |
|
220 | + 'NZ' => array( |
|
221 | + 'sortcode' => array( |
|
222 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
223 | + ), |
|
224 | + ), |
|
225 | + 'SE' => array( |
|
226 | + 'sortcode' => array( |
|
227 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
228 | + ), |
|
229 | + ), |
|
230 | + 'US' => array( |
|
231 | + 'sortcode' => array( |
|
232 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
233 | + ), |
|
234 | + ), |
|
235 | + 'ZA' => array( |
|
236 | + 'sortcode' => array( |
|
237 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
238 | + ), |
|
239 | + ), |
|
240 | + ) |
|
241 | + ); |
|
242 | + |
|
243 | + } |
|
244 | + |
|
245 | + return $this->locale; |
|
246 | + |
|
247 | + } |
|
248 | + |
|
249 | + /** |
|
250 | + * Filters the gateway settings. |
|
251 | + * |
|
252 | + * @param array $admin_settings |
|
253 | + */ |
|
254 | + public function admin_settings( $admin_settings ) { |
|
255 | 255 | |
256 | 256 | $admin_settings['bank_transfer_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' ); |
257 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
257 | + $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
258 | 258 | |
259 | - $locale = $this->get_country_locale(); |
|
259 | + $locale = $this->get_country_locale(); |
|
260 | 260 | |
261 | - // Get sortcode label in the $locale array and use appropriate one. |
|
262 | - $country = wpinv_default_billing_country(); |
|
263 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
261 | + // Get sortcode label in the $locale array and use appropriate one. |
|
262 | + $country = wpinv_default_billing_country(); |
|
263 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
264 | 264 | |
265 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
265 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
266 | 266 | 'type' => 'text', |
267 | 267 | 'id' => 'bank_transfer_ac_name', |
268 | 268 | 'name' => __( 'Account Name', 'invoicing' ), |
269 | - ); |
|
269 | + ); |
|
270 | 270 | |
271 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
271 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
272 | 272 | 'type' => 'text', |
273 | 273 | 'id' => 'bank_transfer_ac_no', |
274 | 274 | 'name' => __( 'Account Number', 'invoicing' ), |
275 | - ); |
|
275 | + ); |
|
276 | 276 | |
277 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
277 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
278 | 278 | 'type' => 'text', |
279 | 279 | 'id' => 'bank_transfer_bank_name', |
280 | 280 | 'name' => __( 'Bank Name', 'invoicing' ), |
281 | - ); |
|
281 | + ); |
|
282 | 282 | |
283 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
283 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
284 | 284 | 'type' => 'text', |
285 | 285 | 'id' => 'bank_transfer_ifsc', |
286 | 286 | 'name' => __( 'IFSC Code', 'invoicing' ), |
287 | - ); |
|
287 | + ); |
|
288 | 288 | |
289 | - $admin_settings['bank_transfer_iban'] = array( |
|
289 | + $admin_settings['bank_transfer_iban'] = array( |
|
290 | 290 | 'type' => 'text', |
291 | 291 | 'id' => 'bank_transfer_iban', |
292 | 292 | 'name' => __( 'IBAN', 'invoicing' ), |
293 | - ); |
|
293 | + ); |
|
294 | 294 | |
295 | - $admin_settings['bank_transfer_bic'] = array( |
|
295 | + $admin_settings['bank_transfer_bic'] = array( |
|
296 | 296 | 'type' => 'text', |
297 | 297 | 'id' => 'bank_transfer_bic', |
298 | 298 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
299 | - ); |
|
299 | + ); |
|
300 | 300 | |
301 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
302 | - 'type' => 'text', |
|
303 | - 'id' => 'bank_transfer_sort_code', |
|
304 | - 'name' => $sortcode, |
|
305 | - ); |
|
301 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
302 | + 'type' => 'text', |
|
303 | + 'id' => 'bank_transfer_sort_code', |
|
304 | + 'name' => $sortcode, |
|
305 | + ); |
|
306 | 306 | |
307 | - $admin_settings['bank_transfer_info'] = array( |
|
307 | + $admin_settings['bank_transfer_info'] = array( |
|
308 | 308 | 'id' => 'bank_transfer_info', |
309 | 309 | 'name' => __( 'Instructions', 'invoicing' ), |
310 | 310 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -314,17 +314,17 @@ discard block |
||
314 | 314 | 'rows' => 5, |
315 | 315 | ); |
316 | 316 | |
317 | - return $admin_settings; |
|
318 | - } |
|
317 | + return $admin_settings; |
|
318 | + } |
|
319 | 319 | |
320 | - /** |
|
321 | - * Processes invoice addons. |
|
322 | - * |
|
323 | - * @param WPInv_Invoice $invoice |
|
324 | - * @param GetPaid_Form_Item[] $items |
|
325 | - * @return WPInv_Invoice |
|
326 | - */ |
|
327 | - public function process_addons( $invoice, $items ) { |
|
320 | + /** |
|
321 | + * Processes invoice addons. |
|
322 | + * |
|
323 | + * @param WPInv_Invoice $invoice |
|
324 | + * @param GetPaid_Form_Item[] $items |
|
325 | + * @return WPInv_Invoice |
|
326 | + */ |
|
327 | + public function process_addons( $invoice, $items ) { |
|
328 | 328 | |
329 | 329 | foreach ( $items as $item ) { |
330 | 330 | $invoice->add_item( $item ); |
@@ -332,66 +332,66 @@ discard block |
||
332 | 332 | |
333 | 333 | $invoice->recalculate_total(); |
334 | 334 | $invoice->save(); |
335 | - } |
|
335 | + } |
|
336 | 336 | |
337 | - /** |
|
338 | - * (Maybe) renews a bank transfer subscription profile. |
|
339 | - * |
|
340 | - * |
|
337 | + /** |
|
338 | + * (Maybe) renews a bank transfer subscription profile. |
|
339 | + * |
|
340 | + * |
|
341 | 341 | * @param WPInv_Subscription $subscription |
342 | - */ |
|
343 | - public function maybe_renew_subscription( $subscription ) { |
|
342 | + */ |
|
343 | + public function maybe_renew_subscription( $subscription ) { |
|
344 | 344 | |
345 | 345 | // Ensure its our subscription && it's active. |
346 | 346 | if ( $this->id == $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
347 | - $subscription->create_payment(); |
|
347 | + $subscription->create_payment(); |
|
348 | 348 | } |
349 | 349 | |
350 | 350 | } |
351 | 351 | |
352 | - /** |
|
353 | - * Process a bank transfer payment. |
|
354 | - * |
|
355 | - * |
|
352 | + /** |
|
353 | + * Process a bank transfer payment. |
|
354 | + * |
|
355 | + * |
|
356 | 356 | * @param WPInv_Invoice $invoice |
357 | - */ |
|
358 | - public function invoice_paid( $invoice ) { |
|
359 | - |
|
360 | - // Abort if not paid by bank transfer. |
|
361 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
362 | - return; |
|
363 | - } |
|
364 | - |
|
365 | - // Is it a parent payment? |
|
366 | - if ( 0 == $invoice->get_parent_id() ) { |
|
367 | - |
|
368 | - // (Maybe) activate subscriptions. |
|
369 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
370 | - |
|
371 | - if ( ! empty( $subscriptions ) ) { |
|
372 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
373 | - |
|
374 | - foreach ( $subscriptions as $subscription ) { |
|
375 | - if ( $subscription->exists() ) { |
|
376 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
377 | - $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
378 | - |
|
379 | - $subscription->set_next_renewal_date( $expiry ); |
|
380 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
381 | - $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
382 | - $subscription->activate(); |
|
383 | - } |
|
384 | - } |
|
357 | + */ |
|
358 | + public function invoice_paid( $invoice ) { |
|
359 | + |
|
360 | + // Abort if not paid by bank transfer. |
|
361 | + if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
362 | + return; |
|
363 | + } |
|
364 | + |
|
365 | + // Is it a parent payment? |
|
366 | + if ( 0 == $invoice->get_parent_id() ) { |
|
367 | + |
|
368 | + // (Maybe) activate subscriptions. |
|
369 | + $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
370 | + |
|
371 | + if ( ! empty( $subscriptions ) ) { |
|
372 | + $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
373 | + |
|
374 | + foreach ( $subscriptions as $subscription ) { |
|
375 | + if ( $subscription->exists() ) { |
|
376 | + $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
377 | + $expiry = date( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
378 | + |
|
379 | + $subscription->set_next_renewal_date( $expiry ); |
|
380 | + $subscription->set_date_created( current_time( 'mysql' ) ); |
|
381 | + $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
382 | + $subscription->activate(); |
|
383 | + } |
|
384 | + } |
|
385 | 385 | } |
386 | 386 | } else { |
387 | 387 | |
388 | - $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
388 | + $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
389 | 389 | |
390 | - // Renew the subscription. |
|
391 | - if ( $subscription && $subscription->exists() ) { |
|
392 | - $subscription->add_payment( array(), $invoice ); |
|
393 | - $subscription->renew(); |
|
394 | - } |
|
390 | + // Renew the subscription. |
|
391 | + if ( $subscription && $subscription->exists() ) { |
|
392 | + $subscription->add_payment( array(), $invoice ); |
|
393 | + $subscription->renew(); |
|
394 | + } |
|
395 | 395 | } |
396 | 396 | |
397 | 397 | } |
@@ -13,462 +13,462 @@ discard block |
||
13 | 13 | */ |
14 | 14 | abstract class GetPaid_Payment_Gateway { |
15 | 15 | |
16 | - /** |
|
17 | - * Set if the place checkout button should be renamed on selection. |
|
18 | - * |
|
19 | - * @var string |
|
20 | - */ |
|
21 | - public $checkout_button_text; |
|
22 | - |
|
23 | - /** |
|
24 | - * Boolean whether the method is enabled. |
|
25 | - * |
|
26 | - * @var bool |
|
27 | - */ |
|
28 | - public $enabled = true; |
|
29 | - |
|
30 | - /** |
|
31 | - * Payment method id. |
|
32 | - * |
|
33 | - * @var string |
|
34 | - */ |
|
35 | - public $id; |
|
36 | - |
|
37 | - /** |
|
38 | - * Payment method order. |
|
39 | - * |
|
40 | - * @var int |
|
41 | - */ |
|
42 | - public $order = 10; |
|
43 | - |
|
44 | - /** |
|
45 | - * Payment method title for the frontend. |
|
46 | - * |
|
47 | - * @var string |
|
48 | - */ |
|
49 | - public $title; |
|
50 | - |
|
51 | - /** |
|
52 | - * Payment method description for the frontend. |
|
53 | - * |
|
54 | - * @var string |
|
55 | - */ |
|
56 | - public $description; |
|
57 | - |
|
58 | - /** |
|
59 | - * Gateway title. |
|
60 | - * |
|
61 | - * @var string |
|
62 | - */ |
|
63 | - public $method_title = ''; |
|
64 | - |
|
65 | - /** |
|
66 | - * Gateway description. |
|
67 | - * |
|
68 | - * @var string |
|
69 | - */ |
|
70 | - public $method_description = ''; |
|
71 | - |
|
72 | - /** |
|
73 | - * Countries this gateway is allowed for. |
|
74 | - * |
|
75 | - * @var array |
|
76 | - */ |
|
77 | - public $countries; |
|
78 | - |
|
79 | - /** |
|
80 | - * Currencies this gateway is allowed for. |
|
81 | - * |
|
82 | - * @var array |
|
83 | - */ |
|
84 | - public $currencies; |
|
85 | - |
|
86 | - /** |
|
87 | - * Currencies this gateway is not allowed for. |
|
88 | - * |
|
89 | - * @var array |
|
90 | - */ |
|
91 | - public $exclude_currencies; |
|
92 | - |
|
93 | - /** |
|
94 | - * Maximum transaction amount, zero does not define a maximum. |
|
95 | - * |
|
96 | - * @var int |
|
97 | - */ |
|
98 | - public $max_amount = 0; |
|
99 | - |
|
100 | - /** |
|
101 | - * Optional URL to view a transaction. |
|
102 | - * |
|
103 | - * @var string |
|
104 | - */ |
|
105 | - public $view_transaction_url = ''; |
|
106 | - |
|
107 | - /** |
|
108 | - * Optional URL to view a subscription. |
|
109 | - * |
|
110 | - * @var string |
|
111 | - */ |
|
112 | - public $view_subscription_url = ''; |
|
113 | - |
|
114 | - /** |
|
115 | - * Optional label to show for "new payment method" in the payment |
|
116 | - * method/token selection radio selection. |
|
117 | - * |
|
118 | - * @var string |
|
119 | - */ |
|
120 | - public $new_method_label = ''; |
|
121 | - |
|
122 | - /** |
|
123 | - * Contains a user's saved tokens for this gateway. |
|
124 | - * |
|
125 | - * @var array |
|
126 | - */ |
|
127 | - protected $tokens = array(); |
|
128 | - |
|
129 | - /** |
|
130 | - * An array of features that this gateway supports. |
|
131 | - * |
|
132 | - * @var array |
|
133 | - */ |
|
134 | - protected $supports = array(); |
|
135 | - |
|
136 | - /** |
|
137 | - * Class constructor. |
|
138 | - */ |
|
139 | - public function __construct() { |
|
140 | - |
|
141 | - // Register gateway. |
|
142 | - add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) ); |
|
143 | - |
|
144 | - $this->enabled = wpinv_is_gateway_active( $this->id ); |
|
145 | - |
|
146 | - // Add support for various features. |
|
147 | - foreach ( $this->supports as $feature ) { |
|
148 | - add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' ); |
|
149 | - add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' ); |
|
150 | - add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' ); |
|
151 | - } |
|
152 | - |
|
153 | - // Invoice addons. |
|
154 | - if ( $this->supports( 'addons' ) ) { |
|
155 | - add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 ); |
|
156 | - } |
|
157 | - |
|
158 | - // Gateway settings. |
|
159 | - add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) ); |
|
160 | - |
|
161 | - // Gateway checkout fiellds. |
|
162 | - add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 ); |
|
163 | - |
|
164 | - // Process payment. |
|
165 | - add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 ); |
|
166 | - |
|
167 | - // Change the checkout button text. |
|
168 | - if ( ! empty( $this->checkout_button_text ) ) { |
|
169 | - add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) ); |
|
170 | - } |
|
171 | - |
|
172 | - // Check if a gateway is valid for a given currency. |
|
173 | - add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 ); |
|
174 | - |
|
175 | - // Generate the transaction url. |
|
176 | - add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 ); |
|
177 | - |
|
178 | - // Generate the subscription url. |
|
179 | - add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 ); |
|
180 | - |
|
181 | - // Confirm payments. |
|
182 | - add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 ); |
|
183 | - |
|
184 | - // Verify IPNs. |
|
185 | - add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) ); |
|
186 | - |
|
187 | - } |
|
188 | - |
|
189 | - /** |
|
190 | - * Checks if this gateway is a given gateway. |
|
191 | - * |
|
192 | - * @since 1.0.19 |
|
193 | - * @return bool |
|
194 | - */ |
|
195 | - public function is( $gateway ) { |
|
196 | - return $gateway == $this->id; |
|
197 | - } |
|
198 | - |
|
199 | - /** |
|
200 | - * Returns a users saved tokens for this gateway. |
|
201 | - * |
|
202 | - * @since 1.0.19 |
|
203 | - * @return array |
|
204 | - */ |
|
205 | - public function get_tokens( $sandbox = null ) { |
|
206 | - |
|
207 | - if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) { |
|
208 | - $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true ); |
|
209 | - |
|
210 | - if ( is_array( $tokens ) ) { |
|
211 | - $this->tokens = $tokens; |
|
212 | - } |
|
16 | + /** |
|
17 | + * Set if the place checkout button should be renamed on selection. |
|
18 | + * |
|
19 | + * @var string |
|
20 | + */ |
|
21 | + public $checkout_button_text; |
|
22 | + |
|
23 | + /** |
|
24 | + * Boolean whether the method is enabled. |
|
25 | + * |
|
26 | + * @var bool |
|
27 | + */ |
|
28 | + public $enabled = true; |
|
29 | + |
|
30 | + /** |
|
31 | + * Payment method id. |
|
32 | + * |
|
33 | + * @var string |
|
34 | + */ |
|
35 | + public $id; |
|
36 | + |
|
37 | + /** |
|
38 | + * Payment method order. |
|
39 | + * |
|
40 | + * @var int |
|
41 | + */ |
|
42 | + public $order = 10; |
|
43 | + |
|
44 | + /** |
|
45 | + * Payment method title for the frontend. |
|
46 | + * |
|
47 | + * @var string |
|
48 | + */ |
|
49 | + public $title; |
|
50 | + |
|
51 | + /** |
|
52 | + * Payment method description for the frontend. |
|
53 | + * |
|
54 | + * @var string |
|
55 | + */ |
|
56 | + public $description; |
|
57 | + |
|
58 | + /** |
|
59 | + * Gateway title. |
|
60 | + * |
|
61 | + * @var string |
|
62 | + */ |
|
63 | + public $method_title = ''; |
|
64 | + |
|
65 | + /** |
|
66 | + * Gateway description. |
|
67 | + * |
|
68 | + * @var string |
|
69 | + */ |
|
70 | + public $method_description = ''; |
|
71 | + |
|
72 | + /** |
|
73 | + * Countries this gateway is allowed for. |
|
74 | + * |
|
75 | + * @var array |
|
76 | + */ |
|
77 | + public $countries; |
|
78 | + |
|
79 | + /** |
|
80 | + * Currencies this gateway is allowed for. |
|
81 | + * |
|
82 | + * @var array |
|
83 | + */ |
|
84 | + public $currencies; |
|
85 | + |
|
86 | + /** |
|
87 | + * Currencies this gateway is not allowed for. |
|
88 | + * |
|
89 | + * @var array |
|
90 | + */ |
|
91 | + public $exclude_currencies; |
|
92 | + |
|
93 | + /** |
|
94 | + * Maximum transaction amount, zero does not define a maximum. |
|
95 | + * |
|
96 | + * @var int |
|
97 | + */ |
|
98 | + public $max_amount = 0; |
|
99 | + |
|
100 | + /** |
|
101 | + * Optional URL to view a transaction. |
|
102 | + * |
|
103 | + * @var string |
|
104 | + */ |
|
105 | + public $view_transaction_url = ''; |
|
106 | + |
|
107 | + /** |
|
108 | + * Optional URL to view a subscription. |
|
109 | + * |
|
110 | + * @var string |
|
111 | + */ |
|
112 | + public $view_subscription_url = ''; |
|
113 | + |
|
114 | + /** |
|
115 | + * Optional label to show for "new payment method" in the payment |
|
116 | + * method/token selection radio selection. |
|
117 | + * |
|
118 | + * @var string |
|
119 | + */ |
|
120 | + public $new_method_label = ''; |
|
121 | + |
|
122 | + /** |
|
123 | + * Contains a user's saved tokens for this gateway. |
|
124 | + * |
|
125 | + * @var array |
|
126 | + */ |
|
127 | + protected $tokens = array(); |
|
128 | + |
|
129 | + /** |
|
130 | + * An array of features that this gateway supports. |
|
131 | + * |
|
132 | + * @var array |
|
133 | + */ |
|
134 | + protected $supports = array(); |
|
135 | + |
|
136 | + /** |
|
137 | + * Class constructor. |
|
138 | + */ |
|
139 | + public function __construct() { |
|
140 | + |
|
141 | + // Register gateway. |
|
142 | + add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) ); |
|
143 | + |
|
144 | + $this->enabled = wpinv_is_gateway_active( $this->id ); |
|
145 | + |
|
146 | + // Add support for various features. |
|
147 | + foreach ( $this->supports as $feature ) { |
|
148 | + add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' ); |
|
149 | + add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' ); |
|
150 | + add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' ); |
|
151 | + } |
|
152 | + |
|
153 | + // Invoice addons. |
|
154 | + if ( $this->supports( 'addons' ) ) { |
|
155 | + add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 ); |
|
156 | + } |
|
157 | + |
|
158 | + // Gateway settings. |
|
159 | + add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) ); |
|
160 | + |
|
161 | + // Gateway checkout fiellds. |
|
162 | + add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 ); |
|
163 | + |
|
164 | + // Process payment. |
|
165 | + add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 ); |
|
166 | + |
|
167 | + // Change the checkout button text. |
|
168 | + if ( ! empty( $this->checkout_button_text ) ) { |
|
169 | + add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) ); |
|
170 | + } |
|
171 | + |
|
172 | + // Check if a gateway is valid for a given currency. |
|
173 | + add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 ); |
|
174 | + |
|
175 | + // Generate the transaction url. |
|
176 | + add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 ); |
|
177 | + |
|
178 | + // Generate the subscription url. |
|
179 | + add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 ); |
|
180 | + |
|
181 | + // Confirm payments. |
|
182 | + add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 ); |
|
183 | + |
|
184 | + // Verify IPNs. |
|
185 | + add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) ); |
|
186 | + |
|
187 | + } |
|
188 | + |
|
189 | + /** |
|
190 | + * Checks if this gateway is a given gateway. |
|
191 | + * |
|
192 | + * @since 1.0.19 |
|
193 | + * @return bool |
|
194 | + */ |
|
195 | + public function is( $gateway ) { |
|
196 | + return $gateway == $this->id; |
|
197 | + } |
|
198 | + |
|
199 | + /** |
|
200 | + * Returns a users saved tokens for this gateway. |
|
201 | + * |
|
202 | + * @since 1.0.19 |
|
203 | + * @return array |
|
204 | + */ |
|
205 | + public function get_tokens( $sandbox = null ) { |
|
206 | + |
|
207 | + if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) { |
|
208 | + $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true ); |
|
209 | + |
|
210 | + if ( is_array( $tokens ) ) { |
|
211 | + $this->tokens = $tokens; |
|
212 | + } |
|
213 | 213 | } |
214 | 214 | |
215 | - if ( ! is_bool( $sandbox ) ) { |
|
216 | - return $this->tokens; |
|
217 | - } |
|
218 | - |
|
219 | - // Filter tokens. |
|
220 | - $args = array( 'type' => $sandbox ? 'sandbox' : 'live' ); |
|
221 | - return wp_list_filter( $this->tokens, $args ); |
|
222 | - |
|
223 | - } |
|
224 | - |
|
225 | - /** |
|
226 | - * Saves a token for this gateway. |
|
227 | - * |
|
228 | - * @since 1.0.19 |
|
229 | - */ |
|
230 | - public function save_token( $token ) { |
|
231 | - |
|
232 | - $tokens = $this->get_tokens(); |
|
233 | - $tokens[] = $token; |
|
234 | - |
|
235 | - update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens ); |
|
236 | - |
|
237 | - $this->tokens = $tokens; |
|
238 | - |
|
239 | - } |
|
240 | - |
|
241 | - /** |
|
242 | - * Return the title for admin screens. |
|
243 | - * |
|
244 | - * @return string |
|
245 | - */ |
|
246 | - public function get_method_title() { |
|
247 | - return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this ); |
|
248 | - } |
|
249 | - |
|
250 | - /** |
|
251 | - * Return the description for admin screens. |
|
252 | - * |
|
253 | - * @return string |
|
254 | - */ |
|
255 | - public function get_method_description() { |
|
256 | - return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this ); |
|
257 | - } |
|
258 | - |
|
259 | - /** |
|
260 | - * Get the success url. |
|
261 | - * |
|
262 | - * @param WPInv_Invoice $invoice Invoice object. |
|
263 | - * @return string |
|
264 | - */ |
|
265 | - public function get_return_url( $invoice ) { |
|
266 | - |
|
267 | - // Payment success url |
|
268 | - $return_url = add_query_arg( |
|
269 | - array( |
|
270 | - 'payment-confirm' => $this->id, |
|
271 | - 'invoice_key' => $invoice->get_key(), |
|
272 | - 'utm_nooverride' => 1, |
|
273 | - ), |
|
274 | - wpinv_get_success_page_uri() |
|
275 | - ); |
|
276 | - |
|
277 | - return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this ); |
|
278 | - } |
|
279 | - |
|
280 | - /** |
|
281 | - * Confirms payments when rendering the success page. |
|
282 | - * |
|
283 | - * @param string $content Success page content. |
|
284 | - * @return string |
|
285 | - */ |
|
286 | - public function confirm_payment( $content ) { |
|
287 | - |
|
288 | - // Retrieve the invoice. |
|
289 | - $invoice_id = getpaid_get_current_invoice_id(); |
|
290 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
291 | - |
|
292 | - // Ensure that it exists and that it is pending payment. |
|
293 | - if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) { |
|
294 | - return $content; |
|
295 | - } |
|
296 | - |
|
297 | - // Can the user view this invoice?? |
|
298 | - if ( ! wpinv_user_can_view_invoice( $invoice ) ) { |
|
299 | - return $content; |
|
300 | - } |
|
301 | - |
|
302 | - // Show payment processing indicator. |
|
303 | - return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) ); |
|
304 | - } |
|
305 | - |
|
306 | - /** |
|
307 | - * Processes ipns and marks payments as complete. |
|
308 | - * |
|
309 | - * @return void |
|
310 | - */ |
|
311 | - public function verify_ipn() {} |
|
312 | - |
|
313 | - /** |
|
314 | - * Processes invoice addons. |
|
315 | - * |
|
316 | - * @param WPInv_Invoice $invoice |
|
317 | - * @param GetPaid_Form_Item[] $items |
|
318 | - * @return WPInv_Invoice |
|
319 | - */ |
|
320 | - public function process_addons( $invoice, $items ) { |
|
321 | - |
|
322 | - } |
|
323 | - |
|
324 | - /** |
|
325 | - * Get a link to the transaction on the 3rd party gateway site (if applicable). |
|
326 | - * |
|
327 | - * @param string $transaction_url transaction url. |
|
328 | - * @param WPInv_Invoice $invoice Invoice object. |
|
329 | - * @return string transaction URL, or empty string. |
|
330 | - */ |
|
331 | - public function filter_transaction_url( $transaction_url, $invoice ) { |
|
332 | - |
|
333 | - $transaction_id = $invoice->get_transaction_id(); |
|
334 | - |
|
335 | - if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) { |
|
336 | - $transaction_url = sprintf( $this->view_transaction_url, $transaction_id ); |
|
337 | - $replace = $this->is_sandbox( $invoice ) ? 'sandbox' : ''; |
|
338 | - $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url ); |
|
339 | - } |
|
340 | - |
|
341 | - return $transaction_url; |
|
342 | - } |
|
343 | - |
|
344 | - /** |
|
345 | - * Get a link to the subscription on the 3rd party gateway site (if applicable). |
|
346 | - * |
|
347 | - * @param string $subscription_url transaction url. |
|
348 | - * @param WPInv_Subscription $subscription Subscription objectt. |
|
349 | - * @return string subscription URL, or empty string. |
|
350 | - */ |
|
351 | - public function generate_subscription_url( $subscription_url, $subscription ) { |
|
352 | - |
|
353 | - $profile_id = $subscription->get_profile_id(); |
|
354 | - |
|
355 | - if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) { |
|
356 | - |
|
357 | - $subscription_url = sprintf( $this->view_subscription_url, $profile_id ); |
|
358 | - $replace = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : ''; |
|
359 | - $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url ); |
|
360 | - |
|
361 | - } |
|
362 | - |
|
363 | - return $subscription_url; |
|
364 | - } |
|
365 | - |
|
366 | - /** |
|
367 | - * Check if the gateway is available for use. |
|
368 | - * |
|
369 | - * @return bool |
|
370 | - */ |
|
371 | - public function is_available() { |
|
372 | - return ! empty( $this->enabled ); |
|
373 | - } |
|
374 | - |
|
375 | - /** |
|
376 | - * Return the gateway's title. |
|
377 | - * |
|
378 | - * @return string |
|
379 | - */ |
|
380 | - public function get_title() { |
|
381 | - return apply_filters( 'getpaid_gateway_title', $this->title, $this ); |
|
382 | - } |
|
383 | - |
|
384 | - /** |
|
385 | - * Return the gateway's description. |
|
386 | - * |
|
387 | - * @return string |
|
388 | - */ |
|
389 | - public function get_description() { |
|
390 | - return apply_filters( 'getpaid_gateway_description', $this->description, $this ); |
|
391 | - } |
|
392 | - |
|
393 | - /** |
|
394 | - * Process Payment. |
|
395 | - * |
|
396 | - * |
|
397 | - * @param WPInv_Invoice $invoice Invoice. |
|
398 | - * @param array $submission_data Posted checkout fields. |
|
399 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
400 | - * @return void |
|
401 | - */ |
|
402 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
403 | - // Process the payment then either redirect to the success page or the gateway. |
|
404 | - do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission ); |
|
405 | - } |
|
406 | - |
|
407 | - /** |
|
408 | - * Process refund. |
|
409 | - * |
|
410 | - * If the gateway declares 'refunds' support, this will allow it to refund. |
|
411 | - * a passed in amount. |
|
412 | - * |
|
413 | - * @param WPInv_Invoice $invoice Invoice. |
|
414 | - * @param float $amount Refund amount. |
|
415 | - * @param string $reason Refund reason. |
|
416 | - * @return WP_Error|bool True or false based on success, or a WP_Error object. |
|
417 | - */ |
|
418 | - public function process_refund( $invoice, $amount = null, $reason = '' ) { |
|
419 | - return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason ); |
|
420 | - } |
|
421 | - |
|
422 | - /** |
|
423 | - * Displays the payment fields, credit cards etc. |
|
424 | - * |
|
425 | - * @param int $invoice_id 0 or invoice id. |
|
426 | - * @param GetPaid_Payment_Form $form Current payment form. |
|
427 | - */ |
|
428 | - public function payment_fields( $invoice_id, $form ) { |
|
429 | - do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form ); |
|
430 | - } |
|
431 | - |
|
432 | - /** |
|
433 | - * Filters the gateway settings. |
|
434 | - * |
|
435 | - * @param array $admin_settings |
|
436 | - */ |
|
437 | - public function admin_settings( $admin_settings ) { |
|
438 | - return $admin_settings; |
|
439 | - } |
|
440 | - |
|
441 | - /** |
|
442 | - * Retrieves the value of a gateway setting. |
|
443 | - * |
|
444 | - * @param string $option |
|
445 | - */ |
|
446 | - public function get_option( $option, $default = false ) { |
|
447 | - return wpinv_get_option( $this->id . '_' . $option, $default ); |
|
448 | - } |
|
449 | - |
|
450 | - /** |
|
451 | - * Check if a gateway supports a given feature. |
|
452 | - * |
|
453 | - * Gateways should override this to declare support (or lack of support) for a feature. |
|
454 | - * For backward compatibility, gateways support 'products' by default, but nothing else. |
|
455 | - * |
|
456 | - * @param string $feature string The name of a feature to test support for. |
|
457 | - * @return bool True if the gateway supports the feature, false otherwise. |
|
458 | - * @since 1.0.19 |
|
459 | - */ |
|
460 | - public function supports( $feature ) { |
|
461 | - return getpaid_payment_gateway_supports( $this->id, $feature ); |
|
462 | - } |
|
463 | - |
|
464 | - /** |
|
465 | - * Returns the credit card form html. |
|
466 | - * |
|
467 | - * @param bool $save whether or not to display the save button. |
|
468 | - */ |
|
215 | + if ( ! is_bool( $sandbox ) ) { |
|
216 | + return $this->tokens; |
|
217 | + } |
|
218 | + |
|
219 | + // Filter tokens. |
|
220 | + $args = array( 'type' => $sandbox ? 'sandbox' : 'live' ); |
|
221 | + return wp_list_filter( $this->tokens, $args ); |
|
222 | + |
|
223 | + } |
|
224 | + |
|
225 | + /** |
|
226 | + * Saves a token for this gateway. |
|
227 | + * |
|
228 | + * @since 1.0.19 |
|
229 | + */ |
|
230 | + public function save_token( $token ) { |
|
231 | + |
|
232 | + $tokens = $this->get_tokens(); |
|
233 | + $tokens[] = $token; |
|
234 | + |
|
235 | + update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens ); |
|
236 | + |
|
237 | + $this->tokens = $tokens; |
|
238 | + |
|
239 | + } |
|
240 | + |
|
241 | + /** |
|
242 | + * Return the title for admin screens. |
|
243 | + * |
|
244 | + * @return string |
|
245 | + */ |
|
246 | + public function get_method_title() { |
|
247 | + return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this ); |
|
248 | + } |
|
249 | + |
|
250 | + /** |
|
251 | + * Return the description for admin screens. |
|
252 | + * |
|
253 | + * @return string |
|
254 | + */ |
|
255 | + public function get_method_description() { |
|
256 | + return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this ); |
|
257 | + } |
|
258 | + |
|
259 | + /** |
|
260 | + * Get the success url. |
|
261 | + * |
|
262 | + * @param WPInv_Invoice $invoice Invoice object. |
|
263 | + * @return string |
|
264 | + */ |
|
265 | + public function get_return_url( $invoice ) { |
|
266 | + |
|
267 | + // Payment success url |
|
268 | + $return_url = add_query_arg( |
|
269 | + array( |
|
270 | + 'payment-confirm' => $this->id, |
|
271 | + 'invoice_key' => $invoice->get_key(), |
|
272 | + 'utm_nooverride' => 1, |
|
273 | + ), |
|
274 | + wpinv_get_success_page_uri() |
|
275 | + ); |
|
276 | + |
|
277 | + return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this ); |
|
278 | + } |
|
279 | + |
|
280 | + /** |
|
281 | + * Confirms payments when rendering the success page. |
|
282 | + * |
|
283 | + * @param string $content Success page content. |
|
284 | + * @return string |
|
285 | + */ |
|
286 | + public function confirm_payment( $content ) { |
|
287 | + |
|
288 | + // Retrieve the invoice. |
|
289 | + $invoice_id = getpaid_get_current_invoice_id(); |
|
290 | + $invoice = wpinv_get_invoice( $invoice_id ); |
|
291 | + |
|
292 | + // Ensure that it exists and that it is pending payment. |
|
293 | + if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) { |
|
294 | + return $content; |
|
295 | + } |
|
296 | + |
|
297 | + // Can the user view this invoice?? |
|
298 | + if ( ! wpinv_user_can_view_invoice( $invoice ) ) { |
|
299 | + return $content; |
|
300 | + } |
|
301 | + |
|
302 | + // Show payment processing indicator. |
|
303 | + return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) ); |
|
304 | + } |
|
305 | + |
|
306 | + /** |
|
307 | + * Processes ipns and marks payments as complete. |
|
308 | + * |
|
309 | + * @return void |
|
310 | + */ |
|
311 | + public function verify_ipn() {} |
|
312 | + |
|
313 | + /** |
|
314 | + * Processes invoice addons. |
|
315 | + * |
|
316 | + * @param WPInv_Invoice $invoice |
|
317 | + * @param GetPaid_Form_Item[] $items |
|
318 | + * @return WPInv_Invoice |
|
319 | + */ |
|
320 | + public function process_addons( $invoice, $items ) { |
|
321 | + |
|
322 | + } |
|
323 | + |
|
324 | + /** |
|
325 | + * Get a link to the transaction on the 3rd party gateway site (if applicable). |
|
326 | + * |
|
327 | + * @param string $transaction_url transaction url. |
|
328 | + * @param WPInv_Invoice $invoice Invoice object. |
|
329 | + * @return string transaction URL, or empty string. |
|
330 | + */ |
|
331 | + public function filter_transaction_url( $transaction_url, $invoice ) { |
|
332 | + |
|
333 | + $transaction_id = $invoice->get_transaction_id(); |
|
334 | + |
|
335 | + if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) { |
|
336 | + $transaction_url = sprintf( $this->view_transaction_url, $transaction_id ); |
|
337 | + $replace = $this->is_sandbox( $invoice ) ? 'sandbox' : ''; |
|
338 | + $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url ); |
|
339 | + } |
|
340 | + |
|
341 | + return $transaction_url; |
|
342 | + } |
|
343 | + |
|
344 | + /** |
|
345 | + * Get a link to the subscription on the 3rd party gateway site (if applicable). |
|
346 | + * |
|
347 | + * @param string $subscription_url transaction url. |
|
348 | + * @param WPInv_Subscription $subscription Subscription objectt. |
|
349 | + * @return string subscription URL, or empty string. |
|
350 | + */ |
|
351 | + public function generate_subscription_url( $subscription_url, $subscription ) { |
|
352 | + |
|
353 | + $profile_id = $subscription->get_profile_id(); |
|
354 | + |
|
355 | + if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) { |
|
356 | + |
|
357 | + $subscription_url = sprintf( $this->view_subscription_url, $profile_id ); |
|
358 | + $replace = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox' : ''; |
|
359 | + $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url ); |
|
360 | + |
|
361 | + } |
|
362 | + |
|
363 | + return $subscription_url; |
|
364 | + } |
|
365 | + |
|
366 | + /** |
|
367 | + * Check if the gateway is available for use. |
|
368 | + * |
|
369 | + * @return bool |
|
370 | + */ |
|
371 | + public function is_available() { |
|
372 | + return ! empty( $this->enabled ); |
|
373 | + } |
|
374 | + |
|
375 | + /** |
|
376 | + * Return the gateway's title. |
|
377 | + * |
|
378 | + * @return string |
|
379 | + */ |
|
380 | + public function get_title() { |
|
381 | + return apply_filters( 'getpaid_gateway_title', $this->title, $this ); |
|
382 | + } |
|
383 | + |
|
384 | + /** |
|
385 | + * Return the gateway's description. |
|
386 | + * |
|
387 | + * @return string |
|
388 | + */ |
|
389 | + public function get_description() { |
|
390 | + return apply_filters( 'getpaid_gateway_description', $this->description, $this ); |
|
391 | + } |
|
392 | + |
|
393 | + /** |
|
394 | + * Process Payment. |
|
395 | + * |
|
396 | + * |
|
397 | + * @param WPInv_Invoice $invoice Invoice. |
|
398 | + * @param array $submission_data Posted checkout fields. |
|
399 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
400 | + * @return void |
|
401 | + */ |
|
402 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
403 | + // Process the payment then either redirect to the success page or the gateway. |
|
404 | + do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission ); |
|
405 | + } |
|
406 | + |
|
407 | + /** |
|
408 | + * Process refund. |
|
409 | + * |
|
410 | + * If the gateway declares 'refunds' support, this will allow it to refund. |
|
411 | + * a passed in amount. |
|
412 | + * |
|
413 | + * @param WPInv_Invoice $invoice Invoice. |
|
414 | + * @param float $amount Refund amount. |
|
415 | + * @param string $reason Refund reason. |
|
416 | + * @return WP_Error|bool True or false based on success, or a WP_Error object. |
|
417 | + */ |
|
418 | + public function process_refund( $invoice, $amount = null, $reason = '' ) { |
|
419 | + return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason ); |
|
420 | + } |
|
421 | + |
|
422 | + /** |
|
423 | + * Displays the payment fields, credit cards etc. |
|
424 | + * |
|
425 | + * @param int $invoice_id 0 or invoice id. |
|
426 | + * @param GetPaid_Payment_Form $form Current payment form. |
|
427 | + */ |
|
428 | + public function payment_fields( $invoice_id, $form ) { |
|
429 | + do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form ); |
|
430 | + } |
|
431 | + |
|
432 | + /** |
|
433 | + * Filters the gateway settings. |
|
434 | + * |
|
435 | + * @param array $admin_settings |
|
436 | + */ |
|
437 | + public function admin_settings( $admin_settings ) { |
|
438 | + return $admin_settings; |
|
439 | + } |
|
440 | + |
|
441 | + /** |
|
442 | + * Retrieves the value of a gateway setting. |
|
443 | + * |
|
444 | + * @param string $option |
|
445 | + */ |
|
446 | + public function get_option( $option, $default = false ) { |
|
447 | + return wpinv_get_option( $this->id . '_' . $option, $default ); |
|
448 | + } |
|
449 | + |
|
450 | + /** |
|
451 | + * Check if a gateway supports a given feature. |
|
452 | + * |
|
453 | + * Gateways should override this to declare support (or lack of support) for a feature. |
|
454 | + * For backward compatibility, gateways support 'products' by default, but nothing else. |
|
455 | + * |
|
456 | + * @param string $feature string The name of a feature to test support for. |
|
457 | + * @return bool True if the gateway supports the feature, false otherwise. |
|
458 | + * @since 1.0.19 |
|
459 | + */ |
|
460 | + public function supports( $feature ) { |
|
461 | + return getpaid_payment_gateway_supports( $this->id, $feature ); |
|
462 | + } |
|
463 | + |
|
464 | + /** |
|
465 | + * Returns the credit card form html. |
|
466 | + * |
|
467 | + * @param bool $save whether or not to display the save button. |
|
468 | + */ |
|
469 | 469 | public function get_cc_form( $save = false ) { |
470 | 470 | |
471 | - ob_start(); |
|
471 | + ob_start(); |
|
472 | 472 | |
473 | 473 | $id_prefix = esc_attr( uniqid( $this->id ) ); |
474 | 474 | |
@@ -528,7 +528,7 @@ discard block |
||
528 | 528 | |
529 | 529 | <?php |
530 | 530 | foreach ( $months as $key => $month ) { |
531 | - echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $month ) . "</option>" . PHP_EOL; |
|
531 | + echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $month ) . "</option>" . PHP_EOL; |
|
532 | 532 | } |
533 | 533 | ?> |
534 | 534 | |
@@ -541,7 +541,7 @@ discard block |
||
541 | 541 | |
542 | 542 | <?php |
543 | 543 | foreach ( $years as $key => $year ) { |
544 | - echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $year ) . "</option>" . PHP_EOL; |
|
544 | + echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $year ) . "</option>" . PHP_EOL; |
|
545 | 545 | } |
546 | 546 | ?> |
547 | 547 | |
@@ -559,13 +559,13 @@ discard block |
||
559 | 559 | 'name' => $this->id . '[cc_cvv2]', |
560 | 560 | 'id' => "$id_prefix-cc-cvv2", |
561 | 561 | 'label' => __( 'CCV', 'invoicing' ), |
562 | - 'label_type' => 'vertical', |
|
563 | - 'class' => 'form-control-sm', |
|
564 | - 'extra_attributes' => array( |
|
565 | - 'autocomplete' => 'cc-csc', |
|
566 | - ), |
|
562 | + 'label_type' => 'vertical', |
|
563 | + 'class' => 'form-control-sm', |
|
564 | + 'extra_attributes' => array( |
|
565 | + 'autocomplete' => 'cc-csc', |
|
566 | + ), |
|
567 | 567 | ), |
568 | - true |
|
568 | + true |
|
569 | 569 | ); |
570 | 570 | ?> |
571 | 571 | </div> |
@@ -574,192 +574,192 @@ discard block |
||
574 | 574 | |
575 | 575 | <?php |
576 | 576 | |
577 | - if ( $save ) { |
|
578 | - $this->save_payment_method_checkbox(); |
|
579 | - } |
|
577 | + if ( $save ) { |
|
578 | + $this->save_payment_method_checkbox(); |
|
579 | + } |
|
580 | 580 | |
581 | - ?> |
|
581 | + ?> |
|
582 | 582 | </div> |
583 | 583 | |
584 | 584 | </div> |
585 | 585 | <?php |
586 | 586 | |
587 | - return ob_get_clean(); |
|
587 | + return ob_get_clean(); |
|
588 | + |
|
589 | + } |
|
590 | + |
|
591 | + /** |
|
592 | + * Displays a new payment method entry form. |
|
593 | + * |
|
594 | + * @since 1.0.19 |
|
595 | + */ |
|
596 | + public function new_payment_method_entry( $form ) { |
|
597 | + echo "<div class='getpaid-new-payment-method-form' style='display:none;'> " . wp_kses( $form, getpaid_allowed_html() ) . " . </div>"; |
|
598 | + } |
|
599 | + |
|
600 | + /** |
|
601 | + * Grab and display our saved payment methods. |
|
602 | + * |
|
603 | + * @since 1.0.19 |
|
604 | + */ |
|
605 | + public function saved_payment_methods() { |
|
606 | + echo '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">'; |
|
607 | + |
|
608 | + foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) { |
|
609 | + $this->get_saved_payment_method_option_html( $token ); |
|
610 | + } |
|
611 | + |
|
612 | + $this->get_new_payment_method_option_html(); |
|
613 | + echo '</ul>'; |
|
588 | 614 | |
589 | 615 | } |
590 | 616 | |
591 | - /** |
|
592 | - * Displays a new payment method entry form. |
|
593 | - * |
|
594 | - * @since 1.0.19 |
|
595 | - */ |
|
596 | - public function new_payment_method_entry( $form ) { |
|
597 | - echo "<div class='getpaid-new-payment-method-form' style='display:none;'> " . wp_kses( $form, getpaid_allowed_html() ) . " . </div>"; |
|
598 | - } |
|
599 | - |
|
600 | - /** |
|
601 | - * Grab and display our saved payment methods. |
|
602 | - * |
|
603 | - * @since 1.0.19 |
|
604 | - */ |
|
605 | - public function saved_payment_methods() { |
|
606 | - echo '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">'; |
|
607 | - |
|
608 | - foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) { |
|
609 | - $this->get_saved_payment_method_option_html( $token ); |
|
610 | - } |
|
611 | - |
|
612 | - $this->get_new_payment_method_option_html(); |
|
613 | - echo '</ul>'; |
|
614 | - |
|
615 | - } |
|
616 | - |
|
617 | - /** |
|
618 | - * Gets saved payment method HTML from a token. |
|
619 | - * |
|
620 | - * @since 1.0.19 |
|
621 | - * @param array $token Payment Token. |
|
622 | - * @return string Generated payment method HTML |
|
623 | - */ |
|
624 | - public function get_saved_payment_method_option_html( $token ) { |
|
625 | - |
|
626 | - printf( |
|
627 | - '<li class="getpaid-payment-method form-group"> |
|
617 | + /** |
|
618 | + * Gets saved payment method HTML from a token. |
|
619 | + * |
|
620 | + * @since 1.0.19 |
|
621 | + * @param array $token Payment Token. |
|
622 | + * @return string Generated payment method HTML |
|
623 | + */ |
|
624 | + public function get_saved_payment_method_option_html( $token ) { |
|
625 | + |
|
626 | + printf( |
|
627 | + '<li class="getpaid-payment-method form-group"> |
|
628 | 628 | <label> |
629 | 629 | <input name="getpaid-%1$s-payment-method" type="radio" value="%2$s" data-currency="%5$s" style="width:auto;" class="getpaid-saved-payment-method-token-input" %4$s /> |
630 | 630 | <span>%3$s</span> |
631 | 631 | </label> |
632 | 632 | </li>', |
633 | - esc_attr( $this->id ), |
|
634 | - esc_attr( $token['id'] ), |
|
635 | - esc_html( $token['name'] ), |
|
636 | - checked( empty( $token['default'] ), false, false ), |
|
637 | - empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] ) |
|
638 | - ); |
|
639 | - |
|
640 | - } |
|
641 | - |
|
642 | - /** |
|
643 | - * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method. |
|
644 | - * |
|
645 | - * @since 1.0.19 |
|
646 | - */ |
|
647 | - public function get_new_payment_method_option_html() { |
|
648 | - |
|
649 | - $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this ); |
|
650 | - |
|
651 | - printf( |
|
652 | - '<li class="getpaid-new-payment-method"> |
|
633 | + esc_attr( $this->id ), |
|
634 | + esc_attr( $token['id'] ), |
|
635 | + esc_html( $token['name'] ), |
|
636 | + checked( empty( $token['default'] ), false, false ), |
|
637 | + empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] ) |
|
638 | + ); |
|
639 | + |
|
640 | + } |
|
641 | + |
|
642 | + /** |
|
643 | + * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method. |
|
644 | + * |
|
645 | + * @since 1.0.19 |
|
646 | + */ |
|
647 | + public function get_new_payment_method_option_html() { |
|
648 | + |
|
649 | + $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this ); |
|
650 | + |
|
651 | + printf( |
|
652 | + '<li class="getpaid-new-payment-method"> |
|
653 | 653 | <label> |
654 | 654 | <input name="getpaid-%1$s-payment-method" type="radio" data-currency="none" value="new" style="width:auto;" /> |
655 | 655 | <span>%2$s</span> |
656 | 656 | </label> |
657 | 657 | </li>', |
658 | - esc_attr( $this->id ), |
|
659 | - esc_html( $label ) |
|
660 | - ); |
|
661 | - |
|
662 | - } |
|
663 | - |
|
664 | - /** |
|
665 | - * Outputs a checkbox for saving a new payment method to the database. |
|
666 | - * |
|
667 | - * @since 1.0.19 |
|
668 | - */ |
|
669 | - public function save_payment_method_checkbox() { |
|
670 | - |
|
671 | - aui()->input( |
|
672 | - array( |
|
673 | - 'type' => 'checkbox', |
|
674 | - 'name' => esc_attr( "getpaid-$this->id-new-payment-method" ), |
|
675 | - 'id' => esc_attr( uniqid( $this->id ) ), |
|
676 | - 'required' => false, |
|
677 | - 'label' => esc_html__( 'Save payment method', 'invoicing' ), |
|
678 | - 'value' => 'true', |
|
679 | - 'checked' => true, |
|
680 | - 'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1', |
|
681 | - ), |
|
682 | - true |
|
683 | - ); |
|
684 | - |
|
685 | - } |
|
686 | - |
|
687 | - /** |
|
688 | - * Registers the gateway. |
|
689 | - * |
|
690 | - * @return array |
|
691 | - */ |
|
692 | - public function register_gateway( $gateways ) { |
|
693 | - |
|
694 | - $gateways[ $this->id ] = array( |
|
695 | - |
|
696 | - 'admin_label' => $this->method_title, |
|
658 | + esc_attr( $this->id ), |
|
659 | + esc_html( $label ) |
|
660 | + ); |
|
661 | + |
|
662 | + } |
|
663 | + |
|
664 | + /** |
|
665 | + * Outputs a checkbox for saving a new payment method to the database. |
|
666 | + * |
|
667 | + * @since 1.0.19 |
|
668 | + */ |
|
669 | + public function save_payment_method_checkbox() { |
|
670 | + |
|
671 | + aui()->input( |
|
672 | + array( |
|
673 | + 'type' => 'checkbox', |
|
674 | + 'name' => esc_attr( "getpaid-$this->id-new-payment-method" ), |
|
675 | + 'id' => esc_attr( uniqid( $this->id ) ), |
|
676 | + 'required' => false, |
|
677 | + 'label' => esc_html__( 'Save payment method', 'invoicing' ), |
|
678 | + 'value' => 'true', |
|
679 | + 'checked' => true, |
|
680 | + 'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1', |
|
681 | + ), |
|
682 | + true |
|
683 | + ); |
|
684 | + |
|
685 | + } |
|
686 | + |
|
687 | + /** |
|
688 | + * Registers the gateway. |
|
689 | + * |
|
690 | + * @return array |
|
691 | + */ |
|
692 | + public function register_gateway( $gateways ) { |
|
693 | + |
|
694 | + $gateways[ $this->id ] = array( |
|
695 | + |
|
696 | + 'admin_label' => $this->method_title, |
|
697 | 697 | 'checkout_label' => $this->title, |
698 | - 'ordering' => $this->order, |
|
698 | + 'ordering' => $this->order, |
|
699 | 699 | |
700 | - ); |
|
700 | + ); |
|
701 | 701 | |
702 | - return $gateways; |
|
702 | + return $gateways; |
|
703 | 703 | |
704 | - } |
|
704 | + } |
|
705 | 705 | |
706 | - /** |
|
707 | - * Checks whether or not this is a sandbox request. |
|
708 | - * |
|
709 | - * @param WPInv_Invoice|null $invoice Invoice object or null. |
|
710 | - * @return bool |
|
711 | - */ |
|
712 | - public function is_sandbox( $invoice = null ) { |
|
706 | + /** |
|
707 | + * Checks whether or not this is a sandbox request. |
|
708 | + * |
|
709 | + * @param WPInv_Invoice|null $invoice Invoice object or null. |
|
710 | + * @return bool |
|
711 | + */ |
|
712 | + public function is_sandbox( $invoice = null ) { |
|
713 | 713 | |
714 | - if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) { |
|
715 | - return $invoice->get_mode() == 'test'; |
|
716 | - } |
|
714 | + if ( ! empty( $invoice ) && ! $invoice->needs_payment() ) { |
|
715 | + return $invoice->get_mode() == 'test'; |
|
716 | + } |
|
717 | 717 | |
718 | - return wpinv_is_test_mode( $this->id ); |
|
718 | + return wpinv_is_test_mode( $this->id ); |
|
719 | 719 | |
720 | - } |
|
720 | + } |
|
721 | 721 | |
722 | - /** |
|
723 | - * Renames the checkout button |
|
724 | - * |
|
725 | - * @return string |
|
726 | - */ |
|
727 | - public function rename_checkout_button() { |
|
728 | - return $this->checkout_button_text; |
|
729 | - } |
|
722 | + /** |
|
723 | + * Renames the checkout button |
|
724 | + * |
|
725 | + * @return string |
|
726 | + */ |
|
727 | + public function rename_checkout_button() { |
|
728 | + return $this->checkout_button_text; |
|
729 | + } |
|
730 | 730 | |
731 | - /** |
|
732 | - * Validate gateway currency |
|
733 | - * |
|
734 | - * @return bool |
|
735 | - */ |
|
736 | - public function validate_currency( $validation, $currency ) { |
|
731 | + /** |
|
732 | + * Validate gateway currency |
|
733 | + * |
|
734 | + * @return bool |
|
735 | + */ |
|
736 | + public function validate_currency( $validation, $currency ) { |
|
737 | 737 | |
738 | - // Required currencies. |
|
739 | - if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) { |
|
740 | - return false; |
|
741 | - } |
|
738 | + // Required currencies. |
|
739 | + if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) { |
|
740 | + return false; |
|
741 | + } |
|
742 | 742 | |
743 | - // Excluded currencies. |
|
744 | - if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) { |
|
745 | - return false; |
|
746 | - } |
|
743 | + // Excluded currencies. |
|
744 | + if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) { |
|
745 | + return false; |
|
746 | + } |
|
747 | 747 | |
748 | - return $validation; |
|
749 | - } |
|
748 | + return $validation; |
|
749 | + } |
|
750 | 750 | |
751 | - /** |
|
752 | - * Displays an error |
|
753 | - * |
|
754 | - */ |
|
755 | - public function show_error( $code, $message, $type ) { |
|
751 | + /** |
|
752 | + * Displays an error |
|
753 | + * |
|
754 | + */ |
|
755 | + public function show_error( $code, $message, $type ) { |
|
756 | 756 | |
757 | - if ( is_admin() ) { |
|
758 | - getpaid_admin()->{"show_$type"}( $message ); |
|
759 | - } |
|
757 | + if ( is_admin() ) { |
|
758 | + getpaid_admin()->{"show_$type"}( $message ); |
|
759 | + } |
|
760 | 760 | |
761 | - wpinv_set_error( $code, $message, $type ); |
|
761 | + wpinv_set_error( $code, $message, $type ); |
|
762 | 762 | |
763 | - } |
|
763 | + } |
|
764 | 764 | |
765 | 765 | } |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | if ( ! defined( 'ABSPATH' ) ) { |
3 | - exit; |
|
3 | + exit; |
|
4 | 4 | } |
5 | 5 | |
6 | 6 | /** |
@@ -10,55 +10,55 @@ discard block |
||
10 | 10 | class GetPaid_Payment_Form extends GetPaid_Data { |
11 | 11 | |
12 | 12 | /** |
13 | - * Which data store to load. |
|
14 | - * |
|
15 | - * @var string |
|
16 | - */ |
|
13 | + * Which data store to load. |
|
14 | + * |
|
15 | + * @var string |
|
16 | + */ |
|
17 | 17 | protected $data_store_name = 'payment_form'; |
18 | 18 | |
19 | 19 | /** |
20 | - * This is the name of this object type. |
|
21 | - * |
|
22 | - * @var string |
|
23 | - */ |
|
24 | - protected $object_type = 'payment_form'; |
|
20 | + * This is the name of this object type. |
|
21 | + * |
|
22 | + * @var string |
|
23 | + */ |
|
24 | + protected $object_type = 'payment_form'; |
|
25 | 25 | |
26 | 26 | /** |
27 | - * Form Data array. This is the core form data exposed in APIs. |
|
28 | - * |
|
29 | - * @since 1.0.19 |
|
30 | - * @var array |
|
31 | - */ |
|
32 | - protected $data = array( |
|
33 | - 'status' => 'draft', |
|
34 | - 'version' => '', |
|
35 | - 'date_created' => null, |
|
27 | + * Form Data array. This is the core form data exposed in APIs. |
|
28 | + * |
|
29 | + * @since 1.0.19 |
|
30 | + * @var array |
|
31 | + */ |
|
32 | + protected $data = array( |
|
33 | + 'status' => 'draft', |
|
34 | + 'version' => '', |
|
35 | + 'date_created' => null, |
|
36 | 36 | 'date_modified' => null, |
37 | 37 | 'name' => '', |
38 | 38 | 'author' => 1, |
39 | 39 | 'elements' => null, |
40 | - 'items' => null, |
|
41 | - 'earned' => 0, |
|
42 | - 'refunded' => 0, |
|
43 | - 'cancelled' => 0, |
|
44 | - 'failed' => 0, |
|
45 | - ); |
|
46 | - |
|
47 | - /** |
|
48 | - * Stores meta in cache for future reads. |
|
49 | - * |
|
50 | - * A group must be set to to enable caching. |
|
51 | - * |
|
52 | - * @var string |
|
53 | - */ |
|
54 | - protected $cache_group = 'getpaid_forms'; |
|
55 | - |
|
56 | - /** |
|
57 | - * Stores a reference to the invoice if the form is for an invoice.. |
|
58 | - * |
|
59 | - * @var WPInv_Invoice |
|
60 | - */ |
|
61 | - public $invoice = 0; |
|
40 | + 'items' => null, |
|
41 | + 'earned' => 0, |
|
42 | + 'refunded' => 0, |
|
43 | + 'cancelled' => 0, |
|
44 | + 'failed' => 0, |
|
45 | + ); |
|
46 | + |
|
47 | + /** |
|
48 | + * Stores meta in cache for future reads. |
|
49 | + * |
|
50 | + * A group must be set to to enable caching. |
|
51 | + * |
|
52 | + * @var string |
|
53 | + */ |
|
54 | + protected $cache_group = 'getpaid_forms'; |
|
55 | + |
|
56 | + /** |
|
57 | + * Stores a reference to the invoice if the form is for an invoice.. |
|
58 | + * |
|
59 | + * @var WPInv_Invoice |
|
60 | + */ |
|
61 | + public $invoice = 0; |
|
62 | 62 | |
63 | 63 | /** |
64 | 64 | * Stores a reference to the original WP_Post object |
@@ -68,35 +68,35 @@ discard block |
||
68 | 68 | protected $post = null; |
69 | 69 | |
70 | 70 | /** |
71 | - * Get the form if ID is passed, otherwise the form is new and empty. |
|
72 | - * |
|
73 | - * @param int|object|GetPaid_Payment_Form|WP_Post $form Form to read. |
|
74 | - */ |
|
75 | - public function __construct( $form = 0 ) { |
|
76 | - parent::__construct( $form ); |
|
71 | + * Get the form if ID is passed, otherwise the form is new and empty. |
|
72 | + * |
|
73 | + * @param int|object|GetPaid_Payment_Form|WP_Post $form Form to read. |
|
74 | + */ |
|
75 | + public function __construct( $form = 0 ) { |
|
76 | + parent::__construct( $form ); |
|
77 | 77 | |
78 | - if ( is_numeric( $form ) && $form > 0 ) { |
|
79 | - $this->set_id( $form ); |
|
80 | - } elseif ( $form instanceof self ) { |
|
78 | + if ( is_numeric( $form ) && $form > 0 ) { |
|
79 | + $this->set_id( $form ); |
|
80 | + } elseif ( $form instanceof self ) { |
|
81 | 81 | |
82 | - $this->set_id( $form->get_id() ); |
|
83 | - $this->invoice = $form->invoice; |
|
82 | + $this->set_id( $form->get_id() ); |
|
83 | + $this->invoice = $form->invoice; |
|
84 | 84 | |
85 | - } elseif ( ! empty( $form->ID ) ) { |
|
86 | - $this->set_id( $form->ID ); |
|
87 | - } else { |
|
88 | - $this->set_object_read( true ); |
|
89 | - } |
|
85 | + } elseif ( ! empty( $form->ID ) ) { |
|
86 | + $this->set_id( $form->ID ); |
|
87 | + } else { |
|
88 | + $this->set_object_read( true ); |
|
89 | + } |
|
90 | 90 | |
91 | 91 | // Load the datastore. |
92 | - $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
92 | + $this->data_store = GetPaid_Data_Store::load( $this->data_store_name ); |
|
93 | 93 | |
94 | - if ( $this->get_id() > 0 ) { |
|
94 | + if ( $this->get_id() > 0 ) { |
|
95 | 95 | $this->post = get_post( $this->get_id() ); |
96 | - $this->data_store->read( $this ); |
|
96 | + $this->data_store->read( $this ); |
|
97 | 97 | } |
98 | 98 | |
99 | - } |
|
99 | + } |
|
100 | 100 | |
101 | 101 | /* |
102 | 102 | |-------------------------------------------------------------------------- |
@@ -114,356 +114,356 @@ discard block |
||
114 | 114 | */ |
115 | 115 | |
116 | 116 | /** |
117 | - * Get plugin version when the form was created. |
|
118 | - * |
|
119 | - * @since 1.0.19 |
|
120 | - * @param string $context View or edit context. |
|
121 | - * @return string |
|
122 | - */ |
|
123 | - public function get_version( $context = 'view' ) { |
|
124 | - return $this->get_prop( 'version', $context ); |
|
117 | + * Get plugin version when the form was created. |
|
118 | + * |
|
119 | + * @since 1.0.19 |
|
120 | + * @param string $context View or edit context. |
|
121 | + * @return string |
|
122 | + */ |
|
123 | + public function get_version( $context = 'view' ) { |
|
124 | + return $this->get_prop( 'version', $context ); |
|
125 | 125 | } |
126 | 126 | |
127 | 127 | /** |
128 | - * Get date when the form was created. |
|
129 | - * |
|
130 | - * @since 1.0.19 |
|
131 | - * @param string $context View or edit context. |
|
132 | - * @return string |
|
133 | - */ |
|
134 | - public function get_date_created( $context = 'view' ) { |
|
135 | - return $this->get_prop( 'date_created', $context ); |
|
128 | + * Get date when the form was created. |
|
129 | + * |
|
130 | + * @since 1.0.19 |
|
131 | + * @param string $context View or edit context. |
|
132 | + * @return string |
|
133 | + */ |
|
134 | + public function get_date_created( $context = 'view' ) { |
|
135 | + return $this->get_prop( 'date_created', $context ); |
|
136 | 136 | } |
137 | 137 | |
138 | 138 | /** |
139 | - * Get GMT date when the form was created. |
|
140 | - * |
|
141 | - * @since 1.0.19 |
|
142 | - * @param string $context View or edit context. |
|
143 | - * @return string |
|
144 | - */ |
|
145 | - public function get_date_created_gmt( $context = 'view' ) { |
|
139 | + * Get GMT date when the form was created. |
|
140 | + * |
|
141 | + * @since 1.0.19 |
|
142 | + * @param string $context View or edit context. |
|
143 | + * @return string |
|
144 | + */ |
|
145 | + public function get_date_created_gmt( $context = 'view' ) { |
|
146 | 146 | $date = $this->get_date_created( $context ); |
147 | 147 | |
148 | 148 | if ( $date ) { |
149 | 149 | $date = get_gmt_from_date( $date ); |
150 | 150 | } |
151 | - return $date; |
|
151 | + return $date; |
|
152 | 152 | } |
153 | 153 | |
154 | 154 | /** |
155 | - * Get date when the form was last modified. |
|
156 | - * |
|
157 | - * @since 1.0.19 |
|
158 | - * @param string $context View or edit context. |
|
159 | - * @return string |
|
160 | - */ |
|
161 | - public function get_date_modified( $context = 'view' ) { |
|
162 | - return $this->get_prop( 'date_modified', $context ); |
|
155 | + * Get date when the form was last modified. |
|
156 | + * |
|
157 | + * @since 1.0.19 |
|
158 | + * @param string $context View or edit context. |
|
159 | + * @return string |
|
160 | + */ |
|
161 | + public function get_date_modified( $context = 'view' ) { |
|
162 | + return $this->get_prop( 'date_modified', $context ); |
|
163 | 163 | } |
164 | 164 | |
165 | 165 | /** |
166 | - * Get GMT date when the form was last modified. |
|
167 | - * |
|
168 | - * @since 1.0.19 |
|
169 | - * @param string $context View or edit context. |
|
170 | - * @return string |
|
171 | - */ |
|
172 | - public function get_date_modified_gmt( $context = 'view' ) { |
|
166 | + * Get GMT date when the form was last modified. |
|
167 | + * |
|
168 | + * @since 1.0.19 |
|
169 | + * @param string $context View or edit context. |
|
170 | + * @return string |
|
171 | + */ |
|
172 | + public function get_date_modified_gmt( $context = 'view' ) { |
|
173 | 173 | $date = $this->get_date_modified( $context ); |
174 | 174 | |
175 | 175 | if ( $date ) { |
176 | 176 | $date = get_gmt_from_date( $date ); |
177 | 177 | } |
178 | - return $date; |
|
178 | + return $date; |
|
179 | 179 | } |
180 | 180 | |
181 | 181 | /** |
182 | - * Get the form name. |
|
183 | - * |
|
184 | - * @since 1.0.19 |
|
185 | - * @param string $context View or edit context. |
|
186 | - * @return string |
|
187 | - */ |
|
188 | - public function get_name( $context = 'view' ) { |
|
189 | - return $this->get_prop( 'name', $context ); |
|
182 | + * Get the form name. |
|
183 | + * |
|
184 | + * @since 1.0.19 |
|
185 | + * @param string $context View or edit context. |
|
186 | + * @return string |
|
187 | + */ |
|
188 | + public function get_name( $context = 'view' ) { |
|
189 | + return $this->get_prop( 'name', $context ); |
|
190 | 190 | } |
191 | 191 | |
192 | 192 | /** |
193 | - * Alias of self::get_name(). |
|
194 | - * |
|
195 | - * @since 1.0.19 |
|
196 | - * @param string $context View or edit context. |
|
197 | - * @return string |
|
198 | - */ |
|
199 | - public function get_title( $context = 'view' ) { |
|
200 | - return $this->get_name( $context ); |
|
201 | - } |
|
193 | + * Alias of self::get_name(). |
|
194 | + * |
|
195 | + * @since 1.0.19 |
|
196 | + * @param string $context View or edit context. |
|
197 | + * @return string |
|
198 | + */ |
|
199 | + public function get_title( $context = 'view' ) { |
|
200 | + return $this->get_name( $context ); |
|
201 | + } |
|
202 | 202 | |
203 | 203 | /** |
204 | - * Get the owner of the form. |
|
205 | - * |
|
206 | - * @since 1.0.19 |
|
207 | - * @param string $context View or edit context. |
|
208 | - * @return int |
|
209 | - */ |
|
210 | - public function get_author( $context = 'view' ) { |
|
211 | - return (int) $this->get_prop( 'author', $context ); |
|
204 | + * Get the owner of the form. |
|
205 | + * |
|
206 | + * @since 1.0.19 |
|
207 | + * @param string $context View or edit context. |
|
208 | + * @return int |
|
209 | + */ |
|
210 | + public function get_author( $context = 'view' ) { |
|
211 | + return (int) $this->get_prop( 'author', $context ); |
|
212 | 212 | } |
213 | 213 | |
214 | 214 | /** |
215 | - * Get the elements that make up the form. |
|
216 | - * |
|
217 | - * @since 1.0.19 |
|
218 | - * @param string $context View or edit context. |
|
219 | - * @return array |
|
220 | - */ |
|
221 | - public function get_elements( $context = 'view' ) { |
|
222 | - $elements = $this->get_prop( 'elements', $context ); |
|
215 | + * Get the elements that make up the form. |
|
216 | + * |
|
217 | + * @since 1.0.19 |
|
218 | + * @param string $context View or edit context. |
|
219 | + * @return array |
|
220 | + */ |
|
221 | + public function get_elements( $context = 'view' ) { |
|
222 | + $elements = $this->get_prop( 'elements', $context ); |
|
223 | 223 | |
224 | - if ( empty( $elements ) || ! is_array( $elements ) ) { |
|
224 | + if ( empty( $elements ) || ! is_array( $elements ) ) { |
|
225 | 225 | return wpinv_get_data( 'sample-payment-form' ); |
226 | - } |
|
226 | + } |
|
227 | 227 | |
228 | - // Ensure that all required elements exist. |
|
229 | - $_elements = array(); |
|
230 | - foreach ( $elements as $element ) { |
|
228 | + // Ensure that all required elements exist. |
|
229 | + $_elements = array(); |
|
230 | + foreach ( $elements as $element ) { |
|
231 | 231 | |
232 | - if ( $element['type'] == 'pay_button' && ! $this->has_element_type( 'gateway_select' ) ) { |
|
232 | + if ( $element['type'] == 'pay_button' && ! $this->has_element_type( 'gateway_select' ) ) { |
|
233 | 233 | |
234 | - $_elements[] = array( |
|
235 | - 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
236 | - 'id' => 'gtscicd', |
|
237 | - 'name' => 'gtscicd', |
|
238 | - 'type' => 'gateway_select', |
|
239 | - 'premade' => true, |
|
234 | + $_elements[] = array( |
|
235 | + 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
236 | + 'id' => 'gtscicd', |
|
237 | + 'name' => 'gtscicd', |
|
238 | + 'type' => 'gateway_select', |
|
239 | + 'premade' => true, |
|
240 | 240 | |
241 | - ); |
|
241 | + ); |
|
242 | 242 | |
243 | - } |
|
243 | + } |
|
244 | 244 | |
245 | - $_elements[] = $element; |
|
245 | + $_elements[] = $element; |
|
246 | 246 | |
247 | - } |
|
247 | + } |
|
248 | 248 | |
249 | 249 | return $_elements; |
250 | - } |
|
251 | - |
|
252 | - /** |
|
253 | - * Get the items sold via the form. |
|
254 | - * |
|
255 | - * @since 1.0.19 |
|
256 | - * @param string $context View or edit context. |
|
257 | - * @param string $return objects or arrays. |
|
258 | - * @return GetPaid_Form_Item[] |
|
259 | - */ |
|
260 | - public function get_items( $context = 'view', $return = 'objects' ) { |
|
261 | - $items = $this->get_prop( 'items', $context ); |
|
262 | - |
|
263 | - if ( empty( $items ) || ! is_array( $items ) ) { |
|
250 | + } |
|
251 | + |
|
252 | + /** |
|
253 | + * Get the items sold via the form. |
|
254 | + * |
|
255 | + * @since 1.0.19 |
|
256 | + * @param string $context View or edit context. |
|
257 | + * @param string $return objects or arrays. |
|
258 | + * @return GetPaid_Form_Item[] |
|
259 | + */ |
|
260 | + public function get_items( $context = 'view', $return = 'objects' ) { |
|
261 | + $items = $this->get_prop( 'items', $context ); |
|
262 | + |
|
263 | + if ( empty( $items ) || ! is_array( $items ) ) { |
|
264 | 264 | $items = wpinv_get_data( 'sample-payment-form-items' ); |
265 | - } |
|
265 | + } |
|
266 | 266 | |
267 | - // Convert the items. |
|
268 | - $prepared = array(); |
|
267 | + // Convert the items. |
|
268 | + $prepared = array(); |
|
269 | 269 | |
270 | - foreach ( $items as $key => $value ) { |
|
270 | + foreach ( $items as $key => $value ) { |
|
271 | 271 | |
272 | - // Form items. |
|
273 | - if ( $value instanceof GetPaid_Form_Item ) { |
|
272 | + // Form items. |
|
273 | + if ( $value instanceof GetPaid_Form_Item ) { |
|
274 | 274 | |
275 | - if ( $value->can_purchase() ) { |
|
276 | - $prepared[] = $value; |
|
277 | - } |
|
275 | + if ( $value->can_purchase() ) { |
|
276 | + $prepared[] = $value; |
|
277 | + } |
|
278 | 278 | |
279 | - continue; |
|
279 | + continue; |
|
280 | 280 | |
281 | - } |
|
281 | + } |
|
282 | 282 | |
283 | - // $item_id => $quantity (buy buttons) |
|
284 | - if ( is_numeric( $key ) && is_numeric( $value ) ) { |
|
285 | - $item = new GetPaid_Form_Item( $key ); |
|
283 | + // $item_id => $quantity (buy buttons) |
|
284 | + if ( is_numeric( $key ) && is_numeric( $value ) ) { |
|
285 | + $item = new GetPaid_Form_Item( $key ); |
|
286 | 286 | |
287 | - if ( $item->can_purchase() ) { |
|
287 | + if ( $item->can_purchase() ) { |
|
288 | 288 | |
289 | - $value = (float) $value; |
|
290 | - $item->set_quantity( $value ); |
|
291 | - if ( 0 == $value ) { |
|
292 | - $item->set_quantity( 1 ); |
|
293 | - $item->set_allow_quantities( true ); |
|
294 | - } |
|
289 | + $value = (float) $value; |
|
290 | + $item->set_quantity( $value ); |
|
291 | + if ( 0 == $value ) { |
|
292 | + $item->set_quantity( 1 ); |
|
293 | + $item->set_allow_quantities( true ); |
|
294 | + } |
|
295 | 295 | |
296 | - $prepared[] = $item; |
|
297 | - } |
|
296 | + $prepared[] = $item; |
|
297 | + } |
|
298 | 298 | |
299 | - continue; |
|
300 | - } |
|
299 | + continue; |
|
300 | + } |
|
301 | 301 | |
302 | - // Items saved via payment forms editor. |
|
303 | - if ( is_array( $value ) && isset( $value['id'] ) ) { |
|
302 | + // Items saved via payment forms editor. |
|
303 | + if ( is_array( $value ) && isset( $value['id'] ) ) { |
|
304 | 304 | |
305 | - $item = new GetPaid_Form_Item( $value['id'] ); |
|
305 | + $item = new GetPaid_Form_Item( $value['id'] ); |
|
306 | 306 | |
307 | - if ( ! $item->can_purchase() ) { |
|
308 | - continue; |
|
309 | - } |
|
307 | + if ( ! $item->can_purchase() ) { |
|
308 | + continue; |
|
309 | + } |
|
310 | 310 | |
311 | - // Sub-total (Cart items). |
|
312 | - if ( isset( $value['subtotal'] ) ) { |
|
313 | - $item->set_price( $value['subtotal'] ); |
|
314 | - } |
|
311 | + // Sub-total (Cart items). |
|
312 | + if ( isset( $value['subtotal'] ) ) { |
|
313 | + $item->set_price( $value['subtotal'] ); |
|
314 | + } |
|
315 | 315 | |
316 | - if ( isset( $value['quantity'] ) ) { |
|
317 | - $item->set_quantity( $value['quantity'] ); |
|
318 | - } |
|
316 | + if ( isset( $value['quantity'] ) ) { |
|
317 | + $item->set_quantity( $value['quantity'] ); |
|
318 | + } |
|
319 | 319 | |
320 | - if ( isset( $value['allow_quantities'] ) ) { |
|
321 | - $item->set_allow_quantities( $value['allow_quantities'] ); |
|
322 | - } |
|
320 | + if ( isset( $value['allow_quantities'] ) ) { |
|
321 | + $item->set_allow_quantities( $value['allow_quantities'] ); |
|
322 | + } |
|
323 | 323 | |
324 | - if ( isset( $value['required'] ) ) { |
|
325 | - $item->set_is_required( $value['required'] ); |
|
326 | - } |
|
324 | + if ( isset( $value['required'] ) ) { |
|
325 | + $item->set_is_required( $value['required'] ); |
|
326 | + } |
|
327 | 327 | |
328 | - if ( isset( $value['description'] ) ) { |
|
329 | - $item->set_custom_description( $value['description'] ); |
|
330 | - } |
|
328 | + if ( isset( $value['description'] ) ) { |
|
329 | + $item->set_custom_description( $value['description'] ); |
|
330 | + } |
|
331 | 331 | |
332 | - $prepared[] = $item; |
|
333 | - continue; |
|
332 | + $prepared[] = $item; |
|
333 | + continue; |
|
334 | 334 | |
335 | - } |
|
335 | + } |
|
336 | 336 | |
337 | - // $item_id => array( 'price' => 10 ) (item variations) |
|
338 | - if ( is_numeric( $key ) && is_array( $value ) ) { |
|
339 | - $item = new GetPaid_Form_Item( $key ); |
|
337 | + // $item_id => array( 'price' => 10 ) (item variations) |
|
338 | + if ( is_numeric( $key ) && is_array( $value ) ) { |
|
339 | + $item = new GetPaid_Form_Item( $key ); |
|
340 | 340 | |
341 | - if ( isset( $value['price'] ) && $item->user_can_set_their_price() ) { |
|
342 | - $item->set_price( $value['price'] ); |
|
343 | - } |
|
341 | + if ( isset( $value['price'] ) && $item->user_can_set_their_price() ) { |
|
342 | + $item->set_price( $value['price'] ); |
|
343 | + } |
|
344 | 344 | |
345 | - if ( $item->can_purchase() ) { |
|
346 | - $prepared[] = $item; |
|
347 | - } |
|
345 | + if ( $item->can_purchase() ) { |
|
346 | + $prepared[] = $item; |
|
347 | + } |
|
348 | 348 | |
349 | - continue; |
|
350 | - } |
|
349 | + continue; |
|
350 | + } |
|
351 | 351 | } |
352 | 352 | |
353 | - if ( 'objects' == $return && 'view' == $context ) { |
|
354 | - return $prepared; |
|
355 | - } |
|
356 | - |
|
357 | - $items = array(); |
|
358 | - foreach ( $prepared as $item ) { |
|
359 | - $items[] = $item->prepare_data_for_use(); |
|
360 | - } |
|
361 | - |
|
362 | - return $items; |
|
363 | - } |
|
364 | - |
|
365 | - /** |
|
366 | - * Get a single item belonging to the form. |
|
367 | - * |
|
368 | - * @since 1.0.19 |
|
369 | - * @param int $item_id The item id to return. |
|
370 | - * @return GetPaid_Form_Item|bool |
|
371 | - */ |
|
372 | - public function get_item( $item_id ) { |
|
373 | - |
|
374 | - if ( empty( $item_id ) || ! is_numeric( $item_id ) ) { |
|
375 | - return false; |
|
376 | - } |
|
377 | - |
|
378 | - foreach ( $this->get_items() as $item ) { |
|
379 | - if ( $item->get_id() == (int) $item_id ) { |
|
380 | - return $item; |
|
381 | - } |
|
382 | - } |
|
383 | - |
|
384 | - return false; |
|
385 | - |
|
386 | - } |
|
387 | - |
|
388 | - /** |
|
389 | - * Gets a single element. |
|
390 | - * |
|
391 | - * @since 1.0.19 |
|
392 | - * @param string $element_type The element type to return. |
|
393 | - * @return array|bool |
|
394 | - */ |
|
395 | - public function get_element_type( $element_type ) { |
|
396 | - |
|
397 | - if ( empty( $element_type ) || ! is_scalar( $element_type ) ) { |
|
398 | - return false; |
|
399 | - } |
|
400 | - |
|
401 | - foreach ( $this->get_prop( 'elements' ) as $element ) { |
|
402 | - |
|
403 | - if ( $element['type'] == $element_type ) { |
|
404 | - return $element; |
|
405 | - } |
|
353 | + if ( 'objects' == $return && 'view' == $context ) { |
|
354 | + return $prepared; |
|
355 | + } |
|
356 | + |
|
357 | + $items = array(); |
|
358 | + foreach ( $prepared as $item ) { |
|
359 | + $items[] = $item->prepare_data_for_use(); |
|
360 | + } |
|
361 | + |
|
362 | + return $items; |
|
363 | + } |
|
364 | + |
|
365 | + /** |
|
366 | + * Get a single item belonging to the form. |
|
367 | + * |
|
368 | + * @since 1.0.19 |
|
369 | + * @param int $item_id The item id to return. |
|
370 | + * @return GetPaid_Form_Item|bool |
|
371 | + */ |
|
372 | + public function get_item( $item_id ) { |
|
373 | + |
|
374 | + if ( empty( $item_id ) || ! is_numeric( $item_id ) ) { |
|
375 | + return false; |
|
376 | + } |
|
377 | + |
|
378 | + foreach ( $this->get_items() as $item ) { |
|
379 | + if ( $item->get_id() == (int) $item_id ) { |
|
380 | + return $item; |
|
381 | + } |
|
382 | + } |
|
383 | + |
|
384 | + return false; |
|
385 | + |
|
386 | + } |
|
387 | + |
|
388 | + /** |
|
389 | + * Gets a single element. |
|
390 | + * |
|
391 | + * @since 1.0.19 |
|
392 | + * @param string $element_type The element type to return. |
|
393 | + * @return array|bool |
|
394 | + */ |
|
395 | + public function get_element_type( $element_type ) { |
|
396 | + |
|
397 | + if ( empty( $element_type ) || ! is_scalar( $element_type ) ) { |
|
398 | + return false; |
|
399 | + } |
|
400 | + |
|
401 | + foreach ( $this->get_prop( 'elements' ) as $element ) { |
|
402 | + |
|
403 | + if ( $element['type'] == $element_type ) { |
|
404 | + return $element; |
|
405 | + } |
|
406 | 406 | } |
407 | 407 | |
408 | - return false; |
|
409 | - |
|
410 | - } |
|
411 | - |
|
412 | - /** |
|
413 | - * Get the total amount earned via this form. |
|
414 | - * |
|
415 | - * @since 1.0.19 |
|
416 | - * @param string $context View or edit context. |
|
417 | - * @return float |
|
418 | - */ |
|
419 | - public function get_earned( $context = 'view' ) { |
|
420 | - return $this->get_prop( 'earned', $context ); |
|
421 | - } |
|
422 | - |
|
423 | - /** |
|
424 | - * Get the total amount refunded via this form. |
|
425 | - * |
|
426 | - * @since 1.0.19 |
|
427 | - * @param string $context View or edit context. |
|
428 | - * @return float |
|
429 | - */ |
|
430 | - public function get_refunded( $context = 'view' ) { |
|
431 | - return $this->get_prop( 'refunded', $context ); |
|
432 | - } |
|
433 | - |
|
434 | - /** |
|
435 | - * Get the total amount cancelled via this form. |
|
436 | - * |
|
437 | - * @since 1.0.19 |
|
438 | - * @param string $context View or edit context. |
|
439 | - * @return float |
|
440 | - */ |
|
441 | - public function get_cancelled( $context = 'view' ) { |
|
442 | - return $this->get_prop( 'cancelled', $context ); |
|
443 | - } |
|
444 | - |
|
445 | - /** |
|
446 | - * Get the total amount failed via this form. |
|
447 | - * |
|
448 | - * @since 1.0.19 |
|
449 | - * @param string $context View or edit context. |
|
450 | - * @return float |
|
451 | - */ |
|
452 | - public function get_failed( $context = 'view' ) { |
|
453 | - return $this->get_prop( 'failed', $context ); |
|
454 | - } |
|
455 | - |
|
456 | - /** |
|
457 | - * Get the currency. |
|
458 | - * |
|
459 | - * @since 1.0.19 |
|
460 | - * @param string $context View or edit context. |
|
461 | - * @return string |
|
462 | - */ |
|
463 | - public function get_currency() { |
|
464 | - $currency = empty( $this->invoice ) ? wpinv_get_currency() : $this->invoice->get_currency(); |
|
465 | - return apply_filters( 'getpaid-payment-form-currency', $currency, $this ); |
|
466 | - } |
|
408 | + return false; |
|
409 | + |
|
410 | + } |
|
411 | + |
|
412 | + /** |
|
413 | + * Get the total amount earned via this form. |
|
414 | + * |
|
415 | + * @since 1.0.19 |
|
416 | + * @param string $context View or edit context. |
|
417 | + * @return float |
|
418 | + */ |
|
419 | + public function get_earned( $context = 'view' ) { |
|
420 | + return $this->get_prop( 'earned', $context ); |
|
421 | + } |
|
422 | + |
|
423 | + /** |
|
424 | + * Get the total amount refunded via this form. |
|
425 | + * |
|
426 | + * @since 1.0.19 |
|
427 | + * @param string $context View or edit context. |
|
428 | + * @return float |
|
429 | + */ |
|
430 | + public function get_refunded( $context = 'view' ) { |
|
431 | + return $this->get_prop( 'refunded', $context ); |
|
432 | + } |
|
433 | + |
|
434 | + /** |
|
435 | + * Get the total amount cancelled via this form. |
|
436 | + * |
|
437 | + * @since 1.0.19 |
|
438 | + * @param string $context View or edit context. |
|
439 | + * @return float |
|
440 | + */ |
|
441 | + public function get_cancelled( $context = 'view' ) { |
|
442 | + return $this->get_prop( 'cancelled', $context ); |
|
443 | + } |
|
444 | + |
|
445 | + /** |
|
446 | + * Get the total amount failed via this form. |
|
447 | + * |
|
448 | + * @since 1.0.19 |
|
449 | + * @param string $context View or edit context. |
|
450 | + * @return float |
|
451 | + */ |
|
452 | + public function get_failed( $context = 'view' ) { |
|
453 | + return $this->get_prop( 'failed', $context ); |
|
454 | + } |
|
455 | + |
|
456 | + /** |
|
457 | + * Get the currency. |
|
458 | + * |
|
459 | + * @since 1.0.19 |
|
460 | + * @param string $context View or edit context. |
|
461 | + * @return string |
|
462 | + */ |
|
463 | + public function get_currency() { |
|
464 | + $currency = empty( $this->invoice ) ? wpinv_get_currency() : $this->invoice->get_currency(); |
|
465 | + return apply_filters( 'getpaid-payment-form-currency', $currency, $this ); |
|
466 | + } |
|
467 | 467 | |
468 | 468 | /* |
469 | 469 | |-------------------------------------------------------------------------- |
@@ -476,22 +476,22 @@ discard block |
||
476 | 476 | */ |
477 | 477 | |
478 | 478 | /** |
479 | - * Set plugin version when the item was created. |
|
480 | - * |
|
481 | - * @since 1.0.19 |
|
482 | - */ |
|
483 | - public function set_version( $value ) { |
|
484 | - $this->set_prop( 'version', $value ); |
|
479 | + * Set plugin version when the item was created. |
|
480 | + * |
|
481 | + * @since 1.0.19 |
|
482 | + */ |
|
483 | + public function set_version( $value ) { |
|
484 | + $this->set_prop( 'version', $value ); |
|
485 | 485 | } |
486 | 486 | |
487 | 487 | /** |
488 | - * Set date when the item was created. |
|
489 | - * |
|
490 | - * @since 1.0.19 |
|
491 | - * @param string $value Value to set. |
|
488 | + * Set date when the item was created. |
|
489 | + * |
|
490 | + * @since 1.0.19 |
|
491 | + * @param string $value Value to set. |
|
492 | 492 | * @return bool Whether or not the date was set. |
493 | - */ |
|
494 | - public function set_date_created( $value ) { |
|
493 | + */ |
|
494 | + public function set_date_created( $value ) { |
|
495 | 495 | $date = strtotime( $value ); |
496 | 496 | |
497 | 497 | if ( $date ) { |
@@ -504,13 +504,13 @@ discard block |
||
504 | 504 | } |
505 | 505 | |
506 | 506 | /** |
507 | - * Set date when the item was last modified. |
|
508 | - * |
|
509 | - * @since 1.0.19 |
|
510 | - * @param string $value Value to set. |
|
507 | + * Set date when the item was last modified. |
|
508 | + * |
|
509 | + * @since 1.0.19 |
|
510 | + * @param string $value Value to set. |
|
511 | 511 | * @return bool Whether or not the date was set. |
512 | - */ |
|
513 | - public function set_date_modified( $value ) { |
|
512 | + */ |
|
513 | + public function set_date_modified( $value ) { |
|
514 | 514 | $date = strtotime( $value ); |
515 | 515 | |
516 | 516 | if ( $date ) { |
@@ -523,164 +523,164 @@ discard block |
||
523 | 523 | } |
524 | 524 | |
525 | 525 | /** |
526 | - * Set the item name. |
|
527 | - * |
|
528 | - * @since 1.0.19 |
|
529 | - * @param string $value New name. |
|
530 | - */ |
|
531 | - public function set_name( $value ) { |
|
532 | - $this->set_prop( 'name', sanitize_text_field( $value ) ); |
|
533 | - } |
|
534 | - |
|
535 | - /** |
|
536 | - * Alias of self::set_name(). |
|
537 | - * |
|
538 | - * @since 1.0.19 |
|
539 | - * @param string $value New name. |
|
540 | - */ |
|
541 | - public function set_title( $value ) { |
|
542 | - $this->set_name( $value ); |
|
543 | - } |
|
544 | - |
|
545 | - /** |
|
546 | - * Set the owner of the item. |
|
547 | - * |
|
548 | - * @since 1.0.19 |
|
549 | - * @param int $value New author. |
|
550 | - */ |
|
551 | - public function set_author( $value ) { |
|
552 | - $this->set_prop( 'author', (int) $value ); |
|
553 | - } |
|
554 | - |
|
555 | - /** |
|
556 | - * Set the form elements. |
|
557 | - * |
|
558 | - * @since 1.0.19 |
|
559 | - * @sinve 2.3.4 Array values sanitized. |
|
560 | - * @param array $value Form elements. |
|
561 | - */ |
|
562 | - public function set_elements( $value ) { |
|
563 | - if ( is_array( $value ) ) { |
|
564 | - $this->set_prop( 'elements', wp_kses_post_deep( $value ) ); |
|
565 | - } |
|
566 | - } |
|
567 | - |
|
568 | - /** |
|
569 | - * Sanitize array values. |
|
570 | - * |
|
571 | - * @param $value |
|
572 | - * |
|
573 | - * @return mixed |
|
574 | - */ |
|
575 | - public function sanitize_array_values( $value ) { |
|
576 | - |
|
577 | - // sanitize |
|
578 | - if ( ! empty( $value ) ) { |
|
579 | - |
|
580 | - foreach ( $value as $key => $val_arr ) { |
|
581 | - |
|
582 | - if ( is_array( $val_arr ) ) { |
|
583 | - // check if we have sub array items. |
|
584 | - $sub_arr = array(); |
|
585 | - foreach ( $val_arr as $key2 => $val2 ) { |
|
586 | - if ( is_array( $val2 ) ) { |
|
587 | - $sub_arr[ $key2 ] = $this->sanitize_array_values( $val2 ); |
|
588 | - unset( $val_arr[ $key ][ $key2 ] ); |
|
589 | - } |
|
590 | - } |
|
591 | - |
|
592 | - // we allow some html in description so we sanitize it separately. |
|
593 | - $help_text = ! empty( $val_arr['description'] ) ? wp_kses_post( $val_arr['description'] ) : ''; |
|
594 | - |
|
595 | - // sanitize array elements |
|
596 | - $value[ $key ] = array_map( 'sanitize_text_field', $val_arr ); |
|
597 | - |
|
598 | - // add back the description if set |
|
599 | - if ( isset( $val_arr['description'] ) ) { |
|
526 | + * Set the item name. |
|
527 | + * |
|
528 | + * @since 1.0.19 |
|
529 | + * @param string $value New name. |
|
530 | + */ |
|
531 | + public function set_name( $value ) { |
|
532 | + $this->set_prop( 'name', sanitize_text_field( $value ) ); |
|
533 | + } |
|
534 | + |
|
535 | + /** |
|
536 | + * Alias of self::set_name(). |
|
537 | + * |
|
538 | + * @since 1.0.19 |
|
539 | + * @param string $value New name. |
|
540 | + */ |
|
541 | + public function set_title( $value ) { |
|
542 | + $this->set_name( $value ); |
|
543 | + } |
|
544 | + |
|
545 | + /** |
|
546 | + * Set the owner of the item. |
|
547 | + * |
|
548 | + * @since 1.0.19 |
|
549 | + * @param int $value New author. |
|
550 | + */ |
|
551 | + public function set_author( $value ) { |
|
552 | + $this->set_prop( 'author', (int) $value ); |
|
553 | + } |
|
554 | + |
|
555 | + /** |
|
556 | + * Set the form elements. |
|
557 | + * |
|
558 | + * @since 1.0.19 |
|
559 | + * @sinve 2.3.4 Array values sanitized. |
|
560 | + * @param array $value Form elements. |
|
561 | + */ |
|
562 | + public function set_elements( $value ) { |
|
563 | + if ( is_array( $value ) ) { |
|
564 | + $this->set_prop( 'elements', wp_kses_post_deep( $value ) ); |
|
565 | + } |
|
566 | + } |
|
567 | + |
|
568 | + /** |
|
569 | + * Sanitize array values. |
|
570 | + * |
|
571 | + * @param $value |
|
572 | + * |
|
573 | + * @return mixed |
|
574 | + */ |
|
575 | + public function sanitize_array_values( $value ) { |
|
576 | + |
|
577 | + // sanitize |
|
578 | + if ( ! empty( $value ) ) { |
|
579 | + |
|
580 | + foreach ( $value as $key => $val_arr ) { |
|
581 | + |
|
582 | + if ( is_array( $val_arr ) ) { |
|
583 | + // check if we have sub array items. |
|
584 | + $sub_arr = array(); |
|
585 | + foreach ( $val_arr as $key2 => $val2 ) { |
|
586 | + if ( is_array( $val2 ) ) { |
|
587 | + $sub_arr[ $key2 ] = $this->sanitize_array_values( $val2 ); |
|
588 | + unset( $val_arr[ $key ][ $key2 ] ); |
|
589 | + } |
|
590 | + } |
|
591 | + |
|
592 | + // we allow some html in description so we sanitize it separately. |
|
593 | + $help_text = ! empty( $val_arr['description'] ) ? wp_kses_post( $val_arr['description'] ) : ''; |
|
594 | + |
|
595 | + // sanitize array elements |
|
596 | + $value[ $key ] = array_map( 'sanitize_text_field', $val_arr ); |
|
597 | + |
|
598 | + // add back the description if set |
|
599 | + if ( isset( $val_arr['description'] ) ) { |
|
600 | 600 | $value[ $key ]['description'] = $help_text;} |
601 | 601 | |
602 | - // add back sub array items after its been sanitized. |
|
603 | - if ( ! empty( $sub_arr ) ) { |
|
604 | - $value[ $key ] = array_merge( $value[ $key ], $sub_arr ); |
|
605 | - } |
|
606 | - } |
|
602 | + // add back sub array items after its been sanitized. |
|
603 | + if ( ! empty( $sub_arr ) ) { |
|
604 | + $value[ $key ] = array_merge( $value[ $key ], $sub_arr ); |
|
605 | + } |
|
606 | + } |
|
607 | 607 | } |
608 | 608 | } |
609 | 609 | |
610 | - return $value; |
|
611 | - } |
|
612 | - |
|
613 | - /** |
|
614 | - * Set the form items. |
|
615 | - * |
|
616 | - * @since 1.0.19 |
|
617 | - * @param array $value Form elements. |
|
618 | - */ |
|
619 | - public function set_items( $value ) { |
|
620 | - if ( is_array( $value ) ) { |
|
621 | - $this->set_prop( 'items', $value ); |
|
622 | - } |
|
623 | - } |
|
624 | - |
|
625 | - /** |
|
626 | - * Set the total amount earned via this form. |
|
627 | - * |
|
628 | - * @since 1.0.19 |
|
629 | - * @param float $value Amount earned. |
|
630 | - */ |
|
631 | - public function set_earned( $value ) { |
|
632 | - $value = max( (float) $value, 0 ); |
|
633 | - $this->set_prop( 'earned', $value ); |
|
634 | - } |
|
635 | - |
|
636 | - /** |
|
637 | - * Set the total amount refunded via this form. |
|
638 | - * |
|
639 | - * @since 1.0.19 |
|
640 | - * @param float $value Amount refunded. |
|
641 | - */ |
|
642 | - public function set_refunded( $value ) { |
|
643 | - $value = max( (float) $value, 0 ); |
|
644 | - $this->set_prop( 'refunded', $value ); |
|
645 | - } |
|
646 | - |
|
647 | - /** |
|
648 | - * Set the total amount cancelled via this form. |
|
649 | - * |
|
650 | - * @since 1.0.19 |
|
651 | - * @param float $value Amount cancelled. |
|
652 | - */ |
|
653 | - public function set_cancelled( $value ) { |
|
654 | - $value = max( (float) $value, 0 ); |
|
655 | - $this->set_prop( 'cancelled', $value ); |
|
656 | - } |
|
657 | - |
|
658 | - /** |
|
659 | - * Set the total amount failed via this form. |
|
660 | - * |
|
661 | - * @since 1.0.19 |
|
662 | - * @param float $value Amount cancelled. |
|
663 | - */ |
|
664 | - public function set_failed( $value ) { |
|
665 | - $value = max( (float) $value, 0 ); |
|
666 | - $this->set_prop( 'failed', $value ); |
|
667 | - } |
|
610 | + return $value; |
|
611 | + } |
|
612 | + |
|
613 | + /** |
|
614 | + * Set the form items. |
|
615 | + * |
|
616 | + * @since 1.0.19 |
|
617 | + * @param array $value Form elements. |
|
618 | + */ |
|
619 | + public function set_items( $value ) { |
|
620 | + if ( is_array( $value ) ) { |
|
621 | + $this->set_prop( 'items', $value ); |
|
622 | + } |
|
623 | + } |
|
624 | + |
|
625 | + /** |
|
626 | + * Set the total amount earned via this form. |
|
627 | + * |
|
628 | + * @since 1.0.19 |
|
629 | + * @param float $value Amount earned. |
|
630 | + */ |
|
631 | + public function set_earned( $value ) { |
|
632 | + $value = max( (float) $value, 0 ); |
|
633 | + $this->set_prop( 'earned', $value ); |
|
634 | + } |
|
635 | + |
|
636 | + /** |
|
637 | + * Set the total amount refunded via this form. |
|
638 | + * |
|
639 | + * @since 1.0.19 |
|
640 | + * @param float $value Amount refunded. |
|
641 | + */ |
|
642 | + public function set_refunded( $value ) { |
|
643 | + $value = max( (float) $value, 0 ); |
|
644 | + $this->set_prop( 'refunded', $value ); |
|
645 | + } |
|
646 | + |
|
647 | + /** |
|
648 | + * Set the total amount cancelled via this form. |
|
649 | + * |
|
650 | + * @since 1.0.19 |
|
651 | + * @param float $value Amount cancelled. |
|
652 | + */ |
|
653 | + public function set_cancelled( $value ) { |
|
654 | + $value = max( (float) $value, 0 ); |
|
655 | + $this->set_prop( 'cancelled', $value ); |
|
656 | + } |
|
657 | + |
|
658 | + /** |
|
659 | + * Set the total amount failed via this form. |
|
660 | + * |
|
661 | + * @since 1.0.19 |
|
662 | + * @param float $value Amount cancelled. |
|
663 | + */ |
|
664 | + public function set_failed( $value ) { |
|
665 | + $value = max( (float) $value, 0 ); |
|
666 | + $this->set_prop( 'failed', $value ); |
|
667 | + } |
|
668 | 668 | |
669 | 669 | /** |
670 | 670 | * Create an item. For backwards compatibilty. |
671 | 671 | * |
672 | 672 | * @deprecated |
673 | - * @return int item id |
|
673 | + * @return int item id |
|
674 | 674 | */ |
675 | 675 | public function create( $data = array() ) { |
676 | 676 | |
677 | - // Set the properties. |
|
678 | - if ( is_array( $data ) ) { |
|
679 | - $this->set_props( $data ); |
|
680 | - } |
|
677 | + // Set the properties. |
|
678 | + if ( is_array( $data ) ) { |
|
679 | + $this->set_props( $data ); |
|
680 | + } |
|
681 | 681 | |
682 | - // Save the item. |
|
683 | - return $this->save(); |
|
682 | + // Save the item. |
|
683 | + return $this->save(); |
|
684 | 684 | |
685 | 685 | } |
686 | 686 | |
@@ -688,7 +688,7 @@ discard block |
||
688 | 688 | * Updates an item. For backwards compatibilty. |
689 | 689 | * |
690 | 690 | * @deprecated |
691 | - * @return int item id |
|
691 | + * @return int item id |
|
692 | 692 | */ |
693 | 693 | public function update( $data = array() ) { |
694 | 694 | return $this->create( $data ); |
@@ -704,22 +704,22 @@ discard block |
||
704 | 704 | */ |
705 | 705 | |
706 | 706 | /** |
707 | - * Checks whether this is the default payment form. |
|
708 | - * |
|
709 | - * @since 1.0.19 |
|
710 | - * @return bool |
|
711 | - */ |
|
707 | + * Checks whether this is the default payment form. |
|
708 | + * |
|
709 | + * @since 1.0.19 |
|
710 | + * @return bool |
|
711 | + */ |
|
712 | 712 | public function is_default() { |
713 | 713 | $is_default = $this->get_id() == wpinv_get_default_payment_form(); |
714 | 714 | return (bool) apply_filters( 'wpinv_is_default_payment_form', $is_default, $this->get_id(), $this ); |
715 | - } |
|
715 | + } |
|
716 | 716 | |
717 | 717 | /** |
718 | - * Checks whether the form is active. |
|
719 | - * |
|
720 | - * @since 1.0.19 |
|
721 | - * @return bool |
|
722 | - */ |
|
718 | + * Checks whether the form is active. |
|
719 | + * |
|
720 | + * @since 1.0.19 |
|
721 | + * @return bool |
|
722 | + */ |
|
723 | 723 | public function is_active() { |
724 | 724 | $is_active = 0 !== (int) $this->get_id(); |
725 | 725 | |
@@ -728,81 +728,81 @@ discard block |
||
728 | 728 | } |
729 | 729 | |
730 | 730 | return (bool) apply_filters( 'wpinv_is_payment_form_active', $is_active, $this ); |
731 | - } |
|
732 | - |
|
733 | - /** |
|
734 | - * Checks whether the form has a given item. |
|
735 | - * |
|
736 | - * @since 1.0.19 |
|
737 | - * @return bool |
|
738 | - */ |
|
731 | + } |
|
732 | + |
|
733 | + /** |
|
734 | + * Checks whether the form has a given item. |
|
735 | + * |
|
736 | + * @since 1.0.19 |
|
737 | + * @return bool |
|
738 | + */ |
|
739 | 739 | public function has_item( $item_id ) { |
740 | 740 | return false !== $this->get_item( $item_id ); |
741 | - } |
|
742 | - |
|
743 | - /** |
|
744 | - * Checks whether the form has a given element. |
|
745 | - * |
|
746 | - * @since 1.0.19 |
|
747 | - * @return bool |
|
748 | - */ |
|
741 | + } |
|
742 | + |
|
743 | + /** |
|
744 | + * Checks whether the form has a given element. |
|
745 | + * |
|
746 | + * @since 1.0.19 |
|
747 | + * @return bool |
|
748 | + */ |
|
749 | 749 | public function has_element_type( $element_type ) { |
750 | 750 | return false !== $this->get_element_type( $element_type ); |
751 | - } |
|
752 | - |
|
753 | - /** |
|
754 | - * Checks whether this form is recurring or not. |
|
755 | - * |
|
756 | - * @since 1.0.19 |
|
757 | - * @return bool |
|
758 | - */ |
|
751 | + } |
|
752 | + |
|
753 | + /** |
|
754 | + * Checks whether this form is recurring or not. |
|
755 | + * |
|
756 | + * @since 1.0.19 |
|
757 | + * @return bool |
|
758 | + */ |
|
759 | 759 | public function is_recurring() { |
760 | 760 | |
761 | - if ( ! empty( $this->invoice ) ) { |
|
762 | - return $this->invoice->is_recurring(); |
|
763 | - } |
|
761 | + if ( ! empty( $this->invoice ) ) { |
|
762 | + return $this->invoice->is_recurring(); |
|
763 | + } |
|
764 | 764 | |
765 | - foreach ( $this->get_items() as $item ) { |
|
765 | + foreach ( $this->get_items() as $item ) { |
|
766 | 766 | |
767 | - if ( $item->is_recurring() ) { |
|
768 | - return true; |
|
769 | - } |
|
767 | + if ( $item->is_recurring() ) { |
|
768 | + return true; |
|
769 | + } |
|
770 | 770 | } |
771 | 771 | |
772 | 772 | return false; |
773 | - } |
|
773 | + } |
|
774 | 774 | |
775 | - /** |
|
776 | - * Retrieves the form's html. |
|
777 | - * |
|
778 | - * @since 1.0.19 |
|
779 | - */ |
|
775 | + /** |
|
776 | + * Retrieves the form's html. |
|
777 | + * |
|
778 | + * @since 1.0.19 |
|
779 | + */ |
|
780 | 780 | public function get_html( $extra_markup = '' ) { |
781 | 781 | |
782 | - // Return the HTML. |
|
783 | - return wpinv_get_template_html( |
|
784 | - 'payment-forms/form.php', |
|
785 | - array( |
|
786 | - 'form' => $this, |
|
787 | - 'extra_markup' => $extra_markup, |
|
788 | - ) |
|
789 | - ); |
|
790 | - |
|
791 | - } |
|
792 | - |
|
793 | - /** |
|
794 | - * Displays the payment form. |
|
795 | - * |
|
796 | - * @since 1.0.19 |
|
797 | - */ |
|
782 | + // Return the HTML. |
|
783 | + return wpinv_get_template_html( |
|
784 | + 'payment-forms/form.php', |
|
785 | + array( |
|
786 | + 'form' => $this, |
|
787 | + 'extra_markup' => $extra_markup, |
|
788 | + ) |
|
789 | + ); |
|
790 | + |
|
791 | + } |
|
792 | + |
|
793 | + /** |
|
794 | + * Displays the payment form. |
|
795 | + * |
|
796 | + * @since 1.0.19 |
|
797 | + */ |
|
798 | 798 | public function display( $extra_markup = '' ) { |
799 | - return wpinv_get_template( |
|
800 | - 'payment-forms/form.php', |
|
801 | - array( |
|
802 | - 'form' => $this, |
|
803 | - 'extra_markup' => $extra_markup, |
|
804 | - ) |
|
805 | - ); |
|
799 | + return wpinv_get_template( |
|
800 | + 'payment-forms/form.php', |
|
801 | + array( |
|
802 | + 'form' => $this, |
|
803 | + 'extra_markup' => $extra_markup, |
|
804 | + ) |
|
805 | + ); |
|
806 | 806 | } |
807 | 807 | |
808 | 808 | } |
@@ -12,49 +12,49 @@ discard block |
||
12 | 12 | */ |
13 | 13 | class GetPaid_Reports { |
14 | 14 | |
15 | - /** |
|
16 | - * Class constructor. |
|
17 | - * |
|
18 | - */ |
|
19 | - public function __construct() { |
|
20 | - add_action( 'admin_menu', array( $this, 'register_reports_page' ), 20 ); |
|
21 | - add_action( 'wpinv_reports_tab_reports', array( $this, 'display_reports_tab' ) ); |
|
22 | - add_action( 'wpinv_reports_tab_export', array( $this, 'display_exports_tab' ) ); |
|
23 | - add_action( 'getpaid_authenticated_admin_action_download_graph', array( $this, 'download_graph' ) ); |
|
24 | - add_action( 'getpaid_authenticated_admin_action_export_invoices', array( $this, 'export_invoices' ) ); |
|
25 | - |
|
26 | - } |
|
27 | - |
|
28 | - /** |
|
29 | - * Registers the reports page. |
|
30 | - * |
|
31 | - */ |
|
32 | - public function register_reports_page() { |
|
33 | - |
|
34 | - add_submenu_page( |
|
15 | + /** |
|
16 | + * Class constructor. |
|
17 | + * |
|
18 | + */ |
|
19 | + public function __construct() { |
|
20 | + add_action( 'admin_menu', array( $this, 'register_reports_page' ), 20 ); |
|
21 | + add_action( 'wpinv_reports_tab_reports', array( $this, 'display_reports_tab' ) ); |
|
22 | + add_action( 'wpinv_reports_tab_export', array( $this, 'display_exports_tab' ) ); |
|
23 | + add_action( 'getpaid_authenticated_admin_action_download_graph', array( $this, 'download_graph' ) ); |
|
24 | + add_action( 'getpaid_authenticated_admin_action_export_invoices', array( $this, 'export_invoices' ) ); |
|
25 | + |
|
26 | + } |
|
27 | + |
|
28 | + /** |
|
29 | + * Registers the reports page. |
|
30 | + * |
|
31 | + */ |
|
32 | + public function register_reports_page() { |
|
33 | + |
|
34 | + add_submenu_page( |
|
35 | 35 | 'wpinv', |
36 | 36 | __( 'Reports', 'invoicing' ), |
37 | 37 | __( 'Reports', 'invoicing' ), |
38 | 38 | wpinv_get_capability(), |
39 | 39 | 'wpinv-reports', |
40 | 40 | array( $this, 'display_reports_page' ) |
41 | - ); |
|
41 | + ); |
|
42 | 42 | |
43 | - } |
|
43 | + } |
|
44 | 44 | |
45 | - /** |
|
46 | - * Displays the reports page. |
|
47 | - * |
|
48 | - */ |
|
49 | - public function display_reports_page() { |
|
45 | + /** |
|
46 | + * Displays the reports page. |
|
47 | + * |
|
48 | + */ |
|
49 | + public function display_reports_page() { |
|
50 | 50 | |
51 | - // Prepare variables. |
|
52 | - $tabs = $this->get_tabs(); |
|
53 | - $current_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'reports'; |
|
54 | - $current_tab = array_key_exists( $current_tab, $tabs ) ? $current_tab : 'reports'; |
|
51 | + // Prepare variables. |
|
52 | + $tabs = $this->get_tabs(); |
|
53 | + $current_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'reports'; |
|
54 | + $current_tab = array_key_exists( $current_tab, $tabs ) ? $current_tab : 'reports'; |
|
55 | 55 | |
56 | - // Display the current tab. |
|
57 | - ?> |
|
56 | + // Display the current tab. |
|
57 | + ?> |
|
58 | 58 | |
59 | 59 | <div class="wrap"> |
60 | 60 | |
@@ -63,19 +63,19 @@ discard block |
||
63 | 63 | <nav class="nav-tab-wrapper"> |
64 | 64 | |
65 | 65 | <?php |
66 | - foreach ( $tabs as $key => $label ) { |
|
66 | + foreach ( $tabs as $key => $label ) { |
|
67 | 67 | |
68 | - $key = sanitize_key( $key ); |
|
69 | - $label = esc_html( $label ); |
|
70 | - $class = $key == $current_tab ? 'nav-tab nav-tab-active' : 'nav-tab'; |
|
71 | - $url = esc_url( |
|
68 | + $key = sanitize_key( $key ); |
|
69 | + $label = esc_html( $label ); |
|
70 | + $class = $key == $current_tab ? 'nav-tab nav-tab-active' : 'nav-tab'; |
|
71 | + $url = esc_url( |
|
72 | 72 | add_query_arg( 'tab', $key, admin_url( 'admin.php?page=wpinv-reports' ) ) |
73 | 73 | ); |
74 | 74 | |
75 | - echo wp_kses_post( "\n\t\t\t<a href='$url' class='" . $class . "'>$label</a>" ); |
|
75 | + echo wp_kses_post( "\n\t\t\t<a href='$url' class='" . $class . "'>$label</a>" ); |
|
76 | 76 | |
77 | - } |
|
78 | - ?> |
|
77 | + } |
|
78 | + ?> |
|
79 | 79 | |
80 | 80 | </nav> |
81 | 81 | |
@@ -86,82 +86,82 @@ discard block |
||
86 | 86 | </div> |
87 | 87 | <?php |
88 | 88 | |
89 | - // Wordfence loads an unsupported version of chart js on our page. |
|
90 | - wp_deregister_style( 'chart-js' ); |
|
91 | - wp_deregister_script( 'chart-js' ); |
|
92 | - wp_enqueue_script( 'chart-js', WPINV_PLUGIN_URL . 'assets/js/chart.min.js', array( 'jquery' ), '3.7.1', true ); |
|
89 | + // Wordfence loads an unsupported version of chart js on our page. |
|
90 | + wp_deregister_style( 'chart-js' ); |
|
91 | + wp_deregister_script( 'chart-js' ); |
|
92 | + wp_enqueue_script( 'chart-js', WPINV_PLUGIN_URL . 'assets/js/chart.min.js', array( 'jquery' ), '3.7.1', true ); |
|
93 | 93 | |
94 | - } |
|
94 | + } |
|
95 | 95 | |
96 | - /** |
|
97 | - * Retrieves reports page tabs. |
|
98 | - * |
|
99 | - * @return array |
|
100 | - */ |
|
101 | - public function get_tabs() { |
|
96 | + /** |
|
97 | + * Retrieves reports page tabs. |
|
98 | + * |
|
99 | + * @return array |
|
100 | + */ |
|
101 | + public function get_tabs() { |
|
102 | 102 | |
103 | - $tabs = array( |
|
104 | - 'reports' => __( 'Reports', 'invoicing' ), |
|
105 | - 'export' => __( 'Export', 'invoicing' ), |
|
106 | - ); |
|
103 | + $tabs = array( |
|
104 | + 'reports' => __( 'Reports', 'invoicing' ), |
|
105 | + 'export' => __( 'Export', 'invoicing' ), |
|
106 | + ); |
|
107 | 107 | |
108 | - return apply_filters( 'getpaid_report_tabs', $tabs ); |
|
109 | - } |
|
108 | + return apply_filters( 'getpaid_report_tabs', $tabs ); |
|
109 | + } |
|
110 | 110 | |
111 | - /** |
|
112 | - * Displays the reports tab. |
|
113 | - * |
|
114 | - */ |
|
115 | - public function display_reports_tab() { |
|
111 | + /** |
|
112 | + * Displays the reports tab. |
|
113 | + * |
|
114 | + */ |
|
115 | + public function display_reports_tab() { |
|
116 | 116 | |
117 | - $reports = new GetPaid_Reports_Report(); |
|
118 | - $reports->display(); |
|
117 | + $reports = new GetPaid_Reports_Report(); |
|
118 | + $reports->display(); |
|
119 | 119 | |
120 | - } |
|
120 | + } |
|
121 | 121 | |
122 | - /** |
|
123 | - * Displays the exports tab. |
|
124 | - * |
|
125 | - */ |
|
126 | - public function display_exports_tab() { |
|
122 | + /** |
|
123 | + * Displays the exports tab. |
|
124 | + * |
|
125 | + */ |
|
126 | + public function display_exports_tab() { |
|
127 | 127 | |
128 | - $exports = new GetPaid_Reports_Export(); |
|
129 | - $exports->display(); |
|
128 | + $exports = new GetPaid_Reports_Export(); |
|
129 | + $exports->display(); |
|
130 | 130 | |
131 | - } |
|
131 | + } |
|
132 | 132 | |
133 | - /** |
|
134 | - * Donwnloads a graph. |
|
135 | - * |
|
136 | - * @param array $args |
|
137 | - */ |
|
138 | - public function download_graph( $args ) { |
|
133 | + /** |
|
134 | + * Donwnloads a graph. |
|
135 | + * |
|
136 | + * @param array $args |
|
137 | + */ |
|
138 | + public function download_graph( $args ) { |
|
139 | 139 | |
140 | - if ( ! empty( $args['graph'] ) ) { |
|
141 | - $downloader = new GetPaid_Graph_Downloader(); |
|
142 | - $downloader->download( $args['graph'] ); |
|
143 | - } |
|
140 | + if ( ! empty( $args['graph'] ) ) { |
|
141 | + $downloader = new GetPaid_Graph_Downloader(); |
|
142 | + $downloader->download( $args['graph'] ); |
|
143 | + } |
|
144 | 144 | |
145 | - } |
|
145 | + } |
|
146 | 146 | |
147 | - /** |
|
148 | - * Exports invoices. |
|
149 | - * |
|
150 | - * @param array $args |
|
151 | - */ |
|
152 | - public function export_invoices( $args ) { |
|
147 | + /** |
|
148 | + * Exports invoices. |
|
149 | + * |
|
150 | + * @param array $args |
|
151 | + */ |
|
152 | + public function export_invoices( $args ) { |
|
153 | 153 | |
154 | - if ( ! empty( $args['post_type'] ) ) { |
|
154 | + if ( ! empty( $args['post_type'] ) ) { |
|
155 | 155 | |
156 | - if ( 'subscriptions' === $args['post_type'] ) { |
|
157 | - $downloader = new GetPaid_Subscription_Exporter(); |
|
158 | - } else { |
|
159 | - $downloader = new GetPaid_Invoice_Exporter(); |
|
160 | - } |
|
156 | + if ( 'subscriptions' === $args['post_type'] ) { |
|
157 | + $downloader = new GetPaid_Subscription_Exporter(); |
|
158 | + } else { |
|
159 | + $downloader = new GetPaid_Invoice_Exporter(); |
|
160 | + } |
|
161 | 161 | |
162 | - $downloader->export( $args['post_type'], $args ); |
|
163 | - } |
|
162 | + $downloader->export( $args['post_type'], $args ); |
|
163 | + } |
|
164 | 164 | |
165 | - } |
|
165 | + } |
|
166 | 166 | |
167 | 167 | } |