@@ -57,16 +57,16 @@ discard block |
||
57 | 57 | $args = wp_parse_args( |
58 | 58 | $args, |
59 | 59 | array( |
60 | - 'status' => array( 'publish' ), |
|
61 | - 'limit' => get_option( 'posts_per_page' ), |
|
62 | - 'page' => 1, |
|
63 | - 'exclude' => array(), |
|
64 | - 'orderby' => 'date', |
|
65 | - 'order' => 'DESC', |
|
66 | - 'type' => wpinv_item_types(), |
|
67 | - 'meta_query' => array(), |
|
68 | - 'return' => 'objects', |
|
69 | - 'paginate' => false, |
|
60 | + 'status' => array( 'publish' ), |
|
61 | + 'limit' => get_option( 'posts_per_page' ), |
|
62 | + 'page' => 1, |
|
63 | + 'exclude' => array(), |
|
64 | + 'orderby' => 'date', |
|
65 | + 'order' => 'DESC', |
|
66 | + 'type' => wpinv_item_types(), |
|
67 | + 'meta_query' => array(), |
|
68 | + 'return' => 'objects', |
|
69 | + 'paginate' => false, |
|
70 | 70 | ) |
71 | 71 | ); |
72 | 72 | |
@@ -206,9 +206,9 @@ discard block |
||
206 | 206 | |
207 | 207 | function wpinv_get_item_types() { |
208 | 208 | $item_types = array( |
209 | - 'custom' => __( 'Standard', 'invoicing' ), |
|
210 | - 'fee' => __( 'Fee', 'invoicing' ), |
|
211 | - ); |
|
209 | + 'custom' => __( 'Standard', 'invoicing' ), |
|
210 | + 'fee' => __( 'Fee', 'invoicing' ), |
|
211 | + ); |
|
212 | 212 | return apply_filters( 'wpinv_get_item_types', $item_types ); |
213 | 213 | } |
214 | 214 | |
@@ -249,17 +249,17 @@ discard block |
||
249 | 249 | function wpinv_get_random_items( $num = 3, $post_ids = true ) { |
250 | 250 | if ( $post_ids ) { |
251 | 251 | $args = array( |
252 | - 'post_type' => 'wpi_item', |
|
253 | - 'orderby' => 'rand', |
|
254 | - 'post_count' => $num, |
|
255 | - 'fields' => 'ids', |
|
256 | - ); |
|
252 | + 'post_type' => 'wpi_item', |
|
253 | + 'orderby' => 'rand', |
|
254 | + 'post_count' => $num, |
|
255 | + 'fields' => 'ids', |
|
256 | + ); |
|
257 | 257 | } else { |
258 | 258 | $args = array( |
259 | - 'post_type' => 'wpi_item', |
|
260 | - 'orderby' => 'rand', |
|
261 | - 'post_count' => $num, |
|
262 | - ); |
|
259 | + 'post_type' => 'wpi_item', |
|
260 | + 'orderby' => 'rand', |
|
261 | + 'post_count' => $num, |
|
262 | + ); |
|
263 | 263 | } |
264 | 264 | |
265 | 265 | $args = apply_filters( 'wpinv_get_random_items', $args ); |
@@ -427,10 +427,10 @@ discard block |
||
427 | 427 | $bill_times_less = $bill_times - 1; |
428 | 428 | |
429 | 429 | if ( ! empty( $bill_times ) ) { |
430 | - $bill_times = $item->get_recurring_interval() * $bill_times; |
|
430 | + $bill_times = $item->get_recurring_interval() * $bill_times; |
|
431 | 431 | $bill_times_less = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times - $item->get_recurring_interval() ); |
432 | - $bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times ); |
|
433 | - } |
|
432 | + $bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times ); |
|
433 | + } |
|
434 | 434 | |
435 | 435 | if ( $item instanceof GetPaid_Form_Item && false === $_initial_price ) { |
436 | 436 | $initial_price = wpinv_price( $item->get_sub_total(), $currency ); |
@@ -6,7 +6,7 @@ discard block |
||
6 | 6 | * @package Invoicing |
7 | 7 | */ |
8 | 8 | |
9 | -defined( 'ABSPATH' ) || exit; |
|
9 | +defined('ABSPATH') || exit; |
|
10 | 10 | |
11 | 11 | /** |
12 | 12 | * Retrieves an item by it's ID. |
@@ -14,9 +14,9 @@ discard block |
||
14 | 14 | * @param int the item ID to retrieve. |
15 | 15 | * @return WPInv_Item|false |
16 | 16 | */ |
17 | -function wpinv_get_item_by_id( $id ) { |
|
18 | - $item = wpinv_get_item( $id ); |
|
19 | - return empty( $item ) || $id != $item->get_id() ? false : $item; |
|
17 | +function wpinv_get_item_by_id($id) { |
|
18 | + $item = wpinv_get_item($id); |
|
19 | + return empty($item) || $id != $item->get_id() ? false : $item; |
|
20 | 20 | } |
21 | 21 | |
22 | 22 | /** |
@@ -24,14 +24,14 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @return WPInv_Item|false |
26 | 26 | */ |
27 | -function wpinv_get_item_by( $field = '', $value = '', $type = '' ) { |
|
27 | +function wpinv_get_item_by($field = '', $value = '', $type = '') { |
|
28 | 28 | |
29 | - if ( 'id' === strtolower( $field ) ) { |
|
30 | - return wpinv_get_item_by_id( $value ); |
|
29 | + if ('id' === strtolower($field)) { |
|
30 | + return wpinv_get_item_by_id($value); |
|
31 | 31 | } |
32 | 32 | |
33 | - $id = WPInv_Item::get_item_id_by_field( $value, strtolower( $field ), $type ); |
|
34 | - return empty( $id ) ? false : wpinv_get_item( $id ); |
|
33 | + $id = WPInv_Item::get_item_id_by_field($value, strtolower($field), $type); |
|
34 | + return empty($id) ? false : wpinv_get_item($id); |
|
35 | 35 | |
36 | 36 | } |
37 | 37 | |
@@ -41,24 +41,24 @@ discard block |
||
41 | 41 | * @param int|WPInv_Item the item to retrieve. |
42 | 42 | * @return WPInv_Item|false |
43 | 43 | */ |
44 | -function wpinv_get_item( $item = 0 ) { |
|
44 | +function wpinv_get_item($item = 0) { |
|
45 | 45 | |
46 | - if ( empty( $item ) ) { |
|
46 | + if (empty($item)) { |
|
47 | 47 | return false; |
48 | 48 | } |
49 | 49 | |
50 | - $item = new WPInv_Item( $item ); |
|
50 | + $item = new WPInv_Item($item); |
|
51 | 51 | return $item->exists() ? $item : false; |
52 | 52 | |
53 | 53 | } |
54 | 54 | |
55 | -function wpinv_get_all_items( $args = array() ) { |
|
55 | +function wpinv_get_all_items($args = array()) { |
|
56 | 56 | |
57 | 57 | $args = wp_parse_args( |
58 | 58 | $args, |
59 | 59 | array( |
60 | - 'status' => array( 'publish' ), |
|
61 | - 'limit' => get_option( 'posts_per_page' ), |
|
60 | + 'status' => array('publish'), |
|
61 | + 'limit' => get_option('posts_per_page'), |
|
62 | 62 | 'page' => 1, |
63 | 63 | 'exclude' => array(), |
64 | 64 | 'orderby' => 'date', |
@@ -78,44 +78,44 @@ discard block |
||
78 | 78 | 'fields' => 'ids', |
79 | 79 | 'orderby' => $args['orderby'], |
80 | 80 | 'order' => $args['order'], |
81 | - 'paged' => absint( $args['page'] ), |
|
81 | + 'paged' => absint($args['page']), |
|
82 | 82 | ); |
83 | 83 | |
84 | - if ( ! empty( $args['exclude'] ) ) { |
|
85 | - $wp_query_args['post__not_in'] = array_map( 'absint', $args['exclude'] ); |
|
84 | + if (!empty($args['exclude'])) { |
|
85 | + $wp_query_args['post__not_in'] = array_map('absint', $args['exclude']); |
|
86 | 86 | } |
87 | 87 | |
88 | - if ( ! $args['paginate'] ) { |
|
88 | + if (!$args['paginate']) { |
|
89 | 89 | $wp_query_args['no_found_rows'] = true; |
90 | 90 | } |
91 | 91 | |
92 | - if ( ! empty( $args['search'] ) ) { |
|
92 | + if (!empty($args['search'])) { |
|
93 | 93 | $wp_query_args['s'] = $args['search']; |
94 | 94 | } |
95 | 95 | |
96 | - if ( ! empty( $args['type'] ) && $args['type'] !== wpinv_item_types() ) { |
|
97 | - $types = wpinv_parse_list( $args['type'] ); |
|
96 | + if (!empty($args['type']) && $args['type'] !== wpinv_item_types()) { |
|
97 | + $types = wpinv_parse_list($args['type']); |
|
98 | 98 | $wp_query_args['meta_query'][] = array( |
99 | 99 | 'key' => '_wpinv_type', |
100 | - 'value' => implode( ',', $types ), |
|
100 | + 'value' => implode(',', $types), |
|
101 | 101 | 'compare' => 'IN', |
102 | 102 | ); |
103 | 103 | } |
104 | 104 | |
105 | - $wp_query_args = apply_filters( 'wpinv_get_items_args', $wp_query_args, $args ); |
|
105 | + $wp_query_args = apply_filters('wpinv_get_items_args', $wp_query_args, $args); |
|
106 | 106 | |
107 | 107 | // Get results. |
108 | - $items = new WP_Query( $wp_query_args ); |
|
108 | + $items = new WP_Query($wp_query_args); |
|
109 | 109 | |
110 | - if ( 'objects' === $args['return'] ) { |
|
111 | - $return = array_map( 'wpinv_get_item_by_id', $items->posts ); |
|
112 | - } elseif ( 'self' === $args['return'] ) { |
|
110 | + if ('objects' === $args['return']) { |
|
111 | + $return = array_map('wpinv_get_item_by_id', $items->posts); |
|
112 | + } elseif ('self' === $args['return']) { |
|
113 | 113 | return $items; |
114 | 114 | } else { |
115 | 115 | $return = $items->posts; |
116 | 116 | } |
117 | 117 | |
118 | - if ( $args['paginate'] ) { |
|
118 | + if ($args['paginate']) { |
|
119 | 119 | return (object) array( |
120 | 120 | 'items' => $return, |
121 | 121 | 'total' => $items->found_posts, |
@@ -127,12 +127,12 @@ discard block |
||
127 | 127 | |
128 | 128 | } |
129 | 129 | |
130 | -function wpinv_is_free_item( $item_id = 0 ) { |
|
131 | - if ( empty( $item_id ) ) { |
|
130 | +function wpinv_is_free_item($item_id = 0) { |
|
131 | + if (empty($item_id)) { |
|
132 | 132 | return false; |
133 | 133 | } |
134 | 134 | |
135 | - $item = new WPInv_Item( $item_id ); |
|
135 | + $item = new WPInv_Item($item_id); |
|
136 | 136 | |
137 | 137 | return $item->is_free(); |
138 | 138 | } |
@@ -142,21 +142,21 @@ discard block |
||
142 | 142 | * |
143 | 143 | * @param WP_Post|WPInv_Item|Int $item The item to check for. |
144 | 144 | */ |
145 | -function wpinv_item_is_editable( $item = 0 ) { |
|
145 | +function wpinv_item_is_editable($item = 0) { |
|
146 | 146 | |
147 | 147 | // Fetch the item. |
148 | - $item = new WPInv_Item( $item ); |
|
148 | + $item = new WPInv_Item($item); |
|
149 | 149 | |
150 | 150 | // Check if it is editable. |
151 | 151 | return $item->is_editable(); |
152 | 152 | } |
153 | 153 | |
154 | -function wpinv_get_item_price( $item_id = 0 ) { |
|
155 | - if ( empty( $item_id ) ) { |
|
154 | +function wpinv_get_item_price($item_id = 0) { |
|
155 | + if (empty($item_id)) { |
|
156 | 156 | return false; |
157 | 157 | } |
158 | 158 | |
159 | - $item = new WPInv_Item( $item_id ); |
|
159 | + $item = new WPInv_Item($item_id); |
|
160 | 160 | |
161 | 161 | return $item->get_price(); |
162 | 162 | } |
@@ -166,88 +166,88 @@ discard block |
||
166 | 166 | * |
167 | 167 | * @param WPInv_Item|int $item |
168 | 168 | */ |
169 | -function wpinv_is_recurring_item( $item = 0 ) { |
|
170 | - $item = new WPInv_Item( $item ); |
|
169 | +function wpinv_is_recurring_item($item = 0) { |
|
170 | + $item = new WPInv_Item($item); |
|
171 | 171 | return $item->is_recurring(); |
172 | 172 | } |
173 | 173 | |
174 | -function wpinv_item_price( $item_id = 0 ) { |
|
175 | - if ( empty( $item_id ) ) { |
|
174 | +function wpinv_item_price($item_id = 0) { |
|
175 | + if (empty($item_id)) { |
|
176 | 176 | return false; |
177 | 177 | } |
178 | 178 | |
179 | - $price = wpinv_get_item_price( $item_id ); |
|
180 | - $price = wpinv_price( $price ); |
|
179 | + $price = wpinv_get_item_price($item_id); |
|
180 | + $price = wpinv_price($price); |
|
181 | 181 | |
182 | - return apply_filters( 'wpinv_item_price', $price, $item_id ); |
|
182 | + return apply_filters('wpinv_item_price', $price, $item_id); |
|
183 | 183 | } |
184 | 184 | |
185 | -function wpinv_get_item_final_price( $item_id = 0, $amount_override = null ) { |
|
186 | - if ( is_null( $amount_override ) ) { |
|
187 | - $original_price = get_post_meta( $item_id, '_wpinv_price', true ); |
|
185 | +function wpinv_get_item_final_price($item_id = 0, $amount_override = null) { |
|
186 | + if (is_null($amount_override)) { |
|
187 | + $original_price = get_post_meta($item_id, '_wpinv_price', true); |
|
188 | 188 | } else { |
189 | 189 | $original_price = $amount_override; |
190 | 190 | } |
191 | 191 | |
192 | 192 | $price = $original_price; |
193 | 193 | |
194 | - return apply_filters( 'wpinv_get_item_final_price', $price, $item_id ); |
|
194 | + return apply_filters('wpinv_get_item_final_price', $price, $item_id); |
|
195 | 195 | } |
196 | 196 | |
197 | -function wpinv_item_custom_singular_name( $item_id ) { |
|
198 | - if ( empty( $item_id ) ) { |
|
197 | +function wpinv_item_custom_singular_name($item_id) { |
|
198 | + if (empty($item_id)) { |
|
199 | 199 | return false; |
200 | 200 | } |
201 | 201 | |
202 | - $item = new WPInv_Item( $item_id ); |
|
202 | + $item = new WPInv_Item($item_id); |
|
203 | 203 | |
204 | 204 | return $item->get_custom_singular_name(); |
205 | 205 | } |
206 | 206 | |
207 | 207 | function wpinv_get_item_types() { |
208 | 208 | $item_types = array( |
209 | - 'custom' => __( 'Standard', 'invoicing' ), |
|
210 | - 'fee' => __( 'Fee', 'invoicing' ), |
|
209 | + 'custom' => __('Standard', 'invoicing'), |
|
210 | + 'fee' => __('Fee', 'invoicing'), |
|
211 | 211 | ); |
212 | - return apply_filters( 'wpinv_get_item_types', $item_types ); |
|
212 | + return apply_filters('wpinv_get_item_types', $item_types); |
|
213 | 213 | } |
214 | 214 | |
215 | 215 | function wpinv_item_types() { |
216 | 216 | $item_types = wpinv_get_item_types(); |
217 | 217 | |
218 | - return ( ! empty( $item_types ) ? array_keys( $item_types ) : array() ); |
|
218 | + return (!empty($item_types) ? array_keys($item_types) : array()); |
|
219 | 219 | } |
220 | 220 | |
221 | -function wpinv_get_item_type( $item_id ) { |
|
222 | - if ( empty( $item_id ) ) { |
|
221 | +function wpinv_get_item_type($item_id) { |
|
222 | + if (empty($item_id)) { |
|
223 | 223 | return false; |
224 | 224 | } |
225 | 225 | |
226 | - $item = new WPInv_Item( $item_id ); |
|
226 | + $item = new WPInv_Item($item_id); |
|
227 | 227 | |
228 | 228 | return $item->get_type(); |
229 | 229 | } |
230 | 230 | |
231 | -function wpinv_item_type( $item_id ) { |
|
231 | +function wpinv_item_type($item_id) { |
|
232 | 232 | $item_types = wpinv_get_item_types(); |
233 | 233 | |
234 | - $item_type = wpinv_get_item_type( $item_id ); |
|
234 | + $item_type = wpinv_get_item_type($item_id); |
|
235 | 235 | |
236 | - if ( empty( $item_type ) ) { |
|
236 | + if (empty($item_type)) { |
|
237 | 237 | $item_type = '-'; |
238 | 238 | } |
239 | 239 | |
240 | - $item_type = isset( $item_types[ $item_type ] ) ? $item_types[ $item_type ] : __( $item_type, 'invoicing' ); |
|
240 | + $item_type = isset($item_types[$item_type]) ? $item_types[$item_type] : __($item_type, 'invoicing'); |
|
241 | 241 | |
242 | - return apply_filters( 'wpinv_item_type', $item_type, $item_id ); |
|
242 | + return apply_filters('wpinv_item_type', $item_type, $item_id); |
|
243 | 243 | } |
244 | 244 | |
245 | -function wpinv_get_random_item( $post_ids = true ) { |
|
246 | - wpinv_get_random_items( 1, $post_ids ); |
|
245 | +function wpinv_get_random_item($post_ids = true) { |
|
246 | + wpinv_get_random_items(1, $post_ids); |
|
247 | 247 | } |
248 | 248 | |
249 | -function wpinv_get_random_items( $num = 3, $post_ids = true ) { |
|
250 | - if ( $post_ids ) { |
|
249 | +function wpinv_get_random_items($num = 3, $post_ids = true) { |
|
250 | + if ($post_ids) { |
|
251 | 251 | $args = array( |
252 | 252 | 'post_type' => 'wpi_item', |
253 | 253 | 'orderby' => 'rand', |
@@ -262,9 +262,9 @@ discard block |
||
262 | 262 | ); |
263 | 263 | } |
264 | 264 | |
265 | - $args = apply_filters( 'wpinv_get_random_items', $args ); |
|
265 | + $args = apply_filters('wpinv_get_random_items', $args); |
|
266 | 266 | |
267 | - return get_posts( $args ); |
|
267 | + return get_posts($args); |
|
268 | 268 | } |
269 | 269 | |
270 | 270 | /** |
@@ -273,13 +273,13 @@ discard block |
||
273 | 273 | * @param WPInv_Item|int $item |
274 | 274 | * @param bool $html |
275 | 275 | */ |
276 | -function wpinv_get_item_suffix( $item, $html = true ) { |
|
276 | +function wpinv_get_item_suffix($item, $html = true) { |
|
277 | 277 | |
278 | - $item = new WPInv_Item( $item ); |
|
279 | - $suffix = $item->is_recurring() ? ' ' . __( '(r)', 'invoicing' ) : ''; |
|
280 | - $suffix = $html ? $suffix : wp_strip_all_tags( $suffix ); |
|
278 | + $item = new WPInv_Item($item); |
|
279 | + $suffix = $item->is_recurring() ? ' ' . __('(r)', 'invoicing') : ''; |
|
280 | + $suffix = $html ? $suffix : wp_strip_all_tags($suffix); |
|
281 | 281 | |
282 | - return apply_filters( 'wpinv_get_item_suffix', $suffix, $item, $html ); |
|
282 | + return apply_filters('wpinv_get_item_suffix', $suffix, $item, $html); |
|
283 | 283 | } |
284 | 284 | |
285 | 285 | /** |
@@ -288,9 +288,9 @@ discard block |
||
288 | 288 | * @param WPInv_Item|int $item |
289 | 289 | * @param bool $force_delete |
290 | 290 | */ |
291 | -function wpinv_remove_item( $item = 0, $force_delete = false ) { |
|
292 | - $item = new WPInv_Item( $item ); |
|
293 | - $item->delete( $force_delete ); |
|
291 | +function wpinv_remove_item($item = 0, $force_delete = false) { |
|
292 | + $item = new WPInv_Item($item); |
|
293 | + $item->delete($force_delete); |
|
294 | 294 | } |
295 | 295 | |
296 | 296 | /** |
@@ -329,44 +329,44 @@ discard block |
||
329 | 329 | * @param bool $wp_error whether or not to return a WP_Error on failure. |
330 | 330 | * @return bool|WP_Error|WPInv_Item |
331 | 331 | */ |
332 | -function wpinv_create_item( $args = array(), $wp_error = false ) { |
|
332 | +function wpinv_create_item($args = array(), $wp_error = false) { |
|
333 | 333 | |
334 | 334 | // Prepare the item. |
335 | - if ( ! empty( $args['custom_id'] ) && empty( $args['ID'] ) ) { |
|
336 | - $type = empty( $args['type'] ) ? 'custom' : $args['type']; |
|
337 | - $item = wpinv_get_item_by( 'custom_id', $args['custom_id'], $type ); |
|
335 | + if (!empty($args['custom_id']) && empty($args['ID'])) { |
|
336 | + $type = empty($args['type']) ? 'custom' : $args['type']; |
|
337 | + $item = wpinv_get_item_by('custom_id', $args['custom_id'], $type); |
|
338 | 338 | |
339 | - if ( ! empty( $item ) ) { |
|
339 | + if (!empty($item)) { |
|
340 | 340 | $args['ID'] = $item->get_id(); |
341 | 341 | } |
342 | 342 | } |
343 | 343 | |
344 | 344 | // Do we have an item? |
345 | - if ( ! empty( $args['ID'] ) ) { |
|
346 | - $item = new WPInv_Item( $args['ID'] ); |
|
345 | + if (!empty($args['ID'])) { |
|
346 | + $item = new WPInv_Item($args['ID']); |
|
347 | 347 | } else { |
348 | 348 | $item = new WPInv_Item(); |
349 | 349 | } |
350 | 350 | |
351 | 351 | // Do we have an error? |
352 | - if ( ! empty( $item->last_error ) ) { |
|
353 | - return $wp_error ? new WP_Error( 'invalid_item', $item->last_error ) : false; |
|
352 | + if (!empty($item->last_error)) { |
|
353 | + return $wp_error ? new WP_Error('invalid_item', $item->last_error) : false; |
|
354 | 354 | } |
355 | 355 | |
356 | 356 | // Update item props. |
357 | - $item->set_props( $args ); |
|
357 | + $item->set_props($args); |
|
358 | 358 | |
359 | 359 | // Save the item. |
360 | 360 | $item->save(); |
361 | 361 | |
362 | 362 | // Do we have an error? |
363 | - if ( ! empty( $item->last_error ) ) { |
|
364 | - return $wp_error ? new WP_Error( 'not_saved', $item->last_error ) : false; |
|
363 | + if (!empty($item->last_error)) { |
|
364 | + return $wp_error ? new WP_Error('not_saved', $item->last_error) : false; |
|
365 | 365 | } |
366 | 366 | |
367 | 367 | // Was the item saved? |
368 | - if ( ! $item->get_id() ) { |
|
369 | - return $wp_error ? new WP_Error( 'not_saved', __( 'An error occured while saving the item', 'invoicing' ) ) : false; |
|
368 | + if (!$item->get_id()) { |
|
369 | + return $wp_error ? new WP_Error('not_saved', __('An error occured while saving the item', 'invoicing')) : false; |
|
370 | 370 | } |
371 | 371 | |
372 | 372 | return $item; |
@@ -378,14 +378,14 @@ discard block |
||
378 | 378 | * |
379 | 379 | * @see wpinv_create_item() |
380 | 380 | */ |
381 | -function wpinv_update_item( $args = array(), $wp_error = false ) { |
|
382 | - return wpinv_create_item( $args, $wp_error ); |
|
381 | +function wpinv_update_item($args = array(), $wp_error = false) { |
|
382 | + return wpinv_create_item($args, $wp_error); |
|
383 | 383 | } |
384 | 384 | |
385 | 385 | /** |
386 | 386 | * Sanitizes a recurring period |
387 | 387 | */ |
388 | -function getpaid_sanitize_recurring_period( $period, $full = false ) { |
|
388 | +function getpaid_sanitize_recurring_period($period, $full = false) { |
|
389 | 389 | |
390 | 390 | $periods = array( |
391 | 391 | 'D' => 'day', |
@@ -394,16 +394,16 @@ discard block |
||
394 | 394 | 'Y' => 'year', |
395 | 395 | ); |
396 | 396 | |
397 | - if ( ! isset( $periods[ $period ] ) ) { |
|
397 | + if (!isset($periods[$period])) { |
|
398 | 398 | $period = 'D'; |
399 | 399 | } |
400 | 400 | |
401 | - return $full ? $periods[ $period ] : $period; |
|
401 | + return $full ? $periods[$period] : $period; |
|
402 | 402 | |
403 | 403 | } |
404 | 404 | |
405 | -function wpinv_item_max_buyable_quantity( $item_id ) { |
|
406 | - return apply_filters( 'wpinv_item_max_buyable_quantity', 5, $item_id ); |
|
405 | +function wpinv_item_max_buyable_quantity($item_id) { |
|
406 | + return apply_filters('wpinv_item_max_buyable_quantity', 5, $item_id); |
|
407 | 407 | } |
408 | 408 | |
409 | 409 | /** |
@@ -411,47 +411,47 @@ discard block |
||
411 | 411 | * |
412 | 412 | * @param WPInv_Item|GetPaid_Form_Item $item |
413 | 413 | */ |
414 | -function getpaid_item_recurring_price_help_text( $item, $currency = '', $_initial_price = false, $_recurring_price = false ) { |
|
414 | +function getpaid_item_recurring_price_help_text($item, $currency = '', $_initial_price = false, $_recurring_price = false) { |
|
415 | 415 | |
416 | 416 | // Abort if it is not recurring. |
417 | - if ( ! $item->is_recurring() ) { |
|
417 | + if (!$item->is_recurring()) { |
|
418 | 418 | return ''; |
419 | 419 | } |
420 | 420 | |
421 | - $initial_price = false === $_initial_price ? wpinv_price( $item->get_initial_price(), $currency ) : $_initial_price; |
|
422 | - $recurring_price = false === $_recurring_price ? wpinv_price( $item->get_recurring_price(), $currency ) : $_recurring_price; |
|
423 | - $period = getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' ); |
|
421 | + $initial_price = false === $_initial_price ? wpinv_price($item->get_initial_price(), $currency) : $_initial_price; |
|
422 | + $recurring_price = false === $_recurring_price ? wpinv_price($item->get_recurring_price(), $currency) : $_recurring_price; |
|
423 | + $period = getpaid_get_subscription_period_label($item->get_recurring_period(), $item->get_recurring_interval(), ''); |
|
424 | 424 | $initial_class = 'getpaid-item-initial-price'; |
425 | 425 | $recurring_class = 'getpaid-item-recurring-price'; |
426 | 426 | $bill_times = $item->get_recurring_limit(); |
427 | 427 | $bill_times_less = $bill_times - 1; |
428 | 428 | |
429 | - if ( ! empty( $bill_times ) ) { |
|
429 | + if (!empty($bill_times)) { |
|
430 | 430 | $bill_times = $item->get_recurring_interval() * $bill_times; |
431 | - $bill_times_less = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times - $item->get_recurring_interval() ); |
|
432 | - $bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times ); |
|
431 | + $bill_times_less = getpaid_get_subscription_period_label($item->get_recurring_period(), $bill_times - $item->get_recurring_interval()); |
|
432 | + $bill_times = getpaid_get_subscription_period_label($item->get_recurring_period(), $bill_times); |
|
433 | 433 | } |
434 | 434 | |
435 | - if ( $item instanceof GetPaid_Form_Item && false === $_initial_price ) { |
|
436 | - $initial_price = wpinv_price( $item->get_sub_total(), $currency ); |
|
437 | - $recurring_price = wpinv_price( $item->get_recurring_sub_total(), $currency ); |
|
435 | + if ($item instanceof GetPaid_Form_Item && false === $_initial_price) { |
|
436 | + $initial_price = wpinv_price($item->get_sub_total(), $currency); |
|
437 | + $recurring_price = wpinv_price($item->get_recurring_sub_total(), $currency); |
|
438 | 438 | } |
439 | 439 | |
440 | - if ( wpinv_price( 0, $currency ) == $initial_price && wpinv_price( 0, $currency ) == $recurring_price ) { |
|
441 | - return __( 'Free forever', 'invoicing' ); |
|
440 | + if (wpinv_price(0, $currency) == $initial_price && wpinv_price(0, $currency) == $recurring_price) { |
|
441 | + return __('Free forever', 'invoicing'); |
|
442 | 442 | } |
443 | 443 | |
444 | 444 | // For free trial items. |
445 | - if ( $item->has_free_trial() ) { |
|
446 | - $trial_period = getpaid_get_subscription_period_label( $item->get_trial_period(), $item->get_trial_interval() ); |
|
445 | + if ($item->has_free_trial()) { |
|
446 | + $trial_period = getpaid_get_subscription_period_label($item->get_trial_period(), $item->get_trial_interval()); |
|
447 | 447 | |
448 | - if ( wpinv_price( 0, $currency ) == $initial_price ) { |
|
448 | + if (wpinv_price(0, $currency) == $initial_price) { |
|
449 | 449 | |
450 | - if ( empty( $bill_times ) ) { |
|
450 | + if (empty($bill_times)) { |
|
451 | 451 | |
452 | 452 | return sprintf( |
453 | 453 | // translators: $1: is the trial period, $2: is the recurring price, $3: is the susbcription period |
454 | - _x( 'Free for %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year)', 'invoicing' ), |
|
454 | + _x('Free for %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year)', 'invoicing'), |
|
455 | 455 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
456 | 456 | "<span class='$recurring_class'>$recurring_price</span>", |
457 | 457 | "<span class='getpaid-item-recurring-period'>$period</span>" |
@@ -461,7 +461,7 @@ discard block |
||
461 | 461 | |
462 | 462 | return sprintf( |
463 | 463 | // translators: $1: is the trial period, $2: is the recurring price, $3: is the susbcription period, $4: is the bill times |
464 | - _x( 'Free for %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year for 4 years)', 'invoicing' ), |
|
464 | + _x('Free for %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year for 4 years)', 'invoicing'), |
|
465 | 465 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
466 | 466 | "<span class='$recurring_class'>$recurring_price</span>", |
467 | 467 | "<span class='getpaid-item-recurring-period'>$period</span>", |
@@ -470,11 +470,11 @@ discard block |
||
470 | 470 | |
471 | 471 | } |
472 | 472 | |
473 | - if ( empty( $bill_times ) ) { |
|
473 | + if (empty($bill_times)) { |
|
474 | 474 | |
475 | 475 | return sprintf( |
476 | 476 | // translators: $1: is the initial price, $2: is the trial period, $3: is the recurring price, $4: is the susbcription period |
477 | - _x( '%1$s for %2$s then %3$s / %4$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year)', 'invoicing' ), |
|
477 | + _x('%1$s for %2$s then %3$s / %4$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year)', 'invoicing'), |
|
478 | 478 | "<span class='$initial_class'>$initial_price</span>", |
479 | 479 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
480 | 480 | "<span class='$recurring_class'>$recurring_price</span>", |
@@ -485,7 +485,7 @@ discard block |
||
485 | 485 | |
486 | 486 | return sprintf( |
487 | 487 | // translators: $1: is the initial price, $2: is the trial period, $3: is the recurring price, $4: is the susbcription period, $4: is the susbcription bill times |
488 | - _x( '%1$s for %2$s then %3$s / %4$s for %5$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year for 5 years)', 'invoicing' ), |
|
488 | + _x('%1$s for %2$s then %3$s / %4$s for %5$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year for 5 years)', 'invoicing'), |
|
489 | 489 | "<span class='$initial_class'>$initial_price</span>", |
490 | 490 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
491 | 491 | "<span class='$recurring_class'>$recurring_price</span>", |
@@ -495,13 +495,13 @@ discard block |
||
495 | 495 | |
496 | 496 | } |
497 | 497 | |
498 | - if ( $initial_price == $recurring_price ) { |
|
498 | + if ($initial_price == $recurring_price) { |
|
499 | 499 | |
500 | - if ( empty( $bill_times ) ) { |
|
500 | + if (empty($bill_times)) { |
|
501 | 501 | |
502 | 502 | return sprintf( |
503 | 503 | // translators: $1: is the recurring price, $2: is the susbcription period |
504 | - _x( '%1$s / %2$s', 'Item subscription amount. (e.g.: $120 / year)', 'invoicing' ), |
|
504 | + _x('%1$s / %2$s', 'Item subscription amount. (e.g.: $120 / year)', 'invoicing'), |
|
505 | 505 | "<span class='$recurring_class'>$recurring_price</span>", |
506 | 506 | "<span class='getpaid-item-recurring-period'>$period</span>" |
507 | 507 | ); |
@@ -510,7 +510,7 @@ discard block |
||
510 | 510 | |
511 | 511 | return sprintf( |
512 | 512 | // translators: $1: is the recurring price, $2: is the susbcription period, $3: is the susbcription bill times |
513 | - _x( '%1$s / %2$s for %3$s', 'Item subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing' ), |
|
513 | + _x('%1$s / %2$s for %3$s', 'Item subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing'), |
|
514 | 514 | "<span class='$recurring_class'>$recurring_price</span>", |
515 | 515 | "<span class='getpaid-item-recurring-period'>$period</span>", |
516 | 516 | "<span class='getpaid-item-recurring-bill-times'>$bill_times</span>" |
@@ -518,13 +518,13 @@ discard block |
||
518 | 518 | |
519 | 519 | } |
520 | 520 | |
521 | - if ( $initial_price == wpinv_price( 0, $currency ) ) { |
|
521 | + if ($initial_price == wpinv_price(0, $currency)) { |
|
522 | 522 | |
523 | - if ( empty( $bill_times ) ) { |
|
523 | + if (empty($bill_times)) { |
|
524 | 524 | |
525 | 525 | return sprintf( |
526 | 526 | // translators: $1: is the recurring period, $2: is the recurring price |
527 | - _x( 'Free for %1$s then %2$s / %1$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months)', 'invoicing' ), |
|
527 | + _x('Free for %1$s then %2$s / %1$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months)', 'invoicing'), |
|
528 | 528 | "<span class='getpaid-item-recurring-period'>$period</span>", |
529 | 529 | "<span class='$recurring_class'>$recurring_price</span>" |
530 | 530 | ); |
@@ -533,7 +533,7 @@ discard block |
||
533 | 533 | |
534 | 534 | return sprintf( |
535 | 535 | // translators: $1: is the recurring period, $2: is the recurring price, $3: is the bill times |
536 | - _x( 'Free for %1$s then %2$s / %1$s for %3$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months for 12 months)', 'invoicing' ), |
|
536 | + _x('Free for %1$s then %2$s / %1$s for %3$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months for 12 months)', 'invoicing'), |
|
537 | 537 | "<span class='getpaid-item-recurring-period'>$period</span>", |
538 | 538 | "<span class='$recurring_class'>$recurring_price</span>", |
539 | 539 | "<span class='getpaid-item-recurring-bill-times'>$bill_times_less</span>" |
@@ -541,11 +541,11 @@ discard block |
||
541 | 541 | |
542 | 542 | } |
543 | 543 | |
544 | - if ( empty( $bill_times ) ) { |
|
544 | + if (empty($bill_times)) { |
|
545 | 545 | |
546 | 546 | return sprintf( |
547 | 547 | // translators: $1: is the initial price, $2: is the recurring price, $3: is the susbcription period |
548 | - _x( 'Initial payment of %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year)', 'invoicing' ), |
|
548 | + _x('Initial payment of %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year)', 'invoicing'), |
|
549 | 549 | "<span class='$initial_class'>$initial_price</span>", |
550 | 550 | "<span class='$recurring_class'>$recurring_price</span>", |
551 | 551 | "<span class='getpaid-item-recurring-period'>$period</span>" |
@@ -555,7 +555,7 @@ discard block |
||
555 | 555 | |
556 | 556 | return sprintf( |
557 | 557 | // translators: $1: is the initial price, $2: is the recurring price, $3: is the susbcription period, $4: is the susbcription bill times |
558 | - _x( 'Initial payment of %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year for 4 years)', 'invoicing' ), |
|
558 | + _x('Initial payment of %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year for 4 years)', 'invoicing'), |
|
559 | 559 | "<span class='$initial_class'>$initial_price</span>", |
560 | 560 | "<span class='$recurring_class'>$recurring_price</span>", |
561 | 561 | "<span class='getpaid-item-recurring-period'>$period</span>", |
@@ -7,35 +7,35 @@ discard block |
||
7 | 7 | * @version 1.0.19 |
8 | 8 | */ |
9 | 9 | |
10 | -defined( 'ABSPATH' ) || exit; |
|
10 | +defined('ABSPATH') || exit; |
|
11 | 11 | |
12 | 12 | $value = $query_value; |
13 | 13 | $class = ''; |
14 | 14 | |
15 | -if ( ! empty( $form->invoice ) ) { |
|
16 | - $value = sanitize_email( $form->invoice->get_email() ); |
|
17 | -} elseif ( is_user_logged_in() ) { |
|
15 | +if (!empty($form->invoice)) { |
|
16 | + $value = sanitize_email($form->invoice->get_email()); |
|
17 | +} elseif (is_user_logged_in()) { |
|
18 | 18 | $user = wp_get_current_user(); |
19 | - $value = sanitize_email( $user->user_email ); |
|
19 | + $value = sanitize_email($user->user_email); |
|
20 | 20 | } |
21 | 21 | |
22 | -if ( ! empty( $value ) && ! empty( $hide_billing_email ) ) { |
|
22 | +if (!empty($value) && !empty($hide_billing_email)) { |
|
23 | 23 | $class = 'd-none'; |
24 | 24 | } |
25 | 25 | |
26 | -do_action( 'getpaid_before_payment_form_billing_email', $form ); |
|
26 | +do_action('getpaid_before_payment_form_billing_email', $form); |
|
27 | 27 | |
28 | -echo "<span class='" . esc_attr( $class ) . "'>"; |
|
28 | +echo "<span class='" . esc_attr($class) . "'>"; |
|
29 | 29 | |
30 | 30 | aui()->input( |
31 | 31 | array( |
32 | 32 | 'name' => 'billing_email', |
33 | - 'id' => esc_attr( $element_id ), |
|
34 | - 'placeholder' => empty( $placeholder ) ? '' : esc_attr( $placeholder ), |
|
35 | - 'required' => ! empty( $required ), |
|
36 | - 'label' => empty( $label ) ? '' : wp_kses_post( $label ) . '<span class="text-danger"> *</span>', |
|
33 | + 'id' => esc_attr($element_id), |
|
34 | + 'placeholder' => empty($placeholder) ? '' : esc_attr($placeholder), |
|
35 | + 'required' => !empty($required), |
|
36 | + 'label' => empty($label) ? '' : wp_kses_post($label) . '<span class="text-danger"> *</span>', |
|
37 | 37 | 'label_type' => 'vertical', |
38 | - 'help_text' => empty( $description ) ? '' : wp_kses_post( $description ), |
|
38 | + 'help_text' => empty($description) ? '' : wp_kses_post($description), |
|
39 | 39 | 'type' => 'email', |
40 | 40 | 'value' => $value, |
41 | 41 | 'class' => 'wpinv_billing_email getpaid-refresh-on-change', |
@@ -48,4 +48,4 @@ discard block |
||
48 | 48 | |
49 | 49 | echo '</span>'; |
50 | 50 | |
51 | -do_action( 'getpaid_after_payment_form_billing_email', $form ); |
|
51 | +do_action('getpaid_after_payment_form_billing_email', $form); |
@@ -12,59 +12,59 @@ |
||
12 | 12 | $label = empty( $label ) ? '' : wp_kses_post( $label ); |
13 | 13 | $label_class = sanitize_key( preg_replace( '/[^A-Za-z0-9_-]/', '-', $label ) ); |
14 | 14 | if ( ! empty( $required ) ) { |
15 | - $label .= "<span class='text-danger'> *</span>"; |
|
15 | + $label .= "<span class='text-danger'> *</span>"; |
|
16 | 16 | } |
17 | 17 | |
18 | 18 | $disable_dates = array(); |
19 | 19 | |
20 | 20 | if ( ! empty( $disabled_dates ) ) { |
21 | - $disabled_dates = preg_replace( '/\s+/', '', $disabled_dates ); |
|
22 | - $disabled_dates = str_ireplace( 'today', current_time( 'Y-m-d' ), $disabled_dates ); |
|
23 | - $disabled_dates = array_filter( explode( ',', $disabled_dates ) ); |
|
21 | + $disabled_dates = preg_replace( '/\s+/', '', $disabled_dates ); |
|
22 | + $disabled_dates = str_ireplace( 'today', current_time( 'Y-m-d' ), $disabled_dates ); |
|
23 | + $disabled_dates = array_filter( explode( ',', $disabled_dates ) ); |
|
24 | 24 | |
25 | - foreach ( $disabled_dates as $disabled_date ) { |
|
25 | + foreach ( $disabled_dates as $disabled_date ) { |
|
26 | 26 | |
27 | - $disabled_date = trim( $disabled_date ); |
|
27 | + $disabled_date = trim( $disabled_date ); |
|
28 | 28 | |
29 | - if ( false === strpos( $disabled_date, '|' ) ) { |
|
30 | - $disable_dates[] = $disabled_date; |
|
31 | - continue; |
|
32 | - } |
|
29 | + if ( false === strpos( $disabled_date, '|' ) ) { |
|
30 | + $disable_dates[] = $disabled_date; |
|
31 | + continue; |
|
32 | + } |
|
33 | 33 | |
34 | - $disabled_date = explode( '|', $disabled_date ); |
|
35 | - $disable_dates[] = array( |
|
36 | - 'from' => trim( $disabled_date[0] ), |
|
37 | - 'to' => trim( $disabled_date[1] ), |
|
38 | - ); |
|
34 | + $disabled_date = explode( '|', $disabled_date ); |
|
35 | + $disable_dates[] = array( |
|
36 | + 'from' => trim( $disabled_date[0] ), |
|
37 | + 'to' => trim( $disabled_date[1] ), |
|
38 | + ); |
|
39 | 39 | |
40 | - } |
|
40 | + } |
|
41 | 41 | } |
42 | 42 | |
43 | 43 | $options = array( |
44 | - 'data-default-date' => empty( $default_date ) ? false : $default_date, |
|
45 | - 'data-min-date' => empty( $min_date ) ? false : $min_date, |
|
46 | - 'data-max-date' => empty( $max_date ) ? false : $max_date, |
|
47 | - 'data-mode' => empty( $mode ) ? 'single' : $mode, |
|
48 | - 'data-alt-format' => get_option( 'date_format', 'F j, Y' ), |
|
49 | - 'data-date-format' => 'Y-m-d', |
|
50 | - 'data-alt-input' => 'true', |
|
51 | - 'data-disable_alt' => empty( $disabled_dates ) ? false : wp_json_encode( $disable_dates ), |
|
52 | - 'data-disable_days_alt' => empty( $disable_days ) ? false : wp_json_encode( wp_parse_id_list( $disable_days ) ), |
|
44 | + 'data-default-date' => empty( $default_date ) ? false : $default_date, |
|
45 | + 'data-min-date' => empty( $min_date ) ? false : $min_date, |
|
46 | + 'data-max-date' => empty( $max_date ) ? false : $max_date, |
|
47 | + 'data-mode' => empty( $mode ) ? 'single' : $mode, |
|
48 | + 'data-alt-format' => get_option( 'date_format', 'F j, Y' ), |
|
49 | + 'data-date-format' => 'Y-m-d', |
|
50 | + 'data-alt-input' => 'true', |
|
51 | + 'data-disable_alt' => empty( $disabled_dates ) ? false : wp_json_encode( $disable_dates ), |
|
52 | + 'data-disable_days_alt' => empty( $disable_days ) ? false : wp_json_encode( wp_parse_id_list( $disable_days ) ), |
|
53 | 53 | ); |
54 | 54 | |
55 | 55 | aui()->input( |
56 | - array( |
|
57 | - 'name' => esc_attr( $id ), |
|
58 | - 'id' => esc_attr( $element_id ), |
|
59 | - 'placeholder' => empty( $placeholder ) ? '' : esc_attr( $placeholder ), |
|
60 | - 'required' => ! empty( $required ), |
|
61 | - 'label' => $label, |
|
62 | - 'label_type' => 'vertical', |
|
63 | - 'help_text' => empty( $description ) ? '' : wp_kses_post( $description ), |
|
64 | - 'type' => 'datepicker', |
|
65 | - 'class' => $label_class . ' getpaid-init-flatpickr flatpickr-input', |
|
66 | - 'extra_attributes' => array_filter( apply_filters( 'getpaid_date_field_attributes', $options ) ), |
|
67 | - 'value' => $query_value, |
|
68 | - ), |
|
69 | - true |
|
56 | + array( |
|
57 | + 'name' => esc_attr( $id ), |
|
58 | + 'id' => esc_attr( $element_id ), |
|
59 | + 'placeholder' => empty( $placeholder ) ? '' : esc_attr( $placeholder ), |
|
60 | + 'required' => ! empty( $required ), |
|
61 | + 'label' => $label, |
|
62 | + 'label_type' => 'vertical', |
|
63 | + 'help_text' => empty( $description ) ? '' : wp_kses_post( $description ), |
|
64 | + 'type' => 'datepicker', |
|
65 | + 'class' => $label_class . ' getpaid-init-flatpickr flatpickr-input', |
|
66 | + 'extra_attributes' => array_filter( apply_filters( 'getpaid_date_field_attributes', $options ) ), |
|
67 | + 'value' => $query_value, |
|
68 | + ), |
|
69 | + true |
|
70 | 70 | ); |
@@ -7,63 +7,63 @@ |
||
7 | 7 | * @version 1.0.19 |
8 | 8 | */ |
9 | 9 | |
10 | -defined( 'ABSPATH' ) || exit; |
|
10 | +defined('ABSPATH') || exit; |
|
11 | 11 | |
12 | -$label = empty( $label ) ? '' : wp_kses_post( $label ); |
|
13 | -$label_class = sanitize_key( preg_replace( '/[^A-Za-z0-9_-]/', '-', $label ) ); |
|
14 | -if ( ! empty( $required ) ) { |
|
12 | +$label = empty($label) ? '' : wp_kses_post($label); |
|
13 | +$label_class = sanitize_key(preg_replace('/[^A-Za-z0-9_-]/', '-', $label)); |
|
14 | +if (!empty($required)) { |
|
15 | 15 | $label .= "<span class='text-danger'> *</span>"; |
16 | 16 | } |
17 | 17 | |
18 | 18 | $disable_dates = array(); |
19 | 19 | |
20 | -if ( ! empty( $disabled_dates ) ) { |
|
21 | - $disabled_dates = preg_replace( '/\s+/', '', $disabled_dates ); |
|
22 | - $disabled_dates = str_ireplace( 'today', current_time( 'Y-m-d' ), $disabled_dates ); |
|
23 | - $disabled_dates = array_filter( explode( ',', $disabled_dates ) ); |
|
20 | +if (!empty($disabled_dates)) { |
|
21 | + $disabled_dates = preg_replace('/\s+/', '', $disabled_dates); |
|
22 | + $disabled_dates = str_ireplace('today', current_time('Y-m-d'), $disabled_dates); |
|
23 | + $disabled_dates = array_filter(explode(',', $disabled_dates)); |
|
24 | 24 | |
25 | - foreach ( $disabled_dates as $disabled_date ) { |
|
25 | + foreach ($disabled_dates as $disabled_date) { |
|
26 | 26 | |
27 | - $disabled_date = trim( $disabled_date ); |
|
27 | + $disabled_date = trim($disabled_date); |
|
28 | 28 | |
29 | - if ( false === strpos( $disabled_date, '|' ) ) { |
|
29 | + if (false === strpos($disabled_date, '|')) { |
|
30 | 30 | $disable_dates[] = $disabled_date; |
31 | 31 | continue; |
32 | 32 | } |
33 | 33 | |
34 | - $disabled_date = explode( '|', $disabled_date ); |
|
34 | + $disabled_date = explode('|', $disabled_date); |
|
35 | 35 | $disable_dates[] = array( |
36 | - 'from' => trim( $disabled_date[0] ), |
|
37 | - 'to' => trim( $disabled_date[1] ), |
|
36 | + 'from' => trim($disabled_date[0]), |
|
37 | + 'to' => trim($disabled_date[1]), |
|
38 | 38 | ); |
39 | 39 | |
40 | 40 | } |
41 | 41 | } |
42 | 42 | |
43 | 43 | $options = array( |
44 | - 'data-default-date' => empty( $default_date ) ? false : $default_date, |
|
45 | - 'data-min-date' => empty( $min_date ) ? false : $min_date, |
|
46 | - 'data-max-date' => empty( $max_date ) ? false : $max_date, |
|
47 | - 'data-mode' => empty( $mode ) ? 'single' : $mode, |
|
48 | - 'data-alt-format' => get_option( 'date_format', 'F j, Y' ), |
|
44 | + 'data-default-date' => empty($default_date) ? false : $default_date, |
|
45 | + 'data-min-date' => empty($min_date) ? false : $min_date, |
|
46 | + 'data-max-date' => empty($max_date) ? false : $max_date, |
|
47 | + 'data-mode' => empty($mode) ? 'single' : $mode, |
|
48 | + 'data-alt-format' => get_option('date_format', 'F j, Y'), |
|
49 | 49 | 'data-date-format' => 'Y-m-d', |
50 | 50 | 'data-alt-input' => 'true', |
51 | - 'data-disable_alt' => empty( $disabled_dates ) ? false : wp_json_encode( $disable_dates ), |
|
52 | - 'data-disable_days_alt' => empty( $disable_days ) ? false : wp_json_encode( wp_parse_id_list( $disable_days ) ), |
|
51 | + 'data-disable_alt' => empty($disabled_dates) ? false : wp_json_encode($disable_dates), |
|
52 | + 'data-disable_days_alt' => empty($disable_days) ? false : wp_json_encode(wp_parse_id_list($disable_days)), |
|
53 | 53 | ); |
54 | 54 | |
55 | 55 | aui()->input( |
56 | 56 | array( |
57 | - 'name' => esc_attr( $id ), |
|
58 | - 'id' => esc_attr( $element_id ), |
|
59 | - 'placeholder' => empty( $placeholder ) ? '' : esc_attr( $placeholder ), |
|
60 | - 'required' => ! empty( $required ), |
|
57 | + 'name' => esc_attr($id), |
|
58 | + 'id' => esc_attr($element_id), |
|
59 | + 'placeholder' => empty($placeholder) ? '' : esc_attr($placeholder), |
|
60 | + 'required' => !empty($required), |
|
61 | 61 | 'label' => $label, |
62 | 62 | 'label_type' => 'vertical', |
63 | - 'help_text' => empty( $description ) ? '' : wp_kses_post( $description ), |
|
63 | + 'help_text' => empty($description) ? '' : wp_kses_post($description), |
|
64 | 64 | 'type' => 'datepicker', |
65 | 65 | 'class' => $label_class . ' getpaid-init-flatpickr flatpickr-input', |
66 | - 'extra_attributes' => array_filter( apply_filters( 'getpaid_date_field_attributes', $options ) ), |
|
66 | + 'extra_attributes' => array_filter(apply_filters('getpaid_date_field_attributes', $options)), |
|
67 | 67 | 'value' => $query_value, |
68 | 68 | ), |
69 | 69 | true |
@@ -20,237 +20,237 @@ discard block |
||
20 | 20 | */ |
21 | 21 | class GetPaid_Installer { |
22 | 22 | |
23 | - /** |
|
24 | - * Upgrades the install. |
|
25 | - * |
|
26 | - * @param string $upgrade_from The current invoicing version. |
|
27 | - */ |
|
28 | - public function upgrade_db( $upgrade_from ) { |
|
29 | - |
|
30 | - // Save the current invoicing version. |
|
31 | - update_option( 'wpinv_version', WPINV_VERSION ); |
|
32 | - |
|
33 | - // Setup the invoice Custom Post Type. |
|
34 | - GetPaid_Post_Types::register_post_types(); |
|
35 | - |
|
36 | - // Clear the permalinks |
|
37 | - flush_rewrite_rules(); |
|
38 | - |
|
39 | - // Maybe create new/missing pages. |
|
40 | - $this->create_pages(); |
|
41 | - |
|
42 | - // Maybe re(add) admin capabilities. |
|
43 | - $this->add_capabilities(); |
|
44 | - |
|
45 | - // Maybe create the default payment form. |
|
46 | - wpinv_get_default_payment_form(); |
|
47 | - |
|
48 | - // Create any missing database tables. |
|
49 | - $method = "upgrade_from_$upgrade_from"; |
|
50 | - |
|
51 | - $installed = get_option( 'gepaid_installed_on' ); |
|
52 | - |
|
53 | - if ( empty( $installed ) ) { |
|
54 | - update_option( 'gepaid_installed_on', time() ); |
|
55 | - } |
|
56 | - |
|
57 | - if ( method_exists( $this, $method ) ) { |
|
58 | - $this->$method(); |
|
59 | - } |
|
60 | - |
|
61 | - } |
|
62 | - |
|
63 | - /** |
|
64 | - * Do a fresh install. |
|
65 | - * |
|
66 | - */ |
|
67 | - public function upgrade_from_0() { |
|
68 | - $this->create_subscriptions_table(); |
|
69 | - $this->create_invoices_table(); |
|
70 | - $this->create_invoice_items_table(); |
|
71 | - |
|
72 | - // Save default tax rates. |
|
73 | - update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) ); |
|
74 | - } |
|
75 | - |
|
76 | - /** |
|
77 | - * Upgrade to 0.0.5 |
|
78 | - * |
|
79 | - */ |
|
80 | - public function upgrade_from_004() { |
|
81 | - global $wpdb; |
|
82 | - |
|
83 | - // Invoices. |
|
84 | - $results = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" ); |
|
85 | - if ( ! empty( $results ) ) { |
|
86 | - $wpdb->query( "UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" ); |
|
87 | - |
|
88 | - // Clean post cache |
|
89 | - foreach ( $results as $row ) { |
|
90 | - clean_post_cache( $row->ID ); |
|
91 | - } |
|
92 | - } |
|
93 | - |
|
94 | - // Item meta key changes |
|
95 | - $query = 'SELECT DISTINCT post_id FROM ' . $wpdb->postmeta . " WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id', '_wpinv_cpt_name', '_wpinv_cpt_singular_name' )"; |
|
96 | - $results = $wpdb->get_results( $query ); |
|
97 | - |
|
98 | - if ( ! empty( $results ) ) { |
|
99 | - $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )" ); |
|
100 | - $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'" ); |
|
101 | - $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'" ); |
|
102 | - |
|
103 | - foreach ( $results as $row ) { |
|
104 | - clean_post_cache( $row->post_id ); |
|
105 | - } |
|
106 | - } |
|
107 | - |
|
108 | - $this->upgrade_from_102(); |
|
109 | - } |
|
110 | - |
|
111 | - /** |
|
112 | - * Upgrade to 1.0.3 |
|
113 | - * |
|
114 | - */ |
|
115 | - public function upgrade_from_102() { |
|
116 | - $this->create_subscriptions_table(); |
|
117 | - $this->upgrade_from_118(); |
|
118 | - } |
|
119 | - |
|
120 | - /** |
|
121 | - * Upgrade to version 2.0.0. |
|
122 | - * |
|
123 | - */ |
|
124 | - public function upgrade_from_118() { |
|
125 | - $this->create_invoices_table(); |
|
126 | - $this->create_invoice_items_table(); |
|
127 | - $this->migrate_old_invoices(); |
|
128 | - } |
|
129 | - |
|
130 | - /** |
|
131 | - * Upgrade to version 2.0.8. |
|
132 | - * |
|
133 | - */ |
|
134 | - public function upgrade_from_207() { |
|
135 | - global $wpdb; |
|
136 | - $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);" ); |
|
137 | - $this->upgrade_from_2615(); |
|
138 | - } |
|
139 | - |
|
140 | - /** |
|
141 | - * Upgrade to version 2.6.16. |
|
142 | - * |
|
143 | - */ |
|
144 | - public function upgrade_from_2615() { |
|
145 | - global $wpdb; |
|
146 | - $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN item_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY custom_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY price DECIMAL(16,4) NOT NULL DEFAULT '0';" ); |
|
147 | - $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoices MODIFY COLUMN subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY tax DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY fees_total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0';" ); |
|
148 | - } |
|
149 | - |
|
150 | - /** |
|
151 | - * Give administrators the capability to manage GetPaid. |
|
152 | - * |
|
153 | - */ |
|
154 | - public function add_capabilities() { |
|
155 | - $GLOBALS['wp_roles']->add_cap( 'administrator', 'manage_invoicing' ); |
|
156 | - } |
|
157 | - |
|
158 | - /** |
|
159 | - * Retreives GetPaid pages. |
|
160 | - * |
|
161 | - */ |
|
162 | - public static function get_pages() { |
|
163 | - |
|
164 | - return apply_filters( |
|
165 | - 'wpinv_create_pages', |
|
166 | - array( |
|
167 | - |
|
168 | - // Checkout page. |
|
169 | - 'checkout_page' => array( |
|
170 | - 'name' => _x( 'gp-checkout', 'Page slug', 'invoicing' ), |
|
171 | - 'title' => _x( 'Checkout', 'Page title', 'invoicing' ), |
|
172 | - 'content' => ' |
|
23 | + /** |
|
24 | + * Upgrades the install. |
|
25 | + * |
|
26 | + * @param string $upgrade_from The current invoicing version. |
|
27 | + */ |
|
28 | + public function upgrade_db( $upgrade_from ) { |
|
29 | + |
|
30 | + // Save the current invoicing version. |
|
31 | + update_option( 'wpinv_version', WPINV_VERSION ); |
|
32 | + |
|
33 | + // Setup the invoice Custom Post Type. |
|
34 | + GetPaid_Post_Types::register_post_types(); |
|
35 | + |
|
36 | + // Clear the permalinks |
|
37 | + flush_rewrite_rules(); |
|
38 | + |
|
39 | + // Maybe create new/missing pages. |
|
40 | + $this->create_pages(); |
|
41 | + |
|
42 | + // Maybe re(add) admin capabilities. |
|
43 | + $this->add_capabilities(); |
|
44 | + |
|
45 | + // Maybe create the default payment form. |
|
46 | + wpinv_get_default_payment_form(); |
|
47 | + |
|
48 | + // Create any missing database tables. |
|
49 | + $method = "upgrade_from_$upgrade_from"; |
|
50 | + |
|
51 | + $installed = get_option( 'gepaid_installed_on' ); |
|
52 | + |
|
53 | + if ( empty( $installed ) ) { |
|
54 | + update_option( 'gepaid_installed_on', time() ); |
|
55 | + } |
|
56 | + |
|
57 | + if ( method_exists( $this, $method ) ) { |
|
58 | + $this->$method(); |
|
59 | + } |
|
60 | + |
|
61 | + } |
|
62 | + |
|
63 | + /** |
|
64 | + * Do a fresh install. |
|
65 | + * |
|
66 | + */ |
|
67 | + public function upgrade_from_0() { |
|
68 | + $this->create_subscriptions_table(); |
|
69 | + $this->create_invoices_table(); |
|
70 | + $this->create_invoice_items_table(); |
|
71 | + |
|
72 | + // Save default tax rates. |
|
73 | + update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) ); |
|
74 | + } |
|
75 | + |
|
76 | + /** |
|
77 | + * Upgrade to 0.0.5 |
|
78 | + * |
|
79 | + */ |
|
80 | + public function upgrade_from_004() { |
|
81 | + global $wpdb; |
|
82 | + |
|
83 | + // Invoices. |
|
84 | + $results = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" ); |
|
85 | + if ( ! empty( $results ) ) { |
|
86 | + $wpdb->query( "UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" ); |
|
87 | + |
|
88 | + // Clean post cache |
|
89 | + foreach ( $results as $row ) { |
|
90 | + clean_post_cache( $row->ID ); |
|
91 | + } |
|
92 | + } |
|
93 | + |
|
94 | + // Item meta key changes |
|
95 | + $query = 'SELECT DISTINCT post_id FROM ' . $wpdb->postmeta . " WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id', '_wpinv_cpt_name', '_wpinv_cpt_singular_name' )"; |
|
96 | + $results = $wpdb->get_results( $query ); |
|
97 | + |
|
98 | + if ( ! empty( $results ) ) { |
|
99 | + $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )" ); |
|
100 | + $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'" ); |
|
101 | + $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'" ); |
|
102 | + |
|
103 | + foreach ( $results as $row ) { |
|
104 | + clean_post_cache( $row->post_id ); |
|
105 | + } |
|
106 | + } |
|
107 | + |
|
108 | + $this->upgrade_from_102(); |
|
109 | + } |
|
110 | + |
|
111 | + /** |
|
112 | + * Upgrade to 1.0.3 |
|
113 | + * |
|
114 | + */ |
|
115 | + public function upgrade_from_102() { |
|
116 | + $this->create_subscriptions_table(); |
|
117 | + $this->upgrade_from_118(); |
|
118 | + } |
|
119 | + |
|
120 | + /** |
|
121 | + * Upgrade to version 2.0.0. |
|
122 | + * |
|
123 | + */ |
|
124 | + public function upgrade_from_118() { |
|
125 | + $this->create_invoices_table(); |
|
126 | + $this->create_invoice_items_table(); |
|
127 | + $this->migrate_old_invoices(); |
|
128 | + } |
|
129 | + |
|
130 | + /** |
|
131 | + * Upgrade to version 2.0.8. |
|
132 | + * |
|
133 | + */ |
|
134 | + public function upgrade_from_207() { |
|
135 | + global $wpdb; |
|
136 | + $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);" ); |
|
137 | + $this->upgrade_from_2615(); |
|
138 | + } |
|
139 | + |
|
140 | + /** |
|
141 | + * Upgrade to version 2.6.16. |
|
142 | + * |
|
143 | + */ |
|
144 | + public function upgrade_from_2615() { |
|
145 | + global $wpdb; |
|
146 | + $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN item_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY custom_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY price DECIMAL(16,4) NOT NULL DEFAULT '0';" ); |
|
147 | + $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoices MODIFY COLUMN subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY tax DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY fees_total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0';" ); |
|
148 | + } |
|
149 | + |
|
150 | + /** |
|
151 | + * Give administrators the capability to manage GetPaid. |
|
152 | + * |
|
153 | + */ |
|
154 | + public function add_capabilities() { |
|
155 | + $GLOBALS['wp_roles']->add_cap( 'administrator', 'manage_invoicing' ); |
|
156 | + } |
|
157 | + |
|
158 | + /** |
|
159 | + * Retreives GetPaid pages. |
|
160 | + * |
|
161 | + */ |
|
162 | + public static function get_pages() { |
|
163 | + |
|
164 | + return apply_filters( |
|
165 | + 'wpinv_create_pages', |
|
166 | + array( |
|
167 | + |
|
168 | + // Checkout page. |
|
169 | + 'checkout_page' => array( |
|
170 | + 'name' => _x( 'gp-checkout', 'Page slug', 'invoicing' ), |
|
171 | + 'title' => _x( 'Checkout', 'Page title', 'invoicing' ), |
|
172 | + 'content' => ' |
|
173 | 173 | <!-- wp:shortcode --> |
174 | 174 | [wpinv_checkout] |
175 | 175 | <!-- /wp:shortcode --> |
176 | 176 | ', |
177 | - 'parent' => '', |
|
178 | - ), |
|
179 | - |
|
180 | - // Invoice history page. |
|
181 | - 'invoice_history_page' => array( |
|
182 | - 'name' => _x( 'gp-invoices', 'Page slug', 'invoicing' ), |
|
183 | - 'title' => _x( 'My Invoices', 'Page title', 'invoicing' ), |
|
184 | - 'content' => ' |
|
177 | + 'parent' => '', |
|
178 | + ), |
|
179 | + |
|
180 | + // Invoice history page. |
|
181 | + 'invoice_history_page' => array( |
|
182 | + 'name' => _x( 'gp-invoices', 'Page slug', 'invoicing' ), |
|
183 | + 'title' => _x( 'My Invoices', 'Page title', 'invoicing' ), |
|
184 | + 'content' => ' |
|
185 | 185 | <!-- wp:shortcode --> |
186 | 186 | [wpinv_history] |
187 | 187 | <!-- /wp:shortcode --> |
188 | 188 | ', |
189 | - 'parent' => '', |
|
190 | - ), |
|
191 | - |
|
192 | - // Success page content. |
|
193 | - 'success_page' => array( |
|
194 | - 'name' => _x( 'gp-receipt', 'Page slug', 'invoicing' ), |
|
195 | - 'title' => _x( 'Payment Confirmation', 'Page title', 'invoicing' ), |
|
196 | - 'content' => ' |
|
189 | + 'parent' => '', |
|
190 | + ), |
|
191 | + |
|
192 | + // Success page content. |
|
193 | + 'success_page' => array( |
|
194 | + 'name' => _x( 'gp-receipt', 'Page slug', 'invoicing' ), |
|
195 | + 'title' => _x( 'Payment Confirmation', 'Page title', 'invoicing' ), |
|
196 | + 'content' => ' |
|
197 | 197 | <!-- wp:shortcode --> |
198 | 198 | [wpinv_receipt] |
199 | 199 | <!-- /wp:shortcode --> |
200 | 200 | ', |
201 | - 'parent' => 'gp-checkout', |
|
202 | - ), |
|
203 | - |
|
204 | - // Failure page content. |
|
205 | - 'failure_page' => array( |
|
206 | - 'name' => _x( 'gp-transaction-failed', 'Page slug', 'invoicing' ), |
|
207 | - 'title' => _x( 'Transaction Failed', 'Page title', 'invoicing' ), |
|
208 | - 'content' => __( 'Your transaction failed, please try again or contact site support.', 'invoicing' ), |
|
209 | - 'parent' => 'gp-checkout', |
|
210 | - ), |
|
211 | - |
|
212 | - // Subscriptions history page. |
|
213 | - 'invoice_subscription_page' => array( |
|
214 | - 'name' => _x( 'gp-subscriptions', 'Page slug', 'invoicing' ), |
|
215 | - 'title' => _x( 'My Subscriptions', 'Page title', 'invoicing' ), |
|
216 | - 'content' => ' |
|
201 | + 'parent' => 'gp-checkout', |
|
202 | + ), |
|
203 | + |
|
204 | + // Failure page content. |
|
205 | + 'failure_page' => array( |
|
206 | + 'name' => _x( 'gp-transaction-failed', 'Page slug', 'invoicing' ), |
|
207 | + 'title' => _x( 'Transaction Failed', 'Page title', 'invoicing' ), |
|
208 | + 'content' => __( 'Your transaction failed, please try again or contact site support.', 'invoicing' ), |
|
209 | + 'parent' => 'gp-checkout', |
|
210 | + ), |
|
211 | + |
|
212 | + // Subscriptions history page. |
|
213 | + 'invoice_subscription_page' => array( |
|
214 | + 'name' => _x( 'gp-subscriptions', 'Page slug', 'invoicing' ), |
|
215 | + 'title' => _x( 'My Subscriptions', 'Page title', 'invoicing' ), |
|
216 | + 'content' => ' |
|
217 | 217 | <!-- wp:shortcode --> |
218 | 218 | [wpinv_subscriptions] |
219 | 219 | <!-- /wp:shortcode --> |
220 | 220 | ', |
221 | - 'parent' => '', |
|
222 | - ), |
|
221 | + 'parent' => '', |
|
222 | + ), |
|
223 | 223 | |
224 | - ) |
|
225 | - ); |
|
224 | + ) |
|
225 | + ); |
|
226 | 226 | |
227 | - } |
|
227 | + } |
|
228 | 228 | |
229 | - /** |
|
230 | - * Re-create GetPaid pages. |
|
231 | - * |
|
232 | - */ |
|
233 | - public function create_pages() { |
|
229 | + /** |
|
230 | + * Re-create GetPaid pages. |
|
231 | + * |
|
232 | + */ |
|
233 | + public function create_pages() { |
|
234 | 234 | |
235 | - foreach ( self::get_pages() as $key => $page ) { |
|
236 | - wpinv_create_page( esc_sql( $page['name'] ), $key, $page['title'], $page['content'], $page['parent'] ); |
|
237 | - } |
|
235 | + foreach ( self::get_pages() as $key => $page ) { |
|
236 | + wpinv_create_page( esc_sql( $page['name'] ), $key, $page['title'], $page['content'], $page['parent'] ); |
|
237 | + } |
|
238 | 238 | |
239 | - } |
|
239 | + } |
|
240 | 240 | |
241 | - /** |
|
242 | - * Create subscriptions table. |
|
243 | - * |
|
244 | - */ |
|
245 | - public function create_subscriptions_table() { |
|
241 | + /** |
|
242 | + * Create subscriptions table. |
|
243 | + * |
|
244 | + */ |
|
245 | + public function create_subscriptions_table() { |
|
246 | 246 | |
247 | - global $wpdb; |
|
247 | + global $wpdb; |
|
248 | 248 | |
249 | - require_once ABSPATH . 'wp-admin/includes/upgrade.php'; |
|
249 | + require_once ABSPATH . 'wp-admin/includes/upgrade.php'; |
|
250 | 250 | |
251 | - // Create tables. |
|
252 | - $charset_collate = $wpdb->get_charset_collate(); |
|
253 | - $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wpinv_subscriptions ( |
|
251 | + // Create tables. |
|
252 | + $charset_collate = $wpdb->get_charset_collate(); |
|
253 | + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}wpinv_subscriptions ( |
|
254 | 254 | id bigint(20) unsigned NOT NULL auto_increment, |
255 | 255 | customer_id bigint(20) NOT NULL, |
256 | 256 | frequency int(11) NOT NULL DEFAULT '1', |
@@ -273,22 +273,22 @@ discard block |
||
273 | 273 | KEY customer_and_status (customer_id, status) |
274 | 274 | ) $charset_collate;"; |
275 | 275 | |
276 | - dbDelta( $sql ); |
|
276 | + dbDelta( $sql ); |
|
277 | 277 | |
278 | - } |
|
278 | + } |
|
279 | 279 | |
280 | - /** |
|
281 | - * Create invoices table. |
|
282 | - * |
|
283 | - */ |
|
284 | - public function create_invoices_table() { |
|
285 | - global $wpdb; |
|
280 | + /** |
|
281 | + * Create invoices table. |
|
282 | + * |
|
283 | + */ |
|
284 | + public function create_invoices_table() { |
|
285 | + global $wpdb; |
|
286 | 286 | |
287 | - require_once ABSPATH . 'wp-admin/includes/upgrade.php'; |
|
287 | + require_once ABSPATH . 'wp-admin/includes/upgrade.php'; |
|
288 | 288 | |
289 | - // Create tables. |
|
290 | - $charset_collate = $wpdb->get_charset_collate(); |
|
291 | - $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoices ( |
|
289 | + // Create tables. |
|
290 | + $charset_collate = $wpdb->get_charset_collate(); |
|
291 | + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoices ( |
|
292 | 292 | post_id BIGINT(20) NOT NULL, |
293 | 293 | `number` VARCHAR(100), |
294 | 294 | `key` VARCHAR(100), |
@@ -324,22 +324,22 @@ discard block |
||
324 | 324 | KEY `key` (`key`) |
325 | 325 | ) $charset_collate;"; |
326 | 326 | |
327 | - dbDelta( $sql ); |
|
327 | + dbDelta( $sql ); |
|
328 | 328 | |
329 | - } |
|
329 | + } |
|
330 | 330 | |
331 | - /** |
|
332 | - * Create invoice items table. |
|
333 | - * |
|
334 | - */ |
|
335 | - public function create_invoice_items_table() { |
|
336 | - global $wpdb; |
|
331 | + /** |
|
332 | + * Create invoice items table. |
|
333 | + * |
|
334 | + */ |
|
335 | + public function create_invoice_items_table() { |
|
336 | + global $wpdb; |
|
337 | 337 | |
338 | - require_once ABSPATH . 'wp-admin/includes/upgrade.php'; |
|
338 | + require_once ABSPATH . 'wp-admin/includes/upgrade.php'; |
|
339 | 339 | |
340 | - // Create tables. |
|
341 | - $charset_collate = $wpdb->get_charset_collate(); |
|
342 | - $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoice_items ( |
|
340 | + // Create tables. |
|
341 | + $charset_collate = $wpdb->get_charset_collate(); |
|
342 | + $sql = "CREATE TABLE IF NOT EXISTS {$wpdb->prefix}getpaid_invoice_items ( |
|
343 | 343 | ID BIGINT(20) NOT NULL AUTO_INCREMENT, |
344 | 344 | post_id BIGINT(20) NOT NULL, |
345 | 345 | item_id BIGINT(20) NOT NULL, |
@@ -361,159 +361,159 @@ discard block |
||
361 | 361 | KEY post_id (post_id) |
362 | 362 | ) $charset_collate;"; |
363 | 363 | |
364 | - dbDelta( $sql ); |
|
365 | - |
|
366 | - } |
|
367 | - |
|
368 | - /** |
|
369 | - * Migrates old invoices to new invoices. |
|
370 | - * |
|
371 | - */ |
|
372 | - public function migrate_old_invoices() { |
|
373 | - global $wpdb; |
|
374 | - |
|
375 | - $invoices_table = $wpdb->prefix . 'getpaid_invoices'; |
|
376 | - $invoice_items_table = $wpdb->prefix . 'getpaid_invoice_items'; |
|
377 | - $migrated = $wpdb->get_col( "SELECT post_id FROM $invoices_table" ); |
|
378 | - $invoices = array_unique( |
|
379 | - get_posts( |
|
380 | - array( |
|
381 | - 'post_type' => array( 'wpi_invoice', 'wpi_quote' ), |
|
382 | - 'posts_per_page' => -1, |
|
383 | - 'fields' => 'ids', |
|
384 | - 'post_status' => array_keys( get_post_stati() ), |
|
385 | - 'exclude' => (array) $migrated, |
|
386 | - ) |
|
387 | - ) |
|
388 | - ); |
|
389 | - |
|
390 | - // Abort if we do not have any invoices. |
|
391 | - if ( empty( $invoices ) ) { |
|
392 | - return; |
|
393 | - } |
|
394 | - |
|
395 | - require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-legacy-invoice.php'; |
|
396 | - |
|
397 | - $invoice_rows = array(); |
|
398 | - foreach ( $invoices as $invoice ) { |
|
399 | - |
|
400 | - $invoice = new WPInv_Legacy_Invoice( $invoice ); |
|
401 | - |
|
402 | - if ( empty( $invoice->ID ) ) { |
|
403 | - return; |
|
404 | - } |
|
405 | - |
|
406 | - $fields = array( |
|
407 | - 'post_id' => $invoice->ID, |
|
408 | - 'number' => $invoice->get_number(), |
|
409 | - 'key' => $invoice->get_key(), |
|
410 | - 'type' => str_replace( 'wpi_', '', $invoice->post_type ), |
|
411 | - 'mode' => $invoice->mode, |
|
412 | - 'user_ip' => $invoice->get_ip(), |
|
413 | - 'first_name' => $invoice->get_first_name(), |
|
414 | - 'last_name' => $invoice->get_last_name(), |
|
415 | - 'address' => $invoice->get_address(), |
|
416 | - 'city' => $invoice->city, |
|
417 | - 'state' => $invoice->state, |
|
418 | - 'country' => $invoice->country, |
|
419 | - 'zip' => $invoice->zip, |
|
420 | - 'adddress_confirmed' => (int) $invoice->adddress_confirmed, |
|
421 | - 'gateway' => $invoice->get_gateway(), |
|
422 | - 'transaction_id' => $invoice->get_transaction_id(), |
|
423 | - 'currency' => $invoice->get_currency(), |
|
424 | - 'subtotal' => $invoice->get_subtotal(), |
|
425 | - 'tax' => $invoice->get_tax(), |
|
426 | - 'fees_total' => $invoice->get_fees_total(), |
|
427 | - 'total' => $invoice->get_total(), |
|
428 | - 'discount' => $invoice->get_discount(), |
|
429 | - 'discount_code' => $invoice->get_discount_code(), |
|
430 | - 'disable_taxes' => $invoice->disable_taxes, |
|
431 | - 'due_date' => $invoice->get_due_date(), |
|
432 | - 'completed_date' => $invoice->get_completed_date(), |
|
433 | - 'company' => $invoice->company, |
|
434 | - 'vat_number' => $invoice->vat_number, |
|
435 | - 'vat_rate' => $invoice->vat_rate, |
|
436 | - 'custom_meta' => $invoice->payment_meta, |
|
437 | - ); |
|
438 | - |
|
439 | - foreach ( $fields as $key => $val ) { |
|
440 | - if ( is_null( $val ) ) { |
|
441 | - $val = ''; |
|
442 | - } |
|
443 | - $val = maybe_serialize( $val ); |
|
444 | - $fields[ $key ] = $wpdb->prepare( '%s', $val ); |
|
445 | - } |
|
446 | - |
|
447 | - $fields = implode( ', ', $fields ); |
|
448 | - $invoice_rows[] = "($fields)"; |
|
449 | - |
|
450 | - $item_rows = array(); |
|
451 | - $item_columns = array(); |
|
452 | - foreach ( $invoice->get_cart_details() as $details ) { |
|
453 | - $fields = array( |
|
454 | - 'post_id' => $invoice->ID, |
|
455 | - 'item_id' => $details['id'], |
|
456 | - 'item_name' => $details['name'], |
|
457 | - 'item_description' => empty( $details['meta']['description'] ) ? '' : $details['meta']['description'], |
|
458 | - 'vat_rate' => $details['vat_rate'], |
|
459 | - 'vat_class' => empty( $details['vat_class'] ) ? '_standard' : $details['vat_class'], |
|
460 | - 'tax' => $details['tax'], |
|
461 | - 'item_price' => $details['item_price'], |
|
462 | - 'custom_price' => $details['custom_price'], |
|
463 | - 'quantity' => $details['quantity'], |
|
464 | - 'discount' => $details['discount'], |
|
465 | - 'subtotal' => $details['subtotal'], |
|
466 | - 'price' => $details['price'], |
|
467 | - 'meta' => $details['meta'], |
|
468 | - 'fees' => $details['fees'], |
|
469 | - ); |
|
470 | - |
|
471 | - $item_columns = array_keys( $fields ); |
|
472 | - |
|
473 | - foreach ( $fields as $key => $val ) { |
|
474 | - if ( is_null( $val ) ) { |
|
475 | - $val = ''; |
|
476 | - } |
|
477 | - $val = maybe_serialize( $val ); |
|
478 | - $fields[ $key ] = $wpdb->prepare( '%s', $val ); |
|
479 | - } |
|
480 | - |
|
481 | - $fields = implode( ', ', $fields ); |
|
482 | - $item_rows[] = "($fields)"; |
|
483 | - } |
|
484 | - |
|
485 | - $item_rows = implode( ', ', $item_rows ); |
|
486 | - $item_columns = implode( ', ', $item_columns ); |
|
487 | - $wpdb->query( "INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows" ); |
|
488 | - } |
|
489 | - |
|
490 | - if ( empty( $invoice_rows ) ) { |
|
491 | - return; |
|
492 | - } |
|
493 | - |
|
494 | - $invoice_rows = implode( ', ', $invoice_rows ); |
|
495 | - $wpdb->query( "INSERT INTO $invoices_table VALUES $invoice_rows" ); |
|
496 | - |
|
497 | - } |
|
498 | - |
|
499 | - /** |
|
500 | - * Migrates old invoices to new invoices. |
|
501 | - * |
|
502 | - */ |
|
503 | - public static function rename_gateways_label() { |
|
504 | - global $wpdb; |
|
505 | - |
|
506 | - foreach ( array_keys( wpinv_get_payment_gateways() ) as $gateway ) { |
|
507 | - |
|
508 | - $wpdb->update( |
|
509 | - $wpdb->prefix . 'getpaid_invoices', |
|
510 | - array( 'gateway' => $gateway ), |
|
511 | - array( 'gateway' => wpinv_get_gateway_admin_label( $gateway ) ), |
|
512 | - '%s', |
|
513 | - '%s' |
|
514 | - ); |
|
515 | - |
|
516 | - } |
|
517 | - } |
|
364 | + dbDelta( $sql ); |
|
365 | + |
|
366 | + } |
|
367 | + |
|
368 | + /** |
|
369 | + * Migrates old invoices to new invoices. |
|
370 | + * |
|
371 | + */ |
|
372 | + public function migrate_old_invoices() { |
|
373 | + global $wpdb; |
|
374 | + |
|
375 | + $invoices_table = $wpdb->prefix . 'getpaid_invoices'; |
|
376 | + $invoice_items_table = $wpdb->prefix . 'getpaid_invoice_items'; |
|
377 | + $migrated = $wpdb->get_col( "SELECT post_id FROM $invoices_table" ); |
|
378 | + $invoices = array_unique( |
|
379 | + get_posts( |
|
380 | + array( |
|
381 | + 'post_type' => array( 'wpi_invoice', 'wpi_quote' ), |
|
382 | + 'posts_per_page' => -1, |
|
383 | + 'fields' => 'ids', |
|
384 | + 'post_status' => array_keys( get_post_stati() ), |
|
385 | + 'exclude' => (array) $migrated, |
|
386 | + ) |
|
387 | + ) |
|
388 | + ); |
|
389 | + |
|
390 | + // Abort if we do not have any invoices. |
|
391 | + if ( empty( $invoices ) ) { |
|
392 | + return; |
|
393 | + } |
|
394 | + |
|
395 | + require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-legacy-invoice.php'; |
|
396 | + |
|
397 | + $invoice_rows = array(); |
|
398 | + foreach ( $invoices as $invoice ) { |
|
399 | + |
|
400 | + $invoice = new WPInv_Legacy_Invoice( $invoice ); |
|
401 | + |
|
402 | + if ( empty( $invoice->ID ) ) { |
|
403 | + return; |
|
404 | + } |
|
405 | + |
|
406 | + $fields = array( |
|
407 | + 'post_id' => $invoice->ID, |
|
408 | + 'number' => $invoice->get_number(), |
|
409 | + 'key' => $invoice->get_key(), |
|
410 | + 'type' => str_replace( 'wpi_', '', $invoice->post_type ), |
|
411 | + 'mode' => $invoice->mode, |
|
412 | + 'user_ip' => $invoice->get_ip(), |
|
413 | + 'first_name' => $invoice->get_first_name(), |
|
414 | + 'last_name' => $invoice->get_last_name(), |
|
415 | + 'address' => $invoice->get_address(), |
|
416 | + 'city' => $invoice->city, |
|
417 | + 'state' => $invoice->state, |
|
418 | + 'country' => $invoice->country, |
|
419 | + 'zip' => $invoice->zip, |
|
420 | + 'adddress_confirmed' => (int) $invoice->adddress_confirmed, |
|
421 | + 'gateway' => $invoice->get_gateway(), |
|
422 | + 'transaction_id' => $invoice->get_transaction_id(), |
|
423 | + 'currency' => $invoice->get_currency(), |
|
424 | + 'subtotal' => $invoice->get_subtotal(), |
|
425 | + 'tax' => $invoice->get_tax(), |
|
426 | + 'fees_total' => $invoice->get_fees_total(), |
|
427 | + 'total' => $invoice->get_total(), |
|
428 | + 'discount' => $invoice->get_discount(), |
|
429 | + 'discount_code' => $invoice->get_discount_code(), |
|
430 | + 'disable_taxes' => $invoice->disable_taxes, |
|
431 | + 'due_date' => $invoice->get_due_date(), |
|
432 | + 'completed_date' => $invoice->get_completed_date(), |
|
433 | + 'company' => $invoice->company, |
|
434 | + 'vat_number' => $invoice->vat_number, |
|
435 | + 'vat_rate' => $invoice->vat_rate, |
|
436 | + 'custom_meta' => $invoice->payment_meta, |
|
437 | + ); |
|
438 | + |
|
439 | + foreach ( $fields as $key => $val ) { |
|
440 | + if ( is_null( $val ) ) { |
|
441 | + $val = ''; |
|
442 | + } |
|
443 | + $val = maybe_serialize( $val ); |
|
444 | + $fields[ $key ] = $wpdb->prepare( '%s', $val ); |
|
445 | + } |
|
446 | + |
|
447 | + $fields = implode( ', ', $fields ); |
|
448 | + $invoice_rows[] = "($fields)"; |
|
449 | + |
|
450 | + $item_rows = array(); |
|
451 | + $item_columns = array(); |
|
452 | + foreach ( $invoice->get_cart_details() as $details ) { |
|
453 | + $fields = array( |
|
454 | + 'post_id' => $invoice->ID, |
|
455 | + 'item_id' => $details['id'], |
|
456 | + 'item_name' => $details['name'], |
|
457 | + 'item_description' => empty( $details['meta']['description'] ) ? '' : $details['meta']['description'], |
|
458 | + 'vat_rate' => $details['vat_rate'], |
|
459 | + 'vat_class' => empty( $details['vat_class'] ) ? '_standard' : $details['vat_class'], |
|
460 | + 'tax' => $details['tax'], |
|
461 | + 'item_price' => $details['item_price'], |
|
462 | + 'custom_price' => $details['custom_price'], |
|
463 | + 'quantity' => $details['quantity'], |
|
464 | + 'discount' => $details['discount'], |
|
465 | + 'subtotal' => $details['subtotal'], |
|
466 | + 'price' => $details['price'], |
|
467 | + 'meta' => $details['meta'], |
|
468 | + 'fees' => $details['fees'], |
|
469 | + ); |
|
470 | + |
|
471 | + $item_columns = array_keys( $fields ); |
|
472 | + |
|
473 | + foreach ( $fields as $key => $val ) { |
|
474 | + if ( is_null( $val ) ) { |
|
475 | + $val = ''; |
|
476 | + } |
|
477 | + $val = maybe_serialize( $val ); |
|
478 | + $fields[ $key ] = $wpdb->prepare( '%s', $val ); |
|
479 | + } |
|
480 | + |
|
481 | + $fields = implode( ', ', $fields ); |
|
482 | + $item_rows[] = "($fields)"; |
|
483 | + } |
|
484 | + |
|
485 | + $item_rows = implode( ', ', $item_rows ); |
|
486 | + $item_columns = implode( ', ', $item_columns ); |
|
487 | + $wpdb->query( "INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows" ); |
|
488 | + } |
|
489 | + |
|
490 | + if ( empty( $invoice_rows ) ) { |
|
491 | + return; |
|
492 | + } |
|
493 | + |
|
494 | + $invoice_rows = implode( ', ', $invoice_rows ); |
|
495 | + $wpdb->query( "INSERT INTO $invoices_table VALUES $invoice_rows" ); |
|
496 | + |
|
497 | + } |
|
498 | + |
|
499 | + /** |
|
500 | + * Migrates old invoices to new invoices. |
|
501 | + * |
|
502 | + */ |
|
503 | + public static function rename_gateways_label() { |
|
504 | + global $wpdb; |
|
505 | + |
|
506 | + foreach ( array_keys( wpinv_get_payment_gateways() ) as $gateway ) { |
|
507 | + |
|
508 | + $wpdb->update( |
|
509 | + $wpdb->prefix . 'getpaid_invoices', |
|
510 | + array( 'gateway' => $gateway ), |
|
511 | + array( 'gateway' => wpinv_get_gateway_admin_label( $gateway ) ), |
|
512 | + '%s', |
|
513 | + '%s' |
|
514 | + ); |
|
515 | + |
|
516 | + } |
|
517 | + } |
|
518 | 518 | |
519 | 519 | } |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | * @since 2.0.2 |
9 | 9 | */ |
10 | 10 | |
11 | -defined( 'ABSPATH' ) || exit; |
|
11 | +defined('ABSPATH') || exit; |
|
12 | 12 | |
13 | 13 | /** |
14 | 14 | * The main installer/updater class. |
@@ -25,10 +25,10 @@ discard block |
||
25 | 25 | * |
26 | 26 | * @param string $upgrade_from The current invoicing version. |
27 | 27 | */ |
28 | - public function upgrade_db( $upgrade_from ) { |
|
28 | + public function upgrade_db($upgrade_from) { |
|
29 | 29 | |
30 | 30 | // Save the current invoicing version. |
31 | - update_option( 'wpinv_version', WPINV_VERSION ); |
|
31 | + update_option('wpinv_version', WPINV_VERSION); |
|
32 | 32 | |
33 | 33 | // Setup the invoice Custom Post Type. |
34 | 34 | GetPaid_Post_Types::register_post_types(); |
@@ -48,13 +48,13 @@ discard block |
||
48 | 48 | // Create any missing database tables. |
49 | 49 | $method = "upgrade_from_$upgrade_from"; |
50 | 50 | |
51 | - $installed = get_option( 'gepaid_installed_on' ); |
|
51 | + $installed = get_option('gepaid_installed_on'); |
|
52 | 52 | |
53 | - if ( empty( $installed ) ) { |
|
54 | - update_option( 'gepaid_installed_on', time() ); |
|
53 | + if (empty($installed)) { |
|
54 | + update_option('gepaid_installed_on', time()); |
|
55 | 55 | } |
56 | 56 | |
57 | - if ( method_exists( $this, $method ) ) { |
|
57 | + if (method_exists($this, $method)) { |
|
58 | 58 | $this->$method(); |
59 | 59 | } |
60 | 60 | |
@@ -70,7 +70,7 @@ discard block |
||
70 | 70 | $this->create_invoice_items_table(); |
71 | 71 | |
72 | 72 | // Save default tax rates. |
73 | - update_option( 'wpinv_tax_rates', wpinv_get_data( 'tax-rates' ) ); |
|
73 | + update_option('wpinv_tax_rates', wpinv_get_data('tax-rates')); |
|
74 | 74 | } |
75 | 75 | |
76 | 76 | /** |
@@ -81,27 +81,27 @@ discard block |
||
81 | 81 | global $wpdb; |
82 | 82 | |
83 | 83 | // Invoices. |
84 | - $results = $wpdb->get_results( "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" ); |
|
85 | - if ( ! empty( $results ) ) { |
|
86 | - $wpdb->query( "UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )" ); |
|
84 | + $results = $wpdb->get_results("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )"); |
|
85 | + if (!empty($results)) { |
|
86 | + $wpdb->query("UPDATE {$wpdb->posts} SET post_status = CONCAT( 'wpi-', post_status ) WHERE post_type = 'wpi_invoice' AND post_status IN( 'pending', 'processing', 'onhold', 'refunded', 'cancelled', 'failed', 'renewal' )"); |
|
87 | 87 | |
88 | 88 | // Clean post cache |
89 | - foreach ( $results as $row ) { |
|
90 | - clean_post_cache( $row->ID ); |
|
89 | + foreach ($results as $row) { |
|
90 | + clean_post_cache($row->ID); |
|
91 | 91 | } |
92 | 92 | } |
93 | 93 | |
94 | 94 | // Item meta key changes |
95 | 95 | $query = 'SELECT DISTINCT post_id FROM ' . $wpdb->postmeta . " WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id', '_wpinv_cpt_name', '_wpinv_cpt_singular_name' )"; |
96 | - $results = $wpdb->get_results( $query ); |
|
96 | + $results = $wpdb->get_results($query); |
|
97 | 97 | |
98 | - if ( ! empty( $results ) ) { |
|
99 | - $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )" ); |
|
100 | - $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'" ); |
|
101 | - $wpdb->query( 'UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'" ); |
|
98 | + if (!empty($results)) { |
|
99 | + $wpdb->query('UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_id' WHERE meta_key IN( '_wpinv_item_id', '_wpinv_package_id', '_wpinv_post_id' )"); |
|
100 | + $wpdb->query('UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_name' WHERE meta_key = '_wpinv_cpt_name'"); |
|
101 | + $wpdb->query('UPDATE ' . $wpdb->postmeta . " SET meta_key = '_wpinv_custom_singular_name' WHERE meta_key = '_wpinv_cpt_singular_name'"); |
|
102 | 102 | |
103 | - foreach ( $results as $row ) { |
|
104 | - clean_post_cache( $row->post_id ); |
|
103 | + foreach ($results as $row) { |
|
104 | + clean_post_cache($row->post_id); |
|
105 | 105 | } |
106 | 106 | } |
107 | 107 | |
@@ -133,7 +133,7 @@ discard block |
||
133 | 133 | */ |
134 | 134 | public function upgrade_from_207() { |
135 | 135 | global $wpdb; |
136 | - $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);" ); |
|
136 | + $wpdb->query("ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN quantity FLOAT(20);"); |
|
137 | 137 | $this->upgrade_from_2615(); |
138 | 138 | } |
139 | 139 | |
@@ -143,8 +143,8 @@ discard block |
||
143 | 143 | */ |
144 | 144 | public function upgrade_from_2615() { |
145 | 145 | global $wpdb; |
146 | - $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN item_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY custom_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY price DECIMAL(16,4) NOT NULL DEFAULT '0';" ); |
|
147 | - $wpdb->query( "ALTER TABLE {$wpdb->prefix}getpaid_invoices MODIFY COLUMN subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY tax DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY fees_total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0';" ); |
|
146 | + $wpdb->query("ALTER TABLE {$wpdb->prefix}getpaid_invoice_items MODIFY COLUMN item_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY custom_price DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY price DECIMAL(16,4) NOT NULL DEFAULT '0';"); |
|
147 | + $wpdb->query("ALTER TABLE {$wpdb->prefix}getpaid_invoices MODIFY COLUMN subtotal DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY tax DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY fees_total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY total DECIMAL(16,4) NOT NULL DEFAULT '0', MODIFY discount DECIMAL(16,4) NOT NULL DEFAULT '0';"); |
|
148 | 148 | } |
149 | 149 | |
150 | 150 | /** |
@@ -152,7 +152,7 @@ discard block |
||
152 | 152 | * |
153 | 153 | */ |
154 | 154 | public function add_capabilities() { |
155 | - $GLOBALS['wp_roles']->add_cap( 'administrator', 'manage_invoicing' ); |
|
155 | + $GLOBALS['wp_roles']->add_cap('administrator', 'manage_invoicing'); |
|
156 | 156 | } |
157 | 157 | |
158 | 158 | /** |
@@ -167,8 +167,8 @@ discard block |
||
167 | 167 | |
168 | 168 | // Checkout page. |
169 | 169 | 'checkout_page' => array( |
170 | - 'name' => _x( 'gp-checkout', 'Page slug', 'invoicing' ), |
|
171 | - 'title' => _x( 'Checkout', 'Page title', 'invoicing' ), |
|
170 | + 'name' => _x('gp-checkout', 'Page slug', 'invoicing'), |
|
171 | + 'title' => _x('Checkout', 'Page title', 'invoicing'), |
|
172 | 172 | 'content' => ' |
173 | 173 | <!-- wp:shortcode --> |
174 | 174 | [wpinv_checkout] |
@@ -179,8 +179,8 @@ discard block |
||
179 | 179 | |
180 | 180 | // Invoice history page. |
181 | 181 | 'invoice_history_page' => array( |
182 | - 'name' => _x( 'gp-invoices', 'Page slug', 'invoicing' ), |
|
183 | - 'title' => _x( 'My Invoices', 'Page title', 'invoicing' ), |
|
182 | + 'name' => _x('gp-invoices', 'Page slug', 'invoicing'), |
|
183 | + 'title' => _x('My Invoices', 'Page title', 'invoicing'), |
|
184 | 184 | 'content' => ' |
185 | 185 | <!-- wp:shortcode --> |
186 | 186 | [wpinv_history] |
@@ -191,8 +191,8 @@ discard block |
||
191 | 191 | |
192 | 192 | // Success page content. |
193 | 193 | 'success_page' => array( |
194 | - 'name' => _x( 'gp-receipt', 'Page slug', 'invoicing' ), |
|
195 | - 'title' => _x( 'Payment Confirmation', 'Page title', 'invoicing' ), |
|
194 | + 'name' => _x('gp-receipt', 'Page slug', 'invoicing'), |
|
195 | + 'title' => _x('Payment Confirmation', 'Page title', 'invoicing'), |
|
196 | 196 | 'content' => ' |
197 | 197 | <!-- wp:shortcode --> |
198 | 198 | [wpinv_receipt] |
@@ -203,16 +203,16 @@ discard block |
||
203 | 203 | |
204 | 204 | // Failure page content. |
205 | 205 | 'failure_page' => array( |
206 | - 'name' => _x( 'gp-transaction-failed', 'Page slug', 'invoicing' ), |
|
207 | - 'title' => _x( 'Transaction Failed', 'Page title', 'invoicing' ), |
|
208 | - 'content' => __( 'Your transaction failed, please try again or contact site support.', 'invoicing' ), |
|
206 | + 'name' => _x('gp-transaction-failed', 'Page slug', 'invoicing'), |
|
207 | + 'title' => _x('Transaction Failed', 'Page title', 'invoicing'), |
|
208 | + 'content' => __('Your transaction failed, please try again or contact site support.', 'invoicing'), |
|
209 | 209 | 'parent' => 'gp-checkout', |
210 | 210 | ), |
211 | 211 | |
212 | 212 | // Subscriptions history page. |
213 | 213 | 'invoice_subscription_page' => array( |
214 | - 'name' => _x( 'gp-subscriptions', 'Page slug', 'invoicing' ), |
|
215 | - 'title' => _x( 'My Subscriptions', 'Page title', 'invoicing' ), |
|
214 | + 'name' => _x('gp-subscriptions', 'Page slug', 'invoicing'), |
|
215 | + 'title' => _x('My Subscriptions', 'Page title', 'invoicing'), |
|
216 | 216 | 'content' => ' |
217 | 217 | <!-- wp:shortcode --> |
218 | 218 | [wpinv_subscriptions] |
@@ -232,8 +232,8 @@ discard block |
||
232 | 232 | */ |
233 | 233 | public function create_pages() { |
234 | 234 | |
235 | - foreach ( self::get_pages() as $key => $page ) { |
|
236 | - wpinv_create_page( esc_sql( $page['name'] ), $key, $page['title'], $page['content'], $page['parent'] ); |
|
235 | + foreach (self::get_pages() as $key => $page) { |
|
236 | + wpinv_create_page(esc_sql($page['name']), $key, $page['title'], $page['content'], $page['parent']); |
|
237 | 237 | } |
238 | 238 | |
239 | 239 | } |
@@ -273,7 +273,7 @@ discard block |
||
273 | 273 | KEY customer_and_status (customer_id, status) |
274 | 274 | ) $charset_collate;"; |
275 | 275 | |
276 | - dbDelta( $sql ); |
|
276 | + dbDelta($sql); |
|
277 | 277 | |
278 | 278 | } |
279 | 279 | |
@@ -324,7 +324,7 @@ discard block |
||
324 | 324 | KEY `key` (`key`) |
325 | 325 | ) $charset_collate;"; |
326 | 326 | |
327 | - dbDelta( $sql ); |
|
327 | + dbDelta($sql); |
|
328 | 328 | |
329 | 329 | } |
330 | 330 | |
@@ -361,7 +361,7 @@ discard block |
||
361 | 361 | KEY post_id (post_id) |
362 | 362 | ) $charset_collate;"; |
363 | 363 | |
364 | - dbDelta( $sql ); |
|
364 | + dbDelta($sql); |
|
365 | 365 | |
366 | 366 | } |
367 | 367 | |
@@ -374,32 +374,32 @@ discard block |
||
374 | 374 | |
375 | 375 | $invoices_table = $wpdb->prefix . 'getpaid_invoices'; |
376 | 376 | $invoice_items_table = $wpdb->prefix . 'getpaid_invoice_items'; |
377 | - $migrated = $wpdb->get_col( "SELECT post_id FROM $invoices_table" ); |
|
377 | + $migrated = $wpdb->get_col("SELECT post_id FROM $invoices_table"); |
|
378 | 378 | $invoices = array_unique( |
379 | 379 | get_posts( |
380 | 380 | array( |
381 | - 'post_type' => array( 'wpi_invoice', 'wpi_quote' ), |
|
381 | + 'post_type' => array('wpi_invoice', 'wpi_quote'), |
|
382 | 382 | 'posts_per_page' => -1, |
383 | 383 | 'fields' => 'ids', |
384 | - 'post_status' => array_keys( get_post_stati() ), |
|
384 | + 'post_status' => array_keys(get_post_stati()), |
|
385 | 385 | 'exclude' => (array) $migrated, |
386 | 386 | ) |
387 | 387 | ) |
388 | 388 | ); |
389 | 389 | |
390 | 390 | // Abort if we do not have any invoices. |
391 | - if ( empty( $invoices ) ) { |
|
391 | + if (empty($invoices)) { |
|
392 | 392 | return; |
393 | 393 | } |
394 | 394 | |
395 | 395 | require_once WPINV_PLUGIN_DIR . 'includes/class-wpinv-legacy-invoice.php'; |
396 | 396 | |
397 | 397 | $invoice_rows = array(); |
398 | - foreach ( $invoices as $invoice ) { |
|
398 | + foreach ($invoices as $invoice) { |
|
399 | 399 | |
400 | - $invoice = new WPInv_Legacy_Invoice( $invoice ); |
|
400 | + $invoice = new WPInv_Legacy_Invoice($invoice); |
|
401 | 401 | |
402 | - if ( empty( $invoice->ID ) ) { |
|
402 | + if (empty($invoice->ID)) { |
|
403 | 403 | return; |
404 | 404 | } |
405 | 405 | |
@@ -407,7 +407,7 @@ discard block |
||
407 | 407 | 'post_id' => $invoice->ID, |
408 | 408 | 'number' => $invoice->get_number(), |
409 | 409 | 'key' => $invoice->get_key(), |
410 | - 'type' => str_replace( 'wpi_', '', $invoice->post_type ), |
|
410 | + 'type' => str_replace('wpi_', '', $invoice->post_type), |
|
411 | 411 | 'mode' => $invoice->mode, |
412 | 412 | 'user_ip' => $invoice->get_ip(), |
413 | 413 | 'first_name' => $invoice->get_first_name(), |
@@ -436,27 +436,27 @@ discard block |
||
436 | 436 | 'custom_meta' => $invoice->payment_meta, |
437 | 437 | ); |
438 | 438 | |
439 | - foreach ( $fields as $key => $val ) { |
|
440 | - if ( is_null( $val ) ) { |
|
439 | + foreach ($fields as $key => $val) { |
|
440 | + if (is_null($val)) { |
|
441 | 441 | $val = ''; |
442 | 442 | } |
443 | - $val = maybe_serialize( $val ); |
|
444 | - $fields[ $key ] = $wpdb->prepare( '%s', $val ); |
|
443 | + $val = maybe_serialize($val); |
|
444 | + $fields[$key] = $wpdb->prepare('%s', $val); |
|
445 | 445 | } |
446 | 446 | |
447 | - $fields = implode( ', ', $fields ); |
|
447 | + $fields = implode(', ', $fields); |
|
448 | 448 | $invoice_rows[] = "($fields)"; |
449 | 449 | |
450 | 450 | $item_rows = array(); |
451 | 451 | $item_columns = array(); |
452 | - foreach ( $invoice->get_cart_details() as $details ) { |
|
452 | + foreach ($invoice->get_cart_details() as $details) { |
|
453 | 453 | $fields = array( |
454 | 454 | 'post_id' => $invoice->ID, |
455 | 455 | 'item_id' => $details['id'], |
456 | 456 | 'item_name' => $details['name'], |
457 | - 'item_description' => empty( $details['meta']['description'] ) ? '' : $details['meta']['description'], |
|
457 | + 'item_description' => empty($details['meta']['description']) ? '' : $details['meta']['description'], |
|
458 | 458 | 'vat_rate' => $details['vat_rate'], |
459 | - 'vat_class' => empty( $details['vat_class'] ) ? '_standard' : $details['vat_class'], |
|
459 | + 'vat_class' => empty($details['vat_class']) ? '_standard' : $details['vat_class'], |
|
460 | 460 | 'tax' => $details['tax'], |
461 | 461 | 'item_price' => $details['item_price'], |
462 | 462 | 'custom_price' => $details['custom_price'], |
@@ -468,31 +468,31 @@ discard block |
||
468 | 468 | 'fees' => $details['fees'], |
469 | 469 | ); |
470 | 470 | |
471 | - $item_columns = array_keys( $fields ); |
|
471 | + $item_columns = array_keys($fields); |
|
472 | 472 | |
473 | - foreach ( $fields as $key => $val ) { |
|
474 | - if ( is_null( $val ) ) { |
|
473 | + foreach ($fields as $key => $val) { |
|
474 | + if (is_null($val)) { |
|
475 | 475 | $val = ''; |
476 | 476 | } |
477 | - $val = maybe_serialize( $val ); |
|
478 | - $fields[ $key ] = $wpdb->prepare( '%s', $val ); |
|
477 | + $val = maybe_serialize($val); |
|
478 | + $fields[$key] = $wpdb->prepare('%s', $val); |
|
479 | 479 | } |
480 | 480 | |
481 | - $fields = implode( ', ', $fields ); |
|
481 | + $fields = implode(', ', $fields); |
|
482 | 482 | $item_rows[] = "($fields)"; |
483 | 483 | } |
484 | 484 | |
485 | - $item_rows = implode( ', ', $item_rows ); |
|
486 | - $item_columns = implode( ', ', $item_columns ); |
|
487 | - $wpdb->query( "INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows" ); |
|
485 | + $item_rows = implode(', ', $item_rows); |
|
486 | + $item_columns = implode(', ', $item_columns); |
|
487 | + $wpdb->query("INSERT INTO $invoice_items_table ($item_columns) VALUES $item_rows"); |
|
488 | 488 | } |
489 | 489 | |
490 | - if ( empty( $invoice_rows ) ) { |
|
490 | + if (empty($invoice_rows)) { |
|
491 | 491 | return; |
492 | 492 | } |
493 | 493 | |
494 | - $invoice_rows = implode( ', ', $invoice_rows ); |
|
495 | - $wpdb->query( "INSERT INTO $invoices_table VALUES $invoice_rows" ); |
|
494 | + $invoice_rows = implode(', ', $invoice_rows); |
|
495 | + $wpdb->query("INSERT INTO $invoices_table VALUES $invoice_rows"); |
|
496 | 496 | |
497 | 497 | } |
498 | 498 | |
@@ -503,12 +503,12 @@ discard block |
||
503 | 503 | public static function rename_gateways_label() { |
504 | 504 | global $wpdb; |
505 | 505 | |
506 | - foreach ( array_keys( wpinv_get_payment_gateways() ) as $gateway ) { |
|
506 | + foreach (array_keys(wpinv_get_payment_gateways()) as $gateway) { |
|
507 | 507 | |
508 | 508 | $wpdb->update( |
509 | 509 | $wpdb->prefix . 'getpaid_invoices', |
510 | - array( 'gateway' => $gateway ), |
|
511 | - array( 'gateway' => wpinv_get_gateway_admin_label( $gateway ) ), |
|
510 | + array('gateway' => $gateway), |
|
511 | + array('gateway' => wpinv_get_gateway_admin_label($gateway)), |
|
512 | 512 | '%s', |
513 | 513 | '%s' |
514 | 514 | ); |
@@ -12,47 +12,47 @@ discard block |
||
12 | 12 | */ |
13 | 13 | class GetPaid_Reports_Export { |
14 | 14 | |
15 | - /** |
|
16 | - * Displays the reports tab. |
|
17 | - * |
|
18 | - */ |
|
19 | - public function display() { |
|
20 | - |
|
21 | - echo "<div class='row mt-4' style='max-width: 920px;' >"; |
|
22 | - foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) { |
|
23 | - $this->display_post_type_export( $post_type ); |
|
24 | - } |
|
25 | - $this->display_subscription_export(); |
|
26 | - echo '</div>'; |
|
27 | - |
|
28 | - } |
|
29 | - |
|
30 | - /** |
|
31 | - * Retrieves the download url. |
|
32 | - * |
|
33 | - */ |
|
34 | - public function get_download_url( $post_type ) { |
|
35 | - |
|
36 | - return wp_nonce_url( |
|
37 | - add_query_arg( |
|
38 | - array( |
|
39 | - 'getpaid-admin-action' => 'export_invoices', |
|
40 | - 'post_type' => urlencode( $post_type ), |
|
41 | - ) |
|
42 | - ), |
|
43 | - 'getpaid-nonce', |
|
44 | - 'getpaid-nonce' |
|
45 | - ); |
|
46 | - |
|
47 | - } |
|
48 | - |
|
49 | - /** |
|
50 | - * Displays a single post type export card. |
|
51 | - * |
|
52 | - */ |
|
53 | - public function display_post_type_export( $post_type ) { |
|
54 | - |
|
55 | - ?> |
|
15 | + /** |
|
16 | + * Displays the reports tab. |
|
17 | + * |
|
18 | + */ |
|
19 | + public function display() { |
|
20 | + |
|
21 | + echo "<div class='row mt-4' style='max-width: 920px;' >"; |
|
22 | + foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) { |
|
23 | + $this->display_post_type_export( $post_type ); |
|
24 | + } |
|
25 | + $this->display_subscription_export(); |
|
26 | + echo '</div>'; |
|
27 | + |
|
28 | + } |
|
29 | + |
|
30 | + /** |
|
31 | + * Retrieves the download url. |
|
32 | + * |
|
33 | + */ |
|
34 | + public function get_download_url( $post_type ) { |
|
35 | + |
|
36 | + return wp_nonce_url( |
|
37 | + add_query_arg( |
|
38 | + array( |
|
39 | + 'getpaid-admin-action' => 'export_invoices', |
|
40 | + 'post_type' => urlencode( $post_type ), |
|
41 | + ) |
|
42 | + ), |
|
43 | + 'getpaid-nonce', |
|
44 | + 'getpaid-nonce' |
|
45 | + ); |
|
46 | + |
|
47 | + } |
|
48 | + |
|
49 | + /** |
|
50 | + * Displays a single post type export card. |
|
51 | + * |
|
52 | + */ |
|
53 | + public function display_post_type_export( $post_type ) { |
|
54 | + |
|
55 | + ?> |
|
56 | 56 | |
57 | 57 | <div class="col-12 col-md-6"> |
58 | 58 | <div class="card m-0 p-0" style="max-width:100%"> |
@@ -60,11 +60,11 @@ discard block |
||
60 | 60 | <div class="card-header"> |
61 | 61 | <strong> |
62 | 62 | <?php |
63 | - printf( |
|
64 | - esc_html__( 'Export %s', 'invoicing' ), |
|
65 | - esc_html( getpaid_get_post_type_label( $post_type ) ) |
|
66 | - ); |
|
67 | - ?> |
|
63 | + printf( |
|
64 | + esc_html__( 'Export %s', 'invoicing' ), |
|
65 | + esc_html( getpaid_get_post_type_label( $post_type ) ) |
|
66 | + ); |
|
67 | + ?> |
|
68 | 68 | </strong> |
69 | 69 | </div> |
70 | 70 | |
@@ -73,12 +73,12 @@ discard block |
||
73 | 73 | <form method="post" action="<?php echo esc_url( $this->get_download_url( $post_type ) ); ?>"> |
74 | 74 | |
75 | 75 | <?php |
76 | - $this->generate_from_date( $post_type ); |
|
77 | - $this->generate_to_date( $post_type ); |
|
78 | - $this->generate_post_status_select( $post_type ); |
|
79 | - $this->generate_file_type_select( $post_type ); |
|
80 | - submit_button( __( 'Download', 'invoicing' ) ); |
|
81 | - ?> |
|
76 | + $this->generate_from_date( $post_type ); |
|
77 | + $this->generate_to_date( $post_type ); |
|
78 | + $this->generate_post_status_select( $post_type ); |
|
79 | + $this->generate_file_type_select( $post_type ); |
|
80 | + submit_button( __( 'Download', 'invoicing' ) ); |
|
81 | + ?> |
|
82 | 82 | |
83 | 83 | </form> |
84 | 84 | |
@@ -89,135 +89,135 @@ discard block |
||
89 | 89 | |
90 | 90 | <?php |
91 | 91 | |
92 | - } |
|
93 | - |
|
94 | - /** |
|
95 | - * Generates the from date input field. |
|
96 | - * |
|
97 | - */ |
|
98 | - public function generate_from_date( $post_type ) { |
|
99 | - |
|
100 | - aui()->input( |
|
101 | - array( |
|
102 | - 'type' => 'datepicker', |
|
103 | - 'id' => esc_attr( "$post_type-from_date" ), |
|
104 | - 'name' => 'from_date', |
|
105 | - 'label' => __( 'From Date', 'invoicing' ), |
|
106 | - 'label_type' => 'vertical', |
|
107 | - 'placeholder' => 'YYYY-MM-DD', |
|
108 | - 'extra_attributes' => array( |
|
109 | - 'data-enable-time' => 'false', |
|
110 | - 'data-allow-input' => 'true', |
|
111 | - ), |
|
112 | - ), |
|
113 | - true |
|
114 | - ); |
|
115 | - |
|
116 | - } |
|
117 | - |
|
118 | - /** |
|
119 | - * Generates the to date input field. |
|
120 | - * |
|
121 | - */ |
|
122 | - public function generate_to_date( $post_type ) { |
|
123 | - |
|
124 | - aui()->input( |
|
125 | - array( |
|
126 | - 'type' => 'datepicker', |
|
127 | - 'id' => esc_attr( "$post_type-to_date" ), |
|
128 | - 'name' => 'to_date', |
|
129 | - 'label' => __( 'To Date', 'invoicing' ), |
|
130 | - 'label_type' => 'vertical', |
|
131 | - 'placeholder' => 'YYYY-MM-DD', |
|
132 | - 'extra_attributes' => array( |
|
133 | - 'data-enable-time' => 'false', |
|
134 | - 'data-allow-input' => 'true', |
|
135 | - ), |
|
136 | - ), |
|
137 | - true |
|
138 | - ); |
|
139 | - } |
|
140 | - |
|
141 | - /** |
|
142 | - * Generates the to post status select field. |
|
143 | - * |
|
144 | - */ |
|
145 | - public function generate_post_status_select( $post_type ) { |
|
146 | - |
|
147 | - if ( 'subscriptions' === $post_type ) { |
|
148 | - $options = getpaid_get_subscription_statuses(); |
|
149 | - } else { |
|
150 | - $options = wpinv_get_invoice_statuses( true, false, $post_type ); |
|
151 | - } |
|
152 | - |
|
153 | - aui()->select( |
|
154 | - array( |
|
155 | - 'name' => 'status', |
|
156 | - 'id' => esc_attr( "$post_type-status" ), |
|
157 | - 'placeholder' => __( 'All Statuses', 'invoicing' ), |
|
158 | - 'label' => __( 'Status', 'invoicing' ), |
|
159 | - 'label_type' => 'vertical', |
|
160 | - 'label_class' => 'd-block', |
|
161 | - 'options' => $options, |
|
162 | - ), |
|
163 | - true |
|
164 | - ); |
|
165 | - |
|
166 | - } |
|
167 | - |
|
168 | - /** |
|
169 | - * Generates the to file type select field. |
|
170 | - * |
|
171 | - */ |
|
172 | - public function generate_file_type_select( $post_type ) { |
|
173 | - |
|
174 | - aui()->select( |
|
175 | - array( |
|
176 | - 'name' => 'file_type', |
|
177 | - 'id' => esc_attr( "$post_type-file_type" ), |
|
178 | - 'placeholder' => __( 'Select File Type', 'invoicing' ), |
|
179 | - 'label' => __( 'Export File', 'invoicing' ), |
|
180 | - 'label_type' => 'vertical', |
|
181 | - 'label_class' => 'd-block', |
|
182 | - 'value' => 'csv', |
|
183 | - 'options' => array( |
|
184 | - 'csv' => __( 'CSV', 'invoicing' ), |
|
185 | - 'xml' => __( 'XML', 'invoicing' ), |
|
186 | - 'json' => __( 'JSON', 'invoicing' ), |
|
187 | - ), |
|
188 | - ), |
|
189 | - true |
|
190 | - ); |
|
191 | - |
|
192 | - } |
|
193 | - |
|
194 | - /** |
|
195 | - * Displays a field's markup. |
|
196 | - * |
|
197 | - */ |
|
198 | - public function display_markup( $markup ) { |
|
199 | - |
|
200 | - echo wp_kses( |
|
201 | - str_replace( |
|
202 | - array( |
|
203 | - 'form-control', |
|
204 | - 'custom-select', |
|
205 | - ), |
|
206 | - 'regular-text', |
|
207 | - $markup |
|
208 | - ), |
|
209 | - getpaid_allowed_html() |
|
210 | - ); |
|
211 | - |
|
212 | - } |
|
213 | - |
|
214 | - /** |
|
215 | - * Displays a subscription export card. |
|
216 | - * |
|
217 | - */ |
|
218 | - public function display_subscription_export() { |
|
219 | - |
|
220 | - ?> |
|
92 | + } |
|
93 | + |
|
94 | + /** |
|
95 | + * Generates the from date input field. |
|
96 | + * |
|
97 | + */ |
|
98 | + public function generate_from_date( $post_type ) { |
|
99 | + |
|
100 | + aui()->input( |
|
101 | + array( |
|
102 | + 'type' => 'datepicker', |
|
103 | + 'id' => esc_attr( "$post_type-from_date" ), |
|
104 | + 'name' => 'from_date', |
|
105 | + 'label' => __( 'From Date', 'invoicing' ), |
|
106 | + 'label_type' => 'vertical', |
|
107 | + 'placeholder' => 'YYYY-MM-DD', |
|
108 | + 'extra_attributes' => array( |
|
109 | + 'data-enable-time' => 'false', |
|
110 | + 'data-allow-input' => 'true', |
|
111 | + ), |
|
112 | + ), |
|
113 | + true |
|
114 | + ); |
|
115 | + |
|
116 | + } |
|
117 | + |
|
118 | + /** |
|
119 | + * Generates the to date input field. |
|
120 | + * |
|
121 | + */ |
|
122 | + public function generate_to_date( $post_type ) { |
|
123 | + |
|
124 | + aui()->input( |
|
125 | + array( |
|
126 | + 'type' => 'datepicker', |
|
127 | + 'id' => esc_attr( "$post_type-to_date" ), |
|
128 | + 'name' => 'to_date', |
|
129 | + 'label' => __( 'To Date', 'invoicing' ), |
|
130 | + 'label_type' => 'vertical', |
|
131 | + 'placeholder' => 'YYYY-MM-DD', |
|
132 | + 'extra_attributes' => array( |
|
133 | + 'data-enable-time' => 'false', |
|
134 | + 'data-allow-input' => 'true', |
|
135 | + ), |
|
136 | + ), |
|
137 | + true |
|
138 | + ); |
|
139 | + } |
|
140 | + |
|
141 | + /** |
|
142 | + * Generates the to post status select field. |
|
143 | + * |
|
144 | + */ |
|
145 | + public function generate_post_status_select( $post_type ) { |
|
146 | + |
|
147 | + if ( 'subscriptions' === $post_type ) { |
|
148 | + $options = getpaid_get_subscription_statuses(); |
|
149 | + } else { |
|
150 | + $options = wpinv_get_invoice_statuses( true, false, $post_type ); |
|
151 | + } |
|
152 | + |
|
153 | + aui()->select( |
|
154 | + array( |
|
155 | + 'name' => 'status', |
|
156 | + 'id' => esc_attr( "$post_type-status" ), |
|
157 | + 'placeholder' => __( 'All Statuses', 'invoicing' ), |
|
158 | + 'label' => __( 'Status', 'invoicing' ), |
|
159 | + 'label_type' => 'vertical', |
|
160 | + 'label_class' => 'd-block', |
|
161 | + 'options' => $options, |
|
162 | + ), |
|
163 | + true |
|
164 | + ); |
|
165 | + |
|
166 | + } |
|
167 | + |
|
168 | + /** |
|
169 | + * Generates the to file type select field. |
|
170 | + * |
|
171 | + */ |
|
172 | + public function generate_file_type_select( $post_type ) { |
|
173 | + |
|
174 | + aui()->select( |
|
175 | + array( |
|
176 | + 'name' => 'file_type', |
|
177 | + 'id' => esc_attr( "$post_type-file_type" ), |
|
178 | + 'placeholder' => __( 'Select File Type', 'invoicing' ), |
|
179 | + 'label' => __( 'Export File', 'invoicing' ), |
|
180 | + 'label_type' => 'vertical', |
|
181 | + 'label_class' => 'd-block', |
|
182 | + 'value' => 'csv', |
|
183 | + 'options' => array( |
|
184 | + 'csv' => __( 'CSV', 'invoicing' ), |
|
185 | + 'xml' => __( 'XML', 'invoicing' ), |
|
186 | + 'json' => __( 'JSON', 'invoicing' ), |
|
187 | + ), |
|
188 | + ), |
|
189 | + true |
|
190 | + ); |
|
191 | + |
|
192 | + } |
|
193 | + |
|
194 | + /** |
|
195 | + * Displays a field's markup. |
|
196 | + * |
|
197 | + */ |
|
198 | + public function display_markup( $markup ) { |
|
199 | + |
|
200 | + echo wp_kses( |
|
201 | + str_replace( |
|
202 | + array( |
|
203 | + 'form-control', |
|
204 | + 'custom-select', |
|
205 | + ), |
|
206 | + 'regular-text', |
|
207 | + $markup |
|
208 | + ), |
|
209 | + getpaid_allowed_html() |
|
210 | + ); |
|
211 | + |
|
212 | + } |
|
213 | + |
|
214 | + /** |
|
215 | + * Displays a subscription export card. |
|
216 | + * |
|
217 | + */ |
|
218 | + public function display_subscription_export() { |
|
219 | + |
|
220 | + ?> |
|
221 | 221 | |
222 | 222 | <div class="col-12 col-md-6"> |
223 | 223 | <div class="card m-0 p-0" style="max-width:100%"> |
@@ -233,12 +233,12 @@ discard block |
||
233 | 233 | <form method="post" action="<?php echo esc_url( $this->get_download_url( 'subscriptions' ) ); ?>"> |
234 | 234 | |
235 | 235 | <?php |
236 | - $this->generate_from_date( 'subscriptions' ); |
|
237 | - $this->generate_to_date( 'subscriptions' ); |
|
238 | - $this->generate_post_status_select( 'subscriptions' ); |
|
239 | - $this->generate_file_type_select( 'subscriptions' ); |
|
240 | - submit_button( __( 'Download', 'invoicing' ) ); |
|
241 | - ?> |
|
236 | + $this->generate_from_date( 'subscriptions' ); |
|
237 | + $this->generate_to_date( 'subscriptions' ); |
|
238 | + $this->generate_post_status_select( 'subscriptions' ); |
|
239 | + $this->generate_file_type_select( 'subscriptions' ); |
|
240 | + submit_button( __( 'Download', 'invoicing' ) ); |
|
241 | + ?> |
|
242 | 242 | |
243 | 243 | </form> |
244 | 244 | |
@@ -249,6 +249,6 @@ discard block |
||
249 | 249 | |
250 | 250 | <?php |
251 | 251 | |
252 | - } |
|
252 | + } |
|
253 | 253 | |
254 | 254 | } |
@@ -5,7 +5,7 @@ discard block |
||
5 | 5 | * |
6 | 6 | */ |
7 | 7 | |
8 | -defined( 'ABSPATH' ) || exit; |
|
8 | +defined('ABSPATH') || exit; |
|
9 | 9 | |
10 | 10 | /** |
11 | 11 | * GetPaid_Reports_Export Class. |
@@ -19,8 +19,8 @@ discard block |
||
19 | 19 | public function display() { |
20 | 20 | |
21 | 21 | echo "<div class='row mt-4' style='max-width: 920px;' >"; |
22 | - foreach ( array_keys( getpaid_get_invoice_post_types() ) as $post_type ) { |
|
23 | - $this->display_post_type_export( $post_type ); |
|
22 | + foreach (array_keys(getpaid_get_invoice_post_types()) as $post_type) { |
|
23 | + $this->display_post_type_export($post_type); |
|
24 | 24 | } |
25 | 25 | $this->display_subscription_export(); |
26 | 26 | echo '</div>'; |
@@ -31,13 +31,13 @@ discard block |
||
31 | 31 | * Retrieves the download url. |
32 | 32 | * |
33 | 33 | */ |
34 | - public function get_download_url( $post_type ) { |
|
34 | + public function get_download_url($post_type) { |
|
35 | 35 | |
36 | 36 | return wp_nonce_url( |
37 | 37 | add_query_arg( |
38 | 38 | array( |
39 | 39 | 'getpaid-admin-action' => 'export_invoices', |
40 | - 'post_type' => urlencode( $post_type ), |
|
40 | + 'post_type' => urlencode($post_type), |
|
41 | 41 | ) |
42 | 42 | ), |
43 | 43 | 'getpaid-nonce', |
@@ -50,7 +50,7 @@ discard block |
||
50 | 50 | * Displays a single post type export card. |
51 | 51 | * |
52 | 52 | */ |
53 | - public function display_post_type_export( $post_type ) { |
|
53 | + public function display_post_type_export($post_type) { |
|
54 | 54 | |
55 | 55 | ?> |
56 | 56 | |
@@ -61,8 +61,8 @@ discard block |
||
61 | 61 | <strong> |
62 | 62 | <?php |
63 | 63 | printf( |
64 | - esc_html__( 'Export %s', 'invoicing' ), |
|
65 | - esc_html( getpaid_get_post_type_label( $post_type ) ) |
|
64 | + esc_html__('Export %s', 'invoicing'), |
|
65 | + esc_html(getpaid_get_post_type_label($post_type)) |
|
66 | 66 | ); |
67 | 67 | ?> |
68 | 68 | </strong> |
@@ -70,14 +70,14 @@ discard block |
||
70 | 70 | |
71 | 71 | <div class="card-body"> |
72 | 72 | |
73 | - <form method="post" action="<?php echo esc_url( $this->get_download_url( $post_type ) ); ?>"> |
|
73 | + <form method="post" action="<?php echo esc_url($this->get_download_url($post_type)); ?>"> |
|
74 | 74 | |
75 | 75 | <?php |
76 | - $this->generate_from_date( $post_type ); |
|
77 | - $this->generate_to_date( $post_type ); |
|
78 | - $this->generate_post_status_select( $post_type ); |
|
79 | - $this->generate_file_type_select( $post_type ); |
|
80 | - submit_button( __( 'Download', 'invoicing' ) ); |
|
76 | + $this->generate_from_date($post_type); |
|
77 | + $this->generate_to_date($post_type); |
|
78 | + $this->generate_post_status_select($post_type); |
|
79 | + $this->generate_file_type_select($post_type); |
|
80 | + submit_button(__('Download', 'invoicing')); |
|
81 | 81 | ?> |
82 | 82 | |
83 | 83 | </form> |
@@ -95,14 +95,14 @@ discard block |
||
95 | 95 | * Generates the from date input field. |
96 | 96 | * |
97 | 97 | */ |
98 | - public function generate_from_date( $post_type ) { |
|
98 | + public function generate_from_date($post_type) { |
|
99 | 99 | |
100 | 100 | aui()->input( |
101 | 101 | array( |
102 | 102 | 'type' => 'datepicker', |
103 | - 'id' => esc_attr( "$post_type-from_date" ), |
|
103 | + 'id' => esc_attr("$post_type-from_date"), |
|
104 | 104 | 'name' => 'from_date', |
105 | - 'label' => __( 'From Date', 'invoicing' ), |
|
105 | + 'label' => __('From Date', 'invoicing'), |
|
106 | 106 | 'label_type' => 'vertical', |
107 | 107 | 'placeholder' => 'YYYY-MM-DD', |
108 | 108 | 'extra_attributes' => array( |
@@ -119,14 +119,14 @@ discard block |
||
119 | 119 | * Generates the to date input field. |
120 | 120 | * |
121 | 121 | */ |
122 | - public function generate_to_date( $post_type ) { |
|
122 | + public function generate_to_date($post_type) { |
|
123 | 123 | |
124 | 124 | aui()->input( |
125 | 125 | array( |
126 | 126 | 'type' => 'datepicker', |
127 | - 'id' => esc_attr( "$post_type-to_date" ), |
|
127 | + 'id' => esc_attr("$post_type-to_date"), |
|
128 | 128 | 'name' => 'to_date', |
129 | - 'label' => __( 'To Date', 'invoicing' ), |
|
129 | + 'label' => __('To Date', 'invoicing'), |
|
130 | 130 | 'label_type' => 'vertical', |
131 | 131 | 'placeholder' => 'YYYY-MM-DD', |
132 | 132 | 'extra_attributes' => array( |
@@ -142,20 +142,20 @@ discard block |
||
142 | 142 | * Generates the to post status select field. |
143 | 143 | * |
144 | 144 | */ |
145 | - public function generate_post_status_select( $post_type ) { |
|
145 | + public function generate_post_status_select($post_type) { |
|
146 | 146 | |
147 | - if ( 'subscriptions' === $post_type ) { |
|
147 | + if ('subscriptions' === $post_type) { |
|
148 | 148 | $options = getpaid_get_subscription_statuses(); |
149 | 149 | } else { |
150 | - $options = wpinv_get_invoice_statuses( true, false, $post_type ); |
|
150 | + $options = wpinv_get_invoice_statuses(true, false, $post_type); |
|
151 | 151 | } |
152 | 152 | |
153 | 153 | aui()->select( |
154 | 154 | array( |
155 | 155 | 'name' => 'status', |
156 | - 'id' => esc_attr( "$post_type-status" ), |
|
157 | - 'placeholder' => __( 'All Statuses', 'invoicing' ), |
|
158 | - 'label' => __( 'Status', 'invoicing' ), |
|
156 | + 'id' => esc_attr("$post_type-status"), |
|
157 | + 'placeholder' => __('All Statuses', 'invoicing'), |
|
158 | + 'label' => __('Status', 'invoicing'), |
|
159 | 159 | 'label_type' => 'vertical', |
160 | 160 | 'label_class' => 'd-block', |
161 | 161 | 'options' => $options, |
@@ -169,21 +169,21 @@ discard block |
||
169 | 169 | * Generates the to file type select field. |
170 | 170 | * |
171 | 171 | */ |
172 | - public function generate_file_type_select( $post_type ) { |
|
172 | + public function generate_file_type_select($post_type) { |
|
173 | 173 | |
174 | 174 | aui()->select( |
175 | 175 | array( |
176 | 176 | 'name' => 'file_type', |
177 | - 'id' => esc_attr( "$post_type-file_type" ), |
|
178 | - 'placeholder' => __( 'Select File Type', 'invoicing' ), |
|
179 | - 'label' => __( 'Export File', 'invoicing' ), |
|
177 | + 'id' => esc_attr("$post_type-file_type"), |
|
178 | + 'placeholder' => __('Select File Type', 'invoicing'), |
|
179 | + 'label' => __('Export File', 'invoicing'), |
|
180 | 180 | 'label_type' => 'vertical', |
181 | 181 | 'label_class' => 'd-block', |
182 | 182 | 'value' => 'csv', |
183 | 183 | 'options' => array( |
184 | - 'csv' => __( 'CSV', 'invoicing' ), |
|
185 | - 'xml' => __( 'XML', 'invoicing' ), |
|
186 | - 'json' => __( 'JSON', 'invoicing' ), |
|
184 | + 'csv' => __('CSV', 'invoicing'), |
|
185 | + 'xml' => __('XML', 'invoicing'), |
|
186 | + 'json' => __('JSON', 'invoicing'), |
|
187 | 187 | ), |
188 | 188 | ), |
189 | 189 | true |
@@ -195,7 +195,7 @@ discard block |
||
195 | 195 | * Displays a field's markup. |
196 | 196 | * |
197 | 197 | */ |
198 | - public function display_markup( $markup ) { |
|
198 | + public function display_markup($markup) { |
|
199 | 199 | |
200 | 200 | echo wp_kses( |
201 | 201 | str_replace( |
@@ -224,20 +224,20 @@ discard block |
||
224 | 224 | |
225 | 225 | <div class="card-header"> |
226 | 226 | <strong> |
227 | - <?php esc_html_e( 'Export Subscriptions', 'invoicing' ); ?> |
|
227 | + <?php esc_html_e('Export Subscriptions', 'invoicing'); ?> |
|
228 | 228 | </strong> |
229 | 229 | </div> |
230 | 230 | |
231 | 231 | <div class="card-body"> |
232 | 232 | |
233 | - <form method="post" action="<?php echo esc_url( $this->get_download_url( 'subscriptions' ) ); ?>"> |
|
233 | + <form method="post" action="<?php echo esc_url($this->get_download_url('subscriptions')); ?>"> |
|
234 | 234 | |
235 | 235 | <?php |
236 | - $this->generate_from_date( 'subscriptions' ); |
|
237 | - $this->generate_to_date( 'subscriptions' ); |
|
238 | - $this->generate_post_status_select( 'subscriptions' ); |
|
239 | - $this->generate_file_type_select( 'subscriptions' ); |
|
240 | - submit_button( __( 'Download', 'invoicing' ) ); |
|
236 | + $this->generate_from_date('subscriptions'); |
|
237 | + $this->generate_to_date('subscriptions'); |
|
238 | + $this->generate_post_status_select('subscriptions'); |
|
239 | + $this->generate_file_type_select('subscriptions'); |
|
240 | + submit_button(__('Download', 'invoicing')); |
|
241 | 241 | ?> |
242 | 242 | |
243 | 243 | </form> |
@@ -12,14 +12,14 @@ discard block |
||
12 | 12 | /** |
13 | 13 | * Bail if we are not in WP. |
14 | 14 | */ |
15 | -if ( ! defined( 'ABSPATH' ) ) { |
|
15 | +if (!defined('ABSPATH')) { |
|
16 | 16 | exit; |
17 | 17 | } |
18 | 18 | |
19 | 19 | /** |
20 | 20 | * Only add if the class does not already exist. |
21 | 21 | */ |
22 | -if ( ! class_exists( 'WP_Font_Awesome_Settings' ) ) { |
|
22 | +if (!class_exists('WP_Font_Awesome_Settings')) { |
|
23 | 23 | |
24 | 24 | /** |
25 | 25 | * A Class to be able to change settings for Font Awesome. |
@@ -92,18 +92,18 @@ discard block |
||
92 | 92 | * @return WP_Font_Awesome_Settings - Main instance. |
93 | 93 | */ |
94 | 94 | public static function instance() { |
95 | - if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WP_Font_Awesome_Settings ) ) { |
|
95 | + if (!isset(self::$instance) && !(self::$instance instanceof WP_Font_Awesome_Settings)) { |
|
96 | 96 | self::$instance = new WP_Font_Awesome_Settings; |
97 | 97 | |
98 | - add_action( 'init', array( self::$instance, 'init' ) ); // set settings |
|
98 | + add_action('init', array(self::$instance, 'init')); // set settings |
|
99 | 99 | |
100 | - if ( is_admin() ) { |
|
101 | - add_action( 'admin_menu', array( self::$instance, 'menu_item' ) ); |
|
102 | - add_action( 'admin_init', array( self::$instance, 'register_settings' ) ); |
|
103 | - add_action( 'admin_notices', array( self::$instance, 'admin_notices' ) ); |
|
100 | + if (is_admin()) { |
|
101 | + add_action('admin_menu', array(self::$instance, 'menu_item')); |
|
102 | + add_action('admin_init', array(self::$instance, 'register_settings')); |
|
103 | + add_action('admin_notices', array(self::$instance, 'admin_notices')); |
|
104 | 104 | } |
105 | 105 | |
106 | - do_action( 'wp_font_awesome_settings_loaded' ); |
|
106 | + do_action('wp_font_awesome_settings_loaded'); |
|
107 | 107 | } |
108 | 108 | |
109 | 109 | return self::$instance; |
@@ -116,40 +116,40 @@ discard block |
||
116 | 116 | */ |
117 | 117 | public function init() { |
118 | 118 | // Download fontawesome locally. |
119 | - add_action( 'add_option_wp-font-awesome-settings', array( $this, 'add_option_wp_font_awesome_settings' ), 10, 2 ); |
|
120 | - add_action( 'update_option_wp-font-awesome-settings', array( $this, 'update_option_wp_font_awesome_settings' ), 10, 2 ); |
|
119 | + add_action('add_option_wp-font-awesome-settings', array($this, 'add_option_wp_font_awesome_settings'), 10, 2); |
|
120 | + add_action('update_option_wp-font-awesome-settings', array($this, 'update_option_wp_font_awesome_settings'), 10, 2); |
|
121 | 121 | |
122 | 122 | $this->settings = $this->get_settings(); |
123 | 123 | |
124 | 124 | // check if the official plugin is active and use that instead if so. |
125 | - if ( ! defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
125 | + if (!defined('FONTAWESOME_PLUGIN_FILE')) { |
|
126 | 126 | |
127 | - if ( $this->settings['type'] == 'CSS' ) { |
|
127 | + if ($this->settings['type'] == 'CSS') { |
|
128 | 128 | |
129 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend' ) { |
|
130 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), 5000 ); |
|
129 | + if ($this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend') { |
|
130 | + add_action('wp_enqueue_scripts', array($this, 'enqueue_style'), 5000); |
|
131 | 131 | } |
132 | 132 | |
133 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend' ) { |
|
134 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 5000 ); |
|
135 | - add_filter( 'block_editor_settings_all', array( $this, 'enqueue_editor_styles' ), 10, 2 ); |
|
133 | + if ($this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend') { |
|
134 | + add_action('admin_enqueue_scripts', array($this, 'enqueue_style'), 5000); |
|
135 | + add_filter('block_editor_settings_all', array($this, 'enqueue_editor_styles'), 10, 2); |
|
136 | 136 | } |
137 | 137 | |
138 | 138 | } else { |
139 | 139 | |
140 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend' ) { |
|
141 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 5000 ); |
|
140 | + if ($this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend') { |
|
141 | + add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'), 5000); |
|
142 | 142 | } |
143 | 143 | |
144 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend' ) { |
|
145 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 5000 ); |
|
146 | - add_filter( 'block_editor_settings_all', array( $this, 'enqueue_editor_scripts' ), 10, 2 ); |
|
144 | + if ($this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend') { |
|
145 | + add_action('admin_enqueue_scripts', array($this, 'enqueue_scripts'), 5000); |
|
146 | + add_filter('block_editor_settings_all', array($this, 'enqueue_editor_scripts'), 10, 2); |
|
147 | 147 | } |
148 | 148 | } |
149 | 149 | |
150 | 150 | // remove font awesome if set to do so |
151 | - if ( $this->settings['dequeue'] == '1' ) { |
|
152 | - add_action( 'clean_url', array( $this, 'remove_font_awesome' ), 5000, 3 ); |
|
151 | + if ($this->settings['dequeue'] == '1') { |
|
152 | + add_action('clean_url', array($this, 'remove_font_awesome'), 5000, 3); |
|
153 | 153 | } |
154 | 154 | } |
155 | 155 | |
@@ -163,9 +163,9 @@ discard block |
||
163 | 163 | * |
164 | 164 | * @return array |
165 | 165 | */ |
166 | - public function enqueue_editor_styles( $editor_settings, $block_editor_context ){ |
|
166 | + public function enqueue_editor_styles($editor_settings, $block_editor_context) { |
|
167 | 167 | |
168 | - if ( ! empty( $editor_settings['__unstableResolvedAssets']['styles'] ) ) { |
|
168 | + if (!empty($editor_settings['__unstableResolvedAssets']['styles'])) { |
|
169 | 169 | $url = $this->get_url(); |
170 | 170 | $editor_settings['__unstableResolvedAssets']['styles'] .= "<link rel='stylesheet' id='font-awesome-css' href='$url' media='all' />"; |
171 | 171 | } |
@@ -181,7 +181,7 @@ discard block |
||
181 | 181 | * |
182 | 182 | * @return array |
183 | 183 | */ |
184 | - public function enqueue_editor_scripts( $editor_settings, $block_editor_context ){ |
|
184 | + public function enqueue_editor_scripts($editor_settings, $block_editor_context) { |
|
185 | 185 | |
186 | 186 | $url = $this->get_url(); |
187 | 187 | $editor_settings['__unstableResolvedAssets']['scripts'] .= "<script src='$url' id='font-awesome-js'></script>"; |
@@ -195,22 +195,22 @@ discard block |
||
195 | 195 | public function enqueue_style() { |
196 | 196 | // build url |
197 | 197 | $url = $this->get_url(); |
198 | - $version = ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) ? strip_tags( $this->settings['local_version'] ) : null; |
|
198 | + $version = !empty($this->settings['local']) && empty($this->settings['pro']) ? strip_tags($this->settings['local_version']) : null; |
|
199 | 199 | |
200 | - wp_deregister_style( 'font-awesome' ); // deregister in case its already there |
|
201 | - wp_register_style( 'font-awesome', $url, array(), $version ); |
|
202 | - wp_enqueue_style( 'font-awesome' ); |
|
200 | + wp_deregister_style('font-awesome'); // deregister in case its already there |
|
201 | + wp_register_style('font-awesome', $url, array(), $version); |
|
202 | + wp_enqueue_style('font-awesome'); |
|
203 | 203 | |
204 | 204 | // RTL language support CSS. |
205 | - if ( is_rtl() ) { |
|
206 | - wp_add_inline_style( 'font-awesome', $this->rtl_inline_css() ); |
|
205 | + if (is_rtl()) { |
|
206 | + wp_add_inline_style('font-awesome', $this->rtl_inline_css()); |
|
207 | 207 | } |
208 | 208 | |
209 | - if ( $this->settings['shims'] ) { |
|
210 | - $url = $this->get_url( true ); |
|
211 | - wp_deregister_style( 'font-awesome-shims' ); // deregister in case its already there |
|
212 | - wp_register_style( 'font-awesome-shims', $url, array(), $version ); |
|
213 | - wp_enqueue_style( 'font-awesome-shims' ); |
|
209 | + if ($this->settings['shims']) { |
|
210 | + $url = $this->get_url(true); |
|
211 | + wp_deregister_style('font-awesome-shims'); // deregister in case its already there |
|
212 | + wp_register_style('font-awesome-shims', $url, array(), $version); |
|
213 | + wp_enqueue_style('font-awesome-shims'); |
|
214 | 214 | } |
215 | 215 | } |
216 | 216 | |
@@ -222,15 +222,15 @@ discard block |
||
222 | 222 | $url = $this->get_url(); |
223 | 223 | |
224 | 224 | $deregister_function = 'wp' . '_' . 'deregister' . '_' . 'script'; |
225 | - call_user_func( $deregister_function, 'font-awesome' ); // deregister in case its already there |
|
226 | - wp_register_script( 'font-awesome', $url, array(), null ); |
|
227 | - wp_enqueue_script( 'font-awesome' ); |
|
225 | + call_user_func($deregister_function, 'font-awesome'); // deregister in case its already there |
|
226 | + wp_register_script('font-awesome', $url, array(), null); |
|
227 | + wp_enqueue_script('font-awesome'); |
|
228 | 228 | |
229 | - if ( $this->settings['shims'] ) { |
|
230 | - $url = $this->get_url( true ); |
|
231 | - call_user_func( $deregister_function, 'font-awesome-shims' ); // deregister in case its already there |
|
232 | - wp_register_script( 'font-awesome-shims', $url, array(), null ); |
|
233 | - wp_enqueue_script( 'font-awesome-shims' ); |
|
229 | + if ($this->settings['shims']) { |
|
230 | + $url = $this->get_url(true); |
|
231 | + call_user_func($deregister_function, 'font-awesome-shims'); // deregister in case its already there |
|
232 | + wp_register_script('font-awesome-shims', $url, array(), null); |
|
233 | + wp_enqueue_script('font-awesome-shims'); |
|
234 | 234 | } |
235 | 235 | } |
236 | 236 | |
@@ -242,16 +242,16 @@ discard block |
||
242 | 242 | * |
243 | 243 | * @return string The url to the file. |
244 | 244 | */ |
245 | - public function get_url( $shims = false, $local = true ) { |
|
245 | + public function get_url($shims = false, $local = true) { |
|
246 | 246 | $script = $shims ? 'v4-shims' : 'all'; |
247 | 247 | $sub = $this->settings['pro'] ? 'pro' : 'use'; |
248 | 248 | $type = $this->settings['type']; |
249 | 249 | $version = $this->settings['version']; |
250 | - $kit_url = $this->settings['kit-url'] ? esc_url( $this->settings['kit-url'] ) : ''; |
|
250 | + $kit_url = $this->settings['kit-url'] ? esc_url($this->settings['kit-url']) : ''; |
|
251 | 251 | $url = ''; |
252 | 252 | |
253 | - if ( $type == 'KIT' && $kit_url ) { |
|
254 | - if ( $shims ) { |
|
253 | + if ($type == 'KIT' && $kit_url) { |
|
254 | + if ($shims) { |
|
255 | 255 | // if its a kit then we don't add shims here |
256 | 256 | return ''; |
257 | 257 | } |
@@ -260,13 +260,13 @@ discard block |
||
260 | 260 | } else { |
261 | 261 | $v = ''; |
262 | 262 | // Check and load locally. |
263 | - if ( $local && $this->has_local() ) { |
|
263 | + if ($local && $this->has_local()) { |
|
264 | 264 | $script .= ".min"; |
265 | - $v .= '&ver=' . strip_tags( $this->settings['local_version'] ); |
|
265 | + $v .= '&ver=' . strip_tags($this->settings['local_version']); |
|
266 | 266 | $url .= $this->get_fonts_url(); // Local fonts url. |
267 | 267 | } else { |
268 | 268 | $url .= "https://$sub.fontawesome.com/releases/"; // CDN |
269 | - $url .= ! empty( $version ) ? "v" . $version . '/' : "v" . $this->get_latest_version() . '/'; // version |
|
269 | + $url .= !empty($version) ? "v" . $version . '/' : "v" . $this->get_latest_version() . '/'; // version |
|
270 | 270 | } |
271 | 271 | $url .= $type == 'CSS' ? 'css/' : 'js/'; // type |
272 | 272 | $url .= $type == 'CSS' ? $script . '.css' : $script . '.js'; // type |
@@ -287,16 +287,16 @@ discard block |
||
287 | 287 | * |
288 | 288 | * @return string The filtered url. |
289 | 289 | */ |
290 | - public function remove_font_awesome( $url, $original_url, $_context ) { |
|
290 | + public function remove_font_awesome($url, $original_url, $_context) { |
|
291 | 291 | |
292 | - if ( $_context == 'display' |
|
293 | - && ( strstr( $url, "fontawesome" ) !== false || strstr( $url, "font-awesome" ) !== false ) |
|
294 | - && ( strstr( $url, ".js" ) !== false || strstr( $url, ".css" ) !== false ) |
|
292 | + if ($_context == 'display' |
|
293 | + && (strstr($url, "fontawesome") !== false || strstr($url, "font-awesome") !== false) |
|
294 | + && (strstr($url, ".js") !== false || strstr($url, ".css") !== false) |
|
295 | 295 | ) {// it's a font-awesome-url (probably) |
296 | 296 | |
297 | - if ( strstr( $url, "wpfas=true" ) !== false ) { |
|
298 | - if ( $this->settings['type'] == 'JS' ) { |
|
299 | - if ( $this->settings['js-pseudo'] ) { |
|
297 | + if (strstr($url, "wpfas=true") !== false) { |
|
298 | + if ($this->settings['type'] == 'JS') { |
|
299 | + if ($this->settings['js-pseudo']) { |
|
300 | 300 | $url .= "' data-search-pseudo-elements defer='defer"; |
301 | 301 | } else { |
302 | 302 | $url .= "' defer='defer"; |
@@ -315,7 +315,7 @@ discard block |
||
315 | 315 | * Register the database settings with WordPress. |
316 | 316 | */ |
317 | 317 | public function register_settings() { |
318 | - register_setting( 'wp-font-awesome-settings', 'wp-font-awesome-settings' ); |
|
318 | + register_setting('wp-font-awesome-settings', 'wp-font-awesome-settings'); |
|
319 | 319 | } |
320 | 320 | |
321 | 321 | /** |
@@ -324,10 +324,10 @@ discard block |
||
324 | 324 | */ |
325 | 325 | public function menu_item() { |
326 | 326 | $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme |
327 | - call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'wp-font-awesome-settings', array( |
|
327 | + call_user_func($menu_function, $this->name, $this->name, 'manage_options', 'wp-font-awesome-settings', array( |
|
328 | 328 | $this, |
329 | 329 | 'settings_page' |
330 | - ) ); |
|
330 | + )); |
|
331 | 331 | } |
332 | 332 | |
333 | 333 | /** |
@@ -336,7 +336,7 @@ discard block |
||
336 | 336 | * @return array The array of settings. |
337 | 337 | */ |
338 | 338 | public function get_settings() { |
339 | - $db_settings = get_option( 'wp-font-awesome-settings' ); |
|
339 | + $db_settings = get_option('wp-font-awesome-settings'); |
|
340 | 340 | |
341 | 341 | $defaults = array( |
342 | 342 | 'type' => 'CSS', // type to use, CSS or JS or KIT |
@@ -351,30 +351,30 @@ discard block |
||
351 | 351 | 'kit-url' => '', // the kit url |
352 | 352 | ); |
353 | 353 | |
354 | - $settings = wp_parse_args( $db_settings, $defaults ); |
|
354 | + $settings = wp_parse_args($db_settings, $defaults); |
|
355 | 355 | |
356 | 356 | /** |
357 | 357 | * Filter the Font Awesome settings. |
358 | 358 | * |
359 | 359 | * @todo if we add this filer people might use it and then it defeates the purpose of this class :/ |
360 | 360 | */ |
361 | - return $this->settings = apply_filters( 'wp-font-awesome-settings', $settings, $db_settings, $defaults ); |
|
361 | + return $this->settings = apply_filters('wp-font-awesome-settings', $settings, $db_settings, $defaults); |
|
362 | 362 | } |
363 | 363 | |
364 | 364 | /** |
365 | 365 | * The settings page html output. |
366 | 366 | */ |
367 | 367 | public function settings_page() { |
368 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
369 | - wp_die( __( 'You do not have sufficient permissions to access this page.', 'font-awesome-settings' ) ); |
|
368 | + if (!current_user_can('manage_options')) { |
|
369 | + wp_die(__('You do not have sufficient permissions to access this page.', 'font-awesome-settings')); |
|
370 | 370 | } |
371 | 371 | |
372 | 372 | // a hidden way to force the update of the version number via api instead of waiting the 48 hours |
373 | - if ( isset( $_REQUEST['force-version-check'] ) ) { |
|
374 | - $this->get_latest_version( $force_api = true ); |
|
373 | + if (isset($_REQUEST['force-version-check'])) { |
|
374 | + $this->get_latest_version($force_api = true); |
|
375 | 375 | } |
376 | 376 | |
377 | - if ( ! defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
377 | + if (!defined('FONTAWESOME_PLUGIN_FILE')) { |
|
378 | 378 | ?> |
379 | 379 | <style> |
380 | 380 | .wpfas-kit-show { |
@@ -401,42 +401,42 @@ discard block |
||
401 | 401 | <h1><?php echo $this->name; ?></h1> |
402 | 402 | <form method="post" action="options.php" class="fas-settings-form"> |
403 | 403 | <?php |
404 | - settings_fields( 'wp-font-awesome-settings' ); |
|
405 | - do_settings_sections( 'wp-font-awesome-settings' ); |
|
404 | + settings_fields('wp-font-awesome-settings'); |
|
405 | + do_settings_sections('wp-font-awesome-settings'); |
|
406 | 406 | $table_class = ''; |
407 | - if ( $this->settings['type'] ) { |
|
408 | - $table_class .= 'wpfas-' . sanitize_html_class( strtolower( $this->settings['type'] ) ) . '-set'; |
|
407 | + if ($this->settings['type']) { |
|
408 | + $table_class .= 'wpfas-' . sanitize_html_class(strtolower($this->settings['type'])) . '-set'; |
|
409 | 409 | } |
410 | - if ( ! empty( $this->settings['pro'] ) ) { |
|
410 | + if (!empty($this->settings['pro'])) { |
|
411 | 411 | $table_class .= ' wpfas-has-pro'; |
412 | 412 | } |
413 | 413 | ?> |
414 | - <?php if ( $this->settings['type'] != 'KIT' && ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) ) { ?> |
|
415 | - <?php if ( $this->has_local() ) { ?> |
|
416 | - <div class="notice notice-info"><p><strong><?php _e( 'Font Awesome fonts are loading locally.', 'font-awesome-settings' ); ?></strong></p></div> |
|
414 | + <?php if ($this->settings['type'] != 'KIT' && !empty($this->settings['local']) && empty($this->settings['pro'])) { ?> |
|
415 | + <?php if ($this->has_local()) { ?> |
|
416 | + <div class="notice notice-info"><p><strong><?php _e('Font Awesome fonts are loading locally.', 'font-awesome-settings'); ?></strong></p></div> |
|
417 | 417 | <?php } else { ?> |
418 | - <div class="notice notice-error"><p><strong><?php _e( 'Font Awesome fonts are not loading locally!', 'font-awesome-settings' ); ?></strong></p></div> |
|
418 | + <div class="notice notice-error"><p><strong><?php _e('Font Awesome fonts are not loading locally!', 'font-awesome-settings'); ?></strong></p></div> |
|
419 | 419 | <?php } ?> |
420 | 420 | <?php } ?> |
421 | - <table class="form-table wpfas-table-settings <?php echo esc_attr( $table_class ); ?>"> |
|
421 | + <table class="form-table wpfas-table-settings <?php echo esc_attr($table_class); ?>"> |
|
422 | 422 | <tr valign="top"> |
423 | - <th scope="row"><label for="wpfas-type"><?php _e( 'Type', 'font-awesome-settings' ); ?></label></th> |
|
423 | + <th scope="row"><label for="wpfas-type"><?php _e('Type', 'font-awesome-settings'); ?></label></th> |
|
424 | 424 | <td> |
425 | 425 | <select name="wp-font-awesome-settings[type]" id="wpfas-type" onchange="if(this.value=='KIT'){jQuery('.wpfas-table-settings').addClass('wpfas-kit-set');}else{jQuery('.wpfas-table-settings').removeClass('wpfas-kit-set');}"> |
426 | - <option value="CSS" <?php selected( $this->settings['type'], 'CSS' ); ?>><?php _e( 'CSS (default)', 'font-awesome-settings' ); ?></option> |
|
427 | - <option value="JS" <?php selected( $this->settings['type'], 'JS' ); ?>>JS</option> |
|
428 | - <option value="KIT" <?php selected( $this->settings['type'], 'KIT' ); ?>><?php _e( 'Kits (settings managed on fontawesome.com)', 'font-awesome-settings' ); ?></option> |
|
426 | + <option value="CSS" <?php selected($this->settings['type'], 'CSS'); ?>><?php _e('CSS (default)', 'font-awesome-settings'); ?></option> |
|
427 | + <option value="JS" <?php selected($this->settings['type'], 'JS'); ?>>JS</option> |
|
428 | + <option value="KIT" <?php selected($this->settings['type'], 'KIT'); ?>><?php _e('Kits (settings managed on fontawesome.com)', 'font-awesome-settings'); ?></option> |
|
429 | 429 | </select> |
430 | 430 | </td> |
431 | 431 | </tr> |
432 | 432 | |
433 | 433 | <tr valign="top" class="wpfas-kit-show"> |
434 | - <th scope="row"><label for="wpfas-kit-url"><?php _e( 'Kit URL', 'font-awesome-settings' ); ?></label></th> |
|
434 | + <th scope="row"><label for="wpfas-kit-url"><?php _e('Kit URL', 'font-awesome-settings'); ?></label></th> |
|
435 | 435 | <td> |
436 | - <input class="regular-text" id="wpfas-kit-url" type="url" name="wp-font-awesome-settings[kit-url]" value="<?php echo esc_attr( $this->settings['kit-url'] ); ?>" placeholder="<?php echo 'https://kit.font';echo 'awesome.com/123abc.js'; // this won't pass theme check :(?>"/> |
|
436 | + <input class="regular-text" id="wpfas-kit-url" type="url" name="wp-font-awesome-settings[kit-url]" value="<?php echo esc_attr($this->settings['kit-url']); ?>" placeholder="<?php echo 'https://kit.font'; echo 'awesome.com/123abc.js'; // this won't pass theme check :(?>"/> |
|
437 | 437 | <span><?php |
438 | 438 | echo sprintf( |
439 | - __( 'Requires a free account with Font Awesome. %sGet kit url%s', 'font-awesome-settings' ), |
|
439 | + __('Requires a free account with Font Awesome. %sGet kit url%s', 'font-awesome-settings'), |
|
440 | 440 | '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/kits"><i class="fas fa-external-link-alt"></i>', |
441 | 441 | '</a>' |
442 | 442 | ); |
@@ -445,44 +445,44 @@ discard block |
||
445 | 445 | </tr> |
446 | 446 | |
447 | 447 | <tr valign="top" class="wpfas-kit-hide"> |
448 | - <th scope="row"><label for="wpfas-version"><?php _e( 'Version', 'font-awesome-settings' ); ?></label></th> |
|
448 | + <th scope="row"><label for="wpfas-version"><?php _e('Version', 'font-awesome-settings'); ?></label></th> |
|
449 | 449 | <td> |
450 | 450 | <select name="wp-font-awesome-settings[version]" id="wpfas-version"> |
451 | - <option value="" <?php selected( $this->settings['version'], '' ); ?>><?php echo sprintf( __( 'Latest - %s (default)', 'font-awesome-settings' ), $this->get_latest_version() ); ?></option> |
|
452 | - <option value="6.1.0" <?php selected( $this->settings['version'], '6.1.0' ); ?>>6.1.0</option> |
|
453 | - <option value="6.0.0" <?php selected( $this->settings['version'], '6.0.0' ); ?>>6.0.0</option> |
|
454 | - <option value="5.15.4" <?php selected( $this->settings['version'], '5.15.4' ); ?>>5.15.4</option> |
|
455 | - <option value="5.6.0" <?php selected( $this->settings['version'], '5.6.0' ); ?>>5.6.0</option> |
|
456 | - <option value="5.5.0" <?php selected( $this->settings['version'], '5.5.0' ); ?>>5.5.0</option> |
|
457 | - <option value="5.4.0" <?php selected( $this->settings['version'], '5.4.0' ); ?>>5.4.0</option> |
|
458 | - <option value="5.3.0" <?php selected( $this->settings['version'], '5.3.0' ); ?>>5.3.0</option> |
|
459 | - <option value="5.2.0" <?php selected( $this->settings['version'], '5.2.0' ); ?>>5.2.0</option> |
|
460 | - <option value="5.1.0" <?php selected( $this->settings['version'], '5.1.0' ); ?>>5.1.0</option> |
|
461 | - <option value="4.7.0" <?php selected( $this->settings['version'], '4.7.0' ); ?>>4.7.1 (CSS only)</option> |
|
451 | + <option value="" <?php selected($this->settings['version'], ''); ?>><?php echo sprintf(__('Latest - %s (default)', 'font-awesome-settings'), $this->get_latest_version()); ?></option> |
|
452 | + <option value="6.1.0" <?php selected($this->settings['version'], '6.1.0'); ?>>6.1.0</option> |
|
453 | + <option value="6.0.0" <?php selected($this->settings['version'], '6.0.0'); ?>>6.0.0</option> |
|
454 | + <option value="5.15.4" <?php selected($this->settings['version'], '5.15.4'); ?>>5.15.4</option> |
|
455 | + <option value="5.6.0" <?php selected($this->settings['version'], '5.6.0'); ?>>5.6.0</option> |
|
456 | + <option value="5.5.0" <?php selected($this->settings['version'], '5.5.0'); ?>>5.5.0</option> |
|
457 | + <option value="5.4.0" <?php selected($this->settings['version'], '5.4.0'); ?>>5.4.0</option> |
|
458 | + <option value="5.3.0" <?php selected($this->settings['version'], '5.3.0'); ?>>5.3.0</option> |
|
459 | + <option value="5.2.0" <?php selected($this->settings['version'], '5.2.0'); ?>>5.2.0</option> |
|
460 | + <option value="5.1.0" <?php selected($this->settings['version'], '5.1.0'); ?>>5.1.0</option> |
|
461 | + <option value="4.7.0" <?php selected($this->settings['version'], '4.7.0'); ?>>4.7.1 (CSS only)</option> |
|
462 | 462 | </select> |
463 | 463 | </td> |
464 | 464 | </tr> |
465 | 465 | |
466 | 466 | <tr valign="top"> |
467 | - <th scope="row"><label for="wpfas-enqueue"><?php _e( 'Enqueue', 'font-awesome-settings' ); ?></label></th> |
|
467 | + <th scope="row"><label for="wpfas-enqueue"><?php _e('Enqueue', 'font-awesome-settings'); ?></label></th> |
|
468 | 468 | <td> |
469 | 469 | <select name="wp-font-awesome-settings[enqueue]" id="wpfas-enqueue"> |
470 | - <option value="" <?php selected( $this->settings['enqueue'], '' ); ?>><?php _e( 'Frontend + Backend (default)', 'font-awesome-settings' ); ?></option> |
|
471 | - <option value="frontend" <?php selected( $this->settings['enqueue'], 'frontend' ); ?>><?php _e( 'Frontend', 'font-awesome-settings' ); ?></option> |
|
472 | - <option value="backend" <?php selected( $this->settings['enqueue'], 'backend' ); ?>><?php _e( 'Backend', 'font-awesome-settings' ); ?></option> |
|
470 | + <option value="" <?php selected($this->settings['enqueue'], ''); ?>><?php _e('Frontend + Backend (default)', 'font-awesome-settings'); ?></option> |
|
471 | + <option value="frontend" <?php selected($this->settings['enqueue'], 'frontend'); ?>><?php _e('Frontend', 'font-awesome-settings'); ?></option> |
|
472 | + <option value="backend" <?php selected($this->settings['enqueue'], 'backend'); ?>><?php _e('Backend', 'font-awesome-settings'); ?></option> |
|
473 | 473 | </select> |
474 | 474 | </td> |
475 | 475 | </tr> |
476 | 476 | |
477 | 477 | <tr valign="top" class="wpfas-kit-hide"> |
478 | 478 | <th scope="row"><label |
479 | - for="wpfas-pro"><?php _e( 'Enable pro', 'font-awesome-settings' ); ?></label></th> |
|
479 | + for="wpfas-pro"><?php _e('Enable pro', 'font-awesome-settings'); ?></label></th> |
|
480 | 480 | <td> |
481 | 481 | <input type="hidden" name="wp-font-awesome-settings[pro]" value="0"/> |
482 | - <input type="checkbox" name="wp-font-awesome-settings[pro]" value="1" <?php checked( $this->settings['pro'], '1' ); ?> id="wpfas-pro" onchange="if(jQuery(this).is(':checked')){jQuery('.wpfas-table-settings').addClass('wpfas-has-pro')}else{jQuery('.wpfas-table-settings').removeClass('wpfas-has-pro')}"/> |
|
482 | + <input type="checkbox" name="wp-font-awesome-settings[pro]" value="1" <?php checked($this->settings['pro'], '1'); ?> id="wpfas-pro" onchange="if(jQuery(this).is(':checked')){jQuery('.wpfas-table-settings').addClass('wpfas-has-pro')}else{jQuery('.wpfas-table-settings').removeClass('wpfas-has-pro')}"/> |
|
483 | 483 | <span><?php |
484 | 484 | echo wp_sprintf( |
485 | - __( 'Requires a subscription. %sLearn more%s %sManage my allowed domains%s', 'font-awesome-settings' ), |
|
485 | + __('Requires a subscription. %sLearn more%s %sManage my allowed domains%s', 'font-awesome-settings'), |
|
486 | 486 | '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/referral?a=c9b89e1418">', |
487 | 487 | ' <i class="fas fa-external-link-alt"></i></a>', |
488 | 488 | '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/account/cdn">', |
@@ -493,49 +493,49 @@ discard block |
||
493 | 493 | </tr> |
494 | 494 | |
495 | 495 | <tr valign="top" class="wpfas-kit-hide wpfas-hide-pro"> |
496 | - <th scope="row"><label for="wpfas-local"><?php _e( 'Load Fonts Locally', 'font-awesome-settings' ); ?></label></th> |
|
496 | + <th scope="row"><label for="wpfas-local"><?php _e('Load Fonts Locally', 'font-awesome-settings'); ?></label></th> |
|
497 | 497 | <td> |
498 | 498 | <input type="hidden" name="wp-font-awesome-settings[local]" value="0"/> |
499 | - <input type="hidden" name="wp-font-awesome-settings[local_version]" value="<?php echo esc_attr( $this->settings['local_version'] ); ?>"/> |
|
500 | - <input type="checkbox" name="wp-font-awesome-settings[local]" value="1" <?php checked( $this->settings['local'], '1' ); ?> id="wpfas-local"/> |
|
501 | - <span><?php _e( '(For free version only) Load FontAwesome fonts from locally. This downloads FontAwesome fonts from fontawesome.com & stores at the local site.', 'font-awesome-settings' ); ?></span> |
|
499 | + <input type="hidden" name="wp-font-awesome-settings[local_version]" value="<?php echo esc_attr($this->settings['local_version']); ?>"/> |
|
500 | + <input type="checkbox" name="wp-font-awesome-settings[local]" value="1" <?php checked($this->settings['local'], '1'); ?> id="wpfas-local"/> |
|
501 | + <span><?php _e('(For free version only) Load FontAwesome fonts from locally. This downloads FontAwesome fonts from fontawesome.com & stores at the local site.', 'font-awesome-settings'); ?></span> |
|
502 | 502 | </td> |
503 | 503 | </tr> |
504 | 504 | |
505 | 505 | <tr valign="top" class="wpfas-kit-hide"> |
506 | 506 | <th scope="row"><label |
507 | - for="wpfas-shims"><?php _e( 'Enable v4 shims compatibility', 'font-awesome-settings' ); ?></label> |
|
507 | + for="wpfas-shims"><?php _e('Enable v4 shims compatibility', 'font-awesome-settings'); ?></label> |
|
508 | 508 | </th> |
509 | 509 | <td> |
510 | 510 | <input type="hidden" name="wp-font-awesome-settings[shims]" value="0"/> |
511 | 511 | <input type="checkbox" name="wp-font-awesome-settings[shims]" |
512 | - value="1" <?php checked( $this->settings['shims'], '1' ); ?> id="wpfas-shims"/> |
|
513 | - <span><?php _e( 'This enables v4 classes to work with v5, sort of like a band-aid until everyone has updated everything to v5.', 'font-awesome-settings' ); ?></span> |
|
512 | + value="1" <?php checked($this->settings['shims'], '1'); ?> id="wpfas-shims"/> |
|
513 | + <span><?php _e('This enables v4 classes to work with v5, sort of like a band-aid until everyone has updated everything to v5.', 'font-awesome-settings'); ?></span> |
|
514 | 514 | </td> |
515 | 515 | </tr> |
516 | 516 | |
517 | 517 | <tr valign="top" class="wpfas-kit-hide"> |
518 | 518 | <th scope="row"><label |
519 | - for="wpfas-js-pseudo"><?php _e( 'Enable JS pseudo elements (not recommended)', 'font-awesome-settings' ); ?></label> |
|
519 | + for="wpfas-js-pseudo"><?php _e('Enable JS pseudo elements (not recommended)', 'font-awesome-settings'); ?></label> |
|
520 | 520 | </th> |
521 | 521 | <td> |
522 | 522 | <input type="hidden" name="wp-font-awesome-settings[js-pseudo]" value="0"/> |
523 | 523 | <input type="checkbox" name="wp-font-awesome-settings[js-pseudo]" |
524 | - value="1" <?php checked( $this->settings['js-pseudo'], '1' ); ?> |
|
524 | + value="1" <?php checked($this->settings['js-pseudo'], '1'); ?> |
|
525 | 525 | id="wpfas-js-pseudo"/> |
526 | - <span><?php _e( 'Used only with the JS version, this will make pseudo-elements work but can be CPU intensive on some sites.', 'font-awesome-settings' ); ?></span> |
|
526 | + <span><?php _e('Used only with the JS version, this will make pseudo-elements work but can be CPU intensive on some sites.', 'font-awesome-settings'); ?></span> |
|
527 | 527 | </td> |
528 | 528 | </tr> |
529 | 529 | |
530 | 530 | <tr valign="top"> |
531 | 531 | <th scope="row"><label |
532 | - for="wpfas-dequeue"><?php _e( 'Dequeue', 'font-awesome-settings' ); ?></label></th> |
|
532 | + for="wpfas-dequeue"><?php _e('Dequeue', 'font-awesome-settings'); ?></label></th> |
|
533 | 533 | <td> |
534 | 534 | <input type="hidden" name="wp-font-awesome-settings[dequeue]" value="0"/> |
535 | 535 | <input type="checkbox" name="wp-font-awesome-settings[dequeue]" |
536 | - value="1" <?php checked( $this->settings['dequeue'], '1' ); ?> |
|
536 | + value="1" <?php checked($this->settings['dequeue'], '1'); ?> |
|
537 | 537 | id="wpfas-dequeue"/> |
538 | - <span><?php _e( 'This will try to dequeue any other Font Awesome versions loaded by other sources if they are added with `font-awesome` or `fontawesome` in the name.', 'font-awesome-settings' ); ?></span> |
|
538 | + <span><?php _e('This will try to dequeue any other Font Awesome versions loaded by other sources if they are added with `font-awesome` or `fontawesome` in the name.', 'font-awesome-settings'); ?></span> |
|
539 | 539 | </td> |
540 | 540 | </tr> |
541 | 541 | |
@@ -544,12 +544,12 @@ discard block |
||
544 | 544 | <?php |
545 | 545 | submit_button(); |
546 | 546 | ?> |
547 | - <p class="submit"><a href="https://fontawesome.com/referral?a=c9b89e1418" class="button button-secondary"><?php _e('Get 14,000+ more icons with Font Awesome Pro','font-awesome-settings'); ?> <i class="fas fa-external-link-alt"></i></a></p> |
|
547 | + <p class="submit"><a href="https://fontawesome.com/referral?a=c9b89e1418" class="button button-secondary"><?php _e('Get 14,000+ more icons with Font Awesome Pro', 'font-awesome-settings'); ?> <i class="fas fa-external-link-alt"></i></a></p> |
|
548 | 548 | |
549 | 549 | </div> |
550 | 550 | </form> |
551 | 551 | |
552 | - <div id="wpfas-version"><?php echo sprintf(__( 'Version: %s (affiliate links provided)', 'font-awesome-settings' ), $this->version ); ?></div> |
|
552 | + <div id="wpfas-version"><?php echo sprintf(__('Version: %s (affiliate links provided)', 'font-awesome-settings'), $this->version); ?></div> |
|
553 | 553 | </div> |
554 | 554 | <?php |
555 | 555 | } |
@@ -564,12 +564,12 @@ discard block |
||
564 | 564 | * |
565 | 565 | * @return string Either a valid version number or an empty string. |
566 | 566 | */ |
567 | - public function validate_version_number( $version ) { |
|
567 | + public function validate_version_number($version) { |
|
568 | 568 | |
569 | - if ( version_compare( $version, '0.0.1', '>=' ) >= 0 ) { |
|
569 | + if (version_compare($version, '0.0.1', '>=') >= 0) { |
|
570 | 570 | // valid |
571 | 571 | } else { |
572 | - $version = '';// not validated |
|
572 | + $version = ''; // not validated |
|
573 | 573 | } |
574 | 574 | |
575 | 575 | return $version; |
@@ -584,27 +584,27 @@ discard block |
||
584 | 584 | * @since 1.0.7 |
585 | 585 | * @return mixed|string The latest version number found. |
586 | 586 | */ |
587 | - public function get_latest_version( $force_api = false ) { |
|
587 | + public function get_latest_version($force_api = false) { |
|
588 | 588 | $latest_version = $this->latest; |
589 | 589 | |
590 | - $cache = get_transient( 'wp-font-awesome-settings-version' ); |
|
590 | + $cache = get_transient('wp-font-awesome-settings-version'); |
|
591 | 591 | |
592 | - if ( $cache === false || $force_api ) { // its not set |
|
592 | + if ($cache === false || $force_api) { // its not set |
|
593 | 593 | $api_ver = $this->get_latest_version_from_api(); |
594 | - if ( version_compare( $api_ver, $this->latest, '>=' ) >= 0 ) { |
|
594 | + if (version_compare($api_ver, $this->latest, '>=') >= 0) { |
|
595 | 595 | $latest_version = $api_ver; |
596 | - set_transient( 'wp-font-awesome-settings-version', $api_ver, 48 * HOUR_IN_SECONDS ); |
|
596 | + set_transient('wp-font-awesome-settings-version', $api_ver, 48 * HOUR_IN_SECONDS); |
|
597 | 597 | } |
598 | - } elseif ( $this->validate_version_number( $cache ) ) { |
|
599 | - if ( version_compare( $cache, $this->latest, '>=' ) >= 0 ) { |
|
598 | + } elseif ($this->validate_version_number($cache)) { |
|
599 | + if (version_compare($cache, $this->latest, '>=') >= 0) { |
|
600 | 600 | $latest_version = $cache; |
601 | 601 | } |
602 | 602 | } |
603 | 603 | |
604 | 604 | // Check and auto download fonts locally. |
605 | - if ( empty( $this->settings['pro'] ) && empty( $this->settings['version'] ) && $this->settings['type'] != 'KIT' && ! empty( $this->settings['local'] ) && ! empty( $this->settings['local_version'] ) && ! empty( $latest_version ) ) { |
|
606 | - if ( version_compare( $latest_version, $this->settings['local_version'], '>' ) && is_admin() && ! wp_doing_ajax() ) { |
|
607 | - $this->download_package( $latest_version ); |
|
605 | + if (empty($this->settings['pro']) && empty($this->settings['version']) && $this->settings['type'] != 'KIT' && !empty($this->settings['local']) && !empty($this->settings['local_version']) && !empty($latest_version)) { |
|
606 | + if (version_compare($latest_version, $this->settings['local_version'], '>') && is_admin() && !wp_doing_ajax()) { |
|
607 | + $this->download_package($latest_version); |
|
608 | 608 | } |
609 | 609 | } |
610 | 610 | |
@@ -619,10 +619,10 @@ discard block |
||
619 | 619 | */ |
620 | 620 | public function get_latest_version_from_api() { |
621 | 621 | $version = "0"; |
622 | - $response = wp_remote_get( "https://api.github.com/repos/FortAwesome/Font-Awesome/releases/latest" ); |
|
623 | - if ( ! is_wp_error( $response ) && is_array( $response ) ) { |
|
624 | - $api_response = json_decode( wp_remote_retrieve_body( $response ), true ); |
|
625 | - if ( isset( $api_response['tag_name'] ) && version_compare( $api_response['tag_name'], $this->latest, '>=' ) >= 0 && empty( $api_response['prerelease'] ) ) { |
|
622 | + $response = wp_remote_get("https://api.github.com/repos/FortAwesome/Font-Awesome/releases/latest"); |
|
623 | + if (!is_wp_error($response) && is_array($response)) { |
|
624 | + $api_response = json_decode(wp_remote_retrieve_body($response), true); |
|
625 | + if (isset($api_response['tag_name']) && version_compare($api_response['tag_name'], $this->latest, '>=') >= 0 && empty($api_response['prerelease'])) { |
|
626 | 626 | $version = $api_response['tag_name']; |
627 | 627 | } |
628 | 628 | } |
@@ -650,21 +650,21 @@ discard block |
||
650 | 650 | public function admin_notices() { |
651 | 651 | $settings = $this->settings; |
652 | 652 | |
653 | - if ( defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
654 | - if ( ! empty( $_REQUEST['page'] ) && $_REQUEST['page'] == 'wp-font-awesome-settings' ) { |
|
653 | + if (defined('FONTAWESOME_PLUGIN_FILE')) { |
|
654 | + if (!empty($_REQUEST['page']) && $_REQUEST['page'] == 'wp-font-awesome-settings') { |
|
655 | 655 | ?> |
656 | 656 | <div class="notice notice-error is-dismissible"> |
657 | - <p><?php _e( 'The Official Font Awesome Plugin is active, please adjust your settings there.', 'font-awesome-settings' ); ?></p> |
|
657 | + <p><?php _e('The Official Font Awesome Plugin is active, please adjust your settings there.', 'font-awesome-settings'); ?></p> |
|
658 | 658 | </div> |
659 | 659 | <?php |
660 | 660 | } |
661 | 661 | } else { |
662 | - if ( ! empty( $settings ) ) { |
|
663 | - if ( $settings['type'] != 'KIT' && $settings['pro'] && ( $settings['version'] == '' || version_compare( $settings['version'], '6', '>=' ) ) ) { |
|
662 | + if (!empty($settings)) { |
|
663 | + if ($settings['type'] != 'KIT' && $settings['pro'] && ($settings['version'] == '' || version_compare($settings['version'], '6', '>='))) { |
|
664 | 664 | $link = admin_url('options-general.php?page=wp-font-awesome-settings'); |
665 | 665 | ?> |
666 | 666 | <div class="notice notice-error is-dismissible"> |
667 | - <p><?php echo sprintf( __( 'Font Awesome Pro v6 requires the use of a kit, please setup your kit in %ssettings.%s', 'font-awesome-settings' ),"<a href='". esc_url_raw( $link )."'>","</a>" ); ?></p> |
|
667 | + <p><?php echo sprintf(__('Font Awesome Pro v6 requires the use of a kit, please setup your kit in %ssettings.%s', 'font-awesome-settings'), "<a href='" . esc_url_raw($link) . "'>", "</a>"); ?></p> |
|
668 | 668 | </div> |
669 | 669 | <?php |
670 | 670 | } |
@@ -680,20 +680,20 @@ discard block |
||
680 | 680 | * @param string $option The option name. |
681 | 681 | * @param mixed $value The option value. |
682 | 682 | */ |
683 | - public function add_option_wp_font_awesome_settings( $option, $value ) { |
|
683 | + public function add_option_wp_font_awesome_settings($option, $value) { |
|
684 | 684 | // Do nothing if WordPress is being installed. |
685 | - if ( wp_installing() ) { |
|
685 | + if (wp_installing()) { |
|
686 | 686 | return; |
687 | 687 | } |
688 | 688 | |
689 | - if ( ! empty( $value['local'] ) && empty( $value['pro'] ) && ! ( ! empty( $value['type'] ) && $value['type'] == 'KIT' ) ) { |
|
690 | - $version = isset( $value['version'] ) && $value['version'] ? $value['version'] : $this->get_latest_version(); |
|
689 | + if (!empty($value['local']) && empty($value['pro']) && !(!empty($value['type']) && $value['type'] == 'KIT')) { |
|
690 | + $version = isset($value['version']) && $value['version'] ? $value['version'] : $this->get_latest_version(); |
|
691 | 691 | |
692 | - if ( ! empty( $version ) ) { |
|
693 | - $response = $this->download_package( $version, $value ); |
|
692 | + if (!empty($version)) { |
|
693 | + $response = $this->download_package($version, $value); |
|
694 | 694 | |
695 | - if ( is_wp_error( $response ) ) { |
|
696 | - add_settings_error( 'general', 'fontawesome_download', __( 'ERROR:', 'font-awesome-settings' ) . ' ' . $response->get_error_message(), 'error' ); |
|
695 | + if (is_wp_error($response)) { |
|
696 | + add_settings_error('general', 'fontawesome_download', __('ERROR:', 'font-awesome-settings') . ' ' . $response->get_error_message(), 'error'); |
|
697 | 697 | } |
698 | 698 | } |
699 | 699 | } |
@@ -707,25 +707,25 @@ discard block |
||
707 | 707 | * @param mixed $old_value The old option value. |
708 | 708 | * @param mixed $value The new option value. |
709 | 709 | */ |
710 | - public function update_option_wp_font_awesome_settings( $old_value, $new_value ) { |
|
710 | + public function update_option_wp_font_awesome_settings($old_value, $new_value) { |
|
711 | 711 | // Do nothing if WordPress is being installed. |
712 | - if ( wp_installing() ) { |
|
712 | + if (wp_installing()) { |
|
713 | 713 | return; |
714 | 714 | } |
715 | 715 | |
716 | - if ( ! empty( $new_value['local'] ) && empty( $new_value['pro'] ) && ! ( ! empty( $new_value['type'] ) && $new_value['type'] == 'KIT' ) ) { |
|
716 | + if (!empty($new_value['local']) && empty($new_value['pro']) && !(!empty($new_value['type']) && $new_value['type'] == 'KIT')) { |
|
717 | 717 | // Old values |
718 | - $old_version = isset( $old_value['version'] ) && $old_value['version'] ? $old_value['version'] : ( isset( $old_value['local_version'] ) ? $old_value['local_version'] : '' ); |
|
719 | - $old_local = isset( $old_value['local'] ) ? (int) $old_value['local'] : 0; |
|
718 | + $old_version = isset($old_value['version']) && $old_value['version'] ? $old_value['version'] : (isset($old_value['local_version']) ? $old_value['local_version'] : ''); |
|
719 | + $old_local = isset($old_value['local']) ? (int) $old_value['local'] : 0; |
|
720 | 720 | |
721 | 721 | // New values |
722 | - $new_version = isset( $new_value['version'] ) && $new_value['version'] ? $new_value['version'] : $this->get_latest_version(); |
|
722 | + $new_version = isset($new_value['version']) && $new_value['version'] ? $new_value['version'] : $this->get_latest_version(); |
|
723 | 723 | |
724 | - if ( empty( $old_local ) || $old_version !== $new_version || ! file_exists( $this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css' ) ) { |
|
725 | - $response = $this->download_package( $new_version, $new_value ); |
|
724 | + if (empty($old_local) || $old_version !== $new_version || !file_exists($this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css')) { |
|
725 | + $response = $this->download_package($new_version, $new_value); |
|
726 | 726 | |
727 | - if ( is_wp_error( $response ) ) { |
|
728 | - add_settings_error( 'general', 'fontawesome_download', __( 'ERROR:', 'font-awesome-settings' ) . ' ' . $response->get_error_message(), 'error' ); |
|
727 | + if (is_wp_error($response)) { |
|
728 | + add_settings_error('general', 'fontawesome_download', __('ERROR:', 'font-awesome-settings') . ' ' . $response->get_error_message(), 'error'); |
|
729 | 729 | } |
730 | 730 | } |
731 | 731 | } |
@@ -739,9 +739,9 @@ discard block |
||
739 | 739 | * @param string Fonts directory local path. |
740 | 740 | */ |
741 | 741 | public function get_fonts_dir() { |
742 | - $upload_dir = wp_upload_dir( null, false ); |
|
742 | + $upload_dir = wp_upload_dir(null, false); |
|
743 | 743 | |
744 | - return $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'ayefonts' . DIRECTORY_SEPARATOR . 'fa' . DIRECTORY_SEPARATOR; |
|
744 | + return $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'ayefonts' . DIRECTORY_SEPARATOR . 'fa' . DIRECTORY_SEPARATOR; |
|
745 | 745 | } |
746 | 746 | |
747 | 747 | /** |
@@ -752,9 +752,9 @@ discard block |
||
752 | 752 | * @param string Fonts directory local url. |
753 | 753 | */ |
754 | 754 | public function get_fonts_url() { |
755 | - $upload_dir = wp_upload_dir( null, false ); |
|
755 | + $upload_dir = wp_upload_dir(null, false); |
|
756 | 756 | |
757 | - return $upload_dir['baseurl'] . '/ayefonts/fa/'; |
|
757 | + return $upload_dir['baseurl'] . '/ayefonts/fa/'; |
|
758 | 758 | } |
759 | 759 | |
760 | 760 | /** |
@@ -765,7 +765,7 @@ discard block |
||
765 | 765 | * @return bool True if active else false. |
766 | 766 | */ |
767 | 767 | public function has_local() { |
768 | - if ( ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) && file_exists( $this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css' ) ) { |
|
768 | + if (!empty($this->settings['local']) && empty($this->settings['pro']) && file_exists($this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css')) { |
|
769 | 769 | return true; |
770 | 770 | } |
771 | 771 | |
@@ -780,18 +780,18 @@ discard block |
||
780 | 780 | * @return object The WP Filesystem. |
781 | 781 | */ |
782 | 782 | public function get_wp_filesystem() { |
783 | - if ( ! function_exists( 'get_filesystem_method' ) ) { |
|
784 | - require_once( ABSPATH . "/wp-admin/includes/file.php" ); |
|
783 | + if (!function_exists('get_filesystem_method')) { |
|
784 | + require_once(ABSPATH . "/wp-admin/includes/file.php"); |
|
785 | 785 | } |
786 | 786 | |
787 | 787 | $access_type = get_filesystem_method(); |
788 | 788 | |
789 | - if ( $access_type === 'direct' ) { |
|
789 | + if ($access_type === 'direct') { |
|
790 | 790 | /* You can safely run request_filesystem_credentials() without any issues and don't need to worry about passing in a URL */ |
791 | - $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() ); |
|
791 | + $creds = request_filesystem_credentials(trailingslashit(site_url()) . 'wp-admin/', '', false, false, array()); |
|
792 | 792 | |
793 | 793 | /* Initialize the API */ |
794 | - if ( ! WP_Filesystem( $creds ) ) { |
|
794 | + if (!WP_Filesystem($creds)) { |
|
795 | 795 | /* Any problems and we exit */ |
796 | 796 | return false; |
797 | 797 | } |
@@ -800,11 +800,11 @@ discard block |
||
800 | 800 | |
801 | 801 | return $wp_filesystem; |
802 | 802 | /* Do our file manipulations below */ |
803 | - } else if ( defined( 'FTP_USER' ) ) { |
|
804 | - $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() ); |
|
803 | + } else if (defined('FTP_USER')) { |
|
804 | + $creds = request_filesystem_credentials(trailingslashit(site_url()) . 'wp-admin/', '', false, false, array()); |
|
805 | 805 | |
806 | 806 | /* Initialize the API */ |
807 | - if ( ! WP_Filesystem( $creds ) ) { |
|
807 | + if (!WP_Filesystem($creds)) { |
|
808 | 808 | /* Any problems and we exit */ |
809 | 809 | return false; |
810 | 810 | } |
@@ -827,38 +827,38 @@ discard block |
||
827 | 827 | * @param array $option Fontawesome settings. |
828 | 828 | * @return WP_ERROR|bool Error on fail and true on success. |
829 | 829 | */ |
830 | - public function download_package( $version, $option = array() ) { |
|
830 | + public function download_package($version, $option = array()) { |
|
831 | 831 | $filename = 'fontawesome-free-' . $version . '-web'; |
832 | 832 | $url = 'https://use.fontawesome.com/releases/v' . $version . '/' . $filename . '.zip'; |
833 | 833 | |
834 | - if ( ! function_exists( 'wp_handle_upload' ) ) { |
|
834 | + if (!function_exists('wp_handle_upload')) { |
|
835 | 835 | require_once ABSPATH . 'wp-admin/includes/file.php'; |
836 | 836 | } |
837 | 837 | |
838 | - $download_file = download_url( esc_url_raw( $url ) ); |
|
838 | + $download_file = download_url(esc_url_raw($url)); |
|
839 | 839 | |
840 | - if ( is_wp_error( $download_file ) ) { |
|
841 | - return new WP_Error( 'fontawesome_download_failed', __( $download_file->get_error_message(), 'font-awesome-settings' ) ); |
|
842 | - } else if ( empty( $download_file ) ) { |
|
843 | - return new WP_Error( 'fontawesome_download_failed', __( 'Something went wrong in downloading the font awesome to store locally.', 'font-awesome-settings' ) ); |
|
840 | + if (is_wp_error($download_file)) { |
|
841 | + return new WP_Error('fontawesome_download_failed', __($download_file->get_error_message(), 'font-awesome-settings')); |
|
842 | + } else if (empty($download_file)) { |
|
843 | + return new WP_Error('fontawesome_download_failed', __('Something went wrong in downloading the font awesome to store locally.', 'font-awesome-settings')); |
|
844 | 844 | } |
845 | 845 | |
846 | - $response = $this->extract_package( $download_file, $filename, true ); |
|
846 | + $response = $this->extract_package($download_file, $filename, true); |
|
847 | 847 | |
848 | 848 | // Update local version. |
849 | - if ( is_wp_error( $response ) ) { |
|
849 | + if (is_wp_error($response)) { |
|
850 | 850 | return $response; |
851 | - } else if ( $response ) { |
|
852 | - if ( empty( $option ) ) { |
|
853 | - $option = get_option( 'wp-font-awesome-settings' ); |
|
851 | + } else if ($response) { |
|
852 | + if (empty($option)) { |
|
853 | + $option = get_option('wp-font-awesome-settings'); |
|
854 | 854 | } |
855 | 855 | |
856 | 856 | $option['local_version'] = $version; |
857 | 857 | |
858 | 858 | // Remove action to prevent looping. |
859 | - remove_action( 'update_option_wp-font-awesome-settings', array( $this, 'update_option_wp_font_awesome_settings' ), 10, 2 ); |
|
859 | + remove_action('update_option_wp-font-awesome-settings', array($this, 'update_option_wp_font_awesome_settings'), 10, 2); |
|
860 | 860 | |
861 | - update_option( 'wp-font-awesome-settings', $option ); |
|
861 | + update_option('wp-font-awesome-settings', $option); |
|
862 | 862 | |
863 | 863 | return true; |
864 | 864 | } |
@@ -876,60 +876,60 @@ discard block |
||
876 | 876 | * @param bool $delete_package Delete temp file or not. |
877 | 877 | * @return WP_Error|bool True on success WP_Error on fail. |
878 | 878 | */ |
879 | - public function extract_package( $package, $dirname = '', $delete_package = false ) { |
|
879 | + public function extract_package($package, $dirname = '', $delete_package = false) { |
|
880 | 880 | global $wp_filesystem; |
881 | 881 | |
882 | 882 | $wp_filesystem = $this->get_wp_filesystem(); |
883 | 883 | |
884 | - if ( empty( $wp_filesystem ) && isset( $wp_filesystem->errors ) && is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) { |
|
885 | - return new WP_Error( 'fontawesome_filesystem_error', __( $wp_filesystem->errors->get_error_message(), 'font-awesome-settings' ) ); |
|
886 | - } else if ( empty( $wp_filesystem ) ) { |
|
887 | - return new WP_Error( 'fontawesome_filesystem_error', __( 'Failed to initialise WP_Filesystem while trying to download the Font Awesome package.', 'font-awesome-settings' ) ); |
|
884 | + if (empty($wp_filesystem) && isset($wp_filesystem->errors) && is_wp_error($wp_filesystem->errors) && $wp_filesystem->errors->get_error_code()) { |
|
885 | + return new WP_Error('fontawesome_filesystem_error', __($wp_filesystem->errors->get_error_message(), 'font-awesome-settings')); |
|
886 | + } else if (empty($wp_filesystem)) { |
|
887 | + return new WP_Error('fontawesome_filesystem_error', __('Failed to initialise WP_Filesystem while trying to download the Font Awesome package.', 'font-awesome-settings')); |
|
888 | 888 | } |
889 | 889 | |
890 | 890 | $fonts_dir = $this->get_fonts_dir(); |
891 | - $fonts_tmp_dir = dirname( $fonts_dir ) . DIRECTORY_SEPARATOR . 'fa-tmp' . DIRECTORY_SEPARATOR; |
|
891 | + $fonts_tmp_dir = dirname($fonts_dir) . DIRECTORY_SEPARATOR . 'fa-tmp' . DIRECTORY_SEPARATOR; |
|
892 | 892 | |
893 | - if ( $wp_filesystem->is_dir( $fonts_tmp_dir ) ) { |
|
894 | - $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
893 | + if ($wp_filesystem->is_dir($fonts_tmp_dir)) { |
|
894 | + $wp_filesystem->delete($fonts_tmp_dir, true); |
|
895 | 895 | } |
896 | 896 | |
897 | 897 | // Unzip package to working directory. |
898 | - $result = unzip_file( $package, $fonts_tmp_dir ); |
|
898 | + $result = unzip_file($package, $fonts_tmp_dir); |
|
899 | 899 | |
900 | - if ( is_wp_error( $result ) ) { |
|
901 | - $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
900 | + if (is_wp_error($result)) { |
|
901 | + $wp_filesystem->delete($fonts_tmp_dir, true); |
|
902 | 902 | |
903 | - if ( 'incompatible_archive' === $result->get_error_code() ) { |
|
904 | - return new WP_Error( 'fontawesome_incompatible_archive', __( $result->get_error_message(), 'font-awesome-settings' ) ); |
|
903 | + if ('incompatible_archive' === $result->get_error_code()) { |
|
904 | + return new WP_Error('fontawesome_incompatible_archive', __($result->get_error_message(), 'font-awesome-settings')); |
|
905 | 905 | } |
906 | 906 | |
907 | 907 | return $result; |
908 | 908 | } |
909 | 909 | |
910 | - if ( $wp_filesystem->is_dir( $fonts_dir ) ) { |
|
911 | - $wp_filesystem->delete( $fonts_dir, true ); |
|
910 | + if ($wp_filesystem->is_dir($fonts_dir)) { |
|
911 | + $wp_filesystem->delete($fonts_dir, true); |
|
912 | 912 | } |
913 | 913 | |
914 | 914 | $extract_dir = $fonts_tmp_dir; |
915 | 915 | |
916 | - if ( $dirname && $wp_filesystem->is_dir( $extract_dir . $dirname . DIRECTORY_SEPARATOR ) ) { |
|
916 | + if ($dirname && $wp_filesystem->is_dir($extract_dir . $dirname . DIRECTORY_SEPARATOR)) { |
|
917 | 917 | $extract_dir .= $dirname . DIRECTORY_SEPARATOR; |
918 | 918 | } |
919 | 919 | |
920 | 920 | try { |
921 | - $return = $wp_filesystem->move( $extract_dir, $fonts_dir, true ); |
|
922 | - } catch ( Exception $e ) { |
|
923 | - $return = new WP_Error( 'fontawesome_move_package', __( 'Fail to move font awesome package!', 'font-awesome-settings' ) ); |
|
921 | + $return = $wp_filesystem->move($extract_dir, $fonts_dir, true); |
|
922 | + } catch (Exception $e) { |
|
923 | + $return = new WP_Error('fontawesome_move_package', __('Fail to move font awesome package!', 'font-awesome-settings')); |
|
924 | 924 | } |
925 | 925 | |
926 | - if ( $wp_filesystem->is_dir( $fonts_tmp_dir ) ) { |
|
927 | - $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
926 | + if ($wp_filesystem->is_dir($fonts_tmp_dir)) { |
|
927 | + $wp_filesystem->delete($fonts_tmp_dir, true); |
|
928 | 928 | } |
929 | 929 | |
930 | 930 | // Once extracted, delete the package if required. |
931 | - if ( $delete_package ) { |
|
932 | - unlink( $package ); |
|
931 | + if ($delete_package) { |
|
932 | + unlink($package); |
|
933 | 933 | } |
934 | 934 | |
935 | 935 | return $return; |
@@ -13,7 +13,7 @@ discard block |
||
13 | 13 | * Bail if we are not in WP. |
14 | 14 | */ |
15 | 15 | if ( ! defined( 'ABSPATH' ) ) { |
16 | - exit; |
|
16 | + exit; |
|
17 | 17 | } |
18 | 18 | |
19 | 19 | /** |
@@ -21,362 +21,362 @@ discard block |
||
21 | 21 | */ |
22 | 22 | if ( ! class_exists( 'WP_Font_Awesome_Settings' ) ) { |
23 | 23 | |
24 | - /** |
|
25 | - * A Class to be able to change settings for Font Awesome. |
|
26 | - * |
|
27 | - * Class WP_Font_Awesome_Settings |
|
28 | - * @since 1.0.10 Now able to pass wp.org theme check. |
|
29 | - * @since 1.0.11 Font Awesome Pro now supported. |
|
30 | - * @since 1.0.11 Font Awesome Kits now supported. |
|
31 | - * @since 1.0.13 RTL language support added. |
|
32 | - * @since 1.0.14 Warning added for v6 pro requires kit and will now not work if official FA plugin installed. |
|
33 | - * @since 1.0.15 Font Awesome will now load in the FSE if enable din the backend. |
|
34 | - * @since 1.1.0 Option added to load FontAwesome locally. |
|
35 | - * @since 1.1.1 Requires to re-save settings to load locally when option does not exists - FIXED. |
|
36 | - * @since 1.1.2 Bumped the latest version to 6.3.0 - CHANGED. |
|
37 | - * @ver 1.0.15 |
|
38 | - * @todo decide how to implement textdomain |
|
39 | - */ |
|
40 | - class WP_Font_Awesome_Settings { |
|
41 | - |
|
42 | - /** |
|
43 | - * Class version version. |
|
44 | - * |
|
45 | - * @var string |
|
46 | - */ |
|
47 | - public $version = '1.1.2'; |
|
48 | - |
|
49 | - /** |
|
50 | - * Class textdomain. |
|
51 | - * |
|
52 | - * @var string |
|
53 | - */ |
|
54 | - public $textdomain = 'font-awesome-settings'; |
|
55 | - |
|
56 | - /** |
|
57 | - * Latest version of Font Awesome at time of publish published. |
|
58 | - * |
|
59 | - * @var string |
|
60 | - */ |
|
61 | - public $latest = "6.3.0"; |
|
62 | - |
|
63 | - /** |
|
64 | - * The title. |
|
65 | - * |
|
66 | - * @var string |
|
67 | - */ |
|
68 | - public $name = 'Font Awesome'; |
|
69 | - |
|
70 | - /** |
|
71 | - * Holds the settings values. |
|
72 | - * |
|
73 | - * @var array |
|
74 | - */ |
|
75 | - private $settings; |
|
76 | - |
|
77 | - /** |
|
78 | - * WP_Font_Awesome_Settings instance. |
|
79 | - * |
|
80 | - * @access private |
|
81 | - * @since 1.0.0 |
|
82 | - * @var WP_Font_Awesome_Settings There can be only one! |
|
83 | - */ |
|
84 | - private static $instance = null; |
|
85 | - |
|
86 | - /** |
|
87 | - * Main WP_Font_Awesome_Settings Instance. |
|
88 | - * |
|
89 | - * Ensures only one instance of WP_Font_Awesome_Settings is loaded or can be loaded. |
|
90 | - * |
|
91 | - * @since 1.0.0 |
|
92 | - * @static |
|
93 | - * @return WP_Font_Awesome_Settings - Main instance. |
|
94 | - */ |
|
95 | - public static function instance() { |
|
96 | - if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WP_Font_Awesome_Settings ) ) { |
|
97 | - self::$instance = new WP_Font_Awesome_Settings; |
|
98 | - |
|
99 | - add_action( 'init', array( self::$instance, 'init' ) ); // set settings |
|
100 | - |
|
101 | - if ( is_admin() ) { |
|
102 | - add_action( 'admin_menu', array( self::$instance, 'menu_item' ) ); |
|
103 | - add_action( 'admin_init', array( self::$instance, 'register_settings' ) ); |
|
104 | - add_action( 'admin_notices', array( self::$instance, 'admin_notices' ) ); |
|
105 | - } |
|
106 | - |
|
107 | - do_action( 'wp_font_awesome_settings_loaded' ); |
|
108 | - } |
|
109 | - |
|
110 | - return self::$instance; |
|
111 | - } |
|
112 | - |
|
113 | - /** |
|
114 | - * Initiate the settings and add the required action hooks. |
|
115 | - * |
|
116 | - * @since 1.0.8 Settings name wrong - FIXED |
|
117 | - */ |
|
118 | - public function init() { |
|
119 | - // Download fontawesome locally. |
|
120 | - add_action( 'add_option_wp-font-awesome-settings', array( $this, 'add_option_wp_font_awesome_settings' ), 10, 2 ); |
|
121 | - add_action( 'update_option_wp-font-awesome-settings', array( $this, 'update_option_wp_font_awesome_settings' ), 10, 2 ); |
|
122 | - |
|
123 | - $this->settings = $this->get_settings(); |
|
124 | - |
|
125 | - // check if the official plugin is active and use that instead if so. |
|
126 | - if ( ! defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
127 | - |
|
128 | - if ( $this->settings['type'] == 'CSS' ) { |
|
129 | - |
|
130 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend' ) { |
|
131 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), 5000 ); |
|
132 | - } |
|
133 | - |
|
134 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend' ) { |
|
135 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 5000 ); |
|
136 | - add_filter( 'block_editor_settings_all', array( $this, 'enqueue_editor_styles' ), 10, 2 ); |
|
137 | - } |
|
138 | - |
|
139 | - } else { |
|
140 | - |
|
141 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend' ) { |
|
142 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 5000 ); |
|
143 | - } |
|
144 | - |
|
145 | - if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend' ) { |
|
146 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 5000 ); |
|
147 | - add_filter( 'block_editor_settings_all', array( $this, 'enqueue_editor_scripts' ), 10, 2 ); |
|
148 | - } |
|
149 | - } |
|
150 | - |
|
151 | - // remove font awesome if set to do so |
|
152 | - if ( $this->settings['dequeue'] == '1' ) { |
|
153 | - add_action( 'clean_url', array( $this, 'remove_font_awesome' ), 5000, 3 ); |
|
154 | - } |
|
155 | - } |
|
156 | - |
|
157 | - } |
|
158 | - |
|
159 | - /** |
|
160 | - * Add FA to the FSE. |
|
161 | - * |
|
162 | - * @param $editor_settings |
|
163 | - * @param $block_editor_context |
|
164 | - * |
|
165 | - * @return array |
|
166 | - */ |
|
167 | - public function enqueue_editor_styles( $editor_settings, $block_editor_context ){ |
|
168 | - |
|
169 | - if ( ! empty( $editor_settings['__unstableResolvedAssets']['styles'] ) ) { |
|
170 | - $url = $this->get_url(); |
|
171 | - $editor_settings['__unstableResolvedAssets']['styles'] .= "<link rel='stylesheet' id='font-awesome-css' href='$url' media='all' />"; |
|
172 | - } |
|
173 | - |
|
174 | - return $editor_settings; |
|
175 | - } |
|
176 | - |
|
177 | - /** |
|
178 | - * Add FA to the FSE. |
|
179 | - * |
|
180 | - * @param $editor_settings |
|
181 | - * @param $block_editor_context |
|
182 | - * |
|
183 | - * @return array |
|
184 | - */ |
|
185 | - public function enqueue_editor_scripts( $editor_settings, $block_editor_context ){ |
|
186 | - |
|
187 | - $url = $this->get_url(); |
|
188 | - $editor_settings['__unstableResolvedAssets']['scripts'] .= "<script src='$url' id='font-awesome-js'></script>"; |
|
189 | - |
|
190 | - return $editor_settings; |
|
191 | - } |
|
192 | - |
|
193 | - /** |
|
194 | - * Adds the Font Awesome styles. |
|
195 | - */ |
|
196 | - public function enqueue_style() { |
|
197 | - // build url |
|
198 | - $url = $this->get_url(); |
|
199 | - $version = ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) ? strip_tags( $this->settings['local_version'] ) : null; |
|
200 | - |
|
201 | - wp_deregister_style( 'font-awesome' ); // deregister in case its already there |
|
202 | - wp_register_style( 'font-awesome', $url, array(), $version ); |
|
203 | - wp_enqueue_style( 'font-awesome' ); |
|
204 | - |
|
205 | - // RTL language support CSS. |
|
206 | - if ( is_rtl() ) { |
|
207 | - wp_add_inline_style( 'font-awesome', $this->rtl_inline_css() ); |
|
208 | - } |
|
209 | - |
|
210 | - if ( $this->settings['shims'] ) { |
|
211 | - $url = $this->get_url( true ); |
|
212 | - wp_deregister_style( 'font-awesome-shims' ); // deregister in case its already there |
|
213 | - wp_register_style( 'font-awesome-shims', $url, array(), $version ); |
|
214 | - wp_enqueue_style( 'font-awesome-shims' ); |
|
215 | - } |
|
216 | - } |
|
217 | - |
|
218 | - /** |
|
219 | - * Adds the Font Awesome JS. |
|
220 | - */ |
|
221 | - public function enqueue_scripts() { |
|
222 | - // build url |
|
223 | - $url = $this->get_url(); |
|
224 | - |
|
225 | - $deregister_function = 'wp' . '_' . 'deregister' . '_' . 'script'; |
|
226 | - call_user_func( $deregister_function, 'font-awesome' ); // deregister in case its already there |
|
227 | - wp_register_script( 'font-awesome', $url, array(), null ); |
|
228 | - wp_enqueue_script( 'font-awesome' ); |
|
229 | - |
|
230 | - if ( $this->settings['shims'] ) { |
|
231 | - $url = $this->get_url( true ); |
|
232 | - call_user_func( $deregister_function, 'font-awesome-shims' ); // deregister in case its already there |
|
233 | - wp_register_script( 'font-awesome-shims', $url, array(), null ); |
|
234 | - wp_enqueue_script( 'font-awesome-shims' ); |
|
235 | - } |
|
236 | - } |
|
237 | - |
|
238 | - /** |
|
239 | - * Get the url of the Font Awesome files. |
|
240 | - * |
|
241 | - * @param bool $shims If this is a shim file or not. |
|
242 | - * @param bool $local Load locally if allowed. |
|
243 | - * |
|
244 | - * @return string The url to the file. |
|
245 | - */ |
|
246 | - public function get_url( $shims = false, $local = true ) { |
|
247 | - $script = $shims ? 'v4-shims' : 'all'; |
|
248 | - $sub = $this->settings['pro'] ? 'pro' : 'use'; |
|
249 | - $type = $this->settings['type']; |
|
250 | - $version = $this->settings['version']; |
|
251 | - $kit_url = $this->settings['kit-url'] ? esc_url( $this->settings['kit-url'] ) : ''; |
|
252 | - $url = ''; |
|
253 | - |
|
254 | - if ( $type == 'KIT' && $kit_url ) { |
|
255 | - if ( $shims ) { |
|
256 | - // if its a kit then we don't add shims here |
|
257 | - return ''; |
|
258 | - } |
|
259 | - $url .= $kit_url; // CDN |
|
260 | - $url .= "?wpfas=true"; // set our var so our version is not removed |
|
261 | - } else { |
|
262 | - $v = ''; |
|
263 | - // Check and load locally. |
|
264 | - if ( $local && $this->has_local() ) { |
|
265 | - $script .= ".min"; |
|
266 | - $v .= '&ver=' . strip_tags( $this->settings['local_version'] ); |
|
267 | - $url .= $this->get_fonts_url(); // Local fonts url. |
|
268 | - } else { |
|
269 | - $url .= "https://$sub.fontawesome.com/releases/"; // CDN |
|
270 | - $url .= ! empty( $version ) ? "v" . $version . '/' : "v" . $this->get_latest_version() . '/'; // version |
|
271 | - } |
|
272 | - $url .= $type == 'CSS' ? 'css/' : 'js/'; // type |
|
273 | - $url .= $type == 'CSS' ? $script . '.css' : $script . '.js'; // type |
|
274 | - $url .= "?wpfas=true" . $v; // set our var so our version is not removed |
|
275 | - } |
|
276 | - |
|
277 | - return $url; |
|
278 | - } |
|
279 | - |
|
280 | - /** |
|
281 | - * Try and remove any other versions of Font Awesome added by other plugins/themes. |
|
282 | - * |
|
283 | - * Uses the clean_url filter to try and remove any other Font Awesome files added, it can also add pseudo-elements flag for the JS version. |
|
284 | - * |
|
285 | - * @param $url |
|
286 | - * @param $original_url |
|
287 | - * @param $_context |
|
288 | - * |
|
289 | - * @return string The filtered url. |
|
290 | - */ |
|
291 | - public function remove_font_awesome( $url, $original_url, $_context ) { |
|
292 | - |
|
293 | - if ( $_context == 'display' |
|
294 | - && ( strstr( $url, "fontawesome" ) !== false || strstr( $url, "font-awesome" ) !== false ) |
|
295 | - && ( strstr( $url, ".js" ) !== false || strstr( $url, ".css" ) !== false ) |
|
296 | - ) {// it's a font-awesome-url (probably) |
|
297 | - |
|
298 | - if ( strstr( $url, "wpfas=true" ) !== false ) { |
|
299 | - if ( $this->settings['type'] == 'JS' ) { |
|
300 | - if ( $this->settings['js-pseudo'] ) { |
|
301 | - $url .= "' data-search-pseudo-elements defer='defer"; |
|
302 | - } else { |
|
303 | - $url .= "' defer='defer"; |
|
304 | - } |
|
305 | - } |
|
306 | - } else { |
|
307 | - $url = ''; // removing the url removes the file |
|
308 | - } |
|
309 | - |
|
310 | - } |
|
311 | - |
|
312 | - return $url; |
|
313 | - } |
|
314 | - |
|
315 | - /** |
|
316 | - * Register the database settings with WordPress. |
|
317 | - */ |
|
318 | - public function register_settings() { |
|
319 | - register_setting( 'wp-font-awesome-settings', 'wp-font-awesome-settings' ); |
|
320 | - } |
|
321 | - |
|
322 | - /** |
|
323 | - * Add the WordPress settings menu item. |
|
324 | - * @since 1.0.10 Calling function name direct will fail theme check so we don't. |
|
325 | - */ |
|
326 | - public function menu_item() { |
|
327 | - $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme |
|
328 | - call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'wp-font-awesome-settings', array( |
|
329 | - $this, |
|
330 | - 'settings_page' |
|
331 | - ) ); |
|
332 | - } |
|
333 | - |
|
334 | - /** |
|
335 | - * Get the current Font Awesome output settings. |
|
336 | - * |
|
337 | - * @return array The array of settings. |
|
338 | - */ |
|
339 | - public function get_settings() { |
|
340 | - $db_settings = get_option( 'wp-font-awesome-settings' ); |
|
341 | - |
|
342 | - $defaults = array( |
|
343 | - 'type' => 'CSS', // type to use, CSS or JS or KIT |
|
344 | - 'version' => '', // latest |
|
345 | - 'enqueue' => '', // front and backend |
|
346 | - 'shims' => '0', // default OFF now in 2020 |
|
347 | - 'js-pseudo' => '0', // if the pseudo elements flag should be set (CPU intensive) |
|
348 | - 'dequeue' => '0', // if we should try to remove other versions added by other plugins/themes |
|
349 | - 'pro' => '0', // if pro CDN url should be used |
|
350 | - 'local' => '0', // Store fonts locally. |
|
351 | - 'local_version' => '', // Local fonts version. |
|
352 | - 'kit-url' => '', // the kit url |
|
353 | - ); |
|
354 | - |
|
355 | - $settings = wp_parse_args( $db_settings, $defaults ); |
|
356 | - |
|
357 | - /** |
|
358 | - * Filter the Font Awesome settings. |
|
359 | - * |
|
360 | - * @todo if we add this filer people might use it and then it defeates the purpose of this class :/ |
|
361 | - */ |
|
362 | - return $this->settings = apply_filters( 'wp-font-awesome-settings', $settings, $db_settings, $defaults ); |
|
363 | - } |
|
364 | - |
|
365 | - /** |
|
366 | - * The settings page html output. |
|
367 | - */ |
|
368 | - public function settings_page() { |
|
369 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
370 | - wp_die( __( 'You do not have sufficient permissions to access this page.', 'font-awesome-settings' ) ); |
|
371 | - } |
|
372 | - |
|
373 | - // a hidden way to force the update of the version number via api instead of waiting the 48 hours |
|
374 | - if ( isset( $_REQUEST['force-version-check'] ) ) { |
|
375 | - $this->get_latest_version( $force_api = true ); |
|
376 | - } |
|
377 | - |
|
378 | - if ( ! defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
379 | - ?> |
|
24 | + /** |
|
25 | + * A Class to be able to change settings for Font Awesome. |
|
26 | + * |
|
27 | + * Class WP_Font_Awesome_Settings |
|
28 | + * @since 1.0.10 Now able to pass wp.org theme check. |
|
29 | + * @since 1.0.11 Font Awesome Pro now supported. |
|
30 | + * @since 1.0.11 Font Awesome Kits now supported. |
|
31 | + * @since 1.0.13 RTL language support added. |
|
32 | + * @since 1.0.14 Warning added for v6 pro requires kit and will now not work if official FA plugin installed. |
|
33 | + * @since 1.0.15 Font Awesome will now load in the FSE if enable din the backend. |
|
34 | + * @since 1.1.0 Option added to load FontAwesome locally. |
|
35 | + * @since 1.1.1 Requires to re-save settings to load locally when option does not exists - FIXED. |
|
36 | + * @since 1.1.2 Bumped the latest version to 6.3.0 - CHANGED. |
|
37 | + * @ver 1.0.15 |
|
38 | + * @todo decide how to implement textdomain |
|
39 | + */ |
|
40 | + class WP_Font_Awesome_Settings { |
|
41 | + |
|
42 | + /** |
|
43 | + * Class version version. |
|
44 | + * |
|
45 | + * @var string |
|
46 | + */ |
|
47 | + public $version = '1.1.2'; |
|
48 | + |
|
49 | + /** |
|
50 | + * Class textdomain. |
|
51 | + * |
|
52 | + * @var string |
|
53 | + */ |
|
54 | + public $textdomain = 'font-awesome-settings'; |
|
55 | + |
|
56 | + /** |
|
57 | + * Latest version of Font Awesome at time of publish published. |
|
58 | + * |
|
59 | + * @var string |
|
60 | + */ |
|
61 | + public $latest = "6.3.0"; |
|
62 | + |
|
63 | + /** |
|
64 | + * The title. |
|
65 | + * |
|
66 | + * @var string |
|
67 | + */ |
|
68 | + public $name = 'Font Awesome'; |
|
69 | + |
|
70 | + /** |
|
71 | + * Holds the settings values. |
|
72 | + * |
|
73 | + * @var array |
|
74 | + */ |
|
75 | + private $settings; |
|
76 | + |
|
77 | + /** |
|
78 | + * WP_Font_Awesome_Settings instance. |
|
79 | + * |
|
80 | + * @access private |
|
81 | + * @since 1.0.0 |
|
82 | + * @var WP_Font_Awesome_Settings There can be only one! |
|
83 | + */ |
|
84 | + private static $instance = null; |
|
85 | + |
|
86 | + /** |
|
87 | + * Main WP_Font_Awesome_Settings Instance. |
|
88 | + * |
|
89 | + * Ensures only one instance of WP_Font_Awesome_Settings is loaded or can be loaded. |
|
90 | + * |
|
91 | + * @since 1.0.0 |
|
92 | + * @static |
|
93 | + * @return WP_Font_Awesome_Settings - Main instance. |
|
94 | + */ |
|
95 | + public static function instance() { |
|
96 | + if ( ! isset( self::$instance ) && ! ( self::$instance instanceof WP_Font_Awesome_Settings ) ) { |
|
97 | + self::$instance = new WP_Font_Awesome_Settings; |
|
98 | + |
|
99 | + add_action( 'init', array( self::$instance, 'init' ) ); // set settings |
|
100 | + |
|
101 | + if ( is_admin() ) { |
|
102 | + add_action( 'admin_menu', array( self::$instance, 'menu_item' ) ); |
|
103 | + add_action( 'admin_init', array( self::$instance, 'register_settings' ) ); |
|
104 | + add_action( 'admin_notices', array( self::$instance, 'admin_notices' ) ); |
|
105 | + } |
|
106 | + |
|
107 | + do_action( 'wp_font_awesome_settings_loaded' ); |
|
108 | + } |
|
109 | + |
|
110 | + return self::$instance; |
|
111 | + } |
|
112 | + |
|
113 | + /** |
|
114 | + * Initiate the settings and add the required action hooks. |
|
115 | + * |
|
116 | + * @since 1.0.8 Settings name wrong - FIXED |
|
117 | + */ |
|
118 | + public function init() { |
|
119 | + // Download fontawesome locally. |
|
120 | + add_action( 'add_option_wp-font-awesome-settings', array( $this, 'add_option_wp_font_awesome_settings' ), 10, 2 ); |
|
121 | + add_action( 'update_option_wp-font-awesome-settings', array( $this, 'update_option_wp_font_awesome_settings' ), 10, 2 ); |
|
122 | + |
|
123 | + $this->settings = $this->get_settings(); |
|
124 | + |
|
125 | + // check if the official plugin is active and use that instead if so. |
|
126 | + if ( ! defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
127 | + |
|
128 | + if ( $this->settings['type'] == 'CSS' ) { |
|
129 | + |
|
130 | + if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend' ) { |
|
131 | + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), 5000 ); |
|
132 | + } |
|
133 | + |
|
134 | + if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend' ) { |
|
135 | + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 5000 ); |
|
136 | + add_filter( 'block_editor_settings_all', array( $this, 'enqueue_editor_styles' ), 10, 2 ); |
|
137 | + } |
|
138 | + |
|
139 | + } else { |
|
140 | + |
|
141 | + if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'frontend' ) { |
|
142 | + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 5000 ); |
|
143 | + } |
|
144 | + |
|
145 | + if ( $this->settings['enqueue'] == '' || $this->settings['enqueue'] == 'backend' ) { |
|
146 | + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 5000 ); |
|
147 | + add_filter( 'block_editor_settings_all', array( $this, 'enqueue_editor_scripts' ), 10, 2 ); |
|
148 | + } |
|
149 | + } |
|
150 | + |
|
151 | + // remove font awesome if set to do so |
|
152 | + if ( $this->settings['dequeue'] == '1' ) { |
|
153 | + add_action( 'clean_url', array( $this, 'remove_font_awesome' ), 5000, 3 ); |
|
154 | + } |
|
155 | + } |
|
156 | + |
|
157 | + } |
|
158 | + |
|
159 | + /** |
|
160 | + * Add FA to the FSE. |
|
161 | + * |
|
162 | + * @param $editor_settings |
|
163 | + * @param $block_editor_context |
|
164 | + * |
|
165 | + * @return array |
|
166 | + */ |
|
167 | + public function enqueue_editor_styles( $editor_settings, $block_editor_context ){ |
|
168 | + |
|
169 | + if ( ! empty( $editor_settings['__unstableResolvedAssets']['styles'] ) ) { |
|
170 | + $url = $this->get_url(); |
|
171 | + $editor_settings['__unstableResolvedAssets']['styles'] .= "<link rel='stylesheet' id='font-awesome-css' href='$url' media='all' />"; |
|
172 | + } |
|
173 | + |
|
174 | + return $editor_settings; |
|
175 | + } |
|
176 | + |
|
177 | + /** |
|
178 | + * Add FA to the FSE. |
|
179 | + * |
|
180 | + * @param $editor_settings |
|
181 | + * @param $block_editor_context |
|
182 | + * |
|
183 | + * @return array |
|
184 | + */ |
|
185 | + public function enqueue_editor_scripts( $editor_settings, $block_editor_context ){ |
|
186 | + |
|
187 | + $url = $this->get_url(); |
|
188 | + $editor_settings['__unstableResolvedAssets']['scripts'] .= "<script src='$url' id='font-awesome-js'></script>"; |
|
189 | + |
|
190 | + return $editor_settings; |
|
191 | + } |
|
192 | + |
|
193 | + /** |
|
194 | + * Adds the Font Awesome styles. |
|
195 | + */ |
|
196 | + public function enqueue_style() { |
|
197 | + // build url |
|
198 | + $url = $this->get_url(); |
|
199 | + $version = ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) ? strip_tags( $this->settings['local_version'] ) : null; |
|
200 | + |
|
201 | + wp_deregister_style( 'font-awesome' ); // deregister in case its already there |
|
202 | + wp_register_style( 'font-awesome', $url, array(), $version ); |
|
203 | + wp_enqueue_style( 'font-awesome' ); |
|
204 | + |
|
205 | + // RTL language support CSS. |
|
206 | + if ( is_rtl() ) { |
|
207 | + wp_add_inline_style( 'font-awesome', $this->rtl_inline_css() ); |
|
208 | + } |
|
209 | + |
|
210 | + if ( $this->settings['shims'] ) { |
|
211 | + $url = $this->get_url( true ); |
|
212 | + wp_deregister_style( 'font-awesome-shims' ); // deregister in case its already there |
|
213 | + wp_register_style( 'font-awesome-shims', $url, array(), $version ); |
|
214 | + wp_enqueue_style( 'font-awesome-shims' ); |
|
215 | + } |
|
216 | + } |
|
217 | + |
|
218 | + /** |
|
219 | + * Adds the Font Awesome JS. |
|
220 | + */ |
|
221 | + public function enqueue_scripts() { |
|
222 | + // build url |
|
223 | + $url = $this->get_url(); |
|
224 | + |
|
225 | + $deregister_function = 'wp' . '_' . 'deregister' . '_' . 'script'; |
|
226 | + call_user_func( $deregister_function, 'font-awesome' ); // deregister in case its already there |
|
227 | + wp_register_script( 'font-awesome', $url, array(), null ); |
|
228 | + wp_enqueue_script( 'font-awesome' ); |
|
229 | + |
|
230 | + if ( $this->settings['shims'] ) { |
|
231 | + $url = $this->get_url( true ); |
|
232 | + call_user_func( $deregister_function, 'font-awesome-shims' ); // deregister in case its already there |
|
233 | + wp_register_script( 'font-awesome-shims', $url, array(), null ); |
|
234 | + wp_enqueue_script( 'font-awesome-shims' ); |
|
235 | + } |
|
236 | + } |
|
237 | + |
|
238 | + /** |
|
239 | + * Get the url of the Font Awesome files. |
|
240 | + * |
|
241 | + * @param bool $shims If this is a shim file or not. |
|
242 | + * @param bool $local Load locally if allowed. |
|
243 | + * |
|
244 | + * @return string The url to the file. |
|
245 | + */ |
|
246 | + public function get_url( $shims = false, $local = true ) { |
|
247 | + $script = $shims ? 'v4-shims' : 'all'; |
|
248 | + $sub = $this->settings['pro'] ? 'pro' : 'use'; |
|
249 | + $type = $this->settings['type']; |
|
250 | + $version = $this->settings['version']; |
|
251 | + $kit_url = $this->settings['kit-url'] ? esc_url( $this->settings['kit-url'] ) : ''; |
|
252 | + $url = ''; |
|
253 | + |
|
254 | + if ( $type == 'KIT' && $kit_url ) { |
|
255 | + if ( $shims ) { |
|
256 | + // if its a kit then we don't add shims here |
|
257 | + return ''; |
|
258 | + } |
|
259 | + $url .= $kit_url; // CDN |
|
260 | + $url .= "?wpfas=true"; // set our var so our version is not removed |
|
261 | + } else { |
|
262 | + $v = ''; |
|
263 | + // Check and load locally. |
|
264 | + if ( $local && $this->has_local() ) { |
|
265 | + $script .= ".min"; |
|
266 | + $v .= '&ver=' . strip_tags( $this->settings['local_version'] ); |
|
267 | + $url .= $this->get_fonts_url(); // Local fonts url. |
|
268 | + } else { |
|
269 | + $url .= "https://$sub.fontawesome.com/releases/"; // CDN |
|
270 | + $url .= ! empty( $version ) ? "v" . $version . '/' : "v" . $this->get_latest_version() . '/'; // version |
|
271 | + } |
|
272 | + $url .= $type == 'CSS' ? 'css/' : 'js/'; // type |
|
273 | + $url .= $type == 'CSS' ? $script . '.css' : $script . '.js'; // type |
|
274 | + $url .= "?wpfas=true" . $v; // set our var so our version is not removed |
|
275 | + } |
|
276 | + |
|
277 | + return $url; |
|
278 | + } |
|
279 | + |
|
280 | + /** |
|
281 | + * Try and remove any other versions of Font Awesome added by other plugins/themes. |
|
282 | + * |
|
283 | + * Uses the clean_url filter to try and remove any other Font Awesome files added, it can also add pseudo-elements flag for the JS version. |
|
284 | + * |
|
285 | + * @param $url |
|
286 | + * @param $original_url |
|
287 | + * @param $_context |
|
288 | + * |
|
289 | + * @return string The filtered url. |
|
290 | + */ |
|
291 | + public function remove_font_awesome( $url, $original_url, $_context ) { |
|
292 | + |
|
293 | + if ( $_context == 'display' |
|
294 | + && ( strstr( $url, "fontawesome" ) !== false || strstr( $url, "font-awesome" ) !== false ) |
|
295 | + && ( strstr( $url, ".js" ) !== false || strstr( $url, ".css" ) !== false ) |
|
296 | + ) {// it's a font-awesome-url (probably) |
|
297 | + |
|
298 | + if ( strstr( $url, "wpfas=true" ) !== false ) { |
|
299 | + if ( $this->settings['type'] == 'JS' ) { |
|
300 | + if ( $this->settings['js-pseudo'] ) { |
|
301 | + $url .= "' data-search-pseudo-elements defer='defer"; |
|
302 | + } else { |
|
303 | + $url .= "' defer='defer"; |
|
304 | + } |
|
305 | + } |
|
306 | + } else { |
|
307 | + $url = ''; // removing the url removes the file |
|
308 | + } |
|
309 | + |
|
310 | + } |
|
311 | + |
|
312 | + return $url; |
|
313 | + } |
|
314 | + |
|
315 | + /** |
|
316 | + * Register the database settings with WordPress. |
|
317 | + */ |
|
318 | + public function register_settings() { |
|
319 | + register_setting( 'wp-font-awesome-settings', 'wp-font-awesome-settings' ); |
|
320 | + } |
|
321 | + |
|
322 | + /** |
|
323 | + * Add the WordPress settings menu item. |
|
324 | + * @since 1.0.10 Calling function name direct will fail theme check so we don't. |
|
325 | + */ |
|
326 | + public function menu_item() { |
|
327 | + $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme |
|
328 | + call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'wp-font-awesome-settings', array( |
|
329 | + $this, |
|
330 | + 'settings_page' |
|
331 | + ) ); |
|
332 | + } |
|
333 | + |
|
334 | + /** |
|
335 | + * Get the current Font Awesome output settings. |
|
336 | + * |
|
337 | + * @return array The array of settings. |
|
338 | + */ |
|
339 | + public function get_settings() { |
|
340 | + $db_settings = get_option( 'wp-font-awesome-settings' ); |
|
341 | + |
|
342 | + $defaults = array( |
|
343 | + 'type' => 'CSS', // type to use, CSS or JS or KIT |
|
344 | + 'version' => '', // latest |
|
345 | + 'enqueue' => '', // front and backend |
|
346 | + 'shims' => '0', // default OFF now in 2020 |
|
347 | + 'js-pseudo' => '0', // if the pseudo elements flag should be set (CPU intensive) |
|
348 | + 'dequeue' => '0', // if we should try to remove other versions added by other plugins/themes |
|
349 | + 'pro' => '0', // if pro CDN url should be used |
|
350 | + 'local' => '0', // Store fonts locally. |
|
351 | + 'local_version' => '', // Local fonts version. |
|
352 | + 'kit-url' => '', // the kit url |
|
353 | + ); |
|
354 | + |
|
355 | + $settings = wp_parse_args( $db_settings, $defaults ); |
|
356 | + |
|
357 | + /** |
|
358 | + * Filter the Font Awesome settings. |
|
359 | + * |
|
360 | + * @todo if we add this filer people might use it and then it defeates the purpose of this class :/ |
|
361 | + */ |
|
362 | + return $this->settings = apply_filters( 'wp-font-awesome-settings', $settings, $db_settings, $defaults ); |
|
363 | + } |
|
364 | + |
|
365 | + /** |
|
366 | + * The settings page html output. |
|
367 | + */ |
|
368 | + public function settings_page() { |
|
369 | + if ( ! current_user_can( 'manage_options' ) ) { |
|
370 | + wp_die( __( 'You do not have sufficient permissions to access this page.', 'font-awesome-settings' ) ); |
|
371 | + } |
|
372 | + |
|
373 | + // a hidden way to force the update of the version number via api instead of waiting the 48 hours |
|
374 | + if ( isset( $_REQUEST['force-version-check'] ) ) { |
|
375 | + $this->get_latest_version( $force_api = true ); |
|
376 | + } |
|
377 | + |
|
378 | + if ( ! defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
379 | + ?> |
|
380 | 380 | <style> |
381 | 381 | .wpfas-kit-show { |
382 | 382 | display: none; |
@@ -402,16 +402,16 @@ discard block |
||
402 | 402 | <h1><?php echo $this->name; ?></h1> |
403 | 403 | <form method="post" action="options.php" class="fas-settings-form"> |
404 | 404 | <?php |
405 | - settings_fields( 'wp-font-awesome-settings' ); |
|
406 | - do_settings_sections( 'wp-font-awesome-settings' ); |
|
407 | - $table_class = ''; |
|
408 | - if ( $this->settings['type'] ) { |
|
409 | - $table_class .= 'wpfas-' . sanitize_html_class( strtolower( $this->settings['type'] ) ) . '-set'; |
|
410 | - } |
|
411 | - if ( ! empty( $this->settings['pro'] ) ) { |
|
412 | - $table_class .= ' wpfas-has-pro'; |
|
413 | - } |
|
414 | - ?> |
|
405 | + settings_fields( 'wp-font-awesome-settings' ); |
|
406 | + do_settings_sections( 'wp-font-awesome-settings' ); |
|
407 | + $table_class = ''; |
|
408 | + if ( $this->settings['type'] ) { |
|
409 | + $table_class .= 'wpfas-' . sanitize_html_class( strtolower( $this->settings['type'] ) ) . '-set'; |
|
410 | + } |
|
411 | + if ( ! empty( $this->settings['pro'] ) ) { |
|
412 | + $table_class .= ' wpfas-has-pro'; |
|
413 | + } |
|
414 | + ?> |
|
415 | 415 | <?php if ( $this->settings['type'] != 'KIT' && ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) ) { ?> |
416 | 416 | <?php if ( $this->has_local() ) { ?> |
417 | 417 | <div class="notice notice-info"><p><strong><?php _e( 'Font Awesome fonts are loading locally.', 'font-awesome-settings' ); ?></strong></p></div> |
@@ -436,12 +436,12 @@ discard block |
||
436 | 436 | <td> |
437 | 437 | <input class="regular-text" id="wpfas-kit-url" type="url" name="wp-font-awesome-settings[kit-url]" value="<?php echo esc_attr( $this->settings['kit-url'] ); ?>" placeholder="<?php echo 'https://kit.font';echo 'awesome.com/123abc.js'; // this won't pass theme check :(?>"/> |
438 | 438 | <span><?php |
439 | - echo sprintf( |
|
440 | - __( 'Requires a free account with Font Awesome. %sGet kit url%s', 'font-awesome-settings' ), |
|
441 | - '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/kits"><i class="fas fa-external-link-alt"></i>', |
|
442 | - '</a>' |
|
443 | - ); |
|
444 | - ?></span> |
|
439 | + echo sprintf( |
|
440 | + __( 'Requires a free account with Font Awesome. %sGet kit url%s', 'font-awesome-settings' ), |
|
441 | + '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/kits"><i class="fas fa-external-link-alt"></i>', |
|
442 | + '</a>' |
|
443 | + ); |
|
444 | + ?></span> |
|
445 | 445 | </td> |
446 | 446 | </tr> |
447 | 447 | |
@@ -482,14 +482,14 @@ discard block |
||
482 | 482 | <input type="hidden" name="wp-font-awesome-settings[pro]" value="0"/> |
483 | 483 | <input type="checkbox" name="wp-font-awesome-settings[pro]" value="1" <?php checked( $this->settings['pro'], '1' ); ?> id="wpfas-pro" onchange="if(jQuery(this).is(':checked')){jQuery('.wpfas-table-settings').addClass('wpfas-has-pro')}else{jQuery('.wpfas-table-settings').removeClass('wpfas-has-pro')}"/> |
484 | 484 | <span><?php |
485 | - echo wp_sprintf( |
|
486 | - __( 'Requires a subscription. %sLearn more%s %sManage my allowed domains%s', 'font-awesome-settings' ), |
|
487 | - '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/referral?a=c9b89e1418">', |
|
488 | - ' <i class="fas fa-external-link-alt"></i></a>', |
|
489 | - '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/account/cdn">', |
|
490 | - ' <i class="fas fa-external-link-alt"></i></a>' |
|
491 | - ); |
|
492 | - ?></span> |
|
485 | + echo wp_sprintf( |
|
486 | + __( 'Requires a subscription. %sLearn more%s %sManage my allowed domains%s', 'font-awesome-settings' ), |
|
487 | + '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/referral?a=c9b89e1418">', |
|
488 | + ' <i class="fas fa-external-link-alt"></i></a>', |
|
489 | + '<a rel="noopener noreferrer" target="_blank" href="https://fontawesome.com/account/cdn">', |
|
490 | + ' <i class="fas fa-external-link-alt"></i></a>' |
|
491 | + ); |
|
492 | + ?></span> |
|
493 | 493 | </td> |
494 | 494 | </tr> |
495 | 495 | |
@@ -543,8 +543,8 @@ discard block |
||
543 | 543 | </table> |
544 | 544 | <div class="fas-buttons"> |
545 | 545 | <?php |
546 | - submit_button(); |
|
547 | - ?> |
|
546 | + submit_button(); |
|
547 | + ?> |
|
548 | 548 | <p class="submit"><a href="https://fontawesome.com/referral?a=c9b89e1418" class="button button-secondary"><?php _e('Get 14,000+ more icons with Font Awesome Pro','font-awesome-settings'); ?> <i class="fas fa-external-link-alt"></i></a></p> |
549 | 549 | |
550 | 550 | </div> |
@@ -553,392 +553,392 @@ discard block |
||
553 | 553 | <div id="wpfas-version"><?php echo sprintf(__( 'Version: %s (affiliate links provided)', 'font-awesome-settings' ), $this->version ); ?></div> |
554 | 554 | </div> |
555 | 555 | <?php |
556 | - } |
|
557 | - } |
|
558 | - |
|
559 | - /** |
|
560 | - * Check a version number is valid and if so return it or else return an empty string. |
|
561 | - * |
|
562 | - * @param $version string The version number to check. |
|
563 | - * |
|
564 | - * @since 1.0.6 |
|
565 | - * |
|
566 | - * @return string Either a valid version number or an empty string. |
|
567 | - */ |
|
568 | - public function validate_version_number( $version ) { |
|
569 | - |
|
570 | - if ( version_compare( $version, '0.0.1', '>=' ) >= 0 ) { |
|
571 | - // valid |
|
572 | - } else { |
|
573 | - $version = '';// not validated |
|
574 | - } |
|
575 | - |
|
576 | - return $version; |
|
577 | - } |
|
578 | - |
|
579 | - |
|
580 | - /** |
|
581 | - * Get the latest version of Font Awesome. |
|
582 | - * |
|
583 | - * We check for a cached version and if none we will check for a live version via API and then cache it for 48 hours. |
|
584 | - * |
|
585 | - * @since 1.0.7 |
|
586 | - * @return mixed|string The latest version number found. |
|
587 | - */ |
|
588 | - public function get_latest_version( $force_api = false ) { |
|
589 | - $latest_version = $this->latest; |
|
590 | - |
|
591 | - $cache = get_transient( 'wp-font-awesome-settings-version' ); |
|
592 | - |
|
593 | - if ( $cache === false || $force_api ) { // its not set |
|
594 | - $api_ver = $this->get_latest_version_from_api(); |
|
595 | - if ( version_compare( $api_ver, $this->latest, '>=' ) >= 0 ) { |
|
596 | - $latest_version = $api_ver; |
|
597 | - set_transient( 'wp-font-awesome-settings-version', $api_ver, 48 * HOUR_IN_SECONDS ); |
|
598 | - } |
|
599 | - } elseif ( $this->validate_version_number( $cache ) ) { |
|
600 | - if ( version_compare( $cache, $this->latest, '>=' ) >= 0 ) { |
|
601 | - $latest_version = $cache; |
|
602 | - } |
|
603 | - } |
|
604 | - |
|
605 | - // Check and auto download fonts locally. |
|
606 | - if ( empty( $this->settings['pro'] ) && empty( $this->settings['version'] ) && $this->settings['type'] != 'KIT' && ! empty( $this->settings['local'] ) && ! empty( $this->settings['local_version'] ) && ! empty( $latest_version ) ) { |
|
607 | - if ( version_compare( $latest_version, $this->settings['local_version'], '>' ) && is_admin() && ! wp_doing_ajax() ) { |
|
608 | - $this->download_package( $latest_version ); |
|
609 | - } |
|
610 | - } |
|
611 | - |
|
612 | - return $latest_version; |
|
613 | - } |
|
614 | - |
|
615 | - /** |
|
616 | - * Get the latest Font Awesome version from the github API. |
|
617 | - * |
|
618 | - * @since 1.0.7 |
|
619 | - * @return string The latest version number or `0` on API fail. |
|
620 | - */ |
|
621 | - public function get_latest_version_from_api() { |
|
622 | - $version = "0"; |
|
623 | - $response = wp_remote_get( "https://api.github.com/repos/FortAwesome/Font-Awesome/releases/latest" ); |
|
624 | - if ( ! is_wp_error( $response ) && is_array( $response ) ) { |
|
625 | - $api_response = json_decode( wp_remote_retrieve_body( $response ), true ); |
|
626 | - if ( isset( $api_response['tag_name'] ) && version_compare( $api_response['tag_name'], $this->latest, '>=' ) >= 0 && empty( $api_response['prerelease'] ) ) { |
|
627 | - $version = $api_response['tag_name']; |
|
628 | - } |
|
629 | - } |
|
630 | - |
|
631 | - return $version; |
|
632 | - } |
|
633 | - |
|
634 | - /** |
|
635 | - * Inline CSS for RTL language support. |
|
636 | - * |
|
637 | - * @since 1.0.13 |
|
638 | - * @return string Inline CSS. |
|
639 | - */ |
|
640 | - public function rtl_inline_css() { |
|
641 | - $inline_css = '[dir=rtl] .fa-address,[dir=rtl] .fa-address-card,[dir=rtl] .fa-adjust,[dir=rtl] .fa-alarm-clock,[dir=rtl] .fa-align-left,[dir=rtl] .fa-align-right,[dir=rtl] .fa-analytics,[dir=rtl] .fa-angle-double-left,[dir=rtl] .fa-angle-double-right,[dir=rtl] .fa-angle-left,[dir=rtl] .fa-angle-right,[dir=rtl] .fa-arrow-alt-circle-left,[dir=rtl] .fa-arrow-alt-circle-right,[dir=rtl] .fa-arrow-alt-from-left,[dir=rtl] .fa-arrow-alt-from-right,[dir=rtl] .fa-arrow-alt-left,[dir=rtl] .fa-arrow-alt-right,[dir=rtl] .fa-arrow-alt-square-left,[dir=rtl] .fa-arrow-alt-square-right,[dir=rtl] .fa-arrow-alt-to-left,[dir=rtl] .fa-arrow-alt-to-right,[dir=rtl] .fa-arrow-circle-left,[dir=rtl] .fa-arrow-circle-right,[dir=rtl] .fa-arrow-from-left,[dir=rtl] .fa-arrow-from-right,[dir=rtl] .fa-arrow-left,[dir=rtl] .fa-arrow-right,[dir=rtl] .fa-arrow-square-left,[dir=rtl] .fa-arrow-square-right,[dir=rtl] .fa-arrow-to-left,[dir=rtl] .fa-arrow-to-right,[dir=rtl] .fa-balance-scale-left,[dir=rtl] .fa-balance-scale-right,[dir=rtl] .fa-bed,[dir=rtl] .fa-bed-bunk,[dir=rtl] .fa-bed-empty,[dir=rtl] .fa-border-left,[dir=rtl] .fa-border-right,[dir=rtl] .fa-calendar-check,[dir=rtl] .fa-caret-circle-left,[dir=rtl] .fa-caret-circle-right,[dir=rtl] .fa-caret-left,[dir=rtl] .fa-caret-right,[dir=rtl] .fa-caret-square-left,[dir=rtl] .fa-caret-square-right,[dir=rtl] .fa-cart-arrow-down,[dir=rtl] .fa-cart-plus,[dir=rtl] .fa-chart-area,[dir=rtl] .fa-chart-bar,[dir=rtl] .fa-chart-line,[dir=rtl] .fa-chart-line-down,[dir=rtl] .fa-chart-network,[dir=rtl] .fa-chart-pie,[dir=rtl] .fa-chart-pie-alt,[dir=rtl] .fa-chart-scatter,[dir=rtl] .fa-check-circle,[dir=rtl] .fa-check-square,[dir=rtl] .fa-chevron-circle-left,[dir=rtl] .fa-chevron-circle-right,[dir=rtl] .fa-chevron-double-left,[dir=rtl] .fa-chevron-double-right,[dir=rtl] .fa-chevron-left,[dir=rtl] .fa-chevron-right,[dir=rtl] .fa-chevron-square-left,[dir=rtl] .fa-chevron-square-right,[dir=rtl] .fa-clock,[dir=rtl] .fa-file,[dir=rtl] .fa-file-alt,[dir=rtl] .fa-file-archive,[dir=rtl] .fa-file-audio,[dir=rtl] .fa-file-chart-line,[dir=rtl] .fa-file-chart-pie,[dir=rtl] .fa-file-code,[dir=rtl] .fa-file-excel,[dir=rtl] .fa-file-image,[dir=rtl] .fa-file-pdf,[dir=rtl] .fa-file-powerpoint,[dir=rtl] .fa-file-video,[dir=rtl] .fa-file-word,[dir=rtl] .fa-flag,[dir=rtl] .fa-folder,[dir=rtl] .fa-folder-open,[dir=rtl] .fa-hand-lizard,[dir=rtl] .fa-hand-point-down,[dir=rtl] .fa-hand-point-left,[dir=rtl] .fa-hand-point-right,[dir=rtl] .fa-hand-point-up,[dir=rtl] .fa-hand-scissors,[dir=rtl] .fa-image,[dir=rtl] .fa-long-arrow-alt-left,[dir=rtl] .fa-long-arrow-alt-right,[dir=rtl] .fa-long-arrow-left,[dir=rtl] .fa-long-arrow-right,[dir=rtl] .fa-luggage-cart,[dir=rtl] .fa-moon,[dir=rtl] .fa-pencil,[dir=rtl] .fa-pencil-alt,[dir=rtl] .fa-play-circle,[dir=rtl] .fa-project-diagram,[dir=rtl] .fa-quote-left,[dir=rtl] .fa-quote-right,[dir=rtl] .fa-shopping-cart,[dir=rtl] .fa-thumbs-down,[dir=rtl] .fa-thumbs-up,[dir=rtl] .fa-user-chart{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);transform:scale(-1,1)}[dir=rtl] .fa-spin{animation-direction:reverse}'; |
|
642 | - |
|
643 | - return $inline_css; |
|
644 | - } |
|
645 | - |
|
646 | - /** |
|
647 | - * Show any warnings as an admin notice. |
|
648 | - * |
|
649 | - * @return void |
|
650 | - */ |
|
651 | - public function admin_notices() { |
|
652 | - $settings = $this->settings; |
|
653 | - |
|
654 | - if ( defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
655 | - if ( ! empty( $_REQUEST['page'] ) && $_REQUEST['page'] == 'wp-font-awesome-settings' ) { |
|
656 | - ?> |
|
556 | + } |
|
557 | + } |
|
558 | + |
|
559 | + /** |
|
560 | + * Check a version number is valid and if so return it or else return an empty string. |
|
561 | + * |
|
562 | + * @param $version string The version number to check. |
|
563 | + * |
|
564 | + * @since 1.0.6 |
|
565 | + * |
|
566 | + * @return string Either a valid version number or an empty string. |
|
567 | + */ |
|
568 | + public function validate_version_number( $version ) { |
|
569 | + |
|
570 | + if ( version_compare( $version, '0.0.1', '>=' ) >= 0 ) { |
|
571 | + // valid |
|
572 | + } else { |
|
573 | + $version = '';// not validated |
|
574 | + } |
|
575 | + |
|
576 | + return $version; |
|
577 | + } |
|
578 | + |
|
579 | + |
|
580 | + /** |
|
581 | + * Get the latest version of Font Awesome. |
|
582 | + * |
|
583 | + * We check for a cached version and if none we will check for a live version via API and then cache it for 48 hours. |
|
584 | + * |
|
585 | + * @since 1.0.7 |
|
586 | + * @return mixed|string The latest version number found. |
|
587 | + */ |
|
588 | + public function get_latest_version( $force_api = false ) { |
|
589 | + $latest_version = $this->latest; |
|
590 | + |
|
591 | + $cache = get_transient( 'wp-font-awesome-settings-version' ); |
|
592 | + |
|
593 | + if ( $cache === false || $force_api ) { // its not set |
|
594 | + $api_ver = $this->get_latest_version_from_api(); |
|
595 | + if ( version_compare( $api_ver, $this->latest, '>=' ) >= 0 ) { |
|
596 | + $latest_version = $api_ver; |
|
597 | + set_transient( 'wp-font-awesome-settings-version', $api_ver, 48 * HOUR_IN_SECONDS ); |
|
598 | + } |
|
599 | + } elseif ( $this->validate_version_number( $cache ) ) { |
|
600 | + if ( version_compare( $cache, $this->latest, '>=' ) >= 0 ) { |
|
601 | + $latest_version = $cache; |
|
602 | + } |
|
603 | + } |
|
604 | + |
|
605 | + // Check and auto download fonts locally. |
|
606 | + if ( empty( $this->settings['pro'] ) && empty( $this->settings['version'] ) && $this->settings['type'] != 'KIT' && ! empty( $this->settings['local'] ) && ! empty( $this->settings['local_version'] ) && ! empty( $latest_version ) ) { |
|
607 | + if ( version_compare( $latest_version, $this->settings['local_version'], '>' ) && is_admin() && ! wp_doing_ajax() ) { |
|
608 | + $this->download_package( $latest_version ); |
|
609 | + } |
|
610 | + } |
|
611 | + |
|
612 | + return $latest_version; |
|
613 | + } |
|
614 | + |
|
615 | + /** |
|
616 | + * Get the latest Font Awesome version from the github API. |
|
617 | + * |
|
618 | + * @since 1.0.7 |
|
619 | + * @return string The latest version number or `0` on API fail. |
|
620 | + */ |
|
621 | + public function get_latest_version_from_api() { |
|
622 | + $version = "0"; |
|
623 | + $response = wp_remote_get( "https://api.github.com/repos/FortAwesome/Font-Awesome/releases/latest" ); |
|
624 | + if ( ! is_wp_error( $response ) && is_array( $response ) ) { |
|
625 | + $api_response = json_decode( wp_remote_retrieve_body( $response ), true ); |
|
626 | + if ( isset( $api_response['tag_name'] ) && version_compare( $api_response['tag_name'], $this->latest, '>=' ) >= 0 && empty( $api_response['prerelease'] ) ) { |
|
627 | + $version = $api_response['tag_name']; |
|
628 | + } |
|
629 | + } |
|
630 | + |
|
631 | + return $version; |
|
632 | + } |
|
633 | + |
|
634 | + /** |
|
635 | + * Inline CSS for RTL language support. |
|
636 | + * |
|
637 | + * @since 1.0.13 |
|
638 | + * @return string Inline CSS. |
|
639 | + */ |
|
640 | + public function rtl_inline_css() { |
|
641 | + $inline_css = '[dir=rtl] .fa-address,[dir=rtl] .fa-address-card,[dir=rtl] .fa-adjust,[dir=rtl] .fa-alarm-clock,[dir=rtl] .fa-align-left,[dir=rtl] .fa-align-right,[dir=rtl] .fa-analytics,[dir=rtl] .fa-angle-double-left,[dir=rtl] .fa-angle-double-right,[dir=rtl] .fa-angle-left,[dir=rtl] .fa-angle-right,[dir=rtl] .fa-arrow-alt-circle-left,[dir=rtl] .fa-arrow-alt-circle-right,[dir=rtl] .fa-arrow-alt-from-left,[dir=rtl] .fa-arrow-alt-from-right,[dir=rtl] .fa-arrow-alt-left,[dir=rtl] .fa-arrow-alt-right,[dir=rtl] .fa-arrow-alt-square-left,[dir=rtl] .fa-arrow-alt-square-right,[dir=rtl] .fa-arrow-alt-to-left,[dir=rtl] .fa-arrow-alt-to-right,[dir=rtl] .fa-arrow-circle-left,[dir=rtl] .fa-arrow-circle-right,[dir=rtl] .fa-arrow-from-left,[dir=rtl] .fa-arrow-from-right,[dir=rtl] .fa-arrow-left,[dir=rtl] .fa-arrow-right,[dir=rtl] .fa-arrow-square-left,[dir=rtl] .fa-arrow-square-right,[dir=rtl] .fa-arrow-to-left,[dir=rtl] .fa-arrow-to-right,[dir=rtl] .fa-balance-scale-left,[dir=rtl] .fa-balance-scale-right,[dir=rtl] .fa-bed,[dir=rtl] .fa-bed-bunk,[dir=rtl] .fa-bed-empty,[dir=rtl] .fa-border-left,[dir=rtl] .fa-border-right,[dir=rtl] .fa-calendar-check,[dir=rtl] .fa-caret-circle-left,[dir=rtl] .fa-caret-circle-right,[dir=rtl] .fa-caret-left,[dir=rtl] .fa-caret-right,[dir=rtl] .fa-caret-square-left,[dir=rtl] .fa-caret-square-right,[dir=rtl] .fa-cart-arrow-down,[dir=rtl] .fa-cart-plus,[dir=rtl] .fa-chart-area,[dir=rtl] .fa-chart-bar,[dir=rtl] .fa-chart-line,[dir=rtl] .fa-chart-line-down,[dir=rtl] .fa-chart-network,[dir=rtl] .fa-chart-pie,[dir=rtl] .fa-chart-pie-alt,[dir=rtl] .fa-chart-scatter,[dir=rtl] .fa-check-circle,[dir=rtl] .fa-check-square,[dir=rtl] .fa-chevron-circle-left,[dir=rtl] .fa-chevron-circle-right,[dir=rtl] .fa-chevron-double-left,[dir=rtl] .fa-chevron-double-right,[dir=rtl] .fa-chevron-left,[dir=rtl] .fa-chevron-right,[dir=rtl] .fa-chevron-square-left,[dir=rtl] .fa-chevron-square-right,[dir=rtl] .fa-clock,[dir=rtl] .fa-file,[dir=rtl] .fa-file-alt,[dir=rtl] .fa-file-archive,[dir=rtl] .fa-file-audio,[dir=rtl] .fa-file-chart-line,[dir=rtl] .fa-file-chart-pie,[dir=rtl] .fa-file-code,[dir=rtl] .fa-file-excel,[dir=rtl] .fa-file-image,[dir=rtl] .fa-file-pdf,[dir=rtl] .fa-file-powerpoint,[dir=rtl] .fa-file-video,[dir=rtl] .fa-file-word,[dir=rtl] .fa-flag,[dir=rtl] .fa-folder,[dir=rtl] .fa-folder-open,[dir=rtl] .fa-hand-lizard,[dir=rtl] .fa-hand-point-down,[dir=rtl] .fa-hand-point-left,[dir=rtl] .fa-hand-point-right,[dir=rtl] .fa-hand-point-up,[dir=rtl] .fa-hand-scissors,[dir=rtl] .fa-image,[dir=rtl] .fa-long-arrow-alt-left,[dir=rtl] .fa-long-arrow-alt-right,[dir=rtl] .fa-long-arrow-left,[dir=rtl] .fa-long-arrow-right,[dir=rtl] .fa-luggage-cart,[dir=rtl] .fa-moon,[dir=rtl] .fa-pencil,[dir=rtl] .fa-pencil-alt,[dir=rtl] .fa-play-circle,[dir=rtl] .fa-project-diagram,[dir=rtl] .fa-quote-left,[dir=rtl] .fa-quote-right,[dir=rtl] .fa-shopping-cart,[dir=rtl] .fa-thumbs-down,[dir=rtl] .fa-thumbs-up,[dir=rtl] .fa-user-chart{filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);transform:scale(-1,1)}[dir=rtl] .fa-spin{animation-direction:reverse}'; |
|
642 | + |
|
643 | + return $inline_css; |
|
644 | + } |
|
645 | + |
|
646 | + /** |
|
647 | + * Show any warnings as an admin notice. |
|
648 | + * |
|
649 | + * @return void |
|
650 | + */ |
|
651 | + public function admin_notices() { |
|
652 | + $settings = $this->settings; |
|
653 | + |
|
654 | + if ( defined( 'FONTAWESOME_PLUGIN_FILE' ) ) { |
|
655 | + if ( ! empty( $_REQUEST['page'] ) && $_REQUEST['page'] == 'wp-font-awesome-settings' ) { |
|
656 | + ?> |
|
657 | 657 | <div class="notice notice-error is-dismissible"> |
658 | 658 | <p><?php _e( 'The Official Font Awesome Plugin is active, please adjust your settings there.', 'font-awesome-settings' ); ?></p> |
659 | 659 | </div> |
660 | 660 | <?php |
661 | - } |
|
662 | - } else { |
|
663 | - if ( ! empty( $settings ) ) { |
|
664 | - if ( $settings['type'] != 'KIT' && $settings['pro'] && ( $settings['version'] == '' || version_compare( $settings['version'], '6', '>=' ) ) ) { |
|
665 | - $link = admin_url('options-general.php?page=wp-font-awesome-settings'); |
|
666 | - ?> |
|
661 | + } |
|
662 | + } else { |
|
663 | + if ( ! empty( $settings ) ) { |
|
664 | + if ( $settings['type'] != 'KIT' && $settings['pro'] && ( $settings['version'] == '' || version_compare( $settings['version'], '6', '>=' ) ) ) { |
|
665 | + $link = admin_url('options-general.php?page=wp-font-awesome-settings'); |
|
666 | + ?> |
|
667 | 667 | <div class="notice notice-error is-dismissible"> |
668 | 668 | <p><?php echo sprintf( __( 'Font Awesome Pro v6 requires the use of a kit, please setup your kit in %ssettings.%s', 'font-awesome-settings' ),"<a href='". esc_url_raw( $link )."'>","</a>" ); ?></p> |
669 | 669 | </div> |
670 | 670 | <?php |
671 | - } |
|
672 | - } |
|
673 | - } |
|
674 | - } |
|
675 | - |
|
676 | - /** |
|
677 | - * Handle fontawesome add settings to download fontawesome to store locally. |
|
678 | - * |
|
679 | - * @since 1.1.1 |
|
680 | - * |
|
681 | - * @param string $option The option name. |
|
682 | - * @param mixed $value The option value. |
|
683 | - */ |
|
684 | - public function add_option_wp_font_awesome_settings( $option, $value ) { |
|
685 | - // Do nothing if WordPress is being installed. |
|
686 | - if ( wp_installing() ) { |
|
687 | - return; |
|
688 | - } |
|
689 | - |
|
690 | - if ( ! empty( $value['local'] ) && empty( $value['pro'] ) && ! ( ! empty( $value['type'] ) && $value['type'] == 'KIT' ) ) { |
|
691 | - $version = isset( $value['version'] ) && $value['version'] ? $value['version'] : $this->get_latest_version(); |
|
692 | - |
|
693 | - if ( ! empty( $version ) ) { |
|
694 | - $response = $this->download_package( $version, $value ); |
|
695 | - |
|
696 | - if ( is_wp_error( $response ) ) { |
|
697 | - add_settings_error( 'general', 'fontawesome_download', __( 'ERROR:', 'font-awesome-settings' ) . ' ' . $response->get_error_message(), 'error' ); |
|
698 | - } |
|
699 | - } |
|
700 | - } |
|
701 | - } |
|
702 | - |
|
703 | - /** |
|
704 | - * Handle fontawesome update settings to download fontawesome to store locally. |
|
705 | - * |
|
706 | - * @since 1.1.0 |
|
707 | - * |
|
708 | - * @param mixed $old_value The old option value. |
|
709 | - * @param mixed $value The new option value. |
|
710 | - */ |
|
711 | - public function update_option_wp_font_awesome_settings( $old_value, $new_value ) { |
|
712 | - // Do nothing if WordPress is being installed. |
|
713 | - if ( wp_installing() ) { |
|
714 | - return; |
|
715 | - } |
|
716 | - |
|
717 | - if ( ! empty( $new_value['local'] ) && empty( $new_value['pro'] ) && ! ( ! empty( $new_value['type'] ) && $new_value['type'] == 'KIT' ) ) { |
|
718 | - // Old values |
|
719 | - $old_version = isset( $old_value['version'] ) && $old_value['version'] ? $old_value['version'] : ( isset( $old_value['local_version'] ) ? $old_value['local_version'] : '' ); |
|
720 | - $old_local = isset( $old_value['local'] ) ? (int) $old_value['local'] : 0; |
|
721 | - |
|
722 | - // New values |
|
723 | - $new_version = isset( $new_value['version'] ) && $new_value['version'] ? $new_value['version'] : $this->get_latest_version(); |
|
724 | - |
|
725 | - if ( empty( $old_local ) || $old_version !== $new_version || ! file_exists( $this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css' ) ) { |
|
726 | - $response = $this->download_package( $new_version, $new_value ); |
|
727 | - |
|
728 | - if ( is_wp_error( $response ) ) { |
|
729 | - add_settings_error( 'general', 'fontawesome_download', __( 'ERROR:', 'font-awesome-settings' ) . ' ' . $response->get_error_message(), 'error' ); |
|
730 | - } |
|
731 | - } |
|
732 | - } |
|
733 | - } |
|
734 | - |
|
735 | - /** |
|
736 | - * Get the fonts directory local path. |
|
737 | - * |
|
738 | - * @since 1.1.0 |
|
739 | - * |
|
740 | - * @param string Fonts directory local path. |
|
741 | - */ |
|
742 | - public function get_fonts_dir() { |
|
743 | - $upload_dir = wp_upload_dir( null, false ); |
|
744 | - |
|
745 | - return $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'ayefonts' . DIRECTORY_SEPARATOR . 'fa' . DIRECTORY_SEPARATOR; |
|
746 | - } |
|
747 | - |
|
748 | - /** |
|
749 | - * Get the fonts directory local url. |
|
750 | - * |
|
751 | - * @since 1.1.0 |
|
752 | - * |
|
753 | - * @param string Fonts directory local url. |
|
754 | - */ |
|
755 | - public function get_fonts_url() { |
|
756 | - $upload_dir = wp_upload_dir( null, false ); |
|
757 | - |
|
758 | - return $upload_dir['baseurl'] . '/ayefonts/fa/'; |
|
759 | - } |
|
760 | - |
|
761 | - /** |
|
762 | - * Check whether load locally active. |
|
763 | - * |
|
764 | - * @since 1.1.0 |
|
765 | - * |
|
766 | - * @return bool True if active else false. |
|
767 | - */ |
|
768 | - public function has_local() { |
|
769 | - if ( ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) && file_exists( $this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css' ) ) { |
|
770 | - return true; |
|
771 | - } |
|
772 | - |
|
773 | - return false; |
|
774 | - } |
|
775 | - |
|
776 | - /** |
|
777 | - * Get the WP Filesystem access. |
|
778 | - * |
|
779 | - * @since 1.1.0 |
|
780 | - * |
|
781 | - * @return object The WP Filesystem. |
|
782 | - */ |
|
783 | - public function get_wp_filesystem() { |
|
784 | - if ( ! function_exists( 'get_filesystem_method' ) ) { |
|
785 | - require_once( ABSPATH . "/wp-admin/includes/file.php" ); |
|
786 | - } |
|
787 | - |
|
788 | - $access_type = get_filesystem_method(); |
|
789 | - |
|
790 | - if ( $access_type === 'direct' ) { |
|
791 | - /* You can safely run request_filesystem_credentials() without any issues and don't need to worry about passing in a URL */ |
|
792 | - $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() ); |
|
793 | - |
|
794 | - /* Initialize the API */ |
|
795 | - if ( ! WP_Filesystem( $creds ) ) { |
|
796 | - /* Any problems and we exit */ |
|
797 | - return false; |
|
798 | - } |
|
799 | - |
|
800 | - global $wp_filesystem; |
|
801 | - |
|
802 | - return $wp_filesystem; |
|
803 | - /* Do our file manipulations below */ |
|
804 | - } else if ( defined( 'FTP_USER' ) ) { |
|
805 | - $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() ); |
|
806 | - |
|
807 | - /* Initialize the API */ |
|
808 | - if ( ! WP_Filesystem( $creds ) ) { |
|
809 | - /* Any problems and we exit */ |
|
810 | - return false; |
|
811 | - } |
|
812 | - |
|
813 | - global $wp_filesystem; |
|
814 | - |
|
815 | - return $wp_filesystem; |
|
816 | - } else { |
|
817 | - /* Don't have direct write access. Prompt user with our notice */ |
|
818 | - return false; |
|
819 | - } |
|
820 | - } |
|
821 | - |
|
822 | - /** |
|
823 | - * Download the fontawesome package file. |
|
824 | - * |
|
825 | - * @since 1.1.0 |
|
826 | - * |
|
827 | - * @param mixed $version The font awesome. |
|
828 | - * @param array $option Fontawesome settings. |
|
829 | - * @return WP_ERROR|bool Error on fail and true on success. |
|
830 | - */ |
|
831 | - public function download_package( $version, $option = array() ) { |
|
832 | - $filename = 'fontawesome-free-' . $version . '-web'; |
|
833 | - $url = 'https://use.fontawesome.com/releases/v' . $version . '/' . $filename . '.zip'; |
|
834 | - |
|
835 | - if ( ! function_exists( 'wp_handle_upload' ) ) { |
|
836 | - require_once ABSPATH . 'wp-admin/includes/file.php'; |
|
837 | - } |
|
838 | - |
|
839 | - $download_file = download_url( esc_url_raw( $url ) ); |
|
840 | - |
|
841 | - if ( is_wp_error( $download_file ) ) { |
|
842 | - return new WP_Error( 'fontawesome_download_failed', __( $download_file->get_error_message(), 'font-awesome-settings' ) ); |
|
843 | - } else if ( empty( $download_file ) ) { |
|
844 | - return new WP_Error( 'fontawesome_download_failed', __( 'Something went wrong in downloading the font awesome to store locally.', 'font-awesome-settings' ) ); |
|
845 | - } |
|
846 | - |
|
847 | - $response = $this->extract_package( $download_file, $filename, true ); |
|
848 | - |
|
849 | - // Update local version. |
|
850 | - if ( is_wp_error( $response ) ) { |
|
851 | - return $response; |
|
852 | - } else if ( $response ) { |
|
853 | - if ( empty( $option ) ) { |
|
854 | - $option = get_option( 'wp-font-awesome-settings' ); |
|
855 | - } |
|
856 | - |
|
857 | - $option['local_version'] = $version; |
|
858 | - |
|
859 | - // Remove action to prevent looping. |
|
860 | - remove_action( 'update_option_wp-font-awesome-settings', array( $this, 'update_option_wp_font_awesome_settings' ), 10, 2 ); |
|
861 | - |
|
862 | - update_option( 'wp-font-awesome-settings', $option ); |
|
863 | - |
|
864 | - return true; |
|
865 | - } |
|
866 | - |
|
867 | - return false; |
|
868 | - } |
|
869 | - |
|
870 | - /** |
|
871 | - * Extract the fontawesome package file. |
|
872 | - * |
|
873 | - * @since 1.1.0 |
|
874 | - * |
|
875 | - * @param string $package The package file path. |
|
876 | - * @param string $dirname Package file name. |
|
877 | - * @param bool $delete_package Delete temp file or not. |
|
878 | - * @return WP_Error|bool True on success WP_Error on fail. |
|
879 | - */ |
|
880 | - public function extract_package( $package, $dirname = '', $delete_package = false ) { |
|
881 | - global $wp_filesystem; |
|
882 | - |
|
883 | - $wp_filesystem = $this->get_wp_filesystem(); |
|
884 | - |
|
885 | - if ( empty( $wp_filesystem ) && isset( $wp_filesystem->errors ) && is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) { |
|
886 | - return new WP_Error( 'fontawesome_filesystem_error', __( $wp_filesystem->errors->get_error_message(), 'font-awesome-settings' ) ); |
|
887 | - } else if ( empty( $wp_filesystem ) ) { |
|
888 | - return new WP_Error( 'fontawesome_filesystem_error', __( 'Failed to initialise WP_Filesystem while trying to download the Font Awesome package.', 'font-awesome-settings' ) ); |
|
889 | - } |
|
890 | - |
|
891 | - $fonts_dir = $this->get_fonts_dir(); |
|
892 | - $fonts_tmp_dir = dirname( $fonts_dir ) . DIRECTORY_SEPARATOR . 'fa-tmp' . DIRECTORY_SEPARATOR; |
|
893 | - |
|
894 | - if ( $wp_filesystem->is_dir( $fonts_tmp_dir ) ) { |
|
895 | - $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
896 | - } |
|
897 | - |
|
898 | - // Unzip package to working directory. |
|
899 | - $result = unzip_file( $package, $fonts_tmp_dir ); |
|
900 | - |
|
901 | - if ( is_wp_error( $result ) ) { |
|
902 | - $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
903 | - |
|
904 | - if ( 'incompatible_archive' === $result->get_error_code() ) { |
|
905 | - return new WP_Error( 'fontawesome_incompatible_archive', __( $result->get_error_message(), 'font-awesome-settings' ) ); |
|
906 | - } |
|
907 | - |
|
908 | - return $result; |
|
909 | - } |
|
910 | - |
|
911 | - if ( $wp_filesystem->is_dir( $fonts_dir ) ) { |
|
912 | - $wp_filesystem->delete( $fonts_dir, true ); |
|
913 | - } |
|
914 | - |
|
915 | - $extract_dir = $fonts_tmp_dir; |
|
916 | - |
|
917 | - if ( $dirname && $wp_filesystem->is_dir( $extract_dir . $dirname . DIRECTORY_SEPARATOR ) ) { |
|
918 | - $extract_dir .= $dirname . DIRECTORY_SEPARATOR; |
|
919 | - } |
|
920 | - |
|
921 | - try { |
|
922 | - $return = $wp_filesystem->move( $extract_dir, $fonts_dir, true ); |
|
923 | - } catch ( Exception $e ) { |
|
924 | - $return = new WP_Error( 'fontawesome_move_package', __( 'Fail to move font awesome package!', 'font-awesome-settings' ) ); |
|
925 | - } |
|
926 | - |
|
927 | - if ( $wp_filesystem->is_dir( $fonts_tmp_dir ) ) { |
|
928 | - $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
929 | - } |
|
930 | - |
|
931 | - // Once extracted, delete the package if required. |
|
932 | - if ( $delete_package ) { |
|
933 | - unlink( $package ); |
|
934 | - } |
|
935 | - |
|
936 | - return $return; |
|
937 | - } |
|
938 | - } |
|
939 | - |
|
940 | - /** |
|
941 | - * Run the class if found. |
|
942 | - */ |
|
943 | - WP_Font_Awesome_Settings::instance(); |
|
671 | + } |
|
672 | + } |
|
673 | + } |
|
674 | + } |
|
675 | + |
|
676 | + /** |
|
677 | + * Handle fontawesome add settings to download fontawesome to store locally. |
|
678 | + * |
|
679 | + * @since 1.1.1 |
|
680 | + * |
|
681 | + * @param string $option The option name. |
|
682 | + * @param mixed $value The option value. |
|
683 | + */ |
|
684 | + public function add_option_wp_font_awesome_settings( $option, $value ) { |
|
685 | + // Do nothing if WordPress is being installed. |
|
686 | + if ( wp_installing() ) { |
|
687 | + return; |
|
688 | + } |
|
689 | + |
|
690 | + if ( ! empty( $value['local'] ) && empty( $value['pro'] ) && ! ( ! empty( $value['type'] ) && $value['type'] == 'KIT' ) ) { |
|
691 | + $version = isset( $value['version'] ) && $value['version'] ? $value['version'] : $this->get_latest_version(); |
|
692 | + |
|
693 | + if ( ! empty( $version ) ) { |
|
694 | + $response = $this->download_package( $version, $value ); |
|
695 | + |
|
696 | + if ( is_wp_error( $response ) ) { |
|
697 | + add_settings_error( 'general', 'fontawesome_download', __( 'ERROR:', 'font-awesome-settings' ) . ' ' . $response->get_error_message(), 'error' ); |
|
698 | + } |
|
699 | + } |
|
700 | + } |
|
701 | + } |
|
702 | + |
|
703 | + /** |
|
704 | + * Handle fontawesome update settings to download fontawesome to store locally. |
|
705 | + * |
|
706 | + * @since 1.1.0 |
|
707 | + * |
|
708 | + * @param mixed $old_value The old option value. |
|
709 | + * @param mixed $value The new option value. |
|
710 | + */ |
|
711 | + public function update_option_wp_font_awesome_settings( $old_value, $new_value ) { |
|
712 | + // Do nothing if WordPress is being installed. |
|
713 | + if ( wp_installing() ) { |
|
714 | + return; |
|
715 | + } |
|
716 | + |
|
717 | + if ( ! empty( $new_value['local'] ) && empty( $new_value['pro'] ) && ! ( ! empty( $new_value['type'] ) && $new_value['type'] == 'KIT' ) ) { |
|
718 | + // Old values |
|
719 | + $old_version = isset( $old_value['version'] ) && $old_value['version'] ? $old_value['version'] : ( isset( $old_value['local_version'] ) ? $old_value['local_version'] : '' ); |
|
720 | + $old_local = isset( $old_value['local'] ) ? (int) $old_value['local'] : 0; |
|
721 | + |
|
722 | + // New values |
|
723 | + $new_version = isset( $new_value['version'] ) && $new_value['version'] ? $new_value['version'] : $this->get_latest_version(); |
|
724 | + |
|
725 | + if ( empty( $old_local ) || $old_version !== $new_version || ! file_exists( $this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css' ) ) { |
|
726 | + $response = $this->download_package( $new_version, $new_value ); |
|
727 | + |
|
728 | + if ( is_wp_error( $response ) ) { |
|
729 | + add_settings_error( 'general', 'fontawesome_download', __( 'ERROR:', 'font-awesome-settings' ) . ' ' . $response->get_error_message(), 'error' ); |
|
730 | + } |
|
731 | + } |
|
732 | + } |
|
733 | + } |
|
734 | + |
|
735 | + /** |
|
736 | + * Get the fonts directory local path. |
|
737 | + * |
|
738 | + * @since 1.1.0 |
|
739 | + * |
|
740 | + * @param string Fonts directory local path. |
|
741 | + */ |
|
742 | + public function get_fonts_dir() { |
|
743 | + $upload_dir = wp_upload_dir( null, false ); |
|
744 | + |
|
745 | + return $upload_dir['basedir'] . DIRECTORY_SEPARATOR . 'ayefonts' . DIRECTORY_SEPARATOR . 'fa' . DIRECTORY_SEPARATOR; |
|
746 | + } |
|
747 | + |
|
748 | + /** |
|
749 | + * Get the fonts directory local url. |
|
750 | + * |
|
751 | + * @since 1.1.0 |
|
752 | + * |
|
753 | + * @param string Fonts directory local url. |
|
754 | + */ |
|
755 | + public function get_fonts_url() { |
|
756 | + $upload_dir = wp_upload_dir( null, false ); |
|
757 | + |
|
758 | + return $upload_dir['baseurl'] . '/ayefonts/fa/'; |
|
759 | + } |
|
760 | + |
|
761 | + /** |
|
762 | + * Check whether load locally active. |
|
763 | + * |
|
764 | + * @since 1.1.0 |
|
765 | + * |
|
766 | + * @return bool True if active else false. |
|
767 | + */ |
|
768 | + public function has_local() { |
|
769 | + if ( ! empty( $this->settings['local'] ) && empty( $this->settings['pro'] ) && file_exists( $this->get_fonts_dir() . 'css' . DIRECTORY_SEPARATOR . 'all.css' ) ) { |
|
770 | + return true; |
|
771 | + } |
|
772 | + |
|
773 | + return false; |
|
774 | + } |
|
775 | + |
|
776 | + /** |
|
777 | + * Get the WP Filesystem access. |
|
778 | + * |
|
779 | + * @since 1.1.0 |
|
780 | + * |
|
781 | + * @return object The WP Filesystem. |
|
782 | + */ |
|
783 | + public function get_wp_filesystem() { |
|
784 | + if ( ! function_exists( 'get_filesystem_method' ) ) { |
|
785 | + require_once( ABSPATH . "/wp-admin/includes/file.php" ); |
|
786 | + } |
|
787 | + |
|
788 | + $access_type = get_filesystem_method(); |
|
789 | + |
|
790 | + if ( $access_type === 'direct' ) { |
|
791 | + /* You can safely run request_filesystem_credentials() without any issues and don't need to worry about passing in a URL */ |
|
792 | + $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() ); |
|
793 | + |
|
794 | + /* Initialize the API */ |
|
795 | + if ( ! WP_Filesystem( $creds ) ) { |
|
796 | + /* Any problems and we exit */ |
|
797 | + return false; |
|
798 | + } |
|
799 | + |
|
800 | + global $wp_filesystem; |
|
801 | + |
|
802 | + return $wp_filesystem; |
|
803 | + /* Do our file manipulations below */ |
|
804 | + } else if ( defined( 'FTP_USER' ) ) { |
|
805 | + $creds = request_filesystem_credentials( trailingslashit( site_url() ) . 'wp-admin/', '', false, false, array() ); |
|
806 | + |
|
807 | + /* Initialize the API */ |
|
808 | + if ( ! WP_Filesystem( $creds ) ) { |
|
809 | + /* Any problems and we exit */ |
|
810 | + return false; |
|
811 | + } |
|
812 | + |
|
813 | + global $wp_filesystem; |
|
814 | + |
|
815 | + return $wp_filesystem; |
|
816 | + } else { |
|
817 | + /* Don't have direct write access. Prompt user with our notice */ |
|
818 | + return false; |
|
819 | + } |
|
820 | + } |
|
821 | + |
|
822 | + /** |
|
823 | + * Download the fontawesome package file. |
|
824 | + * |
|
825 | + * @since 1.1.0 |
|
826 | + * |
|
827 | + * @param mixed $version The font awesome. |
|
828 | + * @param array $option Fontawesome settings. |
|
829 | + * @return WP_ERROR|bool Error on fail and true on success. |
|
830 | + */ |
|
831 | + public function download_package( $version, $option = array() ) { |
|
832 | + $filename = 'fontawesome-free-' . $version . '-web'; |
|
833 | + $url = 'https://use.fontawesome.com/releases/v' . $version . '/' . $filename . '.zip'; |
|
834 | + |
|
835 | + if ( ! function_exists( 'wp_handle_upload' ) ) { |
|
836 | + require_once ABSPATH . 'wp-admin/includes/file.php'; |
|
837 | + } |
|
838 | + |
|
839 | + $download_file = download_url( esc_url_raw( $url ) ); |
|
840 | + |
|
841 | + if ( is_wp_error( $download_file ) ) { |
|
842 | + return new WP_Error( 'fontawesome_download_failed', __( $download_file->get_error_message(), 'font-awesome-settings' ) ); |
|
843 | + } else if ( empty( $download_file ) ) { |
|
844 | + return new WP_Error( 'fontawesome_download_failed', __( 'Something went wrong in downloading the font awesome to store locally.', 'font-awesome-settings' ) ); |
|
845 | + } |
|
846 | + |
|
847 | + $response = $this->extract_package( $download_file, $filename, true ); |
|
848 | + |
|
849 | + // Update local version. |
|
850 | + if ( is_wp_error( $response ) ) { |
|
851 | + return $response; |
|
852 | + } else if ( $response ) { |
|
853 | + if ( empty( $option ) ) { |
|
854 | + $option = get_option( 'wp-font-awesome-settings' ); |
|
855 | + } |
|
856 | + |
|
857 | + $option['local_version'] = $version; |
|
858 | + |
|
859 | + // Remove action to prevent looping. |
|
860 | + remove_action( 'update_option_wp-font-awesome-settings', array( $this, 'update_option_wp_font_awesome_settings' ), 10, 2 ); |
|
861 | + |
|
862 | + update_option( 'wp-font-awesome-settings', $option ); |
|
863 | + |
|
864 | + return true; |
|
865 | + } |
|
866 | + |
|
867 | + return false; |
|
868 | + } |
|
869 | + |
|
870 | + /** |
|
871 | + * Extract the fontawesome package file. |
|
872 | + * |
|
873 | + * @since 1.1.0 |
|
874 | + * |
|
875 | + * @param string $package The package file path. |
|
876 | + * @param string $dirname Package file name. |
|
877 | + * @param bool $delete_package Delete temp file or not. |
|
878 | + * @return WP_Error|bool True on success WP_Error on fail. |
|
879 | + */ |
|
880 | + public function extract_package( $package, $dirname = '', $delete_package = false ) { |
|
881 | + global $wp_filesystem; |
|
882 | + |
|
883 | + $wp_filesystem = $this->get_wp_filesystem(); |
|
884 | + |
|
885 | + if ( empty( $wp_filesystem ) && isset( $wp_filesystem->errors ) && is_wp_error( $wp_filesystem->errors ) && $wp_filesystem->errors->get_error_code() ) { |
|
886 | + return new WP_Error( 'fontawesome_filesystem_error', __( $wp_filesystem->errors->get_error_message(), 'font-awesome-settings' ) ); |
|
887 | + } else if ( empty( $wp_filesystem ) ) { |
|
888 | + return new WP_Error( 'fontawesome_filesystem_error', __( 'Failed to initialise WP_Filesystem while trying to download the Font Awesome package.', 'font-awesome-settings' ) ); |
|
889 | + } |
|
890 | + |
|
891 | + $fonts_dir = $this->get_fonts_dir(); |
|
892 | + $fonts_tmp_dir = dirname( $fonts_dir ) . DIRECTORY_SEPARATOR . 'fa-tmp' . DIRECTORY_SEPARATOR; |
|
893 | + |
|
894 | + if ( $wp_filesystem->is_dir( $fonts_tmp_dir ) ) { |
|
895 | + $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
896 | + } |
|
897 | + |
|
898 | + // Unzip package to working directory. |
|
899 | + $result = unzip_file( $package, $fonts_tmp_dir ); |
|
900 | + |
|
901 | + if ( is_wp_error( $result ) ) { |
|
902 | + $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
903 | + |
|
904 | + if ( 'incompatible_archive' === $result->get_error_code() ) { |
|
905 | + return new WP_Error( 'fontawesome_incompatible_archive', __( $result->get_error_message(), 'font-awesome-settings' ) ); |
|
906 | + } |
|
907 | + |
|
908 | + return $result; |
|
909 | + } |
|
910 | + |
|
911 | + if ( $wp_filesystem->is_dir( $fonts_dir ) ) { |
|
912 | + $wp_filesystem->delete( $fonts_dir, true ); |
|
913 | + } |
|
914 | + |
|
915 | + $extract_dir = $fonts_tmp_dir; |
|
916 | + |
|
917 | + if ( $dirname && $wp_filesystem->is_dir( $extract_dir . $dirname . DIRECTORY_SEPARATOR ) ) { |
|
918 | + $extract_dir .= $dirname . DIRECTORY_SEPARATOR; |
|
919 | + } |
|
920 | + |
|
921 | + try { |
|
922 | + $return = $wp_filesystem->move( $extract_dir, $fonts_dir, true ); |
|
923 | + } catch ( Exception $e ) { |
|
924 | + $return = new WP_Error( 'fontawesome_move_package', __( 'Fail to move font awesome package!', 'font-awesome-settings' ) ); |
|
925 | + } |
|
926 | + |
|
927 | + if ( $wp_filesystem->is_dir( $fonts_tmp_dir ) ) { |
|
928 | + $wp_filesystem->delete( $fonts_tmp_dir, true ); |
|
929 | + } |
|
930 | + |
|
931 | + // Once extracted, delete the package if required. |
|
932 | + if ( $delete_package ) { |
|
933 | + unlink( $package ); |
|
934 | + } |
|
935 | + |
|
936 | + return $return; |
|
937 | + } |
|
938 | + } |
|
939 | + |
|
940 | + /** |
|
941 | + * Run the class if found. |
|
942 | + */ |
|
943 | + WP_Font_Awesome_Settings::instance(); |
|
944 | 944 | } |
@@ -16,512 +16,512 @@ |
||
16 | 16 | */ |
17 | 17 | class GetPaid_Subscriptions_Query { |
18 | 18 | |
19 | - /** |
|
20 | - * Query vars, after parsing |
|
21 | - * |
|
22 | - * @since 1.0.19 |
|
23 | - * @var array |
|
24 | - */ |
|
25 | - public $query_vars = array(); |
|
26 | - |
|
27 | - /** |
|
28 | - * List of found subscriptions. |
|
29 | - * |
|
30 | - * @since 1.0.19 |
|
31 | - * @var array |
|
32 | - */ |
|
33 | - private $results; |
|
34 | - |
|
35 | - /** |
|
36 | - * Total number of found subscriptions for the current query |
|
37 | - * |
|
38 | - * @since 1.0.19 |
|
39 | - * @var int |
|
40 | - */ |
|
41 | - private $total_subscriptions = 0; |
|
42 | - |
|
43 | - /** |
|
44 | - * The SQL query used to fetch matching subscriptions. |
|
45 | - * |
|
46 | - * @since 1.0.19 |
|
47 | - * @var string |
|
48 | - */ |
|
49 | - public $request; |
|
50 | - |
|
51 | - // SQL clauses |
|
52 | - |
|
53 | - /** |
|
54 | - * Contains the 'FIELDS' sql clause |
|
55 | - * |
|
56 | - * @since 1.0.19 |
|
57 | - * @var string |
|
58 | - */ |
|
59 | - public $query_fields; |
|
60 | - |
|
61 | - /** |
|
62 | - * Contains the 'FROM' sql clause |
|
63 | - * |
|
64 | - * @since 1.0.19 |
|
65 | - * @var string |
|
66 | - */ |
|
67 | - public $query_from; |
|
68 | - |
|
69 | - /** |
|
70 | - * Contains the 'WHERE' sql clause |
|
71 | - * |
|
72 | - * @since 1.0.19 |
|
73 | - * @var string |
|
74 | - */ |
|
75 | - public $query_where; |
|
76 | - |
|
77 | - /** |
|
78 | - * Contains the 'ORDER BY' sql clause |
|
79 | - * |
|
80 | - * @since 1.0.19 |
|
81 | - * @var string |
|
82 | - */ |
|
83 | - public $query_orderby; |
|
84 | - |
|
85 | - /** |
|
86 | - * Contains the 'LIMIT' sql clause |
|
87 | - * |
|
88 | - * @since 1.0.19 |
|
89 | - * @var string |
|
90 | - */ |
|
91 | - public $query_limit; |
|
92 | - |
|
93 | - /** |
|
94 | - * Class constructor. |
|
95 | - * |
|
96 | - * @since 1.0.19 |
|
97 | - * |
|
98 | - * @param null|string|array $query Optional. The query variables. |
|
99 | - */ |
|
100 | - public function __construct( $query = null ) { |
|
101 | - if ( ! is_null( $query ) ) { |
|
102 | - $this->prepare_query( $query ); |
|
103 | - $this->query(); |
|
104 | - } |
|
105 | - } |
|
106 | - |
|
107 | - /** |
|
108 | - * Fills in missing query variables with default values. |
|
109 | - * |
|
110 | - * @since 1.0.19 |
|
111 | - * |
|
112 | - * @param string|array $args Query vars, as passed to `GetPaid_Subscriptions_Query`. |
|
113 | - * @return array Complete query variables with undefined ones filled in with defaults. |
|
114 | - */ |
|
115 | - public static function fill_query_vars( $args ) { |
|
116 | - $defaults = array( |
|
117 | - 'status' => 'all', |
|
118 | - 'customer_in' => array(), |
|
119 | - 'customer_not_in' => array(), |
|
120 | - 'product_in' => array(), |
|
121 | - 'product_not_in' => array(), |
|
122 | - 'include' => array(), |
|
123 | - 'exclude' => array(), |
|
124 | - 'orderby' => 'id', |
|
125 | - 'order' => 'DESC', |
|
126 | - 'offset' => '', |
|
127 | - 'number' => 10, |
|
128 | - 'paged' => 1, |
|
129 | - 'count_total' => true, |
|
130 | - 'fields' => 'all', |
|
131 | - ); |
|
132 | - |
|
133 | - return wp_parse_args( $args, $defaults ); |
|
134 | - } |
|
135 | - |
|
136 | - /** |
|
137 | - * Prepare the query variables. |
|
138 | - * |
|
139 | - * @since 1.0.19 |
|
140 | - * |
|
141 | - * @global wpdb $wpdb WordPress database abstraction object. |
|
142 | - * |
|
143 | - * @param string|array $query { |
|
144 | - * Optional. Array or string of Query parameters. |
|
145 | - * |
|
146 | - * @type string|array $status The subscription status to filter by. Can either be a single status or an array of statuses. |
|
147 | - * Default is all. |
|
148 | - * @type int[] $customer_in An array of customer ids to filter by. |
|
149 | - * @type int[] $customer_not_in An array of customer ids whose subscriptions should be excluded. |
|
150 | - * @type int[] $invoice_in An array of invoice ids to filter by. |
|
151 | - * @type int[] $invoice_not_in An array of invoice ids whose subscriptions should be excluded. |
|
152 | - * @type int[] $product_in An array of product ids to filter by. |
|
153 | - * @type int[] $product_not_in An array of product ids whose subscriptions should be excluded. |
|
154 | - * @type array $date_created_query A WP_Date_Query compatible array use to filter subscriptions by their date of creation. |
|
155 | - * @type array $date_expires_query A WP_Date_Query compatible array use to filter subscriptions by their expiration date. |
|
156 | - * @type array $include An array of subscription IDs to include. Default empty array. |
|
157 | - * @type array $exclude An array of subscription IDs to exclude. Default empty array. |
|
158 | - * @type string|array $orderby Field(s) to sort the retrieved subscription by. May be a single value, |
|
159 | - * an array of values, or a multi-dimensional array with fields as |
|
160 | - * keys and orders ('ASC' or 'DESC') as values. Accepted values are |
|
161 | - * 'id', 'customer_id', 'frequency', 'period', 'initial_amount, |
|
162 | - * 'recurring_amount', 'bill_times', 'parent_payment_id', 'created', 'expiration' |
|
163 | - * 'transaction_id', 'product_id', 'trial_period', 'include', 'status', 'profile_id'. Default array( 'id' ). |
|
164 | - * @type string $order Designates ascending or descending order of subscriptions. Order values |
|
165 | - * passed as part of an `$orderby` array take precedence over this |
|
166 | - * parameter. Accepts 'ASC', 'DESC'. Default 'DESC'. |
|
167 | - * @type int $offset Number of subscriptions to offset in retrieved results. Can be used in |
|
168 | - * conjunction with pagination. Default 0. |
|
169 | - * @type int $number Number of subscriptions to limit the query for. Can be used in |
|
170 | - * conjunction with pagination. Value -1 (all) is supported, but |
|
171 | - * should be used with caution on larger sites. |
|
172 | - * Default 10. |
|
173 | - * @type int $paged When used with number, defines the page of results to return. |
|
174 | - * Default 1. |
|
175 | - * @type bool $count_total Whether to count the total number of subscriptions found. If pagination |
|
176 | - * is not needed, setting this to false can improve performance. |
|
177 | - * Default true. |
|
178 | - * @type string|array $fields Which fields to return. Single or all fields (string), or array |
|
179 | - * of fields. Accepts 'id', 'customer_id', 'frequency', 'period', 'initial_amount, |
|
180 | - * 'recurring_amount', 'bill_times', 'parent_payment_id', 'created', 'expiration' |
|
181 | - * 'transaction_id', 'product_id', 'trial_period', 'status', 'profile_id'. |
|
182 | - * Use 'all' for all fields. Default 'all'. |
|
183 | - * } |
|
184 | - */ |
|
185 | - public function prepare_query( $query = array() ) { |
|
186 | - global $wpdb; |
|
187 | - |
|
188 | - if ( empty( $this->query_vars ) || ! empty( $query ) ) { |
|
189 | - $this->query_limit = null; |
|
190 | - $this->query_vars = $this->fill_query_vars( $query ); |
|
191 | - } |
|
192 | - |
|
193 | - if ( ! empty( $this->query_vars['fields'] ) && 'all' !== $this->query_vars['fields'] ) { |
|
194 | - $this->query_vars['fields'] = wpinv_parse_list( $this->query_vars['fields'] ); |
|
195 | - } |
|
196 | - |
|
197 | - do_action( 'getpaid_pre_get_subscriptions', array( &$this ) ); |
|
198 | - |
|
199 | - // Ensure that query vars are filled after 'getpaid_pre_get_subscriptions'. |
|
200 | - $qv =& $this->query_vars; |
|
201 | - $qv = $this->fill_query_vars( $qv ); |
|
202 | - $table = $wpdb->prefix . 'wpinv_subscriptions'; |
|
203 | - $this->query_from = "FROM $table"; |
|
204 | - |
|
205 | - // Prepare query fields. |
|
206 | - $this->prepare_query_fields( $qv, $table ); |
|
207 | - |
|
208 | - // Prepare query where. |
|
209 | - $this->prepare_query_where( $qv, $table ); |
|
210 | - |
|
211 | - // Prepare query order. |
|
212 | - $this->prepare_query_order( $qv, $table ); |
|
213 | - |
|
214 | - // limit |
|
215 | - if ( isset( $qv['number'] ) && $qv['number'] > 0 ) { |
|
216 | - if ( $qv['offset'] ) { |
|
217 | - $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['offset'], $qv['number'] ); |
|
218 | - } else { |
|
219 | - $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['number'] * ( $qv['paged'] - 1 ), $qv['number'] ); |
|
220 | - } |
|
221 | - } |
|
222 | - |
|
223 | - do_action_ref_array( 'getpaid_after_subscriptions_query', array( &$this ) ); |
|
224 | - } |
|
225 | - |
|
226 | - /** |
|
227 | - * Prepares the query fields. |
|
228 | - * |
|
229 | - * @since 1.0.19 |
|
230 | - * |
|
231 | - * @param array $qv Query vars. |
|
232 | - * @param string $table Table name. |
|
233 | - */ |
|
234 | - protected function prepare_query_fields( &$qv, $table ) { |
|
235 | - |
|
236 | - if ( is_array( $qv['fields'] ) ) { |
|
237 | - $qv['fields'] = array_unique( $qv['fields'] ); |
|
238 | - |
|
239 | - $query_fields = array(); |
|
240 | - foreach ( $qv['fields'] as $field ) { |
|
241 | - $field = sanitize_key( $field ); |
|
242 | - $query_fields[] = "$table.`$field`"; |
|
243 | - } |
|
244 | - $this->query_fields = implode( ',', $query_fields ); |
|
245 | - } else { |
|
246 | - $this->query_fields = "$table.*"; |
|
247 | - } |
|
248 | - |
|
249 | - if ( isset( $qv['count_total'] ) && $qv['count_total'] ) { |
|
250 | - $this->query_fields = 'SQL_CALC_FOUND_ROWS ' . $this->query_fields; |
|
251 | - } |
|
252 | - |
|
253 | - } |
|
254 | - |
|
255 | - /** |
|
256 | - * Prepares the query where. |
|
257 | - * |
|
258 | - * @since 1.0.19 |
|
259 | - * |
|
260 | - * @param array $qv Query vars. |
|
261 | - * @param string $table Table name. |
|
262 | - */ |
|
263 | - protected function prepare_query_where( &$qv, $table ) { |
|
264 | - global $wpdb; |
|
265 | - $this->query_where = 'WHERE 1=1'; |
|
266 | - |
|
267 | - // Status. |
|
268 | - if ( 'all' !== $qv['status'] ) { |
|
269 | - $statuses = wpinv_clean( wpinv_parse_list( $qv['status'] ) ); |
|
270 | - $prepared_statuses = join( ',', array_fill( 0, count( $statuses ), '%s' ) ); |
|
271 | - $this->query_where .= $wpdb->prepare( " AND $table.`status` IN ( $prepared_statuses )", $statuses ); |
|
272 | - } |
|
273 | - |
|
274 | - if ( ! empty( $qv['customer_in'] ) ) { |
|
275 | - $customer_in = implode( ',', wp_parse_id_list( $qv['customer_in'] ) ); |
|
276 | - $this->query_where .= " AND $table.`customer_id` IN ($customer_in)"; |
|
277 | - } elseif ( ! empty( $qv['customer_not_in'] ) ) { |
|
278 | - $customer_not_in = implode( ',', wp_parse_id_list( $qv['customer_not_in'] ) ); |
|
279 | - $this->query_where .= " AND $table.`customer_id` NOT IN ($customer_not_in)"; |
|
280 | - } |
|
281 | - |
|
282 | - if ( ! empty( $qv['product_in'] ) ) { |
|
283 | - $product_in = implode( ',', wp_parse_id_list( $qv['product_in'] ) ); |
|
284 | - $this->query_where .= " AND $table.`product_id` IN ($product_in)"; |
|
285 | - } elseif ( ! empty( $qv['product_not_in'] ) ) { |
|
286 | - $product_not_in = implode( ',', wp_parse_id_list( $qv['product_not_in'] ) ); |
|
287 | - $this->query_where .= " AND $table.`product_id` NOT IN ($product_not_in)"; |
|
288 | - } |
|
289 | - |
|
290 | - if ( ! empty( $qv['invoice_in'] ) ) { |
|
291 | - $invoice_in = implode( ',', wp_parse_id_list( $qv['invoice_in'] ) ); |
|
292 | - $this->query_where .= " AND $table.`parent_payment_id` IN ($invoice_in)"; |
|
293 | - } elseif ( ! empty( $qv['invoice_not_in'] ) ) { |
|
294 | - $invoice_not_in = implode( ',', wp_parse_id_list( $qv['invoice_not_in'] ) ); |
|
295 | - $this->query_where .= " AND $table.`parent_payment_id` NOT IN ($invoice_not_in)"; |
|
296 | - } |
|
297 | - |
|
298 | - if ( ! empty( $qv['include'] ) ) { |
|
299 | - $include = implode( ',', wp_parse_id_list( $qv['include'] ) ); |
|
300 | - $this->query_where .= " AND $table.`id` IN ($include)"; |
|
301 | - } elseif ( ! empty( $qv['exclude'] ) ) { |
|
302 | - $exclude = implode( ',', wp_parse_id_list( $qv['exclude'] ) ); |
|
303 | - $this->query_where .= " AND $table.`id` NOT IN ($exclude)"; |
|
304 | - } |
|
305 | - |
|
306 | - // Date queries are allowed for the subscription creation date. |
|
307 | - if ( ! empty( $qv['date_created_query'] ) && is_array( $qv['date_created_query'] ) ) { |
|
308 | - $date_created_query = new WP_Date_Query( $qv['date_created_query'], "$table.created" ); |
|
309 | - $this->query_where .= $date_created_query->get_sql(); |
|
310 | - } |
|
311 | - |
|
312 | - // Date queries are also allowed for the subscription expiration date. |
|
313 | - if ( ! empty( $qv['date_expires_query'] ) && is_array( $qv['date_expires_query'] ) ) { |
|
314 | - $date_expires_query = new WP_Date_Query( $qv['date_expires_query'], "$table.expiration" ); |
|
315 | - $this->query_where .= $date_expires_query->get_sql(); |
|
316 | - } |
|
317 | - |
|
318 | - } |
|
319 | - |
|
320 | - /** |
|
321 | - * Prepares the query order. |
|
322 | - * |
|
323 | - * @since 1.0.19 |
|
324 | - * |
|
325 | - * @param array $qv Query vars. |
|
326 | - * @param string $table Table name. |
|
327 | - */ |
|
328 | - protected function prepare_query_order( &$qv, $table ) { |
|
329 | - |
|
330 | - // sorting. |
|
331 | - $qv['order'] = isset( $qv['order'] ) ? strtoupper( $qv['order'] ) : ''; |
|
332 | - $order = $this->parse_order( $qv['order'] ); |
|
333 | - |
|
334 | - // Default order is by 'id' (latest subscriptions). |
|
335 | - if ( empty( $qv['orderby'] ) ) { |
|
336 | - $qv['orderby'] = array( 'id' ); |
|
337 | - } |
|
338 | - |
|
339 | - // 'orderby' values may be an array, comma- or space-separated list. |
|
340 | - $ordersby = array_filter( wpinv_parse_list( $qv['orderby'] ) ); |
|
341 | - |
|
342 | - $orderby_array = array(); |
|
343 | - foreach ( $ordersby as $_key => $_value ) { |
|
344 | - |
|
345 | - if ( is_int( $_key ) ) { |
|
346 | - // Integer key means this is a flat array of 'orderby' fields. |
|
347 | - $_orderby = $_value; |
|
348 | - $_order = $order; |
|
349 | - } else { |
|
350 | - // Non-integer key means that the key is the field and the value is ASC/DESC. |
|
351 | - $_orderby = $_key; |
|
352 | - $_order = $_value; |
|
353 | - } |
|
354 | - |
|
355 | - $parsed = $this->parse_orderby( $_orderby, $table ); |
|
356 | - |
|
357 | - if ( $parsed ) { |
|
358 | - $orderby_array[] = $parsed . ' ' . $this->parse_order( $_order ); |
|
359 | - } |
|
19 | + /** |
|
20 | + * Query vars, after parsing |
|
21 | + * |
|
22 | + * @since 1.0.19 |
|
23 | + * @var array |
|
24 | + */ |
|
25 | + public $query_vars = array(); |
|
26 | + |
|
27 | + /** |
|
28 | + * List of found subscriptions. |
|
29 | + * |
|
30 | + * @since 1.0.19 |
|
31 | + * @var array |
|
32 | + */ |
|
33 | + private $results; |
|
34 | + |
|
35 | + /** |
|
36 | + * Total number of found subscriptions for the current query |
|
37 | + * |
|
38 | + * @since 1.0.19 |
|
39 | + * @var int |
|
40 | + */ |
|
41 | + private $total_subscriptions = 0; |
|
42 | + |
|
43 | + /** |
|
44 | + * The SQL query used to fetch matching subscriptions. |
|
45 | + * |
|
46 | + * @since 1.0.19 |
|
47 | + * @var string |
|
48 | + */ |
|
49 | + public $request; |
|
50 | + |
|
51 | + // SQL clauses |
|
52 | + |
|
53 | + /** |
|
54 | + * Contains the 'FIELDS' sql clause |
|
55 | + * |
|
56 | + * @since 1.0.19 |
|
57 | + * @var string |
|
58 | + */ |
|
59 | + public $query_fields; |
|
60 | + |
|
61 | + /** |
|
62 | + * Contains the 'FROM' sql clause |
|
63 | + * |
|
64 | + * @since 1.0.19 |
|
65 | + * @var string |
|
66 | + */ |
|
67 | + public $query_from; |
|
68 | + |
|
69 | + /** |
|
70 | + * Contains the 'WHERE' sql clause |
|
71 | + * |
|
72 | + * @since 1.0.19 |
|
73 | + * @var string |
|
74 | + */ |
|
75 | + public $query_where; |
|
76 | + |
|
77 | + /** |
|
78 | + * Contains the 'ORDER BY' sql clause |
|
79 | + * |
|
80 | + * @since 1.0.19 |
|
81 | + * @var string |
|
82 | + */ |
|
83 | + public $query_orderby; |
|
84 | + |
|
85 | + /** |
|
86 | + * Contains the 'LIMIT' sql clause |
|
87 | + * |
|
88 | + * @since 1.0.19 |
|
89 | + * @var string |
|
90 | + */ |
|
91 | + public $query_limit; |
|
92 | + |
|
93 | + /** |
|
94 | + * Class constructor. |
|
95 | + * |
|
96 | + * @since 1.0.19 |
|
97 | + * |
|
98 | + * @param null|string|array $query Optional. The query variables. |
|
99 | + */ |
|
100 | + public function __construct( $query = null ) { |
|
101 | + if ( ! is_null( $query ) ) { |
|
102 | + $this->prepare_query( $query ); |
|
103 | + $this->query(); |
|
104 | + } |
|
105 | + } |
|
106 | + |
|
107 | + /** |
|
108 | + * Fills in missing query variables with default values. |
|
109 | + * |
|
110 | + * @since 1.0.19 |
|
111 | + * |
|
112 | + * @param string|array $args Query vars, as passed to `GetPaid_Subscriptions_Query`. |
|
113 | + * @return array Complete query variables with undefined ones filled in with defaults. |
|
114 | + */ |
|
115 | + public static function fill_query_vars( $args ) { |
|
116 | + $defaults = array( |
|
117 | + 'status' => 'all', |
|
118 | + 'customer_in' => array(), |
|
119 | + 'customer_not_in' => array(), |
|
120 | + 'product_in' => array(), |
|
121 | + 'product_not_in' => array(), |
|
122 | + 'include' => array(), |
|
123 | + 'exclude' => array(), |
|
124 | + 'orderby' => 'id', |
|
125 | + 'order' => 'DESC', |
|
126 | + 'offset' => '', |
|
127 | + 'number' => 10, |
|
128 | + 'paged' => 1, |
|
129 | + 'count_total' => true, |
|
130 | + 'fields' => 'all', |
|
131 | + ); |
|
132 | + |
|
133 | + return wp_parse_args( $args, $defaults ); |
|
134 | + } |
|
135 | + |
|
136 | + /** |
|
137 | + * Prepare the query variables. |
|
138 | + * |
|
139 | + * @since 1.0.19 |
|
140 | + * |
|
141 | + * @global wpdb $wpdb WordPress database abstraction object. |
|
142 | + * |
|
143 | + * @param string|array $query { |
|
144 | + * Optional. Array or string of Query parameters. |
|
145 | + * |
|
146 | + * @type string|array $status The subscription status to filter by. Can either be a single status or an array of statuses. |
|
147 | + * Default is all. |
|
148 | + * @type int[] $customer_in An array of customer ids to filter by. |
|
149 | + * @type int[] $customer_not_in An array of customer ids whose subscriptions should be excluded. |
|
150 | + * @type int[] $invoice_in An array of invoice ids to filter by. |
|
151 | + * @type int[] $invoice_not_in An array of invoice ids whose subscriptions should be excluded. |
|
152 | + * @type int[] $product_in An array of product ids to filter by. |
|
153 | + * @type int[] $product_not_in An array of product ids whose subscriptions should be excluded. |
|
154 | + * @type array $date_created_query A WP_Date_Query compatible array use to filter subscriptions by their date of creation. |
|
155 | + * @type array $date_expires_query A WP_Date_Query compatible array use to filter subscriptions by their expiration date. |
|
156 | + * @type array $include An array of subscription IDs to include. Default empty array. |
|
157 | + * @type array $exclude An array of subscription IDs to exclude. Default empty array. |
|
158 | + * @type string|array $orderby Field(s) to sort the retrieved subscription by. May be a single value, |
|
159 | + * an array of values, or a multi-dimensional array with fields as |
|
160 | + * keys and orders ('ASC' or 'DESC') as values. Accepted values are |
|
161 | + * 'id', 'customer_id', 'frequency', 'period', 'initial_amount, |
|
162 | + * 'recurring_amount', 'bill_times', 'parent_payment_id', 'created', 'expiration' |
|
163 | + * 'transaction_id', 'product_id', 'trial_period', 'include', 'status', 'profile_id'. Default array( 'id' ). |
|
164 | + * @type string $order Designates ascending or descending order of subscriptions. Order values |
|
165 | + * passed as part of an `$orderby` array take precedence over this |
|
166 | + * parameter. Accepts 'ASC', 'DESC'. Default 'DESC'. |
|
167 | + * @type int $offset Number of subscriptions to offset in retrieved results. Can be used in |
|
168 | + * conjunction with pagination. Default 0. |
|
169 | + * @type int $number Number of subscriptions to limit the query for. Can be used in |
|
170 | + * conjunction with pagination. Value -1 (all) is supported, but |
|
171 | + * should be used with caution on larger sites. |
|
172 | + * Default 10. |
|
173 | + * @type int $paged When used with number, defines the page of results to return. |
|
174 | + * Default 1. |
|
175 | + * @type bool $count_total Whether to count the total number of subscriptions found. If pagination |
|
176 | + * is not needed, setting this to false can improve performance. |
|
177 | + * Default true. |
|
178 | + * @type string|array $fields Which fields to return. Single or all fields (string), or array |
|
179 | + * of fields. Accepts 'id', 'customer_id', 'frequency', 'period', 'initial_amount, |
|
180 | + * 'recurring_amount', 'bill_times', 'parent_payment_id', 'created', 'expiration' |
|
181 | + * 'transaction_id', 'product_id', 'trial_period', 'status', 'profile_id'. |
|
182 | + * Use 'all' for all fields. Default 'all'. |
|
183 | + * } |
|
184 | + */ |
|
185 | + public function prepare_query( $query = array() ) { |
|
186 | + global $wpdb; |
|
187 | + |
|
188 | + if ( empty( $this->query_vars ) || ! empty( $query ) ) { |
|
189 | + $this->query_limit = null; |
|
190 | + $this->query_vars = $this->fill_query_vars( $query ); |
|
191 | + } |
|
192 | + |
|
193 | + if ( ! empty( $this->query_vars['fields'] ) && 'all' !== $this->query_vars['fields'] ) { |
|
194 | + $this->query_vars['fields'] = wpinv_parse_list( $this->query_vars['fields'] ); |
|
195 | + } |
|
196 | + |
|
197 | + do_action( 'getpaid_pre_get_subscriptions', array( &$this ) ); |
|
198 | + |
|
199 | + // Ensure that query vars are filled after 'getpaid_pre_get_subscriptions'. |
|
200 | + $qv =& $this->query_vars; |
|
201 | + $qv = $this->fill_query_vars( $qv ); |
|
202 | + $table = $wpdb->prefix . 'wpinv_subscriptions'; |
|
203 | + $this->query_from = "FROM $table"; |
|
204 | + |
|
205 | + // Prepare query fields. |
|
206 | + $this->prepare_query_fields( $qv, $table ); |
|
207 | + |
|
208 | + // Prepare query where. |
|
209 | + $this->prepare_query_where( $qv, $table ); |
|
210 | + |
|
211 | + // Prepare query order. |
|
212 | + $this->prepare_query_order( $qv, $table ); |
|
213 | + |
|
214 | + // limit |
|
215 | + if ( isset( $qv['number'] ) && $qv['number'] > 0 ) { |
|
216 | + if ( $qv['offset'] ) { |
|
217 | + $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['offset'], $qv['number'] ); |
|
218 | + } else { |
|
219 | + $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['number'] * ( $qv['paged'] - 1 ), $qv['number'] ); |
|
220 | + } |
|
221 | + } |
|
222 | + |
|
223 | + do_action_ref_array( 'getpaid_after_subscriptions_query', array( &$this ) ); |
|
224 | + } |
|
225 | + |
|
226 | + /** |
|
227 | + * Prepares the query fields. |
|
228 | + * |
|
229 | + * @since 1.0.19 |
|
230 | + * |
|
231 | + * @param array $qv Query vars. |
|
232 | + * @param string $table Table name. |
|
233 | + */ |
|
234 | + protected function prepare_query_fields( &$qv, $table ) { |
|
235 | + |
|
236 | + if ( is_array( $qv['fields'] ) ) { |
|
237 | + $qv['fields'] = array_unique( $qv['fields'] ); |
|
238 | + |
|
239 | + $query_fields = array(); |
|
240 | + foreach ( $qv['fields'] as $field ) { |
|
241 | + $field = sanitize_key( $field ); |
|
242 | + $query_fields[] = "$table.`$field`"; |
|
243 | + } |
|
244 | + $this->query_fields = implode( ',', $query_fields ); |
|
245 | + } else { |
|
246 | + $this->query_fields = "$table.*"; |
|
247 | + } |
|
248 | + |
|
249 | + if ( isset( $qv['count_total'] ) && $qv['count_total'] ) { |
|
250 | + $this->query_fields = 'SQL_CALC_FOUND_ROWS ' . $this->query_fields; |
|
251 | + } |
|
252 | + |
|
253 | + } |
|
254 | + |
|
255 | + /** |
|
256 | + * Prepares the query where. |
|
257 | + * |
|
258 | + * @since 1.0.19 |
|
259 | + * |
|
260 | + * @param array $qv Query vars. |
|
261 | + * @param string $table Table name. |
|
262 | + */ |
|
263 | + protected function prepare_query_where( &$qv, $table ) { |
|
264 | + global $wpdb; |
|
265 | + $this->query_where = 'WHERE 1=1'; |
|
266 | + |
|
267 | + // Status. |
|
268 | + if ( 'all' !== $qv['status'] ) { |
|
269 | + $statuses = wpinv_clean( wpinv_parse_list( $qv['status'] ) ); |
|
270 | + $prepared_statuses = join( ',', array_fill( 0, count( $statuses ), '%s' ) ); |
|
271 | + $this->query_where .= $wpdb->prepare( " AND $table.`status` IN ( $prepared_statuses )", $statuses ); |
|
272 | + } |
|
273 | + |
|
274 | + if ( ! empty( $qv['customer_in'] ) ) { |
|
275 | + $customer_in = implode( ',', wp_parse_id_list( $qv['customer_in'] ) ); |
|
276 | + $this->query_where .= " AND $table.`customer_id` IN ($customer_in)"; |
|
277 | + } elseif ( ! empty( $qv['customer_not_in'] ) ) { |
|
278 | + $customer_not_in = implode( ',', wp_parse_id_list( $qv['customer_not_in'] ) ); |
|
279 | + $this->query_where .= " AND $table.`customer_id` NOT IN ($customer_not_in)"; |
|
280 | + } |
|
281 | + |
|
282 | + if ( ! empty( $qv['product_in'] ) ) { |
|
283 | + $product_in = implode( ',', wp_parse_id_list( $qv['product_in'] ) ); |
|
284 | + $this->query_where .= " AND $table.`product_id` IN ($product_in)"; |
|
285 | + } elseif ( ! empty( $qv['product_not_in'] ) ) { |
|
286 | + $product_not_in = implode( ',', wp_parse_id_list( $qv['product_not_in'] ) ); |
|
287 | + $this->query_where .= " AND $table.`product_id` NOT IN ($product_not_in)"; |
|
288 | + } |
|
289 | + |
|
290 | + if ( ! empty( $qv['invoice_in'] ) ) { |
|
291 | + $invoice_in = implode( ',', wp_parse_id_list( $qv['invoice_in'] ) ); |
|
292 | + $this->query_where .= " AND $table.`parent_payment_id` IN ($invoice_in)"; |
|
293 | + } elseif ( ! empty( $qv['invoice_not_in'] ) ) { |
|
294 | + $invoice_not_in = implode( ',', wp_parse_id_list( $qv['invoice_not_in'] ) ); |
|
295 | + $this->query_where .= " AND $table.`parent_payment_id` NOT IN ($invoice_not_in)"; |
|
296 | + } |
|
297 | + |
|
298 | + if ( ! empty( $qv['include'] ) ) { |
|
299 | + $include = implode( ',', wp_parse_id_list( $qv['include'] ) ); |
|
300 | + $this->query_where .= " AND $table.`id` IN ($include)"; |
|
301 | + } elseif ( ! empty( $qv['exclude'] ) ) { |
|
302 | + $exclude = implode( ',', wp_parse_id_list( $qv['exclude'] ) ); |
|
303 | + $this->query_where .= " AND $table.`id` NOT IN ($exclude)"; |
|
304 | + } |
|
305 | + |
|
306 | + // Date queries are allowed for the subscription creation date. |
|
307 | + if ( ! empty( $qv['date_created_query'] ) && is_array( $qv['date_created_query'] ) ) { |
|
308 | + $date_created_query = new WP_Date_Query( $qv['date_created_query'], "$table.created" ); |
|
309 | + $this->query_where .= $date_created_query->get_sql(); |
|
310 | + } |
|
311 | + |
|
312 | + // Date queries are also allowed for the subscription expiration date. |
|
313 | + if ( ! empty( $qv['date_expires_query'] ) && is_array( $qv['date_expires_query'] ) ) { |
|
314 | + $date_expires_query = new WP_Date_Query( $qv['date_expires_query'], "$table.expiration" ); |
|
315 | + $this->query_where .= $date_expires_query->get_sql(); |
|
316 | + } |
|
317 | + |
|
318 | + } |
|
319 | + |
|
320 | + /** |
|
321 | + * Prepares the query order. |
|
322 | + * |
|
323 | + * @since 1.0.19 |
|
324 | + * |
|
325 | + * @param array $qv Query vars. |
|
326 | + * @param string $table Table name. |
|
327 | + */ |
|
328 | + protected function prepare_query_order( &$qv, $table ) { |
|
329 | + |
|
330 | + // sorting. |
|
331 | + $qv['order'] = isset( $qv['order'] ) ? strtoupper( $qv['order'] ) : ''; |
|
332 | + $order = $this->parse_order( $qv['order'] ); |
|
333 | + |
|
334 | + // Default order is by 'id' (latest subscriptions). |
|
335 | + if ( empty( $qv['orderby'] ) ) { |
|
336 | + $qv['orderby'] = array( 'id' ); |
|
337 | + } |
|
338 | + |
|
339 | + // 'orderby' values may be an array, comma- or space-separated list. |
|
340 | + $ordersby = array_filter( wpinv_parse_list( $qv['orderby'] ) ); |
|
341 | + |
|
342 | + $orderby_array = array(); |
|
343 | + foreach ( $ordersby as $_key => $_value ) { |
|
344 | + |
|
345 | + if ( is_int( $_key ) ) { |
|
346 | + // Integer key means this is a flat array of 'orderby' fields. |
|
347 | + $_orderby = $_value; |
|
348 | + $_order = $order; |
|
349 | + } else { |
|
350 | + // Non-integer key means that the key is the field and the value is ASC/DESC. |
|
351 | + $_orderby = $_key; |
|
352 | + $_order = $_value; |
|
353 | + } |
|
354 | + |
|
355 | + $parsed = $this->parse_orderby( $_orderby, $table ); |
|
356 | + |
|
357 | + if ( $parsed ) { |
|
358 | + $orderby_array[] = $parsed . ' ' . $this->parse_order( $_order ); |
|
359 | + } |
|
360 | 360 | } |
361 | 361 | |
362 | - // If no valid clauses were found, order by id. |
|
363 | - if ( empty( $orderby_array ) ) { |
|
364 | - $orderby_array[] = "id $order"; |
|
365 | - } |
|
366 | - |
|
367 | - $this->query_orderby = 'ORDER BY ' . implode( ', ', $orderby_array ); |
|
368 | - |
|
369 | - } |
|
370 | - |
|
371 | - /** |
|
372 | - * Execute the query, with the current variables. |
|
373 | - * |
|
374 | - * @since 1.0.19 |
|
375 | - * |
|
376 | - * @global wpdb $wpdb WordPress database abstraction object. |
|
377 | - */ |
|
378 | - public function query() { |
|
379 | - global $wpdb; |
|
380 | - |
|
381 | - $qv =& $this->query_vars; |
|
382 | - |
|
383 | - // Return a non-null value to bypass the default GetPaid subscriptions query and remember to set the |
|
384 | - // total_subscriptions property. |
|
385 | - $this->results = apply_filters_ref_array( 'getpaid_subscriptions_pre_query', array( null, &$this ) ); |
|
386 | - |
|
387 | - if ( null === $this->results ) { |
|
388 | - $this->request = "SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit"; |
|
389 | - |
|
390 | - if ( ( is_array( $qv['fields'] ) && 1 != count( $qv['fields'] ) ) || 'all' == $qv['fields'] ) { |
|
391 | - $this->results = $wpdb->get_results( $this->request ); |
|
392 | - } else { |
|
393 | - $this->results = $wpdb->get_col( $this->request ); |
|
394 | - } |
|
395 | - |
|
396 | - if ( isset( $qv['count_total'] ) && $qv['count_total'] ) { |
|
397 | - $found_subscriptions_query = apply_filters( 'getpaid_found_subscriptions_query', 'SELECT FOUND_ROWS()', $this ); |
|
398 | - $this->total_subscriptions = (int) $wpdb->get_var( $found_subscriptions_query ); |
|
399 | - } |
|
400 | - } |
|
401 | - |
|
402 | - if ( 'all' == $qv['fields'] ) { |
|
403 | - foreach ( $this->results as $key => $subscription ) { |
|
404 | - $this->set_cache( $subscription->id, $subscription, 'getpaid_subscriptions' ); |
|
405 | - $this->set_cache( $subscription->profile_id, $subscription->id, 'getpaid_subscription_profile_ids_to_subscription_ids' ); |
|
406 | - $this->set_cache( $subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
407 | - $this->set_cache( $subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
408 | - $this->results[ $key ] = new WPInv_Subscription( $subscription ); |
|
409 | - } |
|
410 | - } |
|
411 | - |
|
412 | - } |
|
413 | - |
|
414 | - /** |
|
415 | - * Set cache |
|
416 | - * |
|
417 | - * @param string $id |
|
418 | - * @param mixed $data |
|
419 | - * @param string $group |
|
420 | - * @param integer $expire |
|
421 | - * @return boolean |
|
422 | - */ |
|
423 | - public function set_cache( $key, $data, $group = '', $expire = 0 ) { |
|
424 | - |
|
425 | - if ( empty( $key ) ) { |
|
426 | - return false; |
|
427 | - } |
|
428 | - |
|
429 | - wp_cache_set( $key, $data, $group, $expire ); |
|
430 | - } |
|
431 | - |
|
432 | - /** |
|
433 | - * Retrieve query variable. |
|
434 | - * |
|
435 | - * @since 1.0.19 |
|
436 | - * |
|
437 | - * @param string $query_var Query variable key. |
|
438 | - * @return mixed |
|
439 | - */ |
|
440 | - public function get( $query_var ) { |
|
441 | - if ( isset( $this->query_vars[ $query_var ] ) ) { |
|
442 | - return $this->query_vars[ $query_var ]; |
|
443 | - } |
|
444 | - |
|
445 | - return null; |
|
446 | - } |
|
447 | - |
|
448 | - /** |
|
449 | - * Set query variable. |
|
450 | - * |
|
451 | - * @since 1.0.19 |
|
452 | - * |
|
453 | - * @param string $query_var Query variable key. |
|
454 | - * @param mixed $value Query variable value. |
|
455 | - */ |
|
456 | - public function set( $query_var, $value ) { |
|
457 | - $this->query_vars[ $query_var ] = $value; |
|
458 | - } |
|
459 | - |
|
460 | - /** |
|
461 | - * Return the list of subscriptions. |
|
462 | - * |
|
463 | - * @since 1.0.19 |
|
464 | - * |
|
465 | - * @return WPInv_Subscription[]|array Found subscriptions. |
|
466 | - */ |
|
467 | - public function get_results() { |
|
468 | - return $this->results; |
|
469 | - } |
|
470 | - |
|
471 | - /** |
|
472 | - * Return the total number of subscriptions for the current query. |
|
473 | - * |
|
474 | - * @since 1.0.19 |
|
475 | - * |
|
476 | - * @return int Number of total subscriptions. |
|
477 | - */ |
|
478 | - public function get_total() { |
|
479 | - return $this->total_subscriptions; |
|
480 | - } |
|
481 | - |
|
482 | - /** |
|
483 | - * Parse and sanitize 'orderby' keys passed to the subscriptions query. |
|
484 | - * |
|
485 | - * @since 1.0.19 |
|
486 | - * |
|
487 | - * @param string $orderby Alias for the field to order by. |
|
488 | - * @param string $table The current table. |
|
489 | - * @return string Value to use in the ORDER clause, if `$orderby` is valid. |
|
490 | - */ |
|
491 | - protected function parse_orderby( $orderby, $table ) { |
|
492 | - |
|
493 | - $_orderby = ''; |
|
494 | - if ( in_array( $orderby, array( 'customer_id', 'frequency', 'period', 'initial_amount', 'recurring_amount', 'bill_times', 'transaction_id', 'parent_payment_id', 'product_id', 'created', 'expiration', 'trial_period', 'status', 'profile_id' ) ) ) { |
|
495 | - $_orderby = "$table.`$orderby`"; |
|
496 | - } elseif ( 'id' === strtolower( $orderby ) ) { |
|
497 | - $_orderby = "$table.id"; |
|
498 | - } elseif ( 'include' === $orderby && ! empty( $this->query_vars['include'] ) ) { |
|
499 | - $include = wp_parse_id_list( $this->query_vars['include'] ); |
|
500 | - $include_sql = implode( ',', $include ); |
|
501 | - $_orderby = "FIELD( $table.id, $include_sql )"; |
|
502 | - } |
|
503 | - |
|
504 | - return $_orderby; |
|
505 | - } |
|
506 | - |
|
507 | - /** |
|
508 | - * Parse an 'order' query variable and cast it to ASC or DESC as necessary. |
|
509 | - * |
|
510 | - * @since 1.0.19 |
|
511 | - * |
|
512 | - * @param string $order The 'order' query variable. |
|
513 | - * @return string The sanitized 'order' query variable. |
|
514 | - */ |
|
515 | - protected function parse_order( $order ) { |
|
516 | - if ( ! is_string( $order ) || empty( $order ) ) { |
|
517 | - return 'DESC'; |
|
518 | - } |
|
519 | - |
|
520 | - if ( 'ASC' === strtoupper( $order ) ) { |
|
521 | - return 'ASC'; |
|
522 | - } else { |
|
523 | - return 'DESC'; |
|
524 | - } |
|
525 | - } |
|
362 | + // If no valid clauses were found, order by id. |
|
363 | + if ( empty( $orderby_array ) ) { |
|
364 | + $orderby_array[] = "id $order"; |
|
365 | + } |
|
366 | + |
|
367 | + $this->query_orderby = 'ORDER BY ' . implode( ', ', $orderby_array ); |
|
368 | + |
|
369 | + } |
|
370 | + |
|
371 | + /** |
|
372 | + * Execute the query, with the current variables. |
|
373 | + * |
|
374 | + * @since 1.0.19 |
|
375 | + * |
|
376 | + * @global wpdb $wpdb WordPress database abstraction object. |
|
377 | + */ |
|
378 | + public function query() { |
|
379 | + global $wpdb; |
|
380 | + |
|
381 | + $qv =& $this->query_vars; |
|
382 | + |
|
383 | + // Return a non-null value to bypass the default GetPaid subscriptions query and remember to set the |
|
384 | + // total_subscriptions property. |
|
385 | + $this->results = apply_filters_ref_array( 'getpaid_subscriptions_pre_query', array( null, &$this ) ); |
|
386 | + |
|
387 | + if ( null === $this->results ) { |
|
388 | + $this->request = "SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit"; |
|
389 | + |
|
390 | + if ( ( is_array( $qv['fields'] ) && 1 != count( $qv['fields'] ) ) || 'all' == $qv['fields'] ) { |
|
391 | + $this->results = $wpdb->get_results( $this->request ); |
|
392 | + } else { |
|
393 | + $this->results = $wpdb->get_col( $this->request ); |
|
394 | + } |
|
395 | + |
|
396 | + if ( isset( $qv['count_total'] ) && $qv['count_total'] ) { |
|
397 | + $found_subscriptions_query = apply_filters( 'getpaid_found_subscriptions_query', 'SELECT FOUND_ROWS()', $this ); |
|
398 | + $this->total_subscriptions = (int) $wpdb->get_var( $found_subscriptions_query ); |
|
399 | + } |
|
400 | + } |
|
401 | + |
|
402 | + if ( 'all' == $qv['fields'] ) { |
|
403 | + foreach ( $this->results as $key => $subscription ) { |
|
404 | + $this->set_cache( $subscription->id, $subscription, 'getpaid_subscriptions' ); |
|
405 | + $this->set_cache( $subscription->profile_id, $subscription->id, 'getpaid_subscription_profile_ids_to_subscription_ids' ); |
|
406 | + $this->set_cache( $subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
407 | + $this->set_cache( $subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
408 | + $this->results[ $key ] = new WPInv_Subscription( $subscription ); |
|
409 | + } |
|
410 | + } |
|
411 | + |
|
412 | + } |
|
413 | + |
|
414 | + /** |
|
415 | + * Set cache |
|
416 | + * |
|
417 | + * @param string $id |
|
418 | + * @param mixed $data |
|
419 | + * @param string $group |
|
420 | + * @param integer $expire |
|
421 | + * @return boolean |
|
422 | + */ |
|
423 | + public function set_cache( $key, $data, $group = '', $expire = 0 ) { |
|
424 | + |
|
425 | + if ( empty( $key ) ) { |
|
426 | + return false; |
|
427 | + } |
|
428 | + |
|
429 | + wp_cache_set( $key, $data, $group, $expire ); |
|
430 | + } |
|
431 | + |
|
432 | + /** |
|
433 | + * Retrieve query variable. |
|
434 | + * |
|
435 | + * @since 1.0.19 |
|
436 | + * |
|
437 | + * @param string $query_var Query variable key. |
|
438 | + * @return mixed |
|
439 | + */ |
|
440 | + public function get( $query_var ) { |
|
441 | + if ( isset( $this->query_vars[ $query_var ] ) ) { |
|
442 | + return $this->query_vars[ $query_var ]; |
|
443 | + } |
|
444 | + |
|
445 | + return null; |
|
446 | + } |
|
447 | + |
|
448 | + /** |
|
449 | + * Set query variable. |
|
450 | + * |
|
451 | + * @since 1.0.19 |
|
452 | + * |
|
453 | + * @param string $query_var Query variable key. |
|
454 | + * @param mixed $value Query variable value. |
|
455 | + */ |
|
456 | + public function set( $query_var, $value ) { |
|
457 | + $this->query_vars[ $query_var ] = $value; |
|
458 | + } |
|
459 | + |
|
460 | + /** |
|
461 | + * Return the list of subscriptions. |
|
462 | + * |
|
463 | + * @since 1.0.19 |
|
464 | + * |
|
465 | + * @return WPInv_Subscription[]|array Found subscriptions. |
|
466 | + */ |
|
467 | + public function get_results() { |
|
468 | + return $this->results; |
|
469 | + } |
|
470 | + |
|
471 | + /** |
|
472 | + * Return the total number of subscriptions for the current query. |
|
473 | + * |
|
474 | + * @since 1.0.19 |
|
475 | + * |
|
476 | + * @return int Number of total subscriptions. |
|
477 | + */ |
|
478 | + public function get_total() { |
|
479 | + return $this->total_subscriptions; |
|
480 | + } |
|
481 | + |
|
482 | + /** |
|
483 | + * Parse and sanitize 'orderby' keys passed to the subscriptions query. |
|
484 | + * |
|
485 | + * @since 1.0.19 |
|
486 | + * |
|
487 | + * @param string $orderby Alias for the field to order by. |
|
488 | + * @param string $table The current table. |
|
489 | + * @return string Value to use in the ORDER clause, if `$orderby` is valid. |
|
490 | + */ |
|
491 | + protected function parse_orderby( $orderby, $table ) { |
|
492 | + |
|
493 | + $_orderby = ''; |
|
494 | + if ( in_array( $orderby, array( 'customer_id', 'frequency', 'period', 'initial_amount', 'recurring_amount', 'bill_times', 'transaction_id', 'parent_payment_id', 'product_id', 'created', 'expiration', 'trial_period', 'status', 'profile_id' ) ) ) { |
|
495 | + $_orderby = "$table.`$orderby`"; |
|
496 | + } elseif ( 'id' === strtolower( $orderby ) ) { |
|
497 | + $_orderby = "$table.id"; |
|
498 | + } elseif ( 'include' === $orderby && ! empty( $this->query_vars['include'] ) ) { |
|
499 | + $include = wp_parse_id_list( $this->query_vars['include'] ); |
|
500 | + $include_sql = implode( ',', $include ); |
|
501 | + $_orderby = "FIELD( $table.id, $include_sql )"; |
|
502 | + } |
|
503 | + |
|
504 | + return $_orderby; |
|
505 | + } |
|
506 | + |
|
507 | + /** |
|
508 | + * Parse an 'order' query variable and cast it to ASC or DESC as necessary. |
|
509 | + * |
|
510 | + * @since 1.0.19 |
|
511 | + * |
|
512 | + * @param string $order The 'order' query variable. |
|
513 | + * @return string The sanitized 'order' query variable. |
|
514 | + */ |
|
515 | + protected function parse_order( $order ) { |
|
516 | + if ( ! is_string( $order ) || empty( $order ) ) { |
|
517 | + return 'DESC'; |
|
518 | + } |
|
519 | + |
|
520 | + if ( 'ASC' === strtoupper( $order ) ) { |
|
521 | + return 'ASC'; |
|
522 | + } else { |
|
523 | + return 'DESC'; |
|
524 | + } |
|
525 | + } |
|
526 | 526 | |
527 | 527 | } |
@@ -97,9 +97,9 @@ discard block |
||
97 | 97 | * |
98 | 98 | * @param null|string|array $query Optional. The query variables. |
99 | 99 | */ |
100 | - public function __construct( $query = null ) { |
|
101 | - if ( ! is_null( $query ) ) { |
|
102 | - $this->prepare_query( $query ); |
|
100 | + public function __construct($query = null) { |
|
101 | + if (!is_null($query)) { |
|
102 | + $this->prepare_query($query); |
|
103 | 103 | $this->query(); |
104 | 104 | } |
105 | 105 | } |
@@ -112,7 +112,7 @@ discard block |
||
112 | 112 | * @param string|array $args Query vars, as passed to `GetPaid_Subscriptions_Query`. |
113 | 113 | * @return array Complete query variables with undefined ones filled in with defaults. |
114 | 114 | */ |
115 | - public static function fill_query_vars( $args ) { |
|
115 | + public static function fill_query_vars($args) { |
|
116 | 116 | $defaults = array( |
117 | 117 | 'status' => 'all', |
118 | 118 | 'customer_in' => array(), |
@@ -130,7 +130,7 @@ discard block |
||
130 | 130 | 'fields' => 'all', |
131 | 131 | ); |
132 | 132 | |
133 | - return wp_parse_args( $args, $defaults ); |
|
133 | + return wp_parse_args($args, $defaults); |
|
134 | 134 | } |
135 | 135 | |
136 | 136 | /** |
@@ -182,45 +182,45 @@ discard block |
||
182 | 182 | * Use 'all' for all fields. Default 'all'. |
183 | 183 | * } |
184 | 184 | */ |
185 | - public function prepare_query( $query = array() ) { |
|
185 | + public function prepare_query($query = array()) { |
|
186 | 186 | global $wpdb; |
187 | 187 | |
188 | - if ( empty( $this->query_vars ) || ! empty( $query ) ) { |
|
188 | + if (empty($this->query_vars) || !empty($query)) { |
|
189 | 189 | $this->query_limit = null; |
190 | - $this->query_vars = $this->fill_query_vars( $query ); |
|
190 | + $this->query_vars = $this->fill_query_vars($query); |
|
191 | 191 | } |
192 | 192 | |
193 | - if ( ! empty( $this->query_vars['fields'] ) && 'all' !== $this->query_vars['fields'] ) { |
|
194 | - $this->query_vars['fields'] = wpinv_parse_list( $this->query_vars['fields'] ); |
|
193 | + if (!empty($this->query_vars['fields']) && 'all' !== $this->query_vars['fields']) { |
|
194 | + $this->query_vars['fields'] = wpinv_parse_list($this->query_vars['fields']); |
|
195 | 195 | } |
196 | 196 | |
197 | - do_action( 'getpaid_pre_get_subscriptions', array( &$this ) ); |
|
197 | + do_action('getpaid_pre_get_subscriptions', array(&$this)); |
|
198 | 198 | |
199 | 199 | // Ensure that query vars are filled after 'getpaid_pre_get_subscriptions'. |
200 | - $qv =& $this->query_vars; |
|
201 | - $qv = $this->fill_query_vars( $qv ); |
|
200 | + $qv = & $this->query_vars; |
|
201 | + $qv = $this->fill_query_vars($qv); |
|
202 | 202 | $table = $wpdb->prefix . 'wpinv_subscriptions'; |
203 | 203 | $this->query_from = "FROM $table"; |
204 | 204 | |
205 | 205 | // Prepare query fields. |
206 | - $this->prepare_query_fields( $qv, $table ); |
|
206 | + $this->prepare_query_fields($qv, $table); |
|
207 | 207 | |
208 | 208 | // Prepare query where. |
209 | - $this->prepare_query_where( $qv, $table ); |
|
209 | + $this->prepare_query_where($qv, $table); |
|
210 | 210 | |
211 | 211 | // Prepare query order. |
212 | - $this->prepare_query_order( $qv, $table ); |
|
212 | + $this->prepare_query_order($qv, $table); |
|
213 | 213 | |
214 | 214 | // limit |
215 | - if ( isset( $qv['number'] ) && $qv['number'] > 0 ) { |
|
216 | - if ( $qv['offset'] ) { |
|
217 | - $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['offset'], $qv['number'] ); |
|
215 | + if (isset($qv['number']) && $qv['number'] > 0) { |
|
216 | + if ($qv['offset']) { |
|
217 | + $this->query_limit = $wpdb->prepare('LIMIT %d, %d', $qv['offset'], $qv['number']); |
|
218 | 218 | } else { |
219 | - $this->query_limit = $wpdb->prepare( 'LIMIT %d, %d', $qv['number'] * ( $qv['paged'] - 1 ), $qv['number'] ); |
|
219 | + $this->query_limit = $wpdb->prepare('LIMIT %d, %d', $qv['number'] * ($qv['paged'] - 1), $qv['number']); |
|
220 | 220 | } |
221 | 221 | } |
222 | 222 | |
223 | - do_action_ref_array( 'getpaid_after_subscriptions_query', array( &$this ) ); |
|
223 | + do_action_ref_array('getpaid_after_subscriptions_query', array(&$this)); |
|
224 | 224 | } |
225 | 225 | |
226 | 226 | /** |
@@ -231,22 +231,22 @@ discard block |
||
231 | 231 | * @param array $qv Query vars. |
232 | 232 | * @param string $table Table name. |
233 | 233 | */ |
234 | - protected function prepare_query_fields( &$qv, $table ) { |
|
234 | + protected function prepare_query_fields(&$qv, $table) { |
|
235 | 235 | |
236 | - if ( is_array( $qv['fields'] ) ) { |
|
237 | - $qv['fields'] = array_unique( $qv['fields'] ); |
|
236 | + if (is_array($qv['fields'])) { |
|
237 | + $qv['fields'] = array_unique($qv['fields']); |
|
238 | 238 | |
239 | 239 | $query_fields = array(); |
240 | - foreach ( $qv['fields'] as $field ) { |
|
241 | - $field = sanitize_key( $field ); |
|
240 | + foreach ($qv['fields'] as $field) { |
|
241 | + $field = sanitize_key($field); |
|
242 | 242 | $query_fields[] = "$table.`$field`"; |
243 | 243 | } |
244 | - $this->query_fields = implode( ',', $query_fields ); |
|
244 | + $this->query_fields = implode(',', $query_fields); |
|
245 | 245 | } else { |
246 | 246 | $this->query_fields = "$table.*"; |
247 | 247 | } |
248 | 248 | |
249 | - if ( isset( $qv['count_total'] ) && $qv['count_total'] ) { |
|
249 | + if (isset($qv['count_total']) && $qv['count_total']) { |
|
250 | 250 | $this->query_fields = 'SQL_CALC_FOUND_ROWS ' . $this->query_fields; |
251 | 251 | } |
252 | 252 | |
@@ -260,58 +260,58 @@ discard block |
||
260 | 260 | * @param array $qv Query vars. |
261 | 261 | * @param string $table Table name. |
262 | 262 | */ |
263 | - protected function prepare_query_where( &$qv, $table ) { |
|
263 | + protected function prepare_query_where(&$qv, $table) { |
|
264 | 264 | global $wpdb; |
265 | 265 | $this->query_where = 'WHERE 1=1'; |
266 | 266 | |
267 | 267 | // Status. |
268 | - if ( 'all' !== $qv['status'] ) { |
|
269 | - $statuses = wpinv_clean( wpinv_parse_list( $qv['status'] ) ); |
|
270 | - $prepared_statuses = join( ',', array_fill( 0, count( $statuses ), '%s' ) ); |
|
271 | - $this->query_where .= $wpdb->prepare( " AND $table.`status` IN ( $prepared_statuses )", $statuses ); |
|
268 | + if ('all' !== $qv['status']) { |
|
269 | + $statuses = wpinv_clean(wpinv_parse_list($qv['status'])); |
|
270 | + $prepared_statuses = join(',', array_fill(0, count($statuses), '%s')); |
|
271 | + $this->query_where .= $wpdb->prepare(" AND $table.`status` IN ( $prepared_statuses )", $statuses); |
|
272 | 272 | } |
273 | 273 | |
274 | - if ( ! empty( $qv['customer_in'] ) ) { |
|
275 | - $customer_in = implode( ',', wp_parse_id_list( $qv['customer_in'] ) ); |
|
274 | + if (!empty($qv['customer_in'])) { |
|
275 | + $customer_in = implode(',', wp_parse_id_list($qv['customer_in'])); |
|
276 | 276 | $this->query_where .= " AND $table.`customer_id` IN ($customer_in)"; |
277 | - } elseif ( ! empty( $qv['customer_not_in'] ) ) { |
|
278 | - $customer_not_in = implode( ',', wp_parse_id_list( $qv['customer_not_in'] ) ); |
|
277 | + } elseif (!empty($qv['customer_not_in'])) { |
|
278 | + $customer_not_in = implode(',', wp_parse_id_list($qv['customer_not_in'])); |
|
279 | 279 | $this->query_where .= " AND $table.`customer_id` NOT IN ($customer_not_in)"; |
280 | 280 | } |
281 | 281 | |
282 | - if ( ! empty( $qv['product_in'] ) ) { |
|
283 | - $product_in = implode( ',', wp_parse_id_list( $qv['product_in'] ) ); |
|
282 | + if (!empty($qv['product_in'])) { |
|
283 | + $product_in = implode(',', wp_parse_id_list($qv['product_in'])); |
|
284 | 284 | $this->query_where .= " AND $table.`product_id` IN ($product_in)"; |
285 | - } elseif ( ! empty( $qv['product_not_in'] ) ) { |
|
286 | - $product_not_in = implode( ',', wp_parse_id_list( $qv['product_not_in'] ) ); |
|
285 | + } elseif (!empty($qv['product_not_in'])) { |
|
286 | + $product_not_in = implode(',', wp_parse_id_list($qv['product_not_in'])); |
|
287 | 287 | $this->query_where .= " AND $table.`product_id` NOT IN ($product_not_in)"; |
288 | 288 | } |
289 | 289 | |
290 | - if ( ! empty( $qv['invoice_in'] ) ) { |
|
291 | - $invoice_in = implode( ',', wp_parse_id_list( $qv['invoice_in'] ) ); |
|
290 | + if (!empty($qv['invoice_in'])) { |
|
291 | + $invoice_in = implode(',', wp_parse_id_list($qv['invoice_in'])); |
|
292 | 292 | $this->query_where .= " AND $table.`parent_payment_id` IN ($invoice_in)"; |
293 | - } elseif ( ! empty( $qv['invoice_not_in'] ) ) { |
|
294 | - $invoice_not_in = implode( ',', wp_parse_id_list( $qv['invoice_not_in'] ) ); |
|
293 | + } elseif (!empty($qv['invoice_not_in'])) { |
|
294 | + $invoice_not_in = implode(',', wp_parse_id_list($qv['invoice_not_in'])); |
|
295 | 295 | $this->query_where .= " AND $table.`parent_payment_id` NOT IN ($invoice_not_in)"; |
296 | 296 | } |
297 | 297 | |
298 | - if ( ! empty( $qv['include'] ) ) { |
|
299 | - $include = implode( ',', wp_parse_id_list( $qv['include'] ) ); |
|
298 | + if (!empty($qv['include'])) { |
|
299 | + $include = implode(',', wp_parse_id_list($qv['include'])); |
|
300 | 300 | $this->query_where .= " AND $table.`id` IN ($include)"; |
301 | - } elseif ( ! empty( $qv['exclude'] ) ) { |
|
302 | - $exclude = implode( ',', wp_parse_id_list( $qv['exclude'] ) ); |
|
301 | + } elseif (!empty($qv['exclude'])) { |
|
302 | + $exclude = implode(',', wp_parse_id_list($qv['exclude'])); |
|
303 | 303 | $this->query_where .= " AND $table.`id` NOT IN ($exclude)"; |
304 | 304 | } |
305 | 305 | |
306 | 306 | // Date queries are allowed for the subscription creation date. |
307 | - if ( ! empty( $qv['date_created_query'] ) && is_array( $qv['date_created_query'] ) ) { |
|
308 | - $date_created_query = new WP_Date_Query( $qv['date_created_query'], "$table.created" ); |
|
307 | + if (!empty($qv['date_created_query']) && is_array($qv['date_created_query'])) { |
|
308 | + $date_created_query = new WP_Date_Query($qv['date_created_query'], "$table.created"); |
|
309 | 309 | $this->query_where .= $date_created_query->get_sql(); |
310 | 310 | } |
311 | 311 | |
312 | 312 | // Date queries are also allowed for the subscription expiration date. |
313 | - if ( ! empty( $qv['date_expires_query'] ) && is_array( $qv['date_expires_query'] ) ) { |
|
314 | - $date_expires_query = new WP_Date_Query( $qv['date_expires_query'], "$table.expiration" ); |
|
313 | + if (!empty($qv['date_expires_query']) && is_array($qv['date_expires_query'])) { |
|
314 | + $date_expires_query = new WP_Date_Query($qv['date_expires_query'], "$table.expiration"); |
|
315 | 315 | $this->query_where .= $date_expires_query->get_sql(); |
316 | 316 | } |
317 | 317 | |
@@ -325,24 +325,24 @@ discard block |
||
325 | 325 | * @param array $qv Query vars. |
326 | 326 | * @param string $table Table name. |
327 | 327 | */ |
328 | - protected function prepare_query_order( &$qv, $table ) { |
|
328 | + protected function prepare_query_order(&$qv, $table) { |
|
329 | 329 | |
330 | 330 | // sorting. |
331 | - $qv['order'] = isset( $qv['order'] ) ? strtoupper( $qv['order'] ) : ''; |
|
332 | - $order = $this->parse_order( $qv['order'] ); |
|
331 | + $qv['order'] = isset($qv['order']) ? strtoupper($qv['order']) : ''; |
|
332 | + $order = $this->parse_order($qv['order']); |
|
333 | 333 | |
334 | 334 | // Default order is by 'id' (latest subscriptions). |
335 | - if ( empty( $qv['orderby'] ) ) { |
|
336 | - $qv['orderby'] = array( 'id' ); |
|
335 | + if (empty($qv['orderby'])) { |
|
336 | + $qv['orderby'] = array('id'); |
|
337 | 337 | } |
338 | 338 | |
339 | 339 | // 'orderby' values may be an array, comma- or space-separated list. |
340 | - $ordersby = array_filter( wpinv_parse_list( $qv['orderby'] ) ); |
|
340 | + $ordersby = array_filter(wpinv_parse_list($qv['orderby'])); |
|
341 | 341 | |
342 | 342 | $orderby_array = array(); |
343 | - foreach ( $ordersby as $_key => $_value ) { |
|
343 | + foreach ($ordersby as $_key => $_value) { |
|
344 | 344 | |
345 | - if ( is_int( $_key ) ) { |
|
345 | + if (is_int($_key)) { |
|
346 | 346 | // Integer key means this is a flat array of 'orderby' fields. |
347 | 347 | $_orderby = $_value; |
348 | 348 | $_order = $order; |
@@ -352,19 +352,19 @@ discard block |
||
352 | 352 | $_order = $_value; |
353 | 353 | } |
354 | 354 | |
355 | - $parsed = $this->parse_orderby( $_orderby, $table ); |
|
355 | + $parsed = $this->parse_orderby($_orderby, $table); |
|
356 | 356 | |
357 | - if ( $parsed ) { |
|
358 | - $orderby_array[] = $parsed . ' ' . $this->parse_order( $_order ); |
|
357 | + if ($parsed) { |
|
358 | + $orderby_array[] = $parsed . ' ' . $this->parse_order($_order); |
|
359 | 359 | } |
360 | 360 | } |
361 | 361 | |
362 | 362 | // If no valid clauses were found, order by id. |
363 | - if ( empty( $orderby_array ) ) { |
|
363 | + if (empty($orderby_array)) { |
|
364 | 364 | $orderby_array[] = "id $order"; |
365 | 365 | } |
366 | 366 | |
367 | - $this->query_orderby = 'ORDER BY ' . implode( ', ', $orderby_array ); |
|
367 | + $this->query_orderby = 'ORDER BY ' . implode(', ', $orderby_array); |
|
368 | 368 | |
369 | 369 | } |
370 | 370 | |
@@ -378,34 +378,34 @@ discard block |
||
378 | 378 | public function query() { |
379 | 379 | global $wpdb; |
380 | 380 | |
381 | - $qv =& $this->query_vars; |
|
381 | + $qv = & $this->query_vars; |
|
382 | 382 | |
383 | 383 | // Return a non-null value to bypass the default GetPaid subscriptions query and remember to set the |
384 | 384 | // total_subscriptions property. |
385 | - $this->results = apply_filters_ref_array( 'getpaid_subscriptions_pre_query', array( null, &$this ) ); |
|
385 | + $this->results = apply_filters_ref_array('getpaid_subscriptions_pre_query', array(null, &$this)); |
|
386 | 386 | |
387 | - if ( null === $this->results ) { |
|
387 | + if (null === $this->results) { |
|
388 | 388 | $this->request = "SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit"; |
389 | 389 | |
390 | - if ( ( is_array( $qv['fields'] ) && 1 != count( $qv['fields'] ) ) || 'all' == $qv['fields'] ) { |
|
391 | - $this->results = $wpdb->get_results( $this->request ); |
|
390 | + if ((is_array($qv['fields']) && 1 != count($qv['fields'])) || 'all' == $qv['fields']) { |
|
391 | + $this->results = $wpdb->get_results($this->request); |
|
392 | 392 | } else { |
393 | - $this->results = $wpdb->get_col( $this->request ); |
|
393 | + $this->results = $wpdb->get_col($this->request); |
|
394 | 394 | } |
395 | 395 | |
396 | - if ( isset( $qv['count_total'] ) && $qv['count_total'] ) { |
|
397 | - $found_subscriptions_query = apply_filters( 'getpaid_found_subscriptions_query', 'SELECT FOUND_ROWS()', $this ); |
|
398 | - $this->total_subscriptions = (int) $wpdb->get_var( $found_subscriptions_query ); |
|
396 | + if (isset($qv['count_total']) && $qv['count_total']) { |
|
397 | + $found_subscriptions_query = apply_filters('getpaid_found_subscriptions_query', 'SELECT FOUND_ROWS()', $this); |
|
398 | + $this->total_subscriptions = (int) $wpdb->get_var($found_subscriptions_query); |
|
399 | 399 | } |
400 | 400 | } |
401 | 401 | |
402 | - if ( 'all' == $qv['fields'] ) { |
|
403 | - foreach ( $this->results as $key => $subscription ) { |
|
404 | - $this->set_cache( $subscription->id, $subscription, 'getpaid_subscriptions' ); |
|
405 | - $this->set_cache( $subscription->profile_id, $subscription->id, 'getpaid_subscription_profile_ids_to_subscription_ids' ); |
|
406 | - $this->set_cache( $subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
407 | - $this->set_cache( $subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids' ); |
|
408 | - $this->results[ $key ] = new WPInv_Subscription( $subscription ); |
|
402 | + if ('all' == $qv['fields']) { |
|
403 | + foreach ($this->results as $key => $subscription) { |
|
404 | + $this->set_cache($subscription->id, $subscription, 'getpaid_subscriptions'); |
|
405 | + $this->set_cache($subscription->profile_id, $subscription->id, 'getpaid_subscription_profile_ids_to_subscription_ids'); |
|
406 | + $this->set_cache($subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids'); |
|
407 | + $this->set_cache($subscription->transaction_id, $subscription->id, 'getpaid_subscription_transaction_ids_to_subscription_ids'); |
|
408 | + $this->results[$key] = new WPInv_Subscription($subscription); |
|
409 | 409 | } |
410 | 410 | } |
411 | 411 | |
@@ -420,13 +420,13 @@ discard block |
||
420 | 420 | * @param integer $expire |
421 | 421 | * @return boolean |
422 | 422 | */ |
423 | - public function set_cache( $key, $data, $group = '', $expire = 0 ) { |
|
423 | + public function set_cache($key, $data, $group = '', $expire = 0) { |
|
424 | 424 | |
425 | - if ( empty( $key ) ) { |
|
425 | + if (empty($key)) { |
|
426 | 426 | return false; |
427 | 427 | } |
428 | 428 | |
429 | - wp_cache_set( $key, $data, $group, $expire ); |
|
429 | + wp_cache_set($key, $data, $group, $expire); |
|
430 | 430 | } |
431 | 431 | |
432 | 432 | /** |
@@ -437,9 +437,9 @@ discard block |
||
437 | 437 | * @param string $query_var Query variable key. |
438 | 438 | * @return mixed |
439 | 439 | */ |
440 | - public function get( $query_var ) { |
|
441 | - if ( isset( $this->query_vars[ $query_var ] ) ) { |
|
442 | - return $this->query_vars[ $query_var ]; |
|
440 | + public function get($query_var) { |
|
441 | + if (isset($this->query_vars[$query_var])) { |
|
442 | + return $this->query_vars[$query_var]; |
|
443 | 443 | } |
444 | 444 | |
445 | 445 | return null; |
@@ -453,8 +453,8 @@ discard block |
||
453 | 453 | * @param string $query_var Query variable key. |
454 | 454 | * @param mixed $value Query variable value. |
455 | 455 | */ |
456 | - public function set( $query_var, $value ) { |
|
457 | - $this->query_vars[ $query_var ] = $value; |
|
456 | + public function set($query_var, $value) { |
|
457 | + $this->query_vars[$query_var] = $value; |
|
458 | 458 | } |
459 | 459 | |
460 | 460 | /** |
@@ -488,16 +488,16 @@ discard block |
||
488 | 488 | * @param string $table The current table. |
489 | 489 | * @return string Value to use in the ORDER clause, if `$orderby` is valid. |
490 | 490 | */ |
491 | - protected function parse_orderby( $orderby, $table ) { |
|
491 | + protected function parse_orderby($orderby, $table) { |
|
492 | 492 | |
493 | 493 | $_orderby = ''; |
494 | - if ( in_array( $orderby, array( 'customer_id', 'frequency', 'period', 'initial_amount', 'recurring_amount', 'bill_times', 'transaction_id', 'parent_payment_id', 'product_id', 'created', 'expiration', 'trial_period', 'status', 'profile_id' ) ) ) { |
|
494 | + if (in_array($orderby, array('customer_id', 'frequency', 'period', 'initial_amount', 'recurring_amount', 'bill_times', 'transaction_id', 'parent_payment_id', 'product_id', 'created', 'expiration', 'trial_period', 'status', 'profile_id'))) { |
|
495 | 495 | $_orderby = "$table.`$orderby`"; |
496 | - } elseif ( 'id' === strtolower( $orderby ) ) { |
|
496 | + } elseif ('id' === strtolower($orderby)) { |
|
497 | 497 | $_orderby = "$table.id"; |
498 | - } elseif ( 'include' === $orderby && ! empty( $this->query_vars['include'] ) ) { |
|
499 | - $include = wp_parse_id_list( $this->query_vars['include'] ); |
|
500 | - $include_sql = implode( ',', $include ); |
|
498 | + } elseif ('include' === $orderby && !empty($this->query_vars['include'])) { |
|
499 | + $include = wp_parse_id_list($this->query_vars['include']); |
|
500 | + $include_sql = implode(',', $include); |
|
501 | 501 | $_orderby = "FIELD( $table.id, $include_sql )"; |
502 | 502 | } |
503 | 503 | |
@@ -512,12 +512,12 @@ discard block |
||
512 | 512 | * @param string $order The 'order' query variable. |
513 | 513 | * @return string The sanitized 'order' query variable. |
514 | 514 | */ |
515 | - protected function parse_order( $order ) { |
|
516 | - if ( ! is_string( $order ) || empty( $order ) ) { |
|
515 | + protected function parse_order($order) { |
|
516 | + if (!is_string($order) || empty($order)) { |
|
517 | 517 | return 'DESC'; |
518 | 518 | } |
519 | 519 | |
520 | - if ( 'ASC' === strtoupper( $order ) ) { |
|
520 | + if ('ASC' === strtoupper($order)) { |
|
521 | 521 | return 'ASC'; |
522 | 522 | } else { |
523 | 523 | return 'DESC'; |
@@ -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,11 +160,11 @@ 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 | |
169 | 169 | $bank_info = apply_filters( 'wpinv_bank_info', $bank_info, $invoice ); |
170 | 170 | |
@@ -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' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
175 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
176 | + |
|
177 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
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 | + } |
|
182 | + |
|
183 | + echo '</table>'; |
|
176 | 184 | |
177 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
185 | + } |
|
178 | 186 | |
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 | - } |
|
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 | + ); |
|
182 | 242 | |
183 | - echo '</table>'; |
|
243 | + } |
|
244 | + |
|
245 | + return $this->locale; |
|
184 | 246 | |
185 | 247 | } |
186 | 248 | |
187 | 249 | /** |
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 ) { |
|
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( strtotime( $invoice->get_date_created() ) ); |
|
394 | - } |
|
390 | + // Renew the subscription. |
|
391 | + if ( $subscription && $subscription->exists() ) { |
|
392 | + $subscription->add_payment( array(), $invoice ); |
|
393 | + $subscription->renew( strtotime( $invoice->get_date_created() ) ); |
|
394 | + } |
|
395 | 395 | } |
396 | 396 | |
397 | 397 | } |
@@ -4,7 +4,7 @@ discard block |
||
4 | 4 | * |
5 | 5 | */ |
6 | 6 | |
7 | -defined( 'ABSPATH' ) || exit; |
|
7 | +defined('ABSPATH') || exit; |
|
8 | 8 | |
9 | 9 | /** |
10 | 10 | * Bank transfer Payment Gateway class. |
@@ -24,7 +24,7 @@ discard block |
||
24 | 24 | * |
25 | 25 | * @var array |
26 | 26 | */ |
27 | - protected $supports = array( 'subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups' ); |
|
27 | + protected $supports = array('subscription', 'addons', 'single_subscription_group', 'multiple_subscription_groups'); |
|
28 | 28 | |
29 | 29 | /** |
30 | 30 | * Payment method order. |
@@ -39,17 +39,17 @@ discard block |
||
39 | 39 | public function __construct() { |
40 | 40 | parent::__construct(); |
41 | 41 | |
42 | - $this->title = __( 'Direct bank transfer', 'invoicing' ); |
|
43 | - $this->method_title = __( 'Bank transfer', 'invoicing' ); |
|
44 | - $this->checkout_button_text = __( 'Proceed', 'invoicing' ); |
|
45 | - $this->instructions = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) ); |
|
42 | + $this->title = __('Direct bank transfer', 'invoicing'); |
|
43 | + $this->method_title = __('Bank transfer', 'invoicing'); |
|
44 | + $this->checkout_button_text = __('Proceed', 'invoicing'); |
|
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 | |
@@ -61,23 +61,23 @@ discard block |
||
61 | 61 | * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
62 | 62 | * @return array |
63 | 63 | */ |
64 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
64 | + public function process_payment($invoice, $submission_data, $submission) { |
|
65 | 65 | |
66 | 66 | // Add a transaction id. |
67 | - $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) ); |
|
67 | + $invoice->set_transaction_id($invoice->generate_key('bt_')); |
|
68 | 68 | |
69 | 69 | // Set it as pending payment. |
70 | - if ( ! $invoice->needs_payment() ) { |
|
70 | + if (!$invoice->needs_payment()) { |
|
71 | 71 | $invoice->mark_paid(); |
72 | - } elseif ( ! $invoice->is_paid() ) { |
|
73 | - $invoice->set_status( 'wpi-onhold' ); |
|
72 | + } elseif (!$invoice->is_paid()) { |
|
73 | + $invoice->set_status('wpi-onhold'); |
|
74 | 74 | } |
75 | 75 | |
76 | 76 | // Save it. |
77 | 77 | $invoice->save(); |
78 | 78 | |
79 | 79 | // Send to the success page. |
80 | - wpinv_send_to_success_page( array( 'invoice_key' => $invoice->get_key() ) ); |
|
80 | + wpinv_send_to_success_page(array('invoice_key' => $invoice->get_key())); |
|
81 | 81 | |
82 | 82 | } |
83 | 83 | |
@@ -86,17 +86,17 @@ discard block |
||
86 | 86 | * |
87 | 87 | * @param WPInv_Invoice $invoice Invoice. |
88 | 88 | */ |
89 | - public function thankyou_page( $invoice ) { |
|
89 | + public function thankyou_page($invoice) { |
|
90 | 90 | |
91 | - if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
91 | + if ('bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment()) { |
|
92 | 92 | |
93 | 93 | echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
94 | 94 | |
95 | - if ( ! empty( $this->instructions ) ) { |
|
96 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
|
95 | + if (!empty($this->instructions)) { |
|
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 | 101 | echo '</div>'; |
102 | 102 | |
@@ -111,17 +111,17 @@ discard block |
||
111 | 111 | * @param string $email_type Email format: plain text or HTML. |
112 | 112 | * @param bool $sent_to_admin Sent to admin. |
113 | 113 | */ |
114 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
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 | 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 | 126 | echo '</div>'; |
127 | 127 | |
@@ -134,50 +134,50 @@ discard block |
||
134 | 134 | * |
135 | 135 | * @param WPInv_Invoice $invoice Invoice. |
136 | 136 | */ |
137 | - protected function bank_details( $invoice ) { |
|
137 | + protected function bank_details($invoice) { |
|
138 | 138 | |
139 | 139 | // Get the invoice country and country $locale. |
140 | 140 | $country = $invoice->get_country(); |
141 | 141 | $locale = $this->get_country_locale(); |
142 | 142 | |
143 | 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' ); |
|
144 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
145 | 145 | |
146 | 146 | $bank_fields = array( |
147 | - 'ac_name' => __( 'Account Name', 'invoicing' ), |
|
148 | - 'ac_no' => __( 'Account Number', 'invoicing' ), |
|
149 | - 'bank_name' => __( 'Bank Name', 'invoicing' ), |
|
150 | - 'ifsc' => __( 'IFSC code', 'invoicing' ), |
|
151 | - 'iban' => __( 'IBAN', 'invoicing' ), |
|
152 | - 'bic' => __( 'BIC/Swift code', 'invoicing' ), |
|
147 | + 'ac_name' => __('Account Name', 'invoicing'), |
|
148 | + 'ac_no' => __('Account Number', 'invoicing'), |
|
149 | + 'bank_name' => __('Bank Name', 'invoicing'), |
|
150 | + 'ifsc' => __('IFSC code', 'invoicing'), |
|
151 | + 'iban' => __('IBAN', 'invoicing'), |
|
152 | + 'bic' => __('BIC/Swift code', 'invoicing'), |
|
153 | 153 | 'sort_code' => $sortcode, |
154 | 154 | ); |
155 | 155 | |
156 | 156 | $bank_info = array(); |
157 | 157 | |
158 | - foreach ( $bank_fields as $field => $label ) { |
|
159 | - $value = $this->get_option( $field ); |
|
158 | + foreach ($bank_fields as $field => $label) { |
|
159 | + $value = $this->get_option($field); |
|
160 | 160 | |
161 | - if ( ! empty( $value ) ) { |
|
162 | - $bank_info[ $field ] = array( |
|
161 | + if (!empty($value)) { |
|
162 | + $bank_info[$field] = array( |
|
163 | 163 | 'label' => $label, |
164 | 164 | 'value' => $value, |
165 | 165 | ); |
166 | 166 | } |
167 | 167 | } |
168 | 168 | |
169 | - $bank_info = apply_filters( 'wpinv_bank_info', $bank_info, $invoice ); |
|
169 | + $bank_info = apply_filters('wpinv_bank_info', $bank_info, $invoice); |
|
170 | 170 | |
171 | - if ( empty( $bank_info ) ) { |
|
171 | + if (empty($bank_info)) { |
|
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' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
175 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html(apply_filters('wpinv_receipt_bank_details_title', __('Bank Details', 'invoicing'), $invoice)) . '</h3>' . PHP_EOL; |
|
176 | 176 | |
177 | 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; |
|
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 | 181 | } |
182 | 182 | |
183 | 183 | echo '</table>'; |
@@ -191,7 +191,7 @@ discard block |
||
191 | 191 | */ |
192 | 192 | public function get_country_locale() { |
193 | 193 | |
194 | - if ( empty( $this->locale ) ) { |
|
194 | + if (empty($this->locale)) { |
|
195 | 195 | |
196 | 196 | // Locale information to be used - only those that are not 'Sort Code'. |
197 | 197 | $this->locale = apply_filters( |
@@ -199,42 +199,42 @@ discard block |
||
199 | 199 | array( |
200 | 200 | 'AU' => array( |
201 | 201 | 'sortcode' => array( |
202 | - 'label' => __( 'BSB', 'invoicing' ), |
|
202 | + 'label' => __('BSB', 'invoicing'), |
|
203 | 203 | ), |
204 | 204 | ), |
205 | 205 | 'CA' => array( |
206 | 206 | 'sortcode' => array( |
207 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
207 | + 'label' => __('Bank transit number', 'invoicing'), |
|
208 | 208 | ), |
209 | 209 | ), |
210 | 210 | 'IN' => array( |
211 | 211 | 'sortcode' => array( |
212 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
212 | + 'label' => __('IFSC', 'invoicing'), |
|
213 | 213 | ), |
214 | 214 | ), |
215 | 215 | 'IT' => array( |
216 | 216 | 'sortcode' => array( |
217 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
217 | + 'label' => __('Branch sort', 'invoicing'), |
|
218 | 218 | ), |
219 | 219 | ), |
220 | 220 | 'NZ' => array( |
221 | 221 | 'sortcode' => array( |
222 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
222 | + 'label' => __('Bank code', 'invoicing'), |
|
223 | 223 | ), |
224 | 224 | ), |
225 | 225 | 'SE' => array( |
226 | 226 | 'sortcode' => array( |
227 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
227 | + 'label' => __('Bank code', 'invoicing'), |
|
228 | 228 | ), |
229 | 229 | ), |
230 | 230 | 'US' => array( |
231 | 231 | 'sortcode' => array( |
232 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
232 | + 'label' => __('Routing number', 'invoicing'), |
|
233 | 233 | ), |
234 | 234 | ), |
235 | 235 | 'ZA' => array( |
236 | 236 | 'sortcode' => array( |
237 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
237 | + 'label' => __('Branch code', 'invoicing'), |
|
238 | 238 | ), |
239 | 239 | ), |
240 | 240 | ) |
@@ -251,51 +251,51 @@ discard block |
||
251 | 251 | * |
252 | 252 | * @param array $admin_settings |
253 | 253 | */ |
254 | - public function admin_settings( $admin_settings ) { |
|
254 | + public function admin_settings($admin_settings) { |
|
255 | 255 | |
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' ); |
|
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'); |
|
258 | 258 | |
259 | - $locale = $this->get_country_locale(); |
|
259 | + $locale = $this->get_country_locale(); |
|
260 | 260 | |
261 | 261 | // Get sortcode label in the $locale array and use appropriate one. |
262 | 262 | $country = wpinv_default_billing_country(); |
263 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
263 | + $sortcode = isset($locale[$country]['sortcode']['label']) ? $locale[$country]['sortcode']['label'] : __('Sort code', 'invoicing'); |
|
264 | 264 | |
265 | 265 | $admin_settings['bank_transfer_ac_name'] = array( |
266 | 266 | 'type' => 'text', |
267 | 267 | 'id' => 'bank_transfer_ac_name', |
268 | - 'name' => __( 'Account Name', 'invoicing' ), |
|
268 | + 'name' => __('Account Name', 'invoicing'), |
|
269 | 269 | ); |
270 | 270 | |
271 | 271 | $admin_settings['bank_transfer_ac_no'] = array( |
272 | 272 | 'type' => 'text', |
273 | 273 | 'id' => 'bank_transfer_ac_no', |
274 | - 'name' => __( 'Account Number', 'invoicing' ), |
|
274 | + 'name' => __('Account Number', 'invoicing'), |
|
275 | 275 | ); |
276 | 276 | |
277 | 277 | $admin_settings['bank_transfer_bank_name'] = array( |
278 | 278 | 'type' => 'text', |
279 | 279 | 'id' => 'bank_transfer_bank_name', |
280 | - 'name' => __( 'Bank Name', 'invoicing' ), |
|
280 | + 'name' => __('Bank Name', 'invoicing'), |
|
281 | 281 | ); |
282 | 282 | |
283 | 283 | $admin_settings['bank_transfer_ifsc'] = array( |
284 | 284 | 'type' => 'text', |
285 | 285 | 'id' => 'bank_transfer_ifsc', |
286 | - 'name' => __( 'IFSC Code', 'invoicing' ), |
|
286 | + 'name' => __('IFSC Code', 'invoicing'), |
|
287 | 287 | ); |
288 | 288 | |
289 | 289 | $admin_settings['bank_transfer_iban'] = array( |
290 | 290 | 'type' => 'text', |
291 | 291 | 'id' => 'bank_transfer_iban', |
292 | - 'name' => __( 'IBAN', 'invoicing' ), |
|
292 | + 'name' => __('IBAN', 'invoicing'), |
|
293 | 293 | ); |
294 | 294 | |
295 | 295 | $admin_settings['bank_transfer_bic'] = array( |
296 | 296 | 'type' => 'text', |
297 | 297 | 'id' => 'bank_transfer_bic', |
298 | - 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
|
298 | + 'name' => __('BIC/Swift Code', 'invoicing'), |
|
299 | 299 | ); |
300 | 300 | |
301 | 301 | $admin_settings['bank_transfer_sort_code'] = array( |
@@ -306,10 +306,10 @@ discard block |
||
306 | 306 | |
307 | 307 | $admin_settings['bank_transfer_info'] = array( |
308 | 308 | 'id' => 'bank_transfer_info', |
309 | - 'name' => __( 'Instructions', 'invoicing' ), |
|
310 | - 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
|
309 | + 'name' => __('Instructions', 'invoicing'), |
|
310 | + 'desc' => __('Instructions that will be added to the thank you page and emails.', 'invoicing'), |
|
311 | 311 | 'type' => 'textarea', |
312 | - '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' ), |
|
312 | + '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'), |
|
313 | 313 | 'cols' => 50, |
314 | 314 | 'rows' => 5, |
315 | 315 | ); |
@@ -324,10 +324,10 @@ discard block |
||
324 | 324 | * @param GetPaid_Form_Item[] $items |
325 | 325 | * @return WPInv_Invoice |
326 | 326 | */ |
327 | - public function process_addons( $invoice, $items ) { |
|
327 | + public function process_addons($invoice, $items) { |
|
328 | 328 | |
329 | - foreach ( $items as $item ) { |
|
330 | - $invoice->add_item( $item ); |
|
329 | + foreach ($items as $item) { |
|
330 | + $invoice->add_item($item); |
|
331 | 331 | } |
332 | 332 | |
333 | 333 | $invoice->recalculate_total(); |
@@ -340,10 +340,10 @@ discard block |
||
340 | 340 | * |
341 | 341 | * @param WPInv_Subscription $subscription |
342 | 342 | */ |
343 | - public function maybe_renew_subscription( $subscription ) { |
|
343 | + public function maybe_renew_subscription($subscription) { |
|
344 | 344 | |
345 | 345 | // Ensure its our subscription && it's active. |
346 | - if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
346 | + if ($this->id === $subscription->get_gateway() && $subscription->has_status('active trialling')) { |
|
347 | 347 | $subscription->create_payment(); |
348 | 348 | } |
349 | 349 | |
@@ -355,42 +355,42 @@ discard block |
||
355 | 355 | * |
356 | 356 | * @param WPInv_Invoice $invoice |
357 | 357 | */ |
358 | - public function invoice_paid( $invoice ) { |
|
358 | + public function invoice_paid($invoice) { |
|
359 | 359 | |
360 | 360 | // Abort if not paid by bank transfer. |
361 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
361 | + if ($this->id !== $invoice->get_gateway() || !$invoice->is_recurring()) { |
|
362 | 362 | return; |
363 | 363 | } |
364 | 364 | |
365 | 365 | // Is it a parent payment? |
366 | - if ( 0 == $invoice->get_parent_id() ) { |
|
366 | + if (0 == $invoice->get_parent_id()) { |
|
367 | 367 | |
368 | 368 | // (Maybe) activate subscriptions. |
369 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
369 | + $subscriptions = getpaid_get_invoice_subscriptions($invoice); |
|
370 | 370 | |
371 | - if ( ! empty( $subscriptions ) ) { |
|
372 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
371 | + if (!empty($subscriptions)) { |
|
372 | + $subscriptions = is_array($subscriptions) ? $subscriptions : array($subscriptions); |
|
373 | 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 ) ); |
|
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 | 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() ); |
|
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 | 382 | $subscription->activate(); |
383 | 383 | } |
384 | 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 | 390 | // Renew the subscription. |
391 | - if ( $subscription && $subscription->exists() ) { |
|
392 | - $subscription->add_payment( array(), $invoice ); |
|
393 | - $subscription->renew( strtotime( $invoice->get_date_created() ) ); |
|
391 | + if ($subscription && $subscription->exists()) { |
|
392 | + $subscription->add_payment(array(), $invoice); |
|
393 | + $subscription->renew(strtotime($invoice->get_date_created())); |
|
394 | 394 | } |
395 | 395 | } |
396 | 396 |
@@ -1,6 +1,6 @@ discard block |
||
1 | 1 | <?php |
2 | 2 | // MUST have WordPress. |
3 | -if ( ! defined( 'WPINC' ) ) { |
|
3 | +if (!defined('WPINC')) { |
|
4 | 4 | exit; |
5 | 5 | } |
6 | 6 | |
@@ -11,23 +11,23 @@ discard block |
||
11 | 11 | * |
12 | 12 | * @param WP_Post $post |
13 | 13 | */ |
14 | - public static function output_details( $post ) { |
|
15 | - $details = get_post_meta( $post->ID, 'payment_form_data', true ); |
|
14 | + public static function output_details($post) { |
|
15 | + $details = get_post_meta($post->ID, 'payment_form_data', true); |
|
16 | 16 | |
17 | - if ( ! is_array( $details ) ) { |
|
17 | + if (!is_array($details)) { |
|
18 | 18 | return; |
19 | 19 | } |
20 | 20 | |
21 | 21 | echo '<div class="bsui"> <div class="form-row row">'; |
22 | 22 | |
23 | - foreach ( $details as $key => $value ) { |
|
24 | - $key = esc_html( $key ); |
|
23 | + foreach ($details as $key => $value) { |
|
24 | + $key = esc_html($key); |
|
25 | 25 | |
26 | - if ( is_array( $value ) ) { |
|
27 | - $value = implode( ',', $value ); |
|
26 | + if (is_array($value)) { |
|
27 | + $value = implode(',', $value); |
|
28 | 28 | } |
29 | 29 | |
30 | - echo wp_kses_post( "<div class='col-12'><strong>$key:</strong></div><div class='col-12 form-group mb-3'>$value</div>" ); |
|
30 | + echo wp_kses_post("<div class='col-12'><strong>$key:</strong></div><div class='col-12 form-group mb-3'>$value</div>"); |
|
31 | 31 | } |
32 | 32 | |
33 | 33 | echo '</div></div>'; |
@@ -39,18 +39,18 @@ discard block |
||
39 | 39 | * |
40 | 40 | * @param WP_Post $post |
41 | 41 | */ |
42 | - public static function output_shortcode( $post ) { |
|
42 | + public static function output_shortcode($post) { |
|
43 | 43 | |
44 | - if ( ! is_numeric( $post ) ) { |
|
44 | + if (!is_numeric($post)) { |
|
45 | 45 | $post = $post->ID; |
46 | 46 | } |
47 | 47 | |
48 | - if ( $post == wpinv_get_default_payment_form() ) { |
|
48 | + if ($post == wpinv_get_default_payment_form()) { |
|
49 | 49 | echo '—'; |
50 | 50 | return; |
51 | 51 | } |
52 | 52 | |
53 | - echo "<input type='text' style='min-width: 220px;' value='[getpaid form=" . absint( $post ) . "]' disabled>"; |
|
53 | + echo "<input type='text' style='min-width: 220px;' value='[getpaid form=" . absint($post) . "]' disabled>"; |
|
54 | 54 | |
55 | 55 | } |
56 | 56 |