@@ -286,26 +286,26 @@ discard block |
||
| 286 | 286 | } |
| 287 | 287 | |
| 288 | 288 | function wpinv_get_chosen_gateway( $invoice_id = 0 ) { |
| 289 | - $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
| 289 | + $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
| 290 | 290 | |
| 291 | 291 | $chosen = false; |
| 292 | 292 | if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) { |
| 293 | 293 | $chosen = $invoice->get_gateway(); |
| 294 | 294 | } |
| 295 | 295 | |
| 296 | - $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
| 296 | + $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
| 297 | 297 | |
| 298 | - if ( false !== $chosen ) { |
|
| 299 | - $chosen = preg_replace('/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
| 300 | - } |
|
| 298 | + if ( false !== $chosen ) { |
|
| 299 | + $chosen = preg_replace('/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
| 300 | + } |
|
| 301 | 301 | |
| 302 | - if ( ! empty ( $chosen ) ) { |
|
| 303 | - $enabled_gateway = urldecode( $chosen ); |
|
| 304 | - } else if ( !empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
| 305 | - $enabled_gateway = 'manual'; |
|
| 306 | - } else { |
|
| 307 | - $enabled_gateway = wpinv_get_default_gateway(); |
|
| 308 | - } |
|
| 302 | + if ( ! empty ( $chosen ) ) { |
|
| 303 | + $enabled_gateway = urldecode( $chosen ); |
|
| 304 | + } else if ( !empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
| 305 | + $enabled_gateway = 'manual'; |
|
| 306 | + } else { |
|
| 307 | + $enabled_gateway = wpinv_get_default_gateway(); |
|
| 308 | + } |
|
| 309 | 309 | |
| 310 | 310 | if ( !wpinv_is_gateway_active( $enabled_gateway ) && !empty( $gateways ) ) { |
| 311 | 311 | if(wpinv_is_gateway_active( wpinv_get_default_gateway()) ){ |
@@ -316,7 +316,7 @@ discard block |
||
| 316 | 316 | |
| 317 | 317 | } |
| 318 | 318 | |
| 319 | - return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
| 319 | + return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
| 320 | 320 | } |
| 321 | 321 | |
| 322 | 322 | function wpinv_record_gateway_error( $title = '', $message = '', $parent = 0 ) { |
@@ -324,21 +324,21 @@ discard block |
||
| 324 | 324 | } |
| 325 | 325 | |
| 326 | 326 | function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) { |
| 327 | - $ret = 0; |
|
| 328 | - $args = array( |
|
| 329 | - 'meta_key' => '_wpinv_gateway', |
|
| 330 | - 'meta_value' => $gateway_id, |
|
| 331 | - 'nopaging' => true, |
|
| 332 | - 'post_type' => 'wpi_invoice', |
|
| 333 | - 'post_status' => $status, |
|
| 334 | - 'fields' => 'ids' |
|
| 335 | - ); |
|
| 336 | - |
|
| 337 | - $payments = new WP_Query( $args ); |
|
| 338 | - |
|
| 339 | - if( $payments ) |
|
| 340 | - $ret = $payments->post_count; |
|
| 341 | - return $ret; |
|
| 327 | + $ret = 0; |
|
| 328 | + $args = array( |
|
| 329 | + 'meta_key' => '_wpinv_gateway', |
|
| 330 | + 'meta_value' => $gateway_id, |
|
| 331 | + 'nopaging' => true, |
|
| 332 | + 'post_type' => 'wpi_invoice', |
|
| 333 | + 'post_status' => $status, |
|
| 334 | + 'fields' => 'ids' |
|
| 335 | + ); |
|
| 336 | + |
|
| 337 | + $payments = new WP_Query( $args ); |
|
| 338 | + |
|
| 339 | + if( $payments ) |
|
| 340 | + $ret = $payments->post_count; |
|
| 341 | + return $ret; |
|
| 342 | 342 | } |
| 343 | 343 | |
| 344 | 344 | function wpinv_settings_update_gateways( $input ) { |
@@ -310,7 +310,7 @@ discard block |
||
| 310 | 310 | if ( !wpinv_is_gateway_active( $enabled_gateway ) && !empty( $gateways ) ) { |
| 311 | 311 | if(wpinv_is_gateway_active( wpinv_get_default_gateway()) ){ |
| 312 | 312 | $enabled_gateway = wpinv_get_default_gateway(); |
| 313 | - }else{ |
|
| 313 | + } else{ |
|
| 314 | 314 | $enabled_gateway = $gateways[0]; |
| 315 | 315 | } |
| 316 | 316 | |
@@ -336,8 +336,9 @@ discard block |
||
| 336 | 336 | |
| 337 | 337 | $payments = new WP_Query( $args ); |
| 338 | 338 | |
| 339 | - if( $payments ) |
|
| 340 | - $ret = $payments->post_count; |
|
| 339 | + if( $payments ) { |
|
| 340 | + $ret = $payments->post_count; |
|
| 341 | + } |
|
| 341 | 342 | return $ret; |
| 342 | 343 | } |
| 343 | 344 | |
@@ -7,206 +7,206 @@ discard block |
||
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | 9 | // MUST have WordPress. |
| 10 | -if ( !defined( 'WPINC' ) ) { |
|
| 11 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) ); |
|
| 10 | +if (!defined('WPINC')) { |
|
| 11 | + exit('Do NOT access this file directly: ' . basename(__FILE__)); |
|
| 12 | 12 | } |
| 13 | 13 | |
| 14 | 14 | function wpinv_get_payment_gateways() { |
| 15 | 15 | // Default, built-in gateways |
| 16 | 16 | $gateways = array( |
| 17 | 17 | 'paypal' => array( |
| 18 | - 'admin_label' => __( 'PayPal Standard', 'invoicing' ), |
|
| 19 | - 'checkout_label' => __( 'PayPal Standard', 'invoicing' ), |
|
| 18 | + 'admin_label' => __('PayPal Standard', 'invoicing'), |
|
| 19 | + 'checkout_label' => __('PayPal Standard', 'invoicing'), |
|
| 20 | 20 | 'ordering' => 1, |
| 21 | 21 | ), |
| 22 | 22 | 'authorizenet' => array( |
| 23 | - 'admin_label' => __( 'Authorize.Net (AIM)', 'invoicing' ), |
|
| 24 | - 'checkout_label' => __( 'Authorize.Net - Credit Card / Debit Card', 'invoicing' ), |
|
| 23 | + 'admin_label' => __('Authorize.Net (AIM)', 'invoicing'), |
|
| 24 | + 'checkout_label' => __('Authorize.Net - Credit Card / Debit Card', 'invoicing'), |
|
| 25 | 25 | 'ordering' => 4, |
| 26 | 26 | ), |
| 27 | 27 | 'worldpay' => array( |
| 28 | - 'admin_label' => __( 'Worldpay', 'invoicing' ), |
|
| 29 | - 'checkout_label' => __( 'Worldpay - Credit Card / Debit Card', 'invoicing' ), |
|
| 28 | + 'admin_label' => __('Worldpay', 'invoicing'), |
|
| 29 | + 'checkout_label' => __('Worldpay - Credit Card / Debit Card', 'invoicing'), |
|
| 30 | 30 | 'ordering' => 5, |
| 31 | 31 | ), |
| 32 | 32 | 'bank_transfer' => array( |
| 33 | - 'admin_label' => __( 'Pre Bank Transfer', 'invoicing' ), |
|
| 34 | - 'checkout_label' => __( 'Pre Bank Transfer', 'invoicing' ), |
|
| 33 | + 'admin_label' => __('Pre Bank Transfer', 'invoicing'), |
|
| 34 | + 'checkout_label' => __('Pre Bank Transfer', 'invoicing'), |
|
| 35 | 35 | 'ordering' => 11, |
| 36 | 36 | ), |
| 37 | 37 | 'manual' => array( |
| 38 | - 'admin_label' => __( 'Test Payment', 'invoicing' ), |
|
| 39 | - 'checkout_label' => __( 'Test Payment', 'invoicing' ), |
|
| 38 | + 'admin_label' => __('Test Payment', 'invoicing'), |
|
| 39 | + 'checkout_label' => __('Test Payment', 'invoicing'), |
|
| 40 | 40 | 'ordering' => 12, |
| 41 | 41 | ), |
| 42 | 42 | ); |
| 43 | 43 | |
| 44 | - return apply_filters( 'wpinv_payment_gateways', $gateways ); |
|
| 44 | + return apply_filters('wpinv_payment_gateways', $gateways); |
|
| 45 | 45 | } |
| 46 | 46 | |
| 47 | -function wpinv_payment_gateway_titles( $all_gateways ) { |
|
| 47 | +function wpinv_payment_gateway_titles($all_gateways) { |
|
| 48 | 48 | global $wpinv_options; |
| 49 | 49 | |
| 50 | 50 | $gateways = array(); |
| 51 | - foreach ( $all_gateways as $key => $gateway ) { |
|
| 52 | - if ( !empty( $wpinv_options[$key . '_title'] ) ) { |
|
| 53 | - $all_gateways[$key]['checkout_label'] = __( $wpinv_options[$key . '_title'], 'invoicing' ); |
|
| 51 | + foreach ($all_gateways as $key => $gateway) { |
|
| 52 | + if (!empty($wpinv_options[$key . '_title'])) { |
|
| 53 | + $all_gateways[$key]['checkout_label'] = __($wpinv_options[$key . '_title'], 'invoicing'); |
|
| 54 | 54 | } |
| 55 | 55 | |
| 56 | - $gateways[$key] = isset( $wpinv_options[$key . '_ordering'] ) ? $wpinv_options[$key . '_ordering'] : ( isset( $gateway['ordering'] ) ? $gateway['ordering'] : '' ); |
|
| 56 | + $gateways[$key] = isset($wpinv_options[$key . '_ordering']) ? $wpinv_options[$key . '_ordering'] : (isset($gateway['ordering']) ? $gateway['ordering'] : ''); |
|
| 57 | 57 | } |
| 58 | 58 | |
| 59 | - asort( $gateways ); |
|
| 59 | + asort($gateways); |
|
| 60 | 60 | |
| 61 | - foreach ( $gateways as $gateway => $key ) { |
|
| 61 | + foreach ($gateways as $gateway => $key) { |
|
| 62 | 62 | $gateways[$gateway] = $all_gateways[$gateway]; |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | 65 | return $gateways; |
| 66 | 66 | } |
| 67 | -add_filter( 'wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1 ); |
|
| 67 | +add_filter('wpinv_payment_gateways', 'wpinv_payment_gateway_titles', 1000, 1); |
|
| 68 | 68 | |
| 69 | -function wpinv_get_enabled_payment_gateways( $sort = false ) { |
|
| 69 | +function wpinv_get_enabled_payment_gateways($sort = false) { |
|
| 70 | 70 | $gateways = wpinv_get_payment_gateways(); |
| 71 | - $enabled = wpinv_get_option( 'gateways', false ); |
|
| 71 | + $enabled = wpinv_get_option('gateways', false); |
|
| 72 | 72 | |
| 73 | 73 | $gateway_list = array(); |
| 74 | 74 | |
| 75 | - foreach ( $gateways as $key => $gateway ) { |
|
| 76 | - if ( isset( $enabled[ $key ] ) && $enabled[ $key ] == 1 ) { |
|
| 77 | - $gateway_list[ $key ] = $gateway; |
|
| 75 | + foreach ($gateways as $key => $gateway) { |
|
| 76 | + if (isset($enabled[$key]) && $enabled[$key] == 1) { |
|
| 77 | + $gateway_list[$key] = $gateway; |
|
| 78 | 78 | } |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | - if ( true === $sort ) { |
|
| 82 | - uasort( $gateway_list, 'wpinv_sort_gateway_order' ); |
|
| 81 | + if (true === $sort) { |
|
| 82 | + uasort($gateway_list, 'wpinv_sort_gateway_order'); |
|
| 83 | 83 | |
| 84 | 84 | // Reorder our gateways so the default is first |
| 85 | 85 | $default_gateway_id = wpinv_get_default_gateway(); |
| 86 | 86 | |
| 87 | - if ( wpinv_is_gateway_active( $default_gateway_id ) ) { |
|
| 88 | - $default_gateway = array( $default_gateway_id => $gateway_list[ $default_gateway_id ] ); |
|
| 89 | - unset( $gateway_list[ $default_gateway_id ] ); |
|
| 87 | + if (wpinv_is_gateway_active($default_gateway_id)) { |
|
| 88 | + $default_gateway = array($default_gateway_id => $gateway_list[$default_gateway_id]); |
|
| 89 | + unset($gateway_list[$default_gateway_id]); |
|
| 90 | 90 | |
| 91 | - $gateway_list = array_merge( $default_gateway, $gateway_list ); |
|
| 91 | + $gateway_list = array_merge($default_gateway, $gateway_list); |
|
| 92 | 92 | } |
| 93 | 93 | } |
| 94 | 94 | |
| 95 | - return apply_filters( 'wpinv_enabled_payment_gateways', $gateway_list ); |
|
| 95 | + return apply_filters('wpinv_enabled_payment_gateways', $gateway_list); |
|
| 96 | 96 | } |
| 97 | 97 | |
| 98 | -function wpinv_sort_gateway_order( $a, $b ) { |
|
| 98 | +function wpinv_sort_gateway_order($a, $b) { |
|
| 99 | 99 | return $a['ordering'] - $b['ordering']; |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | -function wpinv_is_gateway_active( $gateway ) { |
|
| 102 | +function wpinv_is_gateway_active($gateway) { |
|
| 103 | 103 | $gateways = wpinv_get_enabled_payment_gateways(); |
| 104 | 104 | |
| 105 | - $ret = is_array($gateways) && $gateway ? array_key_exists( $gateway, $gateways ) : false; |
|
| 105 | + $ret = is_array($gateways) && $gateway ? array_key_exists($gateway, $gateways) : false; |
|
| 106 | 106 | |
| 107 | - return apply_filters( 'wpinv_is_gateway_active', $ret, $gateway, $gateways ); |
|
| 107 | + return apply_filters('wpinv_is_gateway_active', $ret, $gateway, $gateways); |
|
| 108 | 108 | } |
| 109 | 109 | |
| 110 | 110 | function wpinv_get_default_gateway() { |
| 111 | - $default = wpinv_get_option( 'default_gateway', 'paypal' ); |
|
| 111 | + $default = wpinv_get_option('default_gateway', 'paypal'); |
|
| 112 | 112 | |
| 113 | - if ( !wpinv_is_gateway_active( $default ) ) { |
|
| 113 | + if (!wpinv_is_gateway_active($default)) { |
|
| 114 | 114 | $gateways = wpinv_get_enabled_payment_gateways(); |
| 115 | - $gateways = array_keys( $gateways ); |
|
| 116 | - $default = reset( $gateways ); |
|
| 115 | + $gateways = array_keys($gateways); |
|
| 116 | + $default = reset($gateways); |
|
| 117 | 117 | } |
| 118 | 118 | |
| 119 | - return apply_filters( 'wpinv_default_gateway', $default ); |
|
| 119 | + return apply_filters('wpinv_default_gateway', $default); |
|
| 120 | 120 | } |
| 121 | 121 | |
| 122 | -function wpinv_get_gateway_admin_label( $gateway ) { |
|
| 122 | +function wpinv_get_gateway_admin_label($gateway) { |
|
| 123 | 123 | $gateways = wpinv_get_payment_gateways(); |
| 124 | - $label = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['admin_label'] : $gateway; |
|
| 125 | - $payment = isset( $_GET['id'] ) ? absint( $_GET['id'] ) : false; |
|
| 124 | + $label = isset($gateways[$gateway]) ? $gateways[$gateway]['admin_label'] : $gateway; |
|
| 125 | + $payment = isset($_GET['id']) ? absint($_GET['id']) : false; |
|
| 126 | 126 | |
| 127 | - if( $gateway == 'manual' && $payment ) { |
|
| 128 | - if( !( (float)wpinv_payment_total( $payment ) > 0 ) ) { |
|
| 129 | - $label = __( 'Free Purchase', 'invoicing' ); |
|
| 127 | + if ($gateway == 'manual' && $payment) { |
|
| 128 | + if (!((float)wpinv_payment_total($payment) > 0)) { |
|
| 129 | + $label = __('Free Purchase', 'invoicing'); |
|
| 130 | 130 | } |
| 131 | 131 | } |
| 132 | 132 | |
| 133 | - return apply_filters( 'wpinv_gateway_admin_label', $label, $gateway ); |
|
| 133 | + return apply_filters('wpinv_gateway_admin_label', $label, $gateway); |
|
| 134 | 134 | } |
| 135 | 135 | |
| 136 | -function wpinv_get_gateway_description( $gateway ) { |
|
| 136 | +function wpinv_get_gateway_description($gateway) { |
|
| 137 | 137 | global $wpinv_options; |
| 138 | 138 | |
| 139 | - $description = isset( $wpinv_options[$gateway . '_desc'] ) ? $wpinv_options[$gateway . '_desc'] : ''; |
|
| 139 | + $description = isset($wpinv_options[$gateway . '_desc']) ? $wpinv_options[$gateway . '_desc'] : ''; |
|
| 140 | 140 | |
| 141 | - return apply_filters( 'wpinv_gateway_description', $description, $gateway ); |
|
| 141 | + return apply_filters('wpinv_gateway_description', $description, $gateway); |
|
| 142 | 142 | } |
| 143 | 143 | |
| 144 | -function wpinv_get_gateway_button_label( $gateway ) { |
|
| 145 | - return apply_filters( 'wpinv_gateway_' . $gateway . '_button_label', '' ); |
|
| 144 | +function wpinv_get_gateway_button_label($gateway) { |
|
| 145 | + return apply_filters('wpinv_gateway_' . $gateway . '_button_label', ''); |
|
| 146 | 146 | } |
| 147 | 147 | |
| 148 | -function wpinv_get_gateway_checkout_label( $gateway ) { |
|
| 148 | +function wpinv_get_gateway_checkout_label($gateway) { |
|
| 149 | 149 | $gateways = wpinv_get_payment_gateways(); |
| 150 | - $label = isset( $gateways[ $gateway ] ) ? $gateways[ $gateway ]['checkout_label'] : $gateway; |
|
| 150 | + $label = isset($gateways[$gateway]) ? $gateways[$gateway]['checkout_label'] : $gateway; |
|
| 151 | 151 | |
| 152 | - if( $gateway == 'manual' ) { |
|
| 153 | - $label = __( 'Manual Payment', 'invoicing' ); |
|
| 152 | + if ($gateway == 'manual') { |
|
| 153 | + $label = __('Manual Payment', 'invoicing'); |
|
| 154 | 154 | } |
| 155 | 155 | |
| 156 | - return apply_filters( 'wpinv_gateway_checkout_label', $label, $gateway ); |
|
| 156 | + return apply_filters('wpinv_gateway_checkout_label', $label, $gateway); |
|
| 157 | 157 | } |
| 158 | 158 | |
| 159 | -function wpinv_settings_sections_gateways( $settings ) { |
|
| 159 | +function wpinv_settings_sections_gateways($settings) { |
|
| 160 | 160 | $gateways = wpinv_get_payment_gateways(); |
| 161 | 161 | |
| 162 | 162 | if (!empty($gateways)) { |
| 163 | - foreach ($gateways as $key => $gateway) { |
|
| 163 | + foreach ($gateways as $key => $gateway) { |
|
| 164 | 164 | $settings[$key] = $gateway['admin_label']; |
| 165 | 165 | } |
| 166 | 166 | } |
| 167 | 167 | |
| 168 | 168 | return $settings; |
| 169 | 169 | } |
| 170 | -add_filter( 'wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1 ); |
|
| 170 | +add_filter('wpinv_settings_sections_gateways', 'wpinv_settings_sections_gateways', 10, 1); |
|
| 171 | 171 | |
| 172 | -function wpinv_settings_gateways( $settings ) { |
|
| 172 | +function wpinv_settings_gateways($settings) { |
|
| 173 | 173 | $gateways = wpinv_get_payment_gateways(); |
| 174 | 174 | |
| 175 | 175 | if (!empty($gateways)) { |
| 176 | - foreach ($gateways as $key => $gateway) { |
|
| 176 | + foreach ($gateways as $key => $gateway) { |
|
| 177 | 177 | $setting = array(); |
| 178 | 178 | $setting[$key . '_header'] = array( |
| 179 | 179 | 'id' => 'gateway_header', |
| 180 | - 'name' => '<h3>' . wp_sprintf( __( '%s Settings', 'invoicing' ), $gateway['admin_label'] ) . '</h3>', |
|
| 180 | + 'name' => '<h3>' . wp_sprintf(__('%s Settings', 'invoicing'), $gateway['admin_label']) . '</h3>', |
|
| 181 | 181 | 'custom' => $key, |
| 182 | 182 | 'type' => 'gateway_header', |
| 183 | 183 | ); |
| 184 | 184 | $setting[$key . '_active'] = array( |
| 185 | 185 | 'id' => $key . '_active', |
| 186 | - 'name' => __( 'Active', 'invoicing' ), |
|
| 187 | - 'desc' => wp_sprintf( __( 'Enable %s', 'invoicing' ), $gateway['admin_label'] ), |
|
| 186 | + 'name' => __('Active', 'invoicing'), |
|
| 187 | + 'desc' => wp_sprintf(__('Enable %s', 'invoicing'), $gateway['admin_label']), |
|
| 188 | 188 | 'type' => 'checkbox', |
| 189 | 189 | ); |
| 190 | 190 | |
| 191 | 191 | $setting[$key . '_title'] = array( |
| 192 | 192 | 'id' => $key . '_title', |
| 193 | - 'name' => __( 'Title', 'invoicing' ), |
|
| 194 | - 'desc' => __( 'This controls the title which the user sees during checkout.', 'invoicing' ), |
|
| 193 | + 'name' => __('Title', 'invoicing'), |
|
| 194 | + 'desc' => __('This controls the title which the user sees during checkout.', 'invoicing'), |
|
| 195 | 195 | 'type' => 'text', |
| 196 | 196 | 'std' => isset($gateway['checkout_label']) ? $gateway['checkout_label'] : '' |
| 197 | 197 | ); |
| 198 | 198 | |
| 199 | 199 | $setting[$key . '_desc'] = array( |
| 200 | 200 | 'id' => $key . '_desc', |
| 201 | - 'name' => __( 'Description', 'invoicing' ), |
|
| 202 | - 'desc' => __( 'This controls the description which the user sees during checkout.', 'invoicing' ), |
|
| 201 | + 'name' => __('Description', 'invoicing'), |
|
| 202 | + 'desc' => __('This controls the description which the user sees during checkout.', 'invoicing'), |
|
| 203 | 203 | 'type' => 'text', |
| 204 | 204 | 'size' => 'large' |
| 205 | 205 | ); |
| 206 | 206 | |
| 207 | 207 | $setting[$key . '_ordering'] = array( |
| 208 | 208 | 'id' => $key . '_ordering', |
| 209 | - 'name' => __( 'Display Order', 'invoicing' ), |
|
| 209 | + 'name' => __('Display Order', 'invoicing'), |
|
| 210 | 210 | 'type' => 'number', |
| 211 | 211 | 'size' => 'small', |
| 212 | 212 | 'std' => isset($gateway['ordering']) ? $gateway['ordering'] : '10', |
@@ -215,8 +215,8 @@ discard block |
||
| 215 | 215 | 'step' => '1' |
| 216 | 216 | ); |
| 217 | 217 | |
| 218 | - $setting = apply_filters( 'wpinv_gateway_settings', $setting, $key ); |
|
| 219 | - $setting = apply_filters( 'wpinv_gateway_settings_' . $key, $setting ); |
|
| 218 | + $setting = apply_filters('wpinv_gateway_settings', $setting, $key); |
|
| 219 | + $setting = apply_filters('wpinv_gateway_settings_' . $key, $setting); |
|
| 220 | 220 | |
| 221 | 221 | $settings[$key] = $setting; |
| 222 | 222 | } |
@@ -224,106 +224,106 @@ discard block |
||
| 224 | 224 | |
| 225 | 225 | return $settings; |
| 226 | 226 | } |
| 227 | -add_filter( 'wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1 ); |
|
| 227 | +add_filter('wpinv_settings_gateways', 'wpinv_settings_gateways', 10, 1); |
|
| 228 | 228 | |
| 229 | -function wpinv_gateway_header_callback( $args ) { |
|
| 230 | - echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr( $args['custom'] ) . '" />'; |
|
| 229 | +function wpinv_gateway_header_callback($args) { |
|
| 230 | + echo '<input type="hidden" id="wpinv_settings[save_gateway]" name="wpinv_settings[save_gateway]" value="' . esc_attr($args['custom']) . '" />'; |
|
| 231 | 231 | } |
| 232 | 232 | |
| 233 | -function wpinv_get_gateway_supports( $gateway ) { |
|
| 233 | +function wpinv_get_gateway_supports($gateway) { |
|
| 234 | 234 | $gateways = wpinv_get_enabled_payment_gateways(); |
| 235 | - $supports = isset( $gateways[ $gateway ]['supports'] ) ? $gateways[ $gateway ]['supports'] : array(); |
|
| 236 | - return apply_filters( 'wpinv_gateway_supports', $supports, $gateway ); |
|
| 235 | + $supports = isset($gateways[$gateway]['supports']) ? $gateways[$gateway]['supports'] : array(); |
|
| 236 | + return apply_filters('wpinv_gateway_supports', $supports, $gateway); |
|
| 237 | 237 | } |
| 238 | 238 | |
| 239 | -function wpinv_gateway_supports_buy_now( $gateway ) { |
|
| 240 | - $supports = wpinv_get_gateway_supports( $gateway ); |
|
| 241 | - $ret = in_array( 'buy_now', $supports ); |
|
| 242 | - return apply_filters( 'wpinv_gateway_supports_buy_now', $ret, $gateway ); |
|
| 239 | +function wpinv_gateway_supports_buy_now($gateway) { |
|
| 240 | + $supports = wpinv_get_gateway_supports($gateway); |
|
| 241 | + $ret = in_array('buy_now', $supports); |
|
| 242 | + return apply_filters('wpinv_gateway_supports_buy_now', $ret, $gateway); |
|
| 243 | 243 | } |
| 244 | 244 | |
| 245 | 245 | function wpinv_shop_supports_buy_now() { |
| 246 | 246 | $gateways = wpinv_get_enabled_payment_gateways(); |
| 247 | 247 | $ret = false; |
| 248 | 248 | |
| 249 | - if ( !wpinv_use_taxes() && $gateways ) { |
|
| 250 | - foreach ( $gateways as $gateway_id => $gateway ) { |
|
| 251 | - if ( wpinv_gateway_supports_buy_now( $gateway_id ) ) { |
|
| 249 | + if (!wpinv_use_taxes() && $gateways) { |
|
| 250 | + foreach ($gateways as $gateway_id => $gateway) { |
|
| 251 | + if (wpinv_gateway_supports_buy_now($gateway_id)) { |
|
| 252 | 252 | $ret = true; |
| 253 | 253 | break; |
| 254 | 254 | } |
| 255 | 255 | } |
| 256 | 256 | } |
| 257 | 257 | |
| 258 | - return apply_filters( 'wpinv_shop_supports_buy_now', $ret ); |
|
| 258 | + return apply_filters('wpinv_shop_supports_buy_now', $ret); |
|
| 259 | 259 | } |
| 260 | 260 | |
| 261 | -function wpinv_send_to_gateway( $gateway, $payment_data ) { |
|
| 262 | - $payment_data['gateway_nonce'] = wp_create_nonce( 'wpi-gateway' ); |
|
| 261 | +function wpinv_send_to_gateway($gateway, $payment_data) { |
|
| 262 | + $payment_data['gateway_nonce'] = wp_create_nonce('wpi-gateway'); |
|
| 263 | 263 | |
| 264 | 264 | // $gateway must match the ID used when registering the gateway |
| 265 | - do_action( 'wpinv_gateway_' . $gateway, $payment_data ); |
|
| 265 | + do_action('wpinv_gateway_' . $gateway, $payment_data); |
|
| 266 | 266 | } |
| 267 | 267 | |
| 268 | 268 | function wpinv_show_gateways() { |
| 269 | 269 | $gateways = wpinv_get_enabled_payment_gateways(); |
| 270 | 270 | $show_gateways = false; |
| 271 | 271 | |
| 272 | - $chosen_gateway = isset( $_GET['payment-mode'] ) ? preg_replace('/[^a-zA-Z0-9-_]+/', '', $_GET['payment-mode'] ) : false; |
|
| 272 | + $chosen_gateway = isset($_GET['payment-mode']) ? preg_replace('/[^a-zA-Z0-9-_]+/', '', $_GET['payment-mode']) : false; |
|
| 273 | 273 | |
| 274 | - if ( count( $gateways ) > 1 && empty( $chosen_gateway ) ) { |
|
| 274 | + if (count($gateways) > 1 && empty($chosen_gateway)) { |
|
| 275 | 275 | $show_gateways = true; |
| 276 | - if ( wpinv_get_cart_total() <= 0 ) { |
|
| 276 | + if (wpinv_get_cart_total() <= 0) { |
|
| 277 | 277 | $show_gateways = false; |
| 278 | 278 | } |
| 279 | 279 | } |
| 280 | 280 | |
| 281 | - if ( !$show_gateways && wpinv_cart_has_recurring_item() ) { |
|
| 281 | + if (!$show_gateways && wpinv_cart_has_recurring_item()) { |
|
| 282 | 282 | $show_gateways = true; |
| 283 | 283 | } |
| 284 | 284 | |
| 285 | - return apply_filters( 'wpinv_show_gateways', $show_gateways ); |
|
| 285 | + return apply_filters('wpinv_show_gateways', $show_gateways); |
|
| 286 | 286 | } |
| 287 | 287 | |
| 288 | -function wpinv_get_chosen_gateway( $invoice_id = 0 ) { |
|
| 289 | - $gateways = array_keys( wpinv_get_enabled_payment_gateways() ); |
|
| 288 | +function wpinv_get_chosen_gateway($invoice_id = 0) { |
|
| 289 | + $gateways = array_keys(wpinv_get_enabled_payment_gateways()); |
|
| 290 | 290 | |
| 291 | 291 | $chosen = false; |
| 292 | - if ( $invoice_id > 0 && $invoice = wpinv_get_invoice( $invoice_id ) ) { |
|
| 292 | + if ($invoice_id > 0 && $invoice = wpinv_get_invoice($invoice_id)) { |
|
| 293 | 293 | $chosen = $invoice->get_gateway(); |
| 294 | 294 | } |
| 295 | 295 | |
| 296 | - $chosen = isset( $_REQUEST['payment-mode'] ) ? sanitize_text_field( $_REQUEST['payment-mode'] ) : $chosen; |
|
| 296 | + $chosen = isset($_REQUEST['payment-mode']) ? sanitize_text_field($_REQUEST['payment-mode']) : $chosen; |
|
| 297 | 297 | |
| 298 | - if ( false !== $chosen ) { |
|
| 299 | - $chosen = preg_replace('/[^a-zA-Z0-9-_]+/', '', $chosen ); |
|
| 298 | + if (false !== $chosen) { |
|
| 299 | + $chosen = preg_replace('/[^a-zA-Z0-9-_]+/', '', $chosen); |
|
| 300 | 300 | } |
| 301 | 301 | |
| 302 | - if ( ! empty ( $chosen ) ) { |
|
| 303 | - $enabled_gateway = urldecode( $chosen ); |
|
| 304 | - } else if ( !empty( $invoice ) && (float)$invoice->get_subtotal() <= 0 ) { |
|
| 302 | + if (!empty ($chosen)) { |
|
| 303 | + $enabled_gateway = urldecode($chosen); |
|
| 304 | + } else if (!empty($invoice) && (float)$invoice->get_subtotal() <= 0) { |
|
| 305 | 305 | $enabled_gateway = 'manual'; |
| 306 | 306 | } else { |
| 307 | 307 | $enabled_gateway = wpinv_get_default_gateway(); |
| 308 | 308 | } |
| 309 | 309 | |
| 310 | - if ( !wpinv_is_gateway_active( $enabled_gateway ) && !empty( $gateways ) ) { |
|
| 311 | - if(wpinv_is_gateway_active( wpinv_get_default_gateway()) ){ |
|
| 310 | + if (!wpinv_is_gateway_active($enabled_gateway) && !empty($gateways)) { |
|
| 311 | + if (wpinv_is_gateway_active(wpinv_get_default_gateway())) { |
|
| 312 | 312 | $enabled_gateway = wpinv_get_default_gateway(); |
| 313 | - }else{ |
|
| 313 | + } else { |
|
| 314 | 314 | $enabled_gateway = $gateways[0]; |
| 315 | 315 | } |
| 316 | 316 | |
| 317 | 317 | } |
| 318 | 318 | |
| 319 | - return apply_filters( 'wpinv_chosen_gateway', $enabled_gateway ); |
|
| 319 | + return apply_filters('wpinv_chosen_gateway', $enabled_gateway); |
|
| 320 | 320 | } |
| 321 | 321 | |
| 322 | -function wpinv_record_gateway_error( $title = '', $message = '', $parent = 0 ) { |
|
| 323 | - return wpinv_error_log( $message, $title ); |
|
| 322 | +function wpinv_record_gateway_error($title = '', $message = '', $parent = 0) { |
|
| 323 | + return wpinv_error_log($message, $title); |
|
| 324 | 324 | } |
| 325 | 325 | |
| 326 | -function wpinv_count_sales_by_gateway( $gateway_id = 'paypal', $status = 'publish' ) { |
|
| 326 | +function wpinv_count_sales_by_gateway($gateway_id = 'paypal', $status = 'publish') { |
|
| 327 | 327 | $ret = 0; |
| 328 | 328 | $args = array( |
| 329 | 329 | 'meta_key' => '_wpinv_gateway', |
@@ -334,48 +334,48 @@ discard block |
||
| 334 | 334 | 'fields' => 'ids' |
| 335 | 335 | ); |
| 336 | 336 | |
| 337 | - $payments = new WP_Query( $args ); |
|
| 337 | + $payments = new WP_Query($args); |
|
| 338 | 338 | |
| 339 | - if( $payments ) |
|
| 339 | + if ($payments) |
|
| 340 | 340 | $ret = $payments->post_count; |
| 341 | 341 | return $ret; |
| 342 | 342 | } |
| 343 | 343 | |
| 344 | -function wpinv_settings_update_gateways( $input ) { |
|
| 344 | +function wpinv_settings_update_gateways($input) { |
|
| 345 | 345 | global $wpinv_options; |
| 346 | 346 | |
| 347 | - if ( !empty( $input['save_gateway'] ) ) { |
|
| 348 | - $gateways = wpinv_get_option( 'gateways', false ); |
|
| 347 | + if (!empty($input['save_gateway'])) { |
|
| 348 | + $gateways = wpinv_get_option('gateways', false); |
|
| 349 | 349 | $gateways = !empty($gateways) ? $gateways : array(); |
| 350 | 350 | $gateway = $input['save_gateway']; |
| 351 | 351 | |
| 352 | - if ( !empty( $input[$gateway . '_active'] ) ) { |
|
| 352 | + if (!empty($input[$gateway . '_active'])) { |
|
| 353 | 353 | $gateways[$gateway] = 1; |
| 354 | 354 | } else { |
| 355 | - if ( isset( $gateways[$gateway] ) ) { |
|
| 356 | - unset( $gateways[$gateway] ); |
|
| 355 | + if (isset($gateways[$gateway])) { |
|
| 356 | + unset($gateways[$gateway]); |
|
| 357 | 357 | } |
| 358 | 358 | } |
| 359 | 359 | |
| 360 | 360 | $input['gateways'] = $gateways; |
| 361 | 361 | } |
| 362 | 362 | |
| 363 | - if ( !empty( $input['default_gateway'] ) ) { |
|
| 363 | + if (!empty($input['default_gateway'])) { |
|
| 364 | 364 | $gateways = wpinv_get_payment_gateways(); |
| 365 | 365 | |
| 366 | - foreach ( $gateways as $key => $gateway ) { |
|
| 367 | - $active = 0; |
|
| 368 | - if ( !empty( $input['gateways'] ) && !empty( $input['gateways'][$key] ) ) { |
|
| 366 | + foreach ($gateways as $key => $gateway) { |
|
| 367 | + $active = 0; |
|
| 368 | + if (!empty($input['gateways']) && !empty($input['gateways'][$key])) { |
|
| 369 | 369 | $active = 1; |
| 370 | 370 | } |
| 371 | 371 | |
| 372 | 372 | $input[$key . '_active'] = $active; |
| 373 | 373 | |
| 374 | - if ( empty( $wpinv_options[$key . '_title'] ) ) { |
|
| 374 | + if (empty($wpinv_options[$key . '_title'])) { |
|
| 375 | 375 | $input[$key . '_title'] = $gateway['checkout_label']; |
| 376 | 376 | } |
| 377 | 377 | |
| 378 | - if ( !isset( $wpinv_options[$key . '_ordering'] ) && isset( $gateway['ordering'] ) ) { |
|
| 378 | + if (!isset($wpinv_options[$key . '_ordering']) && isset($gateway['ordering'])) { |
|
| 379 | 379 | $input[$key . '_ordering'] = $gateway['ordering']; |
| 380 | 380 | } |
| 381 | 381 | } |
@@ -383,26 +383,26 @@ discard block |
||
| 383 | 383 | |
| 384 | 384 | return $input; |
| 385 | 385 | } |
| 386 | -add_filter( 'wpinv_settings_tab_gateways_sanitize', 'wpinv_settings_update_gateways', 10, 1 ); |
|
| 386 | +add_filter('wpinv_settings_tab_gateways_sanitize', 'wpinv_settings_update_gateways', 10, 1); |
|
| 387 | 387 | |
| 388 | 388 | // PayPal Standard settings |
| 389 | -function wpinv_gateway_settings_paypal( $setting ) { |
|
| 390 | - $setting['paypal_desc']['std'] = __( 'Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing' ); |
|
| 389 | +function wpinv_gateway_settings_paypal($setting) { |
|
| 390 | + $setting['paypal_desc']['std'] = __('Pay via PayPal: you can pay with your credit card if you don\'t have a PayPal account.', 'invoicing'); |
|
| 391 | 391 | |
| 392 | 392 | $setting['paypal_sandbox'] = array( |
| 393 | 393 | 'type' => 'checkbox', |
| 394 | 394 | 'id' => 'paypal_sandbox', |
| 395 | - 'name' => __( 'PayPal Sandbox', 'invoicing' ), |
|
| 396 | - 'desc' => __( 'PayPal sandbox can be used to test payments.', 'invoicing' ), |
|
| 395 | + 'name' => __('PayPal Sandbox', 'invoicing'), |
|
| 396 | + 'desc' => __('PayPal sandbox can be used to test payments.', 'invoicing'), |
|
| 397 | 397 | 'std' => 1 |
| 398 | 398 | ); |
| 399 | 399 | |
| 400 | 400 | $setting['paypal_email'] = array( |
| 401 | 401 | 'type' => 'text', |
| 402 | 402 | 'id' => 'paypal_email', |
| 403 | - 'name' => __( 'PayPal Email', 'invoicing' ), |
|
| 404 | - 'desc' => __( 'Please enter your PayPal account\'s email address. Ex: [email protected]', 'invoicing' ), |
|
| 405 | - 'std' => __( '[email protected]', 'invoicing' ), |
|
| 403 | + 'name' => __('PayPal Email', 'invoicing'), |
|
| 404 | + 'desc' => __('Please enter your PayPal account\'s email address. Ex: [email protected]', 'invoicing'), |
|
| 405 | + 'std' => __('[email protected]', 'invoicing'), |
|
| 406 | 406 | ); |
| 407 | 407 | /* |
| 408 | 408 | $setting['paypal_ipn_url'] = array( |
@@ -416,123 +416,123 @@ discard block |
||
| 416 | 416 | |
| 417 | 417 | return $setting; |
| 418 | 418 | } |
| 419 | -add_filter( 'wpinv_gateway_settings_paypal', 'wpinv_gateway_settings_paypal', 10, 1 ); |
|
| 419 | +add_filter('wpinv_gateway_settings_paypal', 'wpinv_gateway_settings_paypal', 10, 1); |
|
| 420 | 420 | |
| 421 | 421 | // Pre Bank Transfer settings |
| 422 | -function wpinv_gateway_settings_bank_transfer( $setting ) { |
|
| 423 | - $setting['bank_transfer_desc']['std'] = __( 'Make your payment directly into our bank account. Please use your Invoice ID as the payment reference. Your invoice won\'t be processed until the funds have cleared in our account.', 'invoicing' ); |
|
| 422 | +function wpinv_gateway_settings_bank_transfer($setting) { |
|
| 423 | + $setting['bank_transfer_desc']['std'] = __('Make your payment directly into our bank account. Please use your Invoice ID as the payment reference. Your invoice won\'t be processed until the funds have cleared in our account.', 'invoicing'); |
|
| 424 | 424 | |
| 425 | 425 | $setting['bank_transfer_ac_name'] = array( |
| 426 | 426 | 'type' => 'text', |
| 427 | 427 | 'id' => 'bank_transfer_ac_name', |
| 428 | - 'name' => __( 'Account Name', 'invoicing' ), |
|
| 429 | - 'desc' => __( 'Enter the bank account name to which you want to transfer payment.', 'invoicing' ), |
|
| 430 | - 'std' => __( 'Mr. John Martin', 'invoicing' ), |
|
| 428 | + 'name' => __('Account Name', 'invoicing'), |
|
| 429 | + 'desc' => __('Enter the bank account name to which you want to transfer payment.', 'invoicing'), |
|
| 430 | + 'std' => __('Mr. John Martin', 'invoicing'), |
|
| 431 | 431 | ); |
| 432 | 432 | |
| 433 | 433 | $setting['bank_transfer_ac_no'] = array( |
| 434 | 434 | 'type' => 'text', |
| 435 | 435 | 'id' => 'bank_transfer_ac_no', |
| 436 | - 'name' => __( 'Account Number', 'invoicing' ), |
|
| 437 | - 'desc' => __( 'Enter your bank account number.', 'invoicing' ), |
|
| 438 | - 'std' => __( 'TEST1234567890', 'invoicing' ), |
|
| 436 | + 'name' => __('Account Number', 'invoicing'), |
|
| 437 | + 'desc' => __('Enter your bank account number.', 'invoicing'), |
|
| 438 | + 'std' => __('TEST1234567890', 'invoicing'), |
|
| 439 | 439 | ); |
| 440 | 440 | |
| 441 | 441 | $setting['bank_transfer_bank_name'] = array( |
| 442 | 442 | 'type' => 'text', |
| 443 | 443 | 'id' => 'bank_transfer_bank_name', |
| 444 | - 'name' => __( 'Bank Name', 'invoicing' ), |
|
| 445 | - 'desc' => __( 'Enter the bank name to which you want to transfer payment.', 'invoicing' ), |
|
| 446 | - 'std' => __( 'ICICI Bank', 'invoicing' ), |
|
| 444 | + 'name' => __('Bank Name', 'invoicing'), |
|
| 445 | + 'desc' => __('Enter the bank name to which you want to transfer payment.', 'invoicing'), |
|
| 446 | + 'std' => __('ICICI Bank', 'invoicing'), |
|
| 447 | 447 | ); |
| 448 | 448 | |
| 449 | 449 | $setting['bank_transfer_ifsc'] = array( |
| 450 | 450 | 'type' => 'text', |
| 451 | 451 | 'id' => 'bank_transfer_ifsc', |
| 452 | - 'name' => __( 'IFSC Code', 'invoicing' ), |
|
| 453 | - 'desc' => __( 'Enter your bank IFSC code.', 'invoicing' ), |
|
| 454 | - 'std' => __( 'ICIC0001234', 'invoicing' ), |
|
| 452 | + 'name' => __('IFSC Code', 'invoicing'), |
|
| 453 | + 'desc' => __('Enter your bank IFSC code.', 'invoicing'), |
|
| 454 | + 'std' => __('ICIC0001234', 'invoicing'), |
|
| 455 | 455 | ); |
| 456 | 456 | |
| 457 | 457 | $setting['bank_transfer_iban'] = array( |
| 458 | 458 | 'type' => 'text', |
| 459 | 459 | 'id' => 'bank_transfer_iban', |
| 460 | - 'name' => __( 'IBAN', 'invoicing' ), |
|
| 461 | - 'desc' => __( 'Enter your International Bank Account Number(IBAN).', 'invoicing' ), |
|
| 462 | - 'std' => __( 'GB29NWBK60161331926819', 'invoicing' ), |
|
| 460 | + 'name' => __('IBAN', 'invoicing'), |
|
| 461 | + 'desc' => __('Enter your International Bank Account Number(IBAN).', 'invoicing'), |
|
| 462 | + 'std' => __('GB29NWBK60161331926819', 'invoicing'), |
|
| 463 | 463 | ); |
| 464 | 464 | |
| 465 | 465 | $setting['bank_transfer_bic'] = array( |
| 466 | 466 | 'type' => 'text', |
| 467 | 467 | 'id' => 'bank_transfer_bic', |
| 468 | - 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
|
| 469 | - 'std' => __( 'ICICGB2L129', 'invoicing' ), |
|
| 468 | + 'name' => __('BIC/Swift Code', 'invoicing'), |
|
| 469 | + 'std' => __('ICICGB2L129', 'invoicing'), |
|
| 470 | 470 | ); |
| 471 | 471 | |
| 472 | 472 | $setting['bank_transfer_sort_code'] = array( |
| 473 | 473 | 'type' => 'text', |
| 474 | 474 | 'id' => 'bank_transfer_sort_code', |
| 475 | - 'name' => __( 'Sort Code', 'invoicing' ), |
|
| 476 | - 'std' => __( '12-34-56', 'invoicing' ), |
|
| 475 | + 'name' => __('Sort Code', 'invoicing'), |
|
| 476 | + 'std' => __('12-34-56', 'invoicing'), |
|
| 477 | 477 | ); |
| 478 | 478 | |
| 479 | 479 | $setting['bank_transfer_info'] = array( |
| 480 | 480 | 'id' => 'bank_transfer_info', |
| 481 | - 'name' => __( 'Instructions', 'invoicing' ), |
|
| 482 | - 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
|
| 481 | + 'name' => __('Instructions', 'invoicing'), |
|
| 482 | + 'desc' => __('Instructions that will be added to the thank you page and emails.', 'invoicing'), |
|
| 483 | 483 | 'type' => 'textarea', |
| 484 | - 'std' => __( 'Make your payment directly into our bank account. Please use your Invoice ID as the payment reference. Your invoice won\'t be processed until the funds have cleared in our account.', 'invoicing' ), |
|
| 484 | + 'std' => __('Make your payment directly into our bank account. Please use your Invoice ID as the payment reference. Your invoice won\'t be processed until the funds have cleared in our account.', 'invoicing'), |
|
| 485 | 485 | 'cols' => 37, |
| 486 | 486 | 'rows' => 5 |
| 487 | 487 | ); |
| 488 | 488 | |
| 489 | 489 | return $setting; |
| 490 | 490 | } |
| 491 | -add_filter( 'wpinv_gateway_settings_bank_transfer', 'wpinv_gateway_settings_bank_transfer', 10, 1 ); |
|
| 491 | +add_filter('wpinv_gateway_settings_bank_transfer', 'wpinv_gateway_settings_bank_transfer', 10, 1); |
|
| 492 | 492 | |
| 493 | 493 | // Authorize.Net settings |
| 494 | -function wpinv_gateway_settings_authorizenet( $setting ) { |
|
| 495 | - $setting['authorizenet_active']['desc'] = $setting['authorizenet_active']['desc'] . ' ' . __( '( currencies supported: AUD, CAD, CHF, DKK, EUR, GBP, JPY, NOK, NZD, PLN, SEK, USD, ZAR )', 'invoicing' ); |
|
| 496 | - $setting['authorizenet_desc']['std'] = __( 'Pay using a Authorize.Net to process credit card / debit card transactions.', 'invoicing' ); |
|
| 494 | +function wpinv_gateway_settings_authorizenet($setting) { |
|
| 495 | + $setting['authorizenet_active']['desc'] = $setting['authorizenet_active']['desc'] . ' ' . __('( currencies supported: AUD, CAD, CHF, DKK, EUR, GBP, JPY, NOK, NZD, PLN, SEK, USD, ZAR )', 'invoicing'); |
|
| 496 | + $setting['authorizenet_desc']['std'] = __('Pay using a Authorize.Net to process credit card / debit card transactions.', 'invoicing'); |
|
| 497 | 497 | |
| 498 | 498 | $setting['authorizenet_sandbox'] = array( |
| 499 | 499 | 'type' => 'checkbox', |
| 500 | 500 | 'id' => 'authorizenet_sandbox', |
| 501 | - 'name' => __( 'Authorize.Net Test Mode', 'invoicing' ), |
|
| 502 | - 'desc' => __( 'Enable Authorize.Net test mode to test payments.', 'invoicing' ), |
|
| 501 | + 'name' => __('Authorize.Net Test Mode', 'invoicing'), |
|
| 502 | + 'desc' => __('Enable Authorize.Net test mode to test payments.', 'invoicing'), |
|
| 503 | 503 | 'std' => 1 |
| 504 | 504 | ); |
| 505 | 505 | |
| 506 | 506 | $setting['authorizenet_login_id'] = array( |
| 507 | 507 | 'type' => 'text', |
| 508 | 508 | 'id' => 'authorizenet_login_id', |
| 509 | - 'name' => __( 'API Login ID', 'invoicing' ), |
|
| 510 | - 'desc' => __( 'API Login ID can be obtained from Authorize.Net Account > Settings > Security Settings > General Security Settings > API Credentials & Keys. Example : 2j4rBekUnD', 'invoicing' ), |
|
| 509 | + 'name' => __('API Login ID', 'invoicing'), |
|
| 510 | + 'desc' => __('API Login ID can be obtained from Authorize.Net Account > Settings > Security Settings > General Security Settings > API Credentials & Keys. Example : 2j4rBekUnD', 'invoicing'), |
|
| 511 | 511 | 'std' => '2j4rBekUnD', |
| 512 | 512 | ); |
| 513 | 513 | |
| 514 | 514 | $setting['authorizenet_transaction_key'] = array( |
| 515 | 515 | 'type' => 'text', |
| 516 | 516 | 'id' => 'authorizenet_transaction_key', |
| 517 | - 'name' => __( 'Transaction Key', 'invoicing' ), |
|
| 518 | - 'desc' => __( 'Transaction Key can be obtained from Authorize.Net Account > Settings > Security Settings > General Security Settings > API Credentials & Keys. Example : 4vyBUOJgR74679xa', 'invoicing' ), |
|
| 517 | + 'name' => __('Transaction Key', 'invoicing'), |
|
| 518 | + 'desc' => __('Transaction Key can be obtained from Authorize.Net Account > Settings > Security Settings > General Security Settings > API Credentials & Keys. Example : 4vyBUOJgR74679xa', 'invoicing'), |
|
| 519 | 519 | 'std' => '4vyBUOJgR74679xa', |
| 520 | 520 | ); |
| 521 | 521 | |
| 522 | 522 | $setting['authorizenet_md5_hash'] = array( |
| 523 | 523 | 'type' => 'text', |
| 524 | 524 | 'id' => 'authorizenet_md5_hash', |
| 525 | - 'name' => __( 'MD5-Hash', 'invoicing' ), |
|
| 526 | - 'desc' => __( 'The MD5 Hash security feature allows you to authenticate transaction responses from the Authorize.Net. If you are accepting recurring payments then md5 hash will helps to validate response from Authorize.net. It can be obtained from Authorize.Net Account > Settings > Security Settings > General Settings > MD5 Hash.', 'invoicing' ), |
|
| 525 | + 'name' => __('MD5-Hash', 'invoicing'), |
|
| 526 | + 'desc' => __('The MD5 Hash security feature allows you to authenticate transaction responses from the Authorize.Net. If you are accepting recurring payments then md5 hash will helps to validate response from Authorize.net. It can be obtained from Authorize.Net Account > Settings > Security Settings > General Settings > MD5 Hash.', 'invoicing'), |
|
| 527 | 527 | 'std' => '', |
| 528 | 528 | ); |
| 529 | 529 | |
| 530 | 530 | $setting['authorizenet_ipn_url'] = array( |
| 531 | 531 | 'type' => 'ipn_url', |
| 532 | 532 | 'id' => 'authorizenet_ipn_url', |
| 533 | - 'name' => __( 'Silent Post URL', 'invoicing' ), |
|
| 534 | - 'std' => wpinv_get_ipn_url( 'authorizenet' ), |
|
| 535 | - 'desc' => __( 'If you are accepting recurring payments then you must set this url at Authorize.Net Account > Settings > Transaction Format Settings > Transaction Response Settings > Silent Post URL.', 'invoicing' ), |
|
| 533 | + 'name' => __('Silent Post URL', 'invoicing'), |
|
| 534 | + 'std' => wpinv_get_ipn_url('authorizenet'), |
|
| 535 | + 'desc' => __('If you are accepting recurring payments then you must set this url at Authorize.Net Account > Settings > Transaction Format Settings > Transaction Response Settings > Silent Post URL.', 'invoicing'), |
|
| 536 | 536 | 'size' => 'large', |
| 537 | 537 | 'custom' => 'authorizenet', |
| 538 | 538 | 'readonly' => true |
@@ -540,25 +540,25 @@ discard block |
||
| 540 | 540 | |
| 541 | 541 | return $setting; |
| 542 | 542 | } |
| 543 | -add_filter( 'wpinv_gateway_settings_authorizenet', 'wpinv_gateway_settings_authorizenet', 10, 1 ); |
|
| 543 | +add_filter('wpinv_gateway_settings_authorizenet', 'wpinv_gateway_settings_authorizenet', 10, 1); |
|
| 544 | 544 | |
| 545 | 545 | // Worldpay settings |
| 546 | -function wpinv_gateway_settings_worldpay( $setting ) { |
|
| 547 | - $setting['worldpay_desc']['std'] = __( 'Pay using a Worldpay account to process credit card / debit card transactions.', 'invoicing' ); |
|
| 546 | +function wpinv_gateway_settings_worldpay($setting) { |
|
| 547 | + $setting['worldpay_desc']['std'] = __('Pay using a Worldpay account to process credit card / debit card transactions.', 'invoicing'); |
|
| 548 | 548 | |
| 549 | 549 | $setting['worldpay_sandbox'] = array( |
| 550 | 550 | 'type' => 'checkbox', |
| 551 | 551 | 'id' => 'worldpay_sandbox', |
| 552 | - 'name' => __( 'Worldpay Test Mode', 'invoicing' ), |
|
| 553 | - 'desc' => __( 'This provides a special Test Environment to enable you to test your installation and integration to your website before going live.', 'invoicing' ), |
|
| 552 | + 'name' => __('Worldpay Test Mode', 'invoicing'), |
|
| 553 | + 'desc' => __('This provides a special Test Environment to enable you to test your installation and integration to your website before going live.', 'invoicing'), |
|
| 554 | 554 | 'std' => 1 |
| 555 | 555 | ); |
| 556 | 556 | |
| 557 | 557 | $setting['worldpay_instId'] = array( |
| 558 | 558 | 'type' => 'text', |
| 559 | 559 | 'id' => 'worldpay_instId', |
| 560 | - 'name' => __( 'Installation Id', 'invoicing' ), |
|
| 561 | - 'desc' => __( 'Your installation id. Ex: 211616', 'invoicing' ), |
|
| 560 | + 'name' => __('Installation Id', 'invoicing'), |
|
| 561 | + 'desc' => __('Your installation id. Ex: 211616', 'invoicing'), |
|
| 562 | 562 | 'std' => '211616', |
| 563 | 563 | ); |
| 564 | 564 | /* |
@@ -574,9 +574,9 @@ discard block |
||
| 574 | 574 | $setting['worldpay_ipn_url'] = array( |
| 575 | 575 | 'type' => 'ipn_url', |
| 576 | 576 | 'id' => 'worldpay_ipn_url', |
| 577 | - 'name' => __( 'Worldpay Callback Url', 'invoicing' ), |
|
| 578 | - 'std' => wpinv_get_ipn_url( 'worldpay' ), |
|
| 579 | - 'desc' => wp_sprintf( __( 'Login to your Worldpay Merchant Interface then enable Payment Response & Shopper Response. Next, go to the Payment Response URL field and type "%s" or "%s" for a dynamic payment response.', 'invoicing' ), '<font style="color:#000;font-style:normal">' . wpinv_get_ipn_url( 'worldpay' ) . '</font>', '<font style="color:#000;font-style:normal"><wpdisplay item=MC_callback></font>' ), |
|
| 577 | + 'name' => __('Worldpay Callback Url', 'invoicing'), |
|
| 578 | + 'std' => wpinv_get_ipn_url('worldpay'), |
|
| 579 | + 'desc' => wp_sprintf(__('Login to your Worldpay Merchant Interface then enable Payment Response & Shopper Response. Next, go to the Payment Response URL field and type "%s" or "%s" for a dynamic payment response.', 'invoicing'), '<font style="color:#000;font-style:normal">' . wpinv_get_ipn_url('worldpay') . '</font>', '<font style="color:#000;font-style:normal"><wpdisplay item=MC_callback></font>'), |
|
| 580 | 580 | 'size' => 'large', |
| 581 | 581 | 'custom' => 'worldpay', |
| 582 | 582 | 'readonly' => true |
@@ -584,95 +584,95 @@ discard block |
||
| 584 | 584 | |
| 585 | 585 | return $setting; |
| 586 | 586 | } |
| 587 | -add_filter( 'wpinv_gateway_settings_worldpay', 'wpinv_gateway_settings_worldpay', 10, 1 ); |
|
| 587 | +add_filter('wpinv_gateway_settings_worldpay', 'wpinv_gateway_settings_worldpay', 10, 1); |
|
| 588 | 588 | |
| 589 | -function wpinv_ipn_url_callback( $args ) { |
|
| 590 | - $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
|
| 589 | +function wpinv_ipn_url_callback($args) { |
|
| 590 | + $sanitize_id = wpinv_sanitize_key($args['id']); |
|
| 591 | 591 | |
| 592 | 592 | $attrs = $args['readonly'] ? ' readonly' : ''; |
| 593 | 593 | |
| 594 | - $html = '<input style="background-color:#fefefe" type="text" ' . $attrs . ' value="' . esc_attr( $args['std'] ) . '" name="wpinv_settings[' . $sanitize_id . ']" id="wpinv_settings[' . $sanitize_id . ']" class="large-text">'; |
|
| 595 | - $html .= '<label for="wpinv_settings[' . $sanitize_id . ']">' . $args['desc'] . '</label>'; |
|
| 594 | + $html = '<input style="background-color:#fefefe" type="text" ' . $attrs . ' value="' . esc_attr($args['std']) . '" name="wpinv_settings[' . $sanitize_id . ']" id="wpinv_settings[' . $sanitize_id . ']" class="large-text">'; |
|
| 595 | + $html .= '<label for="wpinv_settings[' . $sanitize_id . ']">' . $args['desc'] . '</label>'; |
|
| 596 | 596 | |
| 597 | 597 | echo $html; |
| 598 | 598 | } |
| 599 | 599 | |
| 600 | -function wpinv_is_test_mode( $gateway = '' ) { |
|
| 601 | - if ( empty( $gateway ) ) { |
|
| 600 | +function wpinv_is_test_mode($gateway = '') { |
|
| 601 | + if (empty($gateway)) { |
|
| 602 | 602 | return false; |
| 603 | 603 | } |
| 604 | 604 | |
| 605 | - $is_test_mode = wpinv_get_option( $gateway . '_sandbox', false ); |
|
| 605 | + $is_test_mode = wpinv_get_option($gateway . '_sandbox', false); |
|
| 606 | 606 | |
| 607 | - return apply_filters( 'wpinv_is_test_mode', $is_test_mode, $gateway ); |
|
| 607 | + return apply_filters('wpinv_is_test_mode', $is_test_mode, $gateway); |
|
| 608 | 608 | } |
| 609 | 609 | |
| 610 | -function wpinv_get_ipn_url( $gateway = '', $args = array() ) { |
|
| 611 | - $data = array( 'wpi-listener' => 'IPN' ); |
|
| 610 | +function wpinv_get_ipn_url($gateway = '', $args = array()) { |
|
| 611 | + $data = array('wpi-listener' => 'IPN'); |
|
| 612 | 612 | |
| 613 | - if ( !empty( $gateway ) ) { |
|
| 614 | - $data['wpi-gateway'] = wpinv_sanitize_key( $gateway ); |
|
| 613 | + if (!empty($gateway)) { |
|
| 614 | + $data['wpi-gateway'] = wpinv_sanitize_key($gateway); |
|
| 615 | 615 | } |
| 616 | 616 | |
| 617 | - $args = !empty( $args ) && is_array( $args ) ? array_merge( $data, $args ) : $data; |
|
| 617 | + $args = !empty($args) && is_array($args) ? array_merge($data, $args) : $data; |
|
| 618 | 618 | |
| 619 | - $ipn_url = add_query_arg( $args, home_url( 'index.php' ) ); |
|
| 619 | + $ipn_url = add_query_arg($args, home_url('index.php')); |
|
| 620 | 620 | |
| 621 | - return apply_filters( 'wpinv_ipn_url', $ipn_url ); |
|
| 621 | + return apply_filters('wpinv_ipn_url', $ipn_url); |
|
| 622 | 622 | } |
| 623 | 623 | |
| 624 | 624 | function wpinv_listen_for_payment_ipn() { |
| 625 | 625 | // Regular PayPal IPN |
| 626 | - if ( isset( $_GET['wpi-listener'] ) && $_GET['wpi-listener'] == 'IPN' ) { |
|
| 627 | - do_action( 'wpinv_verify_payment_ipn' ); |
|
| 626 | + if (isset($_GET['wpi-listener']) && $_GET['wpi-listener'] == 'IPN') { |
|
| 627 | + do_action('wpinv_verify_payment_ipn'); |
|
| 628 | 628 | |
| 629 | - if ( !empty( $_GET['wpi-gateway'] ) ) { |
|
| 630 | - wpinv_error_log( sanitize_text_field( $_GET['wpi-gateway'] ), 'WP Invoicing IPN', __FILE__, __LINE__ ); |
|
| 631 | - do_action( 'wpinv_verify_' . sanitize_text_field( $_GET['wpi-gateway'] ) . '_ipn' ); |
|
| 629 | + if (!empty($_GET['wpi-gateway'])) { |
|
| 630 | + wpinv_error_log(sanitize_text_field($_GET['wpi-gateway']), 'WP Invoicing IPN', __FILE__, __LINE__); |
|
| 631 | + do_action('wpinv_verify_' . sanitize_text_field($_GET['wpi-gateway']) . '_ipn'); |
|
| 632 | 632 | } |
| 633 | 633 | } |
| 634 | 634 | } |
| 635 | -add_action( 'init', 'wpinv_listen_for_payment_ipn' ); |
|
| 635 | +add_action('init', 'wpinv_listen_for_payment_ipn'); |
|
| 636 | 636 | |
| 637 | 637 | function wpinv_get_bank_instructions() { |
| 638 | - $bank_instructions = wpinv_get_option( 'bank_transfer_info' ); |
|
| 638 | + $bank_instructions = wpinv_get_option('bank_transfer_info'); |
|
| 639 | 639 | |
| 640 | - return apply_filters( 'wpinv_bank_instructions', $bank_instructions ); |
|
| 640 | + return apply_filters('wpinv_bank_instructions', $bank_instructions); |
|
| 641 | 641 | } |
| 642 | 642 | |
| 643 | -function wpinv_get_bank_info( $filtered = false ) { |
|
| 643 | +function wpinv_get_bank_info($filtered = false) { |
|
| 644 | 644 | $bank_fields = array( |
| 645 | - 'bank_transfer_ac_name' => __( 'Account Name', 'invoicing' ), |
|
| 646 | - 'bank_transfer_ac_no' => __( 'Account Number', 'invoicing' ), |
|
| 647 | - 'bank_transfer_bank_name' => __( 'Bank Name', 'invoicing' ), |
|
| 648 | - 'bank_transfer_ifsc' => __( 'IFSC code', 'invoicing' ), |
|
| 649 | - 'bank_transfer_iban' => __( 'IBAN', 'invoicing' ), |
|
| 650 | - 'bank_transfer_bic' => __( 'BIC/Swift code', 'invoicing' ), |
|
| 651 | - 'bank_transfer_sort_code' => __( 'Sort Code', 'invoicing' ) |
|
| 645 | + 'bank_transfer_ac_name' => __('Account Name', 'invoicing'), |
|
| 646 | + 'bank_transfer_ac_no' => __('Account Number', 'invoicing'), |
|
| 647 | + 'bank_transfer_bank_name' => __('Bank Name', 'invoicing'), |
|
| 648 | + 'bank_transfer_ifsc' => __('IFSC code', 'invoicing'), |
|
| 649 | + 'bank_transfer_iban' => __('IBAN', 'invoicing'), |
|
| 650 | + 'bank_transfer_bic' => __('BIC/Swift code', 'invoicing'), |
|
| 651 | + 'bank_transfer_sort_code' => __('Sort Code', 'invoicing') |
|
| 652 | 652 | ); |
| 653 | 653 | |
| 654 | 654 | $bank_info = array(); |
| 655 | - foreach ( $bank_fields as $field => $label ) { |
|
| 656 | - if ( $filtered && !( $value = wpinv_get_option( $field ) ) ) { |
|
| 655 | + foreach ($bank_fields as $field => $label) { |
|
| 656 | + if ($filtered && !($value = wpinv_get_option($field))) { |
|
| 657 | 657 | continue; |
| 658 | 658 | } |
| 659 | 659 | |
| 660 | - $bank_info[$field] = array( 'label' => $label, 'value' => $value ); |
|
| 660 | + $bank_info[$field] = array('label' => $label, 'value' => $value); |
|
| 661 | 661 | } |
| 662 | 662 | |
| 663 | - return apply_filters( 'wpinv_bank_info', $bank_info, $filtered ); |
|
| 663 | + return apply_filters('wpinv_bank_info', $bank_info, $filtered); |
|
| 664 | 664 | } |
| 665 | 665 | |
| 666 | -function wpinv_process_before_send_to_gateway( $invoice, $invoice_data = array() ) { |
|
| 667 | - if ( !empty( $invoice ) && $invoice->is_recurring() && $subscription_item = $invoice->get_recurring( true ) ) { |
|
| 666 | +function wpinv_process_before_send_to_gateway($invoice, $invoice_data = array()) { |
|
| 667 | + if (!empty($invoice) && $invoice->is_recurring() && $subscription_item = $invoice->get_recurring(true)) { |
|
| 668 | 668 | $args = array(); |
| 669 | 669 | $args['item_id'] = $subscription_item->ID; |
| 670 | - $args['initial_amount'] = wpinv_round_amount( $invoice->get_total() ); |
|
| 671 | - $args['recurring_amount'] = wpinv_round_amount( $invoice->get_recurring_details( 'total' ) ); |
|
| 670 | + $args['initial_amount'] = wpinv_round_amount($invoice->get_total()); |
|
| 671 | + $args['recurring_amount'] = wpinv_round_amount($invoice->get_recurring_details('total')); |
|
| 672 | 672 | $args['currency'] = $invoice->get_currency(); |
| 673 | 673 | $args['period'] = $subscription_item->get_recurring_period(); |
| 674 | 674 | $args['interval'] = $subscription_item->get_recurring_interval(); |
| 675 | - if ( $subscription_item->has_free_trial() ) { |
|
| 675 | + if ($subscription_item->has_free_trial()) { |
|
| 676 | 676 | $args['trial_period'] = $subscription_item->get_trial_period(); |
| 677 | 677 | $args['trial_interval'] = $subscription_item->get_trial_interval(); |
| 678 | 678 | } else { |
@@ -681,25 +681,25 @@ discard block |
||
| 681 | 681 | } |
| 682 | 682 | $args['bill_times'] = (int)$subscription_item->get_recurring_limit(); |
| 683 | 683 | |
| 684 | - $invoice->update_subscription( $args ); |
|
| 684 | + $invoice->update_subscription($args); |
|
| 685 | 685 | } |
| 686 | 686 | } |
| 687 | -add_action( 'wpinv_checkout_before_send_to_gateway', 'wpinv_process_before_send_to_gateway', 10, 2 ); |
|
| 687 | +add_action('wpinv_checkout_before_send_to_gateway', 'wpinv_process_before_send_to_gateway', 10, 2); |
|
| 688 | 688 | |
| 689 | -function wpinv_get_post_data( $method = 'request' ) { |
|
| 689 | +function wpinv_get_post_data($method = 'request') { |
|
| 690 | 690 | $data = array(); |
| 691 | 691 | $request = $_REQUEST; |
| 692 | 692 | |
| 693 | - if ( $method == 'post' ) { |
|
| 694 | - if ( isset( $_SERVER['REQUEST_METHOD'] ) && $_SERVER['REQUEST_METHOD'] != 'POST' ) { |
|
| 693 | + if ($method == 'post') { |
|
| 694 | + if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] != 'POST') { |
|
| 695 | 695 | return $data; |
| 696 | 696 | } |
| 697 | 697 | |
| 698 | 698 | $request = $_POST; |
| 699 | 699 | } |
| 700 | 700 | |
| 701 | - if ( $method == 'get' ) { |
|
| 702 | - if ( isset( $_SERVER['REQUEST_METHOD'] ) && $_SERVER['REQUEST_METHOD'] != 'GET' ) { |
|
| 701 | + if ($method == 'get') { |
|
| 702 | + if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] != 'GET') { |
|
| 703 | 703 | return $data; |
| 704 | 704 | } |
| 705 | 705 | |
@@ -710,11 +710,11 @@ discard block |
||
| 710 | 710 | $post_data = ''; |
| 711 | 711 | |
| 712 | 712 | // Fallback just in case post_max_size is lower than needed |
| 713 | - if ( ini_get( 'allow_url_fopen' ) ) { |
|
| 714 | - $post_data = file_get_contents( 'php://input' ); |
|
| 713 | + if (ini_get('allow_url_fopen')) { |
|
| 714 | + $post_data = file_get_contents('php://input'); |
|
| 715 | 715 | } else { |
| 716 | 716 | // If allow_url_fopen is not enabled, then make sure that post_max_size is large enough |
| 717 | - ini_set( 'post_max_size', '12M' ); |
|
| 717 | + ini_set('post_max_size', '12M'); |
|
| 718 | 718 | } |
| 719 | 719 | // Start the encoded data collection with notification command |
| 720 | 720 | $encoded_data = 'cmd=_notify-validate'; |
@@ -723,58 +723,58 @@ discard block |
||
| 723 | 723 | $arg_separator = wpinv_get_php_arg_separator_output(); |
| 724 | 724 | |
| 725 | 725 | // Verify there is a post_data |
| 726 | - if ( $post_data || strlen( $post_data ) > 0 ) { |
|
| 726 | + if ($post_data || strlen($post_data) > 0) { |
|
| 727 | 727 | // Append the data |
| 728 | 728 | $encoded_data .= $arg_separator . $post_data; |
| 729 | 729 | } else { |
| 730 | 730 | // Check if POST is empty |
| 731 | - if ( empty( $request ) ) { |
|
| 731 | + if (empty($request)) { |
|
| 732 | 732 | // Nothing to do |
| 733 | 733 | return; |
| 734 | 734 | } else { |
| 735 | 735 | // Loop through each POST |
| 736 | - foreach ( $request as $key => $value ) { |
|
| 736 | + foreach ($request as $key => $value) { |
|
| 737 | 737 | // Encode the value and append the data |
| 738 | - $encoded_data .= $arg_separator . "$key=" . urlencode( $value ); |
|
| 738 | + $encoded_data .= $arg_separator . "$key=" . urlencode($value); |
|
| 739 | 739 | } |
| 740 | 740 | } |
| 741 | 741 | } |
| 742 | 742 | |
| 743 | 743 | // Convert collected post data to an array |
| 744 | - parse_str( $encoded_data, $data ); |
|
| 744 | + parse_str($encoded_data, $data); |
|
| 745 | 745 | |
| 746 | - foreach ( $data as $key => $value ) { |
|
| 747 | - if ( false !== strpos( $key, 'amp;' ) ) { |
|
| 748 | - $new_key = str_replace( '&', '&', $key ); |
|
| 749 | - $new_key = str_replace( 'amp;', '&' , $new_key ); |
|
| 746 | + foreach ($data as $key => $value) { |
|
| 747 | + if (false !== strpos($key, 'amp;')) { |
|
| 748 | + $new_key = str_replace('&', '&', $key); |
|
| 749 | + $new_key = str_replace('amp;', '&', $new_key); |
|
| 750 | 750 | |
| 751 | - unset( $data[ $key ] ); |
|
| 752 | - $data[ $new_key ] = sanitize_text_field( $value ); |
|
| 751 | + unset($data[$key]); |
|
| 752 | + $data[$new_key] = sanitize_text_field($value); |
|
| 753 | 753 | } |
| 754 | 754 | } |
| 755 | 755 | |
| 756 | 756 | return $data; |
| 757 | 757 | } |
| 758 | 758 | |
| 759 | -function wpinv_gateway_support_subscription( $gateway ) { |
|
| 759 | +function wpinv_gateway_support_subscription($gateway) { |
|
| 760 | 760 | $return = false; |
| 761 | 761 | |
| 762 | - if ( wpinv_is_gateway_active( $gateway ) ) { |
|
| 763 | - $return = apply_filters( 'wpinv_' . $gateway . '_support_subscription', false ); |
|
| 762 | + if (wpinv_is_gateway_active($gateway)) { |
|
| 763 | + $return = apply_filters('wpinv_' . $gateway . '_support_subscription', false); |
|
| 764 | 764 | } |
| 765 | 765 | |
| 766 | 766 | return $return; |
| 767 | 767 | } |
| 768 | 768 | |
| 769 | -function wpinv_payment_gateways_on_cart( $gateways = array() ) { |
|
| 770 | - if ( !empty( $gateways ) && wpinv_cart_has_recurring_item() ) { |
|
| 771 | - foreach ( $gateways as $gateway => $info ) { |
|
| 772 | - if ( !wpinv_gateway_support_subscription( $gateway ) ) { |
|
| 773 | - unset( $gateways[$gateway] ); |
|
| 769 | +function wpinv_payment_gateways_on_cart($gateways = array()) { |
|
| 770 | + if (!empty($gateways) && wpinv_cart_has_recurring_item()) { |
|
| 771 | + foreach ($gateways as $gateway => $info) { |
|
| 772 | + if (!wpinv_gateway_support_subscription($gateway)) { |
|
| 773 | + unset($gateways[$gateway]); |
|
| 774 | 774 | } |
| 775 | 775 | } |
| 776 | 776 | } |
| 777 | 777 | |
| 778 | 778 | return $gateways; |
| 779 | 779 | } |
| 780 | -add_filter( 'wpinv_payment_gateways_on_cart', 'wpinv_payment_gateways_on_cart', 10, 1 ); |
|
| 781 | 780 | \ No newline at end of file |
| 781 | +add_filter('wpinv_payment_gateways_on_cart', 'wpinv_payment_gateways_on_cart', 10, 1); |
|
| 782 | 782 | \ No newline at end of file |
@@ -173,8 +173,9 @@ discard block |
||
| 173 | 173 | |
| 174 | 174 | // Setup possible parts |
| 175 | 175 | $templates = array(); |
| 176 | - if ( isset( $name ) ) |
|
| 177 | - $templates[] = $slug . '-' . $name . '.php'; |
|
| 176 | + if ( isset( $name ) ) { |
|
| 177 | + $templates[] = $slug . '-' . $name . '.php'; |
|
| 178 | + } |
|
| 178 | 179 | $templates[] = $slug . '.php'; |
| 179 | 180 | |
| 180 | 181 | // Allow template parts to be filtered |
@@ -192,8 +193,9 @@ discard block |
||
| 192 | 193 | foreach ( (array)$template_names as $template_name ) { |
| 193 | 194 | |
| 194 | 195 | // Continue if template is empty |
| 195 | - if ( empty( $template_name ) ) |
|
| 196 | - continue; |
|
| 196 | + if ( empty( $template_name ) ) { |
|
| 197 | + continue; |
|
| 198 | + } |
|
| 197 | 199 | |
| 198 | 200 | // Trim off any slashes from the template name |
| 199 | 201 | $template_name = ltrim( $template_name, '/' ); |
@@ -212,8 +214,9 @@ discard block |
||
| 212 | 214 | } |
| 213 | 215 | } |
| 214 | 216 | |
| 215 | - if ( ( true == $load ) && ! empty( $located ) ) |
|
| 216 | - load_template( $located, $require_once ); |
|
| 217 | + if ( ( true == $load ) && ! empty( $located ) ) { |
|
| 218 | + load_template( $located, $require_once ); |
|
| 219 | + } |
|
| 217 | 220 | |
| 218 | 221 | return $located; |
| 219 | 222 | } |
@@ -289,8 +292,9 @@ discard block |
||
| 289 | 292 | function wpinv_html_dropdown( $name = 'wpinv_discounts', $selected = 0, $status = '' ) { |
| 290 | 293 | $args = array( 'nopaging' => true ); |
| 291 | 294 | |
| 292 | - if ( ! empty( $status ) ) |
|
| 293 | - $args['post_status'] = $status; |
|
| 295 | + if ( ! empty( $status ) ) { |
|
| 296 | + $args['post_status'] = $status; |
|
| 297 | + } |
|
| 294 | 298 | |
| 295 | 299 | $discounts = wpinv_get_discounts( $args ); |
| 296 | 300 | $options = array(); |
@@ -1457,17 +1461,19 @@ discard block |
||
| 1457 | 1461 | add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' ); |
| 1458 | 1462 | |
| 1459 | 1463 | function wpinv_save_cart_button() { |
| 1460 | - if ( wpinv_is_cart_saving_disabled() ) |
|
| 1461 | - return; |
|
| 1462 | -?> |
|
| 1464 | + if ( wpinv_is_cart_saving_disabled() ) { |
|
| 1465 | + return; |
|
| 1466 | + } |
|
| 1467 | + ?> |
|
| 1463 | 1468 | <a class="wpinv-cart-saving-button wpinv-submit button" id="wpinv-save-cart-button" href="<?php echo esc_url( add_query_arg( 'wpi_action', 'save_cart' ) ); ?>"><?php _e( 'Save Cart', 'invoicing' ); ?></a> |
| 1464 | 1469 | <?php |
| 1465 | 1470 | } |
| 1466 | 1471 | |
| 1467 | 1472 | function wpinv_update_cart_button() { |
| 1468 | - if ( !wpinv_item_quantities_enabled() ) |
|
| 1469 | - return; |
|
| 1470 | -?> |
|
| 1473 | + if ( !wpinv_item_quantities_enabled() ) { |
|
| 1474 | + return; |
|
| 1475 | + } |
|
| 1476 | + ?> |
|
| 1471 | 1477 | <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e( 'Update Cart', 'invoicing' ); ?>"/> |
| 1472 | 1478 | <input type="hidden" name="wpi_action" value="update_cart"/> |
| 1473 | 1479 | <?php |
@@ -1606,7 +1612,7 @@ discard block |
||
| 1606 | 1612 | </div> |
| 1607 | 1613 | <?php |
| 1608 | 1614 | } |
| 1609 | - }else{ |
|
| 1615 | + } else{ |
|
| 1610 | 1616 | echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>'; |
| 1611 | 1617 | } |
| 1612 | 1618 | |
@@ -121,29 +121,29 @@ discard block |
||
| 121 | 121 | |
| 122 | 122 | function wpinv_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
| 123 | 123 | if ( ! empty( $args ) && is_array( $args ) ) { |
| 124 | - extract( $args ); |
|
| 125 | - } |
|
| 124 | + extract( $args ); |
|
| 125 | + } |
|
| 126 | 126 | |
| 127 | - $located = wpinv_locate_template( $template_name, $template_path, $default_path ); |
|
| 128 | - // Allow 3rd party plugin filter template file from their plugin. |
|
| 129 | - $located = apply_filters( 'wpinv_get_template', $located, $template_name, $args, $template_path, $default_path ); |
|
| 127 | + $located = wpinv_locate_template( $template_name, $template_path, $default_path ); |
|
| 128 | + // Allow 3rd party plugin filter template file from their plugin. |
|
| 129 | + $located = apply_filters( 'wpinv_get_template', $located, $template_name, $args, $template_path, $default_path ); |
|
| 130 | 130 | |
| 131 | - if ( ! file_exists( $located ) ) { |
|
| 131 | + if ( ! file_exists( $located ) ) { |
|
| 132 | 132 | _doing_it_wrong( __FUNCTION__, sprintf( '<code>%s</code> does not exist.', $located ), '2.1' ); |
| 133 | - return; |
|
| 134 | - } |
|
| 133 | + return; |
|
| 134 | + } |
|
| 135 | 135 | |
| 136 | - do_action( 'wpinv_before_template_part', $template_name, $template_path, $located, $args ); |
|
| 136 | + do_action( 'wpinv_before_template_part', $template_name, $template_path, $located, $args ); |
|
| 137 | 137 | |
| 138 | - include( $located ); |
|
| 138 | + include( $located ); |
|
| 139 | 139 | |
| 140 | - do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args ); |
|
| 140 | + do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args ); |
|
| 141 | 141 | } |
| 142 | 142 | |
| 143 | 143 | function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
| 144 | - ob_start(); |
|
| 145 | - wpinv_get_template( $template_name, $args, $template_path, $default_path ); |
|
| 146 | - return ob_get_clean(); |
|
| 144 | + ob_start(); |
|
| 145 | + wpinv_get_template( $template_name, $args, $template_path, $default_path ); |
|
| 146 | + return ob_get_clean(); |
|
| 147 | 147 | } |
| 148 | 148 | |
| 149 | 149 | function wpinv_locate_template( $template_name, $template_path = '', $default_path = '' ) { |
@@ -173,120 +173,120 @@ discard block |
||
| 173 | 173 | } |
| 174 | 174 | |
| 175 | 175 | function wpinv_get_template_part( $slug, $name = null, $load = true ) { |
| 176 | - do_action( 'get_template_part_' . $slug, $slug, $name ); |
|
| 176 | + do_action( 'get_template_part_' . $slug, $slug, $name ); |
|
| 177 | 177 | |
| 178 | - // Setup possible parts |
|
| 179 | - $templates = array(); |
|
| 180 | - if ( isset( $name ) ) |
|
| 181 | - $templates[] = $slug . '-' . $name . '.php'; |
|
| 182 | - $templates[] = $slug . '.php'; |
|
| 178 | + // Setup possible parts |
|
| 179 | + $templates = array(); |
|
| 180 | + if ( isset( $name ) ) |
|
| 181 | + $templates[] = $slug . '-' . $name . '.php'; |
|
| 182 | + $templates[] = $slug . '.php'; |
|
| 183 | 183 | |
| 184 | - // Allow template parts to be filtered |
|
| 185 | - $templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name ); |
|
| 184 | + // Allow template parts to be filtered |
|
| 185 | + $templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name ); |
|
| 186 | 186 | |
| 187 | - // Return the part that is found |
|
| 188 | - return wpinv_locate_tmpl( $templates, $load, false ); |
|
| 187 | + // Return the part that is found |
|
| 188 | + return wpinv_locate_tmpl( $templates, $load, false ); |
|
| 189 | 189 | } |
| 190 | 190 | |
| 191 | 191 | function wpinv_locate_tmpl( $template_names, $load = false, $require_once = true ) { |
| 192 | - // No file found yet |
|
| 193 | - $located = false; |
|
| 192 | + // No file found yet |
|
| 193 | + $located = false; |
|
| 194 | 194 | |
| 195 | - // Try to find a template file |
|
| 196 | - foreach ( (array)$template_names as $template_name ) { |
|
| 195 | + // Try to find a template file |
|
| 196 | + foreach ( (array)$template_names as $template_name ) { |
|
| 197 | 197 | |
| 198 | - // Continue if template is empty |
|
| 199 | - if ( empty( $template_name ) ) |
|
| 200 | - continue; |
|
| 198 | + // Continue if template is empty |
|
| 199 | + if ( empty( $template_name ) ) |
|
| 200 | + continue; |
|
| 201 | 201 | |
| 202 | - // Trim off any slashes from the template name |
|
| 203 | - $template_name = ltrim( $template_name, '/' ); |
|
| 202 | + // Trim off any slashes from the template name |
|
| 203 | + $template_name = ltrim( $template_name, '/' ); |
|
| 204 | 204 | |
| 205 | - // try locating this template file by looping through the template paths |
|
| 206 | - foreach( wpinv_get_theme_template_paths() as $template_path ) { |
|
| 205 | + // try locating this template file by looping through the template paths |
|
| 206 | + foreach( wpinv_get_theme_template_paths() as $template_path ) { |
|
| 207 | 207 | |
| 208 | - if( file_exists( $template_path . $template_name ) ) { |
|
| 209 | - $located = $template_path . $template_name; |
|
| 210 | - break; |
|
| 211 | - } |
|
| 212 | - } |
|
| 208 | + if( file_exists( $template_path . $template_name ) ) { |
|
| 209 | + $located = $template_path . $template_name; |
|
| 210 | + break; |
|
| 211 | + } |
|
| 212 | + } |
|
| 213 | 213 | |
| 214 | - if( !empty( $located ) ) { |
|
| 215 | - break; |
|
| 216 | - } |
|
| 217 | - } |
|
| 214 | + if( !empty( $located ) ) { |
|
| 215 | + break; |
|
| 216 | + } |
|
| 217 | + } |
|
| 218 | 218 | |
| 219 | - if ( ( true == $load ) && ! empty( $located ) ) |
|
| 220 | - load_template( $located, $require_once ); |
|
| 219 | + if ( ( true == $load ) && ! empty( $located ) ) |
|
| 220 | + load_template( $located, $require_once ); |
|
| 221 | 221 | |
| 222 | - return $located; |
|
| 222 | + return $located; |
|
| 223 | 223 | } |
| 224 | 224 | |
| 225 | 225 | function wpinv_get_theme_template_paths() { |
| 226 | - $template_dir = wpinv_get_theme_template_dir_name(); |
|
| 226 | + $template_dir = wpinv_get_theme_template_dir_name(); |
|
| 227 | 227 | |
| 228 | - $file_paths = array( |
|
| 229 | - 1 => trailingslashit( get_stylesheet_directory() ) . $template_dir, |
|
| 230 | - 10 => trailingslashit( get_template_directory() ) . $template_dir, |
|
| 231 | - 100 => wpinv_get_templates_dir() |
|
| 232 | - ); |
|
| 228 | + $file_paths = array( |
|
| 229 | + 1 => trailingslashit( get_stylesheet_directory() ) . $template_dir, |
|
| 230 | + 10 => trailingslashit( get_template_directory() ) . $template_dir, |
|
| 231 | + 100 => wpinv_get_templates_dir() |
|
| 232 | + ); |
|
| 233 | 233 | |
| 234 | - $file_paths = apply_filters( 'wpinv_template_paths', $file_paths ); |
|
| 234 | + $file_paths = apply_filters( 'wpinv_template_paths', $file_paths ); |
|
| 235 | 235 | |
| 236 | - // sort the file paths based on priority |
|
| 237 | - ksort( $file_paths, SORT_NUMERIC ); |
|
| 236 | + // sort the file paths based on priority |
|
| 237 | + ksort( $file_paths, SORT_NUMERIC ); |
|
| 238 | 238 | |
| 239 | - return array_map( 'trailingslashit', $file_paths ); |
|
| 239 | + return array_map( 'trailingslashit', $file_paths ); |
|
| 240 | 240 | } |
| 241 | 241 | |
| 242 | 242 | function wpinv_get_theme_template_dir_name() { |
| 243 | - return trailingslashit( apply_filters( 'wpinv_templates_dir', 'wpinv_templates' ) ); |
|
| 243 | + return trailingslashit( apply_filters( 'wpinv_templates_dir', 'wpinv_templates' ) ); |
|
| 244 | 244 | } |
| 245 | 245 | |
| 246 | 246 | function wpinv_checkout_meta_tags() { |
| 247 | 247 | |
| 248 | - $pages = array(); |
|
| 249 | - $pages[] = wpinv_get_option( 'success_page' ); |
|
| 250 | - $pages[] = wpinv_get_option( 'failure_page' ); |
|
| 251 | - $pages[] = wpinv_get_option( 'invoice_history_page' ); |
|
| 248 | + $pages = array(); |
|
| 249 | + $pages[] = wpinv_get_option( 'success_page' ); |
|
| 250 | + $pages[] = wpinv_get_option( 'failure_page' ); |
|
| 251 | + $pages[] = wpinv_get_option( 'invoice_history_page' ); |
|
| 252 | 252 | |
| 253 | - if( !wpinv_is_checkout() && !is_page( $pages ) ) { |
|
| 254 | - return; |
|
| 255 | - } |
|
| 253 | + if( !wpinv_is_checkout() && !is_page( $pages ) ) { |
|
| 254 | + return; |
|
| 255 | + } |
|
| 256 | 256 | |
| 257 | - echo '<meta name="robots" content="noindex,nofollow" />' . "\n"; |
|
| 257 | + echo '<meta name="robots" content="noindex,nofollow" />' . "\n"; |
|
| 258 | 258 | } |
| 259 | 259 | add_action( 'wp_head', 'wpinv_checkout_meta_tags' ); |
| 260 | 260 | |
| 261 | 261 | function wpinv_add_body_classes( $class ) { |
| 262 | - $classes = (array)$class; |
|
| 262 | + $classes = (array)$class; |
|
| 263 | 263 | |
| 264 | - if( wpinv_is_checkout() ) { |
|
| 265 | - $classes[] = 'wpinv-checkout'; |
|
| 266 | - $classes[] = 'wpinv-page'; |
|
| 267 | - } |
|
| 264 | + if( wpinv_is_checkout() ) { |
|
| 265 | + $classes[] = 'wpinv-checkout'; |
|
| 266 | + $classes[] = 'wpinv-page'; |
|
| 267 | + } |
|
| 268 | 268 | |
| 269 | - if( wpinv_is_success_page() ) { |
|
| 270 | - $classes[] = 'wpinv-success'; |
|
| 271 | - $classes[] = 'wpinv-page'; |
|
| 272 | - } |
|
| 269 | + if( wpinv_is_success_page() ) { |
|
| 270 | + $classes[] = 'wpinv-success'; |
|
| 271 | + $classes[] = 'wpinv-page'; |
|
| 272 | + } |
|
| 273 | 273 | |
| 274 | - if( wpinv_is_failed_transaction_page() ) { |
|
| 275 | - $classes[] = 'wpinv-failed-transaction'; |
|
| 276 | - $classes[] = 'wpinv-page'; |
|
| 277 | - } |
|
| 274 | + if( wpinv_is_failed_transaction_page() ) { |
|
| 275 | + $classes[] = 'wpinv-failed-transaction'; |
|
| 276 | + $classes[] = 'wpinv-page'; |
|
| 277 | + } |
|
| 278 | 278 | |
| 279 | - if( wpinv_is_invoice_history_page() ) { |
|
| 280 | - $classes[] = 'wpinv-history'; |
|
| 281 | - $classes[] = 'wpinv-page'; |
|
| 282 | - } |
|
| 279 | + if( wpinv_is_invoice_history_page() ) { |
|
| 280 | + $classes[] = 'wpinv-history'; |
|
| 281 | + $classes[] = 'wpinv-page'; |
|
| 282 | + } |
|
| 283 | 283 | |
| 284 | - if( wpinv_is_test_mode() ) { |
|
| 285 | - $classes[] = 'wpinv-test-mode'; |
|
| 286 | - $classes[] = 'wpinv-page'; |
|
| 287 | - } |
|
| 284 | + if( wpinv_is_test_mode() ) { |
|
| 285 | + $classes[] = 'wpinv-test-mode'; |
|
| 286 | + $classes[] = 'wpinv-page'; |
|
| 287 | + } |
|
| 288 | 288 | |
| 289 | - return array_unique( $classes ); |
|
| 289 | + return array_unique( $classes ); |
|
| 290 | 290 | } |
| 291 | 291 | add_filter( 'body_class', 'wpinv_add_body_classes' ); |
| 292 | 292 | |
@@ -1451,7 +1451,7 @@ discard block |
||
| 1451 | 1451 | add_action( 'wpinv_checkout_cart', 'wpinv_checkout_cart', 10 ); |
| 1452 | 1452 | |
| 1453 | 1453 | function wpinv_empty_cart_message() { |
| 1454 | - return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' ); |
|
| 1454 | + return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' ); |
|
| 1455 | 1455 | } |
| 1456 | 1456 | |
| 1457 | 1457 | /** |
@@ -1461,7 +1461,7 @@ discard block |
||
| 1461 | 1461 | * @return void |
| 1462 | 1462 | */ |
| 1463 | 1463 | function wpinv_empty_checkout_cart() { |
| 1464 | - echo wpinv_empty_cart_message(); |
|
| 1464 | + echo wpinv_empty_cart_message(); |
|
| 1465 | 1465 | } |
| 1466 | 1466 | add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' ); |
| 1467 | 1467 | |
@@ -1598,11 +1598,11 @@ discard block |
||
| 1598 | 1598 | do_action( 'wpinv_payment_mode_before_gateways' ); |
| 1599 | 1599 | |
| 1600 | 1600 | if(!empty($gateways)){ |
| 1601 | - foreach ( $gateways as $gateway_id => $gateway ) { |
|
| 1602 | - $checked = checked( $gateway_id, $chosen_gateway, false ); |
|
| 1603 | - $button_label = wpinv_get_gateway_button_label( $gateway_id ); |
|
| 1604 | - $description = wpinv_get_gateway_description( $gateway_id ); |
|
| 1605 | - ?> |
|
| 1601 | + foreach ( $gateways as $gateway_id => $gateway ) { |
|
| 1602 | + $checked = checked( $gateway_id, $chosen_gateway, false ); |
|
| 1603 | + $button_label = wpinv_get_gateway_button_label( $gateway_id ); |
|
| 1604 | + $description = wpinv_get_gateway_description( $gateway_id ); |
|
| 1605 | + ?> |
|
| 1606 | 1606 | <div class="list-group-item"> |
| 1607 | 1607 | <div class="radio"> |
| 1608 | 1608 | <label><input type="radio" data-button-text="<?php echo esc_attr( $button_label );?>" value="<?php echo esc_attr( $gateway_id ) ;?>" <?php echo $checked ;?> id="wpi_gateway_<?php echo esc_attr( $gateway_id );?>" name="wpi-gateway" class="wpi-pmethod"><?php echo esc_html( $gateway['checkout_label'] ); ?></label> |
@@ -1615,9 +1615,9 @@ discard block |
||
| 1615 | 1615 | </div> |
| 1616 | 1616 | </div> |
| 1617 | 1617 | <?php |
| 1618 | - } |
|
| 1618 | + } |
|
| 1619 | 1619 | }else{ |
| 1620 | - echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>'; |
|
| 1620 | + echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>'; |
|
| 1621 | 1621 | } |
| 1622 | 1622 | |
| 1623 | 1623 | do_action( 'wpinv_payment_mode_after_gateways' ); |
@@ -140,6 +140,9 @@ discard block |
||
| 140 | 140 | do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args ); |
| 141 | 141 | } |
| 142 | 142 | |
| 143 | +/** |
|
| 144 | + * @param string $template_name |
|
| 145 | + */ |
|
| 143 | 146 | function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
| 144 | 147 | ob_start(); |
| 145 | 148 | wpinv_get_template( $template_name, $args, $template_path, $default_path ); |
@@ -172,6 +175,9 @@ discard block |
||
| 172 | 175 | return apply_filters( 'wpinv_locate_template', $template, $template_name, $template_path ); |
| 173 | 176 | } |
| 174 | 177 | |
| 178 | +/** |
|
| 179 | + * @param string $slug |
|
| 180 | + */ |
|
| 175 | 181 | function wpinv_get_template_part( $slug, $name = null, $load = true ) { |
| 176 | 182 | do_action( 'get_template_part_' . $slug, $slug, $name ); |
| 177 | 183 | |
@@ -871,6 +877,9 @@ discard block |
||
| 871 | 877 | return apply_filters( 'wpinv_get_watermark', $output, $id ); |
| 872 | 878 | } |
| 873 | 879 | |
| 880 | +/** |
|
| 881 | + * @param integer $id |
|
| 882 | + */ |
|
| 874 | 883 | function wpinv_get_watermark( $id ) { |
| 875 | 884 | if ( !$id > 0 ) { |
| 876 | 885 | return NULL; |
@@ -7,91 +7,91 @@ discard block |
||
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | 9 | // MUST have WordPress. |
| 10 | -if ( !defined( 'WPINC' ) ) { |
|
| 11 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) ); |
|
| 10 | +if (!defined('WPINC')) { |
|
| 11 | + exit('Do NOT access this file directly: ' . basename(__FILE__)); |
|
| 12 | 12 | } |
| 13 | 13 | |
| 14 | -if ( !is_admin() ) { |
|
| 15 | - add_filter( 'template_include', 'wpinv_template', 10, 1 ); |
|
| 16 | - add_action( 'wpinv_invoice_print_body_start', 'wpinv_display_invoice_top_bar' ); |
|
| 17 | - add_action( 'wpinv_invoice_top_bar_left', 'wpinv_invoice_display_left_actions' ); |
|
| 18 | - add_action( 'wpinv_invoice_top_bar_right', 'wpinv_invoice_display_right_actions' ); |
|
| 14 | +if (!is_admin()) { |
|
| 15 | + add_filter('template_include', 'wpinv_template', 10, 1); |
|
| 16 | + add_action('wpinv_invoice_print_body_start', 'wpinv_display_invoice_top_bar'); |
|
| 17 | + add_action('wpinv_invoice_top_bar_left', 'wpinv_invoice_display_left_actions'); |
|
| 18 | + add_action('wpinv_invoice_top_bar_right', 'wpinv_invoice_display_right_actions'); |
|
| 19 | 19 | } |
| 20 | 20 | |
| 21 | 21 | function wpinv_template_path() { |
| 22 | - return apply_filters( 'wpinv_template_path', 'invoicing/' ); |
|
| 22 | + return apply_filters('wpinv_template_path', 'invoicing/'); |
|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | -function wpinv_display_invoice_top_bar( $invoice ) { |
|
| 26 | - if ( empty( $invoice ) ) { |
|
| 25 | +function wpinv_display_invoice_top_bar($invoice) { |
|
| 26 | + if (empty($invoice)) { |
|
| 27 | 27 | return; |
| 28 | 28 | } |
| 29 | 29 | ?> |
| 30 | 30 | <div class="row wpinv-top-bar no-print"> |
| 31 | 31 | <div class="container"> |
| 32 | 32 | <div class="col-xs-6"> |
| 33 | - <?php do_action( 'wpinv_invoice_top_bar_left', $invoice );?> |
|
| 33 | + <?php do_action('wpinv_invoice_top_bar_left', $invoice); ?> |
|
| 34 | 34 | </div> |
| 35 | 35 | <div class="col-xs-6 text-right"> |
| 36 | - <?php do_action( 'wpinv_invoice_top_bar_right', $invoice );?> |
|
| 36 | + <?php do_action('wpinv_invoice_top_bar_right', $invoice); ?> |
|
| 37 | 37 | </div> |
| 38 | 38 | </div> |
| 39 | 39 | </div> |
| 40 | 40 | <?php |
| 41 | 41 | } |
| 42 | 42 | |
| 43 | -function wpinv_invoice_display_left_actions( $invoice ) { |
|
| 44 | - if ( empty( $invoice ) ) { |
|
| 43 | +function wpinv_invoice_display_left_actions($invoice) { |
|
| 44 | + if (empty($invoice)) { |
|
| 45 | 45 | return; // Exit if invoice is not set. |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | - if ( $invoice->post_type == 'wpi_invoice' ) { |
|
| 49 | - if ( $invoice->needs_payment() ) { |
|
| 50 | - ?> <a class="btn btn-success btn-sm" title="<?php esc_attr_e( 'Pay This Invoice', 'invoicing' ); ?>" href="<?php echo esc_url( $invoice->get_checkout_payment_url() ); ?>"><?php _e( 'Pay For Invoice', 'invoicing' ); ?></a><?php |
|
| 48 | + if ($invoice->post_type == 'wpi_invoice') { |
|
| 49 | + if ($invoice->needs_payment()) { |
|
| 50 | + ?> <a class="btn btn-success btn-sm" title="<?php esc_attr_e('Pay This Invoice', 'invoicing'); ?>" href="<?php echo esc_url($invoice->get_checkout_payment_url()); ?>"><?php _e('Pay For Invoice', 'invoicing'); ?></a><?php |
|
| 51 | 51 | } |
| 52 | 52 | } |
| 53 | 53 | do_action('wpinv_invoice_display_left_actions', $invoice); |
| 54 | 54 | } |
| 55 | 55 | |
| 56 | -function wpinv_invoice_display_right_actions( $invoice ) { |
|
| 57 | - if ( empty( $invoice ) ) { |
|
| 56 | +function wpinv_invoice_display_right_actions($invoice) { |
|
| 57 | + if (empty($invoice)) { |
|
| 58 | 58 | return; // Exit if invoice is not set. |
| 59 | 59 | } |
| 60 | 60 | |
| 61 | - if ( $invoice->post_type == 'wpi_invoice' ) { ?> |
|
| 62 | - <a class="btn btn-primary btn-sm" onclick="window.print();" href="javascript:void(0)"><?php _e( 'Print Invoice', 'invoicing' ); ?></a> |
|
| 63 | - <?php if ( is_user_logged_in() ) { ?> |
|
| 64 | - <a class="btn btn-warning btn-sm" href="<?php echo esc_url( wpinv_get_history_page_uri() ); ?>"><?php _e( 'Invoice History', 'invoicing' ); ?></a> |
|
| 61 | + if ($invoice->post_type == 'wpi_invoice') { ?> |
|
| 62 | + <a class="btn btn-primary btn-sm" onclick="window.print();" href="javascript:void(0)"><?php _e('Print Invoice', 'invoicing'); ?></a> |
|
| 63 | + <?php if (is_user_logged_in()) { ?> |
|
| 64 | + <a class="btn btn-warning btn-sm" href="<?php echo esc_url(wpinv_get_history_page_uri()); ?>"><?php _e('Invoice History', 'invoicing'); ?></a> |
|
| 65 | 65 | <?php } |
| 66 | 66 | } |
| 67 | 67 | do_action('wpinv_invoice_display_right_actions', $invoice); |
| 68 | 68 | } |
| 69 | 69 | |
| 70 | -function wpinv_before_invoice_content( $content ) { |
|
| 70 | +function wpinv_before_invoice_content($content) { |
|
| 71 | 71 | global $post; |
| 72 | 72 | |
| 73 | - if ( !empty( $post ) && $post->post_type == 'wpi_invoice' && is_singular( 'wpi_invoice' ) && is_main_query() ) { |
|
| 73 | + if (!empty($post) && $post->post_type == 'wpi_invoice' && is_singular('wpi_invoice') && is_main_query()) { |
|
| 74 | 74 | ob_start(); |
| 75 | - do_action( 'wpinv_before_invoice_content', $post->ID ); |
|
| 75 | + do_action('wpinv_before_invoice_content', $post->ID); |
|
| 76 | 76 | $content = ob_get_clean() . $content; |
| 77 | 77 | } |
| 78 | 78 | |
| 79 | 79 | return $content; |
| 80 | 80 | } |
| 81 | -add_filter( 'the_content', 'wpinv_before_invoice_content' ); |
|
| 81 | +add_filter('the_content', 'wpinv_before_invoice_content'); |
|
| 82 | 82 | |
| 83 | -function wpinv_after_invoice_content( $content ) { |
|
| 83 | +function wpinv_after_invoice_content($content) { |
|
| 84 | 84 | global $post; |
| 85 | 85 | |
| 86 | - if ( !empty( $post ) && $post->post_type == 'wpi_invoice' && is_singular( 'wpi_invoice' ) && is_main_query() ) { |
|
| 86 | + if (!empty($post) && $post->post_type == 'wpi_invoice' && is_singular('wpi_invoice') && is_main_query()) { |
|
| 87 | 87 | ob_start(); |
| 88 | - do_action( 'wpinv_after_invoice_content', $post->ID ); |
|
| 88 | + do_action('wpinv_after_invoice_content', $post->ID); |
|
| 89 | 89 | $content .= ob_get_clean(); |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | 92 | return $content; |
| 93 | 93 | } |
| 94 | -add_filter( 'the_content', 'wpinv_after_invoice_content' ); |
|
| 94 | +add_filter('the_content', 'wpinv_after_invoice_content'); |
|
| 95 | 95 | |
| 96 | 96 | function wpinv_get_templates_dir() { |
| 97 | 97 | return WPINV_PLUGIN_DIR . 'templates'; |
@@ -101,105 +101,105 @@ discard block |
||
| 101 | 101 | return WPINV_PLUGIN_URL . 'templates'; |
| 102 | 102 | } |
| 103 | 103 | |
| 104 | -function wpinv_get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 105 | - if ( ! empty( $args ) && is_array( $args ) ) { |
|
| 106 | - extract( $args ); |
|
| 104 | +function wpinv_get_template($template_name, $args = array(), $template_path = '', $default_path = '') { |
|
| 105 | + if (!empty($args) && is_array($args)) { |
|
| 106 | + extract($args); |
|
| 107 | 107 | } |
| 108 | 108 | |
| 109 | - $located = wpinv_locate_template( $template_name, $template_path, $default_path ); |
|
| 109 | + $located = wpinv_locate_template($template_name, $template_path, $default_path); |
|
| 110 | 110 | // Allow 3rd party plugin filter template file from their plugin. |
| 111 | - $located = apply_filters( 'wpinv_get_template', $located, $template_name, $args, $template_path, $default_path ); |
|
| 111 | + $located = apply_filters('wpinv_get_template', $located, $template_name, $args, $template_path, $default_path); |
|
| 112 | 112 | |
| 113 | - if ( ! file_exists( $located ) ) { |
|
| 114 | - _doing_it_wrong( __FUNCTION__, sprintf( '<code>%s</code> does not exist.', $located ), '2.1' ); |
|
| 113 | + if (!file_exists($located)) { |
|
| 114 | + _doing_it_wrong(__FUNCTION__, sprintf('<code>%s</code> does not exist.', $located), '2.1'); |
|
| 115 | 115 | return; |
| 116 | 116 | } |
| 117 | 117 | |
| 118 | - do_action( 'wpinv_before_template_part', $template_name, $template_path, $located, $args ); |
|
| 118 | + do_action('wpinv_before_template_part', $template_name, $template_path, $located, $args); |
|
| 119 | 119 | |
| 120 | - include( $located ); |
|
| 120 | + include($located); |
|
| 121 | 121 | |
| 122 | - do_action( 'wpinv_after_template_part', $template_name, $template_path, $located, $args ); |
|
| 122 | + do_action('wpinv_after_template_part', $template_name, $template_path, $located, $args); |
|
| 123 | 123 | } |
| 124 | 124 | |
| 125 | -function wpinv_get_template_html( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 125 | +function wpinv_get_template_html($template_name, $args = array(), $template_path = '', $default_path = '') { |
|
| 126 | 126 | ob_start(); |
| 127 | - wpinv_get_template( $template_name, $args, $template_path, $default_path ); |
|
| 127 | + wpinv_get_template($template_name, $args, $template_path, $default_path); |
|
| 128 | 128 | return ob_get_clean(); |
| 129 | 129 | } |
| 130 | 130 | |
| 131 | -function wpinv_locate_template( $template_name, $template_path = '', $default_path = '' ) { |
|
| 132 | - if ( ! $template_path ) { |
|
| 131 | +function wpinv_locate_template($template_name, $template_path = '', $default_path = '') { |
|
| 132 | + if (!$template_path) { |
|
| 133 | 133 | $template_path = wpinv_template_path(); |
| 134 | 134 | } |
| 135 | 135 | |
| 136 | - if ( ! $default_path ) { |
|
| 136 | + if (!$default_path) { |
|
| 137 | 137 | $default_path = WPINV_PLUGIN_DIR . 'templates/'; |
| 138 | 138 | } |
| 139 | 139 | |
| 140 | 140 | // Look within passed path within the theme - this is priority. |
| 141 | 141 | $template = locate_template( |
| 142 | 142 | array( |
| 143 | - trailingslashit( $template_path ) . $template_name, |
|
| 143 | + trailingslashit($template_path) . $template_name, |
|
| 144 | 144 | $template_name |
| 145 | 145 | ) |
| 146 | 146 | ); |
| 147 | 147 | |
| 148 | 148 | // Get default templates/ |
| 149 | - if ( !$template && $default_path ) { |
|
| 150 | - $template = trailingslashit( $default_path ) . $template_name; |
|
| 149 | + if (!$template && $default_path) { |
|
| 150 | + $template = trailingslashit($default_path) . $template_name; |
|
| 151 | 151 | } |
| 152 | 152 | |
| 153 | 153 | // Return what we found. |
| 154 | - return apply_filters( 'wpinv_locate_template', $template, $template_name, $template_path ); |
|
| 154 | + return apply_filters('wpinv_locate_template', $template, $template_name, $template_path); |
|
| 155 | 155 | } |
| 156 | 156 | |
| 157 | -function wpinv_get_template_part( $slug, $name = null, $load = true ) { |
|
| 158 | - do_action( 'get_template_part_' . $slug, $slug, $name ); |
|
| 157 | +function wpinv_get_template_part($slug, $name = null, $load = true) { |
|
| 158 | + do_action('get_template_part_' . $slug, $slug, $name); |
|
| 159 | 159 | |
| 160 | 160 | // Setup possible parts |
| 161 | 161 | $templates = array(); |
| 162 | - if ( isset( $name ) ) |
|
| 162 | + if (isset($name)) |
|
| 163 | 163 | $templates[] = $slug . '-' . $name . '.php'; |
| 164 | 164 | $templates[] = $slug . '.php'; |
| 165 | 165 | |
| 166 | 166 | // Allow template parts to be filtered |
| 167 | - $templates = apply_filters( 'wpinv_get_template_part', $templates, $slug, $name ); |
|
| 167 | + $templates = apply_filters('wpinv_get_template_part', $templates, $slug, $name); |
|
| 168 | 168 | |
| 169 | 169 | // Return the part that is found |
| 170 | - return wpinv_locate_tmpl( $templates, $load, false ); |
|
| 170 | + return wpinv_locate_tmpl($templates, $load, false); |
|
| 171 | 171 | } |
| 172 | 172 | |
| 173 | -function wpinv_locate_tmpl( $template_names, $load = false, $require_once = true ) { |
|
| 173 | +function wpinv_locate_tmpl($template_names, $load = false, $require_once = true) { |
|
| 174 | 174 | // No file found yet |
| 175 | 175 | $located = false; |
| 176 | 176 | |
| 177 | 177 | // Try to find a template file |
| 178 | - foreach ( (array)$template_names as $template_name ) { |
|
| 178 | + foreach ((array)$template_names as $template_name) { |
|
| 179 | 179 | |
| 180 | 180 | // Continue if template is empty |
| 181 | - if ( empty( $template_name ) ) |
|
| 181 | + if (empty($template_name)) |
|
| 182 | 182 | continue; |
| 183 | 183 | |
| 184 | 184 | // Trim off any slashes from the template name |
| 185 | - $template_name = ltrim( $template_name, '/' ); |
|
| 185 | + $template_name = ltrim($template_name, '/'); |
|
| 186 | 186 | |
| 187 | 187 | // try locating this template file by looping through the template paths |
| 188 | - foreach( wpinv_get_theme_template_paths() as $template_path ) { |
|
| 188 | + foreach (wpinv_get_theme_template_paths() as $template_path) { |
|
| 189 | 189 | |
| 190 | - if( file_exists( $template_path . $template_name ) ) { |
|
| 190 | + if (file_exists($template_path . $template_name)) { |
|
| 191 | 191 | $located = $template_path . $template_name; |
| 192 | 192 | break; |
| 193 | 193 | } |
| 194 | 194 | } |
| 195 | 195 | |
| 196 | - if( !empty( $located ) ) { |
|
| 196 | + if (!empty($located)) { |
|
| 197 | 197 | break; |
| 198 | 198 | } |
| 199 | 199 | } |
| 200 | 200 | |
| 201 | - if ( ( true == $load ) && ! empty( $located ) ) |
|
| 202 | - load_template( $located, $require_once ); |
|
| 201 | + if ((true == $load) && !empty($located)) |
|
| 202 | + load_template($located, $require_once); |
|
| 203 | 203 | |
| 204 | 204 | return $located; |
| 205 | 205 | } |
@@ -208,143 +208,143 @@ discard block |
||
| 208 | 208 | $template_dir = wpinv_get_theme_template_dir_name(); |
| 209 | 209 | |
| 210 | 210 | $file_paths = array( |
| 211 | - 1 => trailingslashit( get_stylesheet_directory() ) . $template_dir, |
|
| 212 | - 10 => trailingslashit( get_template_directory() ) . $template_dir, |
|
| 211 | + 1 => trailingslashit(get_stylesheet_directory()) . $template_dir, |
|
| 212 | + 10 => trailingslashit(get_template_directory()) . $template_dir, |
|
| 213 | 213 | 100 => wpinv_get_templates_dir() |
| 214 | 214 | ); |
| 215 | 215 | |
| 216 | - $file_paths = apply_filters( 'wpinv_template_paths', $file_paths ); |
|
| 216 | + $file_paths = apply_filters('wpinv_template_paths', $file_paths); |
|
| 217 | 217 | |
| 218 | 218 | // sort the file paths based on priority |
| 219 | - ksort( $file_paths, SORT_NUMERIC ); |
|
| 219 | + ksort($file_paths, SORT_NUMERIC); |
|
| 220 | 220 | |
| 221 | - return array_map( 'trailingslashit', $file_paths ); |
|
| 221 | + return array_map('trailingslashit', $file_paths); |
|
| 222 | 222 | } |
| 223 | 223 | |
| 224 | 224 | function wpinv_get_theme_template_dir_name() { |
| 225 | - return trailingslashit( apply_filters( 'wpinv_templates_dir', 'wpinv_templates' ) ); |
|
| 225 | + return trailingslashit(apply_filters('wpinv_templates_dir', 'wpinv_templates')); |
|
| 226 | 226 | } |
| 227 | 227 | |
| 228 | 228 | function wpinv_checkout_meta_tags() { |
| 229 | 229 | |
| 230 | 230 | $pages = array(); |
| 231 | - $pages[] = wpinv_get_option( 'success_page' ); |
|
| 232 | - $pages[] = wpinv_get_option( 'failure_page' ); |
|
| 233 | - $pages[] = wpinv_get_option( 'invoice_history_page' ); |
|
| 231 | + $pages[] = wpinv_get_option('success_page'); |
|
| 232 | + $pages[] = wpinv_get_option('failure_page'); |
|
| 233 | + $pages[] = wpinv_get_option('invoice_history_page'); |
|
| 234 | 234 | |
| 235 | - if( !wpinv_is_checkout() && !is_page( $pages ) ) { |
|
| 235 | + if (!wpinv_is_checkout() && !is_page($pages)) { |
|
| 236 | 236 | return; |
| 237 | 237 | } |
| 238 | 238 | |
| 239 | 239 | echo '<meta name="robots" content="noindex,nofollow" />' . "\n"; |
| 240 | 240 | } |
| 241 | -add_action( 'wp_head', 'wpinv_checkout_meta_tags' ); |
|
| 241 | +add_action('wp_head', 'wpinv_checkout_meta_tags'); |
|
| 242 | 242 | |
| 243 | -function wpinv_add_body_classes( $class ) { |
|
| 243 | +function wpinv_add_body_classes($class) { |
|
| 244 | 244 | $classes = (array)$class; |
| 245 | 245 | |
| 246 | - if( wpinv_is_checkout() ) { |
|
| 246 | + if (wpinv_is_checkout()) { |
|
| 247 | 247 | $classes[] = 'wpinv-checkout'; |
| 248 | 248 | $classes[] = 'wpinv-page'; |
| 249 | 249 | } |
| 250 | 250 | |
| 251 | - if( wpinv_is_success_page() ) { |
|
| 251 | + if (wpinv_is_success_page()) { |
|
| 252 | 252 | $classes[] = 'wpinv-success'; |
| 253 | 253 | $classes[] = 'wpinv-page'; |
| 254 | 254 | } |
| 255 | 255 | |
| 256 | - if( wpinv_is_failed_transaction_page() ) { |
|
| 256 | + if (wpinv_is_failed_transaction_page()) { |
|
| 257 | 257 | $classes[] = 'wpinv-failed-transaction'; |
| 258 | 258 | $classes[] = 'wpinv-page'; |
| 259 | 259 | } |
| 260 | 260 | |
| 261 | - if( wpinv_is_invoice_history_page() ) { |
|
| 261 | + if (wpinv_is_invoice_history_page()) { |
|
| 262 | 262 | $classes[] = 'wpinv-history'; |
| 263 | 263 | $classes[] = 'wpinv-page'; |
| 264 | 264 | } |
| 265 | 265 | |
| 266 | - if( wpinv_is_test_mode() ) { |
|
| 266 | + if (wpinv_is_test_mode()) { |
|
| 267 | 267 | $classes[] = 'wpinv-test-mode'; |
| 268 | 268 | $classes[] = 'wpinv-page'; |
| 269 | 269 | } |
| 270 | 270 | |
| 271 | - return array_unique( $classes ); |
|
| 271 | + return array_unique($classes); |
|
| 272 | 272 | } |
| 273 | -add_filter( 'body_class', 'wpinv_add_body_classes' ); |
|
| 273 | +add_filter('body_class', 'wpinv_add_body_classes'); |
|
| 274 | 274 | |
| 275 | -function wpinv_html_dropdown( $name = 'wpinv_discounts', $selected = 0, $status = '' ) { |
|
| 276 | - $args = array( 'nopaging' => true ); |
|
| 275 | +function wpinv_html_dropdown($name = 'wpinv_discounts', $selected = 0, $status = '') { |
|
| 276 | + $args = array('nopaging' => true); |
|
| 277 | 277 | |
| 278 | - if ( ! empty( $status ) ) |
|
| 278 | + if (!empty($status)) |
|
| 279 | 279 | $args['post_status'] = $status; |
| 280 | 280 | |
| 281 | - $discounts = wpinv_get_discounts( $args ); |
|
| 281 | + $discounts = wpinv_get_discounts($args); |
|
| 282 | 282 | $options = array(); |
| 283 | 283 | |
| 284 | - if ( $discounts ) { |
|
| 285 | - foreach ( $discounts as $discount ) { |
|
| 286 | - $options[ absint( $discount->ID ) ] = esc_html( get_the_title( $discount->ID ) ); |
|
| 284 | + if ($discounts) { |
|
| 285 | + foreach ($discounts as $discount) { |
|
| 286 | + $options[absint($discount->ID)] = esc_html(get_the_title($discount->ID)); |
|
| 287 | 287 | } |
| 288 | 288 | } else { |
| 289 | - $options[0] = __( 'No discounts found', 'invoicing' ); |
|
| 289 | + $options[0] = __('No discounts found', 'invoicing'); |
|
| 290 | 290 | } |
| 291 | 291 | |
| 292 | - $output = wpinv_html_select( array( |
|
| 292 | + $output = wpinv_html_select(array( |
|
| 293 | 293 | 'name' => $name, |
| 294 | 294 | 'selected' => $selected, |
| 295 | 295 | 'options' => $options, |
| 296 | 296 | 'show_option_all' => false, |
| 297 | 297 | 'show_option_none' => false, |
| 298 | - ) ); |
|
| 298 | + )); |
|
| 299 | 299 | |
| 300 | 300 | return $output; |
| 301 | 301 | } |
| 302 | 302 | |
| 303 | -function wpinv_html_year_dropdown( $name = 'year', $selected = 0, $years_before = 5, $years_after = 0 ) { |
|
| 304 | - $current = date( 'Y' ); |
|
| 305 | - $start_year = $current - absint( $years_before ); |
|
| 306 | - $end_year = $current + absint( $years_after ); |
|
| 307 | - $selected = empty( $selected ) ? date( 'Y' ) : $selected; |
|
| 303 | +function wpinv_html_year_dropdown($name = 'year', $selected = 0, $years_before = 5, $years_after = 0) { |
|
| 304 | + $current = date('Y'); |
|
| 305 | + $start_year = $current - absint($years_before); |
|
| 306 | + $end_year = $current + absint($years_after); |
|
| 307 | + $selected = empty($selected) ? date('Y') : $selected; |
|
| 308 | 308 | $options = array(); |
| 309 | 309 | |
| 310 | - while ( $start_year <= $end_year ) { |
|
| 311 | - $options[ absint( $start_year ) ] = $start_year; |
|
| 310 | + while ($start_year <= $end_year) { |
|
| 311 | + $options[absint($start_year)] = $start_year; |
|
| 312 | 312 | $start_year++; |
| 313 | 313 | } |
| 314 | 314 | |
| 315 | - $output = wpinv_html_select( array( |
|
| 315 | + $output = wpinv_html_select(array( |
|
| 316 | 316 | 'name' => $name, |
| 317 | 317 | 'selected' => $selected, |
| 318 | 318 | 'options' => $options, |
| 319 | 319 | 'show_option_all' => false, |
| 320 | 320 | 'show_option_none' => false |
| 321 | - ) ); |
|
| 321 | + )); |
|
| 322 | 322 | |
| 323 | 323 | return $output; |
| 324 | 324 | } |
| 325 | 325 | |
| 326 | -function wpinv_html_month_dropdown( $name = 'month', $selected = 0 ) { |
|
| 326 | +function wpinv_html_month_dropdown($name = 'month', $selected = 0) { |
|
| 327 | 327 | $month = 1; |
| 328 | 328 | $options = array(); |
| 329 | - $selected = empty( $selected ) ? date( 'n' ) : $selected; |
|
| 329 | + $selected = empty($selected) ? date('n') : $selected; |
|
| 330 | 330 | |
| 331 | - while ( $month <= 12 ) { |
|
| 332 | - $options[ absint( $month ) ] = wpinv_month_num_to_name( $month ); |
|
| 331 | + while ($month <= 12) { |
|
| 332 | + $options[absint($month)] = wpinv_month_num_to_name($month); |
|
| 333 | 333 | $month++; |
| 334 | 334 | } |
| 335 | 335 | |
| 336 | - $output = wpinv_html_select( array( |
|
| 336 | + $output = wpinv_html_select(array( |
|
| 337 | 337 | 'name' => $name, |
| 338 | 338 | 'selected' => $selected, |
| 339 | 339 | 'options' => $options, |
| 340 | 340 | 'show_option_all' => false, |
| 341 | 341 | 'show_option_none' => false |
| 342 | - ) ); |
|
| 342 | + )); |
|
| 343 | 343 | |
| 344 | 344 | return $output; |
| 345 | 345 | } |
| 346 | 346 | |
| 347 | -function wpinv_html_select( $args = array() ) { |
|
| 347 | +function wpinv_html_select($args = array()) { |
|
| 348 | 348 | $defaults = array( |
| 349 | 349 | 'options' => array(), |
| 350 | 350 | 'name' => null, |
@@ -354,8 +354,8 @@ discard block |
||
| 354 | 354 | 'chosen' => false, |
| 355 | 355 | 'placeholder' => null, |
| 356 | 356 | 'multiple' => false, |
| 357 | - 'show_option_all' => _x( 'All', 'all dropdown items', 'invoicing' ), |
|
| 358 | - 'show_option_none' => _x( 'None', 'no dropdown items', 'invoicing' ), |
|
| 357 | + 'show_option_all' => _x('All', 'all dropdown items', 'invoicing'), |
|
| 358 | + 'show_option_none' => _x('None', 'no dropdown items', 'invoicing'), |
|
| 359 | 359 | 'data' => array(), |
| 360 | 360 | 'onchange' => null, |
| 361 | 361 | 'required' => false, |
@@ -363,78 +363,78 @@ discard block |
||
| 363 | 363 | 'readonly' => false, |
| 364 | 364 | ); |
| 365 | 365 | |
| 366 | - $args = wp_parse_args( $args, $defaults ); |
|
| 366 | + $args = wp_parse_args($args, $defaults); |
|
| 367 | 367 | |
| 368 | 368 | $data_elements = ''; |
| 369 | - foreach ( $args['data'] as $key => $value ) { |
|
| 370 | - $data_elements .= ' data-' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"'; |
|
| 369 | + foreach ($args['data'] as $key => $value) { |
|
| 370 | + $data_elements .= ' data-' . esc_attr($key) . '="' . esc_attr($value) . '"'; |
|
| 371 | 371 | } |
| 372 | 372 | |
| 373 | - if( $args['multiple'] ) { |
|
| 373 | + if ($args['multiple']) { |
|
| 374 | 374 | $multiple = ' MULTIPLE'; |
| 375 | 375 | } else { |
| 376 | 376 | $multiple = ''; |
| 377 | 377 | } |
| 378 | 378 | |
| 379 | - if( $args['chosen'] ) { |
|
| 379 | + if ($args['chosen']) { |
|
| 380 | 380 | $args['class'] .= ' wpinv-select-chosen'; |
| 381 | 381 | } |
| 382 | 382 | |
| 383 | - if( $args['placeholder'] ) { |
|
| 383 | + if ($args['placeholder']) { |
|
| 384 | 384 | $placeholder = $args['placeholder']; |
| 385 | 385 | } else { |
| 386 | 386 | $placeholder = ''; |
| 387 | 387 | } |
| 388 | 388 | |
| 389 | 389 | $options = ''; |
| 390 | - if( !empty( $args['onchange'] ) ) { |
|
| 391 | - $options .= ' onchange="' . esc_attr( $args['onchange'] ) . '"'; |
|
| 390 | + if (!empty($args['onchange'])) { |
|
| 391 | + $options .= ' onchange="' . esc_attr($args['onchange']) . '"'; |
|
| 392 | 392 | } |
| 393 | 393 | |
| 394 | - if( !empty( $args['required'] ) ) { |
|
| 394 | + if (!empty($args['required'])) { |
|
| 395 | 395 | $options .= ' required="required"'; |
| 396 | 396 | } |
| 397 | 397 | |
| 398 | - if( !empty( $args['disabled'] ) ) { |
|
| 398 | + if (!empty($args['disabled'])) { |
|
| 399 | 399 | $options .= ' disabled'; |
| 400 | 400 | } |
| 401 | 401 | |
| 402 | - if( !empty( $args['readonly'] ) ) { |
|
| 402 | + if (!empty($args['readonly'])) { |
|
| 403 | 403 | $options .= ' readonly'; |
| 404 | 404 | } |
| 405 | 405 | |
| 406 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) ); |
|
| 407 | - $output = '<select name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" class="wpinv-select ' . $class . '"' . $multiple . ' data-placeholder="' . $placeholder . '" ' . trim( $options ) . $data_elements . '>'; |
|
| 406 | + $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); |
|
| 407 | + $output = '<select name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['id']) . '" class="wpinv-select ' . $class . '"' . $multiple . ' data-placeholder="' . $placeholder . '" ' . trim($options) . $data_elements . '>'; |
|
| 408 | 408 | |
| 409 | - if ( $args['show_option_all'] ) { |
|
| 410 | - if( $args['multiple'] ) { |
|
| 411 | - $selected = selected( true, in_array( 0, $args['selected'] ), false ); |
|
| 409 | + if ($args['show_option_all']) { |
|
| 410 | + if ($args['multiple']) { |
|
| 411 | + $selected = selected(true, in_array(0, $args['selected']), false); |
|
| 412 | 412 | } else { |
| 413 | - $selected = selected( $args['selected'], 0, false ); |
|
| 413 | + $selected = selected($args['selected'], 0, false); |
|
| 414 | 414 | } |
| 415 | - $output .= '<option value="all"' . $selected . '>' . esc_html( $args['show_option_all'] ) . '</option>'; |
|
| 415 | + $output .= '<option value="all"' . $selected . '>' . esc_html($args['show_option_all']) . '</option>'; |
|
| 416 | 416 | } |
| 417 | 417 | |
| 418 | - if ( !empty( $args['options'] ) ) { |
|
| 418 | + if (!empty($args['options'])) { |
|
| 419 | 419 | |
| 420 | - if ( $args['show_option_none'] ) { |
|
| 421 | - if( $args['multiple'] ) { |
|
| 422 | - $selected = selected( true, in_array( "", $args['selected'] ), false ); |
|
| 420 | + if ($args['show_option_none']) { |
|
| 421 | + if ($args['multiple']) { |
|
| 422 | + $selected = selected(true, in_array("", $args['selected']), false); |
|
| 423 | 423 | } else { |
| 424 | - $selected = selected( $args['selected'] === "", true, false ); |
|
| 424 | + $selected = selected($args['selected'] === "", true, false); |
|
| 425 | 425 | } |
| 426 | - $output .= '<option value=""' . $selected . '>' . esc_html( $args['show_option_none'] ) . '</option>'; |
|
| 426 | + $output .= '<option value=""' . $selected . '>' . esc_html($args['show_option_none']) . '</option>'; |
|
| 427 | 427 | } |
| 428 | 428 | |
| 429 | - foreach( $args['options'] as $key => $option ) { |
|
| 429 | + foreach ($args['options'] as $key => $option) { |
|
| 430 | 430 | |
| 431 | - if( $args['multiple'] && is_array( $args['selected'] ) ) { |
|
| 432 | - $selected = selected( true, (bool)in_array( $key, $args['selected'] ), false ); |
|
| 431 | + if ($args['multiple'] && is_array($args['selected'])) { |
|
| 432 | + $selected = selected(true, (bool)in_array($key, $args['selected']), false); |
|
| 433 | 433 | } else { |
| 434 | - $selected = selected( $args['selected'], $key, false ); |
|
| 434 | + $selected = selected($args['selected'], $key, false); |
|
| 435 | 435 | } |
| 436 | 436 | |
| 437 | - $output .= '<option value="' . esc_attr( $key ) . '"' . $selected . '>' . esc_html( $option ) . '</option>'; |
|
| 437 | + $output .= '<option value="' . esc_attr($key) . '"' . $selected . '>' . esc_html($option) . '</option>'; |
|
| 438 | 438 | } |
| 439 | 439 | } |
| 440 | 440 | |
@@ -443,7 +443,7 @@ discard block |
||
| 443 | 443 | return $output; |
| 444 | 444 | } |
| 445 | 445 | |
| 446 | -function wpinv_item_dropdown( $args = array() ) { |
|
| 446 | +function wpinv_item_dropdown($args = array()) { |
|
| 447 | 447 | $defaults = array( |
| 448 | 448 | 'name' => 'wpi_item', |
| 449 | 449 | 'id' => 'wpi_item', |
@@ -452,14 +452,14 @@ discard block |
||
| 452 | 452 | 'selected' => 0, |
| 453 | 453 | 'chosen' => false, |
| 454 | 454 | 'number' => 100, |
| 455 | - 'placeholder' => __( 'Choose a item', 'invoicing' ), |
|
| 456 | - 'data' => array( 'search-type' => 'item' ), |
|
| 455 | + 'placeholder' => __('Choose a item', 'invoicing'), |
|
| 456 | + 'data' => array('search-type' => 'item'), |
|
| 457 | 457 | 'show_option_all' => false, |
| 458 | 458 | 'show_option_none' => false, |
| 459 | 459 | 'show_recurring' => false, |
| 460 | 460 | ); |
| 461 | 461 | |
| 462 | - $args = wp_parse_args( $args, $defaults ); |
|
| 462 | + $args = wp_parse_args($args, $defaults); |
|
| 463 | 463 | |
| 464 | 464 | $item_args = array( |
| 465 | 465 | 'post_type' => 'wpi_item', |
@@ -468,44 +468,44 @@ discard block |
||
| 468 | 468 | 'posts_per_page' => $args['number'] |
| 469 | 469 | ); |
| 470 | 470 | |
| 471 | - $item_args = apply_filters( 'wpinv_item_dropdown_query_args', $item_args, $args, $defaults ); |
|
| 471 | + $item_args = apply_filters('wpinv_item_dropdown_query_args', $item_args, $args, $defaults); |
|
| 472 | 472 | |
| 473 | - $items = get_posts( $item_args ); |
|
| 473 | + $items = get_posts($item_args); |
|
| 474 | 474 | $options = array(); |
| 475 | - if ( $items ) { |
|
| 476 | - foreach ( $items as $item ) { |
|
| 477 | - $title = esc_html( $item->post_title ); |
|
| 475 | + if ($items) { |
|
| 476 | + foreach ($items as $item) { |
|
| 477 | + $title = esc_html($item->post_title); |
|
| 478 | 478 | |
| 479 | - if ( !empty( $args['show_recurring'] ) ) { |
|
| 480 | - $title .= wpinv_get_item_suffix( $item->ID, false ); |
|
| 479 | + if (!empty($args['show_recurring'])) { |
|
| 480 | + $title .= wpinv_get_item_suffix($item->ID, false); |
|
| 481 | 481 | } |
| 482 | 482 | |
| 483 | - $options[ absint( $item->ID ) ] = $title; |
|
| 483 | + $options[absint($item->ID)] = $title; |
|
| 484 | 484 | } |
| 485 | 485 | } |
| 486 | 486 | |
| 487 | 487 | // This ensures that any selected items are included in the drop down |
| 488 | - if( is_array( $args['selected'] ) ) { |
|
| 489 | - foreach( $args['selected'] as $item ) { |
|
| 490 | - if( ! in_array( $item, $options ) ) { |
|
| 491 | - $title = get_the_title( $item ); |
|
| 492 | - if ( !empty( $args['show_recurring'] ) ) { |
|
| 493 | - $title .= wpinv_get_item_suffix( $item, false ); |
|
| 488 | + if (is_array($args['selected'])) { |
|
| 489 | + foreach ($args['selected'] as $item) { |
|
| 490 | + if (!in_array($item, $options)) { |
|
| 491 | + $title = get_the_title($item); |
|
| 492 | + if (!empty($args['show_recurring'])) { |
|
| 493 | + $title .= wpinv_get_item_suffix($item, false); |
|
| 494 | 494 | } |
| 495 | 495 | $options[$item] = $title; |
| 496 | 496 | } |
| 497 | 497 | } |
| 498 | - } elseif ( is_numeric( $args['selected'] ) && $args['selected'] !== 0 ) { |
|
| 499 | - if ( ! in_array( $args['selected'], $options ) ) { |
|
| 500 | - $title = get_the_title( $args['selected'] ); |
|
| 501 | - if ( !empty( $args['show_recurring'] ) ) { |
|
| 502 | - $title .= wpinv_get_item_suffix( $args['selected'], false ); |
|
| 498 | + } elseif (is_numeric($args['selected']) && $args['selected'] !== 0) { |
|
| 499 | + if (!in_array($args['selected'], $options)) { |
|
| 500 | + $title = get_the_title($args['selected']); |
|
| 501 | + if (!empty($args['show_recurring'])) { |
|
| 502 | + $title .= wpinv_get_item_suffix($args['selected'], false); |
|
| 503 | 503 | } |
| 504 | - $options[$args['selected']] = get_the_title( $args['selected'] ); |
|
| 504 | + $options[$args['selected']] = get_the_title($args['selected']); |
|
| 505 | 505 | } |
| 506 | 506 | } |
| 507 | 507 | |
| 508 | - $output = wpinv_html_select( array( |
|
| 508 | + $output = wpinv_html_select(array( |
|
| 509 | 509 | 'name' => $args['name'], |
| 510 | 510 | 'selected' => $args['selected'], |
| 511 | 511 | 'id' => $args['id'], |
@@ -517,12 +517,12 @@ discard block |
||
| 517 | 517 | 'show_option_all' => $args['show_option_all'], |
| 518 | 518 | 'show_option_none' => $args['show_option_none'], |
| 519 | 519 | 'data' => $args['data'], |
| 520 | - ) ); |
|
| 520 | + )); |
|
| 521 | 521 | |
| 522 | 522 | return $output; |
| 523 | 523 | } |
| 524 | 524 | |
| 525 | -function wpinv_html_checkbox( $args = array() ) { |
|
| 525 | +function wpinv_html_checkbox($args = array()) { |
|
| 526 | 526 | $defaults = array( |
| 527 | 527 | 'name' => null, |
| 528 | 528 | 'current' => null, |
@@ -533,38 +533,38 @@ discard block |
||
| 533 | 533 | ) |
| 534 | 534 | ); |
| 535 | 535 | |
| 536 | - $args = wp_parse_args( $args, $defaults ); |
|
| 536 | + $args = wp_parse_args($args, $defaults); |
|
| 537 | 537 | |
| 538 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) ); |
|
| 538 | + $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); |
|
| 539 | 539 | $options = ''; |
| 540 | - if ( ! empty( $args['options']['disabled'] ) ) { |
|
| 540 | + if (!empty($args['options']['disabled'])) { |
|
| 541 | 541 | $options .= ' disabled="disabled"'; |
| 542 | - } elseif ( ! empty( $args['options']['readonly'] ) ) { |
|
| 542 | + } elseif (!empty($args['options']['readonly'])) { |
|
| 543 | 543 | $options .= ' readonly'; |
| 544 | 544 | } |
| 545 | 545 | |
| 546 | - $output = '<input type="checkbox"' . $options . ' name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['name'] ) . '" class="' . $class . ' ' . esc_attr( $args['name'] ) . '" ' . checked( 1, $args['current'], false ) . ' />'; |
|
| 546 | + $output = '<input type="checkbox"' . $options . ' name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['name']) . '" class="' . $class . ' ' . esc_attr($args['name']) . '" ' . checked(1, $args['current'], false) . ' />'; |
|
| 547 | 547 | |
| 548 | 548 | return $output; |
| 549 | 549 | } |
| 550 | 550 | |
| 551 | -function wpinv_html_text( $args = array() ) { |
|
| 551 | +function wpinv_html_text($args = array()) { |
|
| 552 | 552 | // Backwards compatibility |
| 553 | - if ( func_num_args() > 1 ) { |
|
| 553 | + if (func_num_args() > 1) { |
|
| 554 | 554 | $args = func_get_args(); |
| 555 | 555 | |
| 556 | 556 | $name = $args[0]; |
| 557 | - $value = isset( $args[1] ) ? $args[1] : ''; |
|
| 558 | - $label = isset( $args[2] ) ? $args[2] : ''; |
|
| 559 | - $desc = isset( $args[3] ) ? $args[3] : ''; |
|
| 557 | + $value = isset($args[1]) ? $args[1] : ''; |
|
| 558 | + $label = isset($args[2]) ? $args[2] : ''; |
|
| 559 | + $desc = isset($args[3]) ? $args[3] : ''; |
|
| 560 | 560 | } |
| 561 | 561 | |
| 562 | 562 | $defaults = array( |
| 563 | 563 | 'id' => '', |
| 564 | - 'name' => isset( $name ) ? $name : 'text', |
|
| 565 | - 'value' => isset( $value ) ? $value : null, |
|
| 566 | - 'label' => isset( $label ) ? $label : null, |
|
| 567 | - 'desc' => isset( $desc ) ? $desc : null, |
|
| 564 | + 'name' => isset($name) ? $name : 'text', |
|
| 565 | + 'value' => isset($value) ? $value : null, |
|
| 566 | + 'label' => isset($label) ? $label : null, |
|
| 567 | + 'desc' => isset($desc) ? $desc : null, |
|
| 568 | 568 | 'placeholder' => '', |
| 569 | 569 | 'class' => 'regular-text', |
| 570 | 570 | 'disabled' => false, |
@@ -574,51 +574,51 @@ discard block |
||
| 574 | 574 | 'data' => false |
| 575 | 575 | ); |
| 576 | 576 | |
| 577 | - $args = wp_parse_args( $args, $defaults ); |
|
| 577 | + $args = wp_parse_args($args, $defaults); |
|
| 578 | 578 | |
| 579 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) ); |
|
| 579 | + $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); |
|
| 580 | 580 | $options = ''; |
| 581 | - if( $args['required'] ) { |
|
| 581 | + if ($args['required']) { |
|
| 582 | 582 | $options .= ' required="required"'; |
| 583 | 583 | } |
| 584 | - if( $args['readonly'] ) { |
|
| 584 | + if ($args['readonly']) { |
|
| 585 | 585 | $options .= ' readonly'; |
| 586 | 586 | } |
| 587 | - if( $args['readonly'] ) { |
|
| 587 | + if ($args['readonly']) { |
|
| 588 | 588 | $options .= ' readonly'; |
| 589 | 589 | } |
| 590 | 590 | |
| 591 | 591 | $data = ''; |
| 592 | - if ( !empty( $args['data'] ) ) { |
|
| 593 | - foreach ( $args['data'] as $key => $value ) { |
|
| 594 | - $data .= 'data-' . wpinv_sanitize_key( $key ) . '="' . esc_attr( $value ) . '" '; |
|
| 592 | + if (!empty($args['data'])) { |
|
| 593 | + foreach ($args['data'] as $key => $value) { |
|
| 594 | + $data .= 'data-' . wpinv_sanitize_key($key) . '="' . esc_attr($value) . '" '; |
|
| 595 | 595 | } |
| 596 | 596 | } |
| 597 | 597 | |
| 598 | - $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">'; |
|
| 599 | - $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['id'] ) . '">' . esc_html( $args['label'] ) . '</label>'; |
|
| 600 | - if ( ! empty( $args['desc'] ) ) { |
|
| 601 | - $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>'; |
|
| 598 | + $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">'; |
|
| 599 | + $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['id']) . '">' . esc_html($args['label']) . '</label>'; |
|
| 600 | + if (!empty($args['desc'])) { |
|
| 601 | + $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>'; |
|
| 602 | 602 | } |
| 603 | 603 | |
| 604 | - $output .= '<input type="text" name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" autocomplete="' . esc_attr( $args['autocomplete'] ) . '" value="' . esc_attr( $args['value'] ) . '" placeholder="' . esc_attr( $args['placeholder'] ) . '" class="' . $class . '" ' . $data . ' ' . trim( $options ) . '/>'; |
|
| 604 | + $output .= '<input type="text" name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['id']) . '" autocomplete="' . esc_attr($args['autocomplete']) . '" value="' . esc_attr($args['value']) . '" placeholder="' . esc_attr($args['placeholder']) . '" class="' . $class . '" ' . $data . ' ' . trim($options) . '/>'; |
|
| 605 | 605 | |
| 606 | 606 | $output .= '</span>'; |
| 607 | 607 | |
| 608 | 608 | return $output; |
| 609 | 609 | } |
| 610 | 610 | |
| 611 | -function wpinv_html_date_field( $args = array() ) { |
|
| 612 | - if( empty( $args['class'] ) ) { |
|
| 611 | +function wpinv_html_date_field($args = array()) { |
|
| 612 | + if (empty($args['class'])) { |
|
| 613 | 613 | $args['class'] = 'wpiDatepicker'; |
| 614 | - } elseif( ! strpos( $args['class'], 'wpiDatepicker' ) ) { |
|
| 614 | + } elseif (!strpos($args['class'], 'wpiDatepicker')) { |
|
| 615 | 615 | $args['class'] .= ' wpiDatepicker'; |
| 616 | 616 | } |
| 617 | 617 | |
| 618 | - return wpinv_html_text( $args ); |
|
| 618 | + return wpinv_html_text($args); |
|
| 619 | 619 | } |
| 620 | 620 | |
| 621 | -function wpinv_html_textarea( $args = array() ) { |
|
| 621 | +function wpinv_html_textarea($args = array()) { |
|
| 622 | 622 | $defaults = array( |
| 623 | 623 | 'name' => 'textarea', |
| 624 | 624 | 'value' => null, |
@@ -628,31 +628,31 @@ discard block |
||
| 628 | 628 | 'disabled' => false |
| 629 | 629 | ); |
| 630 | 630 | |
| 631 | - $args = wp_parse_args( $args, $defaults ); |
|
| 631 | + $args = wp_parse_args($args, $defaults); |
|
| 632 | 632 | |
| 633 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) ); |
|
| 633 | + $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); |
|
| 634 | 634 | $disabled = ''; |
| 635 | - if( $args['disabled'] ) { |
|
| 635 | + if ($args['disabled']) { |
|
| 636 | 636 | $disabled = ' disabled="disabled"'; |
| 637 | 637 | } |
| 638 | 638 | |
| 639 | - $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">'; |
|
| 640 | - $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['name'] ) . '">' . esc_html( $args['label'] ) . '</label>'; |
|
| 641 | - $output .= '<textarea name="' . esc_attr( $args['name'] ) . '" id="' . wpinv_sanitize_key( $args['name'] ) . '" class="' . $class . '"' . $disabled . '>' . esc_attr( $args['value'] ) . '</textarea>'; |
|
| 639 | + $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">'; |
|
| 640 | + $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['name']) . '">' . esc_html($args['label']) . '</label>'; |
|
| 641 | + $output .= '<textarea name="' . esc_attr($args['name']) . '" id="' . wpinv_sanitize_key($args['name']) . '" class="' . $class . '"' . $disabled . '>' . esc_attr($args['value']) . '</textarea>'; |
|
| 642 | 642 | |
| 643 | - if ( ! empty( $args['desc'] ) ) { |
|
| 644 | - $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>'; |
|
| 643 | + if (!empty($args['desc'])) { |
|
| 644 | + $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>'; |
|
| 645 | 645 | } |
| 646 | 646 | $output .= '</span>'; |
| 647 | 647 | |
| 648 | 648 | return $output; |
| 649 | 649 | } |
| 650 | 650 | |
| 651 | -function wpinv_html_ajax_user_search( $args = array() ) { |
|
| 651 | +function wpinv_html_ajax_user_search($args = array()) { |
|
| 652 | 652 | $defaults = array( |
| 653 | 653 | 'name' => 'user_id', |
| 654 | 654 | 'value' => null, |
| 655 | - 'placeholder' => __( 'Enter username', 'invoicing' ), |
|
| 655 | + 'placeholder' => __('Enter username', 'invoicing'), |
|
| 656 | 656 | 'label' => null, |
| 657 | 657 | 'desc' => null, |
| 658 | 658 | 'class' => '', |
@@ -661,13 +661,13 @@ discard block |
||
| 661 | 661 | 'data' => false |
| 662 | 662 | ); |
| 663 | 663 | |
| 664 | - $args = wp_parse_args( $args, $defaults ); |
|
| 664 | + $args = wp_parse_args($args, $defaults); |
|
| 665 | 665 | |
| 666 | 666 | $args['class'] = 'wpinv-ajax-user-search ' . $args['class']; |
| 667 | 667 | |
| 668 | 668 | $output = '<span class="wpinv_user_search_wrap">'; |
| 669 | - $output .= wpinv_html_text( $args ); |
|
| 670 | - $output .= '<span class="wpinv_user_search_results hidden"><a class="wpinv-ajax-user-cancel" title="' . __( 'Cancel', 'invoicing' ) . '" aria-label="' . __( 'Cancel', 'invoicing' ) . '" href="#">x</a><span></span></span>'; |
|
| 669 | + $output .= wpinv_html_text($args); |
|
| 670 | + $output .= '<span class="wpinv_user_search_results hidden"><a class="wpinv-ajax-user-cancel" title="' . __('Cancel', 'invoicing') . '" aria-label="' . __('Cancel', 'invoicing') . '" href="#">x</a><span></span></span>'; |
|
| 671 | 671 | $output .= '</span>'; |
| 672 | 672 | |
| 673 | 673 | return $output; |
@@ -676,7 +676,7 @@ discard block |
||
| 676 | 676 | function wpinv_ip_geolocation() { |
| 677 | 677 | global $wpinv_euvat; |
| 678 | 678 | |
| 679 | - $ip = !empty( $_GET['ip'] ) ? sanitize_text_field( $_GET['ip'] ) : ''; |
|
| 679 | + $ip = !empty($_GET['ip']) ? sanitize_text_field($_GET['ip']) : ''; |
|
| 680 | 680 | $content = ''; |
| 681 | 681 | $iso = ''; |
| 682 | 682 | $country = ''; |
@@ -687,69 +687,69 @@ discard block |
||
| 687 | 687 | $credit = ''; |
| 688 | 688 | $address = ''; |
| 689 | 689 | |
| 690 | - if ( wpinv_get_option( 'vat_ip_lookup' ) == 'geoip2' && $geoip2_city = $wpinv_euvat->geoip2_city_record( $ip ) ) { |
|
| 690 | + if (wpinv_get_option('vat_ip_lookup') == 'geoip2' && $geoip2_city = $wpinv_euvat->geoip2_city_record($ip)) { |
|
| 691 | 691 | try { |
| 692 | 692 | $iso = $geoip2_city->country->isoCode; |
| 693 | 693 | $country = $geoip2_city->country->name; |
| 694 | - $region = !empty( $geoip2_city->subdivisions ) && !empty( $geoip2_city->subdivisions[0]->name ) ? $geoip2_city->subdivisions[0]->name : ''; |
|
| 694 | + $region = !empty($geoip2_city->subdivisions) && !empty($geoip2_city->subdivisions[0]->name) ? $geoip2_city->subdivisions[0]->name : ''; |
|
| 695 | 695 | $city = $geoip2_city->city->name; |
| 696 | 696 | $longitude = $geoip2_city->location->longitude; |
| 697 | 697 | $latitude = $geoip2_city->location->latitude; |
| 698 | - $credit = __( 'Geolocated using the information by MaxMind, available from <a href="http://www.maxmind.com" target="_blank">www.maxmind.com</a>', 'invoicing' ); |
|
| 699 | - } catch( Exception $e ) { } |
|
| 698 | + $credit = __('Geolocated using the information by MaxMind, available from <a href="http://www.maxmind.com" target="_blank">www.maxmind.com</a>', 'invoicing'); |
|
| 699 | + } catch (Exception $e) { } |
|
| 700 | 700 | } |
| 701 | 701 | |
| 702 | - if ( !( $iso && $longitude && $latitude ) && function_exists( 'simplexml_load_file' ) ) { |
|
| 702 | + if (!($iso && $longitude && $latitude) && function_exists('simplexml_load_file')) { |
|
| 703 | 703 | try { |
| 704 | - $load_xml = simplexml_load_file( 'http://www.geoplugin.net/xml.gp?ip=' . $ip ); |
|
| 704 | + $load_xml = simplexml_load_file('http://www.geoplugin.net/xml.gp?ip=' . $ip); |
|
| 705 | 705 | |
| 706 | - if ( !empty( $load_xml ) && isset( $load_xml->geoplugin_countryCode ) && !empty( $load_xml->geoplugin_latitude ) && !empty( $load_xml->geoplugin_longitude ) ) { |
|
| 706 | + if (!empty($load_xml) && isset($load_xml->geoplugin_countryCode) && !empty($load_xml->geoplugin_latitude) && !empty($load_xml->geoplugin_longitude)) { |
|
| 707 | 707 | $iso = $load_xml->geoplugin_countryCode; |
| 708 | 708 | $country = $load_xml->geoplugin_countryName; |
| 709 | - $region = !empty( $load_xml->geoplugin_regionName ) ? $load_xml->geoplugin_regionName : ''; |
|
| 710 | - $city = !empty( $load_xml->geoplugin_city ) ? $load_xml->geoplugin_city : ''; |
|
| 709 | + $region = !empty($load_xml->geoplugin_regionName) ? $load_xml->geoplugin_regionName : ''; |
|
| 710 | + $city = !empty($load_xml->geoplugin_city) ? $load_xml->geoplugin_city : ''; |
|
| 711 | 711 | $longitude = $load_xml->geoplugin_longitude; |
| 712 | 712 | $latitude = $load_xml->geoplugin_latitude; |
| 713 | 713 | $credit = $load_xml->geoplugin_credit; |
| 714 | - $credit = __( 'Geolocated using the information by geoPlugin, available from <a href="http://www.geoplugin.com" target="_blank">www.geoplugin.com</a>', 'invoicing' ) . '<br>' . $load_xml->geoplugin_credit; |
|
| 714 | + $credit = __('Geolocated using the information by geoPlugin, available from <a href="http://www.geoplugin.com" target="_blank">www.geoplugin.com</a>', 'invoicing') . '<br>' . $load_xml->geoplugin_credit; |
|
| 715 | 715 | } |
| 716 | - } catch( Exception $e ) { } |
|
| 716 | + } catch (Exception $e) { } |
|
| 717 | 717 | } |
| 718 | 718 | |
| 719 | - if ( $iso && $longitude && $latitude ) { |
|
| 720 | - if ( $city ) { |
|
| 719 | + if ($iso && $longitude && $latitude) { |
|
| 720 | + if ($city) { |
|
| 721 | 721 | $address .= $city . ', '; |
| 722 | 722 | } |
| 723 | 723 | |
| 724 | - if ( $region ) { |
|
| 724 | + if ($region) { |
|
| 725 | 725 | $address .= $region . ', '; |
| 726 | 726 | } |
| 727 | 727 | |
| 728 | 728 | $address .= $country . ' (' . $iso . ')'; |
| 729 | - $content = '<p>'. sprintf( __( '<b>Address:</b> %s', 'invoicing' ), $address ) . '</p>'; |
|
| 730 | - $content .= '<p>'. $credit . '</p>'; |
|
| 729 | + $content = '<p>' . sprintf(__('<b>Address:</b> %s', 'invoicing'), $address) . '</p>'; |
|
| 730 | + $content .= '<p>' . $credit . '</p>'; |
|
| 731 | 731 | } else { |
| 732 | - $content = '<p>'. sprintf( __( 'Unable to find geolocation for the IP address: %s', 'invoicing' ), $ip ) . '</p>'; |
|
| 732 | + $content = '<p>' . sprintf(__('Unable to find geolocation for the IP address: %s', 'invoicing'), $ip) . '</p>'; |
|
| 733 | 733 | } |
| 734 | 734 | ?> |
| 735 | 735 | <!DOCTYPE html> |
| 736 | -<html><head><title><?php echo sprintf( __( 'IP: %s', 'invoicing' ), $ip );?></title><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-rc.1/leaflet.css" /><style>html,body{height:100%;margin:0;padding:0;width:100%}body{text-align:center;background:#fff;color:#222;font-size:small;}body,p{font-family: arial,sans-serif}#map{margin:auto;width:100%;height:calc(100% - 120px);min-height:240px}</style></head> |
|
| 736 | +<html><head><title><?php echo sprintf(__('IP: %s', 'invoicing'), $ip); ?></title><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-rc.1/leaflet.css" /><style>html,body{height:100%;margin:0;padding:0;width:100%}body{text-align:center;background:#fff;color:#222;font-size:small;}body,p{font-family: arial,sans-serif}#map{margin:auto;width:100%;height:calc(100% - 120px);min-height:240px}</style></head> |
|
| 737 | 737 | <body> |
| 738 | - <?php if ( $latitude && $latitude ) { ?> |
|
| 738 | + <?php if ($latitude && $latitude) { ?> |
|
| 739 | 739 | <div id="map"></div> |
| 740 | 740 | <script src="//cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-rc.1/leaflet.js"></script> |
| 741 | 741 | <script type="text/javascript"> |
| 742 | 742 | var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', |
| 743 | 743 | osmAttrib = '© <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors', |
| 744 | 744 | osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution: osmAttrib}), |
| 745 | - latlng = new L.LatLng(<?php echo $latitude;?>, <?php echo $longitude;?>); |
|
| 745 | + latlng = new L.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>); |
|
| 746 | 746 | |
| 747 | 747 | var map = new L.Map('map', {center: latlng, zoom: 12, layers: [osm]}); |
| 748 | 748 | |
| 749 | 749 | var marker = new L.Marker(latlng); |
| 750 | 750 | map.addLayer(marker); |
| 751 | 751 | |
| 752 | - marker.bindPopup("<p><?php esc_attr_e( $address );?></p>"); |
|
| 752 | + marker.bindPopup("<p><?php esc_attr_e($address); ?></p>"); |
|
| 753 | 753 | </script> |
| 754 | 754 | <?php } ?> |
| 755 | 755 | <div style="height:100px"><?php echo $content; ?></div> |
@@ -757,18 +757,18 @@ discard block |
||
| 757 | 757 | <?php |
| 758 | 758 | exit; |
| 759 | 759 | } |
| 760 | -add_action( 'wp_ajax_wpinv_ip_geolocation', 'wpinv_ip_geolocation' ); |
|
| 761 | -add_action( 'wp_ajax_nopriv_wpinv_ip_geolocation', 'wpinv_ip_geolocation' ); |
|
| 760 | +add_action('wp_ajax_wpinv_ip_geolocation', 'wpinv_ip_geolocation'); |
|
| 761 | +add_action('wp_ajax_nopriv_wpinv_ip_geolocation', 'wpinv_ip_geolocation'); |
|
| 762 | 762 | |
| 763 | 763 | // Set up the template for the invoice. |
| 764 | -function wpinv_template( $template ) { |
|
| 764 | +function wpinv_template($template) { |
|
| 765 | 765 | global $post, $wp_query; |
| 766 | 766 | |
| 767 | - if ( ( is_single() || is_404() ) && !empty( $post->ID ) && (get_post_type( $post->ID ) == 'wpi_invoice' or get_post_type( $post->ID ) == 'wpi_quote')) { |
|
| 768 | - if ( wpinv_user_can_view_invoice( $post->ID ) ) { |
|
| 769 | - $template = wpinv_get_template_part( 'wpinv-invoice-print', false, false ); |
|
| 767 | + if ((is_single() || is_404()) && !empty($post->ID) && (get_post_type($post->ID) == 'wpi_invoice' or get_post_type($post->ID) == 'wpi_quote')) { |
|
| 768 | + if (wpinv_user_can_view_invoice($post->ID)) { |
|
| 769 | + $template = wpinv_get_template_part('wpinv-invoice-print', false, false); |
|
| 770 | 770 | } else { |
| 771 | - $template = wpinv_get_template_part( 'wpinv-invalid-access', false, false ); |
|
| 771 | + $template = wpinv_get_template_part('wpinv-invalid-access', false, false); |
|
| 772 | 772 | } |
| 773 | 773 | } |
| 774 | 774 | |
@@ -777,7 +777,7 @@ discard block |
||
| 777 | 777 | |
| 778 | 778 | function wpinv_get_business_address() { |
| 779 | 779 | $business_address = wpinv_store_address(); |
| 780 | - $business_address = !empty( $business_address ) ? wpautop( wp_kses_post( $business_address ) ) : ''; |
|
| 780 | + $business_address = !empty($business_address) ? wpautop(wp_kses_post($business_address)) : ''; |
|
| 781 | 781 | |
| 782 | 782 | /* |
| 783 | 783 | $default_country = wpinv_get_default_country(); |
@@ -801,7 +801,7 @@ discard block |
||
| 801 | 801 | |
| 802 | 802 | $business_address = $business_address ? '<div class="address">' . $business_address . '</div>' : ''; |
| 803 | 803 | |
| 804 | - return apply_filters( 'wpinv_get_business_address', $business_address ); |
|
| 804 | + return apply_filters('wpinv_get_business_address', $business_address); |
|
| 805 | 805 | } |
| 806 | 806 | |
| 807 | 807 | function wpinv_display_from_address() { |
@@ -811,187 +811,187 @@ discard block |
||
| 811 | 811 | if (empty($from_name)) { |
| 812 | 812 | $from_name = wpinv_get_business_name(); |
| 813 | 813 | } |
| 814 | - ?><div class="from col-xs-2"><strong><?php _e( 'From:', 'invoicing' ) ?></strong></div> |
|
| 814 | + ?><div class="from col-xs-2"><strong><?php _e('From:', 'invoicing') ?></strong></div> |
|
| 815 | 815 | <div class="wrapper col-xs-10"> |
| 816 | - <div class="name"><?php echo esc_html( $from_name ); ?></div> |
|
| 817 | - <?php if ( $address = wpinv_get_business_address() ) { ?> |
|
| 818 | - <div class="address"><?php echo wpautop( wp_kses_post( $address ) );?></div> |
|
| 816 | + <div class="name"><?php echo esc_html($from_name); ?></div> |
|
| 817 | + <?php if ($address = wpinv_get_business_address()) { ?> |
|
| 818 | + <div class="address"><?php echo wpautop(wp_kses_post($address)); ?></div> |
|
| 819 | 819 | <?php } ?> |
| 820 | - <?php if ( $email_from = wpinv_mail_get_from_address() ) { ?> |
|
| 821 | - <div class="email_from"><?php echo wp_sprintf( __( 'Email: %s', 'invoicing' ), $email_from );?></div> |
|
| 820 | + <?php if ($email_from = wpinv_mail_get_from_address()) { ?> |
|
| 821 | + <div class="email_from"><?php echo wp_sprintf(__('Email: %s', 'invoicing'), $email_from); ?></div> |
|
| 822 | 822 | <?php } ?> |
| 823 | 823 | </div> |
| 824 | 824 | <?php |
| 825 | 825 | } |
| 826 | 826 | |
| 827 | -function wpinv_watermark( $id = 0 ) { |
|
| 828 | - $output = wpinv_get_watermark( $id ); |
|
| 827 | +function wpinv_watermark($id = 0) { |
|
| 828 | + $output = wpinv_get_watermark($id); |
|
| 829 | 829 | |
| 830 | - return apply_filters( 'wpinv_get_watermark', $output, $id ); |
|
| 830 | + return apply_filters('wpinv_get_watermark', $output, $id); |
|
| 831 | 831 | } |
| 832 | 832 | |
| 833 | -function wpinv_get_watermark( $id ) { |
|
| 834 | - if ( !$id > 0 ) { |
|
| 833 | +function wpinv_get_watermark($id) { |
|
| 834 | + if (!$id > 0) { |
|
| 835 | 835 | return NULL; |
| 836 | 836 | } |
| 837 | - $invoice = wpinv_get_invoice( $id ); |
|
| 837 | + $invoice = wpinv_get_invoice($id); |
|
| 838 | 838 | |
| 839 | - if ( !empty( $invoice ) && "wpi_invoice" === $invoice->post_type ) { |
|
| 840 | - if ( $invoice->is_paid() ) { |
|
| 841 | - return __( 'Paid', 'invoicing' ); |
|
| 839 | + if (!empty($invoice) && "wpi_invoice" === $invoice->post_type) { |
|
| 840 | + if ($invoice->is_paid()) { |
|
| 841 | + return __('Paid', 'invoicing'); |
|
| 842 | 842 | } |
| 843 | - if ( $invoice->is_refunded() ) { |
|
| 844 | - return __( 'Refunded', 'invoicing' ); |
|
| 843 | + if ($invoice->is_refunded()) { |
|
| 844 | + return __('Refunded', 'invoicing'); |
|
| 845 | 845 | } |
| 846 | - if ( $invoice->has_status( array( 'wpi-cancelled' ) ) ) { |
|
| 847 | - return __( 'Cancelled', 'invoicing' ); |
|
| 846 | + if ($invoice->has_status(array('wpi-cancelled'))) { |
|
| 847 | + return __('Cancelled', 'invoicing'); |
|
| 848 | 848 | } |
| 849 | 849 | } |
| 850 | 850 | |
| 851 | 851 | return NULL; |
| 852 | 852 | } |
| 853 | 853 | |
| 854 | -function wpinv_display_invoice_details( $invoice ) { |
|
| 854 | +function wpinv_display_invoice_details($invoice) { |
|
| 855 | 855 | global $wpinv_euvat; |
| 856 | 856 | |
| 857 | 857 | $invoice_id = $invoice->ID; |
| 858 | 858 | $vat_name = $wpinv_euvat->get_vat_name(); |
| 859 | 859 | $use_taxes = wpinv_use_taxes(); |
| 860 | 860 | |
| 861 | - $invoice_status = wpinv_get_invoice_status( $invoice_id ); |
|
| 861 | + $invoice_status = wpinv_get_invoice_status($invoice_id); |
|
| 862 | 862 | ?> |
| 863 | 863 | <table class="table table-bordered table-sm"> |
| 864 | - <?php if ( $invoice_number = wpinv_get_invoice_number( $invoice_id ) ) { ?> |
|
| 864 | + <?php if ($invoice_number = wpinv_get_invoice_number($invoice_id)) { ?> |
|
| 865 | 865 | <tr class="wpi-row-number"> |
| 866 | - <th><?php echo apply_filters( 'wpinv_invoice_number_label', __( 'Invoice Number', 'invoicing' ), $invoice ); ?></th> |
|
| 867 | - <td><?php echo esc_html( $invoice_number ); ?></td> |
|
| 866 | + <th><?php echo apply_filters('wpinv_invoice_number_label', __('Invoice Number', 'invoicing'), $invoice); ?></th> |
|
| 867 | + <td><?php echo esc_html($invoice_number); ?></td> |
|
| 868 | 868 | </tr> |
| 869 | 869 | <?php } ?> |
| 870 | 870 | <tr class="wpi-row-status"> |
| 871 | - <th><?php echo apply_filters( 'wpinv_invoice_status_label', __( 'Invoice Status', 'invoicing' ), $invoice ); ?></th> |
|
| 872 | - <td><?php echo wpinv_invoice_status_label( $invoice_status, wpinv_get_invoice_status( $invoice_id, true ) ); ?></td> |
|
| 871 | + <th><?php echo apply_filters('wpinv_invoice_status_label', __('Invoice Status', 'invoicing'), $invoice); ?></th> |
|
| 872 | + <td><?php echo wpinv_invoice_status_label($invoice_status, wpinv_get_invoice_status($invoice_id, true)); ?></td> |
|
| 873 | 873 | </tr> |
| 874 | - <?php if ( $invoice->is_renewal() ) { ?> |
|
| 874 | + <?php if ($invoice->is_renewal()) { ?> |
|
| 875 | 875 | <tr class="wpi-row-parent"> |
| 876 | - <th><?php echo apply_filters( 'wpinv_invoice_parent_invoice_label', __( 'Parent Invoice', 'invoicing' ), $invoice ); ?></th> |
|
| 877 | - <td><?php echo wpinv_invoice_link( $invoice->parent_invoice ); ?></td> |
|
| 876 | + <th><?php echo apply_filters('wpinv_invoice_parent_invoice_label', __('Parent Invoice', 'invoicing'), $invoice); ?></th> |
|
| 877 | + <td><?php echo wpinv_invoice_link($invoice->parent_invoice); ?></td> |
|
| 878 | 878 | </tr> |
| 879 | 879 | <?php } ?> |
| 880 | - <?php if ( ( $gateway_name = wpinv_get_payment_gateway_name( $invoice_id ) ) && ( $invoice->is_paid() || $invoice->is_refunded() ) ) { ?> |
|
| 880 | + <?php if (($gateway_name = wpinv_get_payment_gateway_name($invoice_id)) && ($invoice->is_paid() || $invoice->is_refunded())) { ?> |
|
| 881 | 881 | <tr class="wpi-row-gateway"> |
| 882 | - <th><?php echo apply_filters( 'wpinv_invoice_payment_method_label', __( 'Payment Method', 'invoicing' ), $invoice ); ?></th> |
|
| 882 | + <th><?php echo apply_filters('wpinv_invoice_payment_method_label', __('Payment Method', 'invoicing'), $invoice); ?></th> |
|
| 883 | 883 | <td><?php echo $gateway_name; ?></td> |
| 884 | 884 | </tr> |
| 885 | 885 | <?php } ?> |
| 886 | - <?php if ( $invoice_date = wpinv_get_invoice_date( $invoice_id ) ) { ?> |
|
| 886 | + <?php if ($invoice_date = wpinv_get_invoice_date($invoice_id)) { ?> |
|
| 887 | 887 | <tr class="wpi-row-date"> |
| 888 | - <th><?php echo apply_filters( 'wpinv_invoice_date_label', __( 'Invoice Date', 'invoicing' ), $invoice ); ?></th> |
|
| 888 | + <th><?php echo apply_filters('wpinv_invoice_date_label', __('Invoice Date', 'invoicing'), $invoice); ?></th> |
|
| 889 | 889 | <td><?php echo $invoice_date; ?></td> |
| 890 | 890 | </tr> |
| 891 | 891 | <?php } ?> |
| 892 | - <?php if ( wpinv_get_option( 'overdue_active' ) && $invoice->needs_payment() && ( $due_date = $invoice->get_due_date( true ) ) ) { ?> |
|
| 892 | + <?php if (wpinv_get_option('overdue_active') && $invoice->needs_payment() && ($due_date = $invoice->get_due_date(true))) { ?> |
|
| 893 | 893 | <tr class="wpi-row-date"> |
| 894 | - <th><?php echo apply_filters( 'wpinv_invoice_due_date_label', __( 'Due Date', 'invoicing' ), $invoice ); ?></th> |
|
| 894 | + <th><?php echo apply_filters('wpinv_invoice_due_date_label', __('Due Date', 'invoicing'), $invoice); ?></th> |
|
| 895 | 895 | <td><?php echo $due_date; ?></td> |
| 896 | 896 | </tr> |
| 897 | 897 | <?php } ?> |
| 898 | - <?php if ( $owner_vat_number = $wpinv_euvat->get_vat_number() ) { ?> |
|
| 898 | + <?php if ($owner_vat_number = $wpinv_euvat->get_vat_number()) { ?> |
|
| 899 | 899 | <tr class="wpi-row-ovatno"> |
| 900 | - <th><?php echo apply_filters( 'wpinv_invoice_owner_vat_number_label', wp_sprintf( __( 'Owner %s Number', 'invoicing' ), $vat_name ), $invoice, $vat_name ); ?></th> |
|
| 900 | + <th><?php echo apply_filters('wpinv_invoice_owner_vat_number_label', wp_sprintf(__('Owner %s Number', 'invoicing'), $vat_name), $invoice, $vat_name); ?></th> |
|
| 901 | 901 | <td><?php echo $owner_vat_number; ?></td> |
| 902 | 902 | </tr> |
| 903 | 903 | <?php } ?> |
| 904 | - <?php if ( $use_taxes && ( $user_vat_number = wpinv_get_invoice_vat_number( $invoice_id ) ) ) { ?> |
|
| 904 | + <?php if ($use_taxes && ($user_vat_number = wpinv_get_invoice_vat_number($invoice_id))) { ?> |
|
| 905 | 905 | <tr class="wpi-row-uvatno"> |
| 906 | - <th><?php echo apply_filters( 'wpinv_invoice_user_vat_number_label', wp_sprintf( __( 'Invoice %s Number', 'invoicing' ), $vat_name ), $invoice, $vat_name ); ?></th> |
|
| 906 | + <th><?php echo apply_filters('wpinv_invoice_user_vat_number_label', wp_sprintf(__('Invoice %s Number', 'invoicing'), $vat_name), $invoice, $vat_name); ?></th> |
|
| 907 | 907 | <td><?php echo $user_vat_number; ?></td> |
| 908 | 908 | </tr> |
| 909 | 909 | <?php } ?> |
| 910 | 910 | <tr class="table-active tr-total wpi-row-total"> |
| 911 | - <th><strong><?php _e( 'Total Amount', 'invoicing' ) ?></strong></th> |
|
| 912 | - <td><strong><?php echo wpinv_payment_total( $invoice_id, true ); ?></strong></td> |
|
| 911 | + <th><strong><?php _e('Total Amount', 'invoicing') ?></strong></th> |
|
| 912 | + <td><strong><?php echo wpinv_payment_total($invoice_id, true); ?></strong></td> |
|
| 913 | 913 | </tr> |
| 914 | 914 | </table> |
| 915 | 915 | <?php |
| 916 | 916 | } |
| 917 | 917 | |
| 918 | -function wpinv_display_to_address( $invoice_id = 0 ) { |
|
| 919 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
| 918 | +function wpinv_display_to_address($invoice_id = 0) { |
|
| 919 | + $invoice = wpinv_get_invoice($invoice_id); |
|
| 920 | 920 | |
| 921 | - if ( empty( $invoice ) ) { |
|
| 921 | + if (empty($invoice)) { |
|
| 922 | 922 | return NULL; |
| 923 | 923 | } |
| 924 | 924 | |
| 925 | 925 | $billing_details = $invoice->get_user_info(); |
| 926 | - $output = '<div class="to col-xs-2"><strong>' . __( 'To:', 'invoicing' ) . '</strong></div>'; |
|
| 926 | + $output = '<div class="to col-xs-2"><strong>' . __('To:', 'invoicing') . '</strong></div>'; |
|
| 927 | 927 | $output .= '<div class="wrapper col-xs-10">'; |
| 928 | 928 | |
| 929 | 929 | ob_start(); |
| 930 | - do_action( 'wpinv_display_to_address_top', $invoice ); |
|
| 930 | + do_action('wpinv_display_to_address_top', $invoice); |
|
| 931 | 931 | $output .= ob_get_clean(); |
| 932 | 932 | |
| 933 | - $output .= '<div class="name">' . esc_html( trim( $billing_details['first_name'] . ' ' . $billing_details['last_name'] ) ) . '</div>'; |
|
| 934 | - if ( $company = $billing_details['company'] ) { |
|
| 935 | - $output .= '<div class="company">' . wpautop( wp_kses_post( $company ) ) . '</div>'; |
|
| 933 | + $output .= '<div class="name">' . esc_html(trim($billing_details['first_name'] . ' ' . $billing_details['last_name'])) . '</div>'; |
|
| 934 | + if ($company = $billing_details['company']) { |
|
| 935 | + $output .= '<div class="company">' . wpautop(wp_kses_post($company)) . '</div>'; |
|
| 936 | 936 | } |
| 937 | 937 | $address_row = ''; |
| 938 | - if ( $address = $billing_details['address'] ) { |
|
| 939 | - $address_row .= wpautop( wp_kses_post( $address ) ); |
|
| 938 | + if ($address = $billing_details['address']) { |
|
| 939 | + $address_row .= wpautop(wp_kses_post($address)); |
|
| 940 | 940 | } |
| 941 | 941 | |
| 942 | 942 | $address_fields = array(); |
| 943 | - if ( !empty( $billing_details['city'] ) ) { |
|
| 943 | + if (!empty($billing_details['city'])) { |
|
| 944 | 944 | $address_fields[] = $billing_details['city']; |
| 945 | 945 | } |
| 946 | 946 | |
| 947 | - $billing_country = !empty( $billing_details['country'] ) ? $billing_details['country'] : ''; |
|
| 948 | - if ( !empty( $billing_details['state'] ) ) { |
|
| 949 | - $address_fields[] = wpinv_state_name( $billing_details['state'], $billing_country ); |
|
| 947 | + $billing_country = !empty($billing_details['country']) ? $billing_details['country'] : ''; |
|
| 948 | + if (!empty($billing_details['state'])) { |
|
| 949 | + $address_fields[] = wpinv_state_name($billing_details['state'], $billing_country); |
|
| 950 | 950 | } |
| 951 | 951 | |
| 952 | - if ( !empty( $billing_country ) ) { |
|
| 953 | - $address_fields[] = wpinv_country_name( $billing_country ); |
|
| 952 | + if (!empty($billing_country)) { |
|
| 953 | + $address_fields[] = wpinv_country_name($billing_country); |
|
| 954 | 954 | } |
| 955 | 955 | |
| 956 | - if ( !empty( $address_fields ) ) { |
|
| 957 | - $address_fields = implode( ", ", $address_fields ); |
|
| 956 | + if (!empty($address_fields)) { |
|
| 957 | + $address_fields = implode(", ", $address_fields); |
|
| 958 | 958 | |
| 959 | - if ( !empty( $billing_details['zip'] ) ) { |
|
| 959 | + if (!empty($billing_details['zip'])) { |
|
| 960 | 960 | $address_fields .= ' ' . $billing_details['zip']; |
| 961 | 961 | } |
| 962 | 962 | |
| 963 | - $address_row .= wpautop( wp_kses_post( $address_fields ) ); |
|
| 963 | + $address_row .= wpautop(wp_kses_post($address_fields)); |
|
| 964 | 964 | } |
| 965 | 965 | |
| 966 | - if ( $address_row ) { |
|
| 966 | + if ($address_row) { |
|
| 967 | 967 | $output .= '<div class="address">' . $address_row . '</div>'; |
| 968 | 968 | } |
| 969 | 969 | |
| 970 | - if ( $phone = $invoice->get_phone() ) { |
|
| 971 | - $output .= '<div class="phone">' . wp_sprintf( __( 'Phone: %s', 'invoicing' ), esc_html( $phone ) ) . '</div>'; |
|
| 970 | + if ($phone = $invoice->get_phone()) { |
|
| 971 | + $output .= '<div class="phone">' . wp_sprintf(__('Phone: %s', 'invoicing'), esc_html($phone)) . '</div>'; |
|
| 972 | 972 | } |
| 973 | - if ( $email = $invoice->get_email() ) { |
|
| 974 | - $output .= '<div class="email">' . wp_sprintf( __( 'Email: %s' , 'invoicing'), esc_html( $email ) ) . '</div>'; |
|
| 973 | + if ($email = $invoice->get_email()) { |
|
| 974 | + $output .= '<div class="email">' . wp_sprintf(__('Email: %s', 'invoicing'), esc_html($email)) . '</div>'; |
|
| 975 | 975 | } |
| 976 | 976 | |
| 977 | 977 | ob_start(); |
| 978 | - do_action( 'wpinv_display_to_address_bottom', $invoice ); |
|
| 978 | + do_action('wpinv_display_to_address_bottom', $invoice); |
|
| 979 | 979 | $output .= ob_get_clean(); |
| 980 | 980 | |
| 981 | 981 | $output .= '</div>'; |
| 982 | - $output = apply_filters( 'wpinv_display_to_address', $output, $invoice ); |
|
| 982 | + $output = apply_filters('wpinv_display_to_address', $output, $invoice); |
|
| 983 | 983 | |
| 984 | 984 | echo $output; |
| 985 | 985 | } |
| 986 | 986 | |
| 987 | -function wpinv_display_line_items( $invoice_id = 0 ) { |
|
| 987 | +function wpinv_display_line_items($invoice_id = 0) { |
|
| 988 | 988 | global $wpinv_euvat, $ajax_cart_details; |
| 989 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
| 989 | + $invoice = wpinv_get_invoice($invoice_id); |
|
| 990 | 990 | $quantities_enabled = wpinv_item_quantities_enabled(); |
| 991 | 991 | $use_taxes = wpinv_use_taxes(); |
| 992 | 992 | $zero_tax = !(float)$invoice->get_tax() > 0 ? true : false; |
| 993 | - $tax_label = $use_taxes && $invoice->has_vat() ? $wpinv_euvat->get_vat_name() : __( 'Tax', 'invoicing' ); |
|
| 994 | - $tax_title = !$zero_tax && $use_taxes ? ( wpinv_prices_include_tax() ? wp_sprintf( __( '(%s Incl.)', 'invoicing' ), $tax_label ) : wp_sprintf( __( '(%s Excl.)', 'invoicing' ), $tax_label ) ) : ''; |
|
| 993 | + $tax_label = $use_taxes && $invoice->has_vat() ? $wpinv_euvat->get_vat_name() : __('Tax', 'invoicing'); |
|
| 994 | + $tax_title = !$zero_tax && $use_taxes ? (wpinv_prices_include_tax() ? wp_sprintf(__('(%s Incl.)', 'invoicing'), $tax_label) : wp_sprintf(__('(%s Excl.)', 'invoicing'), $tax_label)) : ''; |
|
| 995 | 995 | |
| 996 | 996 | $cart_details = $invoice->get_cart_details(); |
| 997 | 997 | $ajax_cart_details = $cart_details; |
@@ -1000,64 +1000,64 @@ discard block |
||
| 1000 | 1000 | <table class="table table-sm table-bordered table-responsive"> |
| 1001 | 1001 | <thead> |
| 1002 | 1002 | <tr> |
| 1003 | - <th class="name"><strong><?php _e( "Item Name", "invoicing" );?></strong></th> |
|
| 1004 | - <th class="rate"><strong><?php _e( "Price", "invoicing" );?></strong></th> |
|
| 1003 | + <th class="name"><strong><?php _e("Item Name", "invoicing"); ?></strong></th> |
|
| 1004 | + <th class="rate"><strong><?php _e("Price", "invoicing"); ?></strong></th> |
|
| 1005 | 1005 | <?php if ($quantities_enabled) { ?> |
| 1006 | - <th class="qty"><strong><?php _e( "Qty", "invoicing" );?></strong></th> |
|
| 1006 | + <th class="qty"><strong><?php _e("Qty", "invoicing"); ?></strong></th> |
|
| 1007 | 1007 | <?php } ?> |
| 1008 | 1008 | <?php if ($use_taxes && !$zero_tax) { ?> |
| 1009 | 1009 | <th class="tax"><strong><?php echo $tax_label . ' <span class="normal small">(%)</span>'; ?></strong></th> |
| 1010 | 1010 | <?php } ?> |
| 1011 | - <th class="total"><strong><?php echo __( "Item Total", "invoicing" ) . ' <span class="normal small">' . $tax_title . '<span>';?></strong></th> |
|
| 1011 | + <th class="total"><strong><?php echo __("Item Total", "invoicing") . ' <span class="normal small">' . $tax_title . '<span>'; ?></strong></th> |
|
| 1012 | 1012 | </tr> |
| 1013 | 1013 | </thead> |
| 1014 | 1014 | <tbody> |
| 1015 | 1015 | <?php |
| 1016 | - if ( !empty( $cart_details ) ) { |
|
| 1017 | - do_action( 'wpinv_display_line_items_start', $invoice ); |
|
| 1016 | + if (!empty($cart_details)) { |
|
| 1017 | + do_action('wpinv_display_line_items_start', $invoice); |
|
| 1018 | 1018 | |
| 1019 | 1019 | $count = 0; |
| 1020 | 1020 | $cols = 3; |
| 1021 | - foreach ( $cart_details as $key => $cart_item ) { |
|
| 1022 | - $item_id = !empty($cart_item['id']) ? absint( $cart_item['id'] ) : ''; |
|
| 1023 | - $item_price = isset($cart_item["item_price"]) ? wpinv_round_amount( $cart_item["item_price"] ) : 0; |
|
| 1024 | - $line_total = isset($cart_item["subtotal"]) ? wpinv_round_amount( $cart_item["subtotal"] ) : 0; |
|
| 1025 | - $quantity = !empty($cart_item['quantity']) && (int)$cart_item['quantity'] > 0 ? absint( $cart_item['quantity'] ) : 1; |
|
| 1021 | + foreach ($cart_details as $key => $cart_item) { |
|
| 1022 | + $item_id = !empty($cart_item['id']) ? absint($cart_item['id']) : ''; |
|
| 1023 | + $item_price = isset($cart_item["item_price"]) ? wpinv_round_amount($cart_item["item_price"]) : 0; |
|
| 1024 | + $line_total = isset($cart_item["subtotal"]) ? wpinv_round_amount($cart_item["subtotal"]) : 0; |
|
| 1025 | + $quantity = !empty($cart_item['quantity']) && (int)$cart_item['quantity'] > 0 ? absint($cart_item['quantity']) : 1; |
|
| 1026 | 1026 | |
| 1027 | - $item = $item_id ? new WPInv_Item( $item_id ) : NULL; |
|
| 1027 | + $item = $item_id ? new WPInv_Item($item_id) : NULL; |
|
| 1028 | 1028 | $summary = ''; |
| 1029 | 1029 | $cols = 3; |
| 1030 | - if ( !empty($item) ) { |
|
| 1030 | + if (!empty($item)) { |
|
| 1031 | 1031 | $item_name = $item->get_name(); |
| 1032 | 1032 | $summary = $item->get_summary(); |
| 1033 | 1033 | } |
| 1034 | - $item_name = !empty($cart_item['name']) ? $cart_item['name'] : $item_name; |
|
| 1034 | + $item_name = !empty($cart_item['name']) ? $cart_item['name'] : $item_name; |
|
| 1035 | 1035 | |
| 1036 | - $summary = apply_filters( 'wpinv_print_invoice_line_item_summary', $summary, $cart_item, $item, $invoice ); |
|
| 1036 | + $summary = apply_filters('wpinv_print_invoice_line_item_summary', $summary, $cart_item, $item, $invoice); |
|
| 1037 | 1037 | |
| 1038 | 1038 | $item_tax = ''; |
| 1039 | 1039 | $tax_rate = ''; |
| 1040 | - if ( $use_taxes && $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0 ) { |
|
| 1041 | - $item_tax = wpinv_price( wpinv_format_amount( $cart_item['tax'] ), $invoice->get_currency() ); |
|
| 1042 | - $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : ( $cart_item['tax'] / $cart_item['subtotal'] ) * 100; |
|
| 1043 | - $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount( $tax_rate, 4 ) : ''; |
|
| 1040 | + if ($use_taxes && $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0) { |
|
| 1041 | + $item_tax = wpinv_price(wpinv_format_amount($cart_item['tax']), $invoice->get_currency()); |
|
| 1042 | + $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : ($cart_item['tax'] / $cart_item['subtotal']) * 100; |
|
| 1043 | + $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount($tax_rate, 4) : ''; |
|
| 1044 | 1044 | $tax_rate = $tax_rate != '' ? ' <small class="tax-rate">(' . $tax_rate . '%)</small>' : ''; |
| 1045 | 1045 | } |
| 1046 | 1046 | |
| 1047 | 1047 | $line_item_tax = $item_tax . $tax_rate; |
| 1048 | 1048 | |
| 1049 | - if ( $line_item_tax === '' ) { |
|
| 1049 | + if ($line_item_tax === '') { |
|
| 1050 | 1050 | $line_item_tax = 0; // Zero tax |
| 1051 | 1051 | } |
| 1052 | 1052 | |
| 1053 | - $line_item = '<tr class="row-' . ( ($count % 2 == 0) ? 'even' : 'odd' ) . ' wpinv-item">'; |
|
| 1054 | - $line_item .= '<td class="name">' . esc_html__( $item_name, 'invoicing' ) . wpinv_get_item_suffix( $item ); |
|
| 1055 | - if ( $summary !== '' ) { |
|
| 1056 | - $line_item .= '<br/><small class="meta">' . wpautop( wp_kses_post( $summary ) ) . '</small>'; |
|
| 1053 | + $line_item = '<tr class="row-' . (($count % 2 == 0) ? 'even' : 'odd') . ' wpinv-item">'; |
|
| 1054 | + $line_item .= '<td class="name">' . esc_html__($item_name, 'invoicing') . wpinv_get_item_suffix($item); |
|
| 1055 | + if ($summary !== '') { |
|
| 1056 | + $line_item .= '<br/><small class="meta">' . wpautop(wp_kses_post($summary)) . '</small>'; |
|
| 1057 | 1057 | } |
| 1058 | 1058 | $line_item .= '</td>'; |
| 1059 | 1059 | |
| 1060 | - $line_item .= '<td class="rate">' . esc_html__( wpinv_price( wpinv_format_amount( $item_price ), $invoice->get_currency() ) ) . '</td>'; |
|
| 1060 | + $line_item .= '<td class="rate">' . esc_html__(wpinv_price(wpinv_format_amount($item_price), $invoice->get_currency())) . '</td>'; |
|
| 1061 | 1061 | if ($quantities_enabled) { |
| 1062 | 1062 | $cols++; |
| 1063 | 1063 | $line_item .= '<td class="qty">' . $quantity . '</td>'; |
@@ -1066,55 +1066,55 @@ discard block |
||
| 1066 | 1066 | $cols++; |
| 1067 | 1067 | $line_item .= '<td class="tax">' . $line_item_tax . '</td>'; |
| 1068 | 1068 | } |
| 1069 | - $line_item .= '<td class="total">' . esc_html__( wpinv_price( wpinv_format_amount( $line_total ), $invoice->get_currency() ) ) . '</td>'; |
|
| 1069 | + $line_item .= '<td class="total">' . esc_html__(wpinv_price(wpinv_format_amount($line_total), $invoice->get_currency())) . '</td>'; |
|
| 1070 | 1070 | $line_item .= '</tr>'; |
| 1071 | 1071 | |
| 1072 | - echo apply_filters( 'wpinv_display_line_item', $line_item, $cart_item, $invoice, $cols ); |
|
| 1072 | + echo apply_filters('wpinv_display_line_item', $line_item, $cart_item, $invoice, $cols); |
|
| 1073 | 1073 | |
| 1074 | 1074 | $count++; |
| 1075 | 1075 | } |
| 1076 | 1076 | |
| 1077 | - do_action( 'wpinv_display_before_subtotal', $invoice, $cols ); |
|
| 1077 | + do_action('wpinv_display_before_subtotal', $invoice, $cols); |
|
| 1078 | 1078 | ?> |
| 1079 | 1079 | <tr class="row-sub-total row_odd"> |
| 1080 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_subtotal_label', '<strong>' . __( 'Sub Total', 'invoicing' ) . ':</strong>', $invoice ); ?></td> |
|
| 1081 | - <td class="total"><strong><?php _e( wpinv_subtotal( $invoice_id, true ) ) ?></strong></td> |
|
| 1080 | + <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_subtotal_label', '<strong>' . __('Sub Total', 'invoicing') . ':</strong>', $invoice); ?></td> |
|
| 1081 | + <td class="total"><strong><?php _e(wpinv_subtotal($invoice_id, true)) ?></strong></td> |
|
| 1082 | 1082 | </tr> |
| 1083 | 1083 | <?php |
| 1084 | - do_action( 'wpinv_display_after_subtotal', $invoice, $cols ); |
|
| 1084 | + do_action('wpinv_display_after_subtotal', $invoice, $cols); |
|
| 1085 | 1085 | |
| 1086 | - if ( wpinv_discount( $invoice_id, false ) > 0 ) { |
|
| 1087 | - do_action( 'wpinv_display_before_discount', $invoice, $cols ); |
|
| 1086 | + if (wpinv_discount($invoice_id, false) > 0) { |
|
| 1087 | + do_action('wpinv_display_before_discount', $invoice, $cols); |
|
| 1088 | 1088 | ?> |
| 1089 | 1089 | <tr class="row-discount"> |
| 1090 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php wpinv_get_discount_label( wpinv_discount_code( $invoice_id ) ); ?>:</td> |
|
| 1091 | - <td class="total"><?php echo wpinv_discount( $invoice_id, true, true ); ?></td> |
|
| 1090 | + <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php wpinv_get_discount_label(wpinv_discount_code($invoice_id)); ?>:</td> |
|
| 1091 | + <td class="total"><?php echo wpinv_discount($invoice_id, true, true); ?></td> |
|
| 1092 | 1092 | </tr> |
| 1093 | 1093 | <?php |
| 1094 | - do_action( 'wpinv_display_after_discount', $invoice, $cols ); |
|
| 1094 | + do_action('wpinv_display_after_discount', $invoice, $cols); |
|
| 1095 | 1095 | } |
| 1096 | 1096 | |
| 1097 | - if ( $use_taxes ) { |
|
| 1098 | - do_action( 'wpinv_display_before_tax', $invoice, $cols ); |
|
| 1097 | + if ($use_taxes) { |
|
| 1098 | + do_action('wpinv_display_before_tax', $invoice, $cols); |
|
| 1099 | 1099 | ?> |
| 1100 | 1100 | <tr class="row-tax"> |
| 1101 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_tax_label', '<strong>' . $tax_label . ':</strong>', $invoice ); ?></td> |
|
| 1102 | - <td class="total"><?php _e( wpinv_tax( $invoice_id, true ) ) ?></td> |
|
| 1101 | + <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_tax_label', '<strong>' . $tax_label . ':</strong>', $invoice); ?></td> |
|
| 1102 | + <td class="total"><?php _e(wpinv_tax($invoice_id, true)) ?></td> |
|
| 1103 | 1103 | </tr> |
| 1104 | 1104 | <?php |
| 1105 | - do_action( 'wpinv_display_after_tax', $invoice, $cols ); |
|
| 1105 | + do_action('wpinv_display_after_tax', $invoice, $cols); |
|
| 1106 | 1106 | } |
| 1107 | 1107 | |
| 1108 | - do_action( 'wpinv_display_before_total', $invoice, $cols ); |
|
| 1108 | + do_action('wpinv_display_before_total', $invoice, $cols); |
|
| 1109 | 1109 | ?> |
| 1110 | 1110 | <tr class="table-active row-total"> |
| 1111 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_total_label', '<strong>' . __( 'Total', 'invoicing' ) . ':</strong>', $invoice ); ?></td> |
|
| 1112 | - <td class="total"><strong><?php _e( wpinv_payment_total( $invoice_id, true ) ) ?></strong></td> |
|
| 1111 | + <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_total_label', '<strong>' . __('Total', 'invoicing') . ':</strong>', $invoice); ?></td> |
|
| 1112 | + <td class="total"><strong><?php _e(wpinv_payment_total($invoice_id, true)) ?></strong></td> |
|
| 1113 | 1113 | </tr> |
| 1114 | 1114 | <?php |
| 1115 | - do_action( 'wpinv_display_after_total', $invoice, $cols ); |
|
| 1115 | + do_action('wpinv_display_after_total', $invoice, $cols); |
|
| 1116 | 1116 | |
| 1117 | - do_action( 'wpinv_display_line_end', $invoice, $cols ); |
|
| 1117 | + do_action('wpinv_display_line_end', $invoice, $cols); |
|
| 1118 | 1118 | } |
| 1119 | 1119 | ?> |
| 1120 | 1120 | </tbody> |
@@ -1123,35 +1123,35 @@ discard block |
||
| 1123 | 1123 | echo ob_get_clean(); |
| 1124 | 1124 | } |
| 1125 | 1125 | |
| 1126 | -function wpinv_display_invoice_totals( $invoice_id = 0 ) { |
|
| 1126 | +function wpinv_display_invoice_totals($invoice_id = 0) { |
|
| 1127 | 1127 | $use_taxes = wpinv_use_taxes(); |
| 1128 | 1128 | |
| 1129 | - do_action( 'wpinv_before_display_totals_table', $invoice_id ); |
|
| 1129 | + do_action('wpinv_before_display_totals_table', $invoice_id); |
|
| 1130 | 1130 | ?> |
| 1131 | 1131 | <table class="table table-sm table-bordered table-responsive"> |
| 1132 | 1132 | <tbody> |
| 1133 | - <?php do_action( 'wpinv_before_display_totals' ); ?> |
|
| 1133 | + <?php do_action('wpinv_before_display_totals'); ?> |
|
| 1134 | 1134 | <tr class="row-sub-total"> |
| 1135 | - <td class="rate"><strong><?php _e( 'Sub Total', 'invoicing' ); ?></strong></td> |
|
| 1136 | - <td class="total"><strong><?php _e( wpinv_subtotal( $invoice_id, true ) ) ?></strong></td> |
|
| 1135 | + <td class="rate"><strong><?php _e('Sub Total', 'invoicing'); ?></strong></td> |
|
| 1136 | + <td class="total"><strong><?php _e(wpinv_subtotal($invoice_id, true)) ?></strong></td> |
|
| 1137 | 1137 | </tr> |
| 1138 | - <?php do_action( 'wpinv_after_display_totals' ); ?> |
|
| 1139 | - <?php if ( wpinv_discount( $invoice_id, false ) > 0 ) { ?> |
|
| 1138 | + <?php do_action('wpinv_after_display_totals'); ?> |
|
| 1139 | + <?php if (wpinv_discount($invoice_id, false) > 0) { ?> |
|
| 1140 | 1140 | <tr class="row-discount"> |
| 1141 | - <td class="rate"><?php wpinv_get_discount_label( wpinv_discount_code( $invoice_id ) ); ?></td> |
|
| 1142 | - <td class="total"><?php echo wpinv_discount( $invoice_id, true, true ); ?></td> |
|
| 1141 | + <td class="rate"><?php wpinv_get_discount_label(wpinv_discount_code($invoice_id)); ?></td> |
|
| 1142 | + <td class="total"><?php echo wpinv_discount($invoice_id, true, true); ?></td> |
|
| 1143 | 1143 | </tr> |
| 1144 | - <?php do_action( 'wpinv_after_display_discount' ); ?> |
|
| 1144 | + <?php do_action('wpinv_after_display_discount'); ?> |
|
| 1145 | 1145 | <?php } ?> |
| 1146 | - <?php if ( $use_taxes ) { ?> |
|
| 1146 | + <?php if ($use_taxes) { ?> |
|
| 1147 | 1147 | <tr class="row-tax"> |
| 1148 | - <td class="rate"><?php _e( 'Tax', 'invoicing' ); ?></td> |
|
| 1149 | - <td class="total"><?php _e( wpinv_tax( $invoice_id, true ) ) ?></td> |
|
| 1148 | + <td class="rate"><?php _e('Tax', 'invoicing'); ?></td> |
|
| 1149 | + <td class="total"><?php _e(wpinv_tax($invoice_id, true)) ?></td> |
|
| 1150 | 1150 | </tr> |
| 1151 | - <?php do_action( 'wpinv_after_display_tax' ); ?> |
|
| 1151 | + <?php do_action('wpinv_after_display_tax'); ?> |
|
| 1152 | 1152 | <?php } ?> |
| 1153 | - <?php if ( $fees = wpinv_get_fees( $invoice_id ) ) { ?> |
|
| 1154 | - <?php foreach ( $fees as $fee ) { ?> |
|
| 1153 | + <?php if ($fees = wpinv_get_fees($invoice_id)) { ?> |
|
| 1154 | + <?php foreach ($fees as $fee) { ?> |
|
| 1155 | 1155 | <tr class="row-fee"> |
| 1156 | 1156 | <td class="rate"><?php echo $fee['label']; ?></td> |
| 1157 | 1157 | <td class="total"><?php echo $fee['amount_display']; ?></td> |
@@ -1159,73 +1159,73 @@ discard block |
||
| 1159 | 1159 | <?php } ?> |
| 1160 | 1160 | <?php } ?> |
| 1161 | 1161 | <tr class="table-active row-total"> |
| 1162 | - <td class="rate"><strong><?php _e( 'Total', 'invoicing' ) ?></strong></td> |
|
| 1163 | - <td class="total"><strong><?php _e( wpinv_payment_total( $invoice_id, true ) ) ?></strong></td> |
|
| 1162 | + <td class="rate"><strong><?php _e('Total', 'invoicing') ?></strong></td> |
|
| 1163 | + <td class="total"><strong><?php _e(wpinv_payment_total($invoice_id, true)) ?></strong></td> |
|
| 1164 | 1164 | </tr> |
| 1165 | - <?php do_action( 'wpinv_after_totals' ); ?> |
|
| 1165 | + <?php do_action('wpinv_after_totals'); ?> |
|
| 1166 | 1166 | </tbody> |
| 1167 | 1167 | |
| 1168 | 1168 | </table> |
| 1169 | 1169 | |
| 1170 | - <?php do_action( 'wpinv_after_totals_table' ); |
|
| 1170 | + <?php do_action('wpinv_after_totals_table'); |
|
| 1171 | 1171 | } |
| 1172 | 1172 | |
| 1173 | -function wpinv_display_payments_info( $invoice_id = 0, $echo = true ) { |
|
| 1174 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
| 1173 | +function wpinv_display_payments_info($invoice_id = 0, $echo = true) { |
|
| 1174 | + $invoice = wpinv_get_invoice($invoice_id); |
|
| 1175 | 1175 | |
| 1176 | 1176 | ob_start(); |
| 1177 | - do_action( 'wpinv_before_display_payments_info', $invoice_id ); |
|
| 1178 | - if ( ( $gateway_title = $invoice->get_gateway_title() ) || $invoice->is_paid() || $invoice->is_refunded() ) { |
|
| 1177 | + do_action('wpinv_before_display_payments_info', $invoice_id); |
|
| 1178 | + if (($gateway_title = $invoice->get_gateway_title()) || $invoice->is_paid() || $invoice->is_refunded()) { |
|
| 1179 | 1179 | ?> |
| 1180 | 1180 | <div class="wpi-payment-info"> |
| 1181 | - <p class="wpi-payment-gateway"><?php echo wp_sprintf( __( 'Payment via %s', 'invoicing' ), $gateway_title ? $gateway_title : __( 'Manually', 'invoicing' ) ); ?></p> |
|
| 1182 | - <?php if ( $gateway_title ) { ?> |
|
| 1183 | - <p class="wpi-payment-transid"><?php echo wp_sprintf( __( 'Transaction ID: %s', 'invoicing' ), $invoice->get_transaction_id() ); ?></p> |
|
| 1181 | + <p class="wpi-payment-gateway"><?php echo wp_sprintf(__('Payment via %s', 'invoicing'), $gateway_title ? $gateway_title : __('Manually', 'invoicing')); ?></p> |
|
| 1182 | + <?php if ($gateway_title) { ?> |
|
| 1183 | + <p class="wpi-payment-transid"><?php echo wp_sprintf(__('Transaction ID: %s', 'invoicing'), $invoice->get_transaction_id()); ?></p> |
|
| 1184 | 1184 | <?php } ?> |
| 1185 | 1185 | </div> |
| 1186 | 1186 | <?php |
| 1187 | 1187 | } |
| 1188 | - do_action( 'wpinv_after_display_payments_info', $invoice_id ); |
|
| 1188 | + do_action('wpinv_after_display_payments_info', $invoice_id); |
|
| 1189 | 1189 | $outout = ob_get_clean(); |
| 1190 | 1190 | |
| 1191 | - if ( $echo ) { |
|
| 1191 | + if ($echo) { |
|
| 1192 | 1192 | echo $outout; |
| 1193 | 1193 | } else { |
| 1194 | 1194 | return $outout; |
| 1195 | 1195 | } |
| 1196 | 1196 | } |
| 1197 | 1197 | |
| 1198 | -function wpinv_display_style( $invoice ) { |
|
| 1199 | - wp_register_style( 'wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), WPINV_VERSION ); |
|
| 1198 | +function wpinv_display_style($invoice) { |
|
| 1199 | + wp_register_style('wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), WPINV_VERSION); |
|
| 1200 | 1200 | |
| 1201 | - wp_print_styles( 'open-sans' ); |
|
| 1202 | - wp_print_styles( 'wpinv-single-style' ); |
|
| 1201 | + wp_print_styles('open-sans'); |
|
| 1202 | + wp_print_styles('wpinv-single-style'); |
|
| 1203 | 1203 | } |
| 1204 | -add_action( 'wpinv_invoice_print_head', 'wpinv_display_style' ); |
|
| 1205 | -add_action( 'wpinv_invalid_invoice_head', 'wpinv_display_style' ); |
|
| 1204 | +add_action('wpinv_invoice_print_head', 'wpinv_display_style'); |
|
| 1205 | +add_action('wpinv_invalid_invoice_head', 'wpinv_display_style'); |
|
| 1206 | 1206 | |
| 1207 | 1207 | function wpinv_checkout_billing_details() { |
| 1208 | 1208 | $invoice_id = (int)wpinv_get_invoice_cart_id(); |
| 1209 | 1209 | if (empty($invoice_id)) { |
| 1210 | - wpinv_error_log( 'Invoice id not found', 'ERROR', __FILE__, __LINE__ ); |
|
| 1210 | + wpinv_error_log('Invoice id not found', 'ERROR', __FILE__, __LINE__); |
|
| 1211 | 1211 | return null; |
| 1212 | 1212 | } |
| 1213 | 1213 | |
| 1214 | - $invoice = wpinv_get_invoice_cart( $invoice_id ); |
|
| 1214 | + $invoice = wpinv_get_invoice_cart($invoice_id); |
|
| 1215 | 1215 | if (empty($invoice)) { |
| 1216 | - wpinv_error_log( 'Invoice not found', 'ERROR', __FILE__, __LINE__ ); |
|
| 1216 | + wpinv_error_log('Invoice not found', 'ERROR', __FILE__, __LINE__); |
|
| 1217 | 1217 | return null; |
| 1218 | 1218 | } |
| 1219 | 1219 | $user_id = $invoice->get_user_id(); |
| 1220 | 1220 | $user_info = $invoice->get_user_info(); |
| 1221 | - $address_info = wpinv_get_user_address( $user_id ); |
|
| 1221 | + $address_info = wpinv_get_user_address($user_id); |
|
| 1222 | 1222 | |
| 1223 | - if ( empty( $user_info['first_name'] ) && !empty( $user_info['first_name'] ) ) { |
|
| 1223 | + if (empty($user_info['first_name']) && !empty($user_info['first_name'])) { |
|
| 1224 | 1224 | $user_info['first_name'] = $user_info['first_name']; |
| 1225 | 1225 | $user_info['last_name'] = $user_info['last_name']; |
| 1226 | 1226 | } |
| 1227 | 1227 | |
| 1228 | - if ( ( ( empty( $user_info['country'] ) && !empty( $address_info['country'] ) ) || ( empty( $user_info['state'] ) && !empty( $address_info['state'] ) && $user_info['country'] == $address_info['country'] ) ) ) { |
|
| 1228 | + if (((empty($user_info['country']) && !empty($address_info['country'])) || (empty($user_info['state']) && !empty($address_info['state']) && $user_info['country'] == $address_info['country']))) { |
|
| 1229 | 1229 | $user_info['country'] = $address_info['country']; |
| 1230 | 1230 | $user_info['state'] = $address_info['state']; |
| 1231 | 1231 | $user_info['city'] = $address_info['city']; |
@@ -1241,98 +1241,98 @@ discard block |
||
| 1241 | 1241 | 'address' |
| 1242 | 1242 | ); |
| 1243 | 1243 | |
| 1244 | - foreach ( $address_fields as $field ) { |
|
| 1245 | - if ( empty( $user_info[$field] ) ) { |
|
| 1244 | + foreach ($address_fields as $field) { |
|
| 1245 | + if (empty($user_info[$field])) { |
|
| 1246 | 1246 | $user_info[$field] = $address_info[$field]; |
| 1247 | 1247 | } |
| 1248 | 1248 | } |
| 1249 | 1249 | |
| 1250 | - return apply_filters( 'wpinv_checkout_billing_details', $user_info, $invoice ); |
|
| 1250 | + return apply_filters('wpinv_checkout_billing_details', $user_info, $invoice); |
|
| 1251 | 1251 | } |
| 1252 | 1252 | |
| 1253 | 1253 | function wpinv_admin_get_line_items($invoice = array()) { |
| 1254 | 1254 | $item_quantities = wpinv_item_quantities_enabled(); |
| 1255 | 1255 | $use_taxes = wpinv_use_taxes(); |
| 1256 | 1256 | |
| 1257 | - if ( empty( $invoice ) ) { |
|
| 1257 | + if (empty($invoice)) { |
|
| 1258 | 1258 | return NULL; |
| 1259 | 1259 | } |
| 1260 | 1260 | |
| 1261 | 1261 | $cart_items = $invoice->get_cart_details(); |
| 1262 | - if ( empty( $cart_items ) ) { |
|
| 1262 | + if (empty($cart_items)) { |
|
| 1263 | 1263 | return NULL; |
| 1264 | 1264 | } |
| 1265 | 1265 | ob_start(); |
| 1266 | 1266 | |
| 1267 | - do_action( 'wpinv_admin_before_line_items', $cart_items, $invoice ); |
|
| 1267 | + do_action('wpinv_admin_before_line_items', $cart_items, $invoice); |
|
| 1268 | 1268 | |
| 1269 | 1269 | $count = 0; |
| 1270 | - foreach ( $cart_items as $key => $cart_item ) { |
|
| 1270 | + foreach ($cart_items as $key => $cart_item) { |
|
| 1271 | 1271 | $item_id = $cart_item['id']; |
| 1272 | - $wpi_item = $item_id > 0 ? new WPInv_Item( $item_id ) : NULL; |
|
| 1272 | + $wpi_item = $item_id > 0 ? new WPInv_Item($item_id) : NULL; |
|
| 1273 | 1273 | |
| 1274 | 1274 | if (empty($wpi_item)) { |
| 1275 | 1275 | continue; |
| 1276 | 1276 | } |
| 1277 | 1277 | |
| 1278 | - $item_price = wpinv_price( wpinv_format_amount( $cart_item['item_price'] ), $invoice->get_currency() ); |
|
| 1279 | - $quantity = !empty( $cart_item['quantity'] ) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1; |
|
| 1280 | - $item_subtotal = wpinv_price( wpinv_format_amount( $cart_item['subtotal'] ), $invoice->get_currency() ); |
|
| 1278 | + $item_price = wpinv_price(wpinv_format_amount($cart_item['item_price']), $invoice->get_currency()); |
|
| 1279 | + $quantity = !empty($cart_item['quantity']) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1; |
|
| 1280 | + $item_subtotal = wpinv_price(wpinv_format_amount($cart_item['subtotal']), $invoice->get_currency()); |
|
| 1281 | 1281 | $can_remove = true; |
| 1282 | 1282 | |
| 1283 | - $summary = apply_filters( 'wpinv_admin_invoice_line_item_summary', '', $cart_item, $wpi_item, $invoice ); |
|
| 1283 | + $summary = apply_filters('wpinv_admin_invoice_line_item_summary', '', $cart_item, $wpi_item, $invoice); |
|
| 1284 | 1284 | |
| 1285 | 1285 | $item_tax = ''; |
| 1286 | 1286 | $tax_rate = ''; |
| 1287 | - if ( $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0 ) { |
|
| 1288 | - $item_tax = wpinv_price( wpinv_format_amount( $cart_item['tax'] ), $invoice->get_currency() ); |
|
| 1289 | - $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : ( $cart_item['tax'] / $cart_item['subtotal'] ) * 100; |
|
| 1290 | - $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount( $tax_rate, 4 ) : ''; |
|
| 1287 | + if ($cart_item['tax'] > 0 && $cart_item['subtotal'] > 0) { |
|
| 1288 | + $item_tax = wpinv_price(wpinv_format_amount($cart_item['tax']), $invoice->get_currency()); |
|
| 1289 | + $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : ($cart_item['tax'] / $cart_item['subtotal']) * 100; |
|
| 1290 | + $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount($tax_rate, 4) : ''; |
|
| 1291 | 1291 | $tax_rate = $tax_rate != '' ? ' <span class="tax-rate">(' . $tax_rate . '%)</span>' : ''; |
| 1292 | 1292 | } |
| 1293 | 1293 | $line_item_tax = $item_tax . $tax_rate; |
| 1294 | 1294 | |
| 1295 | - if ( $line_item_tax === '' ) { |
|
| 1295 | + if ($line_item_tax === '') { |
|
| 1296 | 1296 | $line_item_tax = 0; // Zero tax |
| 1297 | 1297 | } |
| 1298 | 1298 | |
| 1299 | - $line_item = '<tr class="item item-' . ( ($count % 2 == 0) ? 'even' : 'odd' ) . '" data-item-id="' . $item_id . '">'; |
|
| 1299 | + $line_item = '<tr class="item item-' . (($count % 2 == 0) ? 'even' : 'odd') . '" data-item-id="' . $item_id . '">'; |
|
| 1300 | 1300 | $line_item .= '<td class="id">' . $item_id . '</td>'; |
| 1301 | - $line_item .= '<td class="title"><a href="' . get_edit_post_link( $item_id ) . '" target="_blank">' . $cart_item['name'] . '</a>' . wpinv_get_item_suffix( $wpi_item ); |
|
| 1302 | - if ( $summary !== '' ) { |
|
| 1303 | - $line_item .= '<span class="meta">' . wpautop( wp_kses_post( $summary ) ) . '</span>'; |
|
| 1301 | + $line_item .= '<td class="title"><a href="' . get_edit_post_link($item_id) . '" target="_blank">' . $cart_item['name'] . '</a>' . wpinv_get_item_suffix($wpi_item); |
|
| 1302 | + if ($summary !== '') { |
|
| 1303 | + $line_item .= '<span class="meta">' . wpautop(wp_kses_post($summary)) . '</span>'; |
|
| 1304 | 1304 | } |
| 1305 | 1305 | $line_item .= '</td>'; |
| 1306 | 1306 | $line_item .= '<td class="price">' . $item_price . '</td>'; |
| 1307 | 1307 | |
| 1308 | - if ( $item_quantities ) { |
|
| 1309 | - if ( count( $cart_items ) == 1 && $quantity <= 1 ) { |
|
| 1308 | + if ($item_quantities) { |
|
| 1309 | + if (count($cart_items) == 1 && $quantity <= 1) { |
|
| 1310 | 1310 | $can_remove = false; |
| 1311 | 1311 | } |
| 1312 | 1312 | $line_item .= '<td class="qty" data-quantity="' . $quantity . '"> × ' . $quantity . '</td>'; |
| 1313 | 1313 | } else { |
| 1314 | - if ( count( $cart_items ) == 1 ) { |
|
| 1314 | + if (count($cart_items) == 1) { |
|
| 1315 | 1315 | $can_remove = false; |
| 1316 | 1316 | } |
| 1317 | 1317 | } |
| 1318 | 1318 | $line_item .= '<td class="total">' . $item_subtotal . '</td>'; |
| 1319 | 1319 | |
| 1320 | - if ( $use_taxes ) { |
|
| 1320 | + if ($use_taxes) { |
|
| 1321 | 1321 | $line_item .= '<td class="tax">' . $line_item_tax . '</td>'; |
| 1322 | 1322 | } |
| 1323 | 1323 | $line_item .= '<td class="action">'; |
| 1324 | - if ( !$invoice->is_paid() && !$invoice->is_refunded() && $can_remove ) { |
|
| 1324 | + if (!$invoice->is_paid() && !$invoice->is_refunded() && $can_remove) { |
|
| 1325 | 1325 | $line_item .= '<i class="fa fa-remove wpinv-item-remove"></i>'; |
| 1326 | 1326 | } |
| 1327 | 1327 | $line_item .= '</td>'; |
| 1328 | 1328 | $line_item .= '</tr>'; |
| 1329 | 1329 | |
| 1330 | - echo apply_filters( 'wpinv_admin_line_item', $line_item, $cart_item, $invoice ); |
|
| 1330 | + echo apply_filters('wpinv_admin_line_item', $line_item, $cart_item, $invoice); |
|
| 1331 | 1331 | |
| 1332 | 1332 | $count++; |
| 1333 | 1333 | } |
| 1334 | 1334 | |
| 1335 | - do_action( 'wpinv_admin_after_line_items', $cart_items, $invoice ); |
|
| 1335 | + do_action('wpinv_admin_after_line_items', $cart_items, $invoice); |
|
| 1336 | 1336 | |
| 1337 | 1337 | return ob_get_clean(); |
| 1338 | 1338 | } |
@@ -1343,35 +1343,35 @@ discard block |
||
| 1343 | 1343 | // Set current invoice id. |
| 1344 | 1344 | $wpi_checkout_id = wpinv_get_invoice_cart_id(); |
| 1345 | 1345 | |
| 1346 | - $form_action = esc_url( wpinv_get_checkout_uri() ); |
|
| 1346 | + $form_action = esc_url(wpinv_get_checkout_uri()); |
|
| 1347 | 1347 | |
| 1348 | 1348 | ob_start(); |
| 1349 | 1349 | echo '<div id="wpinv_checkout_wrap">'; |
| 1350 | 1350 | |
| 1351 | - if ( wpinv_get_cart_contents() || wpinv_cart_has_fees() ) { |
|
| 1351 | + if (wpinv_get_cart_contents() || wpinv_cart_has_fees()) { |
|
| 1352 | 1352 | ?> |
| 1353 | 1353 | <div id="wpinv_checkout_form_wrap" class="wpinv_clearfix table-responsive"> |
| 1354 | - <?php do_action( 'wpinv_before_checkout_form' ); ?> |
|
| 1354 | + <?php do_action('wpinv_before_checkout_form'); ?> |
|
| 1355 | 1355 | <form id="wpinv_checkout_form" class="wpi-form" action="<?php echo $form_action; ?>" method="POST"> |
| 1356 | 1356 | <?php |
| 1357 | - do_action( 'wpinv_checkout_form_top' ); |
|
| 1358 | - do_action( 'wpinv_checkout_billing_info' ); |
|
| 1359 | - do_action( 'wpinv_checkout_cart' ); |
|
| 1360 | - do_action( 'wpinv_payment_mode_select' ); |
|
| 1361 | - do_action( 'wpinv_checkout_form_bottom' ) |
|
| 1357 | + do_action('wpinv_checkout_form_top'); |
|
| 1358 | + do_action('wpinv_checkout_billing_info'); |
|
| 1359 | + do_action('wpinv_checkout_cart'); |
|
| 1360 | + do_action('wpinv_payment_mode_select'); |
|
| 1361 | + do_action('wpinv_checkout_form_bottom') |
|
| 1362 | 1362 | ?> |
| 1363 | 1363 | </form> |
| 1364 | - <?php do_action( 'wpinv_after_purchase_form' ); ?> |
|
| 1364 | + <?php do_action('wpinv_after_purchase_form'); ?> |
|
| 1365 | 1365 | </div><!--end #wpinv_checkout_form_wrap--> |
| 1366 | 1366 | <?php |
| 1367 | 1367 | } else { |
| 1368 | - do_action( 'wpinv_cart_empty' ); |
|
| 1368 | + do_action('wpinv_cart_empty'); |
|
| 1369 | 1369 | } |
| 1370 | 1370 | echo '</div><!--end #wpinv_checkout_wrap-->'; |
| 1371 | 1371 | return ob_get_clean(); |
| 1372 | 1372 | } |
| 1373 | 1373 | |
| 1374 | -function wpinv_checkout_cart( $cart_details = array(), $echo = true ) { |
|
| 1374 | +function wpinv_checkout_cart($cart_details = array(), $echo = true) { |
|
| 1375 | 1375 | global $ajax_cart_details; |
| 1376 | 1376 | $ajax_cart_details = $cart_details; |
| 1377 | 1377 | /* |
@@ -1386,25 +1386,25 @@ discard block |
||
| 1386 | 1386 | } |
| 1387 | 1387 | */ |
| 1388 | 1388 | ob_start(); |
| 1389 | - do_action( 'wpinv_before_checkout_cart' ); |
|
| 1389 | + do_action('wpinv_before_checkout_cart'); |
|
| 1390 | 1390 | echo '<div id="wpinv_checkout_cart_form" method="post">'; |
| 1391 | 1391 | echo '<div id="wpinv_checkout_cart_wrap">'; |
| 1392 | - wpinv_get_template_part( 'wpinv-checkout-cart' ); |
|
| 1392 | + wpinv_get_template_part('wpinv-checkout-cart'); |
|
| 1393 | 1393 | echo '</div>'; |
| 1394 | 1394 | echo '</div>'; |
| 1395 | - do_action( 'wpinv_after_checkout_cart' ); |
|
| 1395 | + do_action('wpinv_after_checkout_cart'); |
|
| 1396 | 1396 | $content = ob_get_clean(); |
| 1397 | 1397 | |
| 1398 | - if ( $echo ) { |
|
| 1398 | + if ($echo) { |
|
| 1399 | 1399 | echo $content; |
| 1400 | 1400 | } else { |
| 1401 | 1401 | return $content; |
| 1402 | 1402 | } |
| 1403 | 1403 | } |
| 1404 | -add_action( 'wpinv_checkout_cart', 'wpinv_checkout_cart', 10 ); |
|
| 1404 | +add_action('wpinv_checkout_cart', 'wpinv_checkout_cart', 10); |
|
| 1405 | 1405 | |
| 1406 | 1406 | function wpinv_empty_cart_message() { |
| 1407 | - return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' ); |
|
| 1407 | + return apply_filters('wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __('Your cart is empty.', 'invoicing') . '</span>'); |
|
| 1408 | 1408 | } |
| 1409 | 1409 | |
| 1410 | 1410 | /** |
@@ -1416,91 +1416,91 @@ discard block |
||
| 1416 | 1416 | function wpinv_empty_checkout_cart() { |
| 1417 | 1417 | echo wpinv_empty_cart_message(); |
| 1418 | 1418 | } |
| 1419 | -add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' ); |
|
| 1419 | +add_action('wpinv_cart_empty', 'wpinv_empty_checkout_cart'); |
|
| 1420 | 1420 | |
| 1421 | 1421 | function wpinv_save_cart_button() { |
| 1422 | - if ( wpinv_is_cart_saving_disabled() ) |
|
| 1422 | + if (wpinv_is_cart_saving_disabled()) |
|
| 1423 | 1423 | return; |
| 1424 | 1424 | ?> |
| 1425 | - <a class="wpinv-cart-saving-button wpinv-submit button" id="wpinv-save-cart-button" href="<?php echo esc_url( add_query_arg( 'wpi_action', 'save_cart' ) ); ?>"><?php _e( 'Save Cart', 'invoicing' ); ?></a> |
|
| 1425 | + <a class="wpinv-cart-saving-button wpinv-submit button" id="wpinv-save-cart-button" href="<?php echo esc_url(add_query_arg('wpi_action', 'save_cart')); ?>"><?php _e('Save Cart', 'invoicing'); ?></a> |
|
| 1426 | 1426 | <?php |
| 1427 | 1427 | } |
| 1428 | 1428 | |
| 1429 | 1429 | function wpinv_update_cart_button() { |
| 1430 | - if ( !wpinv_item_quantities_enabled() ) |
|
| 1430 | + if (!wpinv_item_quantities_enabled()) |
|
| 1431 | 1431 | return; |
| 1432 | 1432 | ?> |
| 1433 | - <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e( 'Update Cart', 'invoicing' ); ?>"/> |
|
| 1433 | + <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e('Update Cart', 'invoicing'); ?>"/> |
|
| 1434 | 1434 | <input type="hidden" name="wpi_action" value="update_cart"/> |
| 1435 | 1435 | <?php |
| 1436 | 1436 | } |
| 1437 | 1437 | |
| 1438 | 1438 | function wpinv_checkout_cart_columns() { |
| 1439 | 1439 | $default = 3; |
| 1440 | - if ( wpinv_item_quantities_enabled() ) { |
|
| 1440 | + if (wpinv_item_quantities_enabled()) { |
|
| 1441 | 1441 | $default++; |
| 1442 | 1442 | } |
| 1443 | 1443 | |
| 1444 | - if ( wpinv_use_taxes() ) { |
|
| 1444 | + if (wpinv_use_taxes()) { |
|
| 1445 | 1445 | $default++; |
| 1446 | 1446 | } |
| 1447 | 1447 | |
| 1448 | - return apply_filters( 'wpinv_checkout_cart_columns', $default ); |
|
| 1448 | + return apply_filters('wpinv_checkout_cart_columns', $default); |
|
| 1449 | 1449 | } |
| 1450 | 1450 | |
| 1451 | 1451 | function wpinv_display_cart_messages() { |
| 1452 | 1452 | global $wpi_session; |
| 1453 | 1453 | |
| 1454 | - $messages = $wpi_session->get( 'wpinv_cart_messages' ); |
|
| 1454 | + $messages = $wpi_session->get('wpinv_cart_messages'); |
|
| 1455 | 1455 | |
| 1456 | - if ( $messages ) { |
|
| 1457 | - foreach ( $messages as $message_id => $message ) { |
|
| 1456 | + if ($messages) { |
|
| 1457 | + foreach ($messages as $message_id => $message) { |
|
| 1458 | 1458 | // Try and detect what type of message this is |
| 1459 | - if ( strpos( strtolower( $message ), 'error' ) ) { |
|
| 1459 | + if (strpos(strtolower($message), 'error')) { |
|
| 1460 | 1460 | $type = 'error'; |
| 1461 | - } elseif ( strpos( strtolower( $message ), 'success' ) ) { |
|
| 1461 | + } elseif (strpos(strtolower($message), 'success')) { |
|
| 1462 | 1462 | $type = 'success'; |
| 1463 | 1463 | } else { |
| 1464 | 1464 | $type = 'info'; |
| 1465 | 1465 | } |
| 1466 | 1466 | |
| 1467 | - $classes = apply_filters( 'wpinv_' . $type . '_class', array( 'wpinv_errors', 'wpinv-alert', 'wpinv-alert-' . $type ) ); |
|
| 1467 | + $classes = apply_filters('wpinv_' . $type . '_class', array('wpinv_errors', 'wpinv-alert', 'wpinv-alert-' . $type)); |
|
| 1468 | 1468 | |
| 1469 | - echo '<div class="' . implode( ' ', $classes ) . '">'; |
|
| 1469 | + echo '<div class="' . implode(' ', $classes) . '">'; |
|
| 1470 | 1470 | // Loop message codes and display messages |
| 1471 | 1471 | echo '<p class="wpinv_error" id="wpinv_msg_' . $message_id . '">' . $message . '</p>'; |
| 1472 | 1472 | echo '</div>'; |
| 1473 | 1473 | } |
| 1474 | 1474 | |
| 1475 | 1475 | // Remove all of the cart saving messages |
| 1476 | - $wpi_session->set( 'wpinv_cart_messages', null ); |
|
| 1476 | + $wpi_session->set('wpinv_cart_messages', null); |
|
| 1477 | 1477 | } |
| 1478 | 1478 | } |
| 1479 | -add_action( 'wpinv_before_checkout_cart', 'wpinv_display_cart_messages' ); |
|
| 1479 | +add_action('wpinv_before_checkout_cart', 'wpinv_display_cart_messages'); |
|
| 1480 | 1480 | |
| 1481 | 1481 | function wpinv_discount_field() { |
| 1482 | - if ( isset( $_GET['wpi-gateway'] ) && wpinv_is_ajax_disabled() ) { |
|
| 1482 | + if (isset($_GET['wpi-gateway']) && wpinv_is_ajax_disabled()) { |
|
| 1483 | 1483 | return; // Only show before a payment method has been selected if ajax is disabled |
| 1484 | 1484 | } |
| 1485 | 1485 | |
| 1486 | - if ( !wpinv_is_checkout() ) { |
|
| 1486 | + if (!wpinv_is_checkout()) { |
|
| 1487 | 1487 | return; |
| 1488 | 1488 | } |
| 1489 | 1489 | |
| 1490 | - if ( wpinv_has_active_discounts() && wpinv_get_cart_total() ) { |
|
| 1490 | + if (wpinv_has_active_discounts() && wpinv_get_cart_total()) { |
|
| 1491 | 1491 | ?> |
| 1492 | 1492 | <div id="wpinv-discount-field" class="panel panel-default"> |
| 1493 | 1493 | <div class="panel-body"> |
| 1494 | 1494 | <p> |
| 1495 | - <label class="wpinv-label" for="wpinv_discount_code"><strong><?php _e( 'Discount', 'invoicing' ); ?></strong></label> |
|
| 1496 | - <span class="wpinv-description"><?php _e( 'Enter a discount code if you have one.', 'invoicing' ); ?></span> |
|
| 1495 | + <label class="wpinv-label" for="wpinv_discount_code"><strong><?php _e('Discount', 'invoicing'); ?></strong></label> |
|
| 1496 | + <span class="wpinv-description"><?php _e('Enter a discount code if you have one.', 'invoicing'); ?></span> |
|
| 1497 | 1497 | </p> |
| 1498 | 1498 | <div class="form-group row"> |
| 1499 | 1499 | <div class="col-sm-4"> |
| 1500 | - <input class="wpinv-input form-control" type="text" id="wpinv_discount_code" name="wpinv_discount_code" placeholder="<?php _e( 'Enter discount code', 'invoicing' ); ?>"/> |
|
| 1500 | + <input class="wpinv-input form-control" type="text" id="wpinv_discount_code" name="wpinv_discount_code" placeholder="<?php _e('Enter discount code', 'invoicing'); ?>"/> |
|
| 1501 | 1501 | </div> |
| 1502 | 1502 | <div class="col-sm-3"> |
| 1503 | - <button id="wpi-apply-discount" type="button" class="btn btn-success btn-sm"><?php _e( 'Apply Discount', 'invoicing' ); ?></button> |
|
| 1503 | + <button id="wpi-apply-discount" type="button" class="btn btn-success btn-sm"><?php _e('Apply Discount', 'invoicing'); ?></button> |
|
| 1504 | 1504 | </div> |
| 1505 | 1505 | <div style="clear:both"></div> |
| 1506 | 1506 | <div class="col-sm-12 wpinv-discount-msg"> |
@@ -1513,10 +1513,10 @@ discard block |
||
| 1513 | 1513 | <?php |
| 1514 | 1514 | } |
| 1515 | 1515 | } |
| 1516 | -add_action( 'wpinv_after_checkout_cart', 'wpinv_discount_field', -10 ); |
|
| 1516 | +add_action('wpinv_after_checkout_cart', 'wpinv_discount_field', -10); |
|
| 1517 | 1517 | |
| 1518 | 1518 | function wpinv_agree_to_terms_js() { |
| 1519 | - if ( wpinv_get_option( 'show_agree_to_terms', false ) ) { |
|
| 1519 | + if (wpinv_get_option('show_agree_to_terms', false)) { |
|
| 1520 | 1520 | ?> |
| 1521 | 1521 | <script type="text/javascript"> |
| 1522 | 1522 | jQuery(document).ready(function($){ |
@@ -1531,126 +1531,126 @@ discard block |
||
| 1531 | 1531 | <?php |
| 1532 | 1532 | } |
| 1533 | 1533 | } |
| 1534 | -add_action( 'wpinv_checkout_form_top', 'wpinv_agree_to_terms_js' ); |
|
| 1534 | +add_action('wpinv_checkout_form_top', 'wpinv_agree_to_terms_js'); |
|
| 1535 | 1535 | |
| 1536 | 1536 | function wpinv_payment_mode_select() { |
| 1537 | - $gateways = wpinv_get_enabled_payment_gateways( true ); |
|
| 1538 | - $gateways = apply_filters( 'wpinv_payment_gateways_on_cart', $gateways ); |
|
| 1537 | + $gateways = wpinv_get_enabled_payment_gateways(true); |
|
| 1538 | + $gateways = apply_filters('wpinv_payment_gateways_on_cart', $gateways); |
|
| 1539 | 1539 | $page_URL = wpinv_get_current_page_url(); |
| 1540 | - $invoice = wpinv_get_invoice( 0, true ); |
|
| 1540 | + $invoice = wpinv_get_invoice(0, true); |
|
| 1541 | 1541 | |
| 1542 | 1542 | do_action('wpinv_payment_mode_top'); |
| 1543 | 1543 | $invoice_id = (int)$invoice->ID; |
| 1544 | - $chosen_gateway = wpinv_get_chosen_gateway( $invoice_id ); |
|
| 1544 | + $chosen_gateway = wpinv_get_chosen_gateway($invoice_id); |
|
| 1545 | 1545 | ?> |
| 1546 | - <div id="wpinv_payment_mode_select" data-gateway="<?php echo $chosen_gateway; ?>" <?php echo ( $invoice->is_free() ? 'style="display:none;"' : '' ); ?>> |
|
| 1547 | - <?php do_action( 'wpinv_payment_mode_before_gateways_wrap' ); ?> |
|
| 1546 | + <div id="wpinv_payment_mode_select" data-gateway="<?php echo $chosen_gateway; ?>" <?php echo ($invoice->is_free() ? 'style="display:none;"' : ''); ?>> |
|
| 1547 | + <?php do_action('wpinv_payment_mode_before_gateways_wrap'); ?> |
|
| 1548 | 1548 | <div id="wpinv-payment-mode-wrap" class="panel panel-default"> |
| 1549 | - <div class="panel-heading"><h3 class="panel-title"><?php _e( 'Select Payment Method', 'invoicing' ); ?></h3></div> |
|
| 1549 | + <div class="panel-heading"><h3 class="panel-title"><?php _e('Select Payment Method', 'invoicing'); ?></h3></div> |
|
| 1550 | 1550 | <div class="panel-body list-group wpi-payment_methods"> |
| 1551 | 1551 | <?php |
| 1552 | - do_action( 'wpinv_payment_mode_before_gateways' ); |
|
| 1552 | + do_action('wpinv_payment_mode_before_gateways'); |
|
| 1553 | 1553 | |
| 1554 | - if(!empty($gateways)){ |
|
| 1555 | - foreach ( $gateways as $gateway_id => $gateway ) { |
|
| 1556 | - $checked = checked( $gateway_id, $chosen_gateway, false ); |
|
| 1557 | - $button_label = wpinv_get_gateway_button_label( $gateway_id ); |
|
| 1558 | - $description = wpinv_get_gateway_description( $gateway_id ); |
|
| 1554 | + if (!empty($gateways)) { |
|
| 1555 | + foreach ($gateways as $gateway_id => $gateway) { |
|
| 1556 | + $checked = checked($gateway_id, $chosen_gateway, false); |
|
| 1557 | + $button_label = wpinv_get_gateway_button_label($gateway_id); |
|
| 1558 | + $description = wpinv_get_gateway_description($gateway_id); |
|
| 1559 | 1559 | ?> |
| 1560 | 1560 | <div class="list-group-item"> |
| 1561 | 1561 | <div class="radio"> |
| 1562 | - <label><input type="radio" data-button-text="<?php echo esc_attr( $button_label );?>" value="<?php echo esc_attr( $gateway_id ) ;?>" <?php echo $checked ;?> id="wpi_gateway_<?php echo esc_attr( $gateway_id );?>" name="wpi-gateway" class="wpi-pmethod"><?php echo esc_html( $gateway['checkout_label'] ); ?></label> |
|
| 1562 | + <label><input type="radio" data-button-text="<?php echo esc_attr($button_label); ?>" value="<?php echo esc_attr($gateway_id); ?>" <?php echo $checked; ?> id="wpi_gateway_<?php echo esc_attr($gateway_id); ?>" name="wpi-gateway" class="wpi-pmethod"><?php echo esc_html($gateway['checkout_label']); ?></label> |
|
| 1563 | 1563 | </div> |
| 1564 | - <div style="display:none;" class="payment_box wpi_gateway_<?php echo esc_attr( $gateway_id );?>" role="alert"> |
|
| 1565 | - <?php if ( !empty( $description ) ) { ?> |
|
| 1566 | - <div class="wpi-gateway-desc alert alert-info"><?php echo $description;?></div> |
|
| 1564 | + <div style="display:none;" class="payment_box wpi_gateway_<?php echo esc_attr($gateway_id); ?>" role="alert"> |
|
| 1565 | + <?php if (!empty($description)) { ?> |
|
| 1566 | + <div class="wpi-gateway-desc alert alert-info"><?php echo $description; ?></div> |
|
| 1567 | 1567 | <?php } ?> |
| 1568 | - <?php do_action( 'wpinv_' . $gateway_id . '_cc_form', $invoice_id ) ;?> |
|
| 1568 | + <?php do_action('wpinv_' . $gateway_id . '_cc_form', $invoice_id); ?> |
|
| 1569 | 1569 | </div> |
| 1570 | 1570 | </div> |
| 1571 | 1571 | <?php |
| 1572 | 1572 | } |
| 1573 | - }else{ |
|
| 1574 | - echo '<div class="alert alert-warning">'. __('No payment gateway active','invoicing') .'</div>'; |
|
| 1573 | + } else { |
|
| 1574 | + echo '<div class="alert alert-warning">' . __('No payment gateway active', 'invoicing') . '</div>'; |
|
| 1575 | 1575 | } |
| 1576 | 1576 | |
| 1577 | - do_action( 'wpinv_payment_mode_after_gateways' ); |
|
| 1577 | + do_action('wpinv_payment_mode_after_gateways'); |
|
| 1578 | 1578 | ?> |
| 1579 | 1579 | </div> |
| 1580 | 1580 | </div> |
| 1581 | - <?php do_action( 'wpinv_payment_mode_after_gateways_wrap' ); ?> |
|
| 1581 | + <?php do_action('wpinv_payment_mode_after_gateways_wrap'); ?> |
|
| 1582 | 1582 | </div> |
| 1583 | 1583 | <?php |
| 1584 | 1584 | do_action('wpinv_payment_mode_bottom'); |
| 1585 | 1585 | } |
| 1586 | -add_action( 'wpinv_payment_mode_select', 'wpinv_payment_mode_select' ); |
|
| 1586 | +add_action('wpinv_payment_mode_select', 'wpinv_payment_mode_select'); |
|
| 1587 | 1587 | |
| 1588 | 1588 | function wpinv_checkout_billing_info() { |
| 1589 | - if ( wpinv_is_checkout() ) { |
|
| 1589 | + if (wpinv_is_checkout()) { |
|
| 1590 | 1590 | $logged_in = is_user_logged_in(); |
| 1591 | 1591 | $billing_details = wpinv_checkout_billing_details(); |
| 1592 | - $selected_country = !empty( $billing_details['country'] ) ? $billing_details['country'] : wpinv_default_billing_country(); |
|
| 1592 | + $selected_country = !empty($billing_details['country']) ? $billing_details['country'] : wpinv_default_billing_country(); |
|
| 1593 | 1593 | ?> |
| 1594 | 1594 | <div id="wpinv-fields" class="clearfix"> |
| 1595 | 1595 | <div id="wpi-billing" class="wpi-billing clearfix panel panel-default"> |
| 1596 | - <div class="panel-heading"><h3 class="panel-title"><?php _e( 'Billing Details', 'invoicing' );?></h3></div> |
|
| 1596 | + <div class="panel-heading"><h3 class="panel-title"><?php _e('Billing Details', 'invoicing'); ?></h3></div> |
|
| 1597 | 1597 | <div id="wpinv-fields-box" class="panel-body"> |
| 1598 | - <?php do_action( 'wpinv_checkout_billing_fields_first', $billing_details ); ?> |
|
| 1598 | + <?php do_action('wpinv_checkout_billing_fields_first', $billing_details); ?> |
|
| 1599 | 1599 | <p class="wpi-cart-field wpi-col2 wpi-colf"> |
| 1600 | - <label for="wpinv_first_name" class="wpi-label"><?php _e( 'First Name', 'invoicing' );?><?php if ( wpinv_get_option( 'fname_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1600 | + <label for="wpinv_first_name" class="wpi-label"><?php _e('First Name', 'invoicing'); ?><?php if (wpinv_get_option('fname_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1601 | 1601 | <?php |
| 1602 | - echo wpinv_html_text( array( |
|
| 1602 | + echo wpinv_html_text(array( |
|
| 1603 | 1603 | 'id' => 'wpinv_first_name', |
| 1604 | 1604 | 'name' => 'wpinv_first_name', |
| 1605 | 1605 | 'value' => $billing_details['first_name'], |
| 1606 | 1606 | 'class' => 'wpi-input form-control', |
| 1607 | - 'placeholder' => __( 'First name', 'invoicing' ), |
|
| 1608 | - 'required' => (bool)wpinv_get_option( 'fname_mandatory' ), |
|
| 1609 | - ) ); |
|
| 1607 | + 'placeholder' => __('First name', 'invoicing'), |
|
| 1608 | + 'required' => (bool)wpinv_get_option('fname_mandatory'), |
|
| 1609 | + )); |
|
| 1610 | 1610 | ?> |
| 1611 | 1611 | </p> |
| 1612 | 1612 | <p class="wpi-cart-field wpi-col2 wpi-coll"> |
| 1613 | - <label for="wpinv_last_name" class="wpi-label"><?php _e( 'Last Name', 'invoicing' );?><?php if ( wpinv_get_option( 'lname_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1613 | + <label for="wpinv_last_name" class="wpi-label"><?php _e('Last Name', 'invoicing'); ?><?php if (wpinv_get_option('lname_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1614 | 1614 | <?php |
| 1615 | - echo wpinv_html_text( array( |
|
| 1615 | + echo wpinv_html_text(array( |
|
| 1616 | 1616 | 'id' => 'wpinv_last_name', |
| 1617 | 1617 | 'name' => 'wpinv_last_name', |
| 1618 | 1618 | 'value' => $billing_details['last_name'], |
| 1619 | 1619 | 'class' => 'wpi-input form-control', |
| 1620 | - 'placeholder' => __( 'Last name', 'invoicing' ), |
|
| 1621 | - 'required' => (bool)wpinv_get_option( 'lname_mandatory' ), |
|
| 1622 | - ) ); |
|
| 1620 | + 'placeholder' => __('Last name', 'invoicing'), |
|
| 1621 | + 'required' => (bool)wpinv_get_option('lname_mandatory'), |
|
| 1622 | + )); |
|
| 1623 | 1623 | ?> |
| 1624 | 1624 | </p> |
| 1625 | 1625 | <p class="wpi-cart-field wpi-col2 wpi-colf"> |
| 1626 | - <label for="wpinv_address" class="wpi-label"><?php _e( 'Address', 'invoicing' );?><?php if ( wpinv_get_option( 'address_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1626 | + <label for="wpinv_address" class="wpi-label"><?php _e('Address', 'invoicing'); ?><?php if (wpinv_get_option('address_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1627 | 1627 | <?php |
| 1628 | - echo wpinv_html_text( array( |
|
| 1628 | + echo wpinv_html_text(array( |
|
| 1629 | 1629 | 'id' => 'wpinv_address', |
| 1630 | 1630 | 'name' => 'wpinv_address', |
| 1631 | 1631 | 'value' => $billing_details['address'], |
| 1632 | 1632 | 'class' => 'wpi-input form-control', |
| 1633 | - 'placeholder' => __( 'Address', 'invoicing' ), |
|
| 1634 | - 'required' => (bool)wpinv_get_option( 'address_mandatory' ), |
|
| 1635 | - ) ); |
|
| 1633 | + 'placeholder' => __('Address', 'invoicing'), |
|
| 1634 | + 'required' => (bool)wpinv_get_option('address_mandatory'), |
|
| 1635 | + )); |
|
| 1636 | 1636 | ?> |
| 1637 | 1637 | </p> |
| 1638 | 1638 | <p class="wpi-cart-field wpi-col2 wpi-coll"> |
| 1639 | - <label for="wpinv_city" class="wpi-label"><?php _e( 'City', 'invoicing' );?><?php if ( wpinv_get_option( 'city_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1639 | + <label for="wpinv_city" class="wpi-label"><?php _e('City', 'invoicing'); ?><?php if (wpinv_get_option('city_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1640 | 1640 | <?php |
| 1641 | - echo wpinv_html_text( array( |
|
| 1641 | + echo wpinv_html_text(array( |
|
| 1642 | 1642 | 'id' => 'wpinv_city', |
| 1643 | 1643 | 'name' => 'wpinv_city', |
| 1644 | 1644 | 'value' => $billing_details['city'], |
| 1645 | 1645 | 'class' => 'wpi-input form-control', |
| 1646 | - 'placeholder' => __( 'City', 'invoicing' ), |
|
| 1647 | - 'required' => (bool)wpinv_get_option( 'city_mandatory' ), |
|
| 1648 | - ) ); |
|
| 1646 | + 'placeholder' => __('City', 'invoicing'), |
|
| 1647 | + 'required' => (bool)wpinv_get_option('city_mandatory'), |
|
| 1648 | + )); |
|
| 1649 | 1649 | ?> |
| 1650 | 1650 | </p> |
| 1651 | 1651 | <p id="wpinv_country_box" class="wpi-cart-field wpi-col2 wpi-colf"> |
| 1652 | - <label for="wpinv_country" class="wpi-label"><?php _e( 'Country', 'invoicing' );?><?php if ( wpinv_get_option( 'country_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1653 | - <?php echo wpinv_html_select( array( |
|
| 1652 | + <label for="wpinv_country" class="wpi-label"><?php _e('Country', 'invoicing'); ?><?php if (wpinv_get_option('country_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1653 | + <?php echo wpinv_html_select(array( |
|
| 1654 | 1654 | 'options' => wpinv_get_country_list(), |
| 1655 | 1655 | 'name' => 'wpinv_country', |
| 1656 | 1656 | 'id' => 'wpinv_country', |
@@ -1658,16 +1658,16 @@ discard block |
||
| 1658 | 1658 | 'show_option_all' => false, |
| 1659 | 1659 | 'show_option_none' => false, |
| 1660 | 1660 | 'class' => 'wpi-input form-control', |
| 1661 | - 'placeholder' => __( 'Choose a country', 'invoicing' ), |
|
| 1662 | - 'required' => (bool)wpinv_get_option( 'country_mandatory' ), |
|
| 1663 | - ) ); ?> |
|
| 1661 | + 'placeholder' => __('Choose a country', 'invoicing'), |
|
| 1662 | + 'required' => (bool)wpinv_get_option('country_mandatory'), |
|
| 1663 | + )); ?> |
|
| 1664 | 1664 | </p> |
| 1665 | 1665 | <p id="wpinv_state_box" class="wpi-cart-field wpi-col2 wpi-coll"> |
| 1666 | - <label for="wpinv_state" class="wpi-label"><?php _e( 'State / Province', 'invoicing' );?><?php if ( wpinv_get_option( 'state_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1666 | + <label for="wpinv_state" class="wpi-label"><?php _e('State / Province', 'invoicing'); ?><?php if (wpinv_get_option('state_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1667 | 1667 | <?php |
| 1668 | - $states = wpinv_get_country_states( $selected_country ); |
|
| 1669 | - if( !empty( $states ) ) { |
|
| 1670 | - echo wpinv_html_select( array( |
|
| 1668 | + $states = wpinv_get_country_states($selected_country); |
|
| 1669 | + if (!empty($states)) { |
|
| 1670 | + echo wpinv_html_select(array( |
|
| 1671 | 1671 | 'options' => $states, |
| 1672 | 1672 | 'name' => 'wpinv_state', |
| 1673 | 1673 | 'id' => 'wpinv_state', |
@@ -1675,61 +1675,61 @@ discard block |
||
| 1675 | 1675 | 'show_option_all' => false, |
| 1676 | 1676 | 'show_option_none' => false, |
| 1677 | 1677 | 'class' => 'wpi-input form-control', |
| 1678 | - 'placeholder' => __( 'Choose a state', 'invoicing' ), |
|
| 1679 | - 'required' => (bool)wpinv_get_option( 'state_mandatory' ), |
|
| 1680 | - ) ); |
|
| 1678 | + 'placeholder' => __('Choose a state', 'invoicing'), |
|
| 1679 | + 'required' => (bool)wpinv_get_option('state_mandatory'), |
|
| 1680 | + )); |
|
| 1681 | 1681 | } else { |
| 1682 | - echo wpinv_html_text( array( |
|
| 1682 | + echo wpinv_html_text(array( |
|
| 1683 | 1683 | 'name' => 'wpinv_state', |
| 1684 | 1684 | 'value' => $billing_details['state'], |
| 1685 | 1685 | 'id' => 'wpinv_state', |
| 1686 | 1686 | 'class' => 'wpi-input form-control', |
| 1687 | - 'placeholder' => __( 'State / Province', 'invoicing' ), |
|
| 1688 | - 'required' => (bool)wpinv_get_option( 'state_mandatory' ), |
|
| 1689 | - ) ); |
|
| 1687 | + 'placeholder' => __('State / Province', 'invoicing'), |
|
| 1688 | + 'required' => (bool)wpinv_get_option('state_mandatory'), |
|
| 1689 | + )); |
|
| 1690 | 1690 | } |
| 1691 | 1691 | ?> |
| 1692 | 1692 | </p> |
| 1693 | 1693 | <p class="wpi-cart-field wpi-col2 wpi-colf"> |
| 1694 | - <label for="wpinv_zip" class="wpi-label"><?php _e( 'ZIP / Postcode', 'invoicing' );?><?php if ( wpinv_get_option( 'zip_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1694 | + <label for="wpinv_zip" class="wpi-label"><?php _e('ZIP / Postcode', 'invoicing'); ?><?php if (wpinv_get_option('zip_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1695 | 1695 | <?php |
| 1696 | - echo wpinv_html_text( array( |
|
| 1696 | + echo wpinv_html_text(array( |
|
| 1697 | 1697 | 'name' => 'wpinv_zip', |
| 1698 | 1698 | 'value' => $billing_details['zip'], |
| 1699 | 1699 | 'id' => 'wpinv_zip', |
| 1700 | 1700 | 'class' => 'wpi-input form-control', |
| 1701 | - 'placeholder' => __( 'ZIP / Postcode', 'invoicing' ), |
|
| 1702 | - 'required' => (bool)wpinv_get_option( 'zip_mandatory' ), |
|
| 1703 | - ) ); |
|
| 1701 | + 'placeholder' => __('ZIP / Postcode', 'invoicing'), |
|
| 1702 | + 'required' => (bool)wpinv_get_option('zip_mandatory'), |
|
| 1703 | + )); |
|
| 1704 | 1704 | ?> |
| 1705 | 1705 | </p> |
| 1706 | 1706 | <p class="wpi-cart-field wpi-col2 wpi-coll"> |
| 1707 | - <label for="wpinv_phone" class="wpi-label"><?php _e( 'Phone', 'invoicing' );?><?php if ( wpinv_get_option( 'phone_mandatory' ) ) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1707 | + <label for="wpinv_phone" class="wpi-label"><?php _e('Phone', 'invoicing'); ?><?php if (wpinv_get_option('phone_mandatory')) { echo '<span class="wpi-required">*</span>'; } ?></label> |
|
| 1708 | 1708 | <?php |
| 1709 | - echo wpinv_html_text( array( |
|
| 1709 | + echo wpinv_html_text(array( |
|
| 1710 | 1710 | 'id' => 'wpinv_phone', |
| 1711 | 1711 | 'name' => 'wpinv_phone', |
| 1712 | 1712 | 'value' => $billing_details['phone'], |
| 1713 | 1713 | 'class' => 'wpi-input form-control', |
| 1714 | - 'placeholder' => __( 'Phone', 'invoicing' ), |
|
| 1715 | - 'required' => (bool)wpinv_get_option( 'phone_mandatory' ), |
|
| 1716 | - ) ); |
|
| 1714 | + 'placeholder' => __('Phone', 'invoicing'), |
|
| 1715 | + 'required' => (bool)wpinv_get_option('phone_mandatory'), |
|
| 1716 | + )); |
|
| 1717 | 1717 | ?> |
| 1718 | 1718 | </p> |
| 1719 | - <?php do_action( 'wpinv_checkout_billing_fields_last', $billing_details ); ?> |
|
| 1719 | + <?php do_action('wpinv_checkout_billing_fields_last', $billing_details); ?> |
|
| 1720 | 1720 | <div class="clearfix"></div> |
| 1721 | 1721 | </div> |
| 1722 | 1722 | </div> |
| 1723 | - <?php do_action( 'wpinv_after_billing_fields', $billing_details ); ?> |
|
| 1723 | + <?php do_action('wpinv_after_billing_fields', $billing_details); ?> |
|
| 1724 | 1724 | </div> |
| 1725 | 1725 | <?php |
| 1726 | 1726 | } |
| 1727 | 1727 | } |
| 1728 | -add_action( 'wpinv_checkout_billing_info', 'wpinv_checkout_billing_info' ); |
|
| 1728 | +add_action('wpinv_checkout_billing_info', 'wpinv_checkout_billing_info'); |
|
| 1729 | 1729 | |
| 1730 | 1730 | function wpinv_checkout_hidden_fields() { |
| 1731 | 1731 | ?> |
| 1732 | - <?php if ( is_user_logged_in() ) { ?> |
|
| 1732 | + <?php if (is_user_logged_in()) { ?> |
|
| 1733 | 1733 | <input type="hidden" name="wpinv_user_id" value="<?php echo get_current_user_id(); ?>"/> |
| 1734 | 1734 | <?php } ?> |
| 1735 | 1735 | <input type="hidden" name="wpi_action" value="payment" /> |
@@ -1739,9 +1739,9 @@ discard block |
||
| 1739 | 1739 | function wpinv_checkout_button_purchase() { |
| 1740 | 1740 | ob_start(); |
| 1741 | 1741 | ?> |
| 1742 | - <input type="submit" class="btn btn-success wpinv-submit" id="wpinv-payment-button" data-value="<?php esc_attr_e( 'Proceed to Pay', 'invoicing' ) ?>" name="wpinv_payment" value="<?php esc_attr_e( 'Proceed to Pay', 'invoicing' ) ?>"/> |
|
| 1742 | + <input type="submit" class="btn btn-success wpinv-submit" id="wpinv-payment-button" data-value="<?php esc_attr_e('Proceed to Pay', 'invoicing') ?>" name="wpinv_payment" value="<?php esc_attr_e('Proceed to Pay', 'invoicing') ?>"/> |
|
| 1743 | 1743 | <?php |
| 1744 | - return apply_filters( 'wpinv_checkout_button_purchase', ob_get_clean() ); |
|
| 1744 | + return apply_filters('wpinv_checkout_button_purchase', ob_get_clean()); |
|
| 1745 | 1745 | } |
| 1746 | 1746 | |
| 1747 | 1747 | function wpinv_checkout_total() { |
@@ -1750,96 +1750,96 @@ discard block |
||
| 1750 | 1750 | <div id="wpinv_checkout_total" class="panel panel-info"> |
| 1751 | 1751 | <div class="panel-body"> |
| 1752 | 1752 | <?php |
| 1753 | - do_action( 'wpinv_purchase_form_before_checkout_total' ); |
|
| 1753 | + do_action('wpinv_purchase_form_before_checkout_total'); |
|
| 1754 | 1754 | ?> |
| 1755 | - <strong><?php _e( 'Invoice Total:', 'invoicing' ) ?></strong> <span class="wpinv-chdeckout-total"><?php echo $cart_total;?></span> |
|
| 1755 | + <strong><?php _e('Invoice Total:', 'invoicing') ?></strong> <span class="wpinv-chdeckout-total"><?php echo $cart_total; ?></span> |
|
| 1756 | 1756 | <?php |
| 1757 | - do_action( 'wpinv_purchase_form_after_checkout_total' ); |
|
| 1757 | + do_action('wpinv_purchase_form_after_checkout_total'); |
|
| 1758 | 1758 | ?> |
| 1759 | 1759 | </div> |
| 1760 | 1760 | </div> |
| 1761 | 1761 | <?php |
| 1762 | 1762 | } |
| 1763 | -add_action( 'wpinv_checkout_form_bottom', 'wpinv_checkout_total', 9998 ); |
|
| 1763 | +add_action('wpinv_checkout_form_bottom', 'wpinv_checkout_total', 9998); |
|
| 1764 | 1764 | |
| 1765 | 1765 | function wpinv_checkout_submit() { |
| 1766 | 1766 | ?> |
| 1767 | 1767 | <div id="wpinv_purchase_submit" class="panel panel-success"> |
| 1768 | 1768 | <div class="panel-body text-center"> |
| 1769 | 1769 | <?php |
| 1770 | - do_action( 'wpinv_purchase_form_before_submit' ); |
|
| 1770 | + do_action('wpinv_purchase_form_before_submit'); |
|
| 1771 | 1771 | wpinv_checkout_hidden_fields(); |
| 1772 | 1772 | echo wpinv_checkout_button_purchase(); |
| 1773 | - do_action( 'wpinv_purchase_form_after_submit' ); |
|
| 1773 | + do_action('wpinv_purchase_form_after_submit'); |
|
| 1774 | 1774 | ?> |
| 1775 | 1775 | </div> |
| 1776 | 1776 | </div> |
| 1777 | 1777 | <?php |
| 1778 | 1778 | } |
| 1779 | -add_action( 'wpinv_checkout_form_bottom', 'wpinv_checkout_submit', 9999 ); |
|
| 1779 | +add_action('wpinv_checkout_form_bottom', 'wpinv_checkout_submit', 9999); |
|
| 1780 | 1780 | |
| 1781 | -function wpinv_receipt_billing_address( $invoice_id = 0 ) { |
|
| 1782 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
| 1781 | +function wpinv_receipt_billing_address($invoice_id = 0) { |
|
| 1782 | + $invoice = wpinv_get_invoice($invoice_id); |
|
| 1783 | 1783 | |
| 1784 | - if ( empty( $invoice ) ) { |
|
| 1784 | + if (empty($invoice)) { |
|
| 1785 | 1785 | return NULL; |
| 1786 | 1786 | } |
| 1787 | 1787 | |
| 1788 | 1788 | $billing_details = $invoice->get_user_info(); |
| 1789 | 1789 | $address_row = ''; |
| 1790 | - if ( $address = $billing_details['address'] ) { |
|
| 1791 | - $address_row .= wpautop( wp_kses_post( $address ) ); |
|
| 1790 | + if ($address = $billing_details['address']) { |
|
| 1791 | + $address_row .= wpautop(wp_kses_post($address)); |
|
| 1792 | 1792 | } |
| 1793 | 1793 | |
| 1794 | 1794 | $address_fields = array(); |
| 1795 | - if ( !empty( $billing_details['city'] ) ) { |
|
| 1795 | + if (!empty($billing_details['city'])) { |
|
| 1796 | 1796 | $address_fields[] = $billing_details['city']; |
| 1797 | 1797 | } |
| 1798 | 1798 | |
| 1799 | - $billing_country = !empty( $billing_details['country'] ) ? $billing_details['country'] : ''; |
|
| 1800 | - if ( !empty( $billing_details['state'] ) ) { |
|
| 1801 | - $address_fields[] = wpinv_state_name( $billing_details['state'], $billing_country ); |
|
| 1799 | + $billing_country = !empty($billing_details['country']) ? $billing_details['country'] : ''; |
|
| 1800 | + if (!empty($billing_details['state'])) { |
|
| 1801 | + $address_fields[] = wpinv_state_name($billing_details['state'], $billing_country); |
|
| 1802 | 1802 | } |
| 1803 | 1803 | |
| 1804 | - if ( !empty( $billing_country ) ) { |
|
| 1805 | - $address_fields[] = wpinv_country_name( $billing_country ); |
|
| 1804 | + if (!empty($billing_country)) { |
|
| 1805 | + $address_fields[] = wpinv_country_name($billing_country); |
|
| 1806 | 1806 | } |
| 1807 | 1807 | |
| 1808 | - if ( !empty( $address_fields ) ) { |
|
| 1809 | - $address_fields = implode( ", ", $address_fields ); |
|
| 1808 | + if (!empty($address_fields)) { |
|
| 1809 | + $address_fields = implode(", ", $address_fields); |
|
| 1810 | 1810 | |
| 1811 | - if ( !empty( $billing_details['zip'] ) ) { |
|
| 1811 | + if (!empty($billing_details['zip'])) { |
|
| 1812 | 1812 | $address_fields .= ' ' . $billing_details['zip']; |
| 1813 | 1813 | } |
| 1814 | 1814 | |
| 1815 | - $address_row .= wpautop( wp_kses_post( $address_fields ) ); |
|
| 1815 | + $address_row .= wpautop(wp_kses_post($address_fields)); |
|
| 1816 | 1816 | } |
| 1817 | 1817 | ob_start(); |
| 1818 | 1818 | ?> |
| 1819 | 1819 | <table class="table table-bordered table-sm wpi-billing-details"> |
| 1820 | 1820 | <tbody> |
| 1821 | 1821 | <tr class="wpi-receipt-name"> |
| 1822 | - <th class="text-left"><?php _e( 'Name', 'invoicing' ); ?></th> |
|
| 1823 | - <td><?php echo esc_html( trim( $billing_details['first_name'] . ' ' . $billing_details['last_name'] ) ) ;?></td> |
|
| 1822 | + <th class="text-left"><?php _e('Name', 'invoicing'); ?></th> |
|
| 1823 | + <td><?php echo esc_html(trim($billing_details['first_name'] . ' ' . $billing_details['last_name'])); ?></td> |
|
| 1824 | 1824 | </tr> |
| 1825 | 1825 | <tr class="wpi-receipt-email"> |
| 1826 | - <th class="text-left"><?php _e( 'Email', 'invoicing' ); ?></th> |
|
| 1827 | - <td><?php echo $billing_details['email'] ;?></td> |
|
| 1826 | + <th class="text-left"><?php _e('Email', 'invoicing'); ?></th> |
|
| 1827 | + <td><?php echo $billing_details['email']; ?></td> |
|
| 1828 | 1828 | </tr> |
| 1829 | - <?php if ( $billing_details['company'] ) { ?> |
|
| 1829 | + <?php if ($billing_details['company']) { ?> |
|
| 1830 | 1830 | <tr class="wpi-receipt-company"> |
| 1831 | - <th class="text-left"><?php _e( 'Company', 'invoicing' ); ?></th> |
|
| 1832 | - <td><?php echo esc_html( $billing_details['company'] ) ;?></td> |
|
| 1831 | + <th class="text-left"><?php _e('Company', 'invoicing'); ?></th> |
|
| 1832 | + <td><?php echo esc_html($billing_details['company']); ?></td> |
|
| 1833 | 1833 | </tr> |
| 1834 | 1834 | <?php } ?> |
| 1835 | 1835 | <tr class="wpi-receipt-address"> |
| 1836 | - <th class="text-left"><?php _e( 'Address', 'invoicing' ); ?></th> |
|
| 1837 | - <td><?php echo $address_row ;?></td> |
|
| 1836 | + <th class="text-left"><?php _e('Address', 'invoicing'); ?></th> |
|
| 1837 | + <td><?php echo $address_row; ?></td> |
|
| 1838 | 1838 | </tr> |
| 1839 | - <?php if ( $billing_details['phone'] ) { ?> |
|
| 1839 | + <?php if ($billing_details['phone']) { ?> |
|
| 1840 | 1840 | <tr class="wpi-receipt-phone"> |
| 1841 | - <th class="text-left"><?php _e( 'Phone', 'invoicing' ); ?></th> |
|
| 1842 | - <td><?php echo esc_html( $billing_details['phone'] ) ;?></td> |
|
| 1841 | + <th class="text-left"><?php _e('Phone', 'invoicing'); ?></th> |
|
| 1842 | + <td><?php echo esc_html($billing_details['phone']); ?></td> |
|
| 1843 | 1843 | </tr> |
| 1844 | 1844 | <?php } ?> |
| 1845 | 1845 | </tbody> |
@@ -1847,103 +1847,103 @@ discard block |
||
| 1847 | 1847 | <?php |
| 1848 | 1848 | $output = ob_get_clean(); |
| 1849 | 1849 | |
| 1850 | - $output = apply_filters( 'wpinv_receipt_billing_address', $output, $invoice_id ); |
|
| 1850 | + $output = apply_filters('wpinv_receipt_billing_address', $output, $invoice_id); |
|
| 1851 | 1851 | |
| 1852 | 1852 | echo $output; |
| 1853 | 1853 | } |
| 1854 | 1854 | |
| 1855 | -function wpinv_filter_success_page_content( $content ) { |
|
| 1856 | - if ( isset( $_GET['payment-confirm'] ) && wpinv_is_success_page() ) { |
|
| 1857 | - if ( has_filter( 'wpinv_payment_confirm_' . sanitize_text_field( $_GET['payment-confirm'] ) ) ) { |
|
| 1858 | - $content = apply_filters( 'wpinv_payment_confirm_' . sanitize_text_field( $_GET['payment-confirm'] ), $content ); |
|
| 1855 | +function wpinv_filter_success_page_content($content) { |
|
| 1856 | + if (isset($_GET['payment-confirm']) && wpinv_is_success_page()) { |
|
| 1857 | + if (has_filter('wpinv_payment_confirm_' . sanitize_text_field($_GET['payment-confirm']))) { |
|
| 1858 | + $content = apply_filters('wpinv_payment_confirm_' . sanitize_text_field($_GET['payment-confirm']), $content); |
|
| 1859 | 1859 | } |
| 1860 | 1860 | } |
| 1861 | 1861 | |
| 1862 | 1862 | return $content; |
| 1863 | 1863 | } |
| 1864 | -add_filter( 'the_content', 'wpinv_filter_success_page_content', 99999 ); |
|
| 1864 | +add_filter('the_content', 'wpinv_filter_success_page_content', 99999); |
|
| 1865 | 1865 | |
| 1866 | -function wpinv_receipt_actions( $invoice ) { |
|
| 1867 | - if ( !empty( $invoice ) ) { |
|
| 1866 | +function wpinv_receipt_actions($invoice) { |
|
| 1867 | + if (!empty($invoice)) { |
|
| 1868 | 1868 | $actions = array(); |
| 1869 | 1869 | |
| 1870 | - if ( wpinv_user_can_view_invoice( $invoice->ID ) ) { |
|
| 1871 | - $actions['print'] = array( |
|
| 1872 | - 'url' => $invoice->get_view_url( true ), |
|
| 1873 | - 'name' => __( 'Print Invoice', 'invoicing' ), |
|
| 1870 | + if (wpinv_user_can_view_invoice($invoice->ID)) { |
|
| 1871 | + $actions['print'] = array( |
|
| 1872 | + 'url' => $invoice->get_view_url(true), |
|
| 1873 | + 'name' => __('Print Invoice', 'invoicing'), |
|
| 1874 | 1874 | 'class' => 'btn-primary', |
| 1875 | 1875 | ); |
| 1876 | 1876 | } |
| 1877 | 1877 | |
| 1878 | - if ( is_user_logged_in() ) { |
|
| 1878 | + if (is_user_logged_in()) { |
|
| 1879 | 1879 | $actions['history'] = array( |
| 1880 | 1880 | 'url' => wpinv_get_history_page_uri(), |
| 1881 | - 'name' => __( 'Invoice History', 'invoicing' ), |
|
| 1881 | + 'name' => __('Invoice History', 'invoicing'), |
|
| 1882 | 1882 | 'class' => 'btn-warning', |
| 1883 | 1883 | ); |
| 1884 | 1884 | } |
| 1885 | 1885 | |
| 1886 | - $actions = apply_filters( 'wpinv_invoice_receipt_actions', $actions, $invoice ); |
|
| 1886 | + $actions = apply_filters('wpinv_invoice_receipt_actions', $actions, $invoice); |
|
| 1887 | 1887 | |
| 1888 | - if ( !empty( $actions ) ) { |
|
| 1888 | + if (!empty($actions)) { |
|
| 1889 | 1889 | ?> |
| 1890 | 1890 | <div class="wpinv-receipt-actions text-right"> |
| 1891 | - <?php foreach ( $actions as $key => $action ) { $class = !empty($action['class']) ? sanitize_html_class( $action['class'] ) : ''; ?> |
|
| 1892 | - <a href="<?php echo esc_url( $action['url'] );?>" class="btn btn-sm <?php echo $class . ' ' . sanitize_html_class( $key );?>" <?php echo ( !empty($action['attrs']) ? $action['attrs'] : '' ) ;?>><?php echo esc_html( $action['name'] );?></a> |
|
| 1891 | + <?php foreach ($actions as $key => $action) { $class = !empty($action['class']) ? sanitize_html_class($action['class']) : ''; ?> |
|
| 1892 | + <a href="<?php echo esc_url($action['url']); ?>" class="btn btn-sm <?php echo $class . ' ' . sanitize_html_class($key); ?>" <?php echo (!empty($action['attrs']) ? $action['attrs'] : ''); ?>><?php echo esc_html($action['name']); ?></a> |
|
| 1893 | 1893 | <?php } ?> |
| 1894 | 1894 | </div> |
| 1895 | 1895 | <?php |
| 1896 | 1896 | } |
| 1897 | 1897 | } |
| 1898 | 1898 | } |
| 1899 | -add_action( 'wpinv_receipt_start', 'wpinv_receipt_actions', -10, 1 ); |
|
| 1899 | +add_action('wpinv_receipt_start', 'wpinv_receipt_actions', -10, 1); |
|
| 1900 | 1900 | |
| 1901 | -function wpinv_invoice_link( $invoice_id ) { |
|
| 1902 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
| 1901 | +function wpinv_invoice_link($invoice_id) { |
|
| 1902 | + $invoice = wpinv_get_invoice($invoice_id); |
|
| 1903 | 1903 | |
| 1904 | - if ( empty( $invoice ) ) { |
|
| 1904 | + if (empty($invoice)) { |
|
| 1905 | 1905 | return NULL; |
| 1906 | 1906 | } |
| 1907 | 1907 | |
| 1908 | - $invoice_link = '<a href="' . esc_url( $invoice->get_view_url() ) . '">' . $invoice->get_number() . '</a>'; |
|
| 1908 | + $invoice_link = '<a href="' . esc_url($invoice->get_view_url()) . '">' . $invoice->get_number() . '</a>'; |
|
| 1909 | 1909 | |
| 1910 | - return apply_filters( 'wpinv_get_invoice_link', $invoice_link, $invoice ); |
|
| 1910 | + return apply_filters('wpinv_get_invoice_link', $invoice_link, $invoice); |
|
| 1911 | 1911 | } |
| 1912 | 1912 | |
| 1913 | -function wpinv_invoice_subscription_details( $invoice ) { |
|
| 1914 | - if ( !empty( $invoice ) && $invoice->is_recurring() && !wpinv_is_subscription_payment( $invoice ) ) { |
|
| 1913 | +function wpinv_invoice_subscription_details($invoice) { |
|
| 1914 | + if (!empty($invoice) && $invoice->is_recurring() && !wpinv_is_subscription_payment($invoice)) { |
|
| 1915 | 1915 | $total_payments = (int)$invoice->get_total_payments(); |
| 1916 | 1916 | $payments = $invoice->get_child_payments(); |
| 1917 | 1917 | |
| 1918 | 1918 | $subscription = $invoice->get_subscription_data(); |
| 1919 | 1919 | |
| 1920 | - if ( !( !empty( $subscription ) && !empty( $subscription['item_id'] ) ) ) { |
|
| 1920 | + if (!(!empty($subscription) && !empty($subscription['item_id']))) { |
|
| 1921 | 1921 | return; |
| 1922 | 1922 | } |
| 1923 | 1923 | |
| 1924 | - $billing_cycle = wpinv_get_billing_cycle( $subscription['initial_amount'], $subscription['recurring_amount'], $subscription['period'], $subscription['interval'], $subscription['bill_times'], $subscription['trial_period'], $subscription['trial_interval'], $invoice->get_currency() ); |
|
| 1925 | - $times_billed = $total_payments . ' / ' . ( ( (int)$subscription['bill_times'] == 0 ) ? __( 'Until cancelled', 'invoicing' ) : $subscription['bill_times'] ); |
|
| 1924 | + $billing_cycle = wpinv_get_billing_cycle($subscription['initial_amount'], $subscription['recurring_amount'], $subscription['period'], $subscription['interval'], $subscription['bill_times'], $subscription['trial_period'], $subscription['trial_interval'], $invoice->get_currency()); |
|
| 1925 | + $times_billed = $total_payments . ' / ' . (((int)$subscription['bill_times'] == 0) ? __('Until cancelled', 'invoicing') : $subscription['bill_times']); |
|
| 1926 | 1926 | |
| 1927 | 1927 | $subscription_status = $invoice->get_subscription_status(); |
| 1928 | 1928 | |
| 1929 | 1929 | $status_desc = ''; |
| 1930 | - if ( $subscription_status == 'trialing' && $trial_end_date = $invoice->get_trial_end_date() ) { |
|
| 1931 | - $status_desc = wp_sprintf( __( 'Until: %s', 'invoicing' ), $trial_end_date ); |
|
| 1932 | - } else if ( $subscription_status == 'cancelled' && $cancelled_date = $invoice->get_cancelled_date() ) { |
|
| 1933 | - $status_desc = wp_sprintf( __( 'On: %s', 'invoicing' ), $cancelled_date ); |
|
| 1930 | + if ($subscription_status == 'trialing' && $trial_end_date = $invoice->get_trial_end_date()) { |
|
| 1931 | + $status_desc = wp_sprintf(__('Until: %s', 'invoicing'), $trial_end_date); |
|
| 1932 | + } else if ($subscription_status == 'cancelled' && $cancelled_date = $invoice->get_cancelled_date()) { |
|
| 1933 | + $status_desc = wp_sprintf(__('On: %s', 'invoicing'), $cancelled_date); |
|
| 1934 | 1934 | } |
| 1935 | 1935 | $status_desc = $status_desc != '' ? '<span class="meta">' . $status_desc . '</span>' : ''; |
| 1936 | 1936 | ?> |
| 1937 | 1937 | <div class="wpinv-subscriptions-details"> |
| 1938 | - <h3 class="wpinv-subscriptions-t"><?php echo apply_filters( 'wpinv_subscription_details_title', __( 'Subscription Details', 'invoicing' ) ); ?></h3> |
|
| 1938 | + <h3 class="wpinv-subscriptions-t"><?php echo apply_filters('wpinv_subscription_details_title', __('Subscription Details', 'invoicing')); ?></h3> |
|
| 1939 | 1939 | <table class="table"> |
| 1940 | 1940 | <thead> |
| 1941 | 1941 | <tr> |
| 1942 | - <th><?php _e( 'Billing Cycle', 'invoicing' ) ;?></th> |
|
| 1943 | - <th><?php _e( 'Start Date', 'invoicing' ) ;?></th> |
|
| 1944 | - <th><?php _e( 'Expiration Date', 'invoicing' ) ;?></th> |
|
| 1945 | - <th class="text-center"><?php _e( 'Times Billed', 'invoicing' ) ;?></th> |
|
| 1946 | - <th class="text-center"><?php _e( 'Status', 'invoicing' ) ;?></th> |
|
| 1942 | + <th><?php _e('Billing Cycle', 'invoicing'); ?></th> |
|
| 1943 | + <th><?php _e('Start Date', 'invoicing'); ?></th> |
|
| 1944 | + <th><?php _e('Expiration Date', 'invoicing'); ?></th> |
|
| 1945 | + <th class="text-center"><?php _e('Times Billed', 'invoicing'); ?></th> |
|
| 1946 | + <th class="text-center"><?php _e('Status', 'invoicing'); ?></th> |
|
| 1947 | 1947 | </tr> |
| 1948 | 1948 | </thead> |
| 1949 | 1949 | <tbody> |
@@ -1952,32 +1952,32 @@ discard block |
||
| 1952 | 1952 | <td><?php echo $invoice->get_subscription_start(); ?></td> |
| 1953 | 1953 | <td><?php echo $invoice->get_subscription_end(); ?></td> |
| 1954 | 1954 | <td class="text-center"><?php echo $times_billed; ?></td> |
| 1955 | - <td class="text-center wpi-sub-status"><?php echo $invoice->get_subscription_status_label() ;?> |
|
| 1955 | + <td class="text-center wpi-sub-status"><?php echo $invoice->get_subscription_status_label(); ?> |
|
| 1956 | 1956 | <?php echo $status_desc; ?> |
| 1957 | 1957 | </td> |
| 1958 | 1958 | </tr> |
| 1959 | 1959 | </tbody> |
| 1960 | 1960 | </table> |
| 1961 | 1961 | </div> |
| 1962 | - <?php if ( !empty( $payments ) ) { ?> |
|
| 1962 | + <?php if (!empty($payments)) { ?> |
|
| 1963 | 1963 | <div class="wpinv-renewal-payments"> |
| 1964 | - <h3 class="wpinv-renewals-t"><?php echo apply_filters( 'wpinv_renewal_payments_title', __( 'Renewal Payments', 'invoicing' ) ); ?></h3> |
|
| 1964 | + <h3 class="wpinv-renewals-t"><?php echo apply_filters('wpinv_renewal_payments_title', __('Renewal Payments', 'invoicing')); ?></h3> |
|
| 1965 | 1965 | <table class="table"> |
| 1966 | 1966 | <thead> |
| 1967 | 1967 | <tr> |
| 1968 | 1968 | <th>#</th> |
| 1969 | - <th><?php _e( 'Invoice', 'invoicing' ) ;?></th> |
|
| 1970 | - <th><?php _e( 'Date', 'invoicing' ) ;?></th> |
|
| 1971 | - <th class="text-right"><?php _e( 'Amount', 'invoicing' ) ;?></th> |
|
| 1969 | + <th><?php _e('Invoice', 'invoicing'); ?></th> |
|
| 1970 | + <th><?php _e('Date', 'invoicing'); ?></th> |
|
| 1971 | + <th class="text-right"><?php _e('Amount', 'invoicing'); ?></th> |
|
| 1972 | 1972 | </tr> |
| 1973 | 1973 | </thead> |
| 1974 | 1974 | <tbody> |
| 1975 | - <?php foreach ( $payments as $key => $invoice_id ) { ?> |
|
| 1975 | + <?php foreach ($payments as $key => $invoice_id) { ?> |
|
| 1976 | 1976 | <tr> |
| 1977 | - <th scope="row"><?php echo ( $key + 1 );?></th> |
|
| 1978 | - <td><?php echo wpinv_invoice_link( $invoice_id ) ;?></td> |
|
| 1979 | - <td><?php echo wpinv_get_invoice_date( $invoice_id ); ?></td> |
|
| 1980 | - <td class="text-right"><?php echo wpinv_payment_total( $invoice_id, true ); ?></td> |
|
| 1977 | + <th scope="row"><?php echo ($key + 1); ?></th> |
|
| 1978 | + <td><?php echo wpinv_invoice_link($invoice_id); ?></td> |
|
| 1979 | + <td><?php echo wpinv_get_invoice_date($invoice_id); ?></td> |
|
| 1980 | + <td class="text-right"><?php echo wpinv_payment_total($invoice_id, true); ?></td> |
|
| 1981 | 1981 | </tr> |
| 1982 | 1982 | <?php } ?> |
| 1983 | 1983 | <tr><td colspan="4" style="padding:0"></td></tr> |
@@ -1989,52 +1989,52 @@ discard block |
||
| 1989 | 1989 | } |
| 1990 | 1990 | } |
| 1991 | 1991 | |
| 1992 | -function wpinv_cart_total_label( $label, $invoice ) { |
|
| 1993 | - if ( empty( $invoice ) ) { |
|
| 1992 | +function wpinv_cart_total_label($label, $invoice) { |
|
| 1993 | + if (empty($invoice)) { |
|
| 1994 | 1994 | return $label; |
| 1995 | 1995 | } |
| 1996 | 1996 | |
| 1997 | 1997 | $prefix_label = ''; |
| 1998 | - if ( $invoice->is_parent() && $item_id = $invoice->get_recurring() ) { |
|
| 1999 | - $prefix_label = '<span class="label label-primary label-recurring">' . __( 'Recurring Payment', 'invoicing' ) . '</span> ' . wpinv_subscription_payment_desc( $invoice ); |
|
| 2000 | - } else if ( $invoice->is_renewal() ) { |
|
| 2001 | - $prefix_label = '<span class="label label-primary label-renewal">' . __( 'Renewal Payment', 'invoicing' ) . '</span> '; |
|
| 1998 | + if ($invoice->is_parent() && $item_id = $invoice->get_recurring()) { |
|
| 1999 | + $prefix_label = '<span class="label label-primary label-recurring">' . __('Recurring Payment', 'invoicing') . '</span> ' . wpinv_subscription_payment_desc($invoice); |
|
| 2000 | + } else if ($invoice->is_renewal()) { |
|
| 2001 | + $prefix_label = '<span class="label label-primary label-renewal">' . __('Renewal Payment', 'invoicing') . '</span> '; |
|
| 2002 | 2002 | } |
| 2003 | 2003 | |
| 2004 | - if ( $prefix_label != '' ) { |
|
| 2005 | - $label = '<span class="wpinv-cart-sub-desc">' . $prefix_label . '</span> ' . $label; |
|
| 2004 | + if ($prefix_label != '') { |
|
| 2005 | + $label = '<span class="wpinv-cart-sub-desc">' . $prefix_label . '</span> ' . $label; |
|
| 2006 | 2006 | } |
| 2007 | 2007 | |
| 2008 | 2008 | return $label; |
| 2009 | 2009 | } |
| 2010 | -add_filter( 'wpinv_cart_total_label', 'wpinv_cart_total_label', 10, 2 ); |
|
| 2011 | -add_filter( 'wpinv_email_cart_total_label', 'wpinv_cart_total_label', 10, 2 ); |
|
| 2012 | -add_filter( 'wpinv_print_cart_total_label', 'wpinv_cart_total_label', 10, 2 ); |
|
| 2010 | +add_filter('wpinv_cart_total_label', 'wpinv_cart_total_label', 10, 2); |
|
| 2011 | +add_filter('wpinv_email_cart_total_label', 'wpinv_cart_total_label', 10, 2); |
|
| 2012 | +add_filter('wpinv_print_cart_total_label', 'wpinv_cart_total_label', 10, 2); |
|
| 2013 | 2013 | |
| 2014 | -add_action( 'wpinv_invoice_print_middle', 'wpinv_invoice_subscription_details', 10, 1 ); |
|
| 2014 | +add_action('wpinv_invoice_print_middle', 'wpinv_invoice_subscription_details', 10, 1); |
|
| 2015 | 2015 | |
| 2016 | -function wpinv_invoice_print_description( $invoice ) { |
|
| 2017 | - if ( empty( $invoice ) ) { |
|
| 2016 | +function wpinv_invoice_print_description($invoice) { |
|
| 2017 | + if (empty($invoice)) { |
|
| 2018 | 2018 | return NULL; |
| 2019 | 2019 | } |
| 2020 | - if ( $description = wpinv_get_invoice_description( $invoice->ID ) ) { |
|
| 2020 | + if ($description = wpinv_get_invoice_description($invoice->ID)) { |
|
| 2021 | 2021 | ?> |
| 2022 | 2022 | <div class="row wpinv-lower"> |
| 2023 | 2023 | <div class="col-sm-12 wpinv-description"> |
| 2024 | - <?php echo wpautop( $description ); ?> |
|
| 2024 | + <?php echo wpautop($description); ?> |
|
| 2025 | 2025 | </div> |
| 2026 | 2026 | </div> |
| 2027 | 2027 | <?php |
| 2028 | 2028 | } |
| 2029 | 2029 | } |
| 2030 | -add_action( 'wpinv_invoice_print_middle', 'wpinv_invoice_print_description', 10.1, 1 ); |
|
| 2030 | +add_action('wpinv_invoice_print_middle', 'wpinv_invoice_print_description', 10.1, 1); |
|
| 2031 | 2031 | |
| 2032 | -function wpinv_invoice_print_payment_info( $invoice ) { |
|
| 2033 | - if ( empty( $invoice ) ) { |
|
| 2032 | +function wpinv_invoice_print_payment_info($invoice) { |
|
| 2033 | + if (empty($invoice)) { |
|
| 2034 | 2034 | return NULL; |
| 2035 | 2035 | } |
| 2036 | 2036 | |
| 2037 | - if ( $payments_info = wpinv_display_payments_info( $invoice->ID, false ) ) { |
|
| 2037 | + if ($payments_info = wpinv_display_payments_info($invoice->ID, false)) { |
|
| 2038 | 2038 | ?> |
| 2039 | 2039 | <div class="row wpinv-payments"> |
| 2040 | 2040 | <div class="col-sm-12"> |
@@ -2046,43 +2046,43 @@ discard block |
||
| 2046 | 2046 | } |
| 2047 | 2047 | // add_action( 'wpinv_invoice_print_after_line_items', 'wpinv_invoice_print_payment_info', 10, 1 ); |
| 2048 | 2048 | |
| 2049 | -function wpinv_get_invoice_note_line_item( $note, $echo = true ) { |
|
| 2050 | - if ( empty( $note ) ) { |
|
| 2049 | +function wpinv_get_invoice_note_line_item($note, $echo = true) { |
|
| 2050 | + if (empty($note)) { |
|
| 2051 | 2051 | return NULL; |
| 2052 | 2052 | } |
| 2053 | 2053 | |
| 2054 | - if ( is_int( $note ) ) { |
|
| 2055 | - $note = get_comment( $note ); |
|
| 2054 | + if (is_int($note)) { |
|
| 2055 | + $note = get_comment($note); |
|
| 2056 | 2056 | } |
| 2057 | 2057 | |
| 2058 | - if ( !( is_object( $note ) && is_a( $note, 'WP_Comment' ) ) ) { |
|
| 2058 | + if (!(is_object($note) && is_a($note, 'WP_Comment'))) { |
|
| 2059 | 2059 | return NULL; |
| 2060 | 2060 | } |
| 2061 | 2061 | |
| 2062 | - $note_classes = array( 'note' ); |
|
| 2063 | - $note_classes[] = get_comment_meta( $note->comment_ID, '_wpi_customer_note', true ) ? 'customer-note' : ''; |
|
| 2064 | - $note_classes[] = $note->comment_author === __( 'System', 'invoicing' ) ? 'system-note' : ''; |
|
| 2065 | - $note_classes = apply_filters( 'wpinv_invoice_note_class', array_filter( $note_classes ), $note ); |
|
| 2066 | - $note_classes = !empty( $note_classes ) ? implode( ' ', $note_classes ) : ''; |
|
| 2062 | + $note_classes = array('note'); |
|
| 2063 | + $note_classes[] = get_comment_meta($note->comment_ID, '_wpi_customer_note', true) ? 'customer-note' : ''; |
|
| 2064 | + $note_classes[] = $note->comment_author === __('System', 'invoicing') ? 'system-note' : ''; |
|
| 2065 | + $note_classes = apply_filters('wpinv_invoice_note_class', array_filter($note_classes), $note); |
|
| 2066 | + $note_classes = !empty($note_classes) ? implode(' ', $note_classes) : ''; |
|
| 2067 | 2067 | |
| 2068 | 2068 | ob_start(); |
| 2069 | 2069 | ?> |
| 2070 | - <li rel="<?php echo absint( $note->comment_ID ) ; ?>" class="<?php echo esc_attr( $note_classes ); ?>"> |
|
| 2070 | + <li rel="<?php echo absint($note->comment_ID); ?>" class="<?php echo esc_attr($note_classes); ?>"> |
|
| 2071 | 2071 | <div class="note_content"> |
| 2072 | - <?php echo wpautop( wptexturize( wp_kses_post( $note->comment_content ) ) ); ?> |
|
| 2072 | + <?php echo wpautop(wptexturize(wp_kses_post($note->comment_content))); ?> |
|
| 2073 | 2073 | </div> |
| 2074 | 2074 | <p class="meta"> |
| 2075 | - <abbr class="exact-date" title="<?php echo $note->comment_date; ?>"><?php printf( __( '%1$s - %2$s at %3$s', 'invoicing' ), $note->comment_author, date_i18n( get_option( 'date_format' ), strtotime( $note->comment_date ) ), date_i18n( get_option( 'time_format' ), strtotime( $note->comment_date ) ) ); ?></abbr> |
|
| 2076 | - <?php if($note->comment_author !== 'System') {?> |
|
| 2077 | - <a href="#" class="delete_note"><?php _e( 'Delete note', 'invoicing' ); ?></a> |
|
| 2075 | + <abbr class="exact-date" title="<?php echo $note->comment_date; ?>"><?php printf(__('%1$s - %2$s at %3$s', 'invoicing'), $note->comment_author, date_i18n(get_option('date_format'), strtotime($note->comment_date)), date_i18n(get_option('time_format'), strtotime($note->comment_date))); ?></abbr> |
|
| 2076 | + <?php if ($note->comment_author !== 'System') {?> |
|
| 2077 | + <a href="#" class="delete_note"><?php _e('Delete note', 'invoicing'); ?></a> |
|
| 2078 | 2078 | <?php } ?> |
| 2079 | 2079 | </p> |
| 2080 | 2080 | </li> |
| 2081 | 2081 | <?php |
| 2082 | 2082 | $note_content = ob_get_clean(); |
| 2083 | - $note_content = apply_filters( 'wpinv_get_invoice_note_line_item', $note_content, $note, $echo ); |
|
| 2083 | + $note_content = apply_filters('wpinv_get_invoice_note_line_item', $note_content, $note, $echo); |
|
| 2084 | 2084 | |
| 2085 | - if ( $echo ) { |
|
| 2085 | + if ($echo) { |
|
| 2086 | 2086 | echo $note_content; |
| 2087 | 2087 | } else { |
| 2088 | 2088 | return $note_content; |
@@ -2092,33 +2092,33 @@ discard block |
||
| 2092 | 2092 | function wpinv_invalid_invoice_content() { |
| 2093 | 2093 | global $post; |
| 2094 | 2094 | |
| 2095 | - $invoice = wpinv_get_invoice( $post->ID ); |
|
| 2095 | + $invoice = wpinv_get_invoice($post->ID); |
|
| 2096 | 2096 | |
| 2097 | - $error = __( 'This invoice is only viewable by clicking on the invoice link that sent to you via email.', 'invoicing' ); |
|
| 2098 | - if ( !empty( $invoice->ID ) && $invoice->has_status( array_keys( wpinv_get_invoice_statuses() ) ) ) { |
|
| 2099 | - if ( is_user_logged_in() ) { |
|
| 2100 | - if ( wpinv_require_login_to_checkout() ) { |
|
| 2101 | - if ( isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) { |
|
| 2102 | - $error = __( 'You are not allowed to view this invoice.', 'invoicing' ); |
|
| 2097 | + $error = __('This invoice is only viewable by clicking on the invoice link that sent to you via email.', 'invoicing'); |
|
| 2098 | + if (!empty($invoice->ID) && $invoice->has_status(array_keys(wpinv_get_invoice_statuses()))) { |
|
| 2099 | + if (is_user_logged_in()) { |
|
| 2100 | + if (wpinv_require_login_to_checkout()) { |
|
| 2101 | + if (isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) { |
|
| 2102 | + $error = __('You are not allowed to view this invoice.', 'invoicing'); |
|
| 2103 | 2103 | } |
| 2104 | 2104 | } |
| 2105 | 2105 | } else { |
| 2106 | - if ( wpinv_require_login_to_checkout() ) { |
|
| 2107 | - if ( isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) { |
|
| 2108 | - $error = __( 'You must be logged in to view this invoice.', 'invoicing' ); |
|
| 2106 | + if (wpinv_require_login_to_checkout()) { |
|
| 2107 | + if (isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) { |
|
| 2108 | + $error = __('You must be logged in to view this invoice.', 'invoicing'); |
|
| 2109 | 2109 | } |
| 2110 | 2110 | } |
| 2111 | 2111 | } |
| 2112 | 2112 | } else { |
| 2113 | - $error = __( 'This invoice is deleted or does not exist.', 'invoicing' ); |
|
| 2113 | + $error = __('This invoice is deleted or does not exist.', 'invoicing'); |
|
| 2114 | 2114 | } |
| 2115 | 2115 | ?> |
| 2116 | 2116 | <div class="row wpinv-row-invalid"> |
| 2117 | 2117 | <div class="col-md-6 col-md-offset-3 wpinv-message error"> |
| 2118 | - <h3><?php _e( 'Access Denied', 'invoicing' ); ?></h3> |
|
| 2118 | + <h3><?php _e('Access Denied', 'invoicing'); ?></h3> |
|
| 2119 | 2119 | <p class="wpinv-msg-text"><?php echo $error; ?></p> |
| 2120 | 2120 | </div> |
| 2121 | 2121 | </div> |
| 2122 | 2122 | <?php |
| 2123 | 2123 | } |
| 2124 | -add_action( 'wpinv_invalid_invoice_content', 'wpinv_invalid_invoice_content' ); |
|
| 2125 | 2124 | \ No newline at end of file |
| 2125 | +add_action('wpinv_invalid_invoice_content', 'wpinv_invalid_invoice_content'); |
|
| 2126 | 2126 | \ No newline at end of file |
@@ -140,8 +140,8 @@ discard block |
||
| 140 | 140 | |
| 141 | 141 | function wpinv_get_default_labels() { |
| 142 | 142 | $defaults = array( |
| 143 | - 'singular' => __( 'Invoice', 'invoicing' ), |
|
| 144 | - 'plural' => __( 'Invoices', 'invoicing' ) |
|
| 143 | + 'singular' => __( 'Invoice', 'invoicing' ), |
|
| 144 | + 'plural' => __( 'Invoices', 'invoicing' ) |
|
| 145 | 145 | ); |
| 146 | 146 | |
| 147 | 147 | return apply_filters( 'wpinv_default_invoices_name', $defaults ); |
@@ -160,20 +160,20 @@ discard block |
||
| 160 | 160 | } |
| 161 | 161 | |
| 162 | 162 | function wpinv_change_default_title( $title ) { |
| 163 | - if ( !is_admin() ) { |
|
| 163 | + if ( !is_admin() ) { |
|
| 164 | 164 | $label = wpinv_get_label_singular(); |
| 165 | 165 | $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label ); |
| 166 | 166 | return $title; |
| 167 | - } |
|
| 167 | + } |
|
| 168 | 168 | |
| 169 | - $screen = get_current_screen(); |
|
| 169 | + $screen = get_current_screen(); |
|
| 170 | 170 | |
| 171 | - if ( 'wpi_invoice' == $screen->post_type ) { |
|
| 171 | + if ( 'wpi_invoice' == $screen->post_type ) { |
|
| 172 | 172 | $label = wpinv_get_label_singular(); |
| 173 | 173 | $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label ); |
| 174 | - } |
|
| 174 | + } |
|
| 175 | 175 | |
| 176 | - return $title; |
|
| 176 | + return $title; |
|
| 177 | 177 | } |
| 178 | 178 | add_filter( 'enter_title_here', 'wpinv_change_default_title' ); |
| 179 | 179 | |
@@ -7,44 +7,44 @@ discard block |
||
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | 9 | // MUST have WordPress. |
| 10 | -if ( !defined( 'WPINC' ) ) { |
|
| 11 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) ); |
|
| 10 | +if (!defined('WPINC')) { |
|
| 11 | + exit('Do NOT access this file directly: ' . basename(__FILE__)); |
|
| 12 | 12 | } |
| 13 | 13 | |
| 14 | -add_action( 'init', 'wpinv_register_post_types', 1 ); |
|
| 14 | +add_action('init', 'wpinv_register_post_types', 1); |
|
| 15 | 15 | function wpinv_register_post_types() { |
| 16 | 16 | $labels = array( |
| 17 | - 'name' => _x( 'Invoices', 'post type general name', 'invoicing' ), |
|
| 18 | - 'singular_name' => _x( 'Invoice', 'post type singular name', 'invoicing' ), |
|
| 19 | - 'menu_name' => _x( 'Invoices', 'admin menu', 'invoicing' ), |
|
| 20 | - 'name_admin_bar' => _x( 'Invoice', 'add new on admin bar', 'invoicing' ), |
|
| 21 | - 'add_new' => _x( 'Add New', 'book', 'invoicing' ), |
|
| 22 | - 'add_new_item' => __( 'Add New Invoice', 'invoicing' ), |
|
| 23 | - 'new_item' => __( 'New Invoice', 'invoicing' ), |
|
| 24 | - 'edit_item' => __( 'Edit Invoice', 'invoicing' ), |
|
| 25 | - 'view_item' => __( 'View Invoice', 'invoicing' ), |
|
| 26 | - 'all_items' => __( 'Invoices', 'invoicing' ), |
|
| 27 | - 'search_items' => __( 'Search Invoices', 'invoicing' ), |
|
| 28 | - 'parent_item_colon' => __( 'Parent Invoices:', 'invoicing' ), |
|
| 29 | - 'not_found' => __( 'No invoices found.', 'invoicing' ), |
|
| 30 | - 'not_found_in_trash' => __( 'No invoices found in trash.', 'invoicing' ) |
|
| 17 | + 'name' => _x('Invoices', 'post type general name', 'invoicing'), |
|
| 18 | + 'singular_name' => _x('Invoice', 'post type singular name', 'invoicing'), |
|
| 19 | + 'menu_name' => _x('Invoices', 'admin menu', 'invoicing'), |
|
| 20 | + 'name_admin_bar' => _x('Invoice', 'add new on admin bar', 'invoicing'), |
|
| 21 | + 'add_new' => _x('Add New', 'book', 'invoicing'), |
|
| 22 | + 'add_new_item' => __('Add New Invoice', 'invoicing'), |
|
| 23 | + 'new_item' => __('New Invoice', 'invoicing'), |
|
| 24 | + 'edit_item' => __('Edit Invoice', 'invoicing'), |
|
| 25 | + 'view_item' => __('View Invoice', 'invoicing'), |
|
| 26 | + 'all_items' => __('Invoices', 'invoicing'), |
|
| 27 | + 'search_items' => __('Search Invoices', 'invoicing'), |
|
| 28 | + 'parent_item_colon' => __('Parent Invoices:', 'invoicing'), |
|
| 29 | + 'not_found' => __('No invoices found.', 'invoicing'), |
|
| 30 | + 'not_found_in_trash' => __('No invoices found in trash.', 'invoicing') |
|
| 31 | 31 | ); |
| 32 | - $labels = apply_filters( 'wpinv_labels', $labels ); |
|
| 32 | + $labels = apply_filters('wpinv_labels', $labels); |
|
| 33 | 33 | |
| 34 | 34 | $menu_icon = WPINV_PLUGIN_URL . '/assets/images/favicon.ico'; |
| 35 | - $menu_icon = apply_filters( 'wpinv_menu_icon_invoice', $menu_icon ); |
|
| 35 | + $menu_icon = apply_filters('wpinv_menu_icon_invoice', $menu_icon); |
|
| 36 | 36 | |
| 37 | 37 | $cap_type = 'wpi_invoice'; |
| 38 | 38 | $args = array( |
| 39 | 39 | 'labels' => $labels, |
| 40 | - 'description' => __( 'This is where invoices are stored.', 'invoicing' ), |
|
| 40 | + 'description' => __('This is where invoices are stored.', 'invoicing'), |
|
| 41 | 41 | 'public' => true, |
| 42 | 42 | 'can_export' => true, |
| 43 | 43 | '_builtin' => false, |
| 44 | 44 | 'publicly_queryable' => true, |
| 45 | 45 | 'exclude_from_search'=> true, |
| 46 | 46 | 'show_ui' => true, |
| 47 | - 'show_in_menu' => current_user_can( 'manage_invoicing' ) ? 'wpinv' : true, |
|
| 47 | + 'show_in_menu' => current_user_can('manage_invoicing') ? 'wpinv' : true, |
|
| 48 | 48 | 'query_var' => false, |
| 49 | 49 | 'rewrite' => true, |
| 50 | 50 | 'capability_type' => 'wpi_invoice', |
@@ -68,38 +68,38 @@ discard block |
||
| 68 | 68 | 'has_archive' => false, |
| 69 | 69 | 'hierarchical' => false, |
| 70 | 70 | 'menu_position' => null, |
| 71 | - 'supports' => array( 'title', 'author' ), |
|
| 71 | + 'supports' => array('title', 'author'), |
|
| 72 | 72 | 'menu_icon' => $menu_icon, |
| 73 | 73 | ); |
| 74 | 74 | |
| 75 | - $args = apply_filters( 'wpinv_register_post_type_invoice', $args ); |
|
| 75 | + $args = apply_filters('wpinv_register_post_type_invoice', $args); |
|
| 76 | 76 | |
| 77 | - register_post_type( 'wpi_invoice', $args ); |
|
| 77 | + register_post_type('wpi_invoice', $args); |
|
| 78 | 78 | |
| 79 | 79 | $items_labels = array( |
| 80 | - 'name' => _x( 'Items', 'post type general name', 'invoicing' ), |
|
| 81 | - 'singular_name' => _x( 'Item', 'post type singular name', 'invoicing' ), |
|
| 82 | - 'menu_name' => _x( 'Items', 'admin menu', 'invoicing' ), |
|
| 83 | - 'add_new' => _x( 'Add New', 'wpi_item', 'invoicing' ), |
|
| 84 | - 'add_new_item' => __( 'Add New Item', 'invoicing' ), |
|
| 85 | - 'new_item' => __( 'New Item', 'invoicing' ), |
|
| 86 | - 'edit_item' => __( 'Edit Item', 'invoicing' ), |
|
| 87 | - 'view_item' => __( 'View Item', 'invoicing' ), |
|
| 88 | - 'all_items' => __( 'Items', 'invoicing' ), |
|
| 89 | - 'search_items' => __( 'Search Items', 'invoicing' ), |
|
| 80 | + 'name' => _x('Items', 'post type general name', 'invoicing'), |
|
| 81 | + 'singular_name' => _x('Item', 'post type singular name', 'invoicing'), |
|
| 82 | + 'menu_name' => _x('Items', 'admin menu', 'invoicing'), |
|
| 83 | + 'add_new' => _x('Add New', 'wpi_item', 'invoicing'), |
|
| 84 | + 'add_new_item' => __('Add New Item', 'invoicing'), |
|
| 85 | + 'new_item' => __('New Item', 'invoicing'), |
|
| 86 | + 'edit_item' => __('Edit Item', 'invoicing'), |
|
| 87 | + 'view_item' => __('View Item', 'invoicing'), |
|
| 88 | + 'all_items' => __('Items', 'invoicing'), |
|
| 89 | + 'search_items' => __('Search Items', 'invoicing'), |
|
| 90 | 90 | 'parent_item_colon' => '', |
| 91 | - 'not_found' => __( 'No items found.', 'invoicing' ), |
|
| 92 | - 'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' ) |
|
| 91 | + 'not_found' => __('No items found.', 'invoicing'), |
|
| 92 | + 'not_found_in_trash' => __('No items found in trash.', 'invoicing') |
|
| 93 | 93 | ); |
| 94 | - $items_labels = apply_filters( 'wpinv_items_labels', $items_labels ); |
|
| 94 | + $items_labels = apply_filters('wpinv_items_labels', $items_labels); |
|
| 95 | 95 | |
| 96 | 96 | $cap_type = 'wpi_item'; |
| 97 | 97 | $invoice_item_args = array( |
| 98 | 98 | 'labels' => $items_labels, |
| 99 | 99 | 'public' => false, |
| 100 | 100 | 'show_ui' => true, |
| 101 | - 'show_in_menu' => current_user_can( 'manage_invoicing' ) ? 'wpinv' : false, |
|
| 102 | - 'supports' => array( 'title', 'excerpt' ), |
|
| 101 | + 'show_in_menu' => current_user_can('manage_invoicing') ? 'wpinv' : false, |
|
| 102 | + 'supports' => array('title', 'excerpt'), |
|
| 103 | 103 | 'register_meta_box_cb' => 'wpinv_register_item_meta_boxes', |
| 104 | 104 | 'rewrite' => false, |
| 105 | 105 | 'query_var' => false, |
@@ -123,40 +123,40 @@ discard block |
||
| 123 | 123 | ), |
| 124 | 124 | 'can_export' => true, |
| 125 | 125 | ); |
| 126 | - $invoice_item_args = apply_filters( 'wpinv_register_post_type_invoice_item', $invoice_item_args ); |
|
| 126 | + $invoice_item_args = apply_filters('wpinv_register_post_type_invoice_item', $invoice_item_args); |
|
| 127 | 127 | |
| 128 | - register_post_type( 'wpi_item', $invoice_item_args ); |
|
| 128 | + register_post_type('wpi_item', $invoice_item_args); |
|
| 129 | 129 | |
| 130 | 130 | $labels = array( |
| 131 | - 'name' => _x( 'Discounts', 'post type general name', 'invoicing' ), |
|
| 132 | - 'singular_name' => _x( 'Discount', 'post type singular name', 'invoicing' ), |
|
| 133 | - 'menu_name' => _x( 'Discounts', 'admin menu', 'invoicing' ), |
|
| 134 | - 'name_admin_bar' => _x( 'Discount', 'add new on admin bar', 'invoicing' ), |
|
| 135 | - 'add_new' => _x( 'Add New', 'book', 'invoicing' ), |
|
| 136 | - 'add_new_item' => __( 'Add New Discount', 'invoicing' ), |
|
| 137 | - 'new_item' => __( 'New Discount', 'invoicing' ), |
|
| 138 | - 'edit_item' => __( 'Edit Discount', 'invoicing' ), |
|
| 139 | - 'view_item' => __( 'View Discount', 'invoicing' ), |
|
| 140 | - 'all_items' => __( 'Discounts', 'invoicing' ), |
|
| 141 | - 'search_items' => __( 'Search Discounts', 'invoicing' ), |
|
| 142 | - 'parent_item_colon' => __( 'Parent Discounts:', 'invoicing' ), |
|
| 143 | - 'not_found' => __( 'No discounts found.', 'invoicing' ), |
|
| 144 | - 'not_found_in_trash' => __( 'No discounts found in trash.', 'invoicing' ) |
|
| 131 | + 'name' => _x('Discounts', 'post type general name', 'invoicing'), |
|
| 132 | + 'singular_name' => _x('Discount', 'post type singular name', 'invoicing'), |
|
| 133 | + 'menu_name' => _x('Discounts', 'admin menu', 'invoicing'), |
|
| 134 | + 'name_admin_bar' => _x('Discount', 'add new on admin bar', 'invoicing'), |
|
| 135 | + 'add_new' => _x('Add New', 'book', 'invoicing'), |
|
| 136 | + 'add_new_item' => __('Add New Discount', 'invoicing'), |
|
| 137 | + 'new_item' => __('New Discount', 'invoicing'), |
|
| 138 | + 'edit_item' => __('Edit Discount', 'invoicing'), |
|
| 139 | + 'view_item' => __('View Discount', 'invoicing'), |
|
| 140 | + 'all_items' => __('Discounts', 'invoicing'), |
|
| 141 | + 'search_items' => __('Search Discounts', 'invoicing'), |
|
| 142 | + 'parent_item_colon' => __('Parent Discounts:', 'invoicing'), |
|
| 143 | + 'not_found' => __('No discounts found.', 'invoicing'), |
|
| 144 | + 'not_found_in_trash' => __('No discounts found in trash.', 'invoicing') |
|
| 145 | 145 | ); |
| 146 | - $labels = apply_filters( 'wpinv_discounts_labels', $labels ); |
|
| 146 | + $labels = apply_filters('wpinv_discounts_labels', $labels); |
|
| 147 | 147 | |
| 148 | 148 | $cap_type = 'wpi_discount'; |
| 149 | 149 | |
| 150 | 150 | $args = array( |
| 151 | 151 | 'labels' => $labels, |
| 152 | - 'description' => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ), |
|
| 152 | + 'description' => __('This is where you can add new discounts that users can use in invoices.', 'invoicing'), |
|
| 153 | 153 | 'public' => false, |
| 154 | 154 | 'can_export' => true, |
| 155 | 155 | '_builtin' => false, |
| 156 | 156 | 'publicly_queryable' => false, |
| 157 | 157 | 'exclude_from_search'=> true, |
| 158 | 158 | 'show_ui' => true, |
| 159 | - 'show_in_menu' => current_user_can( 'manage_invoicing' ) ? 'wpinv' : false, |
|
| 159 | + 'show_in_menu' => current_user_can('manage_invoicing') ? 'wpinv' : false, |
|
| 160 | 160 | 'query_var' => false, |
| 161 | 161 | 'rewrite' => false, |
| 162 | 162 | 'capability_type' => $cap_type, |
@@ -179,7 +179,7 @@ discard block |
||
| 179 | 179 | ), |
| 180 | 180 | 'has_archive' => false, |
| 181 | 181 | 'hierarchical' => false, |
| 182 | - 'supports' => array( 'title', 'excerpt' ), |
|
| 182 | + 'supports' => array('title', 'excerpt'), |
|
| 183 | 183 | 'register_meta_box_cb' => 'wpinv_register_discount_meta_boxes', |
| 184 | 184 | 'show_in_nav_menus' => false, |
| 185 | 185 | 'show_in_admin_bar' => true, |
@@ -187,107 +187,107 @@ discard block |
||
| 187 | 187 | 'menu_position' => null, |
| 188 | 188 | ); |
| 189 | 189 | |
| 190 | - $args = apply_filters( 'wpinv_register_post_type_discount', $args ); |
|
| 190 | + $args = apply_filters('wpinv_register_post_type_discount', $args); |
|
| 191 | 191 | |
| 192 | - register_post_type( 'wpi_discount', $args ); |
|
| 192 | + register_post_type('wpi_discount', $args); |
|
| 193 | 193 | } |
| 194 | 194 | |
| 195 | 195 | function wpinv_get_default_labels() { |
| 196 | 196 | $defaults = array( |
| 197 | - 'singular' => __( 'Invoice', 'invoicing' ), |
|
| 198 | - 'plural' => __( 'Invoices', 'invoicing' ) |
|
| 197 | + 'singular' => __('Invoice', 'invoicing'), |
|
| 198 | + 'plural' => __('Invoices', 'invoicing') |
|
| 199 | 199 | ); |
| 200 | 200 | |
| 201 | - return apply_filters( 'wpinv_default_invoices_name', $defaults ); |
|
| 201 | + return apply_filters('wpinv_default_invoices_name', $defaults); |
|
| 202 | 202 | } |
| 203 | 203 | |
| 204 | -function wpinv_get_label_singular( $lowercase = false ) { |
|
| 204 | +function wpinv_get_label_singular($lowercase = false) { |
|
| 205 | 205 | $defaults = wpinv_get_default_labels(); |
| 206 | 206 | |
| 207 | - return ($lowercase) ? strtolower( $defaults['singular'] ) : $defaults['singular']; |
|
| 207 | + return ($lowercase) ? strtolower($defaults['singular']) : $defaults['singular']; |
|
| 208 | 208 | } |
| 209 | 209 | |
| 210 | -function wpinv_get_label_plural( $lowercase = false ) { |
|
| 210 | +function wpinv_get_label_plural($lowercase = false) { |
|
| 211 | 211 | $defaults = wpinv_get_default_labels(); |
| 212 | 212 | |
| 213 | - return ( $lowercase ) ? strtolower( $defaults['plural'] ) : $defaults['plural']; |
|
| 213 | + return ($lowercase) ? strtolower($defaults['plural']) : $defaults['plural']; |
|
| 214 | 214 | } |
| 215 | 215 | |
| 216 | -function wpinv_change_default_title( $title ) { |
|
| 217 | - if ( !is_admin() ) { |
|
| 216 | +function wpinv_change_default_title($title) { |
|
| 217 | + if (!is_admin()) { |
|
| 218 | 218 | $label = wpinv_get_label_singular(); |
| 219 | - $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label ); |
|
| 219 | + $title = sprintf(__('Enter %s name here', 'invoicing'), $label); |
|
| 220 | 220 | return $title; |
| 221 | 221 | } |
| 222 | 222 | |
| 223 | 223 | $screen = get_current_screen(); |
| 224 | 224 | |
| 225 | - if ( 'wpi_invoice' == $screen->post_type ) { |
|
| 225 | + if ('wpi_invoice' == $screen->post_type) { |
|
| 226 | 226 | $label = wpinv_get_label_singular(); |
| 227 | - $title = sprintf( __( 'Enter %s name here', 'invoicing' ), $label ); |
|
| 227 | + $title = sprintf(__('Enter %s name here', 'invoicing'), $label); |
|
| 228 | 228 | } |
| 229 | 229 | |
| 230 | 230 | return $title; |
| 231 | 231 | } |
| 232 | -add_filter( 'enter_title_here', 'wpinv_change_default_title' ); |
|
| 232 | +add_filter('enter_title_here', 'wpinv_change_default_title'); |
|
| 233 | 233 | |
| 234 | 234 | function wpinv_register_post_status() { |
| 235 | - register_post_status( 'wpi-pending', array( |
|
| 236 | - 'label' => _x( 'Pending', 'Invoice status', 'invoicing' ), |
|
| 235 | + register_post_status('wpi-pending', array( |
|
| 236 | + 'label' => _x('Pending', 'Invoice status', 'invoicing'), |
|
| 237 | 237 | 'public' => true, |
| 238 | 238 | 'exclude_from_search' => true, |
| 239 | 239 | 'show_in_admin_all_list' => true, |
| 240 | 240 | 'show_in_admin_status_list' => true, |
| 241 | - 'label_count' => _n_noop( 'Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>', 'invoicing' ) |
|
| 242 | - ) ); |
|
| 243 | - register_post_status( 'wpi-processing', array( |
|
| 244 | - 'label' => _x( 'Processing', 'Invoice status', 'invoicing' ), |
|
| 241 | + 'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>', 'invoicing') |
|
| 242 | + )); |
|
| 243 | + register_post_status('wpi-processing', array( |
|
| 244 | + 'label' => _x('Processing', 'Invoice status', 'invoicing'), |
|
| 245 | 245 | 'public' => true, |
| 246 | 246 | 'exclude_from_search' => true, |
| 247 | 247 | 'show_in_admin_all_list' => true, |
| 248 | 248 | 'show_in_admin_status_list' => true, |
| 249 | - 'label_count' => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' ) |
|
| 250 | - ) ); |
|
| 251 | - register_post_status( 'wpi-onhold', array( |
|
| 252 | - 'label' => _x( 'On Hold', 'Invoice status', 'invoicing' ), |
|
| 249 | + 'label_count' => _n_noop('Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing') |
|
| 250 | + )); |
|
| 251 | + register_post_status('wpi-onhold', array( |
|
| 252 | + 'label' => _x('On Hold', 'Invoice status', 'invoicing'), |
|
| 253 | 253 | 'public' => true, |
| 254 | 254 | 'exclude_from_search' => true, |
| 255 | 255 | 'show_in_admin_all_list' => true, |
| 256 | 256 | 'show_in_admin_status_list' => true, |
| 257 | - 'label_count' => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' ) |
|
| 258 | - ) ); |
|
| 259 | - register_post_status( 'wpi-cancelled', array( |
|
| 260 | - 'label' => _x( 'Cancelled', 'Invoice status', 'invoicing' ), |
|
| 257 | + 'label_count' => _n_noop('On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing') |
|
| 258 | + )); |
|
| 259 | + register_post_status('wpi-cancelled', array( |
|
| 260 | + 'label' => _x('Cancelled', 'Invoice status', 'invoicing'), |
|
| 261 | 261 | 'public' => true, |
| 262 | 262 | 'exclude_from_search' => true, |
| 263 | 263 | 'show_in_admin_all_list' => true, |
| 264 | 264 | 'show_in_admin_status_list' => true, |
| 265 | - 'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' ) |
|
| 266 | - ) ); |
|
| 267 | - register_post_status( 'wpi-refunded', array( |
|
| 268 | - 'label' => _x( 'Refunded', 'Invoice status', 'invoicing' ), |
|
| 265 | + 'label_count' => _n_noop('Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing') |
|
| 266 | + )); |
|
| 267 | + register_post_status('wpi-refunded', array( |
|
| 268 | + 'label' => _x('Refunded', 'Invoice status', 'invoicing'), |
|
| 269 | 269 | 'public' => true, |
| 270 | 270 | 'exclude_from_search' => true, |
| 271 | 271 | 'show_in_admin_all_list' => true, |
| 272 | 272 | 'show_in_admin_status_list' => true, |
| 273 | - 'label_count' => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' ) |
|
| 274 | - ) ); |
|
| 275 | - register_post_status( 'wpi-failed', array( |
|
| 276 | - 'label' => _x( 'Failed', 'Invoice status', 'invoicing' ), |
|
| 273 | + 'label_count' => _n_noop('Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing') |
|
| 274 | + )); |
|
| 275 | + register_post_status('wpi-failed', array( |
|
| 276 | + 'label' => _x('Failed', 'Invoice status', 'invoicing'), |
|
| 277 | 277 | 'public' => true, |
| 278 | 278 | 'exclude_from_search' => true, |
| 279 | 279 | 'show_in_admin_all_list' => true, |
| 280 | 280 | 'show_in_admin_status_list' => true, |
| 281 | - 'label_count' => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' ) |
|
| 282 | - ) ); |
|
| 283 | - register_post_status( 'wpi-renewal', array( |
|
| 284 | - 'label' => _x( 'Renewal', 'Invoice status', 'invoicing' ), |
|
| 281 | + 'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing') |
|
| 282 | + )); |
|
| 283 | + register_post_status('wpi-renewal', array( |
|
| 284 | + 'label' => _x('Renewal', 'Invoice status', 'invoicing'), |
|
| 285 | 285 | 'public' => true, |
| 286 | 286 | 'exclude_from_search' => true, |
| 287 | 287 | 'show_in_admin_all_list' => true, |
| 288 | 288 | 'show_in_admin_status_list' => true, |
| 289 | - 'label_count' => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' ) |
|
| 290 | - ) ); |
|
| 289 | + 'label_count' => _n_noop('Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing') |
|
| 290 | + )); |
|
| 291 | 291 | } |
| 292 | -add_action( 'init', 'wpinv_register_post_status', 10 ); |
|
| 292 | +add_action('init', 'wpinv_register_post_status', 10); |
|
| 293 | 293 | |
@@ -166,13 +166,13 @@ |
||
| 166 | 166 | $is_writeable = $is_dir && is_writeable( $this->export_dir ); |
| 167 | 167 | |
| 168 | 168 | if ( $is_dir && $is_writeable ) { |
| 169 | - return true; |
|
| 169 | + return true; |
|
| 170 | 170 | } else if ( $is_dir && !$is_writeable ) { |
| 171 | - if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) { |
|
| 172 | - return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir ); |
|
| 173 | - } |
|
| 171 | + if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) { |
|
| 172 | + return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir ); |
|
| 173 | + } |
|
| 174 | 174 | |
| 175 | - return true; |
|
| 175 | + return true; |
|
| 176 | 176 | } else { |
| 177 | 177 | if ( !$this->wp_filesystem->mkdir( $this->export_dir, FS_CHMOD_DIR ) ) { |
| 178 | 178 | return wp_sprintf( __( 'Filesystem ERROR: Could not create directory %s. This is usually due to inconsistent file permissions.', 'invoicing' ), $this->export_dir ); |
@@ -1,5 +1,5 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
| 2 | +if (!defined('ABSPATH')) { |
|
| 3 | 3 | exit; // Exit if accessed directly |
| 4 | 4 | } |
| 5 | 5 | |
@@ -21,68 +21,68 @@ discard block |
||
| 21 | 21 | public function init() { |
| 22 | 22 | global $wp_filesystem; |
| 23 | 23 | |
| 24 | - if ( empty( $wp_filesystem ) ) { |
|
| 25 | - require_once( ABSPATH . '/wp-admin/includes/file.php' ); |
|
| 24 | + if (empty($wp_filesystem)) { |
|
| 25 | + require_once(ABSPATH . '/wp-admin/includes/file.php'); |
|
| 26 | 26 | WP_Filesystem(); |
| 27 | 27 | global $wp_filesystem; |
| 28 | 28 | } |
| 29 | 29 | $this->wp_filesystem = $wp_filesystem; |
| 30 | 30 | |
| 31 | 31 | $this->export_dir = $this->export_location(); |
| 32 | - $this->export_url = $this->export_location( true ); |
|
| 32 | + $this->export_url = $this->export_location(true); |
|
| 33 | 33 | $this->export = 'invoicing'; |
| 34 | 34 | $this->filetype = 'csv'; |
| 35 | 35 | $this->per_page = 20; |
| 36 | 36 | |
| 37 | - do_action( 'wpinv_class_reports_init', $this ); |
|
| 37 | + do_action('wpinv_class_reports_init', $this); |
|
| 38 | 38 | } |
| 39 | 39 | |
| 40 | 40 | public function includes() { |
| 41 | - do_action( 'wpinv_class_reports_includes', $this ); |
|
| 41 | + do_action('wpinv_class_reports_includes', $this); |
|
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | public function actions() { |
| 45 | - if ( is_admin() ) { |
|
| 46 | - add_action( 'admin_menu', array( $this, 'add_submenu' ), 10 ); |
|
| 47 | - add_action( 'wpinv_reports_tab_export', array( $this, 'export' ) ); |
|
| 48 | - add_action( 'wp_ajax_wpinv_ajax_export', array( $this, 'ajax_export' ) ); |
|
| 45 | + if (is_admin()) { |
|
| 46 | + add_action('admin_menu', array($this, 'add_submenu'), 10); |
|
| 47 | + add_action('wpinv_reports_tab_export', array($this, 'export')); |
|
| 48 | + add_action('wp_ajax_wpinv_ajax_export', array($this, 'ajax_export')); |
|
| 49 | 49 | |
| 50 | 50 | // Export Invoices. |
| 51 | - add_action( 'wpinv_export_set_params_invoices', array( $this, 'set_invoices_export' ) ); |
|
| 52 | - add_filter( 'wpinv_export_get_columns_invoices', array( $this, 'get_invoices_columns' ) ); |
|
| 53 | - add_filter( 'wpinv_export_get_data_invoices', array( $this, 'get_invoices_data' ) ); |
|
| 54 | - add_filter( 'wpinv_get_export_status_invoices', array( $this, 'invoices_export_status' ) ); |
|
| 51 | + add_action('wpinv_export_set_params_invoices', array($this, 'set_invoices_export')); |
|
| 52 | + add_filter('wpinv_export_get_columns_invoices', array($this, 'get_invoices_columns')); |
|
| 53 | + add_filter('wpinv_export_get_data_invoices', array($this, 'get_invoices_data')); |
|
| 54 | + add_filter('wpinv_get_export_status_invoices', array($this, 'invoices_export_status')); |
|
| 55 | 55 | } |
| 56 | - do_action( 'wpinv_class_reports_actions', $this ); |
|
| 56 | + do_action('wpinv_class_reports_actions', $this); |
|
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | public function add_submenu() { |
| 60 | 60 | global $wpi_reports_page; |
| 61 | - $wpi_reports_page = add_submenu_page( 'wpinv', __( 'Reports', 'invoicing' ), __( 'Reports', 'invoicing' ), 'manage_options', 'wpinv-reports', array( $this, 'reports_page' ) ); |
|
| 61 | + $wpi_reports_page = add_submenu_page('wpinv', __('Reports', 'invoicing'), __('Reports', 'invoicing'), 'manage_options', 'wpinv-reports', array($this, 'reports_page')); |
|
| 62 | 62 | } |
| 63 | 63 | |
| 64 | 64 | public function reports_page() { |
| 65 | - if ( !wp_script_is( 'postbox', 'enqueued' ) ) { |
|
| 66 | - wp_enqueue_script( 'postbox' ); |
|
| 65 | + if (!wp_script_is('postbox', 'enqueued')) { |
|
| 66 | + wp_enqueue_script('postbox'); |
|
| 67 | 67 | } |
| 68 | - if ( !wp_script_is( 'jquery-ui-datepicker', 'enqueued' ) ) { |
|
| 69 | - wp_enqueue_script( 'jquery-ui-datepicker' ); |
|
| 68 | + if (!wp_script_is('jquery-ui-datepicker', 'enqueued')) { |
|
| 69 | + wp_enqueue_script('jquery-ui-datepicker'); |
|
| 70 | 70 | } |
| 71 | 71 | |
| 72 | - $current_page = admin_url( 'admin.php?page=wpinv-reports' ); |
|
| 73 | - $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( $_GET['tab'] ) : 'export'; |
|
| 72 | + $current_page = admin_url('admin.php?page=wpinv-reports'); |
|
| 73 | + $active_tab = isset($_GET['tab']) ? sanitize_text_field($_GET['tab']) : 'export'; |
|
| 74 | 74 | ?> |
| 75 | 75 | <div class="wrap wpi-reports-wrap"> |
| 76 | - <h1><?php echo esc_html( __( 'Reports', 'invoicing' ) ); ?></h1> |
|
| 76 | + <h1><?php echo esc_html(__('Reports', 'invoicing')); ?></h1> |
|
| 77 | 77 | <h2 class="nav-tab-wrapper wp-clearfix"> |
| 78 | - <a href="<?php echo add_query_arg( array( 'tab' => 'export', 'settings-updated' => false ), $current_page ); ?>" class="nav-tab <?php echo $active_tab == 'export' ? 'nav-tab-active' : ''; ?>"><?php _e( 'Export', 'invoicing' ); ?></a> |
|
| 79 | - <?php do_action( 'wpinv_reports_page_tabs' ); ;?> |
|
| 78 | + <a href="<?php echo add_query_arg(array('tab' => 'export', 'settings-updated' => false), $current_page); ?>" class="nav-tab <?php echo $active_tab == 'export' ? 'nav-tab-active' : ''; ?>"><?php _e('Export', 'invoicing'); ?></a> |
|
| 79 | + <?php do_action('wpinv_reports_page_tabs'); ;?> |
|
| 80 | 80 | </h2> |
| 81 | 81 | <div class="wpi-reports-content wpi-reports-<?php echo $active_tab; ?>"> |
| 82 | 82 | <?php |
| 83 | - do_action( 'wpinv_reports_page_top' ); |
|
| 84 | - do_action( 'wpinv_reports_tab_' . $active_tab ); |
|
| 85 | - do_action( 'wpinv_reports_page_bottom' ); |
|
| 83 | + do_action('wpinv_reports_page_top'); |
|
| 84 | + do_action('wpinv_reports_tab_' . $active_tab); |
|
| 85 | + do_action('wpinv_reports_page_bottom'); |
|
| 86 | 86 | ?> |
| 87 | 87 | </div> |
| 88 | 88 | <?php |
@@ -90,97 +90,97 @@ discard block |
||
| 90 | 90 | |
| 91 | 91 | public function export() { |
| 92 | 92 | $statuses = wpinv_get_invoice_statuses(); |
| 93 | - $statuses = array_merge( array( 'any' => __( 'All Statuses', 'invoicing' ) ), $statuses ); |
|
| 93 | + $statuses = array_merge(array('any' => __('All Statuses', 'invoicing')), $statuses); |
|
| 94 | 94 | ?> |
| 95 | 95 | <div class="metabox-holder"> |
| 96 | 96 | <div id="post-body"> |
| 97 | 97 | <div id="post-body-content"> |
| 98 | - <?php do_action( 'wpinv_reports_tab_export_content_top' ); ?> |
|
| 98 | + <?php do_action('wpinv_reports_tab_export_content_top'); ?> |
|
| 99 | 99 | |
| 100 | 100 | <div class="postbox wpi-export-invoices"> |
| 101 | - <h2 class="hndle ui-sortabled-handle"><span><?php _e( 'Invoices','invoicing' ); ?></span></h2> |
|
| 101 | + <h2 class="hndle ui-sortabled-handle"><span><?php _e('Invoices', 'invoicing'); ?></span></h2> |
|
| 102 | 102 | <div class="inside"> |
| 103 | - <p><?php _e( 'Download a CSV of all payment invoices.', 'invoicing' ); ?></p> |
|
| 103 | + <p><?php _e('Download a CSV of all payment invoices.', 'invoicing'); ?></p> |
|
| 104 | 104 | <form id="wpi-export-invoices" class="wpi-export-form" method="post"> |
| 105 | - <?php echo wpinv_html_date_field( array( |
|
| 105 | + <?php echo wpinv_html_date_field(array( |
|
| 106 | 106 | 'id' => 'wpi_export_from_date', |
| 107 | 107 | 'name' => 'from_date', |
| 108 | 108 | 'data' => array( |
| 109 | 109 | 'dateFormat' => 'yy-mm-dd' |
| 110 | 110 | ), |
| 111 | - 'placeholder' => __( 'From date', 'invoicing' ) ) |
|
| 111 | + 'placeholder' => __('From date', 'invoicing') ) |
|
| 112 | 112 | ); ?> |
| 113 | - <?php echo wpinv_html_date_field( array( |
|
| 113 | + <?php echo wpinv_html_date_field(array( |
|
| 114 | 114 | 'id' => 'wpi_export_to_date', |
| 115 | 115 | 'name' => 'to_date', |
| 116 | 116 | 'data' => array( |
| 117 | 117 | 'dateFormat' => 'yy-mm-dd' |
| 118 | 118 | ), |
| 119 | - 'placeholder' => __( 'To date', 'invoicing' ) ) |
|
| 119 | + 'placeholder' => __('To date', 'invoicing') ) |
|
| 120 | 120 | ); ?> |
| 121 | 121 | <span id="wpinv-status-wrap"> |
| 122 | - <?php echo wpinv_html_select( array( |
|
| 122 | + <?php echo wpinv_html_select(array( |
|
| 123 | 123 | 'options' => $statuses, |
| 124 | 124 | 'name' => 'status', |
| 125 | 125 | 'id' => 'wpi_export_status', |
| 126 | 126 | 'show_option_all' => false, |
| 127 | 127 | 'show_option_none' => false, |
| 128 | 128 | 'class' => '', |
| 129 | - ) ); ?> |
|
| 130 | - <?php wp_nonce_field( 'wpi_ajax_export', 'wpi_ajax_export' ); ?> |
|
| 129 | + )); ?> |
|
| 130 | + <?php wp_nonce_field('wpi_ajax_export', 'wpi_ajax_export'); ?> |
|
| 131 | 131 | </span> |
| 132 | 132 | <span id="wpinv-submit-wrap"> |
| 133 | 133 | <input type="hidden" value="invoices" name="export" /> |
| 134 | - <input type="submit" value="<?php _e( 'Generate CSV', 'invoicing' ); ?>" class="button-primary" /> |
|
| 134 | + <input type="submit" value="<?php _e('Generate CSV', 'invoicing'); ?>" class="button-primary" /> |
|
| 135 | 135 | </span> |
| 136 | 136 | </form> |
| 137 | 137 | </div> |
| 138 | 138 | </div> |
| 139 | 139 | |
| 140 | - <?php do_action( 'wpinv_reports_tab_export_content_bottom' ); ?> |
|
| 140 | + <?php do_action('wpinv_reports_tab_export_content_bottom'); ?> |
|
| 141 | 141 | </div> |
| 142 | 142 | </div> |
| 143 | 143 | </div> |
| 144 | 144 | <?php |
| 145 | 145 | } |
| 146 | 146 | |
| 147 | - public function export_location( $relative = false ) { |
|
| 147 | + public function export_location($relative = false) { |
|
| 148 | 148 | $upload_dir = wp_upload_dir(); |
| 149 | - $export_location = $relative ? trailingslashit( $upload_dir['baseurl'] ) . 'cache' : trailingslashit( $upload_dir['basedir'] ) . 'cache'; |
|
| 150 | - $export_location = apply_filters( 'wpinv_export_location', $export_location, $relative ); |
|
| 149 | + $export_location = $relative ? trailingslashit($upload_dir['baseurl']) . 'cache' : trailingslashit($upload_dir['basedir']) . 'cache'; |
|
| 150 | + $export_location = apply_filters('wpinv_export_location', $export_location, $relative); |
|
| 151 | 151 | |
| 152 | - return trailingslashit( $export_location ); |
|
| 152 | + return trailingslashit($export_location); |
|
| 153 | 153 | } |
| 154 | 154 | |
| 155 | 155 | public function check_export_location() { |
| 156 | 156 | try { |
| 157 | - if ( empty( $this->wp_filesystem ) ) { |
|
| 158 | - return __( 'Filesystem ERROR: Could not access filesystem.', 'invoicing' ); |
|
| 157 | + if (empty($this->wp_filesystem)) { |
|
| 158 | + return __('Filesystem ERROR: Could not access filesystem.', 'invoicing'); |
|
| 159 | 159 | } |
| 160 | 160 | |
| 161 | - if ( is_wp_error( $this->wp_filesystem ) ) { |
|
| 162 | - return __( 'Filesystem ERROR: ' . $this->wp_filesystem->get_error_message(), 'invoicing' ); |
|
| 161 | + if (is_wp_error($this->wp_filesystem)) { |
|
| 162 | + return __('Filesystem ERROR: ' . $this->wp_filesystem->get_error_message(), 'invoicing'); |
|
| 163 | 163 | } |
| 164 | 164 | |
| 165 | - $is_dir = $this->wp_filesystem->is_dir( $this->export_dir ); |
|
| 166 | - $is_writeable = $is_dir && is_writeable( $this->export_dir ); |
|
| 165 | + $is_dir = $this->wp_filesystem->is_dir($this->export_dir); |
|
| 166 | + $is_writeable = $is_dir && is_writeable($this->export_dir); |
|
| 167 | 167 | |
| 168 | - if ( $is_dir && $is_writeable ) { |
|
| 168 | + if ($is_dir && $is_writeable) { |
|
| 169 | 169 | return true; |
| 170 | - } else if ( $is_dir && !$is_writeable ) { |
|
| 171 | - if ( !$this->wp_filesystem->chmod( $this->export_dir, FS_CHMOD_DIR ) ) { |
|
| 172 | - return wp_sprintf( __( 'Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing' ), $this->export_dir ); |
|
| 170 | + } else if ($is_dir && !$is_writeable) { |
|
| 171 | + if (!$this->wp_filesystem->chmod($this->export_dir, FS_CHMOD_DIR)) { |
|
| 172 | + return wp_sprintf(__('Filesystem ERROR: Export location %s is not writable, check your file permissions.', 'invoicing'), $this->export_dir); |
|
| 173 | 173 | } |
| 174 | 174 | |
| 175 | 175 | return true; |
| 176 | 176 | } else { |
| 177 | - if ( !$this->wp_filesystem->mkdir( $this->export_dir, FS_CHMOD_DIR ) ) { |
|
| 178 | - return wp_sprintf( __( 'Filesystem ERROR: Could not create directory %s. This is usually due to inconsistent file permissions.', 'invoicing' ), $this->export_dir ); |
|
| 177 | + if (!$this->wp_filesystem->mkdir($this->export_dir, FS_CHMOD_DIR)) { |
|
| 178 | + return wp_sprintf(__('Filesystem ERROR: Could not create directory %s. This is usually due to inconsistent file permissions.', 'invoicing'), $this->export_dir); |
|
| 179 | 179 | } |
| 180 | 180 | |
| 181 | 181 | return true; |
| 182 | 182 | } |
| 183 | - } catch ( Exception $e ) { |
|
| 183 | + } catch (Exception $e) { |
|
| 184 | 184 | return $e->getMessage(); |
| 185 | 185 | } |
| 186 | 186 | } |
@@ -188,130 +188,130 @@ discard block |
||
| 188 | 188 | public function ajax_export() { |
| 189 | 189 | $response = array(); |
| 190 | 190 | $response['success'] = false; |
| 191 | - $response['msg'] = __( 'Invalid export request found.', 'invoicing' ); |
|
| 191 | + $response['msg'] = __('Invalid export request found.', 'invoicing'); |
|
| 192 | 192 | |
| 193 | - if ( empty( $_POST['data'] ) || !current_user_can( 'manage_options' ) ) { |
|
| 194 | - wp_send_json( $response ); |
|
| 193 | + if (empty($_POST['data']) || !current_user_can('manage_options')) { |
|
| 194 | + wp_send_json($response); |
|
| 195 | 195 | } |
| 196 | 196 | |
| 197 | - parse_str( $_POST['data'], $data ); |
|
| 197 | + parse_str($_POST['data'], $data); |
|
| 198 | 198 | |
| 199 | - $data['step'] = !empty( $_POST['step'] ) ? absint( $_POST['step'] ) : 1; |
|
| 199 | + $data['step'] = !empty($_POST['step']) ? absint($_POST['step']) : 1; |
|
| 200 | 200 | |
| 201 | 201 | $_REQUEST = (array)$data; |
| 202 | - if ( !( !empty( $_REQUEST['wpi_ajax_export'] ) && wp_verify_nonce( $_REQUEST['wpi_ajax_export'], 'wpi_ajax_export' ) ) ) { |
|
| 203 | - $response['msg'] = __( 'Security check failed.', 'invoicing' ); |
|
| 204 | - wp_send_json( $response ); |
|
| 202 | + if (!(!empty($_REQUEST['wpi_ajax_export']) && wp_verify_nonce($_REQUEST['wpi_ajax_export'], 'wpi_ajax_export'))) { |
|
| 203 | + $response['msg'] = __('Security check failed.', 'invoicing'); |
|
| 204 | + wp_send_json($response); |
|
| 205 | 205 | } |
| 206 | 206 | |
| 207 | - if ( ( $error = $this->check_export_location( true ) ) !== true ) { |
|
| 208 | - $response['msg'] = __( 'Filesystem ERROR: ' . $error, 'invoicing' ); |
|
| 209 | - wp_send_json( $response ); |
|
| 207 | + if (($error = $this->check_export_location(true)) !== true) { |
|
| 208 | + $response['msg'] = __('Filesystem ERROR: ' . $error, 'invoicing'); |
|
| 209 | + wp_send_json($response); |
|
| 210 | 210 | } |
| 211 | 211 | |
| 212 | - $this->set_export_params( $_REQUEST ); |
|
| 212 | + $this->set_export_params($_REQUEST); |
|
| 213 | 213 | |
| 214 | 214 | $return = $this->process_export_step(); |
| 215 | 215 | $done = $this->get_export_status(); |
| 216 | 216 | |
| 217 | - if ( $return ) { |
|
| 217 | + if ($return) { |
|
| 218 | 218 | $this->step += 1; |
| 219 | 219 | |
| 220 | 220 | $response['success'] = true; |
| 221 | 221 | $response['msg'] = ''; |
| 222 | 222 | |
| 223 | - if ( $done >= 100 ) { |
|
| 223 | + if ($done >= 100) { |
|
| 224 | 224 | $this->step = 'done'; |
| 225 | - $new_filename = 'wpi-' . $this->export . '-' . date( 'y-m-d-H-i' ) . '.' . $this->filetype; |
|
| 225 | + $new_filename = 'wpi-' . $this->export . '-' . date('y-m-d-H-i') . '.' . $this->filetype; |
|
| 226 | 226 | $new_file = $this->export_dir . $new_filename; |
| 227 | 227 | |
| 228 | - if ( file_exists( $this->file ) ) { |
|
| 229 | - $this->wp_filesystem->move( $this->file, $new_file, true ); |
|
| 228 | + if (file_exists($this->file)) { |
|
| 229 | + $this->wp_filesystem->move($this->file, $new_file, true); |
|
| 230 | 230 | } |
| 231 | 231 | |
| 232 | - if ( file_exists( $new_file ) ) { |
|
| 233 | - $response['data']['file'] = array( 'u' => $this->export_url . $new_filename, 's' => size_format( filesize( $new_file ), 2 ) ); |
|
| 232 | + if (file_exists($new_file)) { |
|
| 233 | + $response['data']['file'] = array('u' => $this->export_url . $new_filename, 's' => size_format(filesize($new_file), 2)); |
|
| 234 | 234 | } |
| 235 | 235 | } |
| 236 | 236 | |
| 237 | 237 | $response['data']['step'] = $this->step; |
| 238 | 238 | $response['data']['done'] = $done; |
| 239 | 239 | } else { |
| 240 | - $response['msg'] = __( 'No data found for export.', 'invoicing' ); |
|
| 240 | + $response['msg'] = __('No data found for export.', 'invoicing'); |
|
| 241 | 241 | } |
| 242 | 242 | |
| 243 | - wp_send_json( $response ); |
|
| 243 | + wp_send_json($response); |
|
| 244 | 244 | } |
| 245 | 245 | |
| 246 | - public function set_export_params( $request ) { |
|
| 246 | + public function set_export_params($request) { |
|
| 247 | 247 | $this->empty = false; |
| 248 | - $this->step = !empty( $request['step'] ) ? absint( $request['step'] ) : 1; |
|
| 249 | - $this->export = !empty( $request['export'] ) ? $request['export'] : $this->export; |
|
| 248 | + $this->step = !empty($request['step']) ? absint($request['step']) : 1; |
|
| 249 | + $this->export = !empty($request['export']) ? $request['export'] : $this->export; |
|
| 250 | 250 | $this->filename = 'wpi-' . $this->export . '-' . $request['wpi_ajax_export'] . '.' . $this->filetype; |
| 251 | 251 | $this->file = $this->export_dir . $this->filename; |
| 252 | 252 | |
| 253 | - do_action( 'wpinv_export_set_params_' . $this->export, $request ); |
|
| 253 | + do_action('wpinv_export_set_params_' . $this->export, $request); |
|
| 254 | 254 | } |
| 255 | 255 | |
| 256 | 256 | public function get_columns() { |
| 257 | 257 | $columns = array( |
| 258 | - 'id' => __( 'ID', 'invoicing' ), |
|
| 259 | - 'date' => __( 'Date', 'invoicing' ) |
|
| 258 | + 'id' => __('ID', 'invoicing'), |
|
| 259 | + 'date' => __('Date', 'invoicing') |
|
| 260 | 260 | ); |
| 261 | 261 | |
| 262 | - return apply_filters( 'wpinv_export_get_columns_' . $this->export, $columns ); |
|
| 262 | + return apply_filters('wpinv_export_get_columns_' . $this->export, $columns); |
|
| 263 | 263 | } |
| 264 | 264 | |
| 265 | 265 | protected function get_export_file() { |
| 266 | 266 | $file = ''; |
| 267 | 267 | |
| 268 | - if ( $this->wp_filesystem->exists( $this->file ) ) { |
|
| 269 | - $file = $this->wp_filesystem->get_contents( $this->file ); |
|
| 268 | + if ($this->wp_filesystem->exists($this->file)) { |
|
| 269 | + $file = $this->wp_filesystem->get_contents($this->file); |
|
| 270 | 270 | } else { |
| 271 | - $this->wp_filesystem->put_contents( $this->file, '' ); |
|
| 271 | + $this->wp_filesystem->put_contents($this->file, ''); |
|
| 272 | 272 | } |
| 273 | 273 | |
| 274 | 274 | return $file; |
| 275 | 275 | } |
| 276 | 276 | |
| 277 | - protected function attach_export_data( $data = '' ) { |
|
| 278 | - $filedata = $this->get_export_file(); |
|
| 279 | - $filedata .= $data; |
|
| 277 | + protected function attach_export_data($data = '') { |
|
| 278 | + $filedata = $this->get_export_file(); |
|
| 279 | + $filedata .= $data; |
|
| 280 | 280 | |
| 281 | - $this->wp_filesystem->put_contents( $this->file, $filedata ); |
|
| 281 | + $this->wp_filesystem->put_contents($this->file, $filedata); |
|
| 282 | 282 | |
| 283 | - $rows = file( $this->file, FILE_SKIP_EMPTY_LINES ); |
|
| 283 | + $rows = file($this->file, FILE_SKIP_EMPTY_LINES); |
|
| 284 | 284 | $columns = $this->get_columns(); |
| 285 | - $columns = empty( $columns ) ? 0 : 1; |
|
| 285 | + $columns = empty($columns) ? 0 : 1; |
|
| 286 | 286 | |
| 287 | - $this->empty = count( $rows ) == $columns ? true : false; |
|
| 287 | + $this->empty = count($rows) == $columns ? true : false; |
|
| 288 | 288 | } |
| 289 | 289 | |
| 290 | 290 | public function print_columns() { |
| 291 | 291 | $column_data = ''; |
| 292 | 292 | $columns = $this->get_columns(); |
| 293 | 293 | $i = 1; |
| 294 | - foreach( $columns as $key => $column ) { |
|
| 295 | - $column_data .= '"' . addslashes( $column ) . '"'; |
|
| 296 | - $column_data .= $i == count( $columns ) ? '' : ','; |
|
| 294 | + foreach ($columns as $key => $column) { |
|
| 295 | + $column_data .= '"' . addslashes($column) . '"'; |
|
| 296 | + $column_data .= $i == count($columns) ? '' : ','; |
|
| 297 | 297 | $i++; |
| 298 | 298 | } |
| 299 | 299 | $column_data .= "\r\n"; |
| 300 | 300 | |
| 301 | - $this->attach_export_data( $column_data ); |
|
| 301 | + $this->attach_export_data($column_data); |
|
| 302 | 302 | |
| 303 | 303 | return $column_data; |
| 304 | 304 | } |
| 305 | 305 | |
| 306 | 306 | public function process_export_step() { |
| 307 | - if ( $this->step < 2 ) { |
|
| 308 | - @unlink( $this->file ); |
|
| 307 | + if ($this->step < 2) { |
|
| 308 | + @unlink($this->file); |
|
| 309 | 309 | $this->print_columns(); |
| 310 | 310 | } |
| 311 | 311 | |
| 312 | 312 | $return = $this->print_rows(); |
| 313 | 313 | |
| 314 | - if ( $return ) { |
|
| 314 | + if ($return) { |
|
| 315 | 315 | return true; |
| 316 | 316 | } else { |
| 317 | 317 | return false; |
@@ -320,23 +320,23 @@ discard block |
||
| 320 | 320 | |
| 321 | 321 | public function get_export_status() { |
| 322 | 322 | $status = 100; |
| 323 | - return apply_filters( 'wpinv_get_export_status_' . $this->export, $status ); |
|
| 323 | + return apply_filters('wpinv_get_export_status_' . $this->export, $status); |
|
| 324 | 324 | } |
| 325 | 325 | |
| 326 | 326 | public function get_export_data() { |
| 327 | 327 | $data = array( |
| 328 | 328 | 0 => array( |
| 329 | 329 | 'id' => '', |
| 330 | - 'data' => date( 'F j, Y' ) |
|
| 330 | + 'data' => date('F j, Y') |
|
| 331 | 331 | ), |
| 332 | 332 | 1 => array( |
| 333 | 333 | 'id' => '', |
| 334 | - 'data' => date( 'F j, Y' ) |
|
| 334 | + 'data' => date('F j, Y') |
|
| 335 | 335 | ) |
| 336 | 336 | ); |
| 337 | 337 | |
| 338 | - $data = apply_filters( 'wpinv_export_get_data', $data ); |
|
| 339 | - $data = apply_filters( 'wpinv_export_get_data_' . $this->export, $data ); |
|
| 338 | + $data = apply_filters('wpinv_export_get_data', $data); |
|
| 339 | + $data = apply_filters('wpinv_export_get_data_' . $this->export, $data); |
|
| 340 | 340 | |
| 341 | 341 | return $data; |
| 342 | 342 | } |
@@ -346,20 +346,20 @@ discard block |
||
| 346 | 346 | $data = $this->get_export_data(); |
| 347 | 347 | $columns = $this->get_columns(); |
| 348 | 348 | |
| 349 | - if ( $data ) { |
|
| 350 | - foreach ( $data as $row ) { |
|
| 349 | + if ($data) { |
|
| 350 | + foreach ($data as $row) { |
|
| 351 | 351 | $i = 1; |
| 352 | - foreach ( $row as $key => $column ) { |
|
| 353 | - if ( array_key_exists( $key, $columns ) ) { |
|
| 354 | - $row_data .= '"' . addslashes( preg_replace( "/\"/","'", $column ) ) . '"'; |
|
| 355 | - $row_data .= $i == count( $columns ) ? '' : ','; |
|
| 352 | + foreach ($row as $key => $column) { |
|
| 353 | + if (array_key_exists($key, $columns)) { |
|
| 354 | + $row_data .= '"' . addslashes(preg_replace("/\"/", "'", $column)) . '"'; |
|
| 355 | + $row_data .= $i == count($columns) ? '' : ','; |
|
| 356 | 356 | $i++; |
| 357 | 357 | } |
| 358 | 358 | } |
| 359 | 359 | $row_data .= "\r\n"; |
| 360 | 360 | } |
| 361 | 361 | |
| 362 | - $this->attach_export_data( $row_data ); |
|
| 362 | + $this->attach_export_data($row_data); |
|
| 363 | 363 | |
| 364 | 364 | return $row_data; |
| 365 | 365 | } |
@@ -368,46 +368,46 @@ discard block |
||
| 368 | 368 | } |
| 369 | 369 | |
| 370 | 370 | // Export Invoices. |
| 371 | - public function set_invoices_export( $request ) { |
|
| 372 | - $this->from_date = isset( $request['from_date'] ) ? sanitize_text_field( $request['from_date'] ) : ''; |
|
| 373 | - $this->to_date = isset( $request['to_date'] ) ? sanitize_text_field( $request['to_date'] ) : ''; |
|
| 374 | - $this->status = isset( $request['status'] ) ? sanitize_text_field( $request['status'] ) : 'publish'; |
|
| 371 | + public function set_invoices_export($request) { |
|
| 372 | + $this->from_date = isset($request['from_date']) ? sanitize_text_field($request['from_date']) : ''; |
|
| 373 | + $this->to_date = isset($request['to_date']) ? sanitize_text_field($request['to_date']) : ''; |
|
| 374 | + $this->status = isset($request['status']) ? sanitize_text_field($request['status']) : 'publish'; |
|
| 375 | 375 | } |
| 376 | 376 | |
| 377 | - public function get_invoices_columns( $columns = array() ) { |
|
| 377 | + public function get_invoices_columns($columns = array()) { |
|
| 378 | 378 | $columns = array( |
| 379 | - 'id' => __( 'ID', 'invoicing' ), |
|
| 380 | - 'number' => __( 'Number', 'invoicing' ), |
|
| 381 | - 'date' => __( 'Date', 'invoicing' ), |
|
| 382 | - 'amount' => __( 'Amount', 'invoicing' ), |
|
| 383 | - 'status_nicename' => __( 'Status Nicename', 'invoicing' ), |
|
| 384 | - 'status' => __( 'Status', 'invoicing' ), |
|
| 385 | - 'tax' => __( 'Tax', 'invoicing' ), |
|
| 386 | - 'discount' => __( 'Discount', 'invoicing' ), |
|
| 387 | - 'user_id' => __( 'User ID', 'invoicing' ), |
|
| 388 | - 'email' => __( 'Email', 'invoicing' ), |
|
| 389 | - 'first_name' => __( 'First Name', 'invoicing' ), |
|
| 390 | - 'last_name' => __( 'Last Name', 'invoicing' ), |
|
| 391 | - 'address' => __( 'Address', 'invoicing' ), |
|
| 392 | - 'city' => __( 'City', 'invoicing' ), |
|
| 393 | - 'state' => __( 'State', 'invoicing' ), |
|
| 394 | - 'country' => __( 'Country', 'invoicing' ), |
|
| 395 | - 'zip' => __( 'Zipcode', 'invoicing' ), |
|
| 396 | - 'phone' => __( 'Phone', 'invoicing' ), |
|
| 397 | - 'company' => __( 'Company', 'invoicing' ), |
|
| 398 | - 'vat_number' => __( 'Vat Number', 'invoicing' ), |
|
| 399 | - 'ip' => __( 'IP', 'invoicing' ), |
|
| 400 | - 'gateway' => __( 'Gateway', 'invoicing' ), |
|
| 401 | - 'gateway_nicename' => __( 'Gateway Nicename', 'invoicing' ), |
|
| 402 | - 'transaction_id'=> __( 'Transaction ID', 'invoicing' ), |
|
| 403 | - 'currency' => __( 'Currency', 'invoicing' ), |
|
| 404 | - 'due_date' => __( 'Due Date', 'invoicing' ), |
|
| 379 | + 'id' => __('ID', 'invoicing'), |
|
| 380 | + 'number' => __('Number', 'invoicing'), |
|
| 381 | + 'date' => __('Date', 'invoicing'), |
|
| 382 | + 'amount' => __('Amount', 'invoicing'), |
|
| 383 | + 'status_nicename' => __('Status Nicename', 'invoicing'), |
|
| 384 | + 'status' => __('Status', 'invoicing'), |
|
| 385 | + 'tax' => __('Tax', 'invoicing'), |
|
| 386 | + 'discount' => __('Discount', 'invoicing'), |
|
| 387 | + 'user_id' => __('User ID', 'invoicing'), |
|
| 388 | + 'email' => __('Email', 'invoicing'), |
|
| 389 | + 'first_name' => __('First Name', 'invoicing'), |
|
| 390 | + 'last_name' => __('Last Name', 'invoicing'), |
|
| 391 | + 'address' => __('Address', 'invoicing'), |
|
| 392 | + 'city' => __('City', 'invoicing'), |
|
| 393 | + 'state' => __('State', 'invoicing'), |
|
| 394 | + 'country' => __('Country', 'invoicing'), |
|
| 395 | + 'zip' => __('Zipcode', 'invoicing'), |
|
| 396 | + 'phone' => __('Phone', 'invoicing'), |
|
| 397 | + 'company' => __('Company', 'invoicing'), |
|
| 398 | + 'vat_number' => __('Vat Number', 'invoicing'), |
|
| 399 | + 'ip' => __('IP', 'invoicing'), |
|
| 400 | + 'gateway' => __('Gateway', 'invoicing'), |
|
| 401 | + 'gateway_nicename' => __('Gateway Nicename', 'invoicing'), |
|
| 402 | + 'transaction_id'=> __('Transaction ID', 'invoicing'), |
|
| 403 | + 'currency' => __('Currency', 'invoicing'), |
|
| 404 | + 'due_date' => __('Due Date', 'invoicing'), |
|
| 405 | 405 | ); |
| 406 | 406 | |
| 407 | 407 | return $columns; |
| 408 | 408 | } |
| 409 | 409 | |
| 410 | - public function get_invoices_data( $response = array() ) { |
|
| 410 | + public function get_invoices_data($response = array()) { |
|
| 411 | 411 | $args = array( |
| 412 | 412 | 'limit' => $this->per_page, |
| 413 | 413 | 'page' => $this->step, |
@@ -415,35 +415,35 @@ discard block |
||
| 415 | 415 | 'orderby' => 'date', |
| 416 | 416 | ); |
| 417 | 417 | |
| 418 | - if ( $this->status != 'any' ) { |
|
| 418 | + if ($this->status != 'any') { |
|
| 419 | 419 | $args['status'] = $this->status; |
| 420 | 420 | } |
| 421 | 421 | |
| 422 | - if ( !empty( $this->from_date ) || !empty( $this->to_date ) ) { |
|
| 422 | + if (!empty($this->from_date) || !empty($this->to_date)) { |
|
| 423 | 423 | $args['date_query'] = array( |
| 424 | 424 | array( |
| 425 | - 'after' => date( 'Y-n-d 00:00:00', strtotime( $this->from_date ) ), |
|
| 426 | - 'before' => date( 'Y-n-d 23:59:59', strtotime( $this->to_date ) ), |
|
| 425 | + 'after' => date('Y-n-d 00:00:00', strtotime($this->from_date)), |
|
| 426 | + 'before' => date('Y-n-d 23:59:59', strtotime($this->to_date)), |
|
| 427 | 427 | 'inclusive' => true |
| 428 | 428 | ) |
| 429 | 429 | ); |
| 430 | 430 | } |
| 431 | 431 | |
| 432 | - $invoices = wpinv_get_invoices( $args ); |
|
| 432 | + $invoices = wpinv_get_invoices($args); |
|
| 433 | 433 | |
| 434 | 434 | $data = array(); |
| 435 | 435 | |
| 436 | - if ( !empty( $invoices ) ) { |
|
| 437 | - foreach ( $invoices as $invoice ) { |
|
| 436 | + if (!empty($invoices)) { |
|
| 437 | + foreach ($invoices as $invoice) { |
|
| 438 | 438 | $row = array( |
| 439 | 439 | 'id' => $invoice->ID, |
| 440 | 440 | 'number' => $invoice->get_number(), |
| 441 | - 'date' => $invoice->get_invoice_date( false ), |
|
| 442 | - 'amount' => wpinv_round_amount( $invoice->get_total() ), |
|
| 443 | - 'status_nicename' => $invoice->get_status( true ), |
|
| 441 | + 'date' => $invoice->get_invoice_date(false), |
|
| 442 | + 'amount' => wpinv_round_amount($invoice->get_total()), |
|
| 443 | + 'status_nicename' => $invoice->get_status(true), |
|
| 444 | 444 | 'status' => $invoice->get_status(), |
| 445 | - 'tax' => $invoice->get_tax() > 0 ? wpinv_round_amount( $invoice->get_tax() ) : '', |
|
| 446 | - 'discount' => $invoice->get_discount() > 0 ? wpinv_round_amount( $invoice->get_discount() ) : '', |
|
| 445 | + 'tax' => $invoice->get_tax() > 0 ? wpinv_round_amount($invoice->get_tax()) : '', |
|
| 446 | + 'discount' => $invoice->get_discount() > 0 ? wpinv_round_amount($invoice->get_discount()) : '', |
|
| 447 | 447 | 'user_id' => $invoice->get_user_id(), |
| 448 | 448 | 'email' => $invoice->get_email(), |
| 449 | 449 | 'first_name' => $invoice->get_first_name(), |
@@ -464,7 +464,7 @@ discard block |
||
| 464 | 464 | 'due_date' => $invoice->needs_payment() ? $invoice->get_due_date() : '', |
| 465 | 465 | ); |
| 466 | 466 | |
| 467 | - $data[] = apply_filters( 'wpinv_export_invoice_row', $row, $invoice ); |
|
| 467 | + $data[] = apply_filters('wpinv_export_invoice_row', $row, $invoice); |
|
| 468 | 468 | } |
| 469 | 469 | |
| 470 | 470 | return $data; |
@@ -480,29 +480,29 @@ discard block |
||
| 480 | 480 | 'return' => 'ids', |
| 481 | 481 | ); |
| 482 | 482 | |
| 483 | - if ( $this->status != 'any' ) { |
|
| 483 | + if ($this->status != 'any') { |
|
| 484 | 484 | $args['status'] = $this->status; |
| 485 | 485 | } |
| 486 | 486 | |
| 487 | - if ( !empty( $this->from_date ) || !empty( $this->to_date ) ) { |
|
| 487 | + if (!empty($this->from_date) || !empty($this->to_date)) { |
|
| 488 | 488 | $args['date_query'] = array( |
| 489 | 489 | array( |
| 490 | - 'after' => date( 'Y-n-d 00:00:00', strtotime( $this->from_date ) ), |
|
| 491 | - 'before' => date( 'Y-n-d 23:59:59', strtotime( $this->to_date ) ), |
|
| 490 | + 'after' => date('Y-n-d 00:00:00', strtotime($this->from_date)), |
|
| 491 | + 'before' => date('Y-n-d 23:59:59', strtotime($this->to_date)), |
|
| 492 | 492 | 'inclusive' => true |
| 493 | 493 | ) |
| 494 | 494 | ); |
| 495 | 495 | } |
| 496 | 496 | |
| 497 | - $invoices = wpinv_get_invoices( $args ); |
|
| 498 | - $total = !empty( $invoices ) ? count( $invoices ) : 0; |
|
| 497 | + $invoices = wpinv_get_invoices($args); |
|
| 498 | + $total = !empty($invoices) ? count($invoices) : 0; |
|
| 499 | 499 | $status = 100; |
| 500 | 500 | |
| 501 | - if ( $total > 0 ) { |
|
| 502 | - $status = ( ( $this->per_page * $this->step ) / $total ) * 100; |
|
| 501 | + if ($total > 0) { |
|
| 502 | + $status = (($this->per_page * $this->step) / $total) * 100; |
|
| 503 | 503 | } |
| 504 | 504 | |
| 505 | - if ( $status > 100 ) { |
|
| 505 | + if ($status > 100) { |
|
| 506 | 506 | $status = 100; |
| 507 | 507 | } |
| 508 | 508 | |
@@ -437,7 +437,7 @@ |
||
| 437 | 437 | } |
| 438 | 438 | |
| 439 | 439 | function wpinv_get_php_arg_separator_output() { |
| 440 | - return ini_get( 'arg_separator.output' ); |
|
| 440 | + return ini_get( 'arg_separator.output' ); |
|
| 441 | 441 | } |
| 442 | 442 | |
| 443 | 443 | function wpinv_rgb_from_hex( $color ) { |
@@ -31,6 +31,9 @@ discard block |
||
| 31 | 31 | return apply_filters( 'wpinv_get_ip', $ip ); |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | +/** |
|
| 35 | + * @return string |
|
| 36 | + */ |
|
| 34 | 37 | function wpinv_get_user_agent() { |
| 35 | 38 | if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) { |
| 36 | 39 | $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] ); |
@@ -41,6 +44,9 @@ discard block |
||
| 41 | 44 | return apply_filters( 'wpinv_get_user_agent', $user_agent ); |
| 42 | 45 | } |
| 43 | 46 | |
| 47 | +/** |
|
| 48 | + * @param integer $decimals |
|
| 49 | + */ |
|
| 44 | 50 | function wpinv_sanitize_amount( $amount, $decimals = NULL ) { |
| 45 | 51 | $is_negative = false; |
| 46 | 52 | $thousands_sep = wpinv_thousands_separator(); |
@@ -79,6 +85,9 @@ discard block |
||
| 79 | 85 | } |
| 80 | 86 | add_filter( 'wpinv_sanitize_amount_decimals', 'wpinv_currency_decimal_filter', 10, 1 ); |
| 81 | 87 | |
| 88 | +/** |
|
| 89 | + * @param integer $decimals |
|
| 90 | + */ |
|
| 82 | 91 | function wpinv_round_amount( $amount, $decimals = NULL ) { |
| 83 | 92 | if ( $decimals === NULL ) { |
| 84 | 93 | $decimals = wpinv_decimals(); |
@@ -117,6 +126,9 @@ discard block |
||
| 117 | 126 | return $status; |
| 118 | 127 | } |
| 119 | 128 | |
| 129 | +/** |
|
| 130 | + * @return string |
|
| 131 | + */ |
|
| 120 | 132 | function wpinv_get_currency() { |
| 121 | 133 | $currency = wpinv_get_option( 'currency', 'USD' ); |
| 122 | 134 | |
@@ -187,6 +199,9 @@ discard block |
||
| 187 | 199 | return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency ); |
| 188 | 200 | } |
| 189 | 201 | |
| 202 | +/** |
|
| 203 | + * @return string |
|
| 204 | + */ |
|
| 190 | 205 | function wpinv_currency_position() { |
| 191 | 206 | $position = wpinv_get_option( 'currency_position', 'left' ); |
| 192 | 207 | |
@@ -315,6 +330,9 @@ discard block |
||
| 315 | 330 | return $price; |
| 316 | 331 | } |
| 317 | 332 | |
| 333 | +/** |
|
| 334 | + * @return string |
|
| 335 | + */ |
|
| 318 | 336 | function wpinv_format_amount( $amount, $decimals = NULL, $calculate = false ) { |
| 319 | 337 | $thousands_sep = wpinv_thousands_separator(); |
| 320 | 338 | $decimal_sep = wpinv_decimal_separator(); |
@@ -365,6 +383,9 @@ discard block |
||
| 365 | 383 | return apply_filters( 'wpinv_sanitize_key', $key, $raw_key ); |
| 366 | 384 | } |
| 367 | 385 | |
| 386 | +/** |
|
| 387 | + * @return string |
|
| 388 | + */ |
|
| 368 | 389 | function wpinv_get_file_extension( $str ) { |
| 369 | 390 | $parts = explode( '.', $str ); |
| 370 | 391 | return end( $parts ); |
@@ -569,6 +590,9 @@ discard block |
||
| 569 | 590 | return strlen( $str ); |
| 570 | 591 | } |
| 571 | 592 | |
| 593 | +/** |
|
| 594 | + * @param string $str |
|
| 595 | + */ |
|
| 572 | 596 | function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) { |
| 573 | 597 | if ( function_exists( 'mb_strtolower' ) ) { |
| 574 | 598 | return mb_strtolower( $str, $encoding ); |
@@ -577,6 +601,9 @@ discard block |
||
| 577 | 601 | return strtolower( $str ); |
| 578 | 602 | } |
| 579 | 603 | |
| 604 | +/** |
|
| 605 | + * @param string $str |
|
| 606 | + */ |
|
| 580 | 607 | function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) { |
| 581 | 608 | if ( function_exists( 'mb_strtoupper' ) ) { |
| 582 | 609 | return mb_strtoupper( $str, $encoding ); |
@@ -654,7 +681,7 @@ discard block |
||
| 654 | 681 | * |
| 655 | 682 | * @param string $str The string being decoded. |
| 656 | 683 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
| 657 | - * @return string The width of string. |
|
| 684 | + * @return integer The width of string. |
|
| 658 | 685 | */ |
| 659 | 686 | function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) { |
| 660 | 687 | if ( function_exists( 'mb_strwidth' ) ) { |
@@ -7,89 +7,89 @@ discard block |
||
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | 9 | // MUST have WordPress. |
| 10 | -if ( !defined( 'WPINC' ) ) { |
|
| 11 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) ); |
|
| 10 | +if (!defined('WPINC')) { |
|
| 11 | + exit('Do NOT access this file directly: ' . basename(__FILE__)); |
|
| 12 | 12 | } |
| 13 | 13 | |
| 14 | 14 | function wpinv_item_quantities_enabled() { |
| 15 | - $ret = wpinv_get_option( 'item_quantities', true ); |
|
| 15 | + $ret = wpinv_get_option('item_quantities', true); |
|
| 16 | 16 | |
| 17 | - return (bool) apply_filters( 'wpinv_item_quantities_enabled', $ret ); |
|
| 17 | + return (bool)apply_filters('wpinv_item_quantities_enabled', $ret); |
|
| 18 | 18 | } |
| 19 | 19 | |
| 20 | 20 | function wpinv_get_ip() { |
| 21 | 21 | $ip = '127.0.0.1'; |
| 22 | 22 | |
| 23 | - if ( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) { |
|
| 24 | - $ip = sanitize_text_field( $_SERVER['HTTP_CLIENT_IP'] ); |
|
| 25 | - } elseif ( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { |
|
| 26 | - $ip = sanitize_text_field( $_SERVER['HTTP_X_FORWARDED_FOR'] ); |
|
| 27 | - } elseif( !empty( $_SERVER['REMOTE_ADDR'] ) ) { |
|
| 28 | - $ip = sanitize_text_field( $_SERVER['REMOTE_ADDR'] ); |
|
| 23 | + if (!empty($_SERVER['HTTP_CLIENT_IP'])) { |
|
| 24 | + $ip = sanitize_text_field($_SERVER['HTTP_CLIENT_IP']); |
|
| 25 | + } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { |
|
| 26 | + $ip = sanitize_text_field($_SERVER['HTTP_X_FORWARDED_FOR']); |
|
| 27 | + } elseif (!empty($_SERVER['REMOTE_ADDR'])) { |
|
| 28 | + $ip = sanitize_text_field($_SERVER['REMOTE_ADDR']); |
|
| 29 | 29 | } |
| 30 | 30 | |
| 31 | - return apply_filters( 'wpinv_get_ip', $ip ); |
|
| 31 | + return apply_filters('wpinv_get_ip', $ip); |
|
| 32 | 32 | } |
| 33 | 33 | |
| 34 | 34 | function wpinv_get_user_agent() { |
| 35 | - if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) { |
|
| 36 | - $user_agent = sanitize_text_field( $_SERVER['HTTP_USER_AGENT'] ); |
|
| 35 | + if (!empty($_SERVER['HTTP_USER_AGENT'])) { |
|
| 36 | + $user_agent = sanitize_text_field($_SERVER['HTTP_USER_AGENT']); |
|
| 37 | 37 | } else { |
| 38 | 38 | $user_agent = ''; |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | - return apply_filters( 'wpinv_get_user_agent', $user_agent ); |
|
| 41 | + return apply_filters('wpinv_get_user_agent', $user_agent); |
|
| 42 | 42 | } |
| 43 | 43 | |
| 44 | -function wpinv_sanitize_amount( $amount, $decimals = NULL ) { |
|
| 44 | +function wpinv_sanitize_amount($amount, $decimals = NULL) { |
|
| 45 | 45 | $is_negative = false; |
| 46 | 46 | $thousands_sep = wpinv_thousands_separator(); |
| 47 | 47 | $decimal_sep = wpinv_decimal_separator(); |
| 48 | - if ( $decimals === NULL ) { |
|
| 48 | + if ($decimals === NULL) { |
|
| 49 | 49 | $decimals = wpinv_decimals(); |
| 50 | 50 | } |
| 51 | 51 | |
| 52 | 52 | // Sanitize the amount |
| 53 | - if ( $decimal_sep == ',' && false !== ( $found = strpos( $amount, $decimal_sep ) ) ) { |
|
| 54 | - if ( ( $thousands_sep == '.' || $thousands_sep == ' ' ) && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) { |
|
| 55 | - $amount = str_replace( $thousands_sep, '', $amount ); |
|
| 56 | - } elseif( empty( $thousands_sep ) && false !== ( $found = strpos( $amount, '.' ) ) ) { |
|
| 57 | - $amount = str_replace( '.', '', $amount ); |
|
| 53 | + if ($decimal_sep == ',' && false !== ($found = strpos($amount, $decimal_sep))) { |
|
| 54 | + if (($thousands_sep == '.' || $thousands_sep == ' ') && false !== ($found = strpos($amount, $thousands_sep))) { |
|
| 55 | + $amount = str_replace($thousands_sep, '', $amount); |
|
| 56 | + } elseif (empty($thousands_sep) && false !== ($found = strpos($amount, '.'))) { |
|
| 57 | + $amount = str_replace('.', '', $amount); |
|
| 58 | 58 | } |
| 59 | 59 | |
| 60 | - $amount = str_replace( $decimal_sep, '.', $amount ); |
|
| 61 | - } elseif( $thousands_sep == ',' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) { |
|
| 62 | - $amount = str_replace( $thousands_sep, '', $amount ); |
|
| 60 | + $amount = str_replace($decimal_sep, '.', $amount); |
|
| 61 | + } elseif ($thousands_sep == ',' && false !== ($found = strpos($amount, $thousands_sep))) { |
|
| 62 | + $amount = str_replace($thousands_sep, '', $amount); |
|
| 63 | 63 | } |
| 64 | 64 | |
| 65 | - if( $amount < 0 ) { |
|
| 65 | + if ($amount < 0) { |
|
| 66 | 66 | $is_negative = true; |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | - $amount = preg_replace( '/[^0-9\.]/', '', $amount ); |
|
| 69 | + $amount = preg_replace('/[^0-9\.]/', '', $amount); |
|
| 70 | 70 | |
| 71 | - $decimals = apply_filters( 'wpinv_sanitize_amount_decimals', absint( $decimals ), $amount ); |
|
| 72 | - $amount = number_format( (double) $amount, absint( $decimals ), '.', '' ); |
|
| 71 | + $decimals = apply_filters('wpinv_sanitize_amount_decimals', absint($decimals), $amount); |
|
| 72 | + $amount = number_format((double)$amount, absint($decimals), '.', ''); |
|
| 73 | 73 | |
| 74 | - if( $is_negative ) { |
|
| 74 | + if ($is_negative) { |
|
| 75 | 75 | $amount *= -1; |
| 76 | 76 | } |
| 77 | 77 | |
| 78 | - return apply_filters( 'wpinv_sanitize_amount', $amount, $decimals ); |
|
| 78 | + return apply_filters('wpinv_sanitize_amount', $amount, $decimals); |
|
| 79 | 79 | } |
| 80 | -add_filter( 'wpinv_sanitize_amount_decimals', 'wpinv_currency_decimal_filter', 10, 1 ); |
|
| 80 | +add_filter('wpinv_sanitize_amount_decimals', 'wpinv_currency_decimal_filter', 10, 1); |
|
| 81 | 81 | |
| 82 | -function wpinv_round_amount( $amount, $decimals = NULL ) { |
|
| 83 | - if ( $decimals === NULL ) { |
|
| 82 | +function wpinv_round_amount($amount, $decimals = NULL) { |
|
| 83 | + if ($decimals === NULL) { |
|
| 84 | 84 | $decimals = wpinv_decimals(); |
| 85 | 85 | } |
| 86 | 86 | |
| 87 | - $amount = round( (double)$amount, wpinv_currency_decimal_filter( absint( $decimals ) ) ); |
|
| 87 | + $amount = round((double)$amount, wpinv_currency_decimal_filter(absint($decimals))); |
|
| 88 | 88 | |
| 89 | - return apply_filters( 'wpinv_round_amount', $amount, $decimals ); |
|
| 89 | + return apply_filters('wpinv_round_amount', $amount, $decimals); |
|
| 90 | 90 | } |
| 91 | 91 | |
| 92 | -function wpinv_get_invoice_statuses( $trashed = false ) { |
|
| 92 | +function wpinv_get_invoice_statuses($trashed = false) { |
|
| 93 | 93 | global $post; |
| 94 | 94 | $invoice_statuses = array(); |
| 95 | 95 | $invoice_statuses = array( |
@@ -103,32 +103,32 @@ discard block |
||
| 103 | 103 | 'wpi-renewal' => __('Renewal Payment', 'invoicing') |
| 104 | 104 | ); |
| 105 | 105 | |
| 106 | - if ( $trashed ) { |
|
| 107 | - $invoice_statuses['trash'] = __( 'Trash', 'invoicing' ); |
|
| 106 | + if ($trashed) { |
|
| 107 | + $invoice_statuses['trash'] = __('Trash', 'invoicing'); |
|
| 108 | 108 | } |
| 109 | 109 | |
| 110 | - return apply_filters( 'wpinv_statuses', $invoice_statuses ); |
|
| 110 | + return apply_filters('wpinv_statuses', $invoice_statuses); |
|
| 111 | 111 | } |
| 112 | 112 | |
| 113 | -function wpinv_status_nicename( $status ) { |
|
| 113 | +function wpinv_status_nicename($status) { |
|
| 114 | 114 | $statuses = wpinv_get_invoice_statuses(); |
| 115 | - $status = isset( $statuses[$status] ) ? $statuses[$status] : __( $status, 'invoicing' ); |
|
| 115 | + $status = isset($statuses[$status]) ? $statuses[$status] : __($status, 'invoicing'); |
|
| 116 | 116 | |
| 117 | 117 | return $status; |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | 120 | function wpinv_get_currency() { |
| 121 | - $currency = wpinv_get_option( 'currency', 'USD' ); |
|
| 121 | + $currency = wpinv_get_option('currency', 'USD'); |
|
| 122 | 122 | |
| 123 | - return apply_filters( 'wpinv_currency', $currency ); |
|
| 123 | + return apply_filters('wpinv_currency', $currency); |
|
| 124 | 124 | } |
| 125 | 125 | |
| 126 | -function wpinv_currency_symbol( $currency = '' ) { |
|
| 127 | - if ( empty( $currency ) ) { |
|
| 126 | +function wpinv_currency_symbol($currency = '') { |
|
| 127 | + if (empty($currency)) { |
|
| 128 | 128 | $currency = wpinv_get_currency(); |
| 129 | 129 | } |
| 130 | 130 | |
| 131 | - $symbols = apply_filters( 'wpinv_currency_symbols', array( |
|
| 131 | + $symbols = apply_filters('wpinv_currency_symbols', array( |
|
| 132 | 132 | 'AED' => 'د.إ', |
| 133 | 133 | 'AFN' => '؋', |
| 134 | 134 | 'ALL' => 'L', |
@@ -291,208 +291,208 @@ discard block |
||
| 291 | 291 | 'YER' => '﷼', |
| 292 | 292 | 'ZAR' => 'R', |
| 293 | 293 | 'ZMW' => 'ZK', |
| 294 | - ) ); |
|
| 294 | + )); |
|
| 295 | 295 | |
| 296 | - $currency_symbol = isset( $symbols[$currency] ) ? $symbols[$currency] : $currency; |
|
| 296 | + $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : $currency; |
|
| 297 | 297 | |
| 298 | - return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency ); |
|
| 298 | + return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency); |
|
| 299 | 299 | } |
| 300 | 300 | |
| 301 | 301 | function wpinv_currency_position() { |
| 302 | - $position = wpinv_get_option( 'currency_position', 'left' ); |
|
| 302 | + $position = wpinv_get_option('currency_position', 'left'); |
|
| 303 | 303 | |
| 304 | - return apply_filters( 'wpinv_currency_position', $position ); |
|
| 304 | + return apply_filters('wpinv_currency_position', $position); |
|
| 305 | 305 | } |
| 306 | 306 | |
| 307 | 307 | function wpinv_thousands_separator() { |
| 308 | - $thousand_sep = wpinv_get_option( 'thousands_separator', ',' ); |
|
| 308 | + $thousand_sep = wpinv_get_option('thousands_separator', ','); |
|
| 309 | 309 | |
| 310 | - return apply_filters( 'wpinv_thousands_separator', $thousand_sep ); |
|
| 310 | + return apply_filters('wpinv_thousands_separator', $thousand_sep); |
|
| 311 | 311 | } |
| 312 | 312 | |
| 313 | 313 | function wpinv_decimal_separator() { |
| 314 | - $decimal_sep = wpinv_get_option( 'decimal_separator', '.' ); |
|
| 314 | + $decimal_sep = wpinv_get_option('decimal_separator', '.'); |
|
| 315 | 315 | |
| 316 | - return apply_filters( 'wpinv_decimal_separator', $decimal_sep ); |
|
| 316 | + return apply_filters('wpinv_decimal_separator', $decimal_sep); |
|
| 317 | 317 | } |
| 318 | 318 | |
| 319 | 319 | function wpinv_decimals() { |
| 320 | - $decimals = apply_filters( 'wpinv_decimals', wpinv_get_option( 'decimals', 2 ) ); |
|
| 320 | + $decimals = apply_filters('wpinv_decimals', wpinv_get_option('decimals', 2)); |
|
| 321 | 321 | |
| 322 | - return absint( $decimals ); |
|
| 322 | + return absint($decimals); |
|
| 323 | 323 | } |
| 324 | 324 | |
| 325 | 325 | function wpinv_get_currencies() { |
| 326 | 326 | $currencies = array( |
| 327 | - 'USD' => __( 'US Dollar', 'invoicing' ), |
|
| 328 | - 'EUR' => __( 'Euro', 'invoicing' ), |
|
| 329 | - 'GBP' => __( 'Pound Sterling', 'invoicing' ), |
|
| 330 | - 'AFN' => __( 'Afghan Afghani', 'invoicing' ), |
|
| 331 | - 'ALL' => __( 'Albanian Lek', 'invoicing' ), |
|
| 332 | - 'AMD' => __( 'Armenian Dram', 'invoicing' ), |
|
| 333 | - 'ANG' => __( 'Netherlands Antillean Guilder', 'invoicing' ), |
|
| 334 | - 'AOA' => __( 'Angolan Kwanza', 'invoicing' ), |
|
| 335 | - 'ARS' => __( 'Argentine Peso', 'invoicing' ), |
|
| 336 | - 'AUD' => __( 'Australian Dollar', 'invoicing' ), |
|
| 337 | - 'AWG' => __( 'Aruban Florin', 'invoicing' ), |
|
| 338 | - 'AZN' => __( 'Azerbaijani Manat', 'invoicing' ), |
|
| 339 | - 'BAM' => __( 'Bosnia and Herzegovina Convertible Marka', 'invoicing' ), |
|
| 340 | - 'BBD' => __( 'Barbadian Dollar', 'invoicing' ), |
|
| 341 | - 'BDT' => __( 'Bangladeshi Taka', 'invoicing' ), |
|
| 342 | - 'BGN' => __( 'Bulgarian Lev', 'invoicing' ), |
|
| 343 | - 'BHD' => __( 'Bahraini Dinar', 'invoicing' ), |
|
| 344 | - 'BIF' => __( 'Burundian Franc', 'invoicing' ), |
|
| 345 | - 'BMD' => __( 'Bermudian Dollar', 'invoicing' ), |
|
| 346 | - 'BND' => __( 'Brunei Dollar', 'invoicing' ), |
|
| 347 | - 'BOB' => __( 'Bolivian Boliviano', 'invoicing' ), |
|
| 348 | - 'BRL' => __( 'Brazilian Real', 'invoicing' ), |
|
| 349 | - 'BSD' => __( 'Bahamian Dollar', 'invoicing' ), |
|
| 350 | - 'BTC' => __( 'Bitcoin', 'invoicing' ), |
|
| 351 | - 'BTN' => __( 'Bhutanese Ngultrum', 'invoicing' ), |
|
| 352 | - 'BWP' => __( 'Botswana Pula', 'invoicing' ), |
|
| 353 | - 'BYR' => __( 'Belarusian Ruble', 'invoicing' ), |
|
| 354 | - 'BZD' => __( 'Belize Dollar', 'invoicing' ), |
|
| 355 | - 'CAD' => __( 'Canadian Dollar', 'invoicing' ), |
|
| 356 | - 'CDF' => __( 'Congolese Franc', 'invoicing' ), |
|
| 357 | - 'CHF' => __( 'Swiss Franc', 'invoicing' ), |
|
| 358 | - 'CLP' => __( 'Chilean Peso', 'invoicing' ), |
|
| 359 | - 'CNY' => __( 'Chinese Yuan', 'invoicing' ), |
|
| 360 | - 'COP' => __( 'Colombian Peso', 'invoicing' ), |
|
| 361 | - 'CRC' => __( 'Costa Rican Colon', 'invoicing' ), |
|
| 362 | - 'CUC' => __( 'Cuban Convertible Peso', 'invoicing' ), |
|
| 363 | - 'CUP' => __( 'Cuban Peso', 'invoicing' ), |
|
| 364 | - 'CVE' => __( 'Cape Verdean escudo', 'invoicing' ), |
|
| 365 | - 'CZK' => __( 'Czech Koruna', 'invoicing' ), |
|
| 366 | - 'DJF' => __( 'Djiboutian Franc', 'invoicing' ), |
|
| 367 | - 'DKK' => __( 'Danish Krone', 'invoicing' ), |
|
| 368 | - 'DOP' => __( 'Dominican Peso', 'invoicing' ), |
|
| 369 | - 'DZD' => __( 'Algerian Dinar', 'invoicing' ), |
|
| 370 | - 'EGP' => __( 'Egyptian Pound', 'invoicing' ), |
|
| 371 | - 'ERN' => __( 'Eritrean Nakfa', 'invoicing' ), |
|
| 372 | - 'ETB' => __( 'Ethiopian irr', 'invoicing' ), |
|
| 373 | - 'FJD' => __( 'Fijian Dollar', 'invoicing' ), |
|
| 374 | - 'FKP' => __( 'Falkland Islands Pound', 'invoicing' ), |
|
| 375 | - 'GEL' => __( 'Georgian lari', 'invoicing' ), |
|
| 376 | - 'GGP' => __( 'Guernsey Pound', 'invoicing' ), |
|
| 377 | - 'GHS' => __( 'Ghana cedi', 'invoicing' ), |
|
| 378 | - 'GIP' => __( 'Gibraltar Pound', 'invoicing' ), |
|
| 379 | - 'GMD' => __( 'Gambian Dalasi', 'invoicing' ), |
|
| 380 | - 'GNF' => __( 'Guinean Franc', 'invoicing' ), |
|
| 381 | - 'GTQ' => __( 'Guatemalan Quetzal', 'invoicing' ), |
|
| 382 | - 'GYD' => __( 'Guyanese Dollar', 'invoicing' ), |
|
| 383 | - 'HKD' => __( 'Hong Kong Dollar', 'invoicing' ), |
|
| 384 | - 'HNL' => __( 'Honduran Lempira', 'invoicing' ), |
|
| 385 | - 'HRK' => __( 'Croatian Kuna', 'invoicing' ), |
|
| 386 | - 'HTG' => __( 'Haitian Gourde', 'invoicing' ), |
|
| 387 | - 'HUF' => __( 'Hungarian Forint', 'invoicing' ), |
|
| 388 | - 'IDR' => __( 'Indonesian Rupiah', 'invoicing' ), |
|
| 389 | - 'ILS' => __( 'Israeli New Shekel', 'invoicing' ), |
|
| 390 | - 'IMP' => __( 'Manx Pound', 'invoicing' ), |
|
| 391 | - 'INR' => __( 'Indian Rupee', 'invoicing' ), |
|
| 392 | - 'IQD' => __( 'Iraqi Dinar', 'invoicing' ), |
|
| 393 | - 'IRR' => __( 'Iranian Rial', 'invoicing' ), |
|
| 394 | - 'IRT' => __( 'Iranian Toman', 'invoicing' ), |
|
| 395 | - 'ISK' => __( 'Icelandic Krona', 'invoicing' ), |
|
| 396 | - 'JEP' => __( 'Jersey Pound', 'invoicing' ), |
|
| 397 | - 'JMD' => __( 'Jamaican Dollar', 'invoicing' ), |
|
| 398 | - 'JOD' => __( 'Jordanian Dinar', 'invoicing' ), |
|
| 399 | - 'JPY' => __( 'Japanese Yen', 'invoicing' ), |
|
| 400 | - 'KES' => __( 'Kenyan Shilling', 'invoicing' ), |
|
| 401 | - 'KGS' => __( 'Kyrgyzstani Som', 'invoicing' ), |
|
| 402 | - 'KHR' => __( 'Cambodian Riel', 'invoicing' ), |
|
| 403 | - 'KMF' => __( 'Comorian Franc', 'invoicing' ), |
|
| 404 | - 'KPW' => __( 'North Korean Won', 'invoicing' ), |
|
| 405 | - 'KRW' => __( 'South Korean Won', 'invoicing' ), |
|
| 406 | - 'KWD' => __( 'Kuwaiti Dinar', 'invoicing' ), |
|
| 407 | - 'KYD' => __( 'Cayman Islands Dollar', 'invoicing' ), |
|
| 408 | - 'KZT' => __( 'Kazakhstani Tenge', 'invoicing' ), |
|
| 409 | - 'LAK' => __( 'Lao Kip', 'invoicing' ), |
|
| 410 | - 'LBP' => __( 'Lebanese Pound', 'invoicing' ), |
|
| 411 | - 'LKR' => __( 'Sri Lankan Rupee', 'invoicing' ), |
|
| 412 | - 'LRD' => __( 'Liberian Dollar', 'invoicing' ), |
|
| 413 | - 'LSL' => __( 'Lesotho Loti', 'invoicing' ), |
|
| 414 | - 'LYD' => __( 'Libyan Dinar', 'invoicing' ), |
|
| 415 | - 'MAD' => __( 'Moroccan Dirham', 'invoicing' ), |
|
| 416 | - 'MDL' => __( 'Moldovan Leu', 'invoicing' ), |
|
| 417 | - 'MGA' => __( 'Malagasy Ariary', 'invoicing' ), |
|
| 418 | - 'MKD' => __( 'Macedonian Denar', 'invoicing' ), |
|
| 419 | - 'MMK' => __( 'Burmese Kyat', 'invoicing' ), |
|
| 420 | - 'MNT' => __( 'Mongolian Tughrik', 'invoicing' ), |
|
| 421 | - 'MOP' => __( 'Macanese Pataca', 'invoicing' ), |
|
| 422 | - 'MRO' => __( 'Mauritanian Ouguiya', 'invoicing' ), |
|
| 423 | - 'MUR' => __( 'Mauritian Rupee', 'invoicing' ), |
|
| 424 | - 'MVR' => __( 'Maldivian Rufiyaa', 'invoicing' ), |
|
| 425 | - 'MWK' => __( 'Malawian Kwacha', 'invoicing' ), |
|
| 426 | - 'MXN' => __( 'Mexican Peso', 'invoicing' ), |
|
| 427 | - 'MYR' => __( 'Malaysian Ringgit', 'invoicing' ), |
|
| 428 | - 'MZN' => __( 'Mozambican Metical', 'invoicing' ), |
|
| 429 | - 'NAD' => __( 'Namibian Dollar', 'invoicing' ), |
|
| 430 | - 'NGN' => __( 'Nigerian Naira', 'invoicing' ), |
|
| 431 | - 'NIO' => __( 'Nicaraguan Cordoba', 'invoicing' ), |
|
| 432 | - 'NOK' => __( 'Norwegian Krone', 'invoicing' ), |
|
| 433 | - 'NPR' => __( 'Nepalese Rupee', 'invoicing' ), |
|
| 434 | - 'NZD' => __( 'New Zealand Dollar', 'invoicing' ), |
|
| 435 | - 'OMR' => __( 'Omani Rial', 'invoicing' ), |
|
| 436 | - 'PAB' => __( 'Panamanian Balboa', 'invoicing' ), |
|
| 437 | - 'PEN' => __( 'Peruvian Nuevo Sol', 'invoicing' ), |
|
| 438 | - 'PGK' => __( 'Papua New Guinean Kina', 'invoicing' ), |
|
| 439 | - 'PHP' => __( 'Philippine Peso', 'invoicing' ), |
|
| 440 | - 'PKR' => __( 'Pakistani Rupee', 'invoicing' ), |
|
| 441 | - 'PLN' => __( 'Polish Zloty', 'invoicing' ), |
|
| 442 | - 'PRB' => __( 'Transnistrian Ruble', 'invoicing' ), |
|
| 443 | - 'PYG' => __( 'Paraguayan Guarani', 'invoicing' ), |
|
| 444 | - 'QAR' => __( 'Qatari Riyal', 'invoicing' ), |
|
| 445 | - 'RON' => __( 'Romanian Leu', 'invoicing' ), |
|
| 446 | - 'RSD' => __( 'Serbian Dinar', 'invoicing' ), |
|
| 447 | - 'RUB' => __( 'Russian Ruble', 'invoicing' ), |
|
| 448 | - 'RWF' => __( 'Rwandan Franc', 'invoicing' ), |
|
| 449 | - 'SAR' => __( 'Saudi Riyal', 'invoicing' ), |
|
| 450 | - 'SBD' => __( 'Solomon Islands Dollar', 'invoicing' ), |
|
| 451 | - 'SCR' => __( 'Seychellois Rupee', 'invoicing' ), |
|
| 452 | - 'SDG' => __( 'Sudanese Pound', 'invoicing' ), |
|
| 453 | - 'SEK' => __( 'Swedish Krona', 'invoicing' ), |
|
| 454 | - 'SGD' => __( 'Singapore Dollar', 'invoicing' ), |
|
| 455 | - 'SHP' => __( 'Saint Helena Pound', 'invoicing' ), |
|
| 456 | - 'SLL' => __( 'Sierra Leonean Leone', 'invoicing' ), |
|
| 457 | - 'SOS' => __( 'Somali Shilling', 'invoicing' ), |
|
| 458 | - 'SRD' => __( 'Surinamese Dollar', 'invoicing' ), |
|
| 459 | - 'SSP' => __( 'South Sudanese Pound', 'invoicing' ), |
|
| 460 | - 'STD' => __( 'Sao Tomean Dobra', 'invoicing' ), |
|
| 461 | - 'SYP' => __( 'Syrian Pound', 'invoicing' ), |
|
| 462 | - 'SZL' => __( 'Swazi Lilangeni', 'invoicing' ), |
|
| 463 | - 'THB' => __( 'Thai Baht', 'invoicing' ), |
|
| 464 | - 'TJS' => __( 'Tajikistani Somoni', 'invoicing' ), |
|
| 465 | - 'TMT' => __( 'Turkmenistan Manat', 'invoicing' ), |
|
| 466 | - 'TND' => __( 'Tunisian Dinar', 'invoicing' ), |
|
| 467 | - 'TOP' => __( 'Tongan Paʻanga', 'invoicing' ), |
|
| 468 | - 'TRY' => __( 'Turkish Lira', 'invoicing' ), |
|
| 469 | - 'TTD' => __( 'Trinidad and Tobago Dollar', 'invoicing' ), |
|
| 470 | - 'TWD' => __( 'New Taiwan Dollar', 'invoicing' ), |
|
| 471 | - 'TZS' => __( 'Tanzanian Shilling', 'invoicing' ), |
|
| 472 | - 'UAH' => __( 'Ukrainian Hryvnia', 'invoicing' ), |
|
| 473 | - 'UGX' => __( 'Ugandan Shilling', 'invoicing' ), |
|
| 474 | - 'UYU' => __( 'Uruguayan Peso', 'invoicing' ), |
|
| 475 | - 'UZS' => __( 'Uzbekistani Som', 'invoicing' ), |
|
| 476 | - 'VEF' => __( 'Venezuelan Bolívar', 'invoicing' ), |
|
| 477 | - 'VND' => __( 'Vietnamese Dong', 'invoicing' ), |
|
| 478 | - 'VUV' => __( 'Vanuatu Vatu', 'invoicing' ), |
|
| 479 | - 'WST' => __( 'Samoan Tala', 'invoicing' ), |
|
| 480 | - 'XAF' => __( 'Central African CFA Franc', 'invoicing' ), |
|
| 481 | - 'XCD' => __( 'East Caribbean Dollar', 'invoicing' ), |
|
| 482 | - 'XOF' => __( 'West African CFA Franc', 'invoicing' ), |
|
| 483 | - 'XPF' => __( 'CFP Franc', 'invoicing' ), |
|
| 484 | - 'YER' => __( 'Yemeni Rial', 'invoicing' ), |
|
| 485 | - 'ZAR' => __( 'South African Rand', 'invoicing' ), |
|
| 486 | - 'ZMW' => __( 'Zambian Kwacha', 'invoicing' ), |
|
| 327 | + 'USD' => __('US Dollar', 'invoicing'), |
|
| 328 | + 'EUR' => __('Euro', 'invoicing'), |
|
| 329 | + 'GBP' => __('Pound Sterling', 'invoicing'), |
|
| 330 | + 'AFN' => __('Afghan Afghani', 'invoicing'), |
|
| 331 | + 'ALL' => __('Albanian Lek', 'invoicing'), |
|
| 332 | + 'AMD' => __('Armenian Dram', 'invoicing'), |
|
| 333 | + 'ANG' => __('Netherlands Antillean Guilder', 'invoicing'), |
|
| 334 | + 'AOA' => __('Angolan Kwanza', 'invoicing'), |
|
| 335 | + 'ARS' => __('Argentine Peso', 'invoicing'), |
|
| 336 | + 'AUD' => __('Australian Dollar', 'invoicing'), |
|
| 337 | + 'AWG' => __('Aruban Florin', 'invoicing'), |
|
| 338 | + 'AZN' => __('Azerbaijani Manat', 'invoicing'), |
|
| 339 | + 'BAM' => __('Bosnia and Herzegovina Convertible Marka', 'invoicing'), |
|
| 340 | + 'BBD' => __('Barbadian Dollar', 'invoicing'), |
|
| 341 | + 'BDT' => __('Bangladeshi Taka', 'invoicing'), |
|
| 342 | + 'BGN' => __('Bulgarian Lev', 'invoicing'), |
|
| 343 | + 'BHD' => __('Bahraini Dinar', 'invoicing'), |
|
| 344 | + 'BIF' => __('Burundian Franc', 'invoicing'), |
|
| 345 | + 'BMD' => __('Bermudian Dollar', 'invoicing'), |
|
| 346 | + 'BND' => __('Brunei Dollar', 'invoicing'), |
|
| 347 | + 'BOB' => __('Bolivian Boliviano', 'invoicing'), |
|
| 348 | + 'BRL' => __('Brazilian Real', 'invoicing'), |
|
| 349 | + 'BSD' => __('Bahamian Dollar', 'invoicing'), |
|
| 350 | + 'BTC' => __('Bitcoin', 'invoicing'), |
|
| 351 | + 'BTN' => __('Bhutanese Ngultrum', 'invoicing'), |
|
| 352 | + 'BWP' => __('Botswana Pula', 'invoicing'), |
|
| 353 | + 'BYR' => __('Belarusian Ruble', 'invoicing'), |
|
| 354 | + 'BZD' => __('Belize Dollar', 'invoicing'), |
|
| 355 | + 'CAD' => __('Canadian Dollar', 'invoicing'), |
|
| 356 | + 'CDF' => __('Congolese Franc', 'invoicing'), |
|
| 357 | + 'CHF' => __('Swiss Franc', 'invoicing'), |
|
| 358 | + 'CLP' => __('Chilean Peso', 'invoicing'), |
|
| 359 | + 'CNY' => __('Chinese Yuan', 'invoicing'), |
|
| 360 | + 'COP' => __('Colombian Peso', 'invoicing'), |
|
| 361 | + 'CRC' => __('Costa Rican Colon', 'invoicing'), |
|
| 362 | + 'CUC' => __('Cuban Convertible Peso', 'invoicing'), |
|
| 363 | + 'CUP' => __('Cuban Peso', 'invoicing'), |
|
| 364 | + 'CVE' => __('Cape Verdean escudo', 'invoicing'), |
|
| 365 | + 'CZK' => __('Czech Koruna', 'invoicing'), |
|
| 366 | + 'DJF' => __('Djiboutian Franc', 'invoicing'), |
|
| 367 | + 'DKK' => __('Danish Krone', 'invoicing'), |
|
| 368 | + 'DOP' => __('Dominican Peso', 'invoicing'), |
|
| 369 | + 'DZD' => __('Algerian Dinar', 'invoicing'), |
|
| 370 | + 'EGP' => __('Egyptian Pound', 'invoicing'), |
|
| 371 | + 'ERN' => __('Eritrean Nakfa', 'invoicing'), |
|
| 372 | + 'ETB' => __('Ethiopian irr', 'invoicing'), |
|
| 373 | + 'FJD' => __('Fijian Dollar', 'invoicing'), |
|
| 374 | + 'FKP' => __('Falkland Islands Pound', 'invoicing'), |
|
| 375 | + 'GEL' => __('Georgian lari', 'invoicing'), |
|
| 376 | + 'GGP' => __('Guernsey Pound', 'invoicing'), |
|
| 377 | + 'GHS' => __('Ghana cedi', 'invoicing'), |
|
| 378 | + 'GIP' => __('Gibraltar Pound', 'invoicing'), |
|
| 379 | + 'GMD' => __('Gambian Dalasi', 'invoicing'), |
|
| 380 | + 'GNF' => __('Guinean Franc', 'invoicing'), |
|
| 381 | + 'GTQ' => __('Guatemalan Quetzal', 'invoicing'), |
|
| 382 | + 'GYD' => __('Guyanese Dollar', 'invoicing'), |
|
| 383 | + 'HKD' => __('Hong Kong Dollar', 'invoicing'), |
|
| 384 | + 'HNL' => __('Honduran Lempira', 'invoicing'), |
|
| 385 | + 'HRK' => __('Croatian Kuna', 'invoicing'), |
|
| 386 | + 'HTG' => __('Haitian Gourde', 'invoicing'), |
|
| 387 | + 'HUF' => __('Hungarian Forint', 'invoicing'), |
|
| 388 | + 'IDR' => __('Indonesian Rupiah', 'invoicing'), |
|
| 389 | + 'ILS' => __('Israeli New Shekel', 'invoicing'), |
|
| 390 | + 'IMP' => __('Manx Pound', 'invoicing'), |
|
| 391 | + 'INR' => __('Indian Rupee', 'invoicing'), |
|
| 392 | + 'IQD' => __('Iraqi Dinar', 'invoicing'), |
|
| 393 | + 'IRR' => __('Iranian Rial', 'invoicing'), |
|
| 394 | + 'IRT' => __('Iranian Toman', 'invoicing'), |
|
| 395 | + 'ISK' => __('Icelandic Krona', 'invoicing'), |
|
| 396 | + 'JEP' => __('Jersey Pound', 'invoicing'), |
|
| 397 | + 'JMD' => __('Jamaican Dollar', 'invoicing'), |
|
| 398 | + 'JOD' => __('Jordanian Dinar', 'invoicing'), |
|
| 399 | + 'JPY' => __('Japanese Yen', 'invoicing'), |
|
| 400 | + 'KES' => __('Kenyan Shilling', 'invoicing'), |
|
| 401 | + 'KGS' => __('Kyrgyzstani Som', 'invoicing'), |
|
| 402 | + 'KHR' => __('Cambodian Riel', 'invoicing'), |
|
| 403 | + 'KMF' => __('Comorian Franc', 'invoicing'), |
|
| 404 | + 'KPW' => __('North Korean Won', 'invoicing'), |
|
| 405 | + 'KRW' => __('South Korean Won', 'invoicing'), |
|
| 406 | + 'KWD' => __('Kuwaiti Dinar', 'invoicing'), |
|
| 407 | + 'KYD' => __('Cayman Islands Dollar', 'invoicing'), |
|
| 408 | + 'KZT' => __('Kazakhstani Tenge', 'invoicing'), |
|
| 409 | + 'LAK' => __('Lao Kip', 'invoicing'), |
|
| 410 | + 'LBP' => __('Lebanese Pound', 'invoicing'), |
|
| 411 | + 'LKR' => __('Sri Lankan Rupee', 'invoicing'), |
|
| 412 | + 'LRD' => __('Liberian Dollar', 'invoicing'), |
|
| 413 | + 'LSL' => __('Lesotho Loti', 'invoicing'), |
|
| 414 | + 'LYD' => __('Libyan Dinar', 'invoicing'), |
|
| 415 | + 'MAD' => __('Moroccan Dirham', 'invoicing'), |
|
| 416 | + 'MDL' => __('Moldovan Leu', 'invoicing'), |
|
| 417 | + 'MGA' => __('Malagasy Ariary', 'invoicing'), |
|
| 418 | + 'MKD' => __('Macedonian Denar', 'invoicing'), |
|
| 419 | + 'MMK' => __('Burmese Kyat', 'invoicing'), |
|
| 420 | + 'MNT' => __('Mongolian Tughrik', 'invoicing'), |
|
| 421 | + 'MOP' => __('Macanese Pataca', 'invoicing'), |
|
| 422 | + 'MRO' => __('Mauritanian Ouguiya', 'invoicing'), |
|
| 423 | + 'MUR' => __('Mauritian Rupee', 'invoicing'), |
|
| 424 | + 'MVR' => __('Maldivian Rufiyaa', 'invoicing'), |
|
| 425 | + 'MWK' => __('Malawian Kwacha', 'invoicing'), |
|
| 426 | + 'MXN' => __('Mexican Peso', 'invoicing'), |
|
| 427 | + 'MYR' => __('Malaysian Ringgit', 'invoicing'), |
|
| 428 | + 'MZN' => __('Mozambican Metical', 'invoicing'), |
|
| 429 | + 'NAD' => __('Namibian Dollar', 'invoicing'), |
|
| 430 | + 'NGN' => __('Nigerian Naira', 'invoicing'), |
|
| 431 | + 'NIO' => __('Nicaraguan Cordoba', 'invoicing'), |
|
| 432 | + 'NOK' => __('Norwegian Krone', 'invoicing'), |
|
| 433 | + 'NPR' => __('Nepalese Rupee', 'invoicing'), |
|
| 434 | + 'NZD' => __('New Zealand Dollar', 'invoicing'), |
|
| 435 | + 'OMR' => __('Omani Rial', 'invoicing'), |
|
| 436 | + 'PAB' => __('Panamanian Balboa', 'invoicing'), |
|
| 437 | + 'PEN' => __('Peruvian Nuevo Sol', 'invoicing'), |
|
| 438 | + 'PGK' => __('Papua New Guinean Kina', 'invoicing'), |
|
| 439 | + 'PHP' => __('Philippine Peso', 'invoicing'), |
|
| 440 | + 'PKR' => __('Pakistani Rupee', 'invoicing'), |
|
| 441 | + 'PLN' => __('Polish Zloty', 'invoicing'), |
|
| 442 | + 'PRB' => __('Transnistrian Ruble', 'invoicing'), |
|
| 443 | + 'PYG' => __('Paraguayan Guarani', 'invoicing'), |
|
| 444 | + 'QAR' => __('Qatari Riyal', 'invoicing'), |
|
| 445 | + 'RON' => __('Romanian Leu', 'invoicing'), |
|
| 446 | + 'RSD' => __('Serbian Dinar', 'invoicing'), |
|
| 447 | + 'RUB' => __('Russian Ruble', 'invoicing'), |
|
| 448 | + 'RWF' => __('Rwandan Franc', 'invoicing'), |
|
| 449 | + 'SAR' => __('Saudi Riyal', 'invoicing'), |
|
| 450 | + 'SBD' => __('Solomon Islands Dollar', 'invoicing'), |
|
| 451 | + 'SCR' => __('Seychellois Rupee', 'invoicing'), |
|
| 452 | + 'SDG' => __('Sudanese Pound', 'invoicing'), |
|
| 453 | + 'SEK' => __('Swedish Krona', 'invoicing'), |
|
| 454 | + 'SGD' => __('Singapore Dollar', 'invoicing'), |
|
| 455 | + 'SHP' => __('Saint Helena Pound', 'invoicing'), |
|
| 456 | + 'SLL' => __('Sierra Leonean Leone', 'invoicing'), |
|
| 457 | + 'SOS' => __('Somali Shilling', 'invoicing'), |
|
| 458 | + 'SRD' => __('Surinamese Dollar', 'invoicing'), |
|
| 459 | + 'SSP' => __('South Sudanese Pound', 'invoicing'), |
|
| 460 | + 'STD' => __('Sao Tomean Dobra', 'invoicing'), |
|
| 461 | + 'SYP' => __('Syrian Pound', 'invoicing'), |
|
| 462 | + 'SZL' => __('Swazi Lilangeni', 'invoicing'), |
|
| 463 | + 'THB' => __('Thai Baht', 'invoicing'), |
|
| 464 | + 'TJS' => __('Tajikistani Somoni', 'invoicing'), |
|
| 465 | + 'TMT' => __('Turkmenistan Manat', 'invoicing'), |
|
| 466 | + 'TND' => __('Tunisian Dinar', 'invoicing'), |
|
| 467 | + 'TOP' => __('Tongan Paʻanga', 'invoicing'), |
|
| 468 | + 'TRY' => __('Turkish Lira', 'invoicing'), |
|
| 469 | + 'TTD' => __('Trinidad and Tobago Dollar', 'invoicing'), |
|
| 470 | + 'TWD' => __('New Taiwan Dollar', 'invoicing'), |
|
| 471 | + 'TZS' => __('Tanzanian Shilling', 'invoicing'), |
|
| 472 | + 'UAH' => __('Ukrainian Hryvnia', 'invoicing'), |
|
| 473 | + 'UGX' => __('Ugandan Shilling', 'invoicing'), |
|
| 474 | + 'UYU' => __('Uruguayan Peso', 'invoicing'), |
|
| 475 | + 'UZS' => __('Uzbekistani Som', 'invoicing'), |
|
| 476 | + 'VEF' => __('Venezuelan Bolívar', 'invoicing'), |
|
| 477 | + 'VND' => __('Vietnamese Dong', 'invoicing'), |
|
| 478 | + 'VUV' => __('Vanuatu Vatu', 'invoicing'), |
|
| 479 | + 'WST' => __('Samoan Tala', 'invoicing'), |
|
| 480 | + 'XAF' => __('Central African CFA Franc', 'invoicing'), |
|
| 481 | + 'XCD' => __('East Caribbean Dollar', 'invoicing'), |
|
| 482 | + 'XOF' => __('West African CFA Franc', 'invoicing'), |
|
| 483 | + 'XPF' => __('CFP Franc', 'invoicing'), |
|
| 484 | + 'YER' => __('Yemeni Rial', 'invoicing'), |
|
| 485 | + 'ZAR' => __('South African Rand', 'invoicing'), |
|
| 486 | + 'ZMW' => __('Zambian Kwacha', 'invoicing'), |
|
| 487 | 487 | ); |
| 488 | 488 | |
| 489 | 489 | //asort( $currencies ); // this |
| 490 | 490 | |
| 491 | - return apply_filters( 'wpinv_currencies', $currencies ); |
|
| 491 | + return apply_filters('wpinv_currencies', $currencies); |
|
| 492 | 492 | } |
| 493 | 493 | |
| 494 | -function wpinv_price( $amount = '', $currency = '' ) { |
|
| 495 | - if( empty( $currency ) ) { |
|
| 494 | +function wpinv_price($amount = '', $currency = '') { |
|
| 495 | + if (empty($currency)) { |
|
| 496 | 496 | $currency = wpinv_get_currency(); |
| 497 | 497 | } |
| 498 | 498 | |
@@ -500,14 +500,14 @@ discard block |
||
| 500 | 500 | |
| 501 | 501 | $negative = $amount < 0; |
| 502 | 502 | |
| 503 | - if ( $negative ) { |
|
| 504 | - $amount = substr( $amount, 1 ); |
|
| 503 | + if ($negative) { |
|
| 504 | + $amount = substr($amount, 1); |
|
| 505 | 505 | } |
| 506 | 506 | |
| 507 | - $symbol = wpinv_currency_symbol( $currency ); |
|
| 507 | + $symbol = wpinv_currency_symbol($currency); |
|
| 508 | 508 | |
| 509 | - if ( $position == 'left' || $position == 'left_space' ) { |
|
| 510 | - switch ( $currency ) { |
|
| 509 | + if ($position == 'left' || $position == 'left_space') { |
|
| 510 | + switch ($currency) { |
|
| 511 | 511 | case "GBP" : |
| 512 | 512 | case "BRL" : |
| 513 | 513 | case "EUR" : |
@@ -519,15 +519,15 @@ discard block |
||
| 519 | 519 | case "NZD" : |
| 520 | 520 | case "SGD" : |
| 521 | 521 | case "JPY" : |
| 522 | - $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount; |
|
| 522 | + $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount; |
|
| 523 | 523 | break; |
| 524 | 524 | default : |
| 525 | 525 | //$price = $currency . ' ' . $amount; |
| 526 | - $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount; |
|
| 526 | + $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount; |
|
| 527 | 527 | break; |
| 528 | 528 | } |
| 529 | 529 | } else { |
| 530 | - switch ( $currency ) { |
|
| 530 | + switch ($currency) { |
|
| 531 | 531 | case "GBP" : |
| 532 | 532 | case "BRL" : |
| 533 | 533 | case "EUR" : |
@@ -538,83 +538,83 @@ discard block |
||
| 538 | 538 | case "MXN" : |
| 539 | 539 | case "SGD" : |
| 540 | 540 | case "JPY" : |
| 541 | - $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol; |
|
| 541 | + $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol; |
|
| 542 | 542 | break; |
| 543 | 543 | default : |
| 544 | 544 | //$price = $amount . ' ' . $currency; |
| 545 | - $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol; |
|
| 545 | + $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol; |
|
| 546 | 546 | break; |
| 547 | 547 | } |
| 548 | 548 | } |
| 549 | 549 | |
| 550 | - if ( $negative ) { |
|
| 550 | + if ($negative) { |
|
| 551 | 551 | $price = '-' . $price; |
| 552 | 552 | } |
| 553 | 553 | |
| 554 | - $price = apply_filters( 'wpinv_' . strtolower( $currency ) . '_currency_filter_' . $position, $price, $currency, $amount ); |
|
| 554 | + $price = apply_filters('wpinv_' . strtolower($currency) . '_currency_filter_' . $position, $price, $currency, $amount); |
|
| 555 | 555 | |
| 556 | 556 | return $price; |
| 557 | 557 | } |
| 558 | 558 | |
| 559 | -function wpinv_format_amount( $amount, $decimals = NULL, $calculate = false ) { |
|
| 559 | +function wpinv_format_amount($amount, $decimals = NULL, $calculate = false) { |
|
| 560 | 560 | $thousands_sep = wpinv_thousands_separator(); |
| 561 | 561 | $decimal_sep = wpinv_decimal_separator(); |
| 562 | 562 | |
| 563 | - if ( $decimals === NULL ) { |
|
| 563 | + if ($decimals === NULL) { |
|
| 564 | 564 | $decimals = wpinv_decimals(); |
| 565 | 565 | } |
| 566 | 566 | |
| 567 | - if ( $decimal_sep == ',' && false !== ( $sep_found = strpos( $amount, $decimal_sep ) ) ) { |
|
| 568 | - $whole = substr( $amount, 0, $sep_found ); |
|
| 569 | - $part = substr( $amount, $sep_found + 1, ( strlen( $amount ) - 1 ) ); |
|
| 567 | + if ($decimal_sep == ',' && false !== ($sep_found = strpos($amount, $decimal_sep))) { |
|
| 568 | + $whole = substr($amount, 0, $sep_found); |
|
| 569 | + $part = substr($amount, $sep_found + 1, (strlen($amount) - 1)); |
|
| 570 | 570 | $amount = $whole . '.' . $part; |
| 571 | 571 | } |
| 572 | 572 | |
| 573 | - if ( $thousands_sep == ',' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) { |
|
| 574 | - $amount = str_replace( ',', '', $amount ); |
|
| 573 | + if ($thousands_sep == ',' && false !== ($found = strpos($amount, $thousands_sep))) { |
|
| 574 | + $amount = str_replace(',', '', $amount); |
|
| 575 | 575 | } |
| 576 | 576 | |
| 577 | - if ( $thousands_sep == ' ' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) { |
|
| 578 | - $amount = str_replace( ' ', '', $amount ); |
|
| 577 | + if ($thousands_sep == ' ' && false !== ($found = strpos($amount, $thousands_sep))) { |
|
| 578 | + $amount = str_replace(' ', '', $amount); |
|
| 579 | 579 | } |
| 580 | 580 | |
| 581 | - if ( empty( $amount ) ) { |
|
| 581 | + if (empty($amount)) { |
|
| 582 | 582 | $amount = 0; |
| 583 | 583 | } |
| 584 | 584 | |
| 585 | - $decimals = apply_filters( 'wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate ); |
|
| 586 | - $formatted = number_format( (float)$amount, $decimals, $decimal_sep, $thousands_sep ); |
|
| 585 | + $decimals = apply_filters('wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate); |
|
| 586 | + $formatted = number_format((float)$amount, $decimals, $decimal_sep, $thousands_sep); |
|
| 587 | 587 | |
| 588 | - if ( $calculate ) { |
|
| 589 | - if ( $thousands_sep === "," ) { |
|
| 590 | - $formatted = str_replace( ",", "", $formatted ); |
|
| 588 | + if ($calculate) { |
|
| 589 | + if ($thousands_sep === ",") { |
|
| 590 | + $formatted = str_replace(",", "", $formatted); |
|
| 591 | 591 | } |
| 592 | 592 | |
| 593 | - if ( $decimal_sep === "," ) { |
|
| 594 | - $formatted = str_replace( ",", ".", $formatted ); |
|
| 593 | + if ($decimal_sep === ",") { |
|
| 594 | + $formatted = str_replace(",", ".", $formatted); |
|
| 595 | 595 | } |
| 596 | 596 | } |
| 597 | 597 | |
| 598 | - return apply_filters( 'wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate ); |
|
| 598 | + return apply_filters('wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate); |
|
| 599 | 599 | } |
| 600 | -add_filter( 'wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1 ); |
|
| 600 | +add_filter('wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1); |
|
| 601 | 601 | |
| 602 | -function wpinv_sanitize_key( $key ) { |
|
| 602 | +function wpinv_sanitize_key($key) { |
|
| 603 | 603 | $raw_key = $key; |
| 604 | - $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key ); |
|
| 604 | + $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key); |
|
| 605 | 605 | |
| 606 | - return apply_filters( 'wpinv_sanitize_key', $key, $raw_key ); |
|
| 606 | + return apply_filters('wpinv_sanitize_key', $key, $raw_key); |
|
| 607 | 607 | } |
| 608 | 608 | |
| 609 | -function wpinv_get_file_extension( $str ) { |
|
| 610 | - $parts = explode( '.', $str ); |
|
| 611 | - return end( $parts ); |
|
| 609 | +function wpinv_get_file_extension($str) { |
|
| 610 | + $parts = explode('.', $str); |
|
| 611 | + return end($parts); |
|
| 612 | 612 | } |
| 613 | 613 | |
| 614 | -function wpinv_string_is_image_url( $str ) { |
|
| 615 | - $ext = wpinv_get_file_extension( $str ); |
|
| 614 | +function wpinv_string_is_image_url($str) { |
|
| 615 | + $ext = wpinv_get_file_extension($str); |
|
| 616 | 616 | |
| 617 | - switch ( strtolower( $ext ) ) { |
|
| 617 | + switch (strtolower($ext)) { |
|
| 618 | 618 | case 'jpeg'; |
| 619 | 619 | case 'jpg'; |
| 620 | 620 | $return = true; |
@@ -630,32 +630,32 @@ discard block |
||
| 630 | 630 | break; |
| 631 | 631 | } |
| 632 | 632 | |
| 633 | - return (bool)apply_filters( 'wpinv_string_is_image', $return, $str ); |
|
| 633 | + return (bool)apply_filters('wpinv_string_is_image', $return, $str); |
|
| 634 | 634 | } |
| 635 | 635 | |
| 636 | -function wpinv_error_log( $log, $title = '', $file = '', $line = '', $exit = false ) { |
|
| 637 | - $should_log = apply_filters( 'wpinv_log_errors', WP_DEBUG ); |
|
| 636 | +function wpinv_error_log($log, $title = '', $file = '', $line = '', $exit = false) { |
|
| 637 | + $should_log = apply_filters('wpinv_log_errors', WP_DEBUG); |
|
| 638 | 638 | |
| 639 | - if ( true === $should_log ) { |
|
| 639 | + if (true === $should_log) { |
|
| 640 | 640 | $label = ''; |
| 641 | - if ( $file && $file !== '' ) { |
|
| 642 | - $label .= basename( $file ) . ( $line ? '(' . $line . ')' : '' ); |
|
| 641 | + if ($file && $file !== '') { |
|
| 642 | + $label .= basename($file) . ($line ? '(' . $line . ')' : ''); |
|
| 643 | 643 | } |
| 644 | 644 | |
| 645 | - if ( $title && $title !== '' ) { |
|
| 645 | + if ($title && $title !== '') { |
|
| 646 | 646 | $label = $label !== '' ? $label . ' ' : ''; |
| 647 | 647 | $label .= $title . ' '; |
| 648 | 648 | } |
| 649 | 649 | |
| 650 | - $label = $label !== '' ? trim( $label ) . ' : ' : ''; |
|
| 650 | + $label = $label !== '' ? trim($label) . ' : ' : ''; |
|
| 651 | 651 | |
| 652 | - if ( is_array( $log ) || is_object( $log ) ) { |
|
| 653 | - error_log( $label . print_r( $log, true ) ); |
|
| 652 | + if (is_array($log) || is_object($log)) { |
|
| 653 | + error_log($label . print_r($log, true)); |
|
| 654 | 654 | } else { |
| 655 | - error_log( $label . $log ); |
|
| 655 | + error_log($label . $log); |
|
| 656 | 656 | } |
| 657 | 657 | |
| 658 | - if ( $exit ) { |
|
| 658 | + if ($exit) { |
|
| 659 | 659 | exit; |
| 660 | 660 | } |
| 661 | 661 | } |
@@ -663,65 +663,65 @@ discard block |
||
| 663 | 663 | |
| 664 | 664 | function wpinv_is_ajax_disabled() { |
| 665 | 665 | $retval = false; |
| 666 | - return apply_filters( 'wpinv_is_ajax_disabled', $retval ); |
|
| 666 | + return apply_filters('wpinv_is_ajax_disabled', $retval); |
|
| 667 | 667 | } |
| 668 | 668 | |
| 669 | -function wpinv_get_current_page_url( $nocache = false ) { |
|
| 669 | +function wpinv_get_current_page_url($nocache = false) { |
|
| 670 | 670 | global $wp; |
| 671 | 671 | |
| 672 | - if ( get_option( 'permalink_structure' ) ) { |
|
| 673 | - $base = trailingslashit( home_url( $wp->request ) ); |
|
| 672 | + if (get_option('permalink_structure')) { |
|
| 673 | + $base = trailingslashit(home_url($wp->request)); |
|
| 674 | 674 | } else { |
| 675 | - $base = add_query_arg( $wp->query_string, '', trailingslashit( home_url( $wp->request ) ) ); |
|
| 676 | - $base = remove_query_arg( array( 'post_type', 'name' ), $base ); |
|
| 675 | + $base = add_query_arg($wp->query_string, '', trailingslashit(home_url($wp->request))); |
|
| 676 | + $base = remove_query_arg(array('post_type', 'name'), $base); |
|
| 677 | 677 | } |
| 678 | 678 | |
| 679 | 679 | $scheme = is_ssl() ? 'https' : 'http'; |
| 680 | - $uri = set_url_scheme( $base, $scheme ); |
|
| 680 | + $uri = set_url_scheme($base, $scheme); |
|
| 681 | 681 | |
| 682 | - if ( is_front_page() ) { |
|
| 683 | - $uri = home_url( '/' ); |
|
| 684 | - } elseif ( wpinv_is_checkout( array(), false ) ) { |
|
| 682 | + if (is_front_page()) { |
|
| 683 | + $uri = home_url('/'); |
|
| 684 | + } elseif (wpinv_is_checkout(array(), false)) { |
|
| 685 | 685 | $uri = wpinv_get_checkout_uri(); |
| 686 | 686 | } |
| 687 | 687 | |
| 688 | - $uri = apply_filters( 'wpinv_get_current_page_url', $uri ); |
|
| 688 | + $uri = apply_filters('wpinv_get_current_page_url', $uri); |
|
| 689 | 689 | |
| 690 | - if ( $nocache ) { |
|
| 691 | - $uri = wpinv_add_cache_busting( $uri ); |
|
| 690 | + if ($nocache) { |
|
| 691 | + $uri = wpinv_add_cache_busting($uri); |
|
| 692 | 692 | } |
| 693 | 693 | |
| 694 | 694 | return $uri; |
| 695 | 695 | } |
| 696 | 696 | |
| 697 | 697 | function wpinv_get_php_arg_separator_output() { |
| 698 | - return ini_get( 'arg_separator.output' ); |
|
| 698 | + return ini_get('arg_separator.output'); |
|
| 699 | 699 | } |
| 700 | 700 | |
| 701 | -function wpinv_rgb_from_hex( $color ) { |
|
| 702 | - $color = str_replace( '#', '', $color ); |
|
| 701 | +function wpinv_rgb_from_hex($color) { |
|
| 702 | + $color = str_replace('#', '', $color); |
|
| 703 | 703 | // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF" |
| 704 | - $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color ); |
|
| 704 | + $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color); |
|
| 705 | 705 | |
| 706 | 706 | $rgb = array(); |
| 707 | - $rgb['R'] = hexdec( $color{0}.$color{1} ); |
|
| 708 | - $rgb['G'] = hexdec( $color{2}.$color{3} ); |
|
| 709 | - $rgb['B'] = hexdec( $color{4}.$color{5} ); |
|
| 707 | + $rgb['R'] = hexdec($color{0} . $color{1} ); |
|
| 708 | + $rgb['G'] = hexdec($color{2} . $color{3} ); |
|
| 709 | + $rgb['B'] = hexdec($color{4} . $color{5} ); |
|
| 710 | 710 | |
| 711 | 711 | return $rgb; |
| 712 | 712 | } |
| 713 | 713 | |
| 714 | -function wpinv_hex_darker( $color, $factor = 30 ) { |
|
| 715 | - $base = wpinv_rgb_from_hex( $color ); |
|
| 714 | +function wpinv_hex_darker($color, $factor = 30) { |
|
| 715 | + $base = wpinv_rgb_from_hex($color); |
|
| 716 | 716 | $color = '#'; |
| 717 | 717 | |
| 718 | - foreach ( $base as $k => $v ) { |
|
| 718 | + foreach ($base as $k => $v) { |
|
| 719 | 719 | $amount = $v / 100; |
| 720 | - $amount = round( $amount * $factor ); |
|
| 720 | + $amount = round($amount * $factor); |
|
| 721 | 721 | $new_decimal = $v - $amount; |
| 722 | 722 | |
| 723 | - $new_hex_component = dechex( $new_decimal ); |
|
| 724 | - if ( strlen( $new_hex_component ) < 2 ) { |
|
| 723 | + $new_hex_component = dechex($new_decimal); |
|
| 724 | + if (strlen($new_hex_component) < 2) { |
|
| 725 | 725 | $new_hex_component = "0" . $new_hex_component; |
| 726 | 726 | } |
| 727 | 727 | $color .= $new_hex_component; |
@@ -730,18 +730,18 @@ discard block |
||
| 730 | 730 | return $color; |
| 731 | 731 | } |
| 732 | 732 | |
| 733 | -function wpinv_hex_lighter( $color, $factor = 30 ) { |
|
| 734 | - $base = wpinv_rgb_from_hex( $color ); |
|
| 733 | +function wpinv_hex_lighter($color, $factor = 30) { |
|
| 734 | + $base = wpinv_rgb_from_hex($color); |
|
| 735 | 735 | $color = '#'; |
| 736 | 736 | |
| 737 | - foreach ( $base as $k => $v ) { |
|
| 737 | + foreach ($base as $k => $v) { |
|
| 738 | 738 | $amount = 255 - $v; |
| 739 | 739 | $amount = $amount / 100; |
| 740 | - $amount = round( $amount * $factor ); |
|
| 740 | + $amount = round($amount * $factor); |
|
| 741 | 741 | $new_decimal = $v + $amount; |
| 742 | 742 | |
| 743 | - $new_hex_component = dechex( $new_decimal ); |
|
| 744 | - if ( strlen( $new_hex_component ) < 2 ) { |
|
| 743 | + $new_hex_component = dechex($new_decimal); |
|
| 744 | + if (strlen($new_hex_component) < 2) { |
|
| 745 | 745 | $new_hex_component = "0" . $new_hex_component; |
| 746 | 746 | } |
| 747 | 747 | $color .= $new_hex_component; |
@@ -750,22 +750,22 @@ discard block |
||
| 750 | 750 | return $color; |
| 751 | 751 | } |
| 752 | 752 | |
| 753 | -function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) { |
|
| 754 | - $hex = str_replace( '#', '', $color ); |
|
| 753 | +function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') { |
|
| 754 | + $hex = str_replace('#', '', $color); |
|
| 755 | 755 | |
| 756 | - $c_r = hexdec( substr( $hex, 0, 2 ) ); |
|
| 757 | - $c_g = hexdec( substr( $hex, 2, 2 ) ); |
|
| 758 | - $c_b = hexdec( substr( $hex, 4, 2 ) ); |
|
| 756 | + $c_r = hexdec(substr($hex, 0, 2)); |
|
| 757 | + $c_g = hexdec(substr($hex, 2, 2)); |
|
| 758 | + $c_b = hexdec(substr($hex, 4, 2)); |
|
| 759 | 759 | |
| 760 | - $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000; |
|
| 760 | + $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000; |
|
| 761 | 761 | |
| 762 | 762 | return $brightness > 155 ? $dark : $light; |
| 763 | 763 | } |
| 764 | 764 | |
| 765 | -function wpinv_format_hex( $hex ) { |
|
| 766 | - $hex = trim( str_replace( '#', '', $hex ) ); |
|
| 765 | +function wpinv_format_hex($hex) { |
|
| 766 | + $hex = trim(str_replace('#', '', $hex)); |
|
| 767 | 767 | |
| 768 | - if ( strlen( $hex ) == 3 ) { |
|
| 768 | + if (strlen($hex) == 3) { |
|
| 769 | 769 | $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2]; |
| 770 | 770 | } |
| 771 | 771 | |
@@ -785,12 +785,12 @@ discard block |
||
| 785 | 785 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
| 786 | 786 | * @return string |
| 787 | 787 | */ |
| 788 | -function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) { |
|
| 789 | - if ( function_exists( 'mb_strimwidth' ) ) { |
|
| 790 | - return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding ); |
|
| 788 | +function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') { |
|
| 789 | + if (function_exists('mb_strimwidth')) { |
|
| 790 | + return mb_strimwidth($str, $start, $width, $trimmaker, $encoding); |
|
| 791 | 791 | } |
| 792 | 792 | |
| 793 | - return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker; |
|
| 793 | + return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker; |
|
| 794 | 794 | } |
| 795 | 795 | |
| 796 | 796 | /** |
@@ -802,28 +802,28 @@ discard block |
||
| 802 | 802 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
| 803 | 803 | * @return int Returns the number of characters in string. |
| 804 | 804 | */ |
| 805 | -function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) { |
|
| 806 | - if ( function_exists( 'mb_strlen' ) ) { |
|
| 807 | - return mb_strlen( $str, $encoding ); |
|
| 805 | +function wpinv_utf8_strlen($str, $encoding = 'UTF-8') { |
|
| 806 | + if (function_exists('mb_strlen')) { |
|
| 807 | + return mb_strlen($str, $encoding); |
|
| 808 | 808 | } |
| 809 | 809 | |
| 810 | - return strlen( $str ); |
|
| 810 | + return strlen($str); |
|
| 811 | 811 | } |
| 812 | 812 | |
| 813 | -function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) { |
|
| 814 | - if ( function_exists( 'mb_strtolower' ) ) { |
|
| 815 | - return mb_strtolower( $str, $encoding ); |
|
| 813 | +function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') { |
|
| 814 | + if (function_exists('mb_strtolower')) { |
|
| 815 | + return mb_strtolower($str, $encoding); |
|
| 816 | 816 | } |
| 817 | 817 | |
| 818 | - return strtolower( $str ); |
|
| 818 | + return strtolower($str); |
|
| 819 | 819 | } |
| 820 | 820 | |
| 821 | -function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) { |
|
| 822 | - if ( function_exists( 'mb_strtoupper' ) ) { |
|
| 823 | - return mb_strtoupper( $str, $encoding ); |
|
| 821 | +function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') { |
|
| 822 | + if (function_exists('mb_strtoupper')) { |
|
| 823 | + return mb_strtoupper($str, $encoding); |
|
| 824 | 824 | } |
| 825 | 825 | |
| 826 | - return strtoupper( $str ); |
|
| 826 | + return strtoupper($str); |
|
| 827 | 827 | } |
| 828 | 828 | |
| 829 | 829 | /** |
@@ -837,12 +837,12 @@ discard block |
||
| 837 | 837 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
| 838 | 838 | * @return int Returns the position of the first occurrence of search in the string. |
| 839 | 839 | */ |
| 840 | -function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) { |
|
| 841 | - if ( function_exists( 'mb_strpos' ) ) { |
|
| 842 | - return mb_strpos( $str, $find, $offset, $encoding ); |
|
| 840 | +function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') { |
|
| 841 | + if (function_exists('mb_strpos')) { |
|
| 842 | + return mb_strpos($str, $find, $offset, $encoding); |
|
| 843 | 843 | } |
| 844 | 844 | |
| 845 | - return strpos( $str, $find, $offset ); |
|
| 845 | + return strpos($str, $find, $offset); |
|
| 846 | 846 | } |
| 847 | 847 | |
| 848 | 848 | /** |
@@ -856,12 +856,12 @@ discard block |
||
| 856 | 856 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
| 857 | 857 | * @return int Returns the position of the last occurrence of search. |
| 858 | 858 | */ |
| 859 | -function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) { |
|
| 860 | - if ( function_exists( 'mb_strrpos' ) ) { |
|
| 861 | - return mb_strrpos( $str, $find, $offset, $encoding ); |
|
| 859 | +function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') { |
|
| 860 | + if (function_exists('mb_strrpos')) { |
|
| 861 | + return mb_strrpos($str, $find, $offset, $encoding); |
|
| 862 | 862 | } |
| 863 | 863 | |
| 864 | - return strrpos( $str, $find, $offset ); |
|
| 864 | + return strrpos($str, $find, $offset); |
|
| 865 | 865 | } |
| 866 | 866 | |
| 867 | 867 | /** |
@@ -876,16 +876,16 @@ discard block |
||
| 876 | 876 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
| 877 | 877 | * @return string |
| 878 | 878 | */ |
| 879 | -function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) { |
|
| 880 | - if ( function_exists( 'mb_substr' ) ) { |
|
| 881 | - if ( $length === null ) { |
|
| 882 | - return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding ); |
|
| 879 | +function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') { |
|
| 880 | + if (function_exists('mb_substr')) { |
|
| 881 | + if ($length === null) { |
|
| 882 | + return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding); |
|
| 883 | 883 | } else { |
| 884 | - return mb_substr( $str, $start, $length, $encoding ); |
|
| 884 | + return mb_substr($str, $start, $length, $encoding); |
|
| 885 | 885 | } |
| 886 | 886 | } |
| 887 | 887 | |
| 888 | - return substr( $str, $start, $length ); |
|
| 888 | + return substr($str, $start, $length); |
|
| 889 | 889 | } |
| 890 | 890 | |
| 891 | 891 | /** |
@@ -897,48 +897,48 @@ discard block |
||
| 897 | 897 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8". |
| 898 | 898 | * @return string The width of string. |
| 899 | 899 | */ |
| 900 | -function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) { |
|
| 901 | - if ( function_exists( 'mb_strwidth' ) ) { |
|
| 902 | - return mb_strwidth( $str, $encoding ); |
|
| 900 | +function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') { |
|
| 901 | + if (function_exists('mb_strwidth')) { |
|
| 902 | + return mb_strwidth($str, $encoding); |
|
| 903 | 903 | } |
| 904 | 904 | |
| 905 | - return wpinv_utf8_strlen( $str, $encoding ); |
|
| 905 | + return wpinv_utf8_strlen($str, $encoding); |
|
| 906 | 906 | } |
| 907 | 907 | |
| 908 | -function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) { |
|
| 909 | - if ( function_exists( 'mb_strlen' ) ) { |
|
| 910 | - $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding ); |
|
| 908 | +function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') { |
|
| 909 | + if (function_exists('mb_strlen')) { |
|
| 910 | + $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding); |
|
| 911 | 911 | $str_end = ""; |
| 912 | 912 | |
| 913 | - if ( $lower_str_end ) { |
|
| 914 | - $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding ); |
|
| 913 | + if ($lower_str_end) { |
|
| 914 | + $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding); |
|
| 915 | 915 | } else { |
| 916 | - $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ); |
|
| 916 | + $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding); |
|
| 917 | 917 | } |
| 918 | 918 | |
| 919 | 919 | return $first_letter . $str_end; |
| 920 | 920 | } |
| 921 | 921 | |
| 922 | - return ucfirst( $str ); |
|
| 922 | + return ucfirst($str); |
|
| 923 | 923 | } |
| 924 | 924 | |
| 925 | -function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) { |
|
| 926 | - if ( function_exists( 'mb_convert_case' ) ) { |
|
| 927 | - return mb_convert_case( $str, MB_CASE_TITLE, $encoding ); |
|
| 925 | +function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') { |
|
| 926 | + if (function_exists('mb_convert_case')) { |
|
| 927 | + return mb_convert_case($str, MB_CASE_TITLE, $encoding); |
|
| 928 | 928 | } |
| 929 | 929 | |
| 930 | - return ucwords( $str ); |
|
| 930 | + return ucwords($str); |
|
| 931 | 931 | } |
| 932 | 932 | |
| 933 | -function wpinv_period_in_days( $period, $unit ) { |
|
| 934 | - $period = absint( $period ); |
|
| 933 | +function wpinv_period_in_days($period, $unit) { |
|
| 934 | + $period = absint($period); |
|
| 935 | 935 | |
| 936 | - if ( $period > 0 ) { |
|
| 937 | - if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) { |
|
| 936 | + if ($period > 0) { |
|
| 937 | + if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) { |
|
| 938 | 938 | $period = $period * 7; |
| 939 | - } else if ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) { |
|
| 939 | + } else if (in_array(strtolower($unit), array('m', 'month', 'months'))) { |
|
| 940 | 940 | $period = $period * 30; |
| 941 | - } else if ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) { |
|
| 941 | + } else if (in_array(strtolower($unit), array('y', 'year', 'years'))) { |
|
| 942 | 942 | $period = $period * 365; |
| 943 | 943 | } |
| 944 | 944 | } |
@@ -971,8 +971,9 @@ |
||
| 971 | 971 | return false; |
| 972 | 972 | } |
| 973 | 973 | |
| 974 | - if ( empty( $this->ID ) ) |
|
| 975 | - return false; |
|
| 974 | + if ( empty( $this->ID ) ) { |
|
| 975 | + return false; |
|
| 976 | + } |
|
| 976 | 977 | |
| 977 | 978 | if ( ( ( is_user_logged_in() && current_user_can( 'manage_options' ) ) || $added_by_user ) && !$system ) { |
| 978 | 979 | $user = get_user_by( 'id', get_current_user_id() ); |
@@ -83,6 +83,9 @@ discard block |
||
| 83 | 83 | return $value; |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | + /** |
|
| 87 | + * @param string $key |
|
| 88 | + */ |
|
| 86 | 89 | public function set( $key, $value ) { |
| 87 | 90 | $ignore = array( 'items', 'cart_details', 'fees', '_ID' ); |
| 88 | 91 | |
@@ -921,6 +924,9 @@ discard block |
||
| 921 | 924 | return $removed; |
| 922 | 925 | } |
| 923 | 926 | |
| 927 | + /** |
|
| 928 | + * @param string $key |
|
| 929 | + */ |
|
| 924 | 930 | public function remove_fee_by( $key, $value, $global = false ) { |
| 925 | 931 | $allowed_fee_keys = apply_filters( 'wpinv_fee_keys', array( |
| 926 | 932 | 'index', 'label', 'amount', 'type', |
@@ -1380,6 +1386,9 @@ discard block |
||
| 1380 | 1386 | return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency ); |
| 1381 | 1387 | } |
| 1382 | 1388 | |
| 1389 | + /** |
|
| 1390 | + * @return boolean |
|
| 1391 | + */ |
|
| 1383 | 1392 | public function get_discounts( $array = false ) { |
| 1384 | 1393 | $discounts = $this->discounts; |
| 1385 | 1394 | if ( $array && $discounts ) { |
@@ -1388,6 +1397,9 @@ discard block |
||
| 1388 | 1397 | return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array ); |
| 1389 | 1398 | } |
| 1390 | 1399 | |
| 1400 | + /** |
|
| 1401 | + * @return string |
|
| 1402 | + */ |
|
| 1391 | 1403 | public function get_discount( $currency = false, $dash = false ) { |
| 1392 | 1404 | if ( !empty( $this->discounts ) ) { |
| 1393 | 1405 | global $ajax_cart_details; |
@@ -1490,10 +1502,16 @@ discard block |
||
| 1490 | 1502 | return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this ); |
| 1491 | 1503 | } |
| 1492 | 1504 | |
| 1505 | + /** |
|
| 1506 | + * @return string |
|
| 1507 | + */ |
|
| 1493 | 1508 | public function get_user_info() { |
| 1494 | 1509 | return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this ); |
| 1495 | 1510 | } |
| 1496 | 1511 | |
| 1512 | + /** |
|
| 1513 | + * @return string |
|
| 1514 | + */ |
|
| 1497 | 1515 | public function get_email() { |
| 1498 | 1516 | return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this ); |
| 1499 | 1517 | } |
@@ -1536,10 +1554,16 @@ discard block |
||
| 1536 | 1554 | return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this ); |
| 1537 | 1555 | } |
| 1538 | 1556 | |
| 1557 | + /** |
|
| 1558 | + * @return string |
|
| 1559 | + */ |
|
| 1539 | 1560 | public function get_created_date() { |
| 1540 | 1561 | return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this ); |
| 1541 | 1562 | } |
| 1542 | 1563 | |
| 1564 | + /** |
|
| 1565 | + * @return string |
|
| 1566 | + */ |
|
| 1543 | 1567 | public function get_due_date( $display = false ) { |
| 1544 | 1568 | $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this ); |
| 1545 | 1569 | |
@@ -2103,6 +2127,9 @@ discard block |
||
| 2103 | 2127 | return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this ); |
| 2104 | 2128 | } |
| 2105 | 2129 | |
| 2130 | + /** |
|
| 2131 | + * @return string |
|
| 2132 | + */ |
|
| 2106 | 2133 | public function get_expiration() { |
| 2107 | 2134 | $expiration = $this->get_meta( '_wpinv_subscr_expiration', true ); |
| 2108 | 2135 | return $expiration; |
@@ -2118,6 +2145,9 @@ discard block |
||
| 2118 | 2145 | return $cancelled_date; |
| 2119 | 2146 | } |
| 2120 | 2147 | |
| 2148 | + /** |
|
| 2149 | + * @return string |
|
| 2150 | + */ |
|
| 2121 | 2151 | public function get_trial_end_date( $formatted = true ) { |
| 2122 | 2152 | if ( !$this->is_free_trial() || ! ( $this->is_paid() || $this->is_refunded() ) ) { |
| 2123 | 2153 | return NULL; |
@@ -2139,6 +2169,9 @@ discard block |
||
| 2139 | 2169 | return $trial_end_date; |
| 2140 | 2170 | } |
| 2141 | 2171 | |
| 2172 | + /** |
|
| 2173 | + * @return string |
|
| 2174 | + */ |
|
| 2142 | 2175 | public function get_subscription_created( $default = true ) { |
| 2143 | 2176 | $created = $this->get_meta( '_wpinv_subscr_created', true ); |
| 2144 | 2177 | |
@@ -2148,6 +2181,9 @@ discard block |
||
| 2148 | 2181 | return $created; |
| 2149 | 2182 | } |
| 2150 | 2183 | |
| 2184 | + /** |
|
| 2185 | + * @return string |
|
| 2186 | + */ |
|
| 2151 | 2187 | public function get_subscription_start( $formatted = true ) { |
| 2152 | 2188 | if ( ! ( $this->is_paid() || $this->is_refunded() ) ) { |
| 2153 | 2189 | return '-'; |
@@ -7,12 +7,12 @@ discard block |
||
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | 9 | // MUST have WordPress. |
| 10 | -if ( !defined( 'WPINC' ) ) { |
|
| 11 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) ); |
|
| 10 | +if (!defined('WPINC')) { |
|
| 11 | + exit('Do NOT access this file directly: ' . basename(__FILE__)); |
|
| 12 | 12 | } |
| 13 | 13 | |
| 14 | 14 | final class WPInv_Invoice { |
| 15 | - public $ID = 0; |
|
| 15 | + public $ID = 0; |
|
| 16 | 16 | public $title; |
| 17 | 17 | public $post_type; |
| 18 | 18 | |
@@ -65,17 +65,17 @@ discard block |
||
| 65 | 65 | public $full_name = ''; |
| 66 | 66 | public $parent_invoice = 0; |
| 67 | 67 | |
| 68 | - public function __construct( $invoice_id = false ) { |
|
| 69 | - if( empty( $invoice_id ) ) { |
|
| 68 | + public function __construct($invoice_id = false) { |
|
| 69 | + if (empty($invoice_id)) { |
|
| 70 | 70 | return false; |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | - $this->setup_invoice( $invoice_id ); |
|
| 73 | + $this->setup_invoice($invoice_id); |
|
| 74 | 74 | } |
| 75 | 75 | |
| 76 | - public function get( $key ) { |
|
| 77 | - if ( method_exists( $this, 'get_' . $key ) ) { |
|
| 78 | - $value = call_user_func( array( $this, 'get_' . $key ) ); |
|
| 76 | + public function get($key) { |
|
| 77 | + if (method_exists($this, 'get_' . $key)) { |
|
| 78 | + $value = call_user_func(array($this, 'get_' . $key)); |
|
| 79 | 79 | } else { |
| 80 | 80 | $value = $this->$key; |
| 81 | 81 | } |
@@ -83,51 +83,51 @@ discard block |
||
| 83 | 83 | return $value; |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | - public function set( $key, $value ) { |
|
| 87 | - $ignore = array( 'items', 'cart_details', 'fees', '_ID' ); |
|
| 86 | + public function set($key, $value) { |
|
| 87 | + $ignore = array('items', 'cart_details', 'fees', '_ID'); |
|
| 88 | 88 | |
| 89 | - if ( $key === 'status' ) { |
|
| 89 | + if ($key === 'status') { |
|
| 90 | 90 | $this->old_status = $this->status; |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | - if ( ! in_array( $key, $ignore ) ) { |
|
| 94 | - $this->pending[ $key ] = $value; |
|
| 93 | + if (!in_array($key, $ignore)) { |
|
| 94 | + $this->pending[$key] = $value; |
|
| 95 | 95 | } |
| 96 | 96 | |
| 97 | - if( '_ID' !== $key ) { |
|
| 97 | + if ('_ID' !== $key) { |
|
| 98 | 98 | $this->$key = $value; |
| 99 | 99 | } |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | - public function _isset( $name ) { |
|
| 103 | - if ( property_exists( $this, $name) ) { |
|
| 104 | - return false === empty( $this->$name ); |
|
| 102 | + public function _isset($name) { |
|
| 103 | + if (property_exists($this, $name)) { |
|
| 104 | + return false === empty($this->$name); |
|
| 105 | 105 | } else { |
| 106 | 106 | return null; |
| 107 | 107 | } |
| 108 | 108 | } |
| 109 | 109 | |
| 110 | - private function setup_invoice( $invoice_id ) { |
|
| 110 | + private function setup_invoice($invoice_id) { |
|
| 111 | 111 | $this->pending = array(); |
| 112 | 112 | |
| 113 | - if ( empty( $invoice_id ) ) { |
|
| 113 | + if (empty($invoice_id)) { |
|
| 114 | 114 | return false; |
| 115 | 115 | } |
| 116 | 116 | |
| 117 | - $invoice = get_post( $invoice_id ); |
|
| 117 | + $invoice = get_post($invoice_id); |
|
| 118 | 118 | |
| 119 | - if( !$invoice || is_wp_error( $invoice ) ) { |
|
| 119 | + if (!$invoice || is_wp_error($invoice)) { |
|
| 120 | 120 | return false; |
| 121 | 121 | } |
| 122 | 122 | |
| 123 | - if( !('wpi_invoice' == $invoice->post_type OR 'wpi_quote' == $invoice->post_type) ) { |
|
| 123 | + if (!('wpi_invoice' == $invoice->post_type OR 'wpi_quote' == $invoice->post_type)) { |
|
| 124 | 124 | return false; |
| 125 | 125 | } |
| 126 | 126 | |
| 127 | - do_action( 'wpinv_pre_setup_invoice', $this, $invoice_id ); |
|
| 127 | + do_action('wpinv_pre_setup_invoice', $this, $invoice_id); |
|
| 128 | 128 | |
| 129 | 129 | // Primary Identifier |
| 130 | - $this->ID = absint( $invoice_id ); |
|
| 130 | + $this->ID = absint($invoice_id); |
|
| 131 | 131 | $this->post_type = $invoice->post_type; |
| 132 | 132 | |
| 133 | 133 | // We have a payment, get the generic payment_meta item to reduce calls to it |
@@ -139,7 +139,7 @@ discard block |
||
| 139 | 139 | $this->post_status = $this->status; |
| 140 | 140 | $this->mode = $this->setup_mode(); |
| 141 | 141 | $this->parent_invoice = $invoice->post_parent; |
| 142 | - $this->post_name = $this->setup_post_name( $invoice ); |
|
| 142 | + $this->post_name = $this->setup_post_name($invoice); |
|
| 143 | 143 | $this->status_nicename = $this->setup_status_nicename($invoice->post_status); |
| 144 | 144 | |
| 145 | 145 | // Items |
@@ -161,8 +161,8 @@ discard block |
||
| 161 | 161 | |
| 162 | 162 | // User based |
| 163 | 163 | $this->ip = $this->setup_ip(); |
| 164 | - $this->user_id = !empty( $invoice->post_author ) ? $invoice->post_author : get_current_user_id();///$this->setup_user_id(); |
|
| 165 | - $this->email = get_the_author_meta( 'email', $this->user_id ); |
|
| 164 | + $this->user_id = !empty($invoice->post_author) ? $invoice->post_author : get_current_user_id(); ///$this->setup_user_id(); |
|
| 165 | + $this->email = get_the_author_meta('email', $this->user_id); |
|
| 166 | 166 | |
| 167 | 167 | $this->user_info = $this->setup_user_info(); |
| 168 | 168 | |
@@ -171,7 +171,7 @@ discard block |
||
| 171 | 171 | $this->company = $this->user_info['company']; |
| 172 | 172 | $this->vat_number = $this->user_info['vat_number']; |
| 173 | 173 | $this->vat_rate = $this->user_info['vat_rate']; |
| 174 | - $this->adddress_confirmed = $this->user_info['adddress_confirmed']; |
|
| 174 | + $this->adddress_confirmed = $this->user_info['adddress_confirmed']; |
|
| 175 | 175 | $this->address = $this->user_info['address']; |
| 176 | 176 | $this->city = $this->user_info['city']; |
| 177 | 177 | $this->country = $this->user_info['country']; |
@@ -186,35 +186,35 @@ discard block |
||
| 186 | 186 | // Other Identifiers |
| 187 | 187 | $this->key = $this->setup_invoice_key(); |
| 188 | 188 | $this->number = $this->setup_invoice_number(); |
| 189 | - $this->title = !empty( $invoice->post_title ) ? $invoice->post_title : $this->number; |
|
| 189 | + $this->title = !empty($invoice->post_title) ? $invoice->post_title : $this->number; |
|
| 190 | 190 | |
| 191 | - $this->full_name = trim( $this->first_name . ' '. $this->last_name ); |
|
| 191 | + $this->full_name = trim($this->first_name . ' ' . $this->last_name); |
|
| 192 | 192 | |
| 193 | 193 | // Allow extensions to add items to this object via hook |
| 194 | - do_action( 'wpinv_setup_invoice', $this, $invoice_id ); |
|
| 194 | + do_action('wpinv_setup_invoice', $this, $invoice_id); |
|
| 195 | 195 | |
| 196 | 196 | return true; |
| 197 | 197 | } |
| 198 | 198 | |
| 199 | 199 | private function setup_status_nicename($status) { |
| 200 | - $all_invoice_statuses = wpinv_get_invoice_statuses(); |
|
| 201 | - $status = isset( $all_invoice_statuses[$status] ) ? $all_invoice_statuses[$status] : __( $status, 'invoicing' ); |
|
| 200 | + $all_invoice_statuses = wpinv_get_invoice_statuses(); |
|
| 201 | + $status = isset($all_invoice_statuses[$status]) ? $all_invoice_statuses[$status] : __($status, 'invoicing'); |
|
| 202 | 202 | |
| 203 | - return apply_filters( 'setup_status_nicename', $status ); |
|
| 203 | + return apply_filters('setup_status_nicename', $status); |
|
| 204 | 204 | } |
| 205 | 205 | |
| 206 | - private function setup_post_name( $post = NULL ) { |
|
| 206 | + private function setup_post_name($post = NULL) { |
|
| 207 | 207 | global $wpdb; |
| 208 | 208 | |
| 209 | 209 | $post_name = ''; |
| 210 | 210 | |
| 211 | - if ( !empty( $post ) ) { |
|
| 212 | - if( !empty( $post->post_name ) ) { |
|
| 211 | + if (!empty($post)) { |
|
| 212 | + if (!empty($post->post_name)) { |
|
| 213 | 213 | $post_name = $post->post_name; |
| 214 | - } else if ( !empty( $post->ID ) ) { |
|
| 215 | - $post_name = wpinv_generate_post_name( $post->ID ); |
|
| 214 | + } else if (!empty($post->ID)) { |
|
| 215 | + $post_name = wpinv_generate_post_name($post->ID); |
|
| 216 | 216 | |
| 217 | - $wpdb->update( $wpdb->posts, array( 'post_name' => $post_name ), array( 'ID' => $post->ID ) ); |
|
| 217 | + $wpdb->update($wpdb->posts, array('post_name' => $post_name), array('ID' => $post->ID)); |
|
| 218 | 218 | } |
| 219 | 219 | } |
| 220 | 220 | |
@@ -222,12 +222,12 @@ discard block |
||
| 222 | 222 | } |
| 223 | 223 | |
| 224 | 224 | private function setup_due_date() { |
| 225 | - $due_date = $this->get_meta( '_wpinv_due_date' ); |
|
| 225 | + $due_date = $this->get_meta('_wpinv_due_date'); |
|
| 226 | 226 | |
| 227 | - if ( empty( $due_date ) ) { |
|
| 228 | - $overdue_time = strtotime( $this->date ) + ( DAY_IN_SECONDS * absint( wpinv_get_option( 'overdue_days' ) ) ); |
|
| 229 | - $due_date = date_i18n( 'Y-m-d', $overdue_time ); |
|
| 230 | - } else if ( $due_date == 'none' ) { |
|
| 227 | + if (empty($due_date)) { |
|
| 228 | + $overdue_time = strtotime($this->date) + (DAY_IN_SECONDS * absint(wpinv_get_option('overdue_days'))); |
|
| 229 | + $due_date = date_i18n('Y-m-d', $overdue_time); |
|
| 230 | + } else if ($due_date == 'none') { |
|
| 231 | 231 | $due_date = ''; |
| 232 | 232 | } |
| 233 | 233 | |
@@ -235,66 +235,66 @@ discard block |
||
| 235 | 235 | } |
| 236 | 236 | |
| 237 | 237 | private function setup_completed_date() { |
| 238 | - $invoice = get_post( $this->ID ); |
|
| 238 | + $invoice = get_post($this->ID); |
|
| 239 | 239 | |
| 240 | - if ( 'wpi-pending' == $invoice->post_status || 'preapproved' == $invoice->post_status ) { |
|
| 240 | + if ('wpi-pending' == $invoice->post_status || 'preapproved' == $invoice->post_status) { |
|
| 241 | 241 | return false; // This invoice was never paid |
| 242 | 242 | } |
| 243 | 243 | |
| 244 | - $date = ( $date = $this->get_meta( '_wpinv_completed_date', true ) ) ? $date : $invoice->modified_date; |
|
| 244 | + $date = ($date = $this->get_meta('_wpinv_completed_date', true)) ? $date : $invoice->modified_date; |
|
| 245 | 245 | |
| 246 | 246 | return $date; |
| 247 | 247 | } |
| 248 | 248 | |
| 249 | 249 | private function setup_cart_details() { |
| 250 | - $cart_details = isset( $this->payment_meta['cart_details'] ) ? maybe_unserialize( $this->payment_meta['cart_details'] ) : array(); |
|
| 250 | + $cart_details = isset($this->payment_meta['cart_details']) ? maybe_unserialize($this->payment_meta['cart_details']) : array(); |
|
| 251 | 251 | return $cart_details; |
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | public function array_convert() { |
| 255 | - return get_object_vars( $this ); |
|
| 255 | + return get_object_vars($this); |
|
| 256 | 256 | } |
| 257 | 257 | |
| 258 | 258 | private function setup_items() { |
| 259 | - $items = isset( $this->payment_meta['items'] ) ? maybe_unserialize( $this->payment_meta['items'] ) : array(); |
|
| 259 | + $items = isset($this->payment_meta['items']) ? maybe_unserialize($this->payment_meta['items']) : array(); |
|
| 260 | 260 | return $items; |
| 261 | 261 | } |
| 262 | 262 | |
| 263 | 263 | private function setup_fees() { |
| 264 | - $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array(); |
|
| 264 | + $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array(); |
|
| 265 | 265 | return $payment_fees; |
| 266 | 266 | } |
| 267 | 267 | |
| 268 | 268 | private function setup_currency() { |
| 269 | - $currency = isset( $this->payment_meta['currency'] ) ? $this->payment_meta['currency'] : apply_filters( 'wpinv_currency_default', wpinv_get_currency(), $this ); |
|
| 269 | + $currency = isset($this->payment_meta['currency']) ? $this->payment_meta['currency'] : apply_filters('wpinv_currency_default', wpinv_get_currency(), $this); |
|
| 270 | 270 | return $currency; |
| 271 | 271 | } |
| 272 | 272 | |
| 273 | 273 | private function setup_discount() { |
| 274 | 274 | //$discount = $this->get_meta( '_wpinv_discount', true ); |
| 275 | - $discount = (float)$this->subtotal - ( (float)$this->total - (float)$this->tax - (float)$this->fees_total ); |
|
| 276 | - if ( $discount < 0 ) { |
|
| 275 | + $discount = (float)$this->subtotal - ((float)$this->total - (float)$this->tax - (float)$this->fees_total); |
|
| 276 | + if ($discount < 0) { |
|
| 277 | 277 | $discount = 0; |
| 278 | 278 | } |
| 279 | - $discount = wpinv_round_amount( $discount ); |
|
| 279 | + $discount = wpinv_round_amount($discount); |
|
| 280 | 280 | |
| 281 | 281 | return $discount; |
| 282 | 282 | } |
| 283 | 283 | |
| 284 | 284 | private function setup_discount_code() { |
| 285 | - $discount_code = !empty( $this->discounts ) ? $this->discounts : $this->get_meta( '_wpinv_discount_code', true ); |
|
| 285 | + $discount_code = !empty($this->discounts) ? $this->discounts : $this->get_meta('_wpinv_discount_code', true); |
|
| 286 | 286 | return $discount_code; |
| 287 | 287 | } |
| 288 | 288 | |
| 289 | 289 | private function setup_tax() { |
| 290 | - $tax = $this->get_meta( '_wpinv_tax', true ); |
|
| 290 | + $tax = $this->get_meta('_wpinv_tax', true); |
|
| 291 | 291 | |
| 292 | 292 | // We don't have tax as it's own meta and no meta was passed |
| 293 | - if ( '' === $tax ) { |
|
| 294 | - $tax = isset( $this->payment_meta['tax'] ) ? $this->payment_meta['tax'] : 0; |
|
| 293 | + if ('' === $tax) { |
|
| 294 | + $tax = isset($this->payment_meta['tax']) ? $this->payment_meta['tax'] : 0; |
|
| 295 | 295 | } |
| 296 | 296 | |
| 297 | - if ( $tax < 0 ) { |
|
| 297 | + if ($tax < 0) { |
|
| 298 | 298 | $tax = 0; |
| 299 | 299 | } |
| 300 | 300 | |
@@ -305,9 +305,9 @@ discard block |
||
| 305 | 305 | $subtotal = 0; |
| 306 | 306 | $cart_details = $this->cart_details; |
| 307 | 307 | |
| 308 | - if ( is_array( $cart_details ) ) { |
|
| 309 | - foreach ( $cart_details as $item ) { |
|
| 310 | - if ( isset( $item['subtotal'] ) ) { |
|
| 308 | + if (is_array($cart_details)) { |
|
| 309 | + foreach ($cart_details as $item) { |
|
| 310 | + if (isset($item['subtotal'])) { |
|
| 311 | 311 | $subtotal += $item['subtotal']; |
| 312 | 312 | } |
| 313 | 313 | } |
@@ -321,23 +321,23 @@ discard block |
||
| 321 | 321 | } |
| 322 | 322 | |
| 323 | 323 | private function setup_discounts() { |
| 324 | - $discounts = ! empty( $this->payment_meta['user_info']['discount'] ) ? $this->payment_meta['user_info']['discount'] : array(); |
|
| 324 | + $discounts = !empty($this->payment_meta['user_info']['discount']) ? $this->payment_meta['user_info']['discount'] : array(); |
|
| 325 | 325 | return $discounts; |
| 326 | 326 | } |
| 327 | 327 | |
| 328 | 328 | private function setup_total() { |
| 329 | - $amount = $this->get_meta( '_wpinv_total', true ); |
|
| 329 | + $amount = $this->get_meta('_wpinv_total', true); |
|
| 330 | 330 | |
| 331 | - if ( empty( $amount ) && '0.00' != $amount ) { |
|
| 332 | - $meta = $this->get_meta( '_wpinv_payment_meta', true ); |
|
| 333 | - $meta = maybe_unserialize( $meta ); |
|
| 331 | + if (empty($amount) && '0.00' != $amount) { |
|
| 332 | + $meta = $this->get_meta('_wpinv_payment_meta', true); |
|
| 333 | + $meta = maybe_unserialize($meta); |
|
| 334 | 334 | |
| 335 | - if ( isset( $meta['amount'] ) ) { |
|
| 335 | + if (isset($meta['amount'])) { |
|
| 336 | 336 | $amount = $meta['amount']; |
| 337 | 337 | } |
| 338 | 338 | } |
| 339 | 339 | |
| 340 | - if($amount < 0){ |
|
| 340 | + if ($amount < 0) { |
|
| 341 | 341 | $amount = 0; |
| 342 | 342 | } |
| 343 | 343 | |
@@ -345,13 +345,13 @@ discard block |
||
| 345 | 345 | } |
| 346 | 346 | |
| 347 | 347 | private function setup_mode() { |
| 348 | - return $this->get_meta( '_wpinv_mode' ); |
|
| 348 | + return $this->get_meta('_wpinv_mode'); |
|
| 349 | 349 | } |
| 350 | 350 | |
| 351 | 351 | private function setup_gateway() { |
| 352 | - $gateway = $this->get_meta( '_wpinv_gateway' ); |
|
| 352 | + $gateway = $this->get_meta('_wpinv_gateway'); |
|
| 353 | 353 | |
| 354 | - if ( empty( $gateway ) && 'publish' === $this->status ) { |
|
| 354 | + if (empty($gateway) && 'publish' === $this->status) { |
|
| 355 | 355 | $gateway = 'manual'; |
| 356 | 356 | } |
| 357 | 357 | |
@@ -359,23 +359,23 @@ discard block |
||
| 359 | 359 | } |
| 360 | 360 | |
| 361 | 361 | private function setup_gateway_title() { |
| 362 | - $gateway_title = wpinv_get_gateway_checkout_label( $this->gateway ); |
|
| 362 | + $gateway_title = wpinv_get_gateway_checkout_label($this->gateway); |
|
| 363 | 363 | return $gateway_title; |
| 364 | 364 | } |
| 365 | 365 | |
| 366 | 366 | private function setup_transaction_id() { |
| 367 | - $transaction_id = $this->get_meta( '_wpinv_transaction_id' ); |
|
| 367 | + $transaction_id = $this->get_meta('_wpinv_transaction_id'); |
|
| 368 | 368 | |
| 369 | - if ( empty( $transaction_id ) || (int) $transaction_id === (int) $this->ID ) { |
|
| 369 | + if (empty($transaction_id) || (int)$transaction_id === (int)$this->ID) { |
|
| 370 | 370 | $gateway = $this->gateway; |
| 371 | - $transaction_id = apply_filters( 'wpinv_get_invoice_transaction_id-' . $gateway, $this->ID ); |
|
| 371 | + $transaction_id = apply_filters('wpinv_get_invoice_transaction_id-' . $gateway, $this->ID); |
|
| 372 | 372 | } |
| 373 | 373 | |
| 374 | 374 | return $transaction_id; |
| 375 | 375 | } |
| 376 | 376 | |
| 377 | 377 | private function setup_ip() { |
| 378 | - $ip = $this->get_meta( '_wpinv_user_ip' ); |
|
| 378 | + $ip = $this->get_meta('_wpinv_user_ip'); |
|
| 379 | 379 | return $ip; |
| 380 | 380 | } |
| 381 | 381 | |
@@ -385,62 +385,62 @@ discard block |
||
| 385 | 385 | ///} |
| 386 | 386 | |
| 387 | 387 | private function setup_first_name() { |
| 388 | - $first_name = $this->get_meta( '_wpinv_first_name' ); |
|
| 388 | + $first_name = $this->get_meta('_wpinv_first_name'); |
|
| 389 | 389 | return $first_name; |
| 390 | 390 | } |
| 391 | 391 | |
| 392 | 392 | private function setup_last_name() { |
| 393 | - $last_name = $this->get_meta( '_wpinv_last_name' ); |
|
| 393 | + $last_name = $this->get_meta('_wpinv_last_name'); |
|
| 394 | 394 | return $last_name; |
| 395 | 395 | } |
| 396 | 396 | |
| 397 | 397 | private function setup_company() { |
| 398 | - $company = $this->get_meta( '_wpinv_company' ); |
|
| 398 | + $company = $this->get_meta('_wpinv_company'); |
|
| 399 | 399 | return $company; |
| 400 | 400 | } |
| 401 | 401 | |
| 402 | 402 | private function setup_vat_number() { |
| 403 | - $vat_number = $this->get_meta( '_wpinv_vat_number' ); |
|
| 403 | + $vat_number = $this->get_meta('_wpinv_vat_number'); |
|
| 404 | 404 | return $vat_number; |
| 405 | 405 | } |
| 406 | 406 | |
| 407 | 407 | private function setup_vat_rate() { |
| 408 | - $vat_rate = $this->get_meta( '_wpinv_vat_rate' ); |
|
| 408 | + $vat_rate = $this->get_meta('_wpinv_vat_rate'); |
|
| 409 | 409 | return $vat_rate; |
| 410 | 410 | } |
| 411 | 411 | |
| 412 | 412 | private function setup_adddress_confirmed() { |
| 413 | - $adddress_confirmed = $this->get_meta( '_wpinv_adddress_confirmed' ); |
|
| 413 | + $adddress_confirmed = $this->get_meta('_wpinv_adddress_confirmed'); |
|
| 414 | 414 | return $adddress_confirmed; |
| 415 | 415 | } |
| 416 | 416 | |
| 417 | 417 | private function setup_phone() { |
| 418 | - $phone = $this->get_meta( '_wpinv_phone' ); |
|
| 418 | + $phone = $this->get_meta('_wpinv_phone'); |
|
| 419 | 419 | return $phone; |
| 420 | 420 | } |
| 421 | 421 | |
| 422 | 422 | private function setup_address() { |
| 423 | - $address = $this->get_meta( '_wpinv_address', true ); |
|
| 423 | + $address = $this->get_meta('_wpinv_address', true); |
|
| 424 | 424 | return $address; |
| 425 | 425 | } |
| 426 | 426 | |
| 427 | 427 | private function setup_city() { |
| 428 | - $city = $this->get_meta( '_wpinv_city', true ); |
|
| 428 | + $city = $this->get_meta('_wpinv_city', true); |
|
| 429 | 429 | return $city; |
| 430 | 430 | } |
| 431 | 431 | |
| 432 | 432 | private function setup_country() { |
| 433 | - $country = $this->get_meta( '_wpinv_country', true ); |
|
| 433 | + $country = $this->get_meta('_wpinv_country', true); |
|
| 434 | 434 | return $country; |
| 435 | 435 | } |
| 436 | 436 | |
| 437 | 437 | private function setup_state() { |
| 438 | - $state = $this->get_meta( '_wpinv_state', true ); |
|
| 438 | + $state = $this->get_meta('_wpinv_state', true); |
|
| 439 | 439 | return $state; |
| 440 | 440 | } |
| 441 | 441 | |
| 442 | 442 | private function setup_zip() { |
| 443 | - $zip = $this->get_meta( '_wpinv_zip', true ); |
|
| 443 | + $zip = $this->get_meta('_wpinv_zip', true); |
|
| 444 | 444 | return $zip; |
| 445 | 445 | } |
| 446 | 446 | |
@@ -449,7 +449,7 @@ discard block |
||
| 449 | 449 | 'user_id' => $this->user_id, |
| 450 | 450 | 'first_name' => $this->first_name, |
| 451 | 451 | 'last_name' => $this->last_name, |
| 452 | - 'email' => get_the_author_meta( 'email', $this->user_id ), |
|
| 452 | + 'email' => get_the_author_meta('email', $this->user_id), |
|
| 453 | 453 | 'phone' => $this->phone, |
| 454 | 454 | 'address' => $this->address, |
| 455 | 455 | 'city' => $this->city, |
@@ -464,12 +464,12 @@ discard block |
||
| 464 | 464 | ); |
| 465 | 465 | |
| 466 | 466 | $user_info = array(); |
| 467 | - if ( isset( $this->payment_meta['user_info'] ) ) { |
|
| 468 | - $user_info = maybe_unserialize( $this->payment_meta['user_info'] ); |
|
| 467 | + if (isset($this->payment_meta['user_info'])) { |
|
| 468 | + $user_info = maybe_unserialize($this->payment_meta['user_info']); |
|
| 469 | 469 | |
| 470 | - if ( !empty( $user_info ) && isset( $user_info['user_id'] ) && $post = get_post( $this->ID ) ) { |
|
| 470 | + if (!empty($user_info) && isset($user_info['user_id']) && $post = get_post($this->ID)) { |
|
| 471 | 471 | $this->user_id = $post->post_author; |
| 472 | - $this->email = get_the_author_meta( 'email', $this->user_id ); |
|
| 472 | + $this->email = get_the_author_meta('email', $this->user_id); |
|
| 473 | 473 | |
| 474 | 474 | $user_info['user_id'] = $this->user_id; |
| 475 | 475 | $user_info['email'] = $this->email; |
@@ -478,13 +478,13 @@ discard block |
||
| 478 | 478 | } |
| 479 | 479 | } |
| 480 | 480 | |
| 481 | - $user_info = wp_parse_args( $user_info, $defaults ); |
|
| 481 | + $user_info = wp_parse_args($user_info, $defaults); |
|
| 482 | 482 | |
| 483 | 483 | // Get the user, but only if it's been created |
| 484 | - $user = get_userdata( $this->user_id ); |
|
| 484 | + $user = get_userdata($this->user_id); |
|
| 485 | 485 | |
| 486 | - if ( !empty( $user ) && $user->ID > 0 ) { |
|
| 487 | - if ( empty( $user_info ) ) { |
|
| 486 | + if (!empty($user) && $user->ID > 0) { |
|
| 487 | + if (empty($user_info)) { |
|
| 488 | 488 | $user_info = array( |
| 489 | 489 | 'user_id' => $user->ID, |
| 490 | 490 | 'first_name' => $user->first_name, |
@@ -493,23 +493,23 @@ discard block |
||
| 493 | 493 | 'discount' => '', |
| 494 | 494 | ); |
| 495 | 495 | } else { |
| 496 | - foreach ( $user_info as $key => $value ) { |
|
| 497 | - if ( ! empty( $value ) ) { |
|
| 496 | + foreach ($user_info as $key => $value) { |
|
| 497 | + if (!empty($value)) { |
|
| 498 | 498 | continue; |
| 499 | 499 | } |
| 500 | 500 | |
| 501 | - switch( $key ) { |
|
| 501 | + switch ($key) { |
|
| 502 | 502 | case 'user_id': |
| 503 | - $user_info[ $key ] = $user->ID; |
|
| 503 | + $user_info[$key] = $user->ID; |
|
| 504 | 504 | break; |
| 505 | 505 | case 'first_name': |
| 506 | - $user_info[ $key ] = $user->first_name; |
|
| 506 | + $user_info[$key] = $user->first_name; |
|
| 507 | 507 | break; |
| 508 | 508 | case 'last_name': |
| 509 | - $user_info[ $key ] = $user->last_name; |
|
| 509 | + $user_info[$key] = $user->last_name; |
|
| 510 | 510 | break; |
| 511 | 511 | case 'email': |
| 512 | - $user_info[ $key ] = $user->user_email; |
|
| 512 | + $user_info[$key] = $user->user_email; |
|
| 513 | 513 | break; |
| 514 | 514 | } |
| 515 | 515 | } |
@@ -520,25 +520,25 @@ discard block |
||
| 520 | 520 | } |
| 521 | 521 | |
| 522 | 522 | private function setup_invoice_key() { |
| 523 | - $key = $this->get_meta( '_wpinv_key', true ); |
|
| 523 | + $key = $this->get_meta('_wpinv_key', true); |
|
| 524 | 524 | |
| 525 | 525 | return $key; |
| 526 | 526 | } |
| 527 | 527 | |
| 528 | 528 | private function setup_invoice_number() { |
| 529 | - $number = $this->get_meta( '_wpinv_number', true ); |
|
| 529 | + $number = $this->get_meta('_wpinv_number', true); |
|
| 530 | 530 | |
| 531 | - if ( !$number ) { |
|
| 531 | + if (!$number) { |
|
| 532 | 532 | $number = $this->ID; |
| 533 | 533 | |
| 534 | - if ( $this->status == 'auto-draft' ) { |
|
| 535 | - if ( wpinv_sequential_number_active( $this->post_type ) ) { |
|
| 536 | - $next_number = wpinv_get_next_invoice_number( $this->post_type ); |
|
| 534 | + if ($this->status == 'auto-draft') { |
|
| 535 | + if (wpinv_sequential_number_active($this->post_type)) { |
|
| 536 | + $next_number = wpinv_get_next_invoice_number($this->post_type); |
|
| 537 | 537 | $number = $next_number; |
| 538 | 538 | } |
| 539 | 539 | } |
| 540 | 540 | |
| 541 | - $number = wpinv_format_invoice_number( $number, $this->post_type ); |
|
| 541 | + $number = wpinv_format_invoice_number($number, $this->post_type); |
|
| 542 | 542 | } |
| 543 | 543 | |
| 544 | 544 | return $number; |
@@ -547,10 +547,10 @@ discard block |
||
| 547 | 547 | private function insert_invoice() { |
| 548 | 548 | global $wpdb; |
| 549 | 549 | |
| 550 | - if ( empty( $this->post_type ) ) { |
|
| 551 | - if ( !empty( $this->ID ) && $post_type = get_post_type( $this->ID ) ) { |
|
| 550 | + if (empty($this->post_type)) { |
|
| 551 | + if (!empty($this->ID) && $post_type = get_post_type($this->ID)) { |
|
| 552 | 552 | $this->post_type = $post_type; |
| 553 | - } else if ( !empty( $this->parent_invoice ) && $post_type = get_post_type( $this->parent_invoice ) ) { |
|
| 553 | + } else if (!empty($this->parent_invoice) && $post_type = get_post_type($this->parent_invoice)) { |
|
| 554 | 554 | $this->post_type = $post_type; |
| 555 | 555 | } else { |
| 556 | 556 | $this->post_type = 'wpi_invoice'; |
@@ -558,16 +558,16 @@ discard block |
||
| 558 | 558 | } |
| 559 | 559 | |
| 560 | 560 | $invoice_number = $this->ID; |
| 561 | - if ( $number = $this->get_meta( '_wpinv_number', true ) ) { |
|
| 561 | + if ($number = $this->get_meta('_wpinv_number', true)) { |
|
| 562 | 562 | $invoice_number = $number; |
| 563 | 563 | } |
| 564 | 564 | |
| 565 | - if ( empty( $this->key ) ) { |
|
| 565 | + if (empty($this->key)) { |
|
| 566 | 566 | $this->key = self::generate_key(); |
| 567 | 567 | $this->pending['key'] = $this->key; |
| 568 | 568 | } |
| 569 | 569 | |
| 570 | - if ( empty( $this->ip ) ) { |
|
| 570 | + if (empty($this->ip)) { |
|
| 571 | 571 | $this->ip = wpinv_get_ip(); |
| 572 | 572 | $this->pending['ip'] = $this->ip; |
| 573 | 573 | } |
@@ -604,61 +604,61 @@ discard block |
||
| 604 | 604 | 'post_status' => $this->status, |
| 605 | 605 | 'post_author' => $this->user_id, |
| 606 | 606 | 'post_type' => $this->post_type, |
| 607 | - 'post_date' => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time( 'mysql' ), |
|
| 608 | - 'post_date_gmt' => ! empty( $this->date ) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date( $this->date ) : current_time( 'mysql', 1 ), |
|
| 607 | + 'post_date' => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? $this->date : current_time('mysql'), |
|
| 608 | + 'post_date_gmt' => !empty($this->date) && $this->date != '0000-00-00 00:00:00' ? get_gmt_from_date($this->date) : current_time('mysql', 1), |
|
| 609 | 609 | 'post_parent' => $this->parent_invoice, |
| 610 | 610 | ); |
| 611 | - $args = apply_filters( 'wpinv_insert_invoice_args', $post_data, $this ); |
|
| 611 | + $args = apply_filters('wpinv_insert_invoice_args', $post_data, $this); |
|
| 612 | 612 | |
| 613 | 613 | // Create a blank invoice |
| 614 | - if ( !empty( $this->ID ) ) { |
|
| 615 | - $args['ID'] = $this->ID; |
|
| 614 | + if (!empty($this->ID)) { |
|
| 615 | + $args['ID'] = $this->ID; |
|
| 616 | 616 | |
| 617 | - $invoice_id = wp_update_post( $args, true ); |
|
| 617 | + $invoice_id = wp_update_post($args, true); |
|
| 618 | 618 | } else { |
| 619 | - $invoice_id = wp_insert_post( $args, true ); |
|
| 619 | + $invoice_id = wp_insert_post($args, true); |
|
| 620 | 620 | } |
| 621 | 621 | |
| 622 | - if ( is_wp_error( $invoice_id ) ) { |
|
| 622 | + if (is_wp_error($invoice_id)) { |
|
| 623 | 623 | return false; |
| 624 | 624 | } |
| 625 | 625 | |
| 626 | - if ( !empty( $invoice_id ) ) { |
|
| 626 | + if (!empty($invoice_id)) { |
|
| 627 | 627 | $this->ID = $invoice_id; |
| 628 | 628 | $this->_ID = $invoice_id; |
| 629 | 629 | |
| 630 | - $this->payment_meta = apply_filters( 'wpinv_payment_meta', $this->payment_meta, $payment_data ); |
|
| 631 | - if ( ! empty( $this->payment_meta['fees'] ) ) { |
|
| 632 | - $this->fees = array_merge( $this->fees, $this->payment_meta['fees'] ); |
|
| 633 | - foreach( $this->fees as $fee ) { |
|
| 634 | - $this->increase_fees( $fee['amount'] ); |
|
| 630 | + $this->payment_meta = apply_filters('wpinv_payment_meta', $this->payment_meta, $payment_data); |
|
| 631 | + if (!empty($this->payment_meta['fees'])) { |
|
| 632 | + $this->fees = array_merge($this->fees, $this->payment_meta['fees']); |
|
| 633 | + foreach ($this->fees as $fee) { |
|
| 634 | + $this->increase_fees($fee['amount']); |
|
| 635 | 635 | } |
| 636 | 636 | } |
| 637 | 637 | |
| 638 | - $this->update_meta( '_wpinv_payment_meta', $this->payment_meta ); |
|
| 638 | + $this->update_meta('_wpinv_payment_meta', $this->payment_meta); |
|
| 639 | 639 | $this->new = true; |
| 640 | 640 | } |
| 641 | 641 | |
| 642 | 642 | return $this->ID; |
| 643 | 643 | } |
| 644 | 644 | |
| 645 | - public function save( $setup = false ) { |
|
| 645 | + public function save($setup = false) { |
|
| 646 | 646 | global $wpi_session; |
| 647 | 647 | |
| 648 | 648 | $saved = false; |
| 649 | - if ( empty( $this->items ) ) { |
|
| 649 | + if (empty($this->items)) { |
|
| 650 | 650 | return $saved; // Don't save empty invoice. |
| 651 | 651 | } |
| 652 | 652 | |
| 653 | - if ( empty( $this->key ) ) { |
|
| 653 | + if (empty($this->key)) { |
|
| 654 | 654 | $this->key = self::generate_key(); |
| 655 | 655 | $this->pending['key'] = $this->key; |
| 656 | 656 | } |
| 657 | 657 | |
| 658 | - if ( empty( $this->ID ) ) { |
|
| 658 | + if (empty($this->ID)) { |
|
| 659 | 659 | $invoice_id = $this->insert_invoice(); |
| 660 | 660 | |
| 661 | - if ( false === $invoice_id ) { |
|
| 661 | + if (false === $invoice_id) { |
|
| 662 | 662 | $saved = false; |
| 663 | 663 | } else { |
| 664 | 664 | $this->ID = $invoice_id; |
@@ -666,27 +666,27 @@ discard block |
||
| 666 | 666 | } |
| 667 | 667 | |
| 668 | 668 | // If we have something pending, let's save it |
| 669 | - if ( !empty( $this->pending ) ) { |
|
| 669 | + if (!empty($this->pending)) { |
|
| 670 | 670 | $total_increase = 0; |
| 671 | 671 | $total_decrease = 0; |
| 672 | 672 | |
| 673 | - foreach ( $this->pending as $key => $value ) { |
|
| 674 | - switch( $key ) { |
|
| 673 | + foreach ($this->pending as $key => $value) { |
|
| 674 | + switch ($key) { |
|
| 675 | 675 | case 'items': |
| 676 | 676 | // Update totals for pending items |
| 677 | - foreach ( $this->pending[ $key ] as $item ) { |
|
| 678 | - switch( $item['action'] ) { |
|
| 677 | + foreach ($this->pending[$key] as $item) { |
|
| 678 | + switch ($item['action']) { |
|
| 679 | 679 | case 'add': |
| 680 | 680 | $price = $item['price']; |
| 681 | 681 | $taxes = $item['tax']; |
| 682 | 682 | |
| 683 | - if ( 'publish' === $this->status ) { |
|
| 683 | + if ('publish' === $this->status) { |
|
| 684 | 684 | $total_increase += $price; |
| 685 | 685 | } |
| 686 | 686 | break; |
| 687 | 687 | |
| 688 | 688 | case 'remove': |
| 689 | - if ( 'publish' === $this->status ) { |
|
| 689 | + if ('publish' === $this->status) { |
|
| 690 | 690 | $total_decrease += $item['price']; |
| 691 | 691 | } |
| 692 | 692 | break; |
@@ -694,16 +694,16 @@ discard block |
||
| 694 | 694 | } |
| 695 | 695 | break; |
| 696 | 696 | case 'fees': |
| 697 | - if ( 'publish' !== $this->status ) { |
|
| 697 | + if ('publish' !== $this->status) { |
|
| 698 | 698 | break; |
| 699 | 699 | } |
| 700 | 700 | |
| 701 | - if ( empty( $this->pending[ $key ] ) ) { |
|
| 701 | + if (empty($this->pending[$key])) { |
|
| 702 | 702 | break; |
| 703 | 703 | } |
| 704 | 704 | |
| 705 | - foreach ( $this->pending[ $key ] as $fee ) { |
|
| 706 | - switch( $fee['action'] ) { |
|
| 705 | + foreach ($this->pending[$key] as $fee) { |
|
| 706 | + switch ($fee['action']) { |
|
| 707 | 707 | case 'add': |
| 708 | 708 | $total_increase += $fee['amount']; |
| 709 | 709 | break; |
@@ -715,83 +715,83 @@ discard block |
||
| 715 | 715 | } |
| 716 | 716 | break; |
| 717 | 717 | case 'status': |
| 718 | - $this->update_status( $this->status ); |
|
| 718 | + $this->update_status($this->status); |
|
| 719 | 719 | break; |
| 720 | 720 | case 'gateway': |
| 721 | - $this->update_meta( '_wpinv_gateway', $this->gateway ); |
|
| 721 | + $this->update_meta('_wpinv_gateway', $this->gateway); |
|
| 722 | 722 | break; |
| 723 | 723 | case 'mode': |
| 724 | - $this->update_meta( '_wpinv_mode', $this->mode ); |
|
| 724 | + $this->update_meta('_wpinv_mode', $this->mode); |
|
| 725 | 725 | break; |
| 726 | 726 | case 'transaction_id': |
| 727 | - $this->update_meta( '_wpinv_transaction_id', $this->transaction_id ); |
|
| 727 | + $this->update_meta('_wpinv_transaction_id', $this->transaction_id); |
|
| 728 | 728 | break; |
| 729 | 729 | case 'ip': |
| 730 | - $this->update_meta( '_wpinv_user_ip', $this->ip ); |
|
| 730 | + $this->update_meta('_wpinv_user_ip', $this->ip); |
|
| 731 | 731 | break; |
| 732 | 732 | ///case 'user_id': |
| 733 | 733 | ///$this->update_meta( '_wpinv_user_id', $this->user_id ); |
| 734 | 734 | ///$this->user_info['user_id'] = $this->user_id; |
| 735 | 735 | ///break; |
| 736 | 736 | case 'first_name': |
| 737 | - $this->update_meta( '_wpinv_first_name', $this->first_name ); |
|
| 737 | + $this->update_meta('_wpinv_first_name', $this->first_name); |
|
| 738 | 738 | $this->user_info['first_name'] = $this->first_name; |
| 739 | 739 | break; |
| 740 | 740 | case 'last_name': |
| 741 | - $this->update_meta( '_wpinv_last_name', $this->last_name ); |
|
| 741 | + $this->update_meta('_wpinv_last_name', $this->last_name); |
|
| 742 | 742 | $this->user_info['last_name'] = $this->last_name; |
| 743 | 743 | break; |
| 744 | 744 | case 'phone': |
| 745 | - $this->update_meta( '_wpinv_phone', $this->phone ); |
|
| 745 | + $this->update_meta('_wpinv_phone', $this->phone); |
|
| 746 | 746 | $this->user_info['phone'] = $this->phone; |
| 747 | 747 | break; |
| 748 | 748 | case 'address': |
| 749 | - $this->update_meta( '_wpinv_address', $this->address ); |
|
| 749 | + $this->update_meta('_wpinv_address', $this->address); |
|
| 750 | 750 | $this->user_info['address'] = $this->address; |
| 751 | 751 | break; |
| 752 | 752 | case 'city': |
| 753 | - $this->update_meta( '_wpinv_city', $this->city ); |
|
| 753 | + $this->update_meta('_wpinv_city', $this->city); |
|
| 754 | 754 | $this->user_info['city'] = $this->city; |
| 755 | 755 | break; |
| 756 | 756 | case 'country': |
| 757 | - $this->update_meta( '_wpinv_country', $this->country ); |
|
| 757 | + $this->update_meta('_wpinv_country', $this->country); |
|
| 758 | 758 | $this->user_info['country'] = $this->country; |
| 759 | 759 | break; |
| 760 | 760 | case 'state': |
| 761 | - $this->update_meta( '_wpinv_state', $this->state ); |
|
| 761 | + $this->update_meta('_wpinv_state', $this->state); |
|
| 762 | 762 | $this->user_info['state'] = $this->state; |
| 763 | 763 | break; |
| 764 | 764 | case 'zip': |
| 765 | - $this->update_meta( '_wpinv_zip', $this->zip ); |
|
| 765 | + $this->update_meta('_wpinv_zip', $this->zip); |
|
| 766 | 766 | $this->user_info['zip'] = $this->zip; |
| 767 | 767 | break; |
| 768 | 768 | case 'company': |
| 769 | - $this->update_meta( '_wpinv_company', $this->company ); |
|
| 769 | + $this->update_meta('_wpinv_company', $this->company); |
|
| 770 | 770 | $this->user_info['company'] = $this->company; |
| 771 | 771 | break; |
| 772 | 772 | case 'vat_number': |
| 773 | - $this->update_meta( '_wpinv_vat_number', $this->vat_number ); |
|
| 773 | + $this->update_meta('_wpinv_vat_number', $this->vat_number); |
|
| 774 | 774 | $this->user_info['vat_number'] = $this->vat_number; |
| 775 | 775 | |
| 776 | - $vat_info = $wpi_session->get( 'user_vat_data' ); |
|
| 777 | - if ( $this->vat_number && !empty( $vat_info ) && isset( $vat_info['number'] ) && isset( $vat_info['valid'] ) && $vat_info['number'] == $this->vat_number ) { |
|
| 778 | - $adddress_confirmed = isset( $vat_info['adddress_confirmed'] ) ? $vat_info['adddress_confirmed'] : false; |
|
| 779 | - $this->update_meta( '_wpinv_adddress_confirmed', (bool)$adddress_confirmed ); |
|
| 776 | + $vat_info = $wpi_session->get('user_vat_data'); |
|
| 777 | + if ($this->vat_number && !empty($vat_info) && isset($vat_info['number']) && isset($vat_info['valid']) && $vat_info['number'] == $this->vat_number) { |
|
| 778 | + $adddress_confirmed = isset($vat_info['adddress_confirmed']) ? $vat_info['adddress_confirmed'] : false; |
|
| 779 | + $this->update_meta('_wpinv_adddress_confirmed', (bool)$adddress_confirmed); |
|
| 780 | 780 | $this->user_info['adddress_confirmed'] = (bool)$adddress_confirmed; |
| 781 | 781 | } |
| 782 | 782 | |
| 783 | 783 | break; |
| 784 | 784 | case 'vat_rate': |
| 785 | - $this->update_meta( '_wpinv_vat_rate', $this->vat_rate ); |
|
| 785 | + $this->update_meta('_wpinv_vat_rate', $this->vat_rate); |
|
| 786 | 786 | $this->user_info['vat_rate'] = $this->vat_rate; |
| 787 | 787 | break; |
| 788 | 788 | case 'adddress_confirmed': |
| 789 | - $this->update_meta( '_wpinv_adddress_confirmed', $this->adddress_confirmed ); |
|
| 789 | + $this->update_meta('_wpinv_adddress_confirmed', $this->adddress_confirmed); |
|
| 790 | 790 | $this->user_info['adddress_confirmed'] = $this->adddress_confirmed; |
| 791 | 791 | break; |
| 792 | 792 | |
| 793 | 793 | case 'key': |
| 794 | - $this->update_meta( '_wpinv_key', $this->key ); |
|
| 794 | + $this->update_meta('_wpinv_key', $this->key); |
|
| 795 | 795 | break; |
| 796 | 796 | case 'date': |
| 797 | 797 | $args = array( |
@@ -800,49 +800,49 @@ discard block |
||
| 800 | 800 | 'edit_date' => true, |
| 801 | 801 | ); |
| 802 | 802 | |
| 803 | - wp_update_post( $args ); |
|
| 803 | + wp_update_post($args); |
|
| 804 | 804 | break; |
| 805 | 805 | case 'due_date': |
| 806 | - if ( empty( $this->due_date ) ) { |
|
| 806 | + if (empty($this->due_date)) { |
|
| 807 | 807 | $this->due_date = 'none'; |
| 808 | 808 | } |
| 809 | 809 | |
| 810 | - $this->update_meta( '_wpinv_due_date', $this->due_date ); |
|
| 810 | + $this->update_meta('_wpinv_due_date', $this->due_date); |
|
| 811 | 811 | break; |
| 812 | 812 | case 'completed_date': |
| 813 | - $this->update_meta( '_wpinv_completed_date', $this->completed_date ); |
|
| 813 | + $this->update_meta('_wpinv_completed_date', $this->completed_date); |
|
| 814 | 814 | break; |
| 815 | 815 | case 'discounts': |
| 816 | - if ( ! is_array( $this->discounts ) ) { |
|
| 817 | - $this->discounts = explode( ',', $this->discounts ); |
|
| 816 | + if (!is_array($this->discounts)) { |
|
| 817 | + $this->discounts = explode(',', $this->discounts); |
|
| 818 | 818 | } |
| 819 | 819 | |
| 820 | - $this->user_info['discount'] = implode( ',', $this->discounts ); |
|
| 820 | + $this->user_info['discount'] = implode(',', $this->discounts); |
|
| 821 | 821 | break; |
| 822 | 822 | case 'discount': |
| 823 | - $this->update_meta( '_wpinv_discount', wpinv_round_amount( $this->discount ) ); |
|
| 823 | + $this->update_meta('_wpinv_discount', wpinv_round_amount($this->discount)); |
|
| 824 | 824 | break; |
| 825 | 825 | case 'discount_code': |
| 826 | - $this->update_meta( '_wpinv_discount_code', $this->discount_code ); |
|
| 826 | + $this->update_meta('_wpinv_discount_code', $this->discount_code); |
|
| 827 | 827 | break; |
| 828 | 828 | case 'parent_invoice': |
| 829 | 829 | $args = array( |
| 830 | 830 | 'ID' => $this->ID, |
| 831 | 831 | 'post_parent' => $this->parent_invoice, |
| 832 | 832 | ); |
| 833 | - wp_update_post( $args ); |
|
| 833 | + wp_update_post($args); |
|
| 834 | 834 | break; |
| 835 | 835 | default: |
| 836 | - do_action( 'wpinv_save', $this, $key ); |
|
| 836 | + do_action('wpinv_save', $this, $key); |
|
| 837 | 837 | break; |
| 838 | 838 | } |
| 839 | 839 | } |
| 840 | 840 | |
| 841 | - $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) ); |
|
| 842 | - $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) ); |
|
| 843 | - $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) ); |
|
| 841 | + $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal)); |
|
| 842 | + $this->update_meta('_wpinv_total', wpinv_round_amount($this->total)); |
|
| 843 | + $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax)); |
|
| 844 | 844 | |
| 845 | - $this->items = array_values( $this->items ); |
|
| 845 | + $this->items = array_values($this->items); |
|
| 846 | 846 | |
| 847 | 847 | $new_meta = array( |
| 848 | 848 | 'items' => $this->items, |
@@ -853,12 +853,12 @@ discard block |
||
| 853 | 853 | ); |
| 854 | 854 | |
| 855 | 855 | $meta = $this->get_meta(); |
| 856 | - $merged_meta = array_merge( $meta, $new_meta ); |
|
| 856 | + $merged_meta = array_merge($meta, $new_meta); |
|
| 857 | 857 | |
| 858 | 858 | // Only save the payment meta if it's changed |
| 859 | - if ( md5( serialize( $meta ) ) !== md5( serialize( $merged_meta) ) ) { |
|
| 860 | - $updated = $this->update_meta( '_wpinv_payment_meta', $merged_meta ); |
|
| 861 | - if ( false !== $updated ) { |
|
| 859 | + if (md5(serialize($meta)) !== md5(serialize($merged_meta))) { |
|
| 860 | + $updated = $this->update_meta('_wpinv_payment_meta', $merged_meta); |
|
| 861 | + if (false !== $updated) { |
|
| 862 | 862 | $saved = true; |
| 863 | 863 | } |
| 864 | 864 | } |
@@ -866,15 +866,15 @@ discard block |
||
| 866 | 866 | $this->pending = array(); |
| 867 | 867 | $saved = true; |
| 868 | 868 | } else { |
| 869 | - $this->update_meta( '_wpinv_subtotal', wpinv_round_amount( $this->subtotal ) ); |
|
| 870 | - $this->update_meta( '_wpinv_total', wpinv_round_amount( $this->total ) ); |
|
| 871 | - $this->update_meta( '_wpinv_tax', wpinv_round_amount( $this->tax ) ); |
|
| 869 | + $this->update_meta('_wpinv_subtotal', wpinv_round_amount($this->subtotal)); |
|
| 870 | + $this->update_meta('_wpinv_total', wpinv_round_amount($this->total)); |
|
| 871 | + $this->update_meta('_wpinv_tax', wpinv_round_amount($this->tax)); |
|
| 872 | 872 | } |
| 873 | 873 | |
| 874 | - do_action( 'wpinv_invoice_save', $this, $saved ); |
|
| 874 | + do_action('wpinv_invoice_save', $this, $saved); |
|
| 875 | 875 | |
| 876 | - if ( true === $saved || $setup ) { |
|
| 877 | - $this->setup_invoice( $this->ID ); |
|
| 876 | + if (true === $saved || $setup) { |
|
| 877 | + $this->setup_invoice($this->ID); |
|
| 878 | 878 | } |
| 879 | 879 | |
| 880 | 880 | $this->refresh_item_ids(); |
@@ -882,7 +882,7 @@ discard block |
||
| 882 | 882 | return $saved; |
| 883 | 883 | } |
| 884 | 884 | |
| 885 | - public function add_fee( $args, $global = true ) { |
|
| 885 | + public function add_fee($args, $global = true) { |
|
| 886 | 886 | $default_args = array( |
| 887 | 887 | 'label' => '', |
| 888 | 888 | 'amount' => 0, |
@@ -892,75 +892,75 @@ discard block |
||
| 892 | 892 | 'item_id' => 0, |
| 893 | 893 | ); |
| 894 | 894 | |
| 895 | - $fee = wp_parse_args( $args, $default_args ); |
|
| 895 | + $fee = wp_parse_args($args, $default_args); |
|
| 896 | 896 | |
| 897 | - if ( !empty( $fee['label'] ) ) { |
|
| 897 | + if (!empty($fee['label'])) { |
|
| 898 | 898 | return false; |
| 899 | 899 | } |
| 900 | 900 | |
| 901 | - $fee['id'] = sanitize_title( $fee['label'] ); |
|
| 901 | + $fee['id'] = sanitize_title($fee['label']); |
|
| 902 | 902 | |
| 903 | - $this->fees[] = $fee; |
|
| 903 | + $this->fees[] = $fee; |
|
| 904 | 904 | |
| 905 | 905 | $added_fee = $fee; |
| 906 | 906 | $added_fee['action'] = 'add'; |
| 907 | 907 | $this->pending['fees'][] = $added_fee; |
| 908 | - reset( $this->fees ); |
|
| 908 | + reset($this->fees); |
|
| 909 | 909 | |
| 910 | - $this->increase_fees( $fee['amount'] ); |
|
| 910 | + $this->increase_fees($fee['amount']); |
|
| 911 | 911 | return true; |
| 912 | 912 | } |
| 913 | 913 | |
| 914 | - public function remove_fee( $key ) { |
|
| 914 | + public function remove_fee($key) { |
|
| 915 | 915 | $removed = false; |
| 916 | 916 | |
| 917 | - if ( is_numeric( $key ) ) { |
|
| 918 | - $removed = $this->remove_fee_by( 'index', $key ); |
|
| 917 | + if (is_numeric($key)) { |
|
| 918 | + $removed = $this->remove_fee_by('index', $key); |
|
| 919 | 919 | } |
| 920 | 920 | |
| 921 | 921 | return $removed; |
| 922 | 922 | } |
| 923 | 923 | |
| 924 | - public function remove_fee_by( $key, $value, $global = false ) { |
|
| 925 | - $allowed_fee_keys = apply_filters( 'wpinv_fee_keys', array( |
|
| 924 | + public function remove_fee_by($key, $value, $global = false) { |
|
| 925 | + $allowed_fee_keys = apply_filters('wpinv_fee_keys', array( |
|
| 926 | 926 | 'index', 'label', 'amount', 'type', |
| 927 | - ) ); |
|
| 927 | + )); |
|
| 928 | 928 | |
| 929 | - if ( ! in_array( $key, $allowed_fee_keys ) ) { |
|
| 929 | + if (!in_array($key, $allowed_fee_keys)) { |
|
| 930 | 930 | return false; |
| 931 | 931 | } |
| 932 | 932 | |
| 933 | 933 | $removed = false; |
| 934 | - if ( 'index' === $key && array_key_exists( $value, $this->fees ) ) { |
|
| 935 | - $removed_fee = $this->fees[ $value ]; |
|
| 934 | + if ('index' === $key && array_key_exists($value, $this->fees)) { |
|
| 935 | + $removed_fee = $this->fees[$value]; |
|
| 936 | 936 | $removed_fee['action'] = 'remove'; |
| 937 | 937 | $this->pending['fees'][] = $removed_fee; |
| 938 | 938 | |
| 939 | - $this->decrease_fees( $removed_fee['amount'] ); |
|
| 939 | + $this->decrease_fees($removed_fee['amount']); |
|
| 940 | 940 | |
| 941 | - unset( $this->fees[ $value ] ); |
|
| 941 | + unset($this->fees[$value]); |
|
| 942 | 942 | $removed = true; |
| 943 | - } else if ( 'index' !== $key ) { |
|
| 944 | - foreach ( $this->fees as $index => $fee ) { |
|
| 945 | - if ( isset( $fee[ $key ] ) && $fee[ $key ] == $value ) { |
|
| 943 | + } else if ('index' !== $key) { |
|
| 944 | + foreach ($this->fees as $index => $fee) { |
|
| 945 | + if (isset($fee[$key]) && $fee[$key] == $value) { |
|
| 946 | 946 | $removed_fee = $fee; |
| 947 | 947 | $removed_fee['action'] = 'remove'; |
| 948 | 948 | $this->pending['fees'][] = $removed_fee; |
| 949 | 949 | |
| 950 | - $this->decrease_fees( $removed_fee['amount'] ); |
|
| 950 | + $this->decrease_fees($removed_fee['amount']); |
|
| 951 | 951 | |
| 952 | - unset( $this->fees[ $index ] ); |
|
| 952 | + unset($this->fees[$index]); |
|
| 953 | 953 | $removed = true; |
| 954 | 954 | |
| 955 | - if ( false === $global ) { |
|
| 955 | + if (false === $global) { |
|
| 956 | 956 | break; |
| 957 | 957 | } |
| 958 | 958 | } |
| 959 | 959 | } |
| 960 | 960 | } |
| 961 | 961 | |
| 962 | - if ( true === $removed ) { |
|
| 963 | - $this->fees = array_values( $this->fees ); |
|
| 962 | + if (true === $removed) { |
|
| 963 | + $this->fees = array_values($this->fees); |
|
| 964 | 964 | } |
| 965 | 965 | |
| 966 | 966 | return $removed; |
@@ -968,35 +968,35 @@ discard block |
||
| 968 | 968 | |
| 969 | 969 | |
| 970 | 970 | |
| 971 | - public function add_note( $note = '', $customer_type = false, $added_by_user = false, $system = false ) { |
|
| 971 | + public function add_note($note = '', $customer_type = false, $added_by_user = false, $system = false) { |
|
| 972 | 972 | // Bail if no note specified |
| 973 | - if( !$note ) { |
|
| 973 | + if (!$note) { |
|
| 974 | 974 | return false; |
| 975 | 975 | } |
| 976 | 976 | |
| 977 | - if ( empty( $this->ID ) ) |
|
| 977 | + if (empty($this->ID)) |
|
| 978 | 978 | return false; |
| 979 | 979 | |
| 980 | - if ( ( ( is_user_logged_in() && current_user_can( 'manage_options' ) ) || $added_by_user ) && !$system ) { |
|
| 981 | - $user = get_user_by( 'id', get_current_user_id() ); |
|
| 980 | + if (((is_user_logged_in() && current_user_can('manage_options')) || $added_by_user) && !$system) { |
|
| 981 | + $user = get_user_by('id', get_current_user_id()); |
|
| 982 | 982 | $comment_author = $user->display_name; |
| 983 | 983 | $comment_author_email = $user->user_email; |
| 984 | 984 | } else { |
| 985 | - $comment_author = __( 'System', 'invoicing' ); |
|
| 986 | - $comment_author_email = strtolower( __( 'System', 'invoicing' ) ) . '@'; |
|
| 987 | - $comment_author_email .= isset( $_SERVER['HTTP_HOST'] ) ? str_replace( 'www.', '', $_SERVER['HTTP_HOST'] ) : 'noreply.com'; |
|
| 988 | - $comment_author_email = sanitize_email( $comment_author_email ); |
|
| 985 | + $comment_author = __('System', 'invoicing'); |
|
| 986 | + $comment_author_email = strtolower(__('System', 'invoicing')) . '@'; |
|
| 987 | + $comment_author_email .= isset($_SERVER['HTTP_HOST']) ? str_replace('www.', '', $_SERVER['HTTP_HOST']) : 'noreply.com'; |
|
| 988 | + $comment_author_email = sanitize_email($comment_author_email); |
|
| 989 | 989 | } |
| 990 | 990 | |
| 991 | - do_action( 'wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type ); |
|
| 991 | + do_action('wpinv_pre_insert_invoice_note', $this->ID, $note, $customer_type); |
|
| 992 | 992 | |
| 993 | - $note_id = wp_insert_comment( wp_filter_comment( array( |
|
| 993 | + $note_id = wp_insert_comment(wp_filter_comment(array( |
|
| 994 | 994 | 'comment_post_ID' => $this->ID, |
| 995 | 995 | 'comment_content' => $note, |
| 996 | 996 | 'comment_agent' => 'WPInvoicing', |
| 997 | 997 | 'user_id' => is_admin() ? get_current_user_id() : 0, |
| 998 | - 'comment_date' => current_time( 'mysql' ), |
|
| 999 | - 'comment_date_gmt' => current_time( 'mysql', 1 ), |
|
| 998 | + 'comment_date' => current_time('mysql'), |
|
| 999 | + 'comment_date_gmt' => current_time('mysql', 1), |
|
| 1000 | 1000 | 'comment_approved' => 1, |
| 1001 | 1001 | 'comment_parent' => 0, |
| 1002 | 1002 | 'comment_author' => $comment_author, |
@@ -1004,53 +1004,53 @@ discard block |
||
| 1004 | 1004 | 'comment_author_url' => '', |
| 1005 | 1005 | 'comment_author_email' => $comment_author_email, |
| 1006 | 1006 | 'comment_type' => 'wpinv_note' |
| 1007 | - ) ) ); |
|
| 1007 | + ))); |
|
| 1008 | 1008 | |
| 1009 | - do_action( 'wpinv_insert_payment_note', $note_id, $this->ID, $note ); |
|
| 1009 | + do_action('wpinv_insert_payment_note', $note_id, $this->ID, $note); |
|
| 1010 | 1010 | |
| 1011 | - if ( $customer_type ) { |
|
| 1012 | - add_comment_meta( $note_id, '_wpi_customer_note', 1 ); |
|
| 1011 | + if ($customer_type) { |
|
| 1012 | + add_comment_meta($note_id, '_wpi_customer_note', 1); |
|
| 1013 | 1013 | |
| 1014 | - do_action( 'wpinv_new_customer_note', array( 'invoice_id' => $this->ID, 'user_note' => $note ) ); |
|
| 1014 | + do_action('wpinv_new_customer_note', array('invoice_id' => $this->ID, 'user_note' => $note)); |
|
| 1015 | 1015 | } |
| 1016 | 1016 | |
| 1017 | 1017 | return $note_id; |
| 1018 | 1018 | } |
| 1019 | 1019 | |
| 1020 | - private function increase_subtotal( $amount = 0.00 ) { |
|
| 1021 | - $amount = (float) $amount; |
|
| 1020 | + private function increase_subtotal($amount = 0.00) { |
|
| 1021 | + $amount = (float)$amount; |
|
| 1022 | 1022 | $this->subtotal += $amount; |
| 1023 | - $this->subtotal = wpinv_round_amount( $this->subtotal ); |
|
| 1023 | + $this->subtotal = wpinv_round_amount($this->subtotal); |
|
| 1024 | 1024 | |
| 1025 | 1025 | $this->recalculate_total(); |
| 1026 | 1026 | } |
| 1027 | 1027 | |
| 1028 | - private function decrease_subtotal( $amount = 0.00 ) { |
|
| 1029 | - $amount = (float) $amount; |
|
| 1028 | + private function decrease_subtotal($amount = 0.00) { |
|
| 1029 | + $amount = (float)$amount; |
|
| 1030 | 1030 | $this->subtotal -= $amount; |
| 1031 | - $this->subtotal = wpinv_round_amount( $this->subtotal ); |
|
| 1031 | + $this->subtotal = wpinv_round_amount($this->subtotal); |
|
| 1032 | 1032 | |
| 1033 | - if ( $this->subtotal < 0 ) { |
|
| 1033 | + if ($this->subtotal < 0) { |
|
| 1034 | 1034 | $this->subtotal = 0; |
| 1035 | 1035 | } |
| 1036 | 1036 | |
| 1037 | 1037 | $this->recalculate_total(); |
| 1038 | 1038 | } |
| 1039 | 1039 | |
| 1040 | - private function increase_fees( $amount = 0.00 ) { |
|
| 1040 | + private function increase_fees($amount = 0.00) { |
|
| 1041 | 1041 | $amount = (float)$amount; |
| 1042 | 1042 | $this->fees_total += $amount; |
| 1043 | - $this->fees_total = wpinv_round_amount( $this->fees_total ); |
|
| 1043 | + $this->fees_total = wpinv_round_amount($this->fees_total); |
|
| 1044 | 1044 | |
| 1045 | 1045 | $this->recalculate_total(); |
| 1046 | 1046 | } |
| 1047 | 1047 | |
| 1048 | - private function decrease_fees( $amount = 0.00 ) { |
|
| 1049 | - $amount = (float) $amount; |
|
| 1048 | + private function decrease_fees($amount = 0.00) { |
|
| 1049 | + $amount = (float)$amount; |
|
| 1050 | 1050 | $this->fees_total -= $amount; |
| 1051 | - $this->fees_total = wpinv_round_amount( $this->fees_total ); |
|
| 1051 | + $this->fees_total = wpinv_round_amount($this->fees_total); |
|
| 1052 | 1052 | |
| 1053 | - if ( $this->fees_total < 0 ) { |
|
| 1053 | + if ($this->fees_total < 0) { |
|
| 1054 | 1054 | $this->fees_total = 0; |
| 1055 | 1055 | } |
| 1056 | 1056 | |
@@ -1061,54 +1061,54 @@ discard block |
||
| 1061 | 1061 | global $wpi_nosave; |
| 1062 | 1062 | |
| 1063 | 1063 | $this->total = $this->subtotal + $this->tax + $this->fees_total; |
| 1064 | - $this->total = wpinv_round_amount( $this->total ); |
|
| 1064 | + $this->total = wpinv_round_amount($this->total); |
|
| 1065 | 1065 | |
| 1066 | - do_action( 'wpinv_invoice_recalculate_total', $this, $wpi_nosave ); |
|
| 1066 | + do_action('wpinv_invoice_recalculate_total', $this, $wpi_nosave); |
|
| 1067 | 1067 | } |
| 1068 | 1068 | |
| 1069 | - public function increase_tax( $amount = 0.00 ) { |
|
| 1070 | - $amount = (float) $amount; |
|
| 1069 | + public function increase_tax($amount = 0.00) { |
|
| 1070 | + $amount = (float)$amount; |
|
| 1071 | 1071 | $this->tax += $amount; |
| 1072 | 1072 | |
| 1073 | 1073 | $this->recalculate_total(); |
| 1074 | 1074 | } |
| 1075 | 1075 | |
| 1076 | - public function decrease_tax( $amount = 0.00 ) { |
|
| 1077 | - $amount = (float) $amount; |
|
| 1076 | + public function decrease_tax($amount = 0.00) { |
|
| 1077 | + $amount = (float)$amount; |
|
| 1078 | 1078 | $this->tax -= $amount; |
| 1079 | 1079 | |
| 1080 | - if ( $this->tax < 0 ) { |
|
| 1080 | + if ($this->tax < 0) { |
|
| 1081 | 1081 | $this->tax = 0; |
| 1082 | 1082 | } |
| 1083 | 1083 | |
| 1084 | 1084 | $this->recalculate_total(); |
| 1085 | 1085 | } |
| 1086 | 1086 | |
| 1087 | - public function update_status( $new_status = false, $note = '', $manual = false ) { |
|
| 1088 | - $old_status = ! empty( $this->old_status ) ? $this->old_status : get_post_status( $this->ID ); |
|
| 1087 | + public function update_status($new_status = false, $note = '', $manual = false) { |
|
| 1088 | + $old_status = !empty($this->old_status) ? $this->old_status : get_post_status($this->ID); |
|
| 1089 | 1089 | |
| 1090 | - if ( $old_status === $new_status && in_array( $new_status, array_keys( wpinv_get_invoice_statuses() ) ) ) { |
|
| 1090 | + if ($old_status === $new_status && in_array($new_status, array_keys(wpinv_get_invoice_statuses()))) { |
|
| 1091 | 1091 | return false; // Don't permit status changes that aren't changes |
| 1092 | 1092 | } |
| 1093 | 1093 | |
| 1094 | - $do_change = apply_filters( 'wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status ); |
|
| 1094 | + $do_change = apply_filters('wpinv_should_update_invoice_status', true, $this->ID, $new_status, $old_status); |
|
| 1095 | 1095 | $updated = false; |
| 1096 | 1096 | |
| 1097 | - if ( $do_change ) { |
|
| 1098 | - do_action( 'wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status ); |
|
| 1097 | + if ($do_change) { |
|
| 1098 | + do_action('wpinv_before_invoice_status_change', $this->ID, $new_status, $old_status); |
|
| 1099 | 1099 | |
| 1100 | 1100 | $update_post_data = array(); |
| 1101 | 1101 | $update_post_data['ID'] = $this->ID; |
| 1102 | 1102 | $update_post_data['post_status'] = $new_status; |
| 1103 | - $update_post_data['edit_date'] = current_time( 'mysql', 0 ); |
|
| 1104 | - $update_post_data['edit_date_gmt'] = current_time( 'mysql', 1 ); |
|
| 1103 | + $update_post_data['edit_date'] = current_time('mysql', 0); |
|
| 1104 | + $update_post_data['edit_date_gmt'] = current_time('mysql', 1); |
|
| 1105 | 1105 | |
| 1106 | - $update_post_data = apply_filters( 'wpinv_update_invoice_status_fields', $update_post_data, $this->ID ); |
|
| 1106 | + $update_post_data = apply_filters('wpinv_update_invoice_status_fields', $update_post_data, $this->ID); |
|
| 1107 | 1107 | |
| 1108 | - $updated = wp_update_post( $update_post_data ); |
|
| 1108 | + $updated = wp_update_post($update_post_data); |
|
| 1109 | 1109 | |
| 1110 | 1110 | // Process any specific status functions |
| 1111 | - switch( $new_status ) { |
|
| 1111 | + switch ($new_status) { |
|
| 1112 | 1112 | case 'wpi-refunded': |
| 1113 | 1113 | $this->process_refund(); |
| 1114 | 1114 | break; |
@@ -1121,9 +1121,9 @@ discard block |
||
| 1121 | 1121 | } |
| 1122 | 1122 | |
| 1123 | 1123 | // Status was changed. |
| 1124 | - do_action( 'wpinv_status_' . $new_status, $this->ID, $old_status ); |
|
| 1125 | - do_action( 'wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status ); |
|
| 1126 | - do_action( 'wpinv_update_status', $this->ID, $new_status, $old_status ); |
|
| 1124 | + do_action('wpinv_status_' . $new_status, $this->ID, $old_status); |
|
| 1125 | + do_action('wpinv_status_' . $old_status . '_to_' . $new_status, $this->ID, $old_status); |
|
| 1126 | + do_action('wpinv_update_status', $this->ID, $new_status, $old_status); |
|
| 1127 | 1127 | } |
| 1128 | 1128 | |
| 1129 | 1129 | return $updated; |
@@ -1137,72 +1137,72 @@ discard block |
||
| 1137 | 1137 | $this->save(); |
| 1138 | 1138 | } |
| 1139 | 1139 | |
| 1140 | - public function update_meta( $meta_key = '', $meta_value = '', $prev_value = '' ) { |
|
| 1141 | - if ( empty( $meta_key ) ) { |
|
| 1140 | + public function update_meta($meta_key = '', $meta_value = '', $prev_value = '') { |
|
| 1141 | + if (empty($meta_key)) { |
|
| 1142 | 1142 | return false; |
| 1143 | 1143 | } |
| 1144 | 1144 | |
| 1145 | - if ( $meta_key == 'key' || $meta_key == 'date' ) { |
|
| 1145 | + if ($meta_key == 'key' || $meta_key == 'date') { |
|
| 1146 | 1146 | $current_meta = $this->get_meta(); |
| 1147 | - $current_meta[ $meta_key ] = $meta_value; |
|
| 1147 | + $current_meta[$meta_key] = $meta_value; |
|
| 1148 | 1148 | |
| 1149 | 1149 | $meta_key = '_wpinv_payment_meta'; |
| 1150 | 1150 | $meta_value = $current_meta; |
| 1151 | 1151 | } |
| 1152 | 1152 | |
| 1153 | - $meta_value = apply_filters( 'wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID ); |
|
| 1153 | + $meta_value = apply_filters('wpinv_update_payment_meta_' . $meta_key, $meta_value, $this->ID); |
|
| 1154 | 1154 | |
| 1155 | - if ( $meta_key == '_wpinv_completed_date' && !empty( $meta_value ) ) { |
|
| 1155 | + if ($meta_key == '_wpinv_completed_date' && !empty($meta_value)) { |
|
| 1156 | 1156 | $args = array( |
| 1157 | 1157 | 'ID' => $this->ID, |
| 1158 | 1158 | 'post_date' => $meta_value, |
| 1159 | 1159 | 'edit_date' => true, |
| 1160 | - 'post_date_gmt' => get_gmt_from_date( $meta_value ), |
|
| 1160 | + 'post_date_gmt' => get_gmt_from_date($meta_value), |
|
| 1161 | 1161 | 'post_modified' => $meta_value, |
| 1162 | - 'post_modified_gmt' => get_gmt_from_date( $meta_value ) |
|
| 1162 | + 'post_modified_gmt' => get_gmt_from_date($meta_value) |
|
| 1163 | 1163 | ); |
| 1164 | - wp_update_post( $args ); |
|
| 1164 | + wp_update_post($args); |
|
| 1165 | 1165 | } |
| 1166 | 1166 | |
| 1167 | - return update_post_meta( $this->ID, $meta_key, $meta_value, $prev_value ); |
|
| 1167 | + return update_post_meta($this->ID, $meta_key, $meta_value, $prev_value); |
|
| 1168 | 1168 | } |
| 1169 | 1169 | |
| 1170 | 1170 | private function process_refund() { |
| 1171 | 1171 | $process_refund = true; |
| 1172 | 1172 | |
| 1173 | 1173 | // If the payment was not in publish, don't decrement stats as they were never incremented |
| 1174 | - if ( 'publish' != $this->old_status || 'wpi-refunded' != $this->status ) { |
|
| 1174 | + if ('publish' != $this->old_status || 'wpi-refunded' != $this->status) { |
|
| 1175 | 1175 | $process_refund = false; |
| 1176 | 1176 | } |
| 1177 | 1177 | |
| 1178 | 1178 | // Allow extensions to filter for their own payment types, Example: Recurring Payments |
| 1179 | - $process_refund = apply_filters( 'wpinv_should_process_refund', $process_refund, $this ); |
|
| 1179 | + $process_refund = apply_filters('wpinv_should_process_refund', $process_refund, $this); |
|
| 1180 | 1180 | |
| 1181 | - if ( false === $process_refund ) { |
|
| 1181 | + if (false === $process_refund) { |
|
| 1182 | 1182 | return; |
| 1183 | 1183 | } |
| 1184 | 1184 | |
| 1185 | - do_action( 'wpinv_pre_refund_invoice', $this ); |
|
| 1185 | + do_action('wpinv_pre_refund_invoice', $this); |
|
| 1186 | 1186 | |
| 1187 | - $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_refund', true, $this ); |
|
| 1188 | - $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_refund', true, $this ); |
|
| 1189 | - $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_refund', true, $this ); |
|
| 1187 | + $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_refund', true, $this); |
|
| 1188 | + $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_refund', true, $this); |
|
| 1189 | + $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_refund', true, $this); |
|
| 1190 | 1190 | |
| 1191 | - do_action( 'wpinv_post_refund_invoice', $this ); |
|
| 1191 | + do_action('wpinv_post_refund_invoice', $this); |
|
| 1192 | 1192 | } |
| 1193 | 1193 | |
| 1194 | 1194 | private function process_failure() { |
| 1195 | 1195 | $discounts = $this->discounts; |
| 1196 | - if ( empty( $discounts ) ) { |
|
| 1196 | + if (empty($discounts)) { |
|
| 1197 | 1197 | return; |
| 1198 | 1198 | } |
| 1199 | 1199 | |
| 1200 | - if ( ! is_array( $discounts ) ) { |
|
| 1201 | - $discounts = array_map( 'trim', explode( ',', $discounts ) ); |
|
| 1200 | + if (!is_array($discounts)) { |
|
| 1201 | + $discounts = array_map('trim', explode(',', $discounts)); |
|
| 1202 | 1202 | } |
| 1203 | 1203 | |
| 1204 | - foreach ( $discounts as $discount ) { |
|
| 1205 | - wpinv_decrease_discount_usage( $discount ); |
|
| 1204 | + foreach ($discounts as $discount) { |
|
| 1205 | + wpinv_decrease_discount_usage($discount); |
|
| 1206 | 1206 | } |
| 1207 | 1207 | } |
| 1208 | 1208 | |
@@ -1210,92 +1210,92 @@ discard block |
||
| 1210 | 1210 | $process_pending = true; |
| 1211 | 1211 | |
| 1212 | 1212 | // If the payment was not in publish or revoked status, don't decrement stats as they were never incremented |
| 1213 | - if ( ( 'publish' != $this->old_status && 'revoked' != $this->old_status ) || 'wpi-pending' != $this->status ) { |
|
| 1213 | + if (('publish' != $this->old_status && 'revoked' != $this->old_status) || 'wpi-pending' != $this->status) { |
|
| 1214 | 1214 | $process_pending = false; |
| 1215 | 1215 | } |
| 1216 | 1216 | |
| 1217 | 1217 | // Allow extensions to filter for their own payment types, Example: Recurring Payments |
| 1218 | - $process_pending = apply_filters( 'wpinv_should_process_pending', $process_pending, $this ); |
|
| 1218 | + $process_pending = apply_filters('wpinv_should_process_pending', $process_pending, $this); |
|
| 1219 | 1219 | |
| 1220 | - if ( false === $process_pending ) { |
|
| 1220 | + if (false === $process_pending) { |
|
| 1221 | 1221 | return; |
| 1222 | 1222 | } |
| 1223 | 1223 | |
| 1224 | - $decrease_store_earnings = apply_filters( 'wpinv_decrease_store_earnings_on_pending', true, $this ); |
|
| 1225 | - $decrease_customer_value = apply_filters( 'wpinv_decrease_customer_value_on_pending', true, $this ); |
|
| 1226 | - $decrease_purchase_count = apply_filters( 'wpinv_decrease_customer_purchase_count_on_pending', true, $this ); |
|
| 1224 | + $decrease_store_earnings = apply_filters('wpinv_decrease_store_earnings_on_pending', true, $this); |
|
| 1225 | + $decrease_customer_value = apply_filters('wpinv_decrease_customer_value_on_pending', true, $this); |
|
| 1226 | + $decrease_purchase_count = apply_filters('wpinv_decrease_customer_purchase_count_on_pending', true, $this); |
|
| 1227 | 1227 | |
| 1228 | 1228 | $this->completed_date = ''; |
| 1229 | - $this->update_meta( '_wpinv_completed_date', '' ); |
|
| 1229 | + $this->update_meta('_wpinv_completed_date', ''); |
|
| 1230 | 1230 | } |
| 1231 | 1231 | |
| 1232 | 1232 | // get data |
| 1233 | - public function get_meta( $meta_key = '_wpinv_payment_meta', $single = true ) { |
|
| 1234 | - $meta = get_post_meta( $this->ID, $meta_key, $single ); |
|
| 1233 | + public function get_meta($meta_key = '_wpinv_payment_meta', $single = true) { |
|
| 1234 | + $meta = get_post_meta($this->ID, $meta_key, $single); |
|
| 1235 | 1235 | |
| 1236 | - if ( $meta_key === '_wpinv_payment_meta' ) { |
|
| 1236 | + if ($meta_key === '_wpinv_payment_meta') { |
|
| 1237 | 1237 | |
| 1238 | - if(!is_array($meta)){$meta = array();} // we need this to be an array so make sure it is. |
|
| 1238 | + if (!is_array($meta)) {$meta = array(); } // we need this to be an array so make sure it is. |
|
| 1239 | 1239 | |
| 1240 | - if ( empty( $meta['key'] ) ) { |
|
| 1240 | + if (empty($meta['key'])) { |
|
| 1241 | 1241 | $meta['key'] = $this->setup_invoice_key(); |
| 1242 | 1242 | } |
| 1243 | 1243 | |
| 1244 | - if ( empty( $meta['date'] ) ) { |
|
| 1245 | - $meta['date'] = get_post_field( 'post_date', $this->ID ); |
|
| 1244 | + if (empty($meta['date'])) { |
|
| 1245 | + $meta['date'] = get_post_field('post_date', $this->ID); |
|
| 1246 | 1246 | } |
| 1247 | 1247 | } |
| 1248 | 1248 | |
| 1249 | - $meta = apply_filters( 'wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID ); |
|
| 1249 | + $meta = apply_filters('wpinv_get_invoice_meta_' . $meta_key, $meta, $this->ID); |
|
| 1250 | 1250 | |
| 1251 | - return apply_filters( 'wpinv_get_invoice_meta', $meta, $this->ID, $meta_key ); |
|
| 1251 | + return apply_filters('wpinv_get_invoice_meta', $meta, $this->ID, $meta_key); |
|
| 1252 | 1252 | } |
| 1253 | 1253 | |
| 1254 | 1254 | public function get_description() { |
| 1255 | - $post = get_post( $this->ID ); |
|
| 1255 | + $post = get_post($this->ID); |
|
| 1256 | 1256 | |
| 1257 | - $description = !empty( $post ) ? $post->post_content : ''; |
|
| 1258 | - return apply_filters( 'wpinv_get_description', $description, $this->ID, $this ); |
|
| 1257 | + $description = !empty($post) ? $post->post_content : ''; |
|
| 1258 | + return apply_filters('wpinv_get_description', $description, $this->ID, $this); |
|
| 1259 | 1259 | } |
| 1260 | 1260 | |
| 1261 | - public function get_status( $nicename = false ) { |
|
| 1262 | - if ( !$nicename ) { |
|
| 1261 | + public function get_status($nicename = false) { |
|
| 1262 | + if (!$nicename) { |
|
| 1263 | 1263 | $status = $this->status; |
| 1264 | 1264 | } else { |
| 1265 | 1265 | $status = $this->status_nicename; |
| 1266 | 1266 | } |
| 1267 | 1267 | |
| 1268 | - return apply_filters( 'wpinv_get_status', $status, $nicename, $this->ID, $this ); |
|
| 1268 | + return apply_filters('wpinv_get_status', $status, $nicename, $this->ID, $this); |
|
| 1269 | 1269 | } |
| 1270 | 1270 | |
| 1271 | 1271 | public function get_cart_details() { |
| 1272 | - return apply_filters( 'wpinv_cart_details', $this->cart_details, $this->ID, $this ); |
|
| 1272 | + return apply_filters('wpinv_cart_details', $this->cart_details, $this->ID, $this); |
|
| 1273 | 1273 | } |
| 1274 | 1274 | |
| 1275 | - public function get_subtotal( $currency = false ) { |
|
| 1276 | - $subtotal = wpinv_round_amount( $this->subtotal ); |
|
| 1275 | + public function get_subtotal($currency = false) { |
|
| 1276 | + $subtotal = wpinv_round_amount($this->subtotal); |
|
| 1277 | 1277 | |
| 1278 | - if ( $currency ) { |
|
| 1279 | - $subtotal = wpinv_price( wpinv_format_amount( $subtotal, NULL, !$currency ), $this->get_currency() ); |
|
| 1278 | + if ($currency) { |
|
| 1279 | + $subtotal = wpinv_price(wpinv_format_amount($subtotal, NULL, !$currency), $this->get_currency()); |
|
| 1280 | 1280 | } |
| 1281 | 1281 | |
| 1282 | - return apply_filters( 'wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency ); |
|
| 1282 | + return apply_filters('wpinv_get_invoice_subtotal', $subtotal, $this->ID, $this, $currency); |
|
| 1283 | 1283 | } |
| 1284 | 1284 | |
| 1285 | - public function get_total( $currency = false ) { |
|
| 1286 | - if ( $this->is_free_trial() ) { |
|
| 1287 | - $total = wpinv_round_amount( 0 ); |
|
| 1285 | + public function get_total($currency = false) { |
|
| 1286 | + if ($this->is_free_trial()) { |
|
| 1287 | + $total = wpinv_round_amount(0); |
|
| 1288 | 1288 | } else { |
| 1289 | - $total = wpinv_round_amount( $this->total ); |
|
| 1289 | + $total = wpinv_round_amount($this->total); |
|
| 1290 | 1290 | } |
| 1291 | - if ( $currency ) { |
|
| 1292 | - $total = wpinv_price( wpinv_format_amount( $total, NULL, !$currency ), $this->get_currency() ); |
|
| 1291 | + if ($currency) { |
|
| 1292 | + $total = wpinv_price(wpinv_format_amount($total, NULL, !$currency), $this->get_currency()); |
|
| 1293 | 1293 | } |
| 1294 | 1294 | |
| 1295 | - return apply_filters( 'wpinv_get_invoice_total', $total, $this->ID, $this, $currency ); |
|
| 1295 | + return apply_filters('wpinv_get_invoice_total', $total, $this->ID, $this, $currency); |
|
| 1296 | 1296 | } |
| 1297 | 1297 | |
| 1298 | - public function get_recurring_details( $field = '', $currency = false ) { |
|
| 1298 | + public function get_recurring_details($field = '', $currency = false) { |
|
| 1299 | 1299 | $data = array(); |
| 1300 | 1300 | $data['cart_details'] = $this->cart_details; |
| 1301 | 1301 | $data['subtotal'] = $this->get_subtotal(); |
@@ -1303,45 +1303,45 @@ discard block |
||
| 1303 | 1303 | $data['tax'] = $this->get_tax(); |
| 1304 | 1304 | $data['total'] = $this->get_total(); |
| 1305 | 1305 | |
| 1306 | - if ( !empty( $this->cart_details ) && ( $this->is_parent() || $this->is_renewal() ) ) { |
|
| 1306 | + if (!empty($this->cart_details) && ($this->is_parent() || $this->is_renewal())) { |
|
| 1307 | 1307 | $is_free_trial = $this->is_free_trial(); |
| 1308 | - $discounts = $this->get_discounts( true ); |
|
| 1308 | + $discounts = $this->get_discounts(true); |
|
| 1309 | 1309 | |
| 1310 | - if ( $is_free_trial || !empty( $discounts ) ) { |
|
| 1310 | + if ($is_free_trial || !empty($discounts)) { |
|
| 1311 | 1311 | $first_use_only = false; |
| 1312 | 1312 | |
| 1313 | - if ( !empty( $discounts ) ) { |
|
| 1314 | - foreach ( $discounts as $key => $code ) { |
|
| 1315 | - if ( wpinv_discount_is_recurring( $code, true ) ) { |
|
| 1313 | + if (!empty($discounts)) { |
|
| 1314 | + foreach ($discounts as $key => $code) { |
|
| 1315 | + if (wpinv_discount_is_recurring($code, true)) { |
|
| 1316 | 1316 | $first_use_only = true; |
| 1317 | 1317 | break; |
| 1318 | 1318 | } |
| 1319 | 1319 | } |
| 1320 | 1320 | } |
| 1321 | 1321 | |
| 1322 | - if ( !$first_use_only ) { |
|
| 1323 | - $data['subtotal'] = wpinv_round_amount( $this->subtotal ); |
|
| 1324 | - $data['discount'] = wpinv_round_amount( $this->discount ); |
|
| 1325 | - $data['tax'] = wpinv_round_amount( $this->tax ); |
|
| 1326 | - $data['total'] = wpinv_round_amount( $this->total ); |
|
| 1322 | + if (!$first_use_only) { |
|
| 1323 | + $data['subtotal'] = wpinv_round_amount($this->subtotal); |
|
| 1324 | + $data['discount'] = wpinv_round_amount($this->discount); |
|
| 1325 | + $data['tax'] = wpinv_round_amount($this->tax); |
|
| 1326 | + $data['total'] = wpinv_round_amount($this->total); |
|
| 1327 | 1327 | } else { |
| 1328 | 1328 | $cart_subtotal = 0; |
| 1329 | 1329 | $cart_discount = 0; |
| 1330 | 1330 | $cart_tax = 0; |
| 1331 | 1331 | |
| 1332 | - foreach ( $this->cart_details as $key => $item ) { |
|
| 1333 | - $item_quantity = $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1; |
|
| 1334 | - $item_subtotal = !empty( $item['subtotal'] ) ? $item['subtotal'] : $item['item_price'] * $item_quantity; |
|
| 1332 | + foreach ($this->cart_details as $key => $item) { |
|
| 1333 | + $item_quantity = $item['quantity'] > 0 ? absint($item['quantity']) : 1; |
|
| 1334 | + $item_subtotal = !empty($item['subtotal']) ? $item['subtotal'] : $item['item_price'] * $item_quantity; |
|
| 1335 | 1335 | $item_discount = 0; |
| 1336 | - $item_tax = $item_subtotal > 0 && !empty( $item['vat_rate'] ) ? ( $item_subtotal * 0.01 * (float)$item['vat_rate'] ) : 0; |
|
| 1336 | + $item_tax = $item_subtotal > 0 && !empty($item['vat_rate']) ? ($item_subtotal * 0.01 * (float)$item['vat_rate']) : 0; |
|
| 1337 | 1337 | |
| 1338 | - if ( wpinv_prices_include_tax() ) { |
|
| 1339 | - $item_subtotal -= wpinv_round_amount( $item_tax ); |
|
| 1338 | + if (wpinv_prices_include_tax()) { |
|
| 1339 | + $item_subtotal -= wpinv_round_amount($item_tax); |
|
| 1340 | 1340 | } |
| 1341 | 1341 | |
| 1342 | 1342 | $item_total = $item_subtotal - $item_discount + $item_tax; |
| 1343 | 1343 | // Do not allow totals to go negative |
| 1344 | - if ( $item_total < 0 ) { |
|
| 1344 | + if ($item_total < 0) { |
|
| 1345 | 1345 | $item_total = 0; |
| 1346 | 1346 | } |
| 1347 | 1347 | |
@@ -1349,113 +1349,113 @@ discard block |
||
| 1349 | 1349 | $cart_discount += (float)($item_discount); |
| 1350 | 1350 | $cart_tax += (float)($item_tax); |
| 1351 | 1351 | |
| 1352 | - $data['cart_details'][$key]['discount'] = wpinv_round_amount( $item_discount ); |
|
| 1353 | - $data['cart_details'][$key]['tax'] = wpinv_round_amount( $item_tax ); |
|
| 1354 | - $data['cart_details'][$key]['price'] = wpinv_round_amount( $item_total ); |
|
| 1352 | + $data['cart_details'][$key]['discount'] = wpinv_round_amount($item_discount); |
|
| 1353 | + $data['cart_details'][$key]['tax'] = wpinv_round_amount($item_tax); |
|
| 1354 | + $data['cart_details'][$key]['price'] = wpinv_round_amount($item_total); |
|
| 1355 | 1355 | } |
| 1356 | 1356 | |
| 1357 | - $data['subtotal'] = wpinv_round_amount( $cart_subtotal ); |
|
| 1358 | - $data['discount'] = wpinv_round_amount( $cart_discount ); |
|
| 1359 | - $data['tax'] = wpinv_round_amount( $cart_tax ); |
|
| 1360 | - $data['total'] = wpinv_round_amount( $data['subtotal'] + $data['tax'] ); |
|
| 1357 | + $data['subtotal'] = wpinv_round_amount($cart_subtotal); |
|
| 1358 | + $data['discount'] = wpinv_round_amount($cart_discount); |
|
| 1359 | + $data['tax'] = wpinv_round_amount($cart_tax); |
|
| 1360 | + $data['total'] = wpinv_round_amount($data['subtotal'] + $data['tax']); |
|
| 1361 | 1361 | } |
| 1362 | 1362 | } |
| 1363 | 1363 | } |
| 1364 | 1364 | |
| 1365 | - $data = apply_filters( 'wpinv_get_invoice_recurring_details', $data, $this, $field, $currency ); |
|
| 1365 | + $data = apply_filters('wpinv_get_invoice_recurring_details', $data, $this, $field, $currency); |
|
| 1366 | 1366 | |
| 1367 | - if ( isset( $data[$field] ) ) { |
|
| 1368 | - return ( $currency ? wpinv_price( $data[$field], $this->get_currency() ) : $data[$field] ); |
|
| 1367 | + if (isset($data[$field])) { |
|
| 1368 | + return ($currency ? wpinv_price($data[$field], $this->get_currency()) : $data[$field]); |
|
| 1369 | 1369 | } |
| 1370 | 1370 | |
| 1371 | 1371 | return $data; |
| 1372 | 1372 | } |
| 1373 | 1373 | |
| 1374 | - public function get_final_tax( $currency = false ) { |
|
| 1375 | - $final_total = wpinv_round_amount( $this->tax ); |
|
| 1376 | - if ( $currency ) { |
|
| 1377 | - $final_total = wpinv_price( wpinv_format_amount( $final_total, NULL, !$currency ), $this->get_currency() ); |
|
| 1374 | + public function get_final_tax($currency = false) { |
|
| 1375 | + $final_total = wpinv_round_amount($this->tax); |
|
| 1376 | + if ($currency) { |
|
| 1377 | + $final_total = wpinv_price(wpinv_format_amount($final_total, NULL, !$currency), $this->get_currency()); |
|
| 1378 | 1378 | } |
| 1379 | 1379 | |
| 1380 | - return apply_filters( 'wpinv_get_invoice_final_total', $final_total, $this, $currency ); |
|
| 1380 | + return apply_filters('wpinv_get_invoice_final_total', $final_total, $this, $currency); |
|
| 1381 | 1381 | } |
| 1382 | 1382 | |
| 1383 | - public function get_discounts( $array = false ) { |
|
| 1383 | + public function get_discounts($array = false) { |
|
| 1384 | 1384 | $discounts = $this->discounts; |
| 1385 | - if ( $array && $discounts ) { |
|
| 1386 | - $discounts = explode( ',', $discounts ); |
|
| 1385 | + if ($array && $discounts) { |
|
| 1386 | + $discounts = explode(',', $discounts); |
|
| 1387 | 1387 | } |
| 1388 | - return apply_filters( 'wpinv_payment_discounts', $discounts, $this->ID, $this, $array ); |
|
| 1388 | + return apply_filters('wpinv_payment_discounts', $discounts, $this->ID, $this, $array); |
|
| 1389 | 1389 | } |
| 1390 | 1390 | |
| 1391 | - public function get_discount( $currency = false, $dash = false ) { |
|
| 1392 | - if ( !empty( $this->discounts ) ) { |
|
| 1391 | + public function get_discount($currency = false, $dash = false) { |
|
| 1392 | + if (!empty($this->discounts)) { |
|
| 1393 | 1393 | global $ajax_cart_details; |
| 1394 | 1394 | $ajax_cart_details = $this->get_cart_details(); |
| 1395 | 1395 | |
| 1396 | - if ( !empty( $ajax_cart_details ) && count( $ajax_cart_details ) == count( $this->items ) ) { |
|
| 1396 | + if (!empty($ajax_cart_details) && count($ajax_cart_details) == count($this->items)) { |
|
| 1397 | 1397 | $cart_items = $ajax_cart_details; |
| 1398 | 1398 | } else { |
| 1399 | 1399 | $cart_items = $this->items; |
| 1400 | 1400 | } |
| 1401 | 1401 | |
| 1402 | - $this->discount = wpinv_get_cart_items_discount_amount( $cart_items , $this->discounts ); |
|
| 1402 | + $this->discount = wpinv_get_cart_items_discount_amount($cart_items, $this->discounts); |
|
| 1403 | 1403 | } |
| 1404 | - $discount = wpinv_round_amount( $this->discount ); |
|
| 1404 | + $discount = wpinv_round_amount($this->discount); |
|
| 1405 | 1405 | $dash = $dash && $discount > 0 ? '–' : ''; |
| 1406 | 1406 | |
| 1407 | - if ( $currency ) { |
|
| 1408 | - $discount = wpinv_price( wpinv_format_amount( $discount, NULL, !$currency ), $this->get_currency() ); |
|
| 1407 | + if ($currency) { |
|
| 1408 | + $discount = wpinv_price(wpinv_format_amount($discount, NULL, !$currency), $this->get_currency()); |
|
| 1409 | 1409 | } |
| 1410 | 1410 | |
| 1411 | - $discount = $dash . $discount; |
|
| 1411 | + $discount = $dash . $discount; |
|
| 1412 | 1412 | |
| 1413 | - return apply_filters( 'wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash ); |
|
| 1413 | + return apply_filters('wpinv_get_invoice_discount', $discount, $this->ID, $this, $currency, $dash); |
|
| 1414 | 1414 | } |
| 1415 | 1415 | |
| 1416 | 1416 | public function get_discount_code() { |
| 1417 | 1417 | return $this->discount_code; |
| 1418 | 1418 | } |
| 1419 | 1419 | |
| 1420 | - public function get_tax( $currency = false ) { |
|
| 1421 | - $tax = wpinv_round_amount( $this->tax ); |
|
| 1420 | + public function get_tax($currency = false) { |
|
| 1421 | + $tax = wpinv_round_amount($this->tax); |
|
| 1422 | 1422 | |
| 1423 | - if ( $currency ) { |
|
| 1424 | - $tax = wpinv_price( wpinv_format_amount( $tax, NULL, !$currency ), $this->get_currency() ); |
|
| 1423 | + if ($currency) { |
|
| 1424 | + $tax = wpinv_price(wpinv_format_amount($tax, NULL, !$currency), $this->get_currency()); |
|
| 1425 | 1425 | } |
| 1426 | 1426 | |
| 1427 | - return apply_filters( 'wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency ); |
|
| 1427 | + return apply_filters('wpinv_get_invoice_tax', $tax, $this->ID, $this, $currency); |
|
| 1428 | 1428 | } |
| 1429 | 1429 | |
| 1430 | - public function get_fees( $type = 'all' ) { |
|
| 1431 | - $fees = array(); |
|
| 1430 | + public function get_fees($type = 'all') { |
|
| 1431 | + $fees = array(); |
|
| 1432 | 1432 | |
| 1433 | - if ( ! empty( $this->fees ) && is_array( $this->fees ) ) { |
|
| 1434 | - foreach ( $this->fees as $fee ) { |
|
| 1435 | - if( 'all' != $type && ! empty( $fee['type'] ) && $type != $fee['type'] ) { |
|
| 1433 | + if (!empty($this->fees) && is_array($this->fees)) { |
|
| 1434 | + foreach ($this->fees as $fee) { |
|
| 1435 | + if ('all' != $type && !empty($fee['type']) && $type != $fee['type']) { |
|
| 1436 | 1436 | continue; |
| 1437 | 1437 | } |
| 1438 | 1438 | |
| 1439 | - $fee['label'] = stripslashes( $fee['label'] ); |
|
| 1440 | - $fee['amount_display'] = wpinv_price( $fee['amount'], $this->get_currency() ); |
|
| 1441 | - $fees[] = $fee; |
|
| 1439 | + $fee['label'] = stripslashes($fee['label']); |
|
| 1440 | + $fee['amount_display'] = wpinv_price($fee['amount'], $this->get_currency()); |
|
| 1441 | + $fees[] = $fee; |
|
| 1442 | 1442 | } |
| 1443 | 1443 | } |
| 1444 | 1444 | |
| 1445 | - return apply_filters( 'wpinv_get_invoice_fees', $fees, $this->ID, $this ); |
|
| 1445 | + return apply_filters('wpinv_get_invoice_fees', $fees, $this->ID, $this); |
|
| 1446 | 1446 | } |
| 1447 | 1447 | |
| 1448 | - public function get_fees_total( $type = 'all' ) { |
|
| 1449 | - $fees_total = (float) 0.00; |
|
| 1448 | + public function get_fees_total($type = 'all') { |
|
| 1449 | + $fees_total = (float)0.00; |
|
| 1450 | 1450 | |
| 1451 | - $payment_fees = isset( $this->payment_meta['fees'] ) ? $this->payment_meta['fees'] : array(); |
|
| 1452 | - if ( ! empty( $payment_fees ) ) { |
|
| 1453 | - foreach ( $payment_fees as $fee ) { |
|
| 1454 | - $fees_total += (float) $fee['amount']; |
|
| 1451 | + $payment_fees = isset($this->payment_meta['fees']) ? $this->payment_meta['fees'] : array(); |
|
| 1452 | + if (!empty($payment_fees)) { |
|
| 1453 | + foreach ($payment_fees as $fee) { |
|
| 1454 | + $fees_total += (float)$fee['amount']; |
|
| 1455 | 1455 | } |
| 1456 | 1456 | } |
| 1457 | 1457 | |
| 1458 | - return apply_filters( 'wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this ); |
|
| 1458 | + return apply_filters('wpinv_get_invoice_fees_total', $fees_total, $this->ID, $this); |
|
| 1459 | 1459 | /* |
| 1460 | 1460 | $fees = $this->get_fees( $type ); |
| 1461 | 1461 | |
@@ -1475,116 +1475,116 @@ discard block |
||
| 1475 | 1475 | } |
| 1476 | 1476 | |
| 1477 | 1477 | public function get_user_id() { |
| 1478 | - return apply_filters( 'wpinv_user_id', $this->user_id, $this->ID, $this ); |
|
| 1478 | + return apply_filters('wpinv_user_id', $this->user_id, $this->ID, $this); |
|
| 1479 | 1479 | } |
| 1480 | 1480 | |
| 1481 | 1481 | public function get_first_name() { |
| 1482 | - return apply_filters( 'wpinv_first_name', $this->first_name, $this->ID, $this ); |
|
| 1482 | + return apply_filters('wpinv_first_name', $this->first_name, $this->ID, $this); |
|
| 1483 | 1483 | } |
| 1484 | 1484 | |
| 1485 | 1485 | public function get_last_name() { |
| 1486 | - return apply_filters( 'wpinv_last_name', $this->last_name, $this->ID, $this ); |
|
| 1486 | + return apply_filters('wpinv_last_name', $this->last_name, $this->ID, $this); |
|
| 1487 | 1487 | } |
| 1488 | 1488 | |
| 1489 | 1489 | public function get_user_full_name() { |
| 1490 | - return apply_filters( 'wpinv_user_full_name', $this->full_name, $this->ID, $this ); |
|
| 1490 | + return apply_filters('wpinv_user_full_name', $this->full_name, $this->ID, $this); |
|
| 1491 | 1491 | } |
| 1492 | 1492 | |
| 1493 | 1493 | public function get_user_info() { |
| 1494 | - return apply_filters( 'wpinv_user_info', $this->user_info, $this->ID, $this ); |
|
| 1494 | + return apply_filters('wpinv_user_info', $this->user_info, $this->ID, $this); |
|
| 1495 | 1495 | } |
| 1496 | 1496 | |
| 1497 | 1497 | public function get_email() { |
| 1498 | - return apply_filters( 'wpinv_user_email', $this->email, $this->ID, $this ); |
|
| 1498 | + return apply_filters('wpinv_user_email', $this->email, $this->ID, $this); |
|
| 1499 | 1499 | } |
| 1500 | 1500 | |
| 1501 | 1501 | public function get_address() { |
| 1502 | - return apply_filters( 'wpinv_address', $this->address, $this->ID, $this ); |
|
| 1502 | + return apply_filters('wpinv_address', $this->address, $this->ID, $this); |
|
| 1503 | 1503 | } |
| 1504 | 1504 | |
| 1505 | 1505 | public function get_phone() { |
| 1506 | - return apply_filters( 'wpinv_phone', $this->phone, $this->ID, $this ); |
|
| 1506 | + return apply_filters('wpinv_phone', $this->phone, $this->ID, $this); |
|
| 1507 | 1507 | } |
| 1508 | 1508 | |
| 1509 | 1509 | public function get_number() { |
| 1510 | - return apply_filters( 'wpinv_number', $this->number, $this->ID, $this ); |
|
| 1510 | + return apply_filters('wpinv_number', $this->number, $this->ID, $this); |
|
| 1511 | 1511 | } |
| 1512 | 1512 | |
| 1513 | 1513 | public function get_items() { |
| 1514 | - return apply_filters( 'wpinv_payment_meta_items', $this->items, $this->ID, $this ); |
|
| 1514 | + return apply_filters('wpinv_payment_meta_items', $this->items, $this->ID, $this); |
|
| 1515 | 1515 | } |
| 1516 | 1516 | |
| 1517 | 1517 | public function get_key() { |
| 1518 | - return apply_filters( 'wpinv_key', $this->key, $this->ID, $this ); |
|
| 1518 | + return apply_filters('wpinv_key', $this->key, $this->ID, $this); |
|
| 1519 | 1519 | } |
| 1520 | 1520 | |
| 1521 | 1521 | public function get_transaction_id() { |
| 1522 | - return apply_filters( 'wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this ); |
|
| 1522 | + return apply_filters('wpinv_get_invoice_transaction_id', $this->transaction_id, $this->ID, $this); |
|
| 1523 | 1523 | } |
| 1524 | 1524 | |
| 1525 | 1525 | public function get_gateway() { |
| 1526 | - return apply_filters( 'wpinv_gateway', $this->gateway, $this->ID, $this ); |
|
| 1526 | + return apply_filters('wpinv_gateway', $this->gateway, $this->ID, $this); |
|
| 1527 | 1527 | } |
| 1528 | 1528 | |
| 1529 | 1529 | public function get_gateway_title() { |
| 1530 | - $this->gateway_title = !empty( $this->gateway_title ) ? $this->gateway_title : wpinv_get_gateway_checkout_label( $this->gateway ); |
|
| 1530 | + $this->gateway_title = !empty($this->gateway_title) ? $this->gateway_title : wpinv_get_gateway_checkout_label($this->gateway); |
|
| 1531 | 1531 | |
| 1532 | - return apply_filters( 'wpinv_gateway_title', $this->gateway_title, $this->ID, $this ); |
|
| 1532 | + return apply_filters('wpinv_gateway_title', $this->gateway_title, $this->ID, $this); |
|
| 1533 | 1533 | } |
| 1534 | 1534 | |
| 1535 | 1535 | public function get_currency() { |
| 1536 | - return apply_filters( 'wpinv_currency_code', $this->currency, $this->ID, $this ); |
|
| 1536 | + return apply_filters('wpinv_currency_code', $this->currency, $this->ID, $this); |
|
| 1537 | 1537 | } |
| 1538 | 1538 | |
| 1539 | 1539 | public function get_created_date() { |
| 1540 | - return apply_filters( 'wpinv_created_date', $this->date, $this->ID, $this ); |
|
| 1540 | + return apply_filters('wpinv_created_date', $this->date, $this->ID, $this); |
|
| 1541 | 1541 | } |
| 1542 | 1542 | |
| 1543 | - public function get_due_date( $display = false ) { |
|
| 1544 | - $due_date = apply_filters( 'wpinv_due_date', $this->due_date, $this->ID, $this ); |
|
| 1543 | + public function get_due_date($display = false) { |
|
| 1544 | + $due_date = apply_filters('wpinv_due_date', $this->due_date, $this->ID, $this); |
|
| 1545 | 1545 | |
| 1546 | - if ( !$display || empty( $due_date ) ) { |
|
| 1546 | + if (!$display || empty($due_date)) { |
|
| 1547 | 1547 | return $due_date; |
| 1548 | 1548 | } |
| 1549 | 1549 | |
| 1550 | - return date_i18n( get_option( 'date_format' ), strtotime( $due_date ) ); |
|
| 1550 | + return date_i18n(get_option('date_format'), strtotime($due_date)); |
|
| 1551 | 1551 | } |
| 1552 | 1552 | |
| 1553 | 1553 | public function get_completed_date() { |
| 1554 | - return apply_filters( 'wpinv_completed_date', $this->completed_date, $this->ID, $this ); |
|
| 1554 | + return apply_filters('wpinv_completed_date', $this->completed_date, $this->ID, $this); |
|
| 1555 | 1555 | } |
| 1556 | 1556 | |
| 1557 | - public function get_invoice_date( $formatted = true ) { |
|
| 1557 | + public function get_invoice_date($formatted = true) { |
|
| 1558 | 1558 | $date_completed = $this->completed_date; |
| 1559 | 1559 | $invoice_date = $date_completed != '' && $date_completed != '0000-00-00 00:00:00' ? $date_completed : ''; |
| 1560 | 1560 | |
| 1561 | - if ( $invoice_date == '' ) { |
|
| 1561 | + if ($invoice_date == '') { |
|
| 1562 | 1562 | $date_created = $this->date; |
| 1563 | 1563 | $invoice_date = $date_created != '' && $date_created != '0000-00-00 00:00:00' ? $date_created : ''; |
| 1564 | 1564 | } |
| 1565 | 1565 | |
| 1566 | - if ( $formatted && $invoice_date ) { |
|
| 1567 | - $invoice_date = date_i18n( get_option( 'date_format' ), strtotime( $invoice_date ) ); |
|
| 1566 | + if ($formatted && $invoice_date) { |
|
| 1567 | + $invoice_date = date_i18n(get_option('date_format'), strtotime($invoice_date)); |
|
| 1568 | 1568 | } |
| 1569 | 1569 | |
| 1570 | - return apply_filters( 'wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this ); |
|
| 1570 | + return apply_filters('wpinv_get_invoice_date', $invoice_date, $formatted, $this->ID, $this); |
|
| 1571 | 1571 | } |
| 1572 | 1572 | |
| 1573 | 1573 | public function get_ip() { |
| 1574 | - return apply_filters( 'wpinv_user_ip', $this->ip, $this->ID, $this ); |
|
| 1574 | + return apply_filters('wpinv_user_ip', $this->ip, $this->ID, $this); |
|
| 1575 | 1575 | } |
| 1576 | 1576 | |
| 1577 | - public function has_status( $status ) { |
|
| 1578 | - return apply_filters( 'wpinv_has_status', ( is_array( $status ) && in_array( $this->get_status(), $status ) ) || $this->get_status() === $status ? true : false, $this, $status ); |
|
| 1577 | + public function has_status($status) { |
|
| 1578 | + return apply_filters('wpinv_has_status', (is_array($status) && in_array($this->get_status(), $status)) || $this->get_status() === $status ? true : false, $this, $status); |
|
| 1579 | 1579 | } |
| 1580 | 1580 | |
| 1581 | - public function add_item( $item_id = 0, $args = array() ) { |
|
| 1581 | + public function add_item($item_id = 0, $args = array()) { |
|
| 1582 | 1582 | global $wpi_current_id, $wpi_item_id; |
| 1583 | 1583 | |
| 1584 | - $item = new WPInv_Item( $item_id ); |
|
| 1584 | + $item = new WPInv_Item($item_id); |
|
| 1585 | 1585 | |
| 1586 | 1586 | // Bail if this post isn't a item |
| 1587 | - if( !$item || $item->post_type !== 'wpi_item' ) { |
|
| 1587 | + if (!$item || $item->post_type !== 'wpi_item') { |
|
| 1588 | 1588 | return false; |
| 1589 | 1589 | } |
| 1590 | 1590 | |
@@ -1603,8 +1603,8 @@ discard block |
||
| 1603 | 1603 | 'fees' => array() |
| 1604 | 1604 | ); |
| 1605 | 1605 | |
| 1606 | - $args = wp_parse_args( apply_filters( 'wpinv_add_item_args', $args, $item->ID ), $defaults ); |
|
| 1607 | - $args['quantity'] = $has_quantities && $args['quantity'] > 0 ? absint( $args['quantity'] ) : 1; |
|
| 1606 | + $args = wp_parse_args(apply_filters('wpinv_add_item_args', $args, $item->ID), $defaults); |
|
| 1607 | + $args['quantity'] = $has_quantities && $args['quantity'] > 0 ? absint($args['quantity']) : 1; |
|
| 1608 | 1608 | |
| 1609 | 1609 | $wpi_current_id = $this->ID; |
| 1610 | 1610 | $wpi_item_id = $item->ID; |
@@ -1616,19 +1616,19 @@ discard block |
||
| 1616 | 1616 | $found_cart_key = false; |
| 1617 | 1617 | |
| 1618 | 1618 | if ($has_quantities) { |
| 1619 | - $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details; |
|
| 1619 | + $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details; |
|
| 1620 | 1620 | |
| 1621 | - foreach ( $this->items as $key => $cart_item ) { |
|
| 1622 | - if ( (int)$item_id !== (int)$cart_item['id'] ) { |
|
| 1621 | + foreach ($this->items as $key => $cart_item) { |
|
| 1622 | + if ((int)$item_id !== (int)$cart_item['id']) { |
|
| 1623 | 1623 | continue; |
| 1624 | 1624 | } |
| 1625 | 1625 | |
| 1626 | - $this->items[ $key ]['quantity'] += $args['quantity']; |
|
| 1626 | + $this->items[$key]['quantity'] += $args['quantity']; |
|
| 1627 | 1627 | break; |
| 1628 | 1628 | } |
| 1629 | 1629 | |
| 1630 | - foreach ( $this->cart_details as $cart_key => $cart_item ) { |
|
| 1631 | - if ( $item_id != $cart_item['id'] ) { |
|
| 1630 | + foreach ($this->cart_details as $cart_key => $cart_item) { |
|
| 1631 | + if ($item_id != $cart_item['id']) { |
|
| 1632 | 1632 | continue; |
| 1633 | 1633 | } |
| 1634 | 1634 | |
@@ -1640,29 +1640,29 @@ discard block |
||
| 1640 | 1640 | if ($has_quantities && $found_cart_key !== false) { |
| 1641 | 1641 | $cart_item = $this->cart_details[$found_cart_key]; |
| 1642 | 1642 | $item_price = $cart_item['item_price']; |
| 1643 | - $quantity = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1; |
|
| 1644 | - $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0; |
|
| 1643 | + $quantity = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1; |
|
| 1644 | + $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0; |
|
| 1645 | 1645 | |
| 1646 | 1646 | $new_quantity = $quantity + $args['quantity']; |
| 1647 | 1647 | $subtotal = $item_price * $new_quantity; |
| 1648 | 1648 | |
| 1649 | 1649 | $args['quantity'] = $new_quantity; |
| 1650 | - $discount = !empty( $args['discount'] ) ? $args['discount'] : 0; |
|
| 1651 | - $tax = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0; |
|
| 1650 | + $discount = !empty($args['discount']) ? $args['discount'] : 0; |
|
| 1651 | + $tax = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0; |
|
| 1652 | 1652 | |
| 1653 | 1653 | $discount_increased = $discount > 0 && $subtotal > 0 && $discount > (float)$cart_item['discount'] ? $discount - (float)$cart_item['discount'] : 0; |
| 1654 | 1654 | $tax_increased = $tax > 0 && $subtotal > 0 && $tax > (float)$cart_item['tax'] ? $tax - (float)$cart_item['tax'] : 0; |
| 1655 | 1655 | // The total increase equals the number removed * the item_price |
| 1656 | - $total_increased = wpinv_round_amount( $item_price ); |
|
| 1656 | + $total_increased = wpinv_round_amount($item_price); |
|
| 1657 | 1657 | |
| 1658 | - if ( wpinv_prices_include_tax() ) { |
|
| 1659 | - $subtotal -= wpinv_round_amount( $tax ); |
|
| 1658 | + if (wpinv_prices_include_tax()) { |
|
| 1659 | + $subtotal -= wpinv_round_amount($tax); |
|
| 1660 | 1660 | } |
| 1661 | 1661 | |
| 1662 | - $total = $subtotal - $discount + $tax; |
|
| 1662 | + $total = $subtotal - $discount + $tax; |
|
| 1663 | 1663 | |
| 1664 | 1664 | // Do not allow totals to go negative |
| 1665 | - if( $total < 0 ) { |
|
| 1665 | + if ($total < 0) { |
|
| 1666 | 1666 | $total = 0; |
| 1667 | 1667 | } |
| 1668 | 1668 | |
@@ -1678,25 +1678,25 @@ discard block |
||
| 1678 | 1678 | $this->cart_details[$found_cart_key] = $cart_item; |
| 1679 | 1679 | } else { |
| 1680 | 1680 | // Set custom price. |
| 1681 | - if ( $args['custom_price'] !== '' ) { |
|
| 1681 | + if ($args['custom_price'] !== '') { |
|
| 1682 | 1682 | $item_price = $args['custom_price']; |
| 1683 | 1683 | } else { |
| 1684 | 1684 | // Allow overriding the price |
| 1685 | - if ( false !== $args['item_price'] ) { |
|
| 1685 | + if (false !== $args['item_price']) { |
|
| 1686 | 1686 | $item_price = $args['item_price']; |
| 1687 | 1687 | } else { |
| 1688 | - $item_price = wpinv_get_item_price( $item->ID ); |
|
| 1688 | + $item_price = wpinv_get_item_price($item->ID); |
|
| 1689 | 1689 | } |
| 1690 | 1690 | } |
| 1691 | 1691 | |
| 1692 | 1692 | // Sanitizing the price here so we don't have a dozen calls later |
| 1693 | - $item_price = wpinv_sanitize_amount( $item_price ); |
|
| 1694 | - $subtotal = wpinv_round_amount( $item_price * $args['quantity'] ); |
|
| 1693 | + $item_price = wpinv_sanitize_amount($item_price); |
|
| 1694 | + $subtotal = wpinv_round_amount($item_price * $args['quantity']); |
|
| 1695 | 1695 | |
| 1696 | - $discount = !empty( $args['discount'] ) ? $args['discount'] : 0; |
|
| 1697 | - $tax_class = !empty( $args['vat_class'] ) ? $args['vat_class'] : ''; |
|
| 1698 | - $tax_rate = !empty( $args['vat_rate'] ) ? $args['vat_rate'] : 0; |
|
| 1699 | - $tax = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0; |
|
| 1696 | + $discount = !empty($args['discount']) ? $args['discount'] : 0; |
|
| 1697 | + $tax_class = !empty($args['vat_class']) ? $args['vat_class'] : ''; |
|
| 1698 | + $tax_rate = !empty($args['vat_rate']) ? $args['vat_rate'] : 0; |
|
| 1699 | + $tax = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0; |
|
| 1700 | 1700 | |
| 1701 | 1701 | // Setup the items meta item |
| 1702 | 1702 | $new_item = array( |
@@ -1704,29 +1704,29 @@ discard block |
||
| 1704 | 1704 | 'quantity' => $args['quantity'], |
| 1705 | 1705 | ); |
| 1706 | 1706 | |
| 1707 | - $this->items[] = $new_item; |
|
| 1707 | + $this->items[] = $new_item; |
|
| 1708 | 1708 | |
| 1709 | - if ( wpinv_prices_include_tax() ) { |
|
| 1710 | - $subtotal -= wpinv_round_amount( $tax ); |
|
| 1709 | + if (wpinv_prices_include_tax()) { |
|
| 1710 | + $subtotal -= wpinv_round_amount($tax); |
|
| 1711 | 1711 | } |
| 1712 | 1712 | |
| 1713 | - $total = $subtotal - $discount + $tax; |
|
| 1713 | + $total = $subtotal - $discount + $tax; |
|
| 1714 | 1714 | |
| 1715 | 1715 | // Do not allow totals to go negative |
| 1716 | - if( $total < 0 ) { |
|
| 1716 | + if ($total < 0) { |
|
| 1717 | 1717 | $total = 0; |
| 1718 | 1718 | } |
| 1719 | 1719 | |
| 1720 | 1720 | $this->cart_details[] = array( |
| 1721 | 1721 | 'name' => !empty($args['name']) ? $args['name'] : $item->get_name(), |
| 1722 | 1722 | 'id' => $item->ID, |
| 1723 | - 'item_price' => wpinv_round_amount( $item_price ), |
|
| 1724 | - 'custom_price' => ( $args['custom_price'] !== '' ? wpinv_round_amount( $args['custom_price'] ) : '' ), |
|
| 1723 | + 'item_price' => wpinv_round_amount($item_price), |
|
| 1724 | + 'custom_price' => ($args['custom_price'] !== '' ? wpinv_round_amount($args['custom_price']) : ''), |
|
| 1725 | 1725 | 'quantity' => $args['quantity'], |
| 1726 | 1726 | 'discount' => $discount, |
| 1727 | - 'subtotal' => wpinv_round_amount( $subtotal ), |
|
| 1728 | - 'tax' => wpinv_round_amount( $tax ), |
|
| 1729 | - 'price' => wpinv_round_amount( $total ), |
|
| 1727 | + 'subtotal' => wpinv_round_amount($subtotal), |
|
| 1728 | + 'tax' => wpinv_round_amount($tax), |
|
| 1729 | + 'price' => wpinv_round_amount($total), |
|
| 1730 | 1730 | 'vat_rate' => $tax_rate, |
| 1731 | 1731 | 'vat_class' => $tax_class, |
| 1732 | 1732 | 'meta' => $args['meta'], |
@@ -1736,18 +1736,18 @@ discard block |
||
| 1736 | 1736 | $subtotal = $subtotal - $discount; |
| 1737 | 1737 | } |
| 1738 | 1738 | |
| 1739 | - $added_item = end( $this->cart_details ); |
|
| 1740 | - $added_item['action'] = 'add'; |
|
| 1739 | + $added_item = end($this->cart_details); |
|
| 1740 | + $added_item['action'] = 'add'; |
|
| 1741 | 1741 | |
| 1742 | 1742 | $this->pending['items'][] = $added_item; |
| 1743 | 1743 | |
| 1744 | - $this->increase_subtotal( $subtotal ); |
|
| 1745 | - $this->increase_tax( $tax ); |
|
| 1744 | + $this->increase_subtotal($subtotal); |
|
| 1745 | + $this->increase_tax($tax); |
|
| 1746 | 1746 | |
| 1747 | 1747 | return true; |
| 1748 | 1748 | } |
| 1749 | 1749 | |
| 1750 | - public function remove_item( $item_id, $args = array() ) { |
|
| 1750 | + public function remove_item($item_id, $args = array()) { |
|
| 1751 | 1751 | // Set some defaults |
| 1752 | 1752 | $defaults = array( |
| 1753 | 1753 | 'quantity' => 1, |
@@ -1755,51 +1755,51 @@ discard block |
||
| 1755 | 1755 | 'custom_price' => '', |
| 1756 | 1756 | 'cart_index' => false, |
| 1757 | 1757 | ); |
| 1758 | - $args = wp_parse_args( $args, $defaults ); |
|
| 1758 | + $args = wp_parse_args($args, $defaults); |
|
| 1759 | 1759 | |
| 1760 | 1760 | // Bail if this post isn't a item |
| 1761 | - if ( get_post_type( $item_id ) !== 'wpi_item' ) { |
|
| 1761 | + if (get_post_type($item_id) !== 'wpi_item') { |
|
| 1762 | 1762 | return false; |
| 1763 | 1763 | } |
| 1764 | 1764 | |
| 1765 | - $this->cart_details = !empty( $this->cart_details ) ? array_values( $this->cart_details ) : $this->cart_details; |
|
| 1765 | + $this->cart_details = !empty($this->cart_details) ? array_values($this->cart_details) : $this->cart_details; |
|
| 1766 | 1766 | |
| 1767 | - foreach ( $this->items as $key => $item ) { |
|
| 1768 | - if ( !empty($item['id']) && (int)$item_id !== (int)$item['id'] ) { |
|
| 1767 | + foreach ($this->items as $key => $item) { |
|
| 1768 | + if (!empty($item['id']) && (int)$item_id !== (int)$item['id']) { |
|
| 1769 | 1769 | continue; |
| 1770 | 1770 | } |
| 1771 | 1771 | |
| 1772 | - if ( false !== $args['cart_index'] ) { |
|
| 1773 | - $cart_index = absint( $args['cart_index'] ); |
|
| 1774 | - $cart_item = ! empty( $this->cart_details[ $cart_index ] ) ? $this->cart_details[ $cart_index ] : false; |
|
| 1772 | + if (false !== $args['cart_index']) { |
|
| 1773 | + $cart_index = absint($args['cart_index']); |
|
| 1774 | + $cart_item = !empty($this->cart_details[$cart_index]) ? $this->cart_details[$cart_index] : false; |
|
| 1775 | 1775 | |
| 1776 | - if ( ! empty( $cart_item ) ) { |
|
| 1776 | + if (!empty($cart_item)) { |
|
| 1777 | 1777 | // If the cart index item isn't the same item ID, don't remove it |
| 1778 | - if ( !empty($cart_item['id']) && $cart_item['id'] != $item['id'] ) { |
|
| 1778 | + if (!empty($cart_item['id']) && $cart_item['id'] != $item['id']) { |
|
| 1779 | 1779 | continue; |
| 1780 | 1780 | } |
| 1781 | 1781 | } |
| 1782 | 1782 | } |
| 1783 | 1783 | |
| 1784 | - $item_quantity = $this->items[ $key ]['quantity']; |
|
| 1785 | - if ( $item_quantity > $args['quantity'] ) { |
|
| 1786 | - $this->items[ $key ]['quantity'] -= $args['quantity']; |
|
| 1784 | + $item_quantity = $this->items[$key]['quantity']; |
|
| 1785 | + if ($item_quantity > $args['quantity']) { |
|
| 1786 | + $this->items[$key]['quantity'] -= $args['quantity']; |
|
| 1787 | 1787 | break; |
| 1788 | 1788 | } else { |
| 1789 | - unset( $this->items[ $key ] ); |
|
| 1789 | + unset($this->items[$key]); |
|
| 1790 | 1790 | break; |
| 1791 | 1791 | } |
| 1792 | 1792 | } |
| 1793 | 1793 | |
| 1794 | 1794 | $found_cart_key = false; |
| 1795 | - if ( false === $args['cart_index'] ) { |
|
| 1796 | - foreach ( $this->cart_details as $cart_key => $item ) { |
|
| 1797 | - if ( $item_id != $item['id'] ) { |
|
| 1795 | + if (false === $args['cart_index']) { |
|
| 1796 | + foreach ($this->cart_details as $cart_key => $item) { |
|
| 1797 | + if ($item_id != $item['id']) { |
|
| 1798 | 1798 | continue; |
| 1799 | 1799 | } |
| 1800 | 1800 | |
| 1801 | - if ( false !== $args['item_price'] ) { |
|
| 1802 | - if ( isset( $item['item_price'] ) && (float) $args['item_price'] != (float) $item['item_price'] ) { |
|
| 1801 | + if (false !== $args['item_price']) { |
|
| 1802 | + if (isset($item['item_price']) && (float)$args['item_price'] != (float)$item['item_price']) { |
|
| 1803 | 1803 | continue; |
| 1804 | 1804 | } |
| 1805 | 1805 | } |
@@ -1808,13 +1808,13 @@ discard block |
||
| 1808 | 1808 | break; |
| 1809 | 1809 | } |
| 1810 | 1810 | } else { |
| 1811 | - $cart_index = absint( $args['cart_index'] ); |
|
| 1811 | + $cart_index = absint($args['cart_index']); |
|
| 1812 | 1812 | |
| 1813 | - if ( ! array_key_exists( $cart_index, $this->cart_details ) ) { |
|
| 1813 | + if (!array_key_exists($cart_index, $this->cart_details)) { |
|
| 1814 | 1814 | return false; // Invalid cart index passed. |
| 1815 | 1815 | } |
| 1816 | 1816 | |
| 1817 | - if ( (int) $this->cart_details[ $cart_index ]['id'] > 0 && (int) $this->cart_details[ $cart_index ]['id'] !== (int) $item_id ) { |
|
| 1817 | + if ((int)$this->cart_details[$cart_index]['id'] > 0 && (int)$this->cart_details[$cart_index]['id'] !== (int)$item_id) { |
|
| 1818 | 1818 | return false; // We still need the proper Item ID to be sure. |
| 1819 | 1819 | } |
| 1820 | 1820 | |
@@ -1822,41 +1822,41 @@ discard block |
||
| 1822 | 1822 | } |
| 1823 | 1823 | |
| 1824 | 1824 | $cart_item = $this->cart_details[$found_cart_key]; |
| 1825 | - $quantity = !empty( $cart_item['quantity'] ) ? $cart_item['quantity'] : 1; |
|
| 1825 | + $quantity = !empty($cart_item['quantity']) ? $cart_item['quantity'] : 1; |
|
| 1826 | 1826 | |
| 1827 | - if ( count( $this->cart_details ) == 1 && ( $quantity - $args['quantity'] ) < 1 ) { |
|
| 1827 | + if (count($this->cart_details) == 1 && ($quantity - $args['quantity']) < 1) { |
|
| 1828 | 1828 | return false; // Invoice must contain at least one item. |
| 1829 | 1829 | } |
| 1830 | 1830 | |
| 1831 | - $discounts = $this->get_discounts(); |
|
| 1831 | + $discounts = $this->get_discounts(); |
|
| 1832 | 1832 | |
| 1833 | - if ( $quantity > $args['quantity'] ) { |
|
| 1833 | + if ($quantity > $args['quantity']) { |
|
| 1834 | 1834 | $item_price = $cart_item['item_price']; |
| 1835 | - $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : 0; |
|
| 1835 | + $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : 0; |
|
| 1836 | 1836 | |
| 1837 | - $new_quantity = max( $quantity - $args['quantity'], 1); |
|
| 1837 | + $new_quantity = max($quantity - $args['quantity'], 1); |
|
| 1838 | 1838 | $subtotal = $item_price * $new_quantity; |
| 1839 | 1839 | |
| 1840 | 1840 | $args['quantity'] = $new_quantity; |
| 1841 | - $discount = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0; |
|
| 1842 | - $tax = $subtotal > 0 && $tax_rate > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0; |
|
| 1841 | + $discount = !empty($cart_item['discount']) ? $cart_item['discount'] : 0; |
|
| 1842 | + $tax = $subtotal > 0 && $tax_rate > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0; |
|
| 1843 | 1843 | |
| 1844 | - $discount_decrease = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['discount'] / $quantity ) ) : 0; |
|
| 1844 | + $discount_decrease = (float)$cart_item['discount'] > 0 && $quantity > 0 ? wpinv_round_amount(((float)$cart_item['discount'] / $quantity)) : 0; |
|
| 1845 | 1845 | $discount_decrease = $discount > 0 && $subtotal > 0 && (float)$cart_item['discount'] > $discount ? (float)$cart_item['discount'] - $discount : $discount_decrease; |
| 1846 | - $tax_decrease = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount( ( (float)$cart_item['tax'] / $quantity ) ) : 0; |
|
| 1846 | + $tax_decrease = (float)$cart_item['tax'] > 0 && $quantity > 0 ? wpinv_round_amount(((float)$cart_item['tax'] / $quantity)) : 0; |
|
| 1847 | 1847 | $tax_decrease = $tax > 0 && $subtotal > 0 && (float)$cart_item['tax'] > $tax ? (float)$cart_item['tax'] - $tax : $tax_decrease; |
| 1848 | 1848 | |
| 1849 | 1849 | // The total increase equals the number removed * the item_price |
| 1850 | - $total_decrease = wpinv_round_amount( $item_price ); |
|
| 1850 | + $total_decrease = wpinv_round_amount($item_price); |
|
| 1851 | 1851 | |
| 1852 | - if ( wpinv_prices_include_tax() ) { |
|
| 1853 | - $subtotal -= wpinv_round_amount( $tax ); |
|
| 1852 | + if (wpinv_prices_include_tax()) { |
|
| 1853 | + $subtotal -= wpinv_round_amount($tax); |
|
| 1854 | 1854 | } |
| 1855 | 1855 | |
| 1856 | - $total = $subtotal - $discount + $tax; |
|
| 1856 | + $total = $subtotal - $discount + $tax; |
|
| 1857 | 1857 | |
| 1858 | 1858 | // Do not allow totals to go negative |
| 1859 | - if( $total < 0 ) { |
|
| 1859 | + if ($total < 0) { |
|
| 1860 | 1860 | $total = 0; |
| 1861 | 1861 | } |
| 1862 | 1862 | |
@@ -1875,16 +1875,16 @@ discard block |
||
| 1875 | 1875 | |
| 1876 | 1876 | $this->cart_details[$found_cart_key] = $cart_item; |
| 1877 | 1877 | |
| 1878 | - $remove_item = end( $this->cart_details ); |
|
| 1878 | + $remove_item = end($this->cart_details); |
|
| 1879 | 1879 | } else { |
| 1880 | 1880 | $item_price = $cart_item['item_price']; |
| 1881 | - $discount = !empty( $cart_item['discount'] ) ? $cart_item['discount'] : 0; |
|
| 1882 | - $tax = !empty( $cart_item['tax'] ) ? $cart_item['tax'] : 0; |
|
| 1881 | + $discount = !empty($cart_item['discount']) ? $cart_item['discount'] : 0; |
|
| 1882 | + $tax = !empty($cart_item['tax']) ? $cart_item['tax'] : 0; |
|
| 1883 | 1883 | |
| 1884 | - $subtotal_decrease = ( $item_price * $quantity ) - $discount; |
|
| 1884 | + $subtotal_decrease = ($item_price * $quantity) - $discount; |
|
| 1885 | 1885 | $tax_decrease = $tax; |
| 1886 | 1886 | |
| 1887 | - unset( $this->cart_details[$found_cart_key] ); |
|
| 1887 | + unset($this->cart_details[$found_cart_key]); |
|
| 1888 | 1888 | |
| 1889 | 1889 | $remove_item = $args; |
| 1890 | 1890 | $remove_item['id'] = $item_id; |
@@ -1895,8 +1895,8 @@ discard block |
||
| 1895 | 1895 | $remove_item['action'] = 'remove'; |
| 1896 | 1896 | $this->pending['items'][] = $remove_item; |
| 1897 | 1897 | |
| 1898 | - $this->decrease_subtotal( $subtotal_decrease ); |
|
| 1899 | - $this->decrease_tax( $tax_decrease ); |
|
| 1898 | + $this->decrease_subtotal($subtotal_decrease); |
|
| 1899 | + $this->decrease_tax($tax_decrease); |
|
| 1900 | 1900 | |
| 1901 | 1901 | return true; |
| 1902 | 1902 | } |
@@ -1904,7 +1904,7 @@ discard block |
||
| 1904 | 1904 | public function update_items($temp = false) { |
| 1905 | 1905 | global $wpinv_euvat, $wpi_current_id, $wpi_item_id, $wpi_nosave; |
| 1906 | 1906 | |
| 1907 | - if ( !empty( $this->cart_details ) ) { |
|
| 1907 | + if (!empty($this->cart_details)) { |
|
| 1908 | 1908 | $wpi_nosave = $temp; |
| 1909 | 1909 | $cart_subtotal = 0; |
| 1910 | 1910 | $cart_discount = 0; |
@@ -1914,42 +1914,42 @@ discard block |
||
| 1914 | 1914 | $_POST['wpinv_country'] = $this->country; |
| 1915 | 1915 | $_POST['wpinv_state'] = $this->state; |
| 1916 | 1916 | |
| 1917 | - foreach ( $this->cart_details as $key => $item ) { |
|
| 1917 | + foreach ($this->cart_details as $key => $item) { |
|
| 1918 | 1918 | $item_price = $item['item_price']; |
| 1919 | - $quantity = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint( $item['quantity'] ) : 1; |
|
| 1920 | - $amount = wpinv_round_amount( $item_price * $quantity ); |
|
| 1919 | + $quantity = wpinv_item_quantities_enabled() && $item['quantity'] > 0 ? absint($item['quantity']) : 1; |
|
| 1920 | + $amount = wpinv_round_amount($item_price * $quantity); |
|
| 1921 | 1921 | $subtotal = $item_price * $quantity; |
| 1922 | 1922 | |
| 1923 | 1923 | $wpi_current_id = $this->ID; |
| 1924 | 1924 | $wpi_item_id = $item['id']; |
| 1925 | 1925 | |
| 1926 | - $discount = wpinv_get_cart_item_discount_amount( $item, $this->get_discounts() ); |
|
| 1926 | + $discount = wpinv_get_cart_item_discount_amount($item, $this->get_discounts()); |
|
| 1927 | 1927 | |
| 1928 | - $tax_rate = wpinv_get_tax_rate( $this->country, $this->state, $wpi_item_id ); |
|
| 1929 | - $tax_class = $wpinv_euvat->get_item_class( $wpi_item_id ); |
|
| 1930 | - $tax = $item_price > 0 ? ( ( $subtotal - $discount ) * 0.01 * (float)$tax_rate ) : 0; |
|
| 1928 | + $tax_rate = wpinv_get_tax_rate($this->country, $this->state, $wpi_item_id); |
|
| 1929 | + $tax_class = $wpinv_euvat->get_item_class($wpi_item_id); |
|
| 1930 | + $tax = $item_price > 0 ? (($subtotal - $discount) * 0.01 * (float)$tax_rate) : 0; |
|
| 1931 | 1931 | |
| 1932 | - if ( wpinv_prices_include_tax() ) { |
|
| 1933 | - $subtotal -= wpinv_round_amount( $tax ); |
|
| 1932 | + if (wpinv_prices_include_tax()) { |
|
| 1933 | + $subtotal -= wpinv_round_amount($tax); |
|
| 1934 | 1934 | } |
| 1935 | 1935 | |
| 1936 | - $total = $subtotal - $discount + $tax; |
|
| 1936 | + $total = $subtotal - $discount + $tax; |
|
| 1937 | 1937 | |
| 1938 | 1938 | // Do not allow totals to go negative |
| 1939 | - if( $total < 0 ) { |
|
| 1939 | + if ($total < 0) { |
|
| 1940 | 1940 | $total = 0; |
| 1941 | 1941 | } |
| 1942 | 1942 | |
| 1943 | 1943 | $cart_details[] = array( |
| 1944 | 1944 | 'id' => $item['id'], |
| 1945 | 1945 | 'name' => $item['name'], |
| 1946 | - 'item_price' => wpinv_round_amount( $item_price ), |
|
| 1947 | - 'custom_price'=> ( isset( $item['custom_price'] ) ? $item['custom_price'] : '' ), |
|
| 1946 | + 'item_price' => wpinv_round_amount($item_price), |
|
| 1947 | + 'custom_price'=> (isset($item['custom_price']) ? $item['custom_price'] : ''), |
|
| 1948 | 1948 | 'quantity' => $quantity, |
| 1949 | 1949 | 'discount' => $discount, |
| 1950 | - 'subtotal' => wpinv_round_amount( $subtotal ), |
|
| 1951 | - 'tax' => wpinv_round_amount( $tax ), |
|
| 1952 | - 'price' => wpinv_round_amount( $total ), |
|
| 1950 | + 'subtotal' => wpinv_round_amount($subtotal), |
|
| 1951 | + 'tax' => wpinv_round_amount($tax), |
|
| 1952 | + 'price' => wpinv_round_amount($total), |
|
| 1953 | 1953 | 'vat_rate' => $tax_rate, |
| 1954 | 1954 | 'vat_class' => $tax_class, |
| 1955 | 1955 | 'meta' => isset($item['meta']) ? $item['meta'] : array(), |
@@ -1960,15 +1960,15 @@ discard block |
||
| 1960 | 1960 | $cart_discount += (float)($discount); |
| 1961 | 1961 | $cart_tax += (float)($tax); |
| 1962 | 1962 | } |
| 1963 | - if ( $cart_subtotal < 0 ) { |
|
| 1963 | + if ($cart_subtotal < 0) { |
|
| 1964 | 1964 | $cart_subtotal = 0; |
| 1965 | 1965 | } |
| 1966 | - if ( $cart_tax < 0 ) { |
|
| 1966 | + if ($cart_tax < 0) { |
|
| 1967 | 1967 | $cart_tax = 0; |
| 1968 | 1968 | } |
| 1969 | - $this->subtotal = wpinv_round_amount( $cart_subtotal ); |
|
| 1970 | - $this->tax = wpinv_round_amount( $cart_tax ); |
|
| 1971 | - $this->discount = wpinv_round_amount( $cart_discount ); |
|
| 1969 | + $this->subtotal = wpinv_round_amount($cart_subtotal); |
|
| 1970 | + $this->tax = wpinv_round_amount($cart_tax); |
|
| 1971 | + $this->discount = wpinv_round_amount($cart_discount); |
|
| 1972 | 1972 | |
| 1973 | 1973 | $this->recalculate_total(); |
| 1974 | 1974 | |
@@ -1980,226 +1980,226 @@ discard block |
||
| 1980 | 1980 | |
| 1981 | 1981 | public function recalculate_totals($temp = false) { |
| 1982 | 1982 | $this->update_items($temp); |
| 1983 | - $this->save( true ); |
|
| 1983 | + $this->save(true); |
|
| 1984 | 1984 | |
| 1985 | 1985 | return $this; |
| 1986 | 1986 | } |
| 1987 | 1987 | |
| 1988 | 1988 | public function needs_payment() { |
| 1989 | - $valid_invoice_statuses = apply_filters( 'wpinv_valid_invoice_statuses_for_payment', array( 'wpi-pending' ), $this ); |
|
| 1989 | + $valid_invoice_statuses = apply_filters('wpinv_valid_invoice_statuses_for_payment', array('wpi-pending'), $this); |
|
| 1990 | 1990 | |
| 1991 | - if ( $this->has_status( $valid_invoice_statuses ) && ( $this->get_total() > 0 || $this->is_free_trial() || $this->is_free() ) ) { |
|
| 1991 | + if ($this->has_status($valid_invoice_statuses) && ($this->get_total() > 0 || $this->is_free_trial() || $this->is_free())) { |
|
| 1992 | 1992 | $needs_payment = true; |
| 1993 | 1993 | } else { |
| 1994 | 1994 | $needs_payment = false; |
| 1995 | 1995 | } |
| 1996 | 1996 | |
| 1997 | - return apply_filters( 'wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses ); |
|
| 1997 | + return apply_filters('wpinv_needs_payment', $needs_payment, $this, $valid_invoice_statuses); |
|
| 1998 | 1998 | } |
| 1999 | 1999 | |
| 2000 | - public function get_checkout_payment_url( $with_key = false, $secret = false ) { |
|
| 2000 | + public function get_checkout_payment_url($with_key = false, $secret = false) { |
|
| 2001 | 2001 | $pay_url = wpinv_get_checkout_uri(); |
| 2002 | 2002 | |
| 2003 | - if ( is_ssl() ) { |
|
| 2004 | - $pay_url = str_replace( 'http:', 'https:', $pay_url ); |
|
| 2003 | + if (is_ssl()) { |
|
| 2004 | + $pay_url = str_replace('http:', 'https:', $pay_url); |
|
| 2005 | 2005 | } |
| 2006 | 2006 | |
| 2007 | 2007 | $key = $this->get_key(); |
| 2008 | 2008 | |
| 2009 | - if ( $with_key ) { |
|
| 2010 | - $pay_url = add_query_arg( 'invoice_key', $key, $pay_url ); |
|
| 2009 | + if ($with_key) { |
|
| 2010 | + $pay_url = add_query_arg('invoice_key', $key, $pay_url); |
|
| 2011 | 2011 | } else { |
| 2012 | - $pay_url = add_query_arg( array( 'wpi_action' => 'pay_for_invoice', 'invoice_key' => $key ), $pay_url ); |
|
| 2012 | + $pay_url = add_query_arg(array('wpi_action' => 'pay_for_invoice', 'invoice_key' => $key), $pay_url); |
|
| 2013 | 2013 | } |
| 2014 | 2014 | |
| 2015 | - if ( $secret ) { |
|
| 2016 | - $pay_url = add_query_arg( array( '_wpipay' => md5( $this->get_user_id() . '::' . $this->get_email() . '::' . $key ) ), $pay_url ); |
|
| 2015 | + if ($secret) { |
|
| 2016 | + $pay_url = add_query_arg(array('_wpipay' => md5($this->get_user_id() . '::' . $this->get_email() . '::' . $key)), $pay_url); |
|
| 2017 | 2017 | } |
| 2018 | 2018 | |
| 2019 | - return apply_filters( 'wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret ); |
|
| 2019 | + return apply_filters('wpinv_get_checkout_payment_url', $pay_url, $this, $with_key, $secret); |
|
| 2020 | 2020 | } |
| 2021 | 2021 | |
| 2022 | - public function get_view_url( $with_key = false ) { |
|
| 2023 | - $invoice_url = get_permalink( $this->ID ); |
|
| 2022 | + public function get_view_url($with_key = false) { |
|
| 2023 | + $invoice_url = get_permalink($this->ID); |
|
| 2024 | 2024 | |
| 2025 | - if ( $with_key ) { |
|
| 2026 | - $invoice_url = add_query_arg( 'invoice_key', $this->get_key(), $invoice_url ); |
|
| 2025 | + if ($with_key) { |
|
| 2026 | + $invoice_url = add_query_arg('invoice_key', $this->get_key(), $invoice_url); |
|
| 2027 | 2027 | } |
| 2028 | 2028 | |
| 2029 | - return apply_filters( 'wpinv_get_view_url', $invoice_url, $this, $with_key ); |
|
| 2029 | + return apply_filters('wpinv_get_view_url', $invoice_url, $this, $with_key); |
|
| 2030 | 2030 | } |
| 2031 | 2031 | |
| 2032 | - public function generate_key( $string = '' ) { |
|
| 2033 | - $auth_key = defined( 'AUTH_KEY' ) ? AUTH_KEY : ''; |
|
| 2034 | - return strtolower( md5( $string . date( 'Y-m-d H:i:s' ) . $auth_key . uniqid( 'wpinv', true ) ) ); // Unique key |
|
| 2032 | + public function generate_key($string = '') { |
|
| 2033 | + $auth_key = defined('AUTH_KEY') ? AUTH_KEY : ''; |
|
| 2034 | + return strtolower(md5($string . date('Y-m-d H:i:s') . $auth_key . uniqid('wpinv', true))); // Unique key |
|
| 2035 | 2035 | } |
| 2036 | 2036 | |
| 2037 | 2037 | public function is_recurring() { |
| 2038 | - if ( empty( $this->cart_details ) ) { |
|
| 2038 | + if (empty($this->cart_details)) { |
|
| 2039 | 2039 | return false; |
| 2040 | 2040 | } |
| 2041 | 2041 | |
| 2042 | 2042 | $has_subscription = false; |
| 2043 | - foreach( $this->cart_details as $cart_item ) { |
|
| 2044 | - if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] ) ) { |
|
| 2043 | + foreach ($this->cart_details as $cart_item) { |
|
| 2044 | + if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) { |
|
| 2045 | 2045 | $has_subscription = true; |
| 2046 | 2046 | break; |
| 2047 | 2047 | } |
| 2048 | 2048 | } |
| 2049 | 2049 | |
| 2050 | - if ( count( $this->cart_details ) > 1 ) { |
|
| 2050 | + if (count($this->cart_details) > 1) { |
|
| 2051 | 2051 | $has_subscription = false; |
| 2052 | 2052 | } |
| 2053 | 2053 | |
| 2054 | - return apply_filters( 'wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details ); |
|
| 2054 | + return apply_filters('wpinv_invoice_has_recurring_item', $has_subscription, $this->cart_details); |
|
| 2055 | 2055 | } |
| 2056 | 2056 | |
| 2057 | 2057 | public function is_free_trial() { |
| 2058 | 2058 | $is_free_trial = false; |
| 2059 | 2059 | |
| 2060 | - if ( $this->is_parent() && $item = $this->get_recurring( true ) ) { |
|
| 2061 | - if ( !empty( $item ) && $item->has_free_trial() ) { |
|
| 2060 | + if ($this->is_parent() && $item = $this->get_recurring(true)) { |
|
| 2061 | + if (!empty($item) && $item->has_free_trial()) { |
|
| 2062 | 2062 | $is_free_trial = true; |
| 2063 | 2063 | } |
| 2064 | 2064 | } |
| 2065 | 2065 | |
| 2066 | - return apply_filters( 'wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details ); |
|
| 2066 | + return apply_filters('wpinv_invoice_is_free_trial', $is_free_trial, $this->cart_details); |
|
| 2067 | 2067 | } |
| 2068 | 2068 | |
| 2069 | - public function get_recurring( $object = false ) { |
|
| 2069 | + public function get_recurring($object = false) { |
|
| 2070 | 2070 | $item = NULL; |
| 2071 | 2071 | |
| 2072 | - if ( empty( $this->cart_details ) ) { |
|
| 2072 | + if (empty($this->cart_details)) { |
|
| 2073 | 2073 | return $item; |
| 2074 | 2074 | } |
| 2075 | 2075 | |
| 2076 | - foreach( $this->cart_details as $cart_item ) { |
|
| 2077 | - if ( !empty( $cart_item['id'] ) && wpinv_is_recurring_item( $cart_item['id'] ) ) { |
|
| 2076 | + foreach ($this->cart_details as $cart_item) { |
|
| 2077 | + if (!empty($cart_item['id']) && wpinv_is_recurring_item($cart_item['id'])) { |
|
| 2078 | 2078 | $item = $cart_item['id']; |
| 2079 | 2079 | break; |
| 2080 | 2080 | } |
| 2081 | 2081 | } |
| 2082 | 2082 | |
| 2083 | - if ( $object ) { |
|
| 2084 | - $item = $item ? new WPInv_Item( $item ) : NULL; |
|
| 2083 | + if ($object) { |
|
| 2084 | + $item = $item ? new WPInv_Item($item) : NULL; |
|
| 2085 | 2085 | |
| 2086 | - apply_filters( 'wpinv_invoice_get_recurring_item', $item, $this ); |
|
| 2086 | + apply_filters('wpinv_invoice_get_recurring_item', $item, $this); |
|
| 2087 | 2087 | } |
| 2088 | 2088 | |
| 2089 | - return apply_filters( 'wpinv_invoice_get_recurring_item_id', $item, $this ); |
|
| 2089 | + return apply_filters('wpinv_invoice_get_recurring_item_id', $item, $this); |
|
| 2090 | 2090 | } |
| 2091 | 2091 | |
| 2092 | 2092 | public function get_subscription_name() { |
| 2093 | - $item = $this->get_recurring( true ); |
|
| 2093 | + $item = $this->get_recurring(true); |
|
| 2094 | 2094 | |
| 2095 | - if ( empty( $item ) ) { |
|
| 2095 | + if (empty($item)) { |
|
| 2096 | 2096 | return NULL; |
| 2097 | 2097 | } |
| 2098 | 2098 | |
| 2099 | - if ( !($name = $item->get_name()) ) { |
|
| 2099 | + if (!($name = $item->get_name())) { |
|
| 2100 | 2100 | $name = $item->post_name; |
| 2101 | 2101 | } |
| 2102 | 2102 | |
| 2103 | - return apply_filters( 'wpinv_invoice_get_subscription_name', $name, $this ); |
|
| 2103 | + return apply_filters('wpinv_invoice_get_subscription_name', $name, $this); |
|
| 2104 | 2104 | } |
| 2105 | 2105 | |
| 2106 | 2106 | public function get_expiration() { |
| 2107 | - $expiration = $this->get_meta( '_wpinv_subscr_expiration', true ); |
|
| 2107 | + $expiration = $this->get_meta('_wpinv_subscr_expiration', true); |
|
| 2108 | 2108 | return $expiration; |
| 2109 | 2109 | } |
| 2110 | 2110 | |
| 2111 | - public function get_cancelled_date( $formatted = true ) { |
|
| 2112 | - $cancelled_date = $this->get_subscription_status() == 'cancelled' ? $this->get_meta( '_wpinv_subscr_cancelled_on', true ) : ''; |
|
| 2111 | + public function get_cancelled_date($formatted = true) { |
|
| 2112 | + $cancelled_date = $this->get_subscription_status() == 'cancelled' ? $this->get_meta('_wpinv_subscr_cancelled_on', true) : ''; |
|
| 2113 | 2113 | |
| 2114 | - if ( $formatted && $cancelled_date ) { |
|
| 2115 | - $cancelled_date = date_i18n( get_option( 'date_format' ), strtotime( $cancelled_date ) ); |
|
| 2114 | + if ($formatted && $cancelled_date) { |
|
| 2115 | + $cancelled_date = date_i18n(get_option('date_format'), strtotime($cancelled_date)); |
|
| 2116 | 2116 | } |
| 2117 | 2117 | |
| 2118 | 2118 | return $cancelled_date; |
| 2119 | 2119 | } |
| 2120 | 2120 | |
| 2121 | - public function get_trial_end_date( $formatted = true ) { |
|
| 2122 | - if ( !$this->is_free_trial() || ! ( $this->is_paid() || $this->is_refunded() ) ) { |
|
| 2121 | + public function get_trial_end_date($formatted = true) { |
|
| 2122 | + if (!$this->is_free_trial() || !($this->is_paid() || $this->is_refunded())) { |
|
| 2123 | 2123 | return NULL; |
| 2124 | 2124 | } |
| 2125 | 2125 | |
| 2126 | - $trial_end_date = $this->get_subscription_status() == 'trialing' ? $this->get_meta( '_wpinv_subscr_trial_end', true ) : ''; |
|
| 2126 | + $trial_end_date = $this->get_subscription_status() == 'trialing' ? $this->get_meta('_wpinv_subscr_trial_end', true) : ''; |
|
| 2127 | 2127 | |
| 2128 | - if ( empty( $trial_end_date ) ) { |
|
| 2129 | - $trial_start_time = strtotime( $this->get_subscription_start() ); |
|
| 2130 | - $trial_start_time += ( wpinv_period_in_days( $this->get_subscription_trial_interval(), $this->get_subscription_trial_period() ) * DAY_IN_SECONDS ) ; |
|
| 2128 | + if (empty($trial_end_date)) { |
|
| 2129 | + $trial_start_time = strtotime($this->get_subscription_start()); |
|
| 2130 | + $trial_start_time += (wpinv_period_in_days($this->get_subscription_trial_interval(), $this->get_subscription_trial_period()) * DAY_IN_SECONDS); |
|
| 2131 | 2131 | |
| 2132 | - $trial_end_date = date_i18n( 'Y-m-d H:i:s', $trial_start_time ); |
|
| 2132 | + $trial_end_date = date_i18n('Y-m-d H:i:s', $trial_start_time); |
|
| 2133 | 2133 | } |
| 2134 | 2134 | |
| 2135 | - if ( $formatted && $trial_end_date ) { |
|
| 2136 | - $trial_end_date = date_i18n( get_option( 'date_format' ), strtotime( $trial_end_date ) ); |
|
| 2135 | + if ($formatted && $trial_end_date) { |
|
| 2136 | + $trial_end_date = date_i18n(get_option('date_format'), strtotime($trial_end_date)); |
|
| 2137 | 2137 | } |
| 2138 | 2138 | |
| 2139 | 2139 | return $trial_end_date; |
| 2140 | 2140 | } |
| 2141 | 2141 | |
| 2142 | - public function get_subscription_created( $default = true ) { |
|
| 2143 | - $created = $this->get_meta( '_wpinv_subscr_created', true ); |
|
| 2142 | + public function get_subscription_created($default = true) { |
|
| 2143 | + $created = $this->get_meta('_wpinv_subscr_created', true); |
|
| 2144 | 2144 | |
| 2145 | - if ( empty( $created ) && $default ) { |
|
| 2145 | + if (empty($created) && $default) { |
|
| 2146 | 2146 | $created = $this->date; |
| 2147 | 2147 | } |
| 2148 | 2148 | return $created; |
| 2149 | 2149 | } |
| 2150 | 2150 | |
| 2151 | - public function get_subscription_start( $formatted = true ) { |
|
| 2152 | - if ( ! ( $this->is_paid() || $this->is_refunded() ) ) { |
|
| 2151 | + public function get_subscription_start($formatted = true) { |
|
| 2152 | + if (!($this->is_paid() || $this->is_refunded())) { |
|
| 2153 | 2153 | return '-'; |
| 2154 | 2154 | } |
| 2155 | - $start = $this->get_subscription_created(); |
|
| 2155 | + $start = $this->get_subscription_created(); |
|
| 2156 | 2156 | |
| 2157 | - if ( $formatted ) { |
|
| 2158 | - $date = date_i18n( get_option( 'date_format' ), strtotime( $start ) ); |
|
| 2157 | + if ($formatted) { |
|
| 2158 | + $date = date_i18n(get_option('date_format'), strtotime($start)); |
|
| 2159 | 2159 | } else { |
| 2160 | - $date = date_i18n( 'Y-m-d H:i:s', strtotime( $start ) ); |
|
| 2160 | + $date = date_i18n('Y-m-d H:i:s', strtotime($start)); |
|
| 2161 | 2161 | } |
| 2162 | 2162 | |
| 2163 | 2163 | return $date; |
| 2164 | 2164 | } |
| 2165 | 2165 | |
| 2166 | - public function get_subscription_end( $formatted = true ) { |
|
| 2167 | - if ( ! ( $this->is_paid() || $this->is_refunded() ) ) { |
|
| 2166 | + public function get_subscription_end($formatted = true) { |
|
| 2167 | + if (!($this->is_paid() || $this->is_refunded())) { |
|
| 2168 | 2168 | return '-'; |
| 2169 | 2169 | } |
| 2170 | 2170 | |
| 2171 | - if ( $this->get_subscription_status() == 'cancelled' ) { |
|
| 2172 | - return $this->get_cancelled_date( $formatted ); |
|
| 2171 | + if ($this->get_subscription_status() == 'cancelled') { |
|
| 2172 | + return $this->get_cancelled_date($formatted); |
|
| 2173 | 2173 | } |
| 2174 | 2174 | |
| 2175 | 2175 | $start = $this->get_subscription_created(); |
| 2176 | 2176 | $interval = $this->get_subscription_interval(); |
| 2177 | - $period = $this->get_subscription_period( true ); |
|
| 2177 | + $period = $this->get_subscription_period(true); |
|
| 2178 | 2178 | $bill_times = (int)$this->get_bill_times(); |
| 2179 | 2179 | |
| 2180 | - if ( $bill_times == 0 ) { |
|
| 2181 | - return $formatted ? __( 'Until cancelled', 'invoicing' ) : $bill_times; |
|
| 2180 | + if ($bill_times == 0) { |
|
| 2181 | + return $formatted ? __('Until cancelled', 'invoicing') : $bill_times; |
|
| 2182 | 2182 | } |
| 2183 | 2183 | |
| 2184 | - $total_period = $start . '+' . ( $interval * $bill_times ) . ' ' . $period; |
|
| 2184 | + $total_period = $start . '+' . ($interval * $bill_times) . ' ' . $period; |
|
| 2185 | 2185 | |
| 2186 | - $end_time = strtotime( $start . '+' . ( $interval * $bill_times ) . ' ' . $period ); |
|
| 2186 | + $end_time = strtotime($start . '+' . ($interval * $bill_times) . ' ' . $period); |
|
| 2187 | 2187 | |
| 2188 | - if ( $this->is_free_trial() ) { |
|
| 2189 | - $end_time += ( wpinv_period_in_days( $this->get_subscription_trial_interval(), $this->get_subscription_trial_period() ) * DAY_IN_SECONDS ) ; |
|
| 2188 | + if ($this->is_free_trial()) { |
|
| 2189 | + $end_time += (wpinv_period_in_days($this->get_subscription_trial_interval(), $this->get_subscription_trial_period()) * DAY_IN_SECONDS); |
|
| 2190 | 2190 | } |
| 2191 | 2191 | |
| 2192 | - if ( $formatted ) { |
|
| 2193 | - $date = date_i18n( get_option( 'date_format' ), $end_time ); |
|
| 2192 | + if ($formatted) { |
|
| 2193 | + $date = date_i18n(get_option('date_format'), $end_time); |
|
| 2194 | 2194 | } else { |
| 2195 | - $date = date_i18n( 'Y-m-d H:i:s', $end_time ); |
|
| 2195 | + $date = date_i18n('Y-m-d H:i:s', $end_time); |
|
| 2196 | 2196 | } |
| 2197 | 2197 | |
| 2198 | 2198 | return $date; |
| 2199 | 2199 | } |
| 2200 | 2200 | |
| 2201 | 2201 | public function get_expiration_time() { |
| 2202 | - return strtotime( $this->get_expiration(), current_time( 'timestamp' ) ); |
|
| 2202 | + return strtotime($this->get_expiration(), current_time('timestamp')); |
|
| 2203 | 2203 | } |
| 2204 | 2204 | |
| 2205 | 2205 | public function get_original_invoice_id() { |
@@ -2211,125 +2211,125 @@ discard block |
||
| 2211 | 2211 | return $subscription_data['bill_times']; |
| 2212 | 2212 | } |
| 2213 | 2213 | |
| 2214 | - public function get_child_payments( $self = false ) { |
|
| 2215 | - $invoices = get_posts( array( |
|
| 2214 | + public function get_child_payments($self = false) { |
|
| 2215 | + $invoices = get_posts(array( |
|
| 2216 | 2216 | 'post_type' => $this->post_type, |
| 2217 | 2217 | 'post_parent' => (int)$this->ID, |
| 2218 | 2218 | 'posts_per_page' => '999', |
| 2219 | - 'post_status' => array( 'publish', 'wpi-processing', 'wpi-renewal' ), |
|
| 2219 | + 'post_status' => array('publish', 'wpi-processing', 'wpi-renewal'), |
|
| 2220 | 2220 | 'orderby' => 'ID', |
| 2221 | 2221 | 'order' => 'DESC', |
| 2222 | 2222 | 'fields' => 'ids' |
| 2223 | - ) ); |
|
| 2223 | + )); |
|
| 2224 | 2224 | |
| 2225 | - if ( $this->is_free_trial() ) { |
|
| 2225 | + if ($this->is_free_trial()) { |
|
| 2226 | 2226 | $self = false; |
| 2227 | 2227 | } |
| 2228 | 2228 | |
| 2229 | - if ( $self && $this->is_paid() ) { |
|
| 2230 | - if ( !empty( $invoices ) ) { |
|
| 2229 | + if ($self && $this->is_paid()) { |
|
| 2230 | + if (!empty($invoices)) { |
|
| 2231 | 2231 | $invoices[] = (int)$this->ID; |
| 2232 | 2232 | } else { |
| 2233 | - $invoices = array( $this->ID ); |
|
| 2233 | + $invoices = array($this->ID); |
|
| 2234 | 2234 | } |
| 2235 | 2235 | |
| 2236 | - $invoices = array_unique( $invoices ); |
|
| 2236 | + $invoices = array_unique($invoices); |
|
| 2237 | 2237 | } |
| 2238 | 2238 | |
| 2239 | 2239 | return $invoices; |
| 2240 | 2240 | } |
| 2241 | 2241 | |
| 2242 | - public function get_total_payments( $self = true ) { |
|
| 2243 | - return count( $this->get_child_payments( $self ) ); |
|
| 2242 | + public function get_total_payments($self = true) { |
|
| 2243 | + return count($this->get_child_payments($self)); |
|
| 2244 | 2244 | } |
| 2245 | 2245 | |
| 2246 | - public function get_subscriptions( $limit = -1 ) { |
|
| 2247 | - $subscriptions = wpinv_get_subscriptions( array( 'parent_invoice_id' => $this->ID, 'numberposts' => $limit ) ); |
|
| 2246 | + public function get_subscriptions($limit = -1) { |
|
| 2247 | + $subscriptions = wpinv_get_subscriptions(array('parent_invoice_id' => $this->ID, 'numberposts' => $limit)); |
|
| 2248 | 2248 | |
| 2249 | 2249 | return $subscriptions; |
| 2250 | 2250 | } |
| 2251 | 2251 | |
| 2252 | 2252 | public function get_subscription_id() { |
| 2253 | - $subscription_id = $this->get_meta( '_wpinv_subscr_profile_id', true ); |
|
| 2253 | + $subscription_id = $this->get_meta('_wpinv_subscr_profile_id', true); |
|
| 2254 | 2254 | |
| 2255 | - if ( empty( $subscription_id ) && !empty( $this->parent_invoice ) ) { |
|
| 2256 | - $parent_invoice = wpinv_get_invoice( $this->parent_invoice ); |
|
| 2255 | + if (empty($subscription_id) && !empty($this->parent_invoice)) { |
|
| 2256 | + $parent_invoice = wpinv_get_invoice($this->parent_invoice); |
|
| 2257 | 2257 | |
| 2258 | - $subscription_id = $parent_invoice->get_meta( '_wpinv_subscr_profile_id', true ); |
|
| 2258 | + $subscription_id = $parent_invoice->get_meta('_wpinv_subscr_profile_id', true); |
|
| 2259 | 2259 | } |
| 2260 | 2260 | |
| 2261 | 2261 | return $subscription_id; |
| 2262 | 2262 | } |
| 2263 | 2263 | |
| 2264 | 2264 | public function get_subscription_status() { |
| 2265 | - $subscription_status = $this->get_meta( '_wpinv_subscr_status', true ); |
|
| 2265 | + $subscription_status = $this->get_meta('_wpinv_subscr_status', true); |
|
| 2266 | 2266 | |
| 2267 | - if ( empty( $subscription_status ) ) { |
|
| 2267 | + if (empty($subscription_status)) { |
|
| 2268 | 2268 | $status = 'pending'; |
| 2269 | 2269 | |
| 2270 | - if ( $this->is_paid() ) { |
|
| 2270 | + if ($this->is_paid()) { |
|
| 2271 | 2271 | $bill_times = (int)$this->get_bill_times(); |
| 2272 | 2272 | $times_billed = (int)$this->get_total_payments(); |
| 2273 | - $expiration = $this->get_subscription_end( false ); |
|
| 2274 | - $expired = $bill_times != 0 && $expiration != '' && $expiration != '-' && strtotime( date_i18n( 'Y-m-d', strtotime( $expiration ) ) ) < strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) ) ? true : false; |
|
| 2273 | + $expiration = $this->get_subscription_end(false); |
|
| 2274 | + $expired = $bill_times != 0 && $expiration != '' && $expiration != '-' && strtotime(date_i18n('Y-m-d', strtotime($expiration))) < strtotime(date_i18n('Y-m-d', current_time('timestamp'))) ? true : false; |
|
| 2275 | 2275 | |
| 2276 | - if ( (int)$bill_times == 0 ) { |
|
| 2276 | + if ((int)$bill_times == 0) { |
|
| 2277 | 2277 | $status = $expired ? 'expired' : 'active'; |
| 2278 | - } else if ( $bill_times > 0 && $times_billed >= $bill_times ) { |
|
| 2278 | + } else if ($bill_times > 0 && $times_billed >= $bill_times) { |
|
| 2279 | 2279 | $status = 'completed'; |
| 2280 | - } else if ( $expired ) { |
|
| 2280 | + } else if ($expired) { |
|
| 2281 | 2281 | $status = 'expired'; |
| 2282 | - } else if ( $bill_times > 0 ) { |
|
| 2282 | + } else if ($bill_times > 0) { |
|
| 2283 | 2283 | $status = 'active'; |
| 2284 | 2284 | } else { |
| 2285 | 2285 | $status = 'pending'; |
| 2286 | 2286 | } |
| 2287 | 2287 | } |
| 2288 | 2288 | |
| 2289 | - if ( $status && $status != $subscription_status ) { |
|
| 2289 | + if ($status && $status != $subscription_status) { |
|
| 2290 | 2290 | $subscription_status = $status; |
| 2291 | 2291 | |
| 2292 | - $this->update_meta( '_wpinv_subscr_status', $status ); |
|
| 2292 | + $this->update_meta('_wpinv_subscr_status', $status); |
|
| 2293 | 2293 | } |
| 2294 | 2294 | } |
| 2295 | 2295 | |
| 2296 | 2296 | return $subscription_status; |
| 2297 | 2297 | } |
| 2298 | 2298 | |
| 2299 | - public function get_subscription_status_label( $status = '' ) { |
|
| 2300 | - $status = !empty( $status ) ? $status : $this->get_subscription_status(); |
|
| 2299 | + public function get_subscription_status_label($status = '') { |
|
| 2300 | + $status = !empty($status) ? $status : $this->get_subscription_status(); |
|
| 2301 | 2301 | |
| 2302 | - switch( $status ) { |
|
| 2302 | + switch ($status) { |
|
| 2303 | 2303 | case 'active' : |
| 2304 | - $status_label = __( 'Active', 'invoicing' ); |
|
| 2304 | + $status_label = __('Active', 'invoicing'); |
|
| 2305 | 2305 | break; |
| 2306 | 2306 | |
| 2307 | 2307 | case 'cancelled' : |
| 2308 | - $status_label = __( 'Cancelled', 'invoicing' ); |
|
| 2308 | + $status_label = __('Cancelled', 'invoicing'); |
|
| 2309 | 2309 | break; |
| 2310 | 2310 | |
| 2311 | 2311 | case 'completed' : |
| 2312 | - $status_label = __( 'Completed', 'invoicing' ); |
|
| 2312 | + $status_label = __('Completed', 'invoicing'); |
|
| 2313 | 2313 | break; |
| 2314 | 2314 | |
| 2315 | 2315 | case 'expired' : |
| 2316 | - $status_label = __( 'Expired', 'invoicing' ); |
|
| 2316 | + $status_label = __('Expired', 'invoicing'); |
|
| 2317 | 2317 | break; |
| 2318 | 2318 | |
| 2319 | 2319 | case 'pending' : |
| 2320 | - $status_label = __( 'Pending', 'invoicing' ); |
|
| 2320 | + $status_label = __('Pending', 'invoicing'); |
|
| 2321 | 2321 | break; |
| 2322 | 2322 | |
| 2323 | 2323 | case 'failing' : |
| 2324 | - $status_label = __( 'Failing', 'invoicing' ); |
|
| 2324 | + $status_label = __('Failing', 'invoicing'); |
|
| 2325 | 2325 | break; |
| 2326 | 2326 | |
| 2327 | 2327 | case 'stopped' : |
| 2328 | - $status_label = __( 'Stopped', 'invoicing' ); |
|
| 2328 | + $status_label = __('Stopped', 'invoicing'); |
|
| 2329 | 2329 | break; |
| 2330 | 2330 | |
| 2331 | 2331 | case 'trialing' : |
| 2332 | - $status_label = __( 'Trialing', 'invoicing' ); |
|
| 2332 | + $status_label = __('Trialing', 'invoicing'); |
|
| 2333 | 2333 | break; |
| 2334 | 2334 | |
| 2335 | 2335 | default: |
@@ -2340,26 +2340,26 @@ discard block |
||
| 2340 | 2340 | return $status_label; |
| 2341 | 2341 | } |
| 2342 | 2342 | |
| 2343 | - public function get_subscription_period( $full = false ) { |
|
| 2344 | - $period = $this->get_meta( '_wpinv_subscr_period', true ); |
|
| 2343 | + public function get_subscription_period($full = false) { |
|
| 2344 | + $period = $this->get_meta('_wpinv_subscr_period', true); |
|
| 2345 | 2345 | |
| 2346 | 2346 | // Fix period for old invoices |
| 2347 | - if ( $period == 'day' ) { |
|
| 2347 | + if ($period == 'day') { |
|
| 2348 | 2348 | $period = 'D'; |
| 2349 | - } else if ( $period == 'week' ) { |
|
| 2349 | + } else if ($period == 'week') { |
|
| 2350 | 2350 | $period = 'W'; |
| 2351 | - } else if ( $period == 'month' ) { |
|
| 2351 | + } else if ($period == 'month') { |
|
| 2352 | 2352 | $period = 'M'; |
| 2353 | - } else if ( $period == 'year' ) { |
|
| 2353 | + } else if ($period == 'year') { |
|
| 2354 | 2354 | $period = 'Y'; |
| 2355 | 2355 | } |
| 2356 | 2356 | |
| 2357 | - if ( !in_array( $period, array( 'D', 'W', 'M', 'Y' ) ) ) { |
|
| 2357 | + if (!in_array($period, array('D', 'W', 'M', 'Y'))) { |
|
| 2358 | 2358 | $period = 'D'; |
| 2359 | 2359 | } |
| 2360 | 2360 | |
| 2361 | - if ( $full ) { |
|
| 2362 | - switch( $period ) { |
|
| 2361 | + if ($full) { |
|
| 2362 | + switch ($period) { |
|
| 2363 | 2363 | case 'D': |
| 2364 | 2364 | $period = 'day'; |
| 2365 | 2365 | break; |
@@ -2379,39 +2379,39 @@ discard block |
||
| 2379 | 2379 | } |
| 2380 | 2380 | |
| 2381 | 2381 | public function get_subscription_interval() { |
| 2382 | - $interval = (int)$this->get_meta( '_wpinv_subscr_interval', true ); |
|
| 2382 | + $interval = (int)$this->get_meta('_wpinv_subscr_interval', true); |
|
| 2383 | 2383 | |
| 2384 | - if ( !$interval > 0 ) { |
|
| 2384 | + if (!$interval > 0) { |
|
| 2385 | 2385 | $interval = 1; |
| 2386 | 2386 | } |
| 2387 | 2387 | |
| 2388 | 2388 | return $interval; |
| 2389 | 2389 | } |
| 2390 | 2390 | |
| 2391 | - public function get_subscription_trial_period( $full = false ) { |
|
| 2392 | - if ( !$this->is_free_trial() ) { |
|
| 2391 | + public function get_subscription_trial_period($full = false) { |
|
| 2392 | + if (!$this->is_free_trial()) { |
|
| 2393 | 2393 | return ''; |
| 2394 | 2394 | } |
| 2395 | 2395 | |
| 2396 | - $period = $this->get_meta( '_wpinv_subscr_trial_period', true ); |
|
| 2396 | + $period = $this->get_meta('_wpinv_subscr_trial_period', true); |
|
| 2397 | 2397 | |
| 2398 | 2398 | // Fix period for old invoices |
| 2399 | - if ( $period == 'day' ) { |
|
| 2399 | + if ($period == 'day') { |
|
| 2400 | 2400 | $period = 'D'; |
| 2401 | - } else if ( $period == 'week' ) { |
|
| 2401 | + } else if ($period == 'week') { |
|
| 2402 | 2402 | $period = 'W'; |
| 2403 | - } else if ( $period == 'month' ) { |
|
| 2403 | + } else if ($period == 'month') { |
|
| 2404 | 2404 | $period = 'M'; |
| 2405 | - } else if ( $period == 'year' ) { |
|
| 2405 | + } else if ($period == 'year') { |
|
| 2406 | 2406 | $period = 'Y'; |
| 2407 | 2407 | } |
| 2408 | 2408 | |
| 2409 | - if ( !in_array( $period, array( 'D', 'W', 'M', 'Y' ) ) ) { |
|
| 2409 | + if (!in_array($period, array('D', 'W', 'M', 'Y'))) { |
|
| 2410 | 2410 | $period = 'D'; |
| 2411 | 2411 | } |
| 2412 | 2412 | |
| 2413 | - if ( $full ) { |
|
| 2414 | - switch( $period ) { |
|
| 2413 | + if ($full) { |
|
| 2414 | + switch ($period) { |
|
| 2415 | 2415 | case 'D': |
| 2416 | 2416 | $period = 'day'; |
| 2417 | 2417 | break; |
@@ -2431,13 +2431,13 @@ discard block |
||
| 2431 | 2431 | } |
| 2432 | 2432 | |
| 2433 | 2433 | public function get_subscription_trial_interval() { |
| 2434 | - if ( !$this->is_free_trial() ) { |
|
| 2434 | + if (!$this->is_free_trial()) { |
|
| 2435 | 2435 | return 0; |
| 2436 | 2436 | } |
| 2437 | 2437 | |
| 2438 | - $interval = (int)$this->get_meta( '_wpinv_subscr_trial_interval', true ); |
|
| 2438 | + $interval = (int)$this->get_meta('_wpinv_subscr_trial_interval', true); |
|
| 2439 | 2439 | |
| 2440 | - if ( !$interval > 0 ) { |
|
| 2440 | + if (!$interval > 0) { |
|
| 2441 | 2441 | $interval = 1; |
| 2442 | 2442 | } |
| 2443 | 2443 | |
@@ -2449,8 +2449,8 @@ discard block |
||
| 2449 | 2449 | 'status' => 'failing' |
| 2450 | 2450 | ); |
| 2451 | 2451 | |
| 2452 | - if ( $this->update_subscription( $args ) ) { |
|
| 2453 | - do_action( 'wpinv_subscription_failing', $this->ID, $this ); |
|
| 2452 | + if ($this->update_subscription($args)) { |
|
| 2453 | + do_action('wpinv_subscription_failing', $this->ID, $this); |
|
| 2454 | 2454 | return true; |
| 2455 | 2455 | } |
| 2456 | 2456 | |
@@ -2462,8 +2462,8 @@ discard block |
||
| 2462 | 2462 | 'status' => 'stopped' |
| 2463 | 2463 | ); |
| 2464 | 2464 | |
| 2465 | - if ( $this->update_subscription( $args ) ) { |
|
| 2466 | - do_action( 'wpinv_subscription_stopped', $this->ID, $this ); |
|
| 2465 | + if ($this->update_subscription($args)) { |
|
| 2466 | + do_action('wpinv_subscription_stopped', $this->ID, $this); |
|
| 2467 | 2467 | return true; |
| 2468 | 2468 | } |
| 2469 | 2469 | |
@@ -2475,8 +2475,8 @@ discard block |
||
| 2475 | 2475 | 'status' => 'active' |
| 2476 | 2476 | ); |
| 2477 | 2477 | |
| 2478 | - if ( $this->update_subscription( $args ) ) { |
|
| 2479 | - do_action( 'wpinv_subscription_restarted', $this->ID, $this ); |
|
| 2478 | + if ($this->update_subscription($args)) { |
|
| 2479 | + do_action('wpinv_subscription_restarted', $this->ID, $this); |
|
| 2480 | 2480 | return true; |
| 2481 | 2481 | } |
| 2482 | 2482 | |
@@ -2488,23 +2488,23 @@ discard block |
||
| 2488 | 2488 | 'status' => 'cancelled' |
| 2489 | 2489 | ); |
| 2490 | 2490 | |
| 2491 | - if ( $this->update_subscription( $args ) ) { |
|
| 2492 | - if ( is_user_logged_in() ) { |
|
| 2493 | - $userdata = get_userdata( get_current_user_id() ); |
|
| 2491 | + if ($this->update_subscription($args)) { |
|
| 2492 | + if (is_user_logged_in()) { |
|
| 2493 | + $userdata = get_userdata(get_current_user_id()); |
|
| 2494 | 2494 | $user = $userdata->user_login; |
| 2495 | 2495 | } else { |
| 2496 | - $user = __( 'gateway', 'invoicing' ); |
|
| 2496 | + $user = __('gateway', 'invoicing'); |
|
| 2497 | 2497 | } |
| 2498 | 2498 | |
| 2499 | 2499 | $subscription_id = $this->get_subscription_id(); |
| 2500 | - if ( !$subscription_id ) { |
|
| 2500 | + if (!$subscription_id) { |
|
| 2501 | 2501 | $subscription_id = $this->ID; |
| 2502 | 2502 | } |
| 2503 | 2503 | |
| 2504 | - $note = sprintf( __( 'Subscription %s has been cancelled by %s', 'invoicing' ), $subscription_id, $user ); |
|
| 2505 | - $this->add_note( $note ); |
|
| 2504 | + $note = sprintf(__('Subscription %s has been cancelled by %s', 'invoicing'), $subscription_id, $user); |
|
| 2505 | + $this->add_note($note); |
|
| 2506 | 2506 | |
| 2507 | - do_action( 'wpinv_subscription_cancelled', $this->ID, $this ); |
|
| 2507 | + do_action('wpinv_subscription_cancelled', $this->ID, $this); |
|
| 2508 | 2508 | return true; |
| 2509 | 2509 | } |
| 2510 | 2510 | |
@@ -2512,11 +2512,11 @@ discard block |
||
| 2512 | 2512 | } |
| 2513 | 2513 | |
| 2514 | 2514 | public function can_cancel() { |
| 2515 | - return apply_filters( 'wpinv_subscription_can_cancel', false, $this ); |
|
| 2515 | + return apply_filters('wpinv_subscription_can_cancel', false, $this); |
|
| 2516 | 2516 | } |
| 2517 | 2517 | |
| 2518 | - public function add_subscription( $data = array() ) { |
|
| 2519 | - if ( empty( $this->ID ) ) { |
|
| 2518 | + public function add_subscription($data = array()) { |
|
| 2519 | + if (empty($this->ID)) { |
|
| 2520 | 2520 | return false; |
| 2521 | 2521 | } |
| 2522 | 2522 | |
@@ -2535,85 +2535,85 @@ discard block |
||
| 2535 | 2535 | 'profile_id' => '', |
| 2536 | 2536 | ); |
| 2537 | 2537 | |
| 2538 | - $args = wp_parse_args( $data, $defaults ); |
|
| 2538 | + $args = wp_parse_args($data, $defaults); |
|
| 2539 | 2539 | |
| 2540 | - if ( $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) { |
|
| 2541 | - if ( 'active' == $args['status'] || $args['status'] == 'trialing' ) { |
|
| 2540 | + if ($args['expiration'] && strtotime('NOW', current_time('timestamp')) > strtotime($args['expiration'], current_time('timestamp'))) { |
|
| 2541 | + if ('active' == $args['status'] || $args['status'] == 'trialing') { |
|
| 2542 | 2542 | $args['status'] = 'expired'; |
| 2543 | 2543 | } |
| 2544 | 2544 | } |
| 2545 | 2545 | |
| 2546 | - do_action( 'wpinv_subscription_pre_create', $args, $data, $this ); |
|
| 2546 | + do_action('wpinv_subscription_pre_create', $args, $data, $this); |
|
| 2547 | 2547 | |
| 2548 | - if ( !empty( $args ) ) { |
|
| 2549 | - foreach ( $args as $key => $value ) { |
|
| 2550 | - $this->update_meta( '_wpinv_subscr_' . $key, $value ); |
|
| 2548 | + if (!empty($args)) { |
|
| 2549 | + foreach ($args as $key => $value) { |
|
| 2550 | + $this->update_meta('_wpinv_subscr_' . $key, $value); |
|
| 2551 | 2551 | } |
| 2552 | 2552 | } |
| 2553 | 2553 | |
| 2554 | - do_action( 'wpinv_subscription_post_create', $args, $data, $this ); |
|
| 2554 | + do_action('wpinv_subscription_post_create', $args, $data, $this); |
|
| 2555 | 2555 | |
| 2556 | 2556 | return true; |
| 2557 | 2557 | } |
| 2558 | 2558 | |
| 2559 | - public function update_subscription( $args = array() ) { |
|
| 2560 | - if ( empty( $this->ID ) ) { |
|
| 2559 | + public function update_subscription($args = array()) { |
|
| 2560 | + if (empty($this->ID)) { |
|
| 2561 | 2561 | return false; |
| 2562 | 2562 | } |
| 2563 | 2563 | |
| 2564 | - if ( !empty( $args['expiration'] ) && $args['expiration'] && strtotime( 'NOW', current_time( 'timestamp' ) ) > strtotime( $args['expiration'], current_time( 'timestamp' ) ) ) { |
|
| 2565 | - if ( !isset( $args['status'] ) || ( isset( $args['status'] ) && ( 'active' == $args['status'] || $args['status'] == 'trialing' ) ) ) { |
|
| 2564 | + if (!empty($args['expiration']) && $args['expiration'] && strtotime('NOW', current_time('timestamp')) > strtotime($args['expiration'], current_time('timestamp'))) { |
|
| 2565 | + if (!isset($args['status']) || (isset($args['status']) && ('active' == $args['status'] || $args['status'] == 'trialing'))) { |
|
| 2566 | 2566 | $args['status'] = 'expired'; |
| 2567 | 2567 | } |
| 2568 | 2568 | } |
| 2569 | 2569 | |
| 2570 | - if ( isset( $args['status'] ) && $args['status'] == 'cancelled' && empty( $args['cancelled_on'] ) ) { |
|
| 2571 | - $args['cancelled_on'] = date_i18n( 'Y-m-d H:i:s', current_time( 'timestamp' ) ); |
|
| 2570 | + if (isset($args['status']) && $args['status'] == 'cancelled' && empty($args['cancelled_on'])) { |
|
| 2571 | + $args['cancelled_on'] = date_i18n('Y-m-d H:i:s', current_time('timestamp')); |
|
| 2572 | 2572 | } |
| 2573 | 2573 | |
| 2574 | - do_action( 'wpinv_subscription_pre_update', $args, $this ); |
|
| 2574 | + do_action('wpinv_subscription_pre_update', $args, $this); |
|
| 2575 | 2575 | |
| 2576 | - if ( !empty( $args ) ) { |
|
| 2577 | - foreach ( $args as $key => $value ) { |
|
| 2578 | - $this->update_meta( '_wpinv_subscr_' . $key, $value ); |
|
| 2576 | + if (!empty($args)) { |
|
| 2577 | + foreach ($args as $key => $value) { |
|
| 2578 | + $this->update_meta('_wpinv_subscr_' . $key, $value); |
|
| 2579 | 2579 | } |
| 2580 | 2580 | } |
| 2581 | 2581 | |
| 2582 | - do_action( 'wpinv_subscription_post_update', $args, $this ); |
|
| 2582 | + do_action('wpinv_subscription_post_update', $args, $this); |
|
| 2583 | 2583 | |
| 2584 | 2584 | return true; |
| 2585 | 2585 | } |
| 2586 | 2586 | |
| 2587 | 2587 | public function renew_subscription() { |
| 2588 | 2588 | $parent_invoice = $this->get_parent_payment(); |
| 2589 | - $parent_invoice = empty( $parent_invoice ) ? $this : $parent_invoice; |
|
| 2589 | + $parent_invoice = empty($parent_invoice) ? $this : $parent_invoice; |
|
| 2590 | 2590 | |
| 2591 | - $current_time = current_time( 'timestamp' ); |
|
| 2591 | + $current_time = current_time('timestamp'); |
|
| 2592 | 2592 | $start = $this->get_subscription_created(); |
| 2593 | - $start = $start ? strtotime( $start ) : $current_time; |
|
| 2593 | + $start = $start ? strtotime($start) : $current_time; |
|
| 2594 | 2594 | $expires = $this->get_expiration_time(); |
| 2595 | 2595 | |
| 2596 | - if ( !$expires ) { |
|
| 2597 | - $expires = strtotime( '+' . $parent_invoice->get_subscription_interval() . ' ' . $parent_invoice->get_subscription_period( true ), $start ); |
|
| 2596 | + if (!$expires) { |
|
| 2597 | + $expires = strtotime('+' . $parent_invoice->get_subscription_interval() . ' ' . $parent_invoice->get_subscription_period(true), $start); |
|
| 2598 | 2598 | } |
| 2599 | 2599 | |
| 2600 | - $expiration = date_i18n( 'Y-m-d 23:59:59', $expires ); |
|
| 2601 | - $expiration = apply_filters( 'wpinv_subscription_renewal_expiration', $expiration, $this->ID, $this ); |
|
| 2600 | + $expiration = date_i18n('Y-m-d 23:59:59', $expires); |
|
| 2601 | + $expiration = apply_filters('wpinv_subscription_renewal_expiration', $expiration, $this->ID, $this); |
|
| 2602 | 2602 | $bill_times = $parent_invoice->get_bill_times(); |
| 2603 | 2603 | $times_billed = $parent_invoice->get_total_payments(); |
| 2604 | 2604 | |
| 2605 | - if ( $parent_invoice->get_subscription_status() == 'trialing' && ( $times_billed > 0 || strtotime( date_i18n( 'Y-m-d' ) ) < strtotime( $parent_invoice->get_trial_end_date( false ) ) ) ) { |
|
| 2605 | + if ($parent_invoice->get_subscription_status() == 'trialing' && ($times_billed > 0 || strtotime(date_i18n('Y-m-d')) < strtotime($parent_invoice->get_trial_end_date(false)))) { |
|
| 2606 | 2606 | $args = array( |
| 2607 | 2607 | 'status' => 'active', |
| 2608 | 2608 | ); |
| 2609 | 2609 | |
| 2610 | - $parent_invoice->update_subscription( $args ); |
|
| 2610 | + $parent_invoice->update_subscription($args); |
|
| 2611 | 2611 | } |
| 2612 | 2612 | |
| 2613 | - do_action( 'wpinv_subscription_pre_renew', $this->ID, $expiration, $this ); |
|
| 2613 | + do_action('wpinv_subscription_pre_renew', $this->ID, $expiration, $this); |
|
| 2614 | 2614 | |
| 2615 | - $status = 'active'; |
|
| 2616 | - if ( $bill_times > 0 && $times_billed >= $bill_times ) { |
|
| 2615 | + $status = 'active'; |
|
| 2616 | + if ($bill_times > 0 && $times_billed >= $bill_times) { |
|
| 2617 | 2617 | $this->complete_subscription(); |
| 2618 | 2618 | $status = 'completed'; |
| 2619 | 2619 | } |
@@ -2623,10 +2623,10 @@ discard block |
||
| 2623 | 2623 | 'status' => $status, |
| 2624 | 2624 | ); |
| 2625 | 2625 | |
| 2626 | - $this->update_subscription( $args ); |
|
| 2626 | + $this->update_subscription($args); |
|
| 2627 | 2627 | |
| 2628 | - do_action( 'wpinv_subscription_post_renew', $this->ID, $expiration, $this ); |
|
| 2629 | - do_action( 'wpinv_recurring_set_subscription_status', $this->ID, $status, $this ); |
|
| 2628 | + do_action('wpinv_subscription_post_renew', $this->ID, $expiration, $this); |
|
| 2629 | + do_action('wpinv_recurring_set_subscription_status', $this->ID, $status, $this); |
|
| 2630 | 2630 | } |
| 2631 | 2631 | |
| 2632 | 2632 | public function complete_subscription() { |
@@ -2634,8 +2634,8 @@ discard block |
||
| 2634 | 2634 | 'status' => 'completed' |
| 2635 | 2635 | ); |
| 2636 | 2636 | |
| 2637 | - if ( $this->update_subscription( $args ) ) { |
|
| 2638 | - do_action( 'wpinv_subscription_completed', $this->ID, $this ); |
|
| 2637 | + if ($this->update_subscription($args)) { |
|
| 2638 | + do_action('wpinv_subscription_completed', $this->ID, $this); |
|
| 2639 | 2639 | } |
| 2640 | 2640 | } |
| 2641 | 2641 | |
@@ -2644,44 +2644,44 @@ discard block |
||
| 2644 | 2644 | 'status' => 'expired' |
| 2645 | 2645 | ); |
| 2646 | 2646 | |
| 2647 | - if ( $this->update_subscription( $args ) ) { |
|
| 2648 | - do_action( 'wpinv_subscription_expired', $this->ID, $this ); |
|
| 2647 | + if ($this->update_subscription($args)) { |
|
| 2648 | + do_action('wpinv_subscription_expired', $this->ID, $this); |
|
| 2649 | 2649 | } |
| 2650 | 2650 | } |
| 2651 | 2651 | |
| 2652 | 2652 | public function get_cancel_url() { |
| 2653 | - $url = wp_nonce_url( add_query_arg( array( 'wpi_action' => 'cancel_subscription', 'sub_id' => $this->ID ) ), 'wpinv-recurring-cancel' ); |
|
| 2653 | + $url = wp_nonce_url(add_query_arg(array('wpi_action' => 'cancel_subscription', 'sub_id' => $this->ID)), 'wpinv-recurring-cancel'); |
|
| 2654 | 2654 | |
| 2655 | - return apply_filters( 'wpinv_subscription_cancel_url', $url, $this ); |
|
| 2655 | + return apply_filters('wpinv_subscription_cancel_url', $url, $this); |
|
| 2656 | 2656 | } |
| 2657 | 2657 | |
| 2658 | 2658 | public function can_update() { |
| 2659 | - return apply_filters( 'wpinv_subscription_can_update', false, $this ); |
|
| 2659 | + return apply_filters('wpinv_subscription_can_update', false, $this); |
|
| 2660 | 2660 | } |
| 2661 | 2661 | |
| 2662 | 2662 | public function get_update_url() { |
| 2663 | - $url = add_query_arg( array( 'action' => 'update', 'sub_id' => $this->ID ) ); |
|
| 2663 | + $url = add_query_arg(array('action' => 'update', 'sub_id' => $this->ID)); |
|
| 2664 | 2664 | |
| 2665 | - return apply_filters( 'wpinv_subscription_update_url', $url, $this ); |
|
| 2665 | + return apply_filters('wpinv_subscription_update_url', $url, $this); |
|
| 2666 | 2666 | } |
| 2667 | 2667 | |
| 2668 | 2668 | public function is_parent() { |
| 2669 | - $is_parent = empty( $this->parent_invoice ) ? true : false; |
|
| 2669 | + $is_parent = empty($this->parent_invoice) ? true : false; |
|
| 2670 | 2670 | |
| 2671 | - return apply_filters( 'wpinv_invoice_is_parent', $is_parent, $this ); |
|
| 2671 | + return apply_filters('wpinv_invoice_is_parent', $is_parent, $this); |
|
| 2672 | 2672 | } |
| 2673 | 2673 | |
| 2674 | 2674 | public function is_renewal() { |
| 2675 | 2675 | $is_renewal = $this->parent_invoice && $this->parent_invoice != $this->ID ? true : false; |
| 2676 | 2676 | |
| 2677 | - return apply_filters( 'wpinv_invoice_is_renewal', $is_renewal, $this ); |
|
| 2677 | + return apply_filters('wpinv_invoice_is_renewal', $is_renewal, $this); |
|
| 2678 | 2678 | } |
| 2679 | 2679 | |
| 2680 | 2680 | public function get_parent_payment() { |
| 2681 | 2681 | $parent_payment = NULL; |
| 2682 | 2682 | |
| 2683 | - if ( $this->is_renewal() ) { |
|
| 2684 | - $parent_payment = wpinv_get_invoice( $this->parent_invoice ); |
|
| 2683 | + if ($this->is_renewal()) { |
|
| 2684 | + $parent_payment = wpinv_get_invoice($this->parent_invoice); |
|
| 2685 | 2685 | } |
| 2686 | 2686 | |
| 2687 | 2687 | return $parent_payment; |
@@ -2692,100 +2692,100 @@ discard block |
||
| 2692 | 2692 | |
| 2693 | 2693 | $subscription_status = $this->get_subscription_status(); |
| 2694 | 2694 | |
| 2695 | - if( ! $this->is_subscription_expired() && ( $subscription_status == 'active' || $subscription_status == 'cancelled' || $subscription_status == 'trialing' ) ) { |
|
| 2695 | + if (!$this->is_subscription_expired() && ($subscription_status == 'active' || $subscription_status == 'cancelled' || $subscription_status == 'trialing')) { |
|
| 2696 | 2696 | $ret = true; |
| 2697 | 2697 | } |
| 2698 | 2698 | |
| 2699 | - return apply_filters( 'wpinv_subscription_is_active', $ret, $this->ID, $this ); |
|
| 2699 | + return apply_filters('wpinv_subscription_is_active', $ret, $this->ID, $this); |
|
| 2700 | 2700 | } |
| 2701 | 2701 | |
| 2702 | 2702 | public function is_subscription_expired() { |
| 2703 | 2703 | $ret = false; |
| 2704 | 2704 | $subscription_status = $this->get_subscription_status(); |
| 2705 | 2705 | |
| 2706 | - if ( $subscription_status == 'expired' ) { |
|
| 2706 | + if ($subscription_status == 'expired') { |
|
| 2707 | 2707 | $ret = true; |
| 2708 | - } else if ( 'active' === $subscription_status || 'cancelled' === $subscription_status || 'trialing' == $subscription_status ) { |
|
| 2708 | + } else if ('active' === $subscription_status || 'cancelled' === $subscription_status || 'trialing' == $subscription_status) { |
|
| 2709 | 2709 | $ret = false; |
| 2710 | 2710 | $expiration = $this->get_expiration_time(); |
| 2711 | 2711 | |
| 2712 | - if ( $expiration && strtotime( 'NOW', current_time( 'timestamp' ) ) > $expiration ) { |
|
| 2712 | + if ($expiration && strtotime('NOW', current_time('timestamp')) > $expiration) { |
|
| 2713 | 2713 | $ret = true; |
| 2714 | 2714 | |
| 2715 | - if ( 'active' === $subscription_status || 'trialing' === $subscription_status ) { |
|
| 2715 | + if ('active' === $subscription_status || 'trialing' === $subscription_status) { |
|
| 2716 | 2716 | $this->expire_subscription(); |
| 2717 | 2717 | } |
| 2718 | 2718 | } |
| 2719 | 2719 | } |
| 2720 | 2720 | |
| 2721 | - return apply_filters( 'wpinv_subscription_is_expired', $ret, $this->ID, $this ); |
|
| 2721 | + return apply_filters('wpinv_subscription_is_expired', $ret, $this->ID, $this); |
|
| 2722 | 2722 | } |
| 2723 | 2723 | |
| 2724 | - public function get_new_expiration( $item_id = 0, $trial = true ) { |
|
| 2725 | - $item = new WPInv_Item( $item_id ); |
|
| 2724 | + public function get_new_expiration($item_id = 0, $trial = true) { |
|
| 2725 | + $item = new WPInv_Item($item_id); |
|
| 2726 | 2726 | $interval = $item->get_recurring_interval(); |
| 2727 | - $period = $item->get_recurring_period( true ); |
|
| 2727 | + $period = $item->get_recurring_period(true); |
|
| 2728 | 2728 | |
| 2729 | - $expiration_time = strtotime( '+' . $interval . ' ' . $period ); |
|
| 2729 | + $expiration_time = strtotime('+' . $interval . ' ' . $period); |
|
| 2730 | 2730 | |
| 2731 | - if ( $trial && $this->is_free_trial() && $item->has_free_trial() ) { |
|
| 2732 | - $expiration_time += ( wpinv_period_in_days( $item->get_trial_interval(), $item->get_trial_period() ) * DAY_IN_SECONDS ) ; |
|
| 2731 | + if ($trial && $this->is_free_trial() && $item->has_free_trial()) { |
|
| 2732 | + $expiration_time += (wpinv_period_in_days($item->get_trial_interval(), $item->get_trial_period()) * DAY_IN_SECONDS); |
|
| 2733 | 2733 | } |
| 2734 | 2734 | |
| 2735 | - return date_i18n( 'Y-m-d 23:59:59', $expiration_time ); |
|
| 2735 | + return date_i18n('Y-m-d 23:59:59', $expiration_time); |
|
| 2736 | 2736 | } |
| 2737 | 2737 | |
| 2738 | - public function get_subscription_data( $filed = '' ) { |
|
| 2739 | - $fields = array( 'item_id', 'status', 'period', 'initial_amount', 'recurring_amount', 'interval', 'bill_times', 'trial_period', 'trial_interval', 'expiration', 'profile_id', 'created', 'cancelled_on' ); |
|
| 2738 | + public function get_subscription_data($filed = '') { |
|
| 2739 | + $fields = array('item_id', 'status', 'period', 'initial_amount', 'recurring_amount', 'interval', 'bill_times', 'trial_period', 'trial_interval', 'expiration', 'profile_id', 'created', 'cancelled_on'); |
|
| 2740 | 2740 | |
| 2741 | 2741 | $subscription_meta = array(); |
| 2742 | - foreach ( $fields as $field ) { |
|
| 2743 | - $subscription_meta[ $field ] = $this->get_meta( '_wpinv_subscr_' . $field ); |
|
| 2742 | + foreach ($fields as $field) { |
|
| 2743 | + $subscription_meta[$field] = $this->get_meta('_wpinv_subscr_' . $field); |
|
| 2744 | 2744 | } |
| 2745 | 2745 | |
| 2746 | - $item = $this->get_recurring( true ); |
|
| 2746 | + $item = $this->get_recurring(true); |
|
| 2747 | 2747 | |
| 2748 | - if ( !empty( $item ) ) { |
|
| 2749 | - if ( empty( $subscription_meta['item_id'] ) ) { |
|
| 2748 | + if (!empty($item)) { |
|
| 2749 | + if (empty($subscription_meta['item_id'])) { |
|
| 2750 | 2750 | $subscription_meta['item_id'] = $item->ID; |
| 2751 | 2751 | } |
| 2752 | - if ( empty( $subscription_meta['period'] ) ) { |
|
| 2752 | + if (empty($subscription_meta['period'])) { |
|
| 2753 | 2753 | $subscription_meta['period'] = $item->get_recurring_period(); |
| 2754 | 2754 | } |
| 2755 | - if ( empty( $subscription_meta['interval'] ) ) { |
|
| 2755 | + if (empty($subscription_meta['interval'])) { |
|
| 2756 | 2756 | $subscription_meta['interval'] = $item->get_recurring_interval(); |
| 2757 | 2757 | } |
| 2758 | - if ( $item->has_free_trial() ) { |
|
| 2759 | - if ( empty( $subscription_meta['trial_period'] ) ) { |
|
| 2758 | + if ($item->has_free_trial()) { |
|
| 2759 | + if (empty($subscription_meta['trial_period'])) { |
|
| 2760 | 2760 | $subscription_meta['trial_period'] = $item->get_trial_period(); |
| 2761 | 2761 | } |
| 2762 | - if ( empty( $subscription_meta['trial_interval'] ) ) { |
|
| 2762 | + if (empty($subscription_meta['trial_interval'])) { |
|
| 2763 | 2763 | $subscription_meta['trial_interval'] = $item->get_trial_interval(); |
| 2764 | 2764 | } |
| 2765 | 2765 | } else { |
| 2766 | 2766 | $subscription_meta['trial_period'] = ''; |
| 2767 | 2767 | $subscription_meta['trial_interval'] = 0; |
| 2768 | 2768 | } |
| 2769 | - if ( !$subscription_meta['bill_times'] && $subscription_meta['bill_times'] !== 0 ) { |
|
| 2769 | + if (!$subscription_meta['bill_times'] && $subscription_meta['bill_times'] !== 0) { |
|
| 2770 | 2770 | $subscription_meta['bill_times'] = $item->get_recurring_limit(); |
| 2771 | 2771 | } |
| 2772 | - if ( $subscription_meta['initial_amount'] === '' || $subscription_meta['recurring_amount'] === '' ) { |
|
| 2773 | - $subscription_meta['initial_amount'] = wpinv_round_amount( $this->get_total() ); |
|
| 2774 | - $subscription_meta['recurring_amount'] = wpinv_round_amount( $this->get_recurring_details( 'total' ) ); |
|
| 2772 | + if ($subscription_meta['initial_amount'] === '' || $subscription_meta['recurring_amount'] === '') { |
|
| 2773 | + $subscription_meta['initial_amount'] = wpinv_round_amount($this->get_total()); |
|
| 2774 | + $subscription_meta['recurring_amount'] = wpinv_round_amount($this->get_recurring_details('total')); |
|
| 2775 | 2775 | } |
| 2776 | 2776 | } |
| 2777 | 2777 | |
| 2778 | - if ( $filed === '' ) { |
|
| 2779 | - return apply_filters( 'wpinv_get_invoice_subscription_data', $subscription_meta, $this ); |
|
| 2778 | + if ($filed === '') { |
|
| 2779 | + return apply_filters('wpinv_get_invoice_subscription_data', $subscription_meta, $this); |
|
| 2780 | 2780 | } |
| 2781 | 2781 | |
| 2782 | - $value = isset( $subscription_meta[$filed] ) ? $subscription_meta[$filed] : ''; |
|
| 2782 | + $value = isset($subscription_meta[$filed]) ? $subscription_meta[$filed] : ''; |
|
| 2783 | 2783 | |
| 2784 | - return apply_filters( 'wpinv_invoice_subscription_data_value', $value, $subscription_meta, $this ); |
|
| 2784 | + return apply_filters('wpinv_invoice_subscription_data_value', $value, $subscription_meta, $this); |
|
| 2785 | 2785 | } |
| 2786 | 2786 | |
| 2787 | 2787 | public function is_paid() { |
| 2788 | - if ( $this->has_status( array( 'publish', 'wpi-processing', 'wpi-renewal' ) ) ) { |
|
| 2788 | + if ($this->has_status(array('publish', 'wpi-processing', 'wpi-renewal'))) { |
|
| 2789 | 2789 | return true; |
| 2790 | 2790 | } |
| 2791 | 2791 | |
@@ -2793,23 +2793,23 @@ discard block |
||
| 2793 | 2793 | } |
| 2794 | 2794 | |
| 2795 | 2795 | public function is_refunded() { |
| 2796 | - $is_refunded = $this->has_status( array( 'wpi-refunded' ) ); |
|
| 2796 | + $is_refunded = $this->has_status(array('wpi-refunded')); |
|
| 2797 | 2797 | |
| 2798 | - return apply_filters( 'wpinv_invoice_is_refunded', $is_refunded, $this ); |
|
| 2798 | + return apply_filters('wpinv_invoice_is_refunded', $is_refunded, $this); |
|
| 2799 | 2799 | } |
| 2800 | 2800 | |
| 2801 | 2801 | public function is_free() { |
| 2802 | 2802 | $is_free = false; |
| 2803 | 2803 | |
| 2804 | - if ( !( (float)wpinv_round_amount( $this->get_total() ) > 0 ) ) { |
|
| 2805 | - if ( $this->is_parent() && $this->is_recurring() ) { |
|
| 2806 | - $is_free = (float)wpinv_round_amount( $this->get_recurring_details( 'total' ) ) > 0 ? false : true; |
|
| 2804 | + if (!((float)wpinv_round_amount($this->get_total()) > 0)) { |
|
| 2805 | + if ($this->is_parent() && $this->is_recurring()) { |
|
| 2806 | + $is_free = (float)wpinv_round_amount($this->get_recurring_details('total')) > 0 ? false : true; |
|
| 2807 | 2807 | } else { |
| 2808 | 2808 | $is_free = true; |
| 2809 | 2809 | } |
| 2810 | 2810 | } |
| 2811 | 2811 | |
| 2812 | - return apply_filters( 'wpinv_invoice_is_free', $is_free, $this ); |
|
| 2812 | + return apply_filters('wpinv_invoice_is_free', $is_free, $this); |
|
| 2813 | 2813 | } |
| 2814 | 2814 | |
| 2815 | 2815 | public function has_vat() { |
@@ -2817,41 +2817,41 @@ discard block |
||
| 2817 | 2817 | |
| 2818 | 2818 | $requires_vat = false; |
| 2819 | 2819 | |
| 2820 | - if ( $this->country ) { |
|
| 2820 | + if ($this->country) { |
|
| 2821 | 2821 | $wpi_country = $this->country; |
| 2822 | 2822 | |
| 2823 | - $requires_vat = $wpinv_euvat->requires_vat( $requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule( $this ) ); |
|
| 2823 | + $requires_vat = $wpinv_euvat->requires_vat($requires_vat, $this->get_user_id(), $wpinv_euvat->invoice_has_digital_rule($this)); |
|
| 2824 | 2824 | } |
| 2825 | 2825 | |
| 2826 | - return apply_filters( 'wpinv_invoice_has_vat', $requires_vat, $this ); |
|
| 2826 | + return apply_filters('wpinv_invoice_has_vat', $requires_vat, $this); |
|
| 2827 | 2827 | } |
| 2828 | 2828 | |
| 2829 | 2829 | public function refresh_item_ids() { |
| 2830 | 2830 | $item_ids = array(); |
| 2831 | 2831 | |
| 2832 | - if ( !empty( $this->cart_details ) ) { |
|
| 2833 | - foreach ( $this->cart_details as $key => $item ) { |
|
| 2834 | - if ( !empty( $item['id'] ) ) { |
|
| 2832 | + if (!empty($this->cart_details)) { |
|
| 2833 | + foreach ($this->cart_details as $key => $item) { |
|
| 2834 | + if (!empty($item['id'])) { |
|
| 2835 | 2835 | $item_ids[] = $item['id']; |
| 2836 | 2836 | } |
| 2837 | 2837 | } |
| 2838 | 2838 | } |
| 2839 | 2839 | |
| 2840 | - $item_ids = !empty( $item_ids ) ? implode( ',', array_unique( $item_ids ) ) : ''; |
|
| 2840 | + $item_ids = !empty($item_ids) ? implode(',', array_unique($item_ids)) : ''; |
|
| 2841 | 2841 | |
| 2842 | - update_post_meta( $this->ID, '_wpinv_item_ids', $item_ids ); |
|
| 2842 | + update_post_meta($this->ID, '_wpinv_item_ids', $item_ids); |
|
| 2843 | 2843 | } |
| 2844 | 2844 | |
| 2845 | - public function get_invoice_quote_type( $post_id ) { |
|
| 2846 | - if ( empty( $post_id ) ) { |
|
| 2845 | + public function get_invoice_quote_type($post_id) { |
|
| 2846 | + if (empty($post_id)) { |
|
| 2847 | 2847 | return ''; |
| 2848 | 2848 | } |
| 2849 | 2849 | |
| 2850 | - $type = get_post_type( $post_id ); |
|
| 2850 | + $type = get_post_type($post_id); |
|
| 2851 | 2851 | |
| 2852 | - if ( 'wpi_invoice' === $type ) { |
|
| 2852 | + if ('wpi_invoice' === $type) { |
|
| 2853 | 2853 | $post_type = __('Invoice', 'invoicing'); |
| 2854 | - } else{ |
|
| 2854 | + } else { |
|
| 2855 | 2855 | $post_type = __('Quote', 'invoicing'); |
| 2856 | 2856 | } |
| 2857 | 2857 | |
@@ -130,7 +130,6 @@ |
||
| 130 | 130 | private function mostSpecificSubdivision() |
| 131 | 131 | { |
| 132 | 132 | return empty($this->subdivisions) ? |
| 133 | - new \GeoIp2\Record\Subdivision(array(), $this->locales) : |
|
| 134 | - end($this->subdivisions); |
|
| 133 | + new \GeoIp2\Record\Subdivision(array(), $this->locales) : end($this->subdivisions); |
|
| 135 | 134 | } |
| 136 | 135 | } |
@@ -5,12 +5,12 @@ |
||
| 5 | 5 | // @codingStandardsIgnoreFile |
| 6 | 6 | |
| 7 | 7 | /** |
| 8 | - * This interface exists to provide backwards compatibility with PHP 5.3 |
|
| 9 | - * |
|
| 10 | - * This should _not_ be used by any third-party code. |
|
| 11 | - * |
|
| 12 | - * @ignore |
|
| 13 | - */ |
|
| 8 | + * This interface exists to provide backwards compatibility with PHP 5.3 |
|
| 9 | + * |
|
| 10 | + * This should _not_ be used by any third-party code. |
|
| 11 | + * |
|
| 12 | + * @ignore |
|
| 13 | + */ |
|
| 14 | 14 | if (interface_exists('JsonSerializable')) { |
| 15 | 15 | interface JsonSerializable extends \JsonSerializable |
| 16 | 16 | { |
@@ -9,780 +9,780 @@ |
||
| 9 | 9 | * @author Roman Ožana <[email protected]> |
| 10 | 10 | */ |
| 11 | 11 | class Emogrifier { |
| 12 | - /** |
|
| 13 | - * @var string |
|
| 14 | - */ |
|
| 15 | - const ENCODING = 'UTF-8'; |
|
| 16 | - |
|
| 17 | - /** |
|
| 18 | - * @var integer |
|
| 19 | - */ |
|
| 20 | - const CACHE_KEY_CSS = 0; |
|
| 21 | - |
|
| 22 | - /** |
|
| 23 | - * @var integer |
|
| 24 | - */ |
|
| 25 | - const CACHE_KEY_SELECTOR = 1; |
|
| 26 | - |
|
| 27 | - /** |
|
| 28 | - * @var integer |
|
| 29 | - */ |
|
| 30 | - const CACHE_KEY_XPATH = 2; |
|
| 31 | - |
|
| 32 | - /** |
|
| 33 | - * @var integer |
|
| 34 | - */ |
|
| 35 | - const CACHE_KEY_CSS_DECLARATION_BLOCK = 3; |
|
| 36 | - |
|
| 37 | - /** |
|
| 38 | - * for calculating nth-of-type and nth-child selectors. |
|
| 39 | - * |
|
| 40 | - * @var integer |
|
| 41 | - */ |
|
| 42 | - const INDEX = 0; |
|
| 43 | - |
|
| 44 | - /** |
|
| 45 | - * for calculating nth-of-type and nth-child selectors. |
|
| 46 | - * |
|
| 47 | - * @var integer |
|
| 48 | - */ |
|
| 49 | - const MULTIPLIER = 1; |
|
| 50 | - |
|
| 51 | - /** |
|
| 52 | - * @var string |
|
| 53 | - */ |
|
| 54 | - const ID_ATTRIBUTE_MATCHER = '/(\\w+)?\\#([\\w\\-]+)/'; |
|
| 55 | - |
|
| 56 | - /** |
|
| 57 | - * @var string |
|
| 58 | - */ |
|
| 59 | - const CLASS_ATTRIBUTE_MATCHER = '/(\\w+|[\\*\\]])?((\\.[\\w\\-]+)+)/'; |
|
| 60 | - |
|
| 61 | - /** |
|
| 62 | - * @var string |
|
| 63 | - */ |
|
| 64 | - private $html = ''; |
|
| 65 | - |
|
| 66 | - /** |
|
| 67 | - * @var string |
|
| 68 | - */ |
|
| 69 | - private $css = ''; |
|
| 70 | - |
|
| 71 | - /** |
|
| 72 | - * @var array<string> |
|
| 73 | - */ |
|
| 74 | - private $unprocessableHtmlTags = array('wbr'); |
|
| 75 | - |
|
| 76 | - /** |
|
| 77 | - * @var array<array> |
|
| 78 | - */ |
|
| 79 | - private $caches = array( |
|
| 80 | - self::CACHE_KEY_CSS => array(), |
|
| 81 | - self::CACHE_KEY_SELECTOR => array(), |
|
| 82 | - self::CACHE_KEY_XPATH => array(), |
|
| 83 | - self::CACHE_KEY_CSS_DECLARATION_BLOCK => array(), |
|
| 84 | - ); |
|
| 85 | - |
|
| 86 | - /** |
|
| 87 | - * the visited nodes with the XPath paths as array keys. |
|
| 88 | - * |
|
| 89 | - * @var array<\DOMNode> |
|
| 90 | - */ |
|
| 91 | - private $visitedNodes = array(); |
|
| 92 | - |
|
| 93 | - /** |
|
| 94 | - * the styles to apply to the nodes with the XPath paths as array keys for the outer array and the attribute names/values. |
|
| 95 | - * as key/value pairs for the inner array. |
|
| 96 | - * |
|
| 97 | - * @var array<array><string> |
|
| 98 | - */ |
|
| 99 | - private $styleAttributesForNodes = array(); |
|
| 100 | - |
|
| 101 | - /** |
|
| 102 | - * This attribute applies to the case where you want to preserve your original text encoding. |
|
| 103 | - * |
|
| 104 | - * By default, emogrifier translates your text into HTML entities for two reasons: |
|
| 105 | - * |
|
| 106 | - * 1. Because of client incompatibilities, it is better practice to send out HTML entities rather than unicode over email. |
|
| 107 | - * |
|
| 108 | - * 2. It translates any illegal XML characters that DOMDocument cannot work with. |
|
| 109 | - * |
|
| 110 | - * If you would like to preserve your original encoding, set this attribute to TRUE. |
|
| 111 | - * |
|
| 112 | - * @var boolean |
|
| 113 | - */ |
|
| 114 | - public $preserveEncoding = false; |
|
| 115 | - |
|
| 116 | - public static $_media = ''; |
|
| 117 | - |
|
| 118 | - /** |
|
| 119 | - * The constructor. |
|
| 120 | - * |
|
| 121 | - * @param string $html the HTML to emogrify, must be UTF-8-encoded |
|
| 122 | - * @param string $css the CSS to merge, must be UTF-8-encoded |
|
| 123 | - */ |
|
| 124 | - public function __construct($html = '', $css = '') { |
|
| 125 | - $this->setHtml($html); |
|
| 126 | - $this->setCss($css); |
|
| 127 | - } |
|
| 128 | - |
|
| 129 | - /** |
|
| 130 | - * The destructor. |
|
| 131 | - */ |
|
| 132 | - public function __destruct() { |
|
| 133 | - $this->purgeVisitedNodes(); |
|
| 134 | - } |
|
| 135 | - |
|
| 136 | - /** |
|
| 137 | - * Sets the HTML to emogrify. |
|
| 138 | - * |
|
| 139 | - * @param string $html the HTML to emogrify, must be UTF-8-encoded |
|
| 140 | - */ |
|
| 141 | - public function setHtml($html = '') { |
|
| 142 | - $this->html = $html; |
|
| 143 | - } |
|
| 144 | - |
|
| 145 | - /** |
|
| 146 | - * Sets the CSS to merge with the HTML. |
|
| 147 | - * |
|
| 148 | - * @param string $css the CSS to merge, must be UTF-8-encoded |
|
| 149 | - */ |
|
| 150 | - public function setCss($css = '') { |
|
| 151 | - $this->css = $css; |
|
| 152 | - } |
|
| 153 | - |
|
| 154 | - /** |
|
| 155 | - * Clears all caches. |
|
| 156 | - */ |
|
| 157 | - private function clearAllCaches() { |
|
| 158 | - $this->clearCache(self::CACHE_KEY_CSS); |
|
| 159 | - $this->clearCache(self::CACHE_KEY_SELECTOR); |
|
| 160 | - $this->clearCache(self::CACHE_KEY_XPATH); |
|
| 161 | - $this->clearCache(self::CACHE_KEY_CSS_DECLARATION_BLOCK); |
|
| 162 | - } |
|
| 163 | - |
|
| 164 | - /** |
|
| 165 | - * Clears a single cache by key. |
|
| 166 | - * |
|
| 167 | - * @param integer $key the cache key, must be CACHE_KEY_CSS, CACHE_KEY_SELECTOR, CACHE_KEY_XPATH or CACHE_KEY_CSS_DECLARATION_BLOCK |
|
| 168 | - * |
|
| 169 | - * @throws InvalidArgumentException |
|
| 170 | - */ |
|
| 171 | - private function clearCache($key) { |
|
| 172 | - $allowedCacheKeys = array(self::CACHE_KEY_CSS, self::CACHE_KEY_SELECTOR, self::CACHE_KEY_XPATH, self::CACHE_KEY_CSS_DECLARATION_BLOCK); |
|
| 173 | - if (!in_array($key, $allowedCacheKeys, true)) { |
|
| 174 | - throw new InvalidArgumentException('Invalid cache key: ' . $key, 1391822035); |
|
| 175 | - } |
|
| 176 | - |
|
| 177 | - $this->caches[$key] = array(); |
|
| 178 | - } |
|
| 179 | - |
|
| 180 | - /** |
|
| 181 | - * Purges the visited nodes. |
|
| 182 | - */ |
|
| 183 | - private function purgeVisitedNodes() { |
|
| 184 | - $this->visitedNodes = array(); |
|
| 185 | - $this->styleAttributesForNodes = array(); |
|
| 186 | - } |
|
| 187 | - |
|
| 188 | - /** |
|
| 189 | - * Marks a tag for removal. |
|
| 190 | - * |
|
| 191 | - * There are some HTML tags that DOMDocument cannot process, and it will throw an error if it encounters them. |
|
| 192 | - * In particular, DOMDocument will complain if you try to use HTML5 tags in an XHTML document. |
|
| 193 | - * |
|
| 194 | - * Note: The tags will not be removed if they have any content. |
|
| 195 | - * |
|
| 196 | - * @param string $tagName the tag name, e.g., "p" |
|
| 197 | - */ |
|
| 198 | - public function addUnprocessableHtmlTag($tagName) { |
|
| 199 | - $this->unprocessableHtmlTags[] = $tagName; |
|
| 200 | - } |
|
| 201 | - |
|
| 202 | - /** |
|
| 203 | - * Drops a tag from the removal list. |
|
| 204 | - * |
|
| 205 | - * @param string $tagName the tag name, e.g., "p" |
|
| 206 | - */ |
|
| 207 | - public function removeUnprocessableHtmlTag($tagName) { |
|
| 208 | - $key = array_search($tagName, $this->unprocessableHtmlTags, true); |
|
| 209 | - if ($key !== false) { |
|
| 210 | - unset($this->unprocessableHtmlTags[$key]); |
|
| 211 | - } |
|
| 212 | - } |
|
| 213 | - |
|
| 214 | - /** |
|
| 215 | - * Applies the CSS you submit to the HTML you submit. |
|
| 216 | - * |
|
| 217 | - * This method places the CSS inline. |
|
| 218 | - * |
|
| 219 | - * @return string |
|
| 220 | - * |
|
| 221 | - * @throws BadMethodCallException |
|
| 222 | - */ |
|
| 223 | - public function emogrify() { |
|
| 224 | - if ($this->html === '') { |
|
| 225 | - throw new BadMethodCallException('Please set some HTML first before calling emogrify.', 1390393096); |
|
| 226 | - } |
|
| 227 | - |
|
| 228 | - $xmlDocument = $this->createXmlDocument(); |
|
| 229 | - $xpath = new DOMXPath($xmlDocument); |
|
| 230 | - $this->clearAllCaches(); |
|
| 231 | - |
|
| 232 | - // before be begin processing the CSS file, parse the document and normalize all existing CSS attributes (changes 'DISPLAY: none' to 'display: none'); |
|
| 233 | - // we wouldn't have to do this if DOMXPath supported XPath 2.0. |
|
| 234 | - // also store a reference of nodes with existing inline styles so we don't overwrite them |
|
| 235 | - $this->purgeVisitedNodes(); |
|
| 236 | - |
|
| 237 | - $nodesWithStyleAttributes = $xpath->query('//*[@style]'); |
|
| 238 | - if ($nodesWithStyleAttributes !== false) { |
|
| 239 | - /** @var $nodeWithStyleAttribute DOMNode */ |
|
| 240 | - foreach ($nodesWithStyleAttributes as $node) { |
|
| 241 | - $normalizedOriginalStyle = preg_replace_callback( '/[A-z\\-]+(?=\\:)/S', array( $this, 'strtolower' ), $node->getAttribute('style') ); |
|
| 242 | - |
|
| 243 | - // in order to not overwrite existing style attributes in the HTML, we have to save the original HTML styles |
|
| 244 | - $nodePath = $node->getNodePath(); |
|
| 245 | - if (!isset($this->styleAttributesForNodes[$nodePath])) { |
|
| 246 | - $this->styleAttributesForNodes[$nodePath] = $this->parseCssDeclarationBlock($normalizedOriginalStyle); |
|
| 247 | - $this->visitedNodes[$nodePath] = $node; |
|
| 248 | - } |
|
| 249 | - |
|
| 250 | - $node->setAttribute('style', $normalizedOriginalStyle); |
|
| 251 | - } |
|
| 252 | - } |
|
| 253 | - |
|
| 254 | - // grab any existing style blocks from the html and append them to the existing CSS |
|
| 255 | - // (these blocks should be appended so as to have precedence over conflicting styles in the existing CSS) |
|
| 256 | - $allCss = $this->css; |
|
| 257 | - |
|
| 258 | - $allCss .= $this->getCssFromAllStyleNodes($xpath); |
|
| 259 | - |
|
| 260 | - $cssParts = $this->splitCssAndMediaQuery($allCss); |
|
| 261 | - self::$_media = ''; // reset |
|
| 262 | - |
|
| 263 | - $cssKey = md5($cssParts['css']); |
|
| 264 | - if (!isset($this->caches[self::CACHE_KEY_CSS][$cssKey])) { |
|
| 265 | - // process the CSS file for selectors and definitions |
|
| 266 | - preg_match_all('/(?:^|[\\s^{}]*)([^{]+){([^}]*)}/mis', $cssParts['css'], $matches, PREG_SET_ORDER); |
|
| 267 | - |
|
| 268 | - $allSelectors = array(); |
|
| 269 | - foreach ($matches as $key => $selectorString) { |
|
| 270 | - // if there is a blank definition, skip |
|
| 271 | - if (!strlen(trim($selectorString[2]))) { |
|
| 272 | - continue; |
|
| 273 | - } |
|
| 274 | - |
|
| 275 | - // else split by commas and duplicate attributes so we can sort by selector precedence |
|
| 276 | - $selectors = explode(',', $selectorString[1]); |
|
| 277 | - foreach ($selectors as $selector) { |
|
| 278 | - // don't process pseudo-elements and behavioral (dynamic) pseudo-classes; ONLY allow structural pseudo-classes |
|
| 279 | - if (strpos($selector, ':') !== false && !preg_match('/:\\S+\\-(child|type)\\(/i', $selector)) { |
|
| 280 | - continue; |
|
| 281 | - } |
|
| 282 | - |
|
| 283 | - $allSelectors[] = array('selector' => trim($selector), |
|
| 284 | - 'attributes' => trim($selectorString[2]), |
|
| 285 | - // keep track of where it appears in the file, since order is important |
|
| 286 | - 'line' => $key, |
|
| 287 | - ); |
|
| 288 | - } |
|
| 289 | - } |
|
| 290 | - |
|
| 291 | - // now sort the selectors by precedence |
|
| 292 | - usort($allSelectors, array($this,'sortBySelectorPrecedence')); |
|
| 293 | - |
|
| 294 | - $this->caches[self::CACHE_KEY_CSS][$cssKey] = $allSelectors; |
|
| 295 | - } |
|
| 296 | - |
|
| 297 | - foreach ($this->caches[self::CACHE_KEY_CSS][$cssKey] as $value) { |
|
| 298 | - // query the body for the xpath selector |
|
| 299 | - $nodesMatchingCssSelectors = $xpath->query($this->translateCssToXpath($value['selector'])); |
|
| 300 | - |
|
| 301 | - /** @var $node \DOMNode */ |
|
| 302 | - foreach ($nodesMatchingCssSelectors as $node) { |
|
| 303 | - // if it has a style attribute, get it, process it, and append (overwrite) new stuff |
|
| 304 | - if ($node->hasAttribute('style')) { |
|
| 305 | - // break it up into an associative array |
|
| 306 | - $oldStyleDeclarations = $this->parseCssDeclarationBlock($node->getAttribute('style')); |
|
| 307 | - } else { |
|
| 308 | - $oldStyleDeclarations = array(); |
|
| 309 | - } |
|
| 310 | - $newStyleDeclarations = $this->parseCssDeclarationBlock($value['attributes']); |
|
| 311 | - $node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($oldStyleDeclarations, $newStyleDeclarations)); |
|
| 312 | - } |
|
| 313 | - } |
|
| 314 | - |
|
| 315 | - // now iterate through the nodes that contained inline styles in the original HTML |
|
| 316 | - foreach ($this->styleAttributesForNodes as $nodePath => $styleAttributesForNode) { |
|
| 317 | - $node = $this->visitedNodes[$nodePath]; |
|
| 318 | - $currentStyleAttributes = $this->parseCssDeclarationBlock($node->getAttribute('style')); |
|
| 319 | - $node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($currentStyleAttributes, $styleAttributesForNode)); |
|
| 320 | - } |
|
| 321 | - |
|
| 322 | - // This removes styles from your email that contain display:none. |
|
| 323 | - // We need to look for display:none, but we need to do a case-insensitive search. Since DOMDocument only supports XPath 1.0, |
|
| 324 | - // lower-case() isn't available to us. We've thus far only set attributes to lowercase, not attribute values. Consequently, we need |
|
| 325 | - // to translate() the letters that would be in 'NONE' ("NOE") to lowercase. |
|
| 326 | - $nodesWithStyleDisplayNone = $xpath->query('//*[contains(translate(translate(@style," ",""),"NOE","noe"),"display:none")]'); |
|
| 327 | - // The checks on parentNode and is_callable below ensure that if we've deleted the parent node, |
|
| 328 | - // we don't try to call removeChild on a nonexistent child node |
|
| 329 | - if ($nodesWithStyleDisplayNone->length > 0) { |
|
| 330 | - /** @var $node \DOMNode */ |
|
| 331 | - foreach ($nodesWithStyleDisplayNone as $node) { |
|
| 332 | - if ($node->parentNode && is_callable(array($node->parentNode,'removeChild'))) { |
|
| 333 | - $node->parentNode->removeChild($node); |
|
| 334 | - } |
|
| 335 | - } |
|
| 336 | - } |
|
| 337 | - |
|
| 338 | - $this->copyCssWithMediaToStyleNode($cssParts, $xmlDocument); |
|
| 339 | - |
|
| 340 | - if ($this->preserveEncoding) { |
|
| 341 | - if ( function_exists( 'mb_convert_encoding' ) ) { |
|
| 342 | - return mb_convert_encoding( $xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES' ); |
|
| 343 | - } else { |
|
| 344 | - return htmlspecialchars_decode( utf8_encode( html_entity_decode( $xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING ) ) ); |
|
| 345 | - } |
|
| 346 | - } else { |
|
| 347 | - return $xmlDocument->saveHTML(); |
|
| 348 | - } |
|
| 349 | - } |
|
| 350 | - |
|
| 351 | - public function strtolower(array $m) { |
|
| 352 | - return strtolower($m[0]); |
|
| 353 | - } |
|
| 354 | - |
|
| 355 | - |
|
| 356 | - /** |
|
| 357 | - * This method merges old or existing name/value array with new name/value array. |
|
| 358 | - * and then generates a string of the combined style suitable for placing inline. |
|
| 359 | - * This becomes the single point for CSS string generation allowing for consistent. |
|
| 360 | - * CSS output no matter where the CSS originally came from. |
|
| 361 | - * @param array $oldStyles |
|
| 362 | - * @param array $newStyles |
|
| 363 | - * @return string |
|
| 364 | - */ |
|
| 365 | - private function generateStyleStringFromDeclarationsArrays(array $oldStyles, array $newStyles) { |
|
| 366 | - $combinedStyles = array_merge($oldStyles, $newStyles); |
|
| 367 | - $style = ''; |
|
| 368 | - foreach ($combinedStyles as $attributeName => $attributeValue) { |
|
| 369 | - $style .= (strtolower(trim($attributeName)) . ': ' . trim($attributeValue) . '; '); |
|
| 370 | - } |
|
| 371 | - return trim($style); |
|
| 372 | - } |
|
| 373 | - |
|
| 374 | - |
|
| 375 | - /** |
|
| 376 | - * Copies the media part from CSS array parts to $xmlDocument. |
|
| 377 | - * |
|
| 378 | - * @param array $cssParts |
|
| 379 | - * @param DOMDocument $xmlDocument |
|
| 380 | - */ |
|
| 381 | - public function copyCssWithMediaToStyleNode(array $cssParts, DOMDocument $xmlDocument) { |
|
| 382 | - if (isset($cssParts['media']) && $cssParts['media'] !== '') { |
|
| 383 | - $this->addStyleElementToDocument($xmlDocument, $cssParts['media']); |
|
| 384 | - } |
|
| 385 | - } |
|
| 386 | - |
|
| 387 | - /** |
|
| 388 | - * Returns CSS content. |
|
| 389 | - * |
|
| 390 | - * @param DOMXPath $xpath |
|
| 391 | - * @return string |
|
| 392 | - */ |
|
| 393 | - private function getCssFromAllStyleNodes(DOMXPath $xpath) { |
|
| 394 | - $styleNodes = $xpath->query('//style'); |
|
| 395 | - |
|
| 396 | - if ($styleNodes === false) { |
|
| 397 | - return ''; |
|
| 398 | - } |
|
| 399 | - |
|
| 400 | - $css = ''; |
|
| 401 | - /** @var $styleNode DOMNode */ |
|
| 402 | - foreach ($styleNodes as $styleNode) { |
|
| 403 | - $css .= "\n\n" . $styleNode->nodeValue; |
|
| 404 | - $styleNode->parentNode->removeChild($styleNode); |
|
| 405 | - } |
|
| 406 | - |
|
| 407 | - return $css; |
|
| 408 | - } |
|
| 409 | - |
|
| 410 | - /** |
|
| 411 | - * Adds a style element with $css to $document. |
|
| 412 | - * |
|
| 413 | - * @param DOMDocument $document |
|
| 414 | - * @param string $css |
|
| 415 | - */ |
|
| 416 | - private function addStyleElementToDocument(DOMDocument $document, $css) { |
|
| 417 | - $styleElement = $document->createElement('style', $css); |
|
| 418 | - $styleAttribute = $document->createAttribute('type'); |
|
| 419 | - $styleAttribute->value = 'text/css'; |
|
| 420 | - $styleElement->appendChild($styleAttribute); |
|
| 421 | - |
|
| 422 | - $head = $this->getOrCreateHeadElement($document); |
|
| 423 | - $head->appendChild($styleElement); |
|
| 424 | - } |
|
| 425 | - |
|
| 426 | - /** |
|
| 427 | - * Returns the existing or creates a new head element in $document. |
|
| 428 | - * |
|
| 429 | - * @param DOMDocument $document |
|
| 430 | - * @return DOMNode the head element |
|
| 431 | - */ |
|
| 432 | - private function getOrCreateHeadElement(DOMDocument $document) { |
|
| 433 | - $head = $document->getElementsByTagName('head')->item(0); |
|
| 434 | - |
|
| 435 | - if ($head === null) { |
|
| 436 | - $head = $document->createElement('head'); |
|
| 437 | - $html = $document->getElementsByTagName('html')->item(0); |
|
| 438 | - $html->insertBefore($head, $document->getElementsByTagName('body')->item(0)); |
|
| 439 | - } |
|
| 440 | - |
|
| 441 | - return $head; |
|
| 442 | - } |
|
| 443 | - |
|
| 444 | - /** |
|
| 445 | - * Splits input CSS code to an array where: |
|
| 446 | - * |
|
| 447 | - * - key "css" will be contains clean CSS code. |
|
| 448 | - * - key "media" will be contains all valuable media queries. |
|
| 449 | - * |
|
| 450 | - * Example: |
|
| 451 | - * |
|
| 452 | - * The CSS code. |
|
| 453 | - * |
|
| 454 | - * "@import "file.css"; h1 { color:red; } @media { h1 {}} @media tv { h1 {}}" |
|
| 455 | - * |
|
| 456 | - * will be parsed into the following array: |
|
| 457 | - * |
|
| 458 | - * "css" => "h1 { color:red; }" |
|
| 459 | - * "media" => "@media { h1 {}}" |
|
| 460 | - * |
|
| 461 | - * @param string $css |
|
| 462 | - * @return array |
|
| 463 | - */ |
|
| 464 | - private function splitCssAndMediaQuery($css) { |
|
| 465 | - $css = preg_replace_callback( '#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array( $this, '_media_concat' ), $css ); |
|
| 466 | - |
|
| 467 | - // filter the CSS |
|
| 468 | - $search = array( |
|
| 469 | - // get rid of css comment code |
|
| 470 | - '/\\/\\*.*\\*\\//sU', |
|
| 471 | - // strip out any import directives |
|
| 472 | - '/^\\s*@import\\s[^;]+;/misU', |
|
| 473 | - // strip remains media enclosures |
|
| 474 | - '/^\\s*@media\\s[^{]+{(.*)}\\s*}\\s/misU', |
|
| 475 | - ); |
|
| 476 | - |
|
| 477 | - $replace = array( |
|
| 478 | - '', |
|
| 479 | - '', |
|
| 480 | - '', |
|
| 481 | - ); |
|
| 482 | - |
|
| 483 | - // clean CSS before output |
|
| 484 | - $css = preg_replace($search, $replace, $css); |
|
| 485 | - |
|
| 486 | - return array('css' => $css, 'media' => self::$_media); |
|
| 487 | - } |
|
| 488 | - |
|
| 489 | - private function _media_concat( $matches ) { |
|
| 490 | - self::$_media .= $matches[0]; |
|
| 491 | - } |
|
| 492 | - |
|
| 493 | - /** |
|
| 494 | - * Creates a DOMDocument instance with the current HTML. |
|
| 495 | - * |
|
| 496 | - * @return DOMDocument |
|
| 497 | - */ |
|
| 498 | - private function createXmlDocument() { |
|
| 499 | - $xmlDocument = new DOMDocument; |
|
| 500 | - $xmlDocument->encoding = self::ENCODING; |
|
| 501 | - $xmlDocument->strictErrorChecking = false; |
|
| 502 | - $xmlDocument->formatOutput = true; |
|
| 503 | - $libXmlState = libxml_use_internal_errors(true); |
|
| 504 | - $xmlDocument->loadHTML($this->getUnifiedHtml()); |
|
| 505 | - libxml_clear_errors(); |
|
| 506 | - libxml_use_internal_errors($libXmlState); |
|
| 507 | - $xmlDocument->normalizeDocument(); |
|
| 508 | - |
|
| 509 | - return $xmlDocument; |
|
| 510 | - } |
|
| 511 | - |
|
| 512 | - /** |
|
| 513 | - * Returns the HTML with the non-ASCII characters converts into HTML entities and the unprocessable HTML tags removed. |
|
| 514 | - * |
|
| 515 | - * @return string the unified HTML |
|
| 516 | - * |
|
| 517 | - * @throws BadMethodCallException |
|
| 518 | - */ |
|
| 519 | - private function getUnifiedHtml() { |
|
| 520 | - if (!empty($this->unprocessableHtmlTags)) { |
|
| 521 | - $unprocessableHtmlTags = implode('|', $this->unprocessableHtmlTags); |
|
| 522 | - $bodyWithoutUnprocessableTags = preg_replace('/<\\/?(' . $unprocessableHtmlTags . ')[^>]*>/i', '', $this->html); |
|
| 523 | - } else { |
|
| 524 | - $bodyWithoutUnprocessableTags = $this->html; |
|
| 525 | - } |
|
| 526 | - |
|
| 527 | - if ( function_exists( 'mb_convert_encoding' ) ) { |
|
| 528 | - return mb_convert_encoding( $bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING ); |
|
| 529 | - } else { |
|
| 530 | - return htmlspecialchars_decode( utf8_decode( htmlentities( $bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false ) ) ); |
|
| 531 | - } |
|
| 532 | - } |
|
| 533 | - |
|
| 534 | - /** |
|
| 535 | - * @param array $a |
|
| 536 | - * @param array $b |
|
| 537 | - * |
|
| 538 | - * @return integer |
|
| 539 | - */ |
|
| 540 | - private function sortBySelectorPrecedence(array $a, array $b) { |
|
| 541 | - $precedenceA = $this->getCssSelectorPrecedence($a['selector']); |
|
| 542 | - $precedenceB = $this->getCssSelectorPrecedence($b['selector']); |
|
| 543 | - |
|
| 544 | - // We want these sorted in ascending order so selectors with lesser precedence get processed first and |
|
| 545 | - // selectors with greater precedence get sorted last. |
|
| 546 | - // The parenthesis around the -1 are necessary to avoid a PHP_CodeSniffer warning about missing spaces around |
|
| 547 | - // arithmetic operators. |
|
| 548 | - // @see http://forge.typo3.org/issues/55605 |
|
| 549 | - $precedenceForEquals = ($a['line'] < $b['line'] ? (-1) : 1); |
|
| 550 | - $precedenceForNotEquals = ($precedenceA < $precedenceB ? (-1) : 1); |
|
| 551 | - return ($precedenceA === $precedenceB) ? $precedenceForEquals : $precedenceForNotEquals; |
|
| 552 | - } |
|
| 553 | - |
|
| 554 | - /** |
|
| 555 | - * @param string $selector |
|
| 556 | - * |
|
| 557 | - * @return integer |
|
| 558 | - */ |
|
| 559 | - private function getCssSelectorPrecedence($selector) { |
|
| 560 | - $selectorKey = md5($selector); |
|
| 561 | - if (!isset($this->caches[self::CACHE_KEY_SELECTOR][$selectorKey])) { |
|
| 562 | - $precedence = 0; |
|
| 563 | - $value = 100; |
|
| 564 | - // ids: worth 100, classes: worth 10, elements: worth 1 |
|
| 565 | - $search = array('\\#','\\.',''); |
|
| 566 | - |
|
| 567 | - foreach ($search as $s) { |
|
| 568 | - if (trim($selector == '')) { |
|
| 569 | - break; |
|
| 570 | - } |
|
| 571 | - $number = 0; |
|
| 572 | - $selector = preg_replace('/' . $s . '\\w+/', '', $selector, -1, $number); |
|
| 573 | - $precedence += ($value * $number); |
|
| 574 | - $value /= 10; |
|
| 575 | - } |
|
| 576 | - $this->caches[self::CACHE_KEY_SELECTOR][$selectorKey] = $precedence; |
|
| 577 | - } |
|
| 578 | - |
|
| 579 | - return $this->caches[self::CACHE_KEY_SELECTOR][$selectorKey]; |
|
| 580 | - } |
|
| 581 | - |
|
| 582 | - /** |
|
| 583 | - * Right now, we support all CSS 1 selectors and most CSS2/3 selectors. |
|
| 584 | - * |
|
| 585 | - * @see http://plasmasturm.org/log/444/ |
|
| 586 | - * |
|
| 587 | - * @param string $paramCssSelector |
|
| 588 | - * |
|
| 589 | - * @return string |
|
| 590 | - */ |
|
| 591 | - private function translateCssToXpath($paramCssSelector) { |
|
| 592 | - $cssSelector = ' ' . $paramCssSelector . ' '; |
|
| 593 | - $cssSelector = preg_replace_callback( '/\s+\w+\s+/', array( $this, 'strtolower' ), $cssSelector ); |
|
| 594 | - $cssSelector = trim($cssSelector); |
|
| 595 | - $xpathKey = md5($cssSelector); |
|
| 596 | - if (!isset($this->caches[self::CACHE_KEY_XPATH][$xpathKey])) { |
|
| 597 | - // returns an Xpath selector |
|
| 598 | - $search = array( |
|
| 599 | - // Matches any element that is a child of parent. |
|
| 600 | - '/\\s+>\\s+/', |
|
| 601 | - // Matches any element that is an adjacent sibling. |
|
| 602 | - '/\\s+\\+\\s+/', |
|
| 603 | - // Matches any element that is a descendant of an parent element element. |
|
| 604 | - '/\\s+/', |
|
| 605 | - // first-child pseudo-selector |
|
| 606 | - '/([^\\/]+):first-child/i', |
|
| 607 | - // last-child pseudo-selector |
|
| 608 | - '/([^\\/]+):last-child/i', |
|
| 609 | - // Matches attribute only selector |
|
| 610 | - '/^\\[(\\w+)\\]/', |
|
| 611 | - // Matches element with attribute |
|
| 612 | - '/(\\w)\\[(\\w+)\\]/', |
|
| 613 | - // Matches element with EXACT attribute |
|
| 614 | - '/(\\w)\\[(\\w+)\\=[\'"]?(\\w+)[\'"]?\\]/', |
|
| 615 | - ); |
|
| 616 | - $replace = array( |
|
| 617 | - '/', |
|
| 618 | - '/following-sibling::*[1]/self::', |
|
| 619 | - '//', |
|
| 620 | - '*[1]/self::\\1', |
|
| 621 | - '*[last()]/self::\\1', |
|
| 622 | - '*[@\\1]', |
|
| 623 | - '\\1[@\\2]', |
|
| 624 | - '\\1[@\\2="\\3"]', |
|
| 625 | - ); |
|
| 626 | - |
|
| 627 | - $cssSelector = '//' . preg_replace($search, $replace, $cssSelector); |
|
| 628 | - |
|
| 629 | - $cssSelector = preg_replace_callback(self::ID_ATTRIBUTE_MATCHER, array($this, 'matchIdAttributes'), $cssSelector); |
|
| 630 | - $cssSelector = preg_replace_callback(self::CLASS_ATTRIBUTE_MATCHER, array($this, 'matchClassAttributes'), $cssSelector); |
|
| 631 | - |
|
| 632 | - // Advanced selectors are going to require a bit more advanced emogrification. |
|
| 633 | - // When we required PHP 5.3, we could do this with closures. |
|
| 634 | - $cssSelector = preg_replace_callback( |
|
| 635 | - '/([^\\/]+):nth-child\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i', |
|
| 636 | - array($this, 'translateNthChild'), $cssSelector |
|
| 637 | - ); |
|
| 638 | - $cssSelector = preg_replace_callback( |
|
| 639 | - '/([^\\/]+):nth-of-type\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i', |
|
| 640 | - array($this, 'translateNthOfType'), $cssSelector |
|
| 641 | - ); |
|
| 642 | - |
|
| 643 | - $this->caches[self::CACHE_KEY_SELECTOR][$xpathKey] = $cssSelector; |
|
| 644 | - } |
|
| 645 | - return $this->caches[self::CACHE_KEY_SELECTOR][$xpathKey]; |
|
| 646 | - } |
|
| 647 | - |
|
| 648 | - /** |
|
| 649 | - * @param array $match |
|
| 650 | - * |
|
| 651 | - * @return string |
|
| 652 | - */ |
|
| 653 | - private function matchIdAttributes(array $match) { |
|
| 654 | - return (strlen($match[1]) ? $match[1] : '*') . '[@id="' . $match[2] . '"]'; |
|
| 655 | - } |
|
| 656 | - |
|
| 657 | - /** |
|
| 658 | - * @param array $match |
|
| 659 | - * |
|
| 660 | - * @return string |
|
| 661 | - */ |
|
| 662 | - private function matchClassAttributes(array $match) { |
|
| 663 | - return (strlen($match[1]) ? $match[1] : '*') . '[contains(concat(" ",@class," "),concat(" ","' . |
|
| 664 | - implode( |
|
| 665 | - '"," "))][contains(concat(" ",@class," "),concat(" ","', |
|
| 666 | - explode('.', substr($match[2], 1)) |
|
| 667 | - ) . '"," "))]'; |
|
| 668 | - } |
|
| 669 | - |
|
| 670 | - /** |
|
| 671 | - * @param array $match |
|
| 672 | - * |
|
| 673 | - * @return string |
|
| 674 | - */ |
|
| 675 | - private function translateNthChild(array $match) { |
|
| 676 | - $result = $this->parseNth($match); |
|
| 677 | - |
|
| 678 | - if (isset($result[self::MULTIPLIER])) { |
|
| 679 | - if ($result[self::MULTIPLIER] < 0) { |
|
| 680 | - $result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]); |
|
| 681 | - return sprintf('*[(last() - position()) mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]); |
|
| 682 | - } else { |
|
| 683 | - return sprintf('*[position() mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]); |
|
| 684 | - } |
|
| 685 | - } else { |
|
| 686 | - return sprintf('*[%u]/self::%s', $result[self::INDEX], $match[1]); |
|
| 687 | - } |
|
| 688 | - } |
|
| 689 | - |
|
| 690 | - /** |
|
| 691 | - * @param array $match |
|
| 692 | - * |
|
| 693 | - * @return string |
|
| 694 | - */ |
|
| 695 | - private function translateNthOfType(array $match) { |
|
| 696 | - $result = $this->parseNth($match); |
|
| 697 | - |
|
| 698 | - if (isset($result[self::MULTIPLIER])) { |
|
| 699 | - if ($result[self::MULTIPLIER] < 0) { |
|
| 700 | - $result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]); |
|
| 701 | - return sprintf('%s[(last() - position()) mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]); |
|
| 702 | - } else { |
|
| 703 | - return sprintf('%s[position() mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]); |
|
| 704 | - } |
|
| 705 | - } else { |
|
| 706 | - return sprintf('%s[%u]', $match[1], $result[self::INDEX]); |
|
| 707 | - } |
|
| 708 | - } |
|
| 709 | - |
|
| 710 | - /** |
|
| 711 | - * @param array $match |
|
| 712 | - * |
|
| 713 | - * @return array |
|
| 714 | - */ |
|
| 715 | - private function parseNth(array $match) { |
|
| 716 | - if (in_array(strtolower($match[2]), array('even','odd'))) { |
|
| 717 | - $index = strtolower($match[2]) == 'even' ? 0 : 1; |
|
| 718 | - return array(self::MULTIPLIER => 2, self::INDEX => $index); |
|
| 719 | - } elseif (stripos($match[2], 'n') === false) { |
|
| 720 | - // if there is a multiplier |
|
| 721 | - $index = intval(str_replace(' ', '', $match[2])); |
|
| 722 | - return array(self::INDEX => $index); |
|
| 723 | - } else { |
|
| 724 | - if (isset($match[3])) { |
|
| 725 | - $multipleTerm = str_replace($match[3], '', $match[2]); |
|
| 726 | - $index = intval(str_replace(' ', '', $match[3])); |
|
| 727 | - } else { |
|
| 728 | - $multipleTerm = $match[2]; |
|
| 729 | - $index = 0; |
|
| 730 | - } |
|
| 731 | - |
|
| 732 | - $multiplier = str_ireplace('n', '', $multipleTerm); |
|
| 733 | - |
|
| 734 | - if (!strlen($multiplier)) { |
|
| 735 | - $multiplier = 1; |
|
| 736 | - } elseif ($multiplier == 0) { |
|
| 737 | - return array(self::INDEX => $index); |
|
| 738 | - } else { |
|
| 739 | - $multiplier = intval($multiplier); |
|
| 740 | - } |
|
| 741 | - |
|
| 742 | - while ($index < 0) { |
|
| 743 | - $index += abs($multiplier); |
|
| 744 | - } |
|
| 745 | - |
|
| 746 | - return array(self::MULTIPLIER => $multiplier, self::INDEX => $index); |
|
| 747 | - } |
|
| 748 | - } |
|
| 749 | - |
|
| 750 | - /** |
|
| 751 | - * Parses a CSS declaration block into property name/value pairs. |
|
| 752 | - * |
|
| 753 | - * Example: |
|
| 754 | - * |
|
| 755 | - * The declaration block. |
|
| 756 | - * |
|
| 757 | - * "color: #000; font-weight: bold;". |
|
| 758 | - * |
|
| 759 | - * will be parsed into the following array: |
|
| 760 | - * |
|
| 761 | - * "color" => "#000" |
|
| 762 | - * "font-weight" => "bold" |
|
| 763 | - * |
|
| 764 | - * @param string $cssDeclarationBlock the CSS declaration block without the curly braces, may be empty |
|
| 765 | - * |
|
| 766 | - * @return array the CSS declarations with the property names as array keys and the property values as array values |
|
| 767 | - */ |
|
| 768 | - private function parseCssDeclarationBlock($cssDeclarationBlock) { |
|
| 769 | - if (isset($this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock])) { |
|
| 770 | - return $this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock]; |
|
| 771 | - } |
|
| 772 | - |
|
| 773 | - $properties = array(); |
|
| 774 | - $declarations = explode(';', $cssDeclarationBlock); |
|
| 775 | - foreach ($declarations as $declaration) { |
|
| 776 | - $matches = array(); |
|
| 777 | - if (!preg_match('/ *([A-Za-z\\-]+) *: *([^;]+) */', $declaration, $matches)) { |
|
| 778 | - continue; |
|
| 779 | - } |
|
| 780 | - $propertyName = strtolower($matches[1]); |
|
| 781 | - $propertyValue = $matches[2]; |
|
| 782 | - $properties[$propertyName] = $propertyValue; |
|
| 783 | - } |
|
| 784 | - $this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock] = $properties; |
|
| 785 | - |
|
| 786 | - return $properties; |
|
| 787 | - } |
|
| 12 | + /** |
|
| 13 | + * @var string |
|
| 14 | + */ |
|
| 15 | + const ENCODING = 'UTF-8'; |
|
| 16 | + |
|
| 17 | + /** |
|
| 18 | + * @var integer |
|
| 19 | + */ |
|
| 20 | + const CACHE_KEY_CSS = 0; |
|
| 21 | + |
|
| 22 | + /** |
|
| 23 | + * @var integer |
|
| 24 | + */ |
|
| 25 | + const CACHE_KEY_SELECTOR = 1; |
|
| 26 | + |
|
| 27 | + /** |
|
| 28 | + * @var integer |
|
| 29 | + */ |
|
| 30 | + const CACHE_KEY_XPATH = 2; |
|
| 31 | + |
|
| 32 | + /** |
|
| 33 | + * @var integer |
|
| 34 | + */ |
|
| 35 | + const CACHE_KEY_CSS_DECLARATION_BLOCK = 3; |
|
| 36 | + |
|
| 37 | + /** |
|
| 38 | + * for calculating nth-of-type and nth-child selectors. |
|
| 39 | + * |
|
| 40 | + * @var integer |
|
| 41 | + */ |
|
| 42 | + const INDEX = 0; |
|
| 43 | + |
|
| 44 | + /** |
|
| 45 | + * for calculating nth-of-type and nth-child selectors. |
|
| 46 | + * |
|
| 47 | + * @var integer |
|
| 48 | + */ |
|
| 49 | + const MULTIPLIER = 1; |
|
| 50 | + |
|
| 51 | + /** |
|
| 52 | + * @var string |
|
| 53 | + */ |
|
| 54 | + const ID_ATTRIBUTE_MATCHER = '/(\\w+)?\\#([\\w\\-]+)/'; |
|
| 55 | + |
|
| 56 | + /** |
|
| 57 | + * @var string |
|
| 58 | + */ |
|
| 59 | + const CLASS_ATTRIBUTE_MATCHER = '/(\\w+|[\\*\\]])?((\\.[\\w\\-]+)+)/'; |
|
| 60 | + |
|
| 61 | + /** |
|
| 62 | + * @var string |
|
| 63 | + */ |
|
| 64 | + private $html = ''; |
|
| 65 | + |
|
| 66 | + /** |
|
| 67 | + * @var string |
|
| 68 | + */ |
|
| 69 | + private $css = ''; |
|
| 70 | + |
|
| 71 | + /** |
|
| 72 | + * @var array<string> |
|
| 73 | + */ |
|
| 74 | + private $unprocessableHtmlTags = array('wbr'); |
|
| 75 | + |
|
| 76 | + /** |
|
| 77 | + * @var array<array> |
|
| 78 | + */ |
|
| 79 | + private $caches = array( |
|
| 80 | + self::CACHE_KEY_CSS => array(), |
|
| 81 | + self::CACHE_KEY_SELECTOR => array(), |
|
| 82 | + self::CACHE_KEY_XPATH => array(), |
|
| 83 | + self::CACHE_KEY_CSS_DECLARATION_BLOCK => array(), |
|
| 84 | + ); |
|
| 85 | + |
|
| 86 | + /** |
|
| 87 | + * the visited nodes with the XPath paths as array keys. |
|
| 88 | + * |
|
| 89 | + * @var array<\DOMNode> |
|
| 90 | + */ |
|
| 91 | + private $visitedNodes = array(); |
|
| 92 | + |
|
| 93 | + /** |
|
| 94 | + * the styles to apply to the nodes with the XPath paths as array keys for the outer array and the attribute names/values. |
|
| 95 | + * as key/value pairs for the inner array. |
|
| 96 | + * |
|
| 97 | + * @var array<array><string> |
|
| 98 | + */ |
|
| 99 | + private $styleAttributesForNodes = array(); |
|
| 100 | + |
|
| 101 | + /** |
|
| 102 | + * This attribute applies to the case where you want to preserve your original text encoding. |
|
| 103 | + * |
|
| 104 | + * By default, emogrifier translates your text into HTML entities for two reasons: |
|
| 105 | + * |
|
| 106 | + * 1. Because of client incompatibilities, it is better practice to send out HTML entities rather than unicode over email. |
|
| 107 | + * |
|
| 108 | + * 2. It translates any illegal XML characters that DOMDocument cannot work with. |
|
| 109 | + * |
|
| 110 | + * If you would like to preserve your original encoding, set this attribute to TRUE. |
|
| 111 | + * |
|
| 112 | + * @var boolean |
|
| 113 | + */ |
|
| 114 | + public $preserveEncoding = false; |
|
| 115 | + |
|
| 116 | + public static $_media = ''; |
|
| 117 | + |
|
| 118 | + /** |
|
| 119 | + * The constructor. |
|
| 120 | + * |
|
| 121 | + * @param string $html the HTML to emogrify, must be UTF-8-encoded |
|
| 122 | + * @param string $css the CSS to merge, must be UTF-8-encoded |
|
| 123 | + */ |
|
| 124 | + public function __construct($html = '', $css = '') { |
|
| 125 | + $this->setHtml($html); |
|
| 126 | + $this->setCss($css); |
|
| 127 | + } |
|
| 128 | + |
|
| 129 | + /** |
|
| 130 | + * The destructor. |
|
| 131 | + */ |
|
| 132 | + public function __destruct() { |
|
| 133 | + $this->purgeVisitedNodes(); |
|
| 134 | + } |
|
| 135 | + |
|
| 136 | + /** |
|
| 137 | + * Sets the HTML to emogrify. |
|
| 138 | + * |
|
| 139 | + * @param string $html the HTML to emogrify, must be UTF-8-encoded |
|
| 140 | + */ |
|
| 141 | + public function setHtml($html = '') { |
|
| 142 | + $this->html = $html; |
|
| 143 | + } |
|
| 144 | + |
|
| 145 | + /** |
|
| 146 | + * Sets the CSS to merge with the HTML. |
|
| 147 | + * |
|
| 148 | + * @param string $css the CSS to merge, must be UTF-8-encoded |
|
| 149 | + */ |
|
| 150 | + public function setCss($css = '') { |
|
| 151 | + $this->css = $css; |
|
| 152 | + } |
|
| 153 | + |
|
| 154 | + /** |
|
| 155 | + * Clears all caches. |
|
| 156 | + */ |
|
| 157 | + private function clearAllCaches() { |
|
| 158 | + $this->clearCache(self::CACHE_KEY_CSS); |
|
| 159 | + $this->clearCache(self::CACHE_KEY_SELECTOR); |
|
| 160 | + $this->clearCache(self::CACHE_KEY_XPATH); |
|
| 161 | + $this->clearCache(self::CACHE_KEY_CSS_DECLARATION_BLOCK); |
|
| 162 | + } |
|
| 163 | + |
|
| 164 | + /** |
|
| 165 | + * Clears a single cache by key. |
|
| 166 | + * |
|
| 167 | + * @param integer $key the cache key, must be CACHE_KEY_CSS, CACHE_KEY_SELECTOR, CACHE_KEY_XPATH or CACHE_KEY_CSS_DECLARATION_BLOCK |
|
| 168 | + * |
|
| 169 | + * @throws InvalidArgumentException |
|
| 170 | + */ |
|
| 171 | + private function clearCache($key) { |
|
| 172 | + $allowedCacheKeys = array(self::CACHE_KEY_CSS, self::CACHE_KEY_SELECTOR, self::CACHE_KEY_XPATH, self::CACHE_KEY_CSS_DECLARATION_BLOCK); |
|
| 173 | + if (!in_array($key, $allowedCacheKeys, true)) { |
|
| 174 | + throw new InvalidArgumentException('Invalid cache key: ' . $key, 1391822035); |
|
| 175 | + } |
|
| 176 | + |
|
| 177 | + $this->caches[$key] = array(); |
|
| 178 | + } |
|
| 179 | + |
|
| 180 | + /** |
|
| 181 | + * Purges the visited nodes. |
|
| 182 | + */ |
|
| 183 | + private function purgeVisitedNodes() { |
|
| 184 | + $this->visitedNodes = array(); |
|
| 185 | + $this->styleAttributesForNodes = array(); |
|
| 186 | + } |
|
| 187 | + |
|
| 188 | + /** |
|
| 189 | + * Marks a tag for removal. |
|
| 190 | + * |
|
| 191 | + * There are some HTML tags that DOMDocument cannot process, and it will throw an error if it encounters them. |
|
| 192 | + * In particular, DOMDocument will complain if you try to use HTML5 tags in an XHTML document. |
|
| 193 | + * |
|
| 194 | + * Note: The tags will not be removed if they have any content. |
|
| 195 | + * |
|
| 196 | + * @param string $tagName the tag name, e.g., "p" |
|
| 197 | + */ |
|
| 198 | + public function addUnprocessableHtmlTag($tagName) { |
|
| 199 | + $this->unprocessableHtmlTags[] = $tagName; |
|
| 200 | + } |
|
| 201 | + |
|
| 202 | + /** |
|
| 203 | + * Drops a tag from the removal list. |
|
| 204 | + * |
|
| 205 | + * @param string $tagName the tag name, e.g., "p" |
|
| 206 | + */ |
|
| 207 | + public function removeUnprocessableHtmlTag($tagName) { |
|
| 208 | + $key = array_search($tagName, $this->unprocessableHtmlTags, true); |
|
| 209 | + if ($key !== false) { |
|
| 210 | + unset($this->unprocessableHtmlTags[$key]); |
|
| 211 | + } |
|
| 212 | + } |
|
| 213 | + |
|
| 214 | + /** |
|
| 215 | + * Applies the CSS you submit to the HTML you submit. |
|
| 216 | + * |
|
| 217 | + * This method places the CSS inline. |
|
| 218 | + * |
|
| 219 | + * @return string |
|
| 220 | + * |
|
| 221 | + * @throws BadMethodCallException |
|
| 222 | + */ |
|
| 223 | + public function emogrify() { |
|
| 224 | + if ($this->html === '') { |
|
| 225 | + throw new BadMethodCallException('Please set some HTML first before calling emogrify.', 1390393096); |
|
| 226 | + } |
|
| 227 | + |
|
| 228 | + $xmlDocument = $this->createXmlDocument(); |
|
| 229 | + $xpath = new DOMXPath($xmlDocument); |
|
| 230 | + $this->clearAllCaches(); |
|
| 231 | + |
|
| 232 | + // before be begin processing the CSS file, parse the document and normalize all existing CSS attributes (changes 'DISPLAY: none' to 'display: none'); |
|
| 233 | + // we wouldn't have to do this if DOMXPath supported XPath 2.0. |
|
| 234 | + // also store a reference of nodes with existing inline styles so we don't overwrite them |
|
| 235 | + $this->purgeVisitedNodes(); |
|
| 236 | + |
|
| 237 | + $nodesWithStyleAttributes = $xpath->query('//*[@style]'); |
|
| 238 | + if ($nodesWithStyleAttributes !== false) { |
|
| 239 | + /** @var $nodeWithStyleAttribute DOMNode */ |
|
| 240 | + foreach ($nodesWithStyleAttributes as $node) { |
|
| 241 | + $normalizedOriginalStyle = preg_replace_callback( '/[A-z\\-]+(?=\\:)/S', array( $this, 'strtolower' ), $node->getAttribute('style') ); |
|
| 242 | + |
|
| 243 | + // in order to not overwrite existing style attributes in the HTML, we have to save the original HTML styles |
|
| 244 | + $nodePath = $node->getNodePath(); |
|
| 245 | + if (!isset($this->styleAttributesForNodes[$nodePath])) { |
|
| 246 | + $this->styleAttributesForNodes[$nodePath] = $this->parseCssDeclarationBlock($normalizedOriginalStyle); |
|
| 247 | + $this->visitedNodes[$nodePath] = $node; |
|
| 248 | + } |
|
| 249 | + |
|
| 250 | + $node->setAttribute('style', $normalizedOriginalStyle); |
|
| 251 | + } |
|
| 252 | + } |
|
| 253 | + |
|
| 254 | + // grab any existing style blocks from the html and append them to the existing CSS |
|
| 255 | + // (these blocks should be appended so as to have precedence over conflicting styles in the existing CSS) |
|
| 256 | + $allCss = $this->css; |
|
| 257 | + |
|
| 258 | + $allCss .= $this->getCssFromAllStyleNodes($xpath); |
|
| 259 | + |
|
| 260 | + $cssParts = $this->splitCssAndMediaQuery($allCss); |
|
| 261 | + self::$_media = ''; // reset |
|
| 262 | + |
|
| 263 | + $cssKey = md5($cssParts['css']); |
|
| 264 | + if (!isset($this->caches[self::CACHE_KEY_CSS][$cssKey])) { |
|
| 265 | + // process the CSS file for selectors and definitions |
|
| 266 | + preg_match_all('/(?:^|[\\s^{}]*)([^{]+){([^}]*)}/mis', $cssParts['css'], $matches, PREG_SET_ORDER); |
|
| 267 | + |
|
| 268 | + $allSelectors = array(); |
|
| 269 | + foreach ($matches as $key => $selectorString) { |
|
| 270 | + // if there is a blank definition, skip |
|
| 271 | + if (!strlen(trim($selectorString[2]))) { |
|
| 272 | + continue; |
|
| 273 | + } |
|
| 274 | + |
|
| 275 | + // else split by commas and duplicate attributes so we can sort by selector precedence |
|
| 276 | + $selectors = explode(',', $selectorString[1]); |
|
| 277 | + foreach ($selectors as $selector) { |
|
| 278 | + // don't process pseudo-elements and behavioral (dynamic) pseudo-classes; ONLY allow structural pseudo-classes |
|
| 279 | + if (strpos($selector, ':') !== false && !preg_match('/:\\S+\\-(child|type)\\(/i', $selector)) { |
|
| 280 | + continue; |
|
| 281 | + } |
|
| 282 | + |
|
| 283 | + $allSelectors[] = array('selector' => trim($selector), |
|
| 284 | + 'attributes' => trim($selectorString[2]), |
|
| 285 | + // keep track of where it appears in the file, since order is important |
|
| 286 | + 'line' => $key, |
|
| 287 | + ); |
|
| 288 | + } |
|
| 289 | + } |
|
| 290 | + |
|
| 291 | + // now sort the selectors by precedence |
|
| 292 | + usort($allSelectors, array($this,'sortBySelectorPrecedence')); |
|
| 293 | + |
|
| 294 | + $this->caches[self::CACHE_KEY_CSS][$cssKey] = $allSelectors; |
|
| 295 | + } |
|
| 296 | + |
|
| 297 | + foreach ($this->caches[self::CACHE_KEY_CSS][$cssKey] as $value) { |
|
| 298 | + // query the body for the xpath selector |
|
| 299 | + $nodesMatchingCssSelectors = $xpath->query($this->translateCssToXpath($value['selector'])); |
|
| 300 | + |
|
| 301 | + /** @var $node \DOMNode */ |
|
| 302 | + foreach ($nodesMatchingCssSelectors as $node) { |
|
| 303 | + // if it has a style attribute, get it, process it, and append (overwrite) new stuff |
|
| 304 | + if ($node->hasAttribute('style')) { |
|
| 305 | + // break it up into an associative array |
|
| 306 | + $oldStyleDeclarations = $this->parseCssDeclarationBlock($node->getAttribute('style')); |
|
| 307 | + } else { |
|
| 308 | + $oldStyleDeclarations = array(); |
|
| 309 | + } |
|
| 310 | + $newStyleDeclarations = $this->parseCssDeclarationBlock($value['attributes']); |
|
| 311 | + $node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($oldStyleDeclarations, $newStyleDeclarations)); |
|
| 312 | + } |
|
| 313 | + } |
|
| 314 | + |
|
| 315 | + // now iterate through the nodes that contained inline styles in the original HTML |
|
| 316 | + foreach ($this->styleAttributesForNodes as $nodePath => $styleAttributesForNode) { |
|
| 317 | + $node = $this->visitedNodes[$nodePath]; |
|
| 318 | + $currentStyleAttributes = $this->parseCssDeclarationBlock($node->getAttribute('style')); |
|
| 319 | + $node->setAttribute('style', $this->generateStyleStringFromDeclarationsArrays($currentStyleAttributes, $styleAttributesForNode)); |
|
| 320 | + } |
|
| 321 | + |
|
| 322 | + // This removes styles from your email that contain display:none. |
|
| 323 | + // We need to look for display:none, but we need to do a case-insensitive search. Since DOMDocument only supports XPath 1.0, |
|
| 324 | + // lower-case() isn't available to us. We've thus far only set attributes to lowercase, not attribute values. Consequently, we need |
|
| 325 | + // to translate() the letters that would be in 'NONE' ("NOE") to lowercase. |
|
| 326 | + $nodesWithStyleDisplayNone = $xpath->query('//*[contains(translate(translate(@style," ",""),"NOE","noe"),"display:none")]'); |
|
| 327 | + // The checks on parentNode and is_callable below ensure that if we've deleted the parent node, |
|
| 328 | + // we don't try to call removeChild on a nonexistent child node |
|
| 329 | + if ($nodesWithStyleDisplayNone->length > 0) { |
|
| 330 | + /** @var $node \DOMNode */ |
|
| 331 | + foreach ($nodesWithStyleDisplayNone as $node) { |
|
| 332 | + if ($node->parentNode && is_callable(array($node->parentNode,'removeChild'))) { |
|
| 333 | + $node->parentNode->removeChild($node); |
|
| 334 | + } |
|
| 335 | + } |
|
| 336 | + } |
|
| 337 | + |
|
| 338 | + $this->copyCssWithMediaToStyleNode($cssParts, $xmlDocument); |
|
| 339 | + |
|
| 340 | + if ($this->preserveEncoding) { |
|
| 341 | + if ( function_exists( 'mb_convert_encoding' ) ) { |
|
| 342 | + return mb_convert_encoding( $xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES' ); |
|
| 343 | + } else { |
|
| 344 | + return htmlspecialchars_decode( utf8_encode( html_entity_decode( $xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING ) ) ); |
|
| 345 | + } |
|
| 346 | + } else { |
|
| 347 | + return $xmlDocument->saveHTML(); |
|
| 348 | + } |
|
| 349 | + } |
|
| 350 | + |
|
| 351 | + public function strtolower(array $m) { |
|
| 352 | + return strtolower($m[0]); |
|
| 353 | + } |
|
| 354 | + |
|
| 355 | + |
|
| 356 | + /** |
|
| 357 | + * This method merges old or existing name/value array with new name/value array. |
|
| 358 | + * and then generates a string of the combined style suitable for placing inline. |
|
| 359 | + * This becomes the single point for CSS string generation allowing for consistent. |
|
| 360 | + * CSS output no matter where the CSS originally came from. |
|
| 361 | + * @param array $oldStyles |
|
| 362 | + * @param array $newStyles |
|
| 363 | + * @return string |
|
| 364 | + */ |
|
| 365 | + private function generateStyleStringFromDeclarationsArrays(array $oldStyles, array $newStyles) { |
|
| 366 | + $combinedStyles = array_merge($oldStyles, $newStyles); |
|
| 367 | + $style = ''; |
|
| 368 | + foreach ($combinedStyles as $attributeName => $attributeValue) { |
|
| 369 | + $style .= (strtolower(trim($attributeName)) . ': ' . trim($attributeValue) . '; '); |
|
| 370 | + } |
|
| 371 | + return trim($style); |
|
| 372 | + } |
|
| 373 | + |
|
| 374 | + |
|
| 375 | + /** |
|
| 376 | + * Copies the media part from CSS array parts to $xmlDocument. |
|
| 377 | + * |
|
| 378 | + * @param array $cssParts |
|
| 379 | + * @param DOMDocument $xmlDocument |
|
| 380 | + */ |
|
| 381 | + public function copyCssWithMediaToStyleNode(array $cssParts, DOMDocument $xmlDocument) { |
|
| 382 | + if (isset($cssParts['media']) && $cssParts['media'] !== '') { |
|
| 383 | + $this->addStyleElementToDocument($xmlDocument, $cssParts['media']); |
|
| 384 | + } |
|
| 385 | + } |
|
| 386 | + |
|
| 387 | + /** |
|
| 388 | + * Returns CSS content. |
|
| 389 | + * |
|
| 390 | + * @param DOMXPath $xpath |
|
| 391 | + * @return string |
|
| 392 | + */ |
|
| 393 | + private function getCssFromAllStyleNodes(DOMXPath $xpath) { |
|
| 394 | + $styleNodes = $xpath->query('//style'); |
|
| 395 | + |
|
| 396 | + if ($styleNodes === false) { |
|
| 397 | + return ''; |
|
| 398 | + } |
|
| 399 | + |
|
| 400 | + $css = ''; |
|
| 401 | + /** @var $styleNode DOMNode */ |
|
| 402 | + foreach ($styleNodes as $styleNode) { |
|
| 403 | + $css .= "\n\n" . $styleNode->nodeValue; |
|
| 404 | + $styleNode->parentNode->removeChild($styleNode); |
|
| 405 | + } |
|
| 406 | + |
|
| 407 | + return $css; |
|
| 408 | + } |
|
| 409 | + |
|
| 410 | + /** |
|
| 411 | + * Adds a style element with $css to $document. |
|
| 412 | + * |
|
| 413 | + * @param DOMDocument $document |
|
| 414 | + * @param string $css |
|
| 415 | + */ |
|
| 416 | + private function addStyleElementToDocument(DOMDocument $document, $css) { |
|
| 417 | + $styleElement = $document->createElement('style', $css); |
|
| 418 | + $styleAttribute = $document->createAttribute('type'); |
|
| 419 | + $styleAttribute->value = 'text/css'; |
|
| 420 | + $styleElement->appendChild($styleAttribute); |
|
| 421 | + |
|
| 422 | + $head = $this->getOrCreateHeadElement($document); |
|
| 423 | + $head->appendChild($styleElement); |
|
| 424 | + } |
|
| 425 | + |
|
| 426 | + /** |
|
| 427 | + * Returns the existing or creates a new head element in $document. |
|
| 428 | + * |
|
| 429 | + * @param DOMDocument $document |
|
| 430 | + * @return DOMNode the head element |
|
| 431 | + */ |
|
| 432 | + private function getOrCreateHeadElement(DOMDocument $document) { |
|
| 433 | + $head = $document->getElementsByTagName('head')->item(0); |
|
| 434 | + |
|
| 435 | + if ($head === null) { |
|
| 436 | + $head = $document->createElement('head'); |
|
| 437 | + $html = $document->getElementsByTagName('html')->item(0); |
|
| 438 | + $html->insertBefore($head, $document->getElementsByTagName('body')->item(0)); |
|
| 439 | + } |
|
| 440 | + |
|
| 441 | + return $head; |
|
| 442 | + } |
|
| 443 | + |
|
| 444 | + /** |
|
| 445 | + * Splits input CSS code to an array where: |
|
| 446 | + * |
|
| 447 | + * - key "css" will be contains clean CSS code. |
|
| 448 | + * - key "media" will be contains all valuable media queries. |
|
| 449 | + * |
|
| 450 | + * Example: |
|
| 451 | + * |
|
| 452 | + * The CSS code. |
|
| 453 | + * |
|
| 454 | + * "@import "file.css"; h1 { color:red; } @media { h1 {}} @media tv { h1 {}}" |
|
| 455 | + * |
|
| 456 | + * will be parsed into the following array: |
|
| 457 | + * |
|
| 458 | + * "css" => "h1 { color:red; }" |
|
| 459 | + * "media" => "@media { h1 {}}" |
|
| 460 | + * |
|
| 461 | + * @param string $css |
|
| 462 | + * @return array |
|
| 463 | + */ |
|
| 464 | + private function splitCssAndMediaQuery($css) { |
|
| 465 | + $css = preg_replace_callback( '#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array( $this, '_media_concat' ), $css ); |
|
| 466 | + |
|
| 467 | + // filter the CSS |
|
| 468 | + $search = array( |
|
| 469 | + // get rid of css comment code |
|
| 470 | + '/\\/\\*.*\\*\\//sU', |
|
| 471 | + // strip out any import directives |
|
| 472 | + '/^\\s*@import\\s[^;]+;/misU', |
|
| 473 | + // strip remains media enclosures |
|
| 474 | + '/^\\s*@media\\s[^{]+{(.*)}\\s*}\\s/misU', |
|
| 475 | + ); |
|
| 476 | + |
|
| 477 | + $replace = array( |
|
| 478 | + '', |
|
| 479 | + '', |
|
| 480 | + '', |
|
| 481 | + ); |
|
| 482 | + |
|
| 483 | + // clean CSS before output |
|
| 484 | + $css = preg_replace($search, $replace, $css); |
|
| 485 | + |
|
| 486 | + return array('css' => $css, 'media' => self::$_media); |
|
| 487 | + } |
|
| 488 | + |
|
| 489 | + private function _media_concat( $matches ) { |
|
| 490 | + self::$_media .= $matches[0]; |
|
| 491 | + } |
|
| 492 | + |
|
| 493 | + /** |
|
| 494 | + * Creates a DOMDocument instance with the current HTML. |
|
| 495 | + * |
|
| 496 | + * @return DOMDocument |
|
| 497 | + */ |
|
| 498 | + private function createXmlDocument() { |
|
| 499 | + $xmlDocument = new DOMDocument; |
|
| 500 | + $xmlDocument->encoding = self::ENCODING; |
|
| 501 | + $xmlDocument->strictErrorChecking = false; |
|
| 502 | + $xmlDocument->formatOutput = true; |
|
| 503 | + $libXmlState = libxml_use_internal_errors(true); |
|
| 504 | + $xmlDocument->loadHTML($this->getUnifiedHtml()); |
|
| 505 | + libxml_clear_errors(); |
|
| 506 | + libxml_use_internal_errors($libXmlState); |
|
| 507 | + $xmlDocument->normalizeDocument(); |
|
| 508 | + |
|
| 509 | + return $xmlDocument; |
|
| 510 | + } |
|
| 511 | + |
|
| 512 | + /** |
|
| 513 | + * Returns the HTML with the non-ASCII characters converts into HTML entities and the unprocessable HTML tags removed. |
|
| 514 | + * |
|
| 515 | + * @return string the unified HTML |
|
| 516 | + * |
|
| 517 | + * @throws BadMethodCallException |
|
| 518 | + */ |
|
| 519 | + private function getUnifiedHtml() { |
|
| 520 | + if (!empty($this->unprocessableHtmlTags)) { |
|
| 521 | + $unprocessableHtmlTags = implode('|', $this->unprocessableHtmlTags); |
|
| 522 | + $bodyWithoutUnprocessableTags = preg_replace('/<\\/?(' . $unprocessableHtmlTags . ')[^>]*>/i', '', $this->html); |
|
| 523 | + } else { |
|
| 524 | + $bodyWithoutUnprocessableTags = $this->html; |
|
| 525 | + } |
|
| 526 | + |
|
| 527 | + if ( function_exists( 'mb_convert_encoding' ) ) { |
|
| 528 | + return mb_convert_encoding( $bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING ); |
|
| 529 | + } else { |
|
| 530 | + return htmlspecialchars_decode( utf8_decode( htmlentities( $bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false ) ) ); |
|
| 531 | + } |
|
| 532 | + } |
|
| 533 | + |
|
| 534 | + /** |
|
| 535 | + * @param array $a |
|
| 536 | + * @param array $b |
|
| 537 | + * |
|
| 538 | + * @return integer |
|
| 539 | + */ |
|
| 540 | + private function sortBySelectorPrecedence(array $a, array $b) { |
|
| 541 | + $precedenceA = $this->getCssSelectorPrecedence($a['selector']); |
|
| 542 | + $precedenceB = $this->getCssSelectorPrecedence($b['selector']); |
|
| 543 | + |
|
| 544 | + // We want these sorted in ascending order so selectors with lesser precedence get processed first and |
|
| 545 | + // selectors with greater precedence get sorted last. |
|
| 546 | + // The parenthesis around the -1 are necessary to avoid a PHP_CodeSniffer warning about missing spaces around |
|
| 547 | + // arithmetic operators. |
|
| 548 | + // @see http://forge.typo3.org/issues/55605 |
|
| 549 | + $precedenceForEquals = ($a['line'] < $b['line'] ? (-1) : 1); |
|
| 550 | + $precedenceForNotEquals = ($precedenceA < $precedenceB ? (-1) : 1); |
|
| 551 | + return ($precedenceA === $precedenceB) ? $precedenceForEquals : $precedenceForNotEquals; |
|
| 552 | + } |
|
| 553 | + |
|
| 554 | + /** |
|
| 555 | + * @param string $selector |
|
| 556 | + * |
|
| 557 | + * @return integer |
|
| 558 | + */ |
|
| 559 | + private function getCssSelectorPrecedence($selector) { |
|
| 560 | + $selectorKey = md5($selector); |
|
| 561 | + if (!isset($this->caches[self::CACHE_KEY_SELECTOR][$selectorKey])) { |
|
| 562 | + $precedence = 0; |
|
| 563 | + $value = 100; |
|
| 564 | + // ids: worth 100, classes: worth 10, elements: worth 1 |
|
| 565 | + $search = array('\\#','\\.',''); |
|
| 566 | + |
|
| 567 | + foreach ($search as $s) { |
|
| 568 | + if (trim($selector == '')) { |
|
| 569 | + break; |
|
| 570 | + } |
|
| 571 | + $number = 0; |
|
| 572 | + $selector = preg_replace('/' . $s . '\\w+/', '', $selector, -1, $number); |
|
| 573 | + $precedence += ($value * $number); |
|
| 574 | + $value /= 10; |
|
| 575 | + } |
|
| 576 | + $this->caches[self::CACHE_KEY_SELECTOR][$selectorKey] = $precedence; |
|
| 577 | + } |
|
| 578 | + |
|
| 579 | + return $this->caches[self::CACHE_KEY_SELECTOR][$selectorKey]; |
|
| 580 | + } |
|
| 581 | + |
|
| 582 | + /** |
|
| 583 | + * Right now, we support all CSS 1 selectors and most CSS2/3 selectors. |
|
| 584 | + * |
|
| 585 | + * @see http://plasmasturm.org/log/444/ |
|
| 586 | + * |
|
| 587 | + * @param string $paramCssSelector |
|
| 588 | + * |
|
| 589 | + * @return string |
|
| 590 | + */ |
|
| 591 | + private function translateCssToXpath($paramCssSelector) { |
|
| 592 | + $cssSelector = ' ' . $paramCssSelector . ' '; |
|
| 593 | + $cssSelector = preg_replace_callback( '/\s+\w+\s+/', array( $this, 'strtolower' ), $cssSelector ); |
|
| 594 | + $cssSelector = trim($cssSelector); |
|
| 595 | + $xpathKey = md5($cssSelector); |
|
| 596 | + if (!isset($this->caches[self::CACHE_KEY_XPATH][$xpathKey])) { |
|
| 597 | + // returns an Xpath selector |
|
| 598 | + $search = array( |
|
| 599 | + // Matches any element that is a child of parent. |
|
| 600 | + '/\\s+>\\s+/', |
|
| 601 | + // Matches any element that is an adjacent sibling. |
|
| 602 | + '/\\s+\\+\\s+/', |
|
| 603 | + // Matches any element that is a descendant of an parent element element. |
|
| 604 | + '/\\s+/', |
|
| 605 | + // first-child pseudo-selector |
|
| 606 | + '/([^\\/]+):first-child/i', |
|
| 607 | + // last-child pseudo-selector |
|
| 608 | + '/([^\\/]+):last-child/i', |
|
| 609 | + // Matches attribute only selector |
|
| 610 | + '/^\\[(\\w+)\\]/', |
|
| 611 | + // Matches element with attribute |
|
| 612 | + '/(\\w)\\[(\\w+)\\]/', |
|
| 613 | + // Matches element with EXACT attribute |
|
| 614 | + '/(\\w)\\[(\\w+)\\=[\'"]?(\\w+)[\'"]?\\]/', |
|
| 615 | + ); |
|
| 616 | + $replace = array( |
|
| 617 | + '/', |
|
| 618 | + '/following-sibling::*[1]/self::', |
|
| 619 | + '//', |
|
| 620 | + '*[1]/self::\\1', |
|
| 621 | + '*[last()]/self::\\1', |
|
| 622 | + '*[@\\1]', |
|
| 623 | + '\\1[@\\2]', |
|
| 624 | + '\\1[@\\2="\\3"]', |
|
| 625 | + ); |
|
| 626 | + |
|
| 627 | + $cssSelector = '//' . preg_replace($search, $replace, $cssSelector); |
|
| 628 | + |
|
| 629 | + $cssSelector = preg_replace_callback(self::ID_ATTRIBUTE_MATCHER, array($this, 'matchIdAttributes'), $cssSelector); |
|
| 630 | + $cssSelector = preg_replace_callback(self::CLASS_ATTRIBUTE_MATCHER, array($this, 'matchClassAttributes'), $cssSelector); |
|
| 631 | + |
|
| 632 | + // Advanced selectors are going to require a bit more advanced emogrification. |
|
| 633 | + // When we required PHP 5.3, we could do this with closures. |
|
| 634 | + $cssSelector = preg_replace_callback( |
|
| 635 | + '/([^\\/]+):nth-child\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i', |
|
| 636 | + array($this, 'translateNthChild'), $cssSelector |
|
| 637 | + ); |
|
| 638 | + $cssSelector = preg_replace_callback( |
|
| 639 | + '/([^\\/]+):nth-of-type\\(\s*(odd|even|[+\-]?\\d|[+\\-]?\\d?n(\\s*[+\\-]\\s*\\d)?)\\s*\\)/i', |
|
| 640 | + array($this, 'translateNthOfType'), $cssSelector |
|
| 641 | + ); |
|
| 642 | + |
|
| 643 | + $this->caches[self::CACHE_KEY_SELECTOR][$xpathKey] = $cssSelector; |
|
| 644 | + } |
|
| 645 | + return $this->caches[self::CACHE_KEY_SELECTOR][$xpathKey]; |
|
| 646 | + } |
|
| 647 | + |
|
| 648 | + /** |
|
| 649 | + * @param array $match |
|
| 650 | + * |
|
| 651 | + * @return string |
|
| 652 | + */ |
|
| 653 | + private function matchIdAttributes(array $match) { |
|
| 654 | + return (strlen($match[1]) ? $match[1] : '*') . '[@id="' . $match[2] . '"]'; |
|
| 655 | + } |
|
| 656 | + |
|
| 657 | + /** |
|
| 658 | + * @param array $match |
|
| 659 | + * |
|
| 660 | + * @return string |
|
| 661 | + */ |
|
| 662 | + private function matchClassAttributes(array $match) { |
|
| 663 | + return (strlen($match[1]) ? $match[1] : '*') . '[contains(concat(" ",@class," "),concat(" ","' . |
|
| 664 | + implode( |
|
| 665 | + '"," "))][contains(concat(" ",@class," "),concat(" ","', |
|
| 666 | + explode('.', substr($match[2], 1)) |
|
| 667 | + ) . '"," "))]'; |
|
| 668 | + } |
|
| 669 | + |
|
| 670 | + /** |
|
| 671 | + * @param array $match |
|
| 672 | + * |
|
| 673 | + * @return string |
|
| 674 | + */ |
|
| 675 | + private function translateNthChild(array $match) { |
|
| 676 | + $result = $this->parseNth($match); |
|
| 677 | + |
|
| 678 | + if (isset($result[self::MULTIPLIER])) { |
|
| 679 | + if ($result[self::MULTIPLIER] < 0) { |
|
| 680 | + $result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]); |
|
| 681 | + return sprintf('*[(last() - position()) mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]); |
|
| 682 | + } else { |
|
| 683 | + return sprintf('*[position() mod %u = %u]/self::%s', $result[self::MULTIPLIER], $result[self::INDEX], $match[1]); |
|
| 684 | + } |
|
| 685 | + } else { |
|
| 686 | + return sprintf('*[%u]/self::%s', $result[self::INDEX], $match[1]); |
|
| 687 | + } |
|
| 688 | + } |
|
| 689 | + |
|
| 690 | + /** |
|
| 691 | + * @param array $match |
|
| 692 | + * |
|
| 693 | + * @return string |
|
| 694 | + */ |
|
| 695 | + private function translateNthOfType(array $match) { |
|
| 696 | + $result = $this->parseNth($match); |
|
| 697 | + |
|
| 698 | + if (isset($result[self::MULTIPLIER])) { |
|
| 699 | + if ($result[self::MULTIPLIER] < 0) { |
|
| 700 | + $result[self::MULTIPLIER] = abs($result[self::MULTIPLIER]); |
|
| 701 | + return sprintf('%s[(last() - position()) mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]); |
|
| 702 | + } else { |
|
| 703 | + return sprintf('%s[position() mod %u = %u]', $match[1], $result[self::MULTIPLIER], $result[self::INDEX]); |
|
| 704 | + } |
|
| 705 | + } else { |
|
| 706 | + return sprintf('%s[%u]', $match[1], $result[self::INDEX]); |
|
| 707 | + } |
|
| 708 | + } |
|
| 709 | + |
|
| 710 | + /** |
|
| 711 | + * @param array $match |
|
| 712 | + * |
|
| 713 | + * @return array |
|
| 714 | + */ |
|
| 715 | + private function parseNth(array $match) { |
|
| 716 | + if (in_array(strtolower($match[2]), array('even','odd'))) { |
|
| 717 | + $index = strtolower($match[2]) == 'even' ? 0 : 1; |
|
| 718 | + return array(self::MULTIPLIER => 2, self::INDEX => $index); |
|
| 719 | + } elseif (stripos($match[2], 'n') === false) { |
|
| 720 | + // if there is a multiplier |
|
| 721 | + $index = intval(str_replace(' ', '', $match[2])); |
|
| 722 | + return array(self::INDEX => $index); |
|
| 723 | + } else { |
|
| 724 | + if (isset($match[3])) { |
|
| 725 | + $multipleTerm = str_replace($match[3], '', $match[2]); |
|
| 726 | + $index = intval(str_replace(' ', '', $match[3])); |
|
| 727 | + } else { |
|
| 728 | + $multipleTerm = $match[2]; |
|
| 729 | + $index = 0; |
|
| 730 | + } |
|
| 731 | + |
|
| 732 | + $multiplier = str_ireplace('n', '', $multipleTerm); |
|
| 733 | + |
|
| 734 | + if (!strlen($multiplier)) { |
|
| 735 | + $multiplier = 1; |
|
| 736 | + } elseif ($multiplier == 0) { |
|
| 737 | + return array(self::INDEX => $index); |
|
| 738 | + } else { |
|
| 739 | + $multiplier = intval($multiplier); |
|
| 740 | + } |
|
| 741 | + |
|
| 742 | + while ($index < 0) { |
|
| 743 | + $index += abs($multiplier); |
|
| 744 | + } |
|
| 745 | + |
|
| 746 | + return array(self::MULTIPLIER => $multiplier, self::INDEX => $index); |
|
| 747 | + } |
|
| 748 | + } |
|
| 749 | + |
|
| 750 | + /** |
|
| 751 | + * Parses a CSS declaration block into property name/value pairs. |
|
| 752 | + * |
|
| 753 | + * Example: |
|
| 754 | + * |
|
| 755 | + * The declaration block. |
|
| 756 | + * |
|
| 757 | + * "color: #000; font-weight: bold;". |
|
| 758 | + * |
|
| 759 | + * will be parsed into the following array: |
|
| 760 | + * |
|
| 761 | + * "color" => "#000" |
|
| 762 | + * "font-weight" => "bold" |
|
| 763 | + * |
|
| 764 | + * @param string $cssDeclarationBlock the CSS declaration block without the curly braces, may be empty |
|
| 765 | + * |
|
| 766 | + * @return array the CSS declarations with the property names as array keys and the property values as array values |
|
| 767 | + */ |
|
| 768 | + private function parseCssDeclarationBlock($cssDeclarationBlock) { |
|
| 769 | + if (isset($this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock])) { |
|
| 770 | + return $this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock]; |
|
| 771 | + } |
|
| 772 | + |
|
| 773 | + $properties = array(); |
|
| 774 | + $declarations = explode(';', $cssDeclarationBlock); |
|
| 775 | + foreach ($declarations as $declaration) { |
|
| 776 | + $matches = array(); |
|
| 777 | + if (!preg_match('/ *([A-Za-z\\-]+) *: *([^;]+) */', $declaration, $matches)) { |
|
| 778 | + continue; |
|
| 779 | + } |
|
| 780 | + $propertyName = strtolower($matches[1]); |
|
| 781 | + $propertyValue = $matches[2]; |
|
| 782 | + $properties[$propertyName] = $propertyValue; |
|
| 783 | + } |
|
| 784 | + $this->caches[self::CACHE_KEY_CSS_DECLARATION_BLOCK][$cssDeclarationBlock] = $properties; |
|
| 785 | + |
|
| 786 | + return $properties; |
|
| 787 | + } |
|
| 788 | 788 | } |
@@ -238,7 +238,7 @@ discard block |
||
| 238 | 238 | if ($nodesWithStyleAttributes !== false) { |
| 239 | 239 | /** @var $nodeWithStyleAttribute DOMNode */ |
| 240 | 240 | foreach ($nodesWithStyleAttributes as $node) { |
| 241 | - $normalizedOriginalStyle = preg_replace_callback( '/[A-z\\-]+(?=\\:)/S', array( $this, 'strtolower' ), $node->getAttribute('style') ); |
|
| 241 | + $normalizedOriginalStyle = preg_replace_callback('/[A-z\\-]+(?=\\:)/S', array($this, 'strtolower'), $node->getAttribute('style')); |
|
| 242 | 242 | |
| 243 | 243 | // in order to not overwrite existing style attributes in the HTML, we have to save the original HTML styles |
| 244 | 244 | $nodePath = $node->getNodePath(); |
@@ -289,7 +289,7 @@ discard block |
||
| 289 | 289 | } |
| 290 | 290 | |
| 291 | 291 | // now sort the selectors by precedence |
| 292 | - usort($allSelectors, array($this,'sortBySelectorPrecedence')); |
|
| 292 | + usort($allSelectors, array($this, 'sortBySelectorPrecedence')); |
|
| 293 | 293 | |
| 294 | 294 | $this->caches[self::CACHE_KEY_CSS][$cssKey] = $allSelectors; |
| 295 | 295 | } |
@@ -329,7 +329,7 @@ discard block |
||
| 329 | 329 | if ($nodesWithStyleDisplayNone->length > 0) { |
| 330 | 330 | /** @var $node \DOMNode */ |
| 331 | 331 | foreach ($nodesWithStyleDisplayNone as $node) { |
| 332 | - if ($node->parentNode && is_callable(array($node->parentNode,'removeChild'))) { |
|
| 332 | + if ($node->parentNode && is_callable(array($node->parentNode, 'removeChild'))) { |
|
| 333 | 333 | $node->parentNode->removeChild($node); |
| 334 | 334 | } |
| 335 | 335 | } |
@@ -338,10 +338,10 @@ discard block |
||
| 338 | 338 | $this->copyCssWithMediaToStyleNode($cssParts, $xmlDocument); |
| 339 | 339 | |
| 340 | 340 | if ($this->preserveEncoding) { |
| 341 | - if ( function_exists( 'mb_convert_encoding' ) ) { |
|
| 342 | - return mb_convert_encoding( $xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES' ); |
|
| 341 | + if (function_exists('mb_convert_encoding')) { |
|
| 342 | + return mb_convert_encoding($xmlDocument->saveHTML(), self::ENCODING, 'HTML-ENTITIES'); |
|
| 343 | 343 | } else { |
| 344 | - return htmlspecialchars_decode( utf8_encode( html_entity_decode( $xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING ) ) ); |
|
| 344 | + return htmlspecialchars_decode(utf8_encode(html_entity_decode($xmlDocument->saveHTML(), ENT_COMPAT, self::ENCODING))); |
|
| 345 | 345 | } |
| 346 | 346 | } else { |
| 347 | 347 | return $xmlDocument->saveHTML(); |
@@ -462,7 +462,7 @@ discard block |
||
| 462 | 462 | * @return array |
| 463 | 463 | */ |
| 464 | 464 | private function splitCssAndMediaQuery($css) { |
| 465 | - $css = preg_replace_callback( '#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array( $this, '_media_concat' ), $css ); |
|
| 465 | + $css = preg_replace_callback('#@media\\s+(?:only\\s)?(?:[\\s{\(]|screen|all)\\s?[^{]+{.*}\\s*}\\s*#misU', array($this, '_media_concat'), $css); |
|
| 466 | 466 | |
| 467 | 467 | // filter the CSS |
| 468 | 468 | $search = array( |
@@ -486,7 +486,7 @@ discard block |
||
| 486 | 486 | return array('css' => $css, 'media' => self::$_media); |
| 487 | 487 | } |
| 488 | 488 | |
| 489 | - private function _media_concat( $matches ) { |
|
| 489 | + private function _media_concat($matches) { |
|
| 490 | 490 | self::$_media .= $matches[0]; |
| 491 | 491 | } |
| 492 | 492 | |
@@ -524,10 +524,10 @@ discard block |
||
| 524 | 524 | $bodyWithoutUnprocessableTags = $this->html; |
| 525 | 525 | } |
| 526 | 526 | |
| 527 | - if ( function_exists( 'mb_convert_encoding' ) ) { |
|
| 528 | - return mb_convert_encoding( $bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING ); |
|
| 527 | + if (function_exists('mb_convert_encoding')) { |
|
| 528 | + return mb_convert_encoding($bodyWithoutUnprocessableTags, 'HTML-ENTITIES', self::ENCODING); |
|
| 529 | 529 | } else { |
| 530 | - return htmlspecialchars_decode( utf8_decode( htmlentities( $bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false ) ) ); |
|
| 530 | + return htmlspecialchars_decode(utf8_decode(htmlentities($bodyWithoutUnprocessableTags, ENT_COMPAT, self::ENCODING, false))); |
|
| 531 | 531 | } |
| 532 | 532 | } |
| 533 | 533 | |
@@ -562,7 +562,7 @@ discard block |
||
| 562 | 562 | $precedence = 0; |
| 563 | 563 | $value = 100; |
| 564 | 564 | // ids: worth 100, classes: worth 10, elements: worth 1 |
| 565 | - $search = array('\\#','\\.',''); |
|
| 565 | + $search = array('\\#', '\\.', ''); |
|
| 566 | 566 | |
| 567 | 567 | foreach ($search as $s) { |
| 568 | 568 | if (trim($selector == '')) { |
@@ -590,7 +590,7 @@ discard block |
||
| 590 | 590 | */ |
| 591 | 591 | private function translateCssToXpath($paramCssSelector) { |
| 592 | 592 | $cssSelector = ' ' . $paramCssSelector . ' '; |
| 593 | - $cssSelector = preg_replace_callback( '/\s+\w+\s+/', array( $this, 'strtolower' ), $cssSelector ); |
|
| 593 | + $cssSelector = preg_replace_callback('/\s+\w+\s+/', array($this, 'strtolower'), $cssSelector); |
|
| 594 | 594 | $cssSelector = trim($cssSelector); |
| 595 | 595 | $xpathKey = md5($cssSelector); |
| 596 | 596 | if (!isset($this->caches[self::CACHE_KEY_XPATH][$xpathKey])) { |
@@ -713,7 +713,7 @@ discard block |
||
| 713 | 713 | * @return array |
| 714 | 714 | */ |
| 715 | 715 | private function parseNth(array $match) { |
| 716 | - if (in_array(strtolower($match[2]), array('even','odd'))) { |
|
| 716 | + if (in_array(strtolower($match[2]), array('even', 'odd'))) { |
|
| 717 | 717 | $index = strtolower($match[2]) == 'even' ? 0 : 1; |
| 718 | 718 | return array(self::MULTIPLIER => 2, self::INDEX => $index); |
| 719 | 719 | } elseif (stripos($match[2], 'n') === false) { |