@@ -7,15 +7,15 @@ 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 |  class WPInv_Plugin { | 
                                                        
| 15 | 15 | private static $instance;  | 
                                                        
| 16 | 16 | |
| 17 | 17 |      public static function run() { | 
                                                        
| 18 | -        if ( !isset( self::$instance ) && !( self::$instance instanceof WPInv_Plugin ) ) { | 
                                                        |
| 18 | +        if (!isset(self::$instance) && !(self::$instance instanceof WPInv_Plugin)) { | 
                                                        |
| 19 | 19 | self::$instance = new WPInv_Plugin;  | 
                                                        
| 20 | 20 | self::$instance->includes();  | 
                                                        
| 21 | 21 | self::$instance->actions();  | 
                                                        
@@ -32,31 +32,31 @@ discard block  | 
                                                    ||
| 32 | 32 | }  | 
                                                        
| 33 | 33 | |
| 34 | 34 |      public function define_constants() { | 
                                                        
| 35 | - define( 'WPINV_PLUGIN_DIR', plugin_dir_path( WPINV_PLUGIN_FILE ) );  | 
                                                        |
| 36 | - define( 'WPINV_PLUGIN_URL', plugin_dir_url( WPINV_PLUGIN_FILE ) );  | 
                                                        |
| 35 | +        define('WPINV_PLUGIN_DIR', plugin_dir_path(WPINV_PLUGIN_FILE)); | 
                                                        |
| 36 | +        define('WPINV_PLUGIN_URL', plugin_dir_url(WPINV_PLUGIN_FILE)); | 
                                                        |
| 37 | 37 | }  | 
                                                        
| 38 | 38 | |
| 39 | 39 |      private function actions() { | 
                                                        
| 40 | 40 | /* Internationalize the text strings used. */  | 
                                                        
| 41 | - add_action( 'plugins_loaded', array( &$this, 'plugins_loaded' ) );  | 
                                                        |
| 41 | +        add_action('plugins_loaded', array(&$this, 'plugins_loaded')); | 
                                                        |
| 42 | 42 | |
| 43 | 43 | /* Perform actions on admin initialization. */  | 
                                                        
| 44 | - add_action( 'admin_init', array( &$this, 'admin_init') );  | 
                                                        |
| 45 | - add_action( 'init', array( &$this, 'init' ), 3 );  | 
                                                        |
| 46 | - add_action( 'init', array( &$this, 'wpinv_actions' ) );  | 
                                                        |
| 44 | +        add_action('admin_init', array(&$this, 'admin_init')); | 
                                                        |
| 45 | +        add_action('init', array(&$this, 'init'), 3); | 
                                                        |
| 46 | +        add_action('init', array(&$this, 'wpinv_actions')); | 
                                                        |
| 47 | 47 | |
| 48 | -        if ( class_exists( 'BuddyPress' ) ) { | 
                                                        |
| 49 | - add_action( 'bp_include', array( &$this, 'bp_invoicing_init' ) );  | 
                                                        |
| 48 | +        if (class_exists('BuddyPress')) { | 
                                                        |
| 49 | +            add_action('bp_include', array(&$this, 'bp_invoicing_init')); | 
                                                        |
| 50 | 50 | }  | 
                                                        
| 51 | 51 | |
| 52 | - add_action( 'wp_enqueue_scripts', array( &$this, 'enqueue_scripts' ) );  | 
                                                        |
| 53 | - add_action( 'widgets_init', array( &$this, 'register_widgets' ) );  | 
                                                        |
| 52 | +        add_action('wp_enqueue_scripts', array(&$this, 'enqueue_scripts')); | 
                                                        |
| 53 | +        add_action('widgets_init', array(&$this, 'register_widgets')); | 
                                                        |
| 54 | 54 | |
| 55 | -        if ( is_admin() ) { | 
                                                        |
| 56 | - add_action( 'admin_enqueue_scripts', array( &$this, 'admin_enqueue_scripts' ) );  | 
                                                        |
| 57 | - add_action( 'admin_body_class', array( &$this, 'admin_body_class' ) );  | 
                                                        |
| 55 | +        if (is_admin()) { | 
                                                        |
| 56 | +            add_action('admin_enqueue_scripts', array(&$this, 'admin_enqueue_scripts')); | 
                                                        |
| 57 | +            add_action('admin_body_class', array(&$this, 'admin_body_class')); | 
                                                        |
| 58 | 58 |          } else { | 
                                                        
| 59 | - add_filter( 'pre_get_posts', array( &$this, 'pre_get_posts' ) );  | 
                                                        |
| 59 | +            add_filter('pre_get_posts', array(&$this, 'pre_get_posts')); | 
                                                        |
| 60 | 60 | }  | 
                                                        
| 61 | 61 | |
| 62 | 62 | /**  | 
                                                        
@@ -66,19 +66,19 @@ discard block  | 
                                                    ||
| 66 | 66 | *  | 
                                                        
| 67 | 67 | * @param WPInv_Plugin $this. Current WPInv_Plugin instance. Passed by reference.  | 
                                                        
| 68 | 68 | */  | 
                                                        
| 69 | - do_action_ref_array( 'wpinv_actions', array( &$this ) );  | 
                                                        |
| 69 | +        do_action_ref_array('wpinv_actions', array(&$this)); | 
                                                        |
| 70 | 70 | |
| 71 | - add_action( 'admin_init', array( &$this, 'activation_redirect') );  | 
                                                        |
| 71 | +        add_action('admin_init', array(&$this, 'activation_redirect')); | 
                                                        |
| 72 | 72 | }  | 
                                                        
| 73 | 73 | |
| 74 | 74 |      public function plugins_loaded() { | 
                                                        
| 75 | 75 | /* Internationalize the text strings used. */  | 
                                                        
| 76 | 76 | $this->load_textdomain();  | 
                                                        
| 77 | 77 | |
| 78 | - do_action( 'wpinv_loaded' );  | 
                                                        |
| 78 | +        do_action('wpinv_loaded'); | 
                                                        |
| 79 | 79 | |
| 80 | 80 | // Fix oxygen page builder conflict  | 
                                                        
| 81 | -        if ( function_exists( 'ct_css_output' ) ) { | 
                                                        |
| 81 | +        if (function_exists('ct_css_output')) { | 
                                                        |
| 82 | 82 | wpinv_oxygen_fix_conflict();  | 
                                                        
| 83 | 83 | }  | 
                                                        
| 84 | 84 | }  | 
                                                        
@@ -88,229 +88,229 @@ discard block  | 
                                                    ||
| 88 | 88 | *  | 
                                                        
| 89 | 89 | * @since 1.0  | 
                                                        
| 90 | 90 | */  | 
                                                        
| 91 | -    public function load_textdomain( $locale = NULL ) { | 
                                                        |
| 92 | -        if ( empty( $locale ) ) { | 
                                                        |
| 93 | - $locale = is_admin() && function_exists( 'get_user_locale' ) ? get_user_locale() : get_locale();  | 
                                                        |
| 91 | +    public function load_textdomain($locale = NULL) { | 
                                                        |
| 92 | +        if (empty($locale)) { | 
                                                        |
| 93 | +            $locale = is_admin() && function_exists('get_user_locale') ? get_user_locale() : get_locale(); | 
                                                        |
| 94 | 94 | }  | 
                                                        
| 95 | 95 | |
| 96 | - $locale = apply_filters( 'plugin_locale', $locale, 'invoicing' );  | 
                                                        |
| 96 | +        $locale = apply_filters('plugin_locale', $locale, 'invoicing'); | 
                                                        |
| 97 | 97 | |
| 98 | - unload_textdomain( 'invoicing' );  | 
                                                        |
| 99 | - load_textdomain( 'invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo' );  | 
                                                        |
| 100 | - load_plugin_textdomain( 'invoicing', false, WPINV_PLUGIN_DIR . 'languages' );  | 
                                                        |
| 98 | +        unload_textdomain('invoicing'); | 
                                                        |
| 99 | +        load_textdomain('invoicing', WP_LANG_DIR . '/invoicing/invoicing-' . $locale . '.mo'); | 
                                                        |
| 100 | +        load_plugin_textdomain('invoicing', false, WPINV_PLUGIN_DIR . 'languages'); | 
                                                        |
| 101 | 101 | |
| 102 | 102 | /**  | 
                                                        
| 103 | 103 | * Define language constants.  | 
                                                        
| 104 | 104 | */  | 
                                                        
| 105 | - require_once( WPINV_PLUGIN_DIR . 'language.php' );  | 
                                                        |
| 105 | + require_once(WPINV_PLUGIN_DIR . 'language.php');  | 
                                                        |
| 106 | 106 | }  | 
                                                        
| 107 | 107 | |
| 108 | 108 |      public function includes() { | 
                                                        
| 109 | 109 | global $wpinv_options;  | 
                                                        
| 110 | 110 | |
| 111 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php' );  | 
                                                        |
| 111 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/register-settings.php');  | 
                                                        |
| 112 | 112 | $wpinv_options = wpinv_get_settings();  | 
                                                        
| 113 | 113 | |
| 114 | - require_once( WPINV_PLUGIN_DIR . 'vendor/autoload.php' );  | 
                                                        |
| 115 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php' );  | 
                                                        |
| 116 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php' );  | 
                                                        |
| 117 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php' );  | 
                                                        |
| 118 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php' );  | 
                                                        |
| 119 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php' );  | 
                                                        |
| 120 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php' );  | 
                                                        |
| 121 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-invoice-functions.php' );  | 
                                                        |
| 122 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php' );  | 
                                                        |
| 123 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php' );  | 
                                                        |
| 124 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php' );  | 
                                                        |
| 125 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php' );  | 
                                                        |
| 126 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-user-functions.php' );  | 
                                                        |
| 127 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-error-functions.php' );  | 
                                                        |
| 128 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-post-types.php' );  | 
                                                        |
| 129 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-invoice.php' );  | 
                                                        |
| 130 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-discount.php' );  | 
                                                        |
| 131 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-item.php' );  | 
                                                        |
| 132 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-notes.php' );  | 
                                                        |
| 133 | - require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php' );  | 
                                                        |
| 134 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php' );  | 
                                                        |
| 135 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php' );  | 
                                                        |
| 136 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php' );  | 
                                                        |
| 137 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-reports.php' );  | 
                                                        |
| 138 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php' );  | 
                                                        |
| 139 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php' );  | 
                                                        |
| 140 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php' );  | 
                                                        |
| 141 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php' );  | 
                                                        |
| 142 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions.php' );  | 
                                                        |
| 143 | - require_once( WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php' );  | 
                                                        |
| 144 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-subscriptions-list-table.php' );  | 
                                                        |
| 145 | - require_once( WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php' );  | 
                                                        |
| 146 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php' );  | 
                                                        |
| 147 | - require_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php' );  | 
                                                        |
| 148 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php' );  | 
                                                        |
| 149 | - require_once( WPINV_PLUGIN_DIR . 'widgets/checkout.php' );  | 
                                                        |
| 150 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-history.php' );  | 
                                                        |
| 151 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php' );  | 
                                                        |
| 152 | - require_once( WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php' );  | 
                                                        |
| 153 | - require_once( WPINV_PLUGIN_DIR . 'widgets/subscriptions.php' );  | 
                                                        |
| 154 | - require_once( WPINV_PLUGIN_DIR . 'widgets/buy-item.php' );  | 
                                                        |
| 155 | -  | 
                                                        |
| 156 | -        if ( !class_exists( 'WPInv_EUVat' ) ) { | 
                                                        |
| 157 | - require_once( WPINV_PLUGIN_DIR . 'includes/libraries/wpinv-euvat/class-wpinv-euvat.php' );  | 
                                                        |
| 114 | + require_once(WPINV_PLUGIN_DIR . 'vendor/autoload.php');  | 
                                                        |
| 115 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-email-functions.php');  | 
                                                        |
| 116 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-general-functions.php');  | 
                                                        |
| 117 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-helper-functions.php');  | 
                                                        |
| 118 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-tax-functions.php');  | 
                                                        |
| 119 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-template-functions.php');  | 
                                                        |
| 120 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-address-functions.php');  | 
                                                        |
| 121 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-invoice-functions.php');  | 
                                                        |
| 122 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-item-functions.php');  | 
                                                        |
| 123 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-discount-functions.php');  | 
                                                        |
| 124 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-gateway-functions.php');  | 
                                                        |
| 125 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-payment-functions.php');  | 
                                                        |
| 126 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-user-functions.php');  | 
                                                        |
| 127 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-error-functions.php');  | 
                                                        |
| 128 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-post-types.php');  | 
                                                        |
| 129 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-invoice.php');  | 
                                                        |
| 130 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-discount.php');  | 
                                                        |
| 131 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-item.php');  | 
                                                        |
| 132 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-notes.php');  | 
                                                        |
| 133 | + require_once(WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-session.php');  | 
                                                        |
| 134 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-session-handler.php');  | 
                                                        |
| 135 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-ajax.php');  | 
                                                        |
| 136 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-api.php');  | 
                                                        |
| 137 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-reports.php');  | 
                                                        |
| 138 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-cache-helper.php');  | 
                                                        |
| 139 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-db.php');  | 
                                                        |
| 140 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php');  | 
                                                        |
| 141 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions-db.php');  | 
                                                        |
| 142 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-subscriptions.php');  | 
                                                        |
| 143 | + require_once(WPINV_PLUGIN_DIR . 'includes/wpinv-subscription.php');  | 
                                                        |
| 144 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-subscriptions-list-table.php');  | 
                                                        |
| 145 | + require_once(WPINV_PLUGIN_DIR . 'includes/abstracts/abstract-wpinv-privacy.php');  | 
                                                        |
| 146 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-privacy.php');  | 
                                                        |
| 147 | + require_once(WPINV_PLUGIN_DIR . 'includes/libraries/class-ayecode-addons.php');  | 
                                                        |
| 148 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-addons.php');  | 
                                                        |
| 149 | + require_once(WPINV_PLUGIN_DIR . 'widgets/checkout.php');  | 
                                                        |
| 150 | + require_once(WPINV_PLUGIN_DIR . 'widgets/invoice-history.php');  | 
                                                        |
| 151 | + require_once(WPINV_PLUGIN_DIR . 'widgets/invoice-receipt.php');  | 
                                                        |
| 152 | + require_once(WPINV_PLUGIN_DIR . 'widgets/invoice-messages.php');  | 
                                                        |
| 153 | + require_once(WPINV_PLUGIN_DIR . 'widgets/subscriptions.php');  | 
                                                        |
| 154 | + require_once(WPINV_PLUGIN_DIR . 'widgets/buy-item.php');  | 
                                                        |
| 155 | +  | 
                                                        |
| 156 | +        if (!class_exists('WPInv_EUVat')) { | 
                                                        |
| 157 | + require_once(WPINV_PLUGIN_DIR . 'includes/libraries/wpinv-euvat/class-wpinv-euvat.php');  | 
                                                        |
| 158 | 158 | }  | 
                                                        
| 159 | 159 | |
| 160 | - $gateways = array_keys( wpinv_get_enabled_payment_gateways() );  | 
                                                        |
| 161 | -        if ( !empty( $gateways ) ) { | 
                                                        |
| 162 | -            foreach ( $gateways as $gateway ) { | 
                                                        |
| 163 | -                if ( $gateway == 'manual' ) { | 
                                                        |
| 160 | + $gateways = array_keys(wpinv_get_enabled_payment_gateways());  | 
                                                        |
| 161 | +        if (!empty($gateways)) { | 
                                                        |
| 162 | +            foreach ($gateways as $gateway) { | 
                                                        |
| 163 | +                if ($gateway == 'manual') { | 
                                                        |
| 164 | 164 | continue;  | 
                                                        
| 165 | 165 | }  | 
                                                        
| 166 | 166 | |
| 167 | 167 | $gateway_file = WPINV_PLUGIN_DIR . 'includes/gateways/' . $gateway . '.php';  | 
                                                        
| 168 | 168 | |
| 169 | -                if ( file_exists( $gateway_file ) ) { | 
                                                        |
| 170 | - require_once( $gateway_file );  | 
                                                        |
| 169 | +                if (file_exists($gateway_file)) { | 
                                                        |
| 170 | + require_once($gateway_file);  | 
                                                        |
| 171 | 171 | }  | 
                                                        
| 172 | 172 | }  | 
                                                        
| 173 | 173 | }  | 
                                                        
| 174 | - require_once( WPINV_PLUGIN_DIR . 'includes/gateways/manual.php' );  | 
                                                        |
| 174 | + require_once(WPINV_PLUGIN_DIR . 'includes/gateways/manual.php');  | 
                                                        |
| 175 | 175 | |
| 176 | -        if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) { | 
                                                        |
| 177 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-upgrade-functions.php' );  | 
                                                        |
| 178 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php' );  | 
                                                        |
| 179 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/admin-meta-boxes.php' );  | 
                                                        |
| 176 | +        if (is_admin() || (defined('WP_CLI') && WP_CLI)) { | 
                                                        |
| 177 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/wpinv-upgrade-functions.php');  | 
                                                        |
| 178 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/wpinv-admin-functions.php');  | 
                                                        |
| 179 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/admin-meta-boxes.php');  | 
                                                        |
| 180 | 180 | //require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-recurring-admin.php' );  | 
                                                        
| 181 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-details.php' );  | 
                                                        |
| 182 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-items.php' );  | 
                                                        |
| 183 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php' );  | 
                                                        |
| 184 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-address.php' );  | 
                                                        |
| 185 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php' );  | 
                                                        |
| 186 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php' );  | 
                                                        |
| 187 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php' );  | 
                                                        |
| 181 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-details.php');  | 
                                                        |
| 182 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-items.php');  | 
                                                        |
| 183 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-notes.php');  | 
                                                        |
| 184 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/meta-boxes/class-mb-invoice-address.php');  | 
                                                        |
| 185 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/admin-pages.php');  | 
                                                        |
| 186 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-admin-menus.php');  | 
                                                        |
| 187 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/class-wpinv-users.php');  | 
                                                        |
| 188 | 188 | //require_once( WPINV_PLUGIN_DIR . 'includes/admin/subscriptions.php' );  | 
                                                        
| 189 | 189 | // load the user class only on the users.php page  | 
                                                        
| 190 | 190 | global $pagenow;  | 
                                                        
| 191 | -            if($pagenow=='users.php'){ | 
                                                        |
| 191 | +            if ($pagenow == 'users.php') { | 
                                                        |
| 192 | 192 | new WPInv_Admin_Users();  | 
                                                        
| 193 | 193 | }  | 
                                                        
| 194 | 194 | }  | 
                                                        
| 195 | 195 | |
| 196 | 196 | // Register cli commands  | 
                                                        
| 197 | -        if ( defined( 'WP_CLI' ) && WP_CLI ) { | 
                                                        |
| 198 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php' );  | 
                                                        |
| 199 | - WP_CLI::add_command( 'invoicing', 'WPInv_CLI' );  | 
                                                        |
| 197 | +        if (defined('WP_CLI') && WP_CLI) { | 
                                                        |
| 198 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-cli.php');  | 
                                                        |
| 199 | +            WP_CLI::add_command('invoicing', 'WPInv_CLI'); | 
                                                        |
| 200 | 200 | }  | 
                                                        
| 201 | 201 | |
| 202 | 202 | // include css inliner  | 
                                                        
| 203 | -        if ( ! class_exists( 'Emogrifier' ) && class_exists( 'DOMDocument' ) ) { | 
                                                        |
| 204 | - include_once( WPINV_PLUGIN_DIR . 'includes/libraries/class-emogrifier.php' );  | 
                                                        |
| 203 | +        if (!class_exists('Emogrifier') && class_exists('DOMDocument')) { | 
                                                        |
| 204 | + include_once(WPINV_PLUGIN_DIR . 'includes/libraries/class-emogrifier.php');  | 
                                                        |
| 205 | 205 | }  | 
                                                        
| 206 | 206 | |
| 207 | - require_once( WPINV_PLUGIN_DIR . 'includes/admin/install.php' );  | 
                                                        |
| 207 | + require_once(WPINV_PLUGIN_DIR . 'includes/admin/install.php');  | 
                                                        |
| 208 | 208 | }  | 
                                                        
| 209 | 209 | |
| 210 | 210 |      public function init() { | 
                                                        
| 211 | 211 | }  | 
                                                        
| 212 | 212 | |
| 213 | 213 |      public function admin_init() { | 
                                                        
| 214 | - add_action( 'admin_print_scripts-edit.php', array( &$this, 'admin_print_scripts_edit_php' ) );  | 
                                                        |
| 214 | +        add_action('admin_print_scripts-edit.php', array(&$this, 'admin_print_scripts_edit_php')); | 
                                                        |
| 215 | 215 | }  | 
                                                        
| 216 | 216 | |
| 217 | 217 |      public function activation_redirect() { | 
                                                        
| 218 | 218 | // Bail if no activation redirect  | 
                                                        
| 219 | -        if ( !get_transient( '_wpinv_activation_redirect' ) ) { | 
                                                        |
| 219 | +        if (!get_transient('_wpinv_activation_redirect')) { | 
                                                        |
| 220 | 220 | return;  | 
                                                        
| 221 | 221 | }  | 
                                                        
| 222 | 222 | |
| 223 | 223 | // Delete the redirect transient  | 
                                                        
| 224 | - delete_transient( '_wpinv_activation_redirect' );  | 
                                                        |
| 224 | +        delete_transient('_wpinv_activation_redirect'); | 
                                                        |
| 225 | 225 | |
| 226 | 226 | // Bail if activating from network, or bulk  | 
                                                        
| 227 | -        if ( is_network_admin() || isset( $_GET['activate-multi'] ) ) { | 
                                                        |
| 227 | +        if (is_network_admin() || isset($_GET['activate-multi'])) { | 
                                                        |
| 228 | 228 | return;  | 
                                                        
| 229 | 229 | }  | 
                                                        
| 230 | 230 | |
| 231 | - wp_safe_redirect( admin_url( 'admin.php?page=wpinv-settings&tab=general' ) );  | 
                                                        |
| 231 | +        wp_safe_redirect(admin_url('admin.php?page=wpinv-settings&tab=general')); | 
                                                        |
| 232 | 232 | exit;  | 
                                                        
| 233 | 233 | }  | 
                                                        
| 234 | 234 | |
| 235 | 235 |      public function enqueue_scripts() { | 
                                                        
| 236 | - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';  | 
                                                        |
| 236 | +        $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; | 
                                                        |
| 237 | 237 | |
| 238 | - wp_register_style( 'wpinv_front_style', WPINV_PLUGIN_URL . 'assets/css/invoice-front.css', array(), WPINV_VERSION );  | 
                                                        |
| 239 | - wp_enqueue_style( 'wpinv_front_style' );  | 
                                                        |
| 238 | +        wp_register_style('wpinv_front_style', WPINV_PLUGIN_URL . 'assets/css/invoice-front.css', array(), WPINV_VERSION); | 
                                                        |
| 239 | +        wp_enqueue_style('wpinv_front_style'); | 
                                                        |
| 240 | 240 | |
| 241 | 241 | // Register scripts  | 
                                                        
| 242 | - wp_register_script( 'jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array( 'jquery' ), '2.70', true );  | 
                                                        |
| 243 | - wp_register_script( 'wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/invoice-front.js', array( 'jquery' ), WPINV_VERSION );  | 
                                                        |
| 242 | +        wp_register_script('jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array('jquery'), '2.70', true); | 
                                                        |
| 243 | +        wp_register_script('wpinv-front-script', WPINV_PLUGIN_URL . 'assets/js/invoice-front.js', array('jquery'), WPINV_VERSION); | 
                                                        |
| 244 | 244 | |
| 245 | 245 | $localize = array();  | 
                                                        
| 246 | - $localize['ajax_url'] = admin_url( 'admin-ajax.php' );  | 
                                                        |
| 247 | - $localize['nonce'] = wp_create_nonce( 'wpinv-nonce' );  | 
                                                        |
| 246 | +        $localize['ajax_url']             = admin_url('admin-ajax.php'); | 
                                                        |
| 247 | +        $localize['nonce']                = wp_create_nonce('wpinv-nonce'); | 
                                                        |
| 248 | 248 | $localize['currency_symbol'] = wpinv_currency_symbol();  | 
                                                        
| 249 | 249 | $localize['currency_pos'] = wpinv_currency_position();  | 
                                                        
| 250 | 250 | $localize['thousand_sep'] = wpinv_thousands_separator();  | 
                                                        
| 251 | 251 | $localize['decimal_sep'] = wpinv_decimal_separator();  | 
                                                        
| 252 | 252 | $localize['decimals'] = wpinv_decimals();  | 
                                                        
| 253 | - $localize['txtComplete'] = __( 'Complete', 'invoicing' );  | 
                                                        |
| 253 | +        $localize['txtComplete']          = __('Complete', 'invoicing'); | 
                                                        |
| 254 | 254 | $localize['UseTaxes'] = wpinv_use_taxes();  | 
                                                        
| 255 | - $localize['checkoutNonce'] = wp_create_nonce( 'wpinv_checkout_nonce' );  | 
                                                        |
| 255 | +        $localize['checkoutNonce']        = wp_create_nonce('wpinv_checkout_nonce'); | 
                                                        |
| 256 | 256 | |
| 257 | - $localize = apply_filters( 'wpinv_front_js_localize', $localize );  | 
                                                        |
| 257 | +        $localize = apply_filters('wpinv_front_js_localize', $localize); | 
                                                        |
| 258 | 258 | |
| 259 | - wp_enqueue_script( 'jquery-blockui' );  | 
                                                        |
| 259 | +        wp_enqueue_script('jquery-blockui'); | 
                                                        |
| 260 | 260 |          $autofill_api = wpinv_get_option('address_autofill_api'); | 
                                                        
| 261 | 261 |          $autofill_active = wpinv_get_option('address_autofill_active'); | 
                                                        
| 262 | -        if ( isset( $autofill_active ) && 1 == $autofill_active && !empty( $autofill_api ) && wpinv_is_checkout() ) { | 
                                                        |
| 263 | -            if ( wp_script_is( 'google-maps-api', 'enqueued' ) ) { | 
                                                        |
| 264 | - wp_dequeue_script( 'google-maps-api' );  | 
                                                        |
| 262 | +        if (isset($autofill_active) && 1 == $autofill_active && !empty($autofill_api) && wpinv_is_checkout()) { | 
                                                        |
| 263 | +            if (wp_script_is('google-maps-api', 'enqueued')) { | 
                                                        |
| 264 | +                wp_dequeue_script('google-maps-api'); | 
                                                        |
| 265 | 265 | }  | 
                                                        
| 266 | - wp_enqueue_script( 'google-maps-api', 'https://maps.googleapis.com/maps/api/js?key=' . $autofill_api . '&libraries=places', array( 'jquery' ), '', false );  | 
                                                        |
| 267 | - wp_enqueue_script( 'google-maps-init', WPINV_PLUGIN_URL . 'assets/js/gaaf.js', array( 'jquery', 'google-maps-api' ), '', true );  | 
                                                        |
| 266 | +            wp_enqueue_script('google-maps-api', 'https://maps.googleapis.com/maps/api/js?key=' . $autofill_api . '&libraries=places', array('jquery'), '', false); | 
                                                        |
| 267 | +            wp_enqueue_script('google-maps-init', WPINV_PLUGIN_URL . 'assets/js/gaaf.js', array('jquery', 'google-maps-api'), '', true); | 
                                                        |
| 268 | 268 | }  | 
                                                        
| 269 | 269 | |
| 270 | - wp_enqueue_style( "select2", WPINV_PLUGIN_URL . 'assets/css/select2/select2.css', array(), WPINV_VERSION, 'all' );  | 
                                                        |
| 271 | -        wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full' . $suffix . '.js', array( 'jquery' ), WPINV_VERSION ); | 
                                                        |
| 270 | +        wp_enqueue_style("select2", WPINV_PLUGIN_URL . 'assets/css/select2/select2.css', array(), WPINV_VERSION, 'all'); | 
                                                        |
| 271 | +        wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full' . $suffix . '.js', array('jquery'), WPINV_VERSION); | 
                                                        |
| 272 | 272 | |
| 273 | - wp_enqueue_script( 'wpinv-front-script' );  | 
                                                        |
| 274 | - wp_localize_script( 'wpinv-front-script', 'WPInv', $localize );  | 
                                                        |
| 273 | +        wp_enqueue_script('wpinv-front-script'); | 
                                                        |
| 274 | +        wp_localize_script('wpinv-front-script', 'WPInv', $localize); | 
                                                        |
| 275 | 275 | }  | 
                                                        
| 276 | 276 | |
| 277 | 277 |      public function admin_enqueue_scripts() { | 
                                                        
| 278 | 278 | global $post, $pagenow;  | 
                                                        
| 279 | 279 | |
| 280 | 280 | $post_type = wpinv_admin_post_type();  | 
                                                        
| 281 | - $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';  | 
                                                        |
| 282 | - $page = isset( $_GET['page'] ) ? strtolower( $_GET['page'] ) : '';  | 
                                                        |
| 281 | +        $suffix     = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; | 
                                                        |
| 282 | + $page = isset($_GET['page']) ? strtolower($_GET['page']) : '';  | 
                                                        |
| 283 | 283 | |
| 284 | 284 | $jquery_ui_css = false;  | 
                                                        
| 285 | -        if ( ( $post_type == 'wpi_invoice' || $post_type == 'wpi_quote' || $post_type == 'wpi_discount' ) && ( $pagenow == 'post-new.php' || $pagenow == 'post.php' ) ) { | 
                                                        |
| 285 | +        if (($post_type == 'wpi_invoice' || $post_type == 'wpi_quote' || $post_type == 'wpi_discount') && ($pagenow == 'post-new.php' || $pagenow == 'post.php')) { | 
                                                        |
| 286 | 286 | $jquery_ui_css = true;  | 
                                                        
| 287 | -        } else if ( $page == 'wpinv-settings' || $page == 'wpinv-reports' ) { | 
                                                        |
| 287 | +        } else if ($page == 'wpinv-settings' || $page == 'wpinv-reports') { | 
                                                        |
| 288 | 288 | $jquery_ui_css = true;  | 
                                                        
| 289 | 289 | }  | 
                                                        
| 290 | -        if ( $jquery_ui_css ) { | 
                                                        |
| 291 | - wp_register_style( 'jquery-ui-css', WPINV_PLUGIN_URL . 'assets/css/jquery-ui' . $suffix . '.css', array(), '1.8.16' );  | 
                                                        |
| 292 | - wp_enqueue_style( 'jquery-ui-css' );  | 
                                                        |
| 290 | +        if ($jquery_ui_css) { | 
                                                        |
| 291 | +            wp_register_style('jquery-ui-css', WPINV_PLUGIN_URL . 'assets/css/jquery-ui' . $suffix . '.css', array(), '1.8.16'); | 
                                                        |
| 292 | +            wp_enqueue_style('jquery-ui-css'); | 
                                                        |
| 293 | 293 | }  | 
                                                        
| 294 | 294 | |
| 295 | - wp_register_style( 'wpinv_meta_box_style', WPINV_PLUGIN_URL . 'assets/css/meta-box.css', array(), WPINV_VERSION );  | 
                                                        |
| 296 | - wp_enqueue_style( 'wpinv_meta_box_style' );  | 
                                                        |
| 295 | +        wp_register_style('wpinv_meta_box_style', WPINV_PLUGIN_URL . 'assets/css/meta-box.css', array(), WPINV_VERSION); | 
                                                        |
| 296 | +        wp_enqueue_style('wpinv_meta_box_style'); | 
                                                        |
| 297 | 297 | |
| 298 | - wp_register_style( 'wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array(), WPINV_VERSION );  | 
                                                        |
| 299 | - wp_enqueue_style( 'wpinv_admin_style' );  | 
                                                        |
| 298 | +        wp_register_style('wpinv_admin_style', WPINV_PLUGIN_URL . 'assets/css/admin.css', array(), WPINV_VERSION); | 
                                                        |
| 299 | +        wp_enqueue_style('wpinv_admin_style'); | 
                                                        |
| 300 | 300 | |
| 301 | - $enqueue = ( $post_type == 'wpi_discount' || $post_type == 'wpi_invoice' && ( $pagenow == 'post-new.php' || $pagenow == 'post.php' ) );  | 
                                                        |
| 302 | -        if ( $page == 'wpinv-subscriptions' ) { | 
                                                        |
| 303 | - wp_enqueue_script( 'jquery-ui-datepicker' );  | 
                                                        |
| 301 | + $enqueue = ($post_type == 'wpi_discount' || $post_type == 'wpi_invoice' && ($pagenow == 'post-new.php' || $pagenow == 'post.php'));  | 
                                                        |
| 302 | +        if ($page == 'wpinv-subscriptions') { | 
                                                        |
| 303 | +            wp_enqueue_script('jquery-ui-datepicker'); | 
                                                        |
| 304 | 304 | }  | 
                                                        
| 305 | 305 | |
| 306 | -        if ( $enqueue_datepicker = apply_filters( 'wpinv_admin_enqueue_jquery_ui_datepicker', $enqueue ) ) { | 
                                                        |
| 307 | - wp_enqueue_script( 'jquery-ui-datepicker' );  | 
                                                        |
| 306 | +        if ($enqueue_datepicker = apply_filters('wpinv_admin_enqueue_jquery_ui_datepicker', $enqueue)) { | 
                                                        |
| 307 | +            wp_enqueue_script('jquery-ui-datepicker'); | 
                                                        |
| 308 | 308 | }  | 
                                                        
| 309 | 309 | |
| 310 | - wp_enqueue_style( 'wp-color-picker' );  | 
                                                        |
| 311 | - wp_enqueue_script( 'wp-color-picker' );  | 
                                                        |
| 310 | +        wp_enqueue_style('wp-color-picker'); | 
                                                        |
| 311 | +        wp_enqueue_script('wp-color-picker'); | 
                                                        |
| 312 | 312 | |
| 313 | - wp_register_script( 'jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array( 'jquery' ), '2.70', true );  | 
                                                        |
| 313 | +        wp_register_script('jquery-blockui', WPINV_PLUGIN_URL . 'assets/js/jquery.blockUI.min.js', array('jquery'), '2.70', true); | 
                                                        |
| 314 | 314 | |
| 315 | 315 |          if (($post_type == 'wpi_invoice' || $post_type == 'wpi_quote') && ($pagenow == 'post-new.php' || $pagenow == 'post.php')) { | 
                                                        
| 316 | 316 |              $autofill_api = wpinv_get_option('address_autofill_api'); | 
                                                        
@@ -321,20 +321,20 @@ discard block  | 
                                                    ||
| 321 | 321 | }  | 
                                                        
| 322 | 322 | }  | 
                                                        
| 323 | 323 | |
| 324 | - wp_enqueue_style( "select2", WPINV_PLUGIN_URL . 'assets/css/select2/select2.css', array(), WPINV_VERSION, 'all' );  | 
                                                        |
| 325 | -        wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full' . $suffix . '.js', array( 'jquery' ), WPINV_VERSION ); | 
                                                        |
| 324 | +        wp_enqueue_style("select2", WPINV_PLUGIN_URL . 'assets/css/select2/select2.css', array(), WPINV_VERSION, 'all'); | 
                                                        |
| 325 | +        wp_enqueue_script('select2', WPINV_PLUGIN_URL . 'assets/js/select2/select2.full' . $suffix . '.js', array('jquery'), WPINV_VERSION); | 
                                                        |
| 326 | 326 | |
| 327 | - wp_register_script( 'wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array( 'jquery', 'jquery-blockui','jquery-ui-tooltip' ), WPINV_VERSION );  | 
                                                        |
| 328 | - wp_enqueue_script( 'wpinv-admin-script' );  | 
                                                        |
| 327 | +        wp_register_script('wpinv-admin-script', WPINV_PLUGIN_URL . 'assets/js/admin.js', array('jquery', 'jquery-blockui', 'jquery-ui-tooltip'), WPINV_VERSION); | 
                                                        |
| 328 | +        wp_enqueue_script('wpinv-admin-script'); | 
                                                        |
| 329 | 329 | |
| 330 | 330 | $localize = array();  | 
                                                        
| 331 | - $localize['ajax_url'] = admin_url( 'admin-ajax.php' );  | 
                                                        |
| 332 | - $localize['post_ID'] = isset( $post->ID ) ? $post->ID : '';  | 
                                                        |
| 333 | - $localize['wpinv_nonce'] = wp_create_nonce( 'wpinv-nonce' );  | 
                                                        |
| 334 | - $localize['add_invoice_note_nonce'] = wp_create_nonce( 'add-invoice-note' );  | 
                                                        |
| 335 | - $localize['delete_invoice_note_nonce'] = wp_create_nonce( 'delete-invoice-note' );  | 
                                                        |
| 336 | - $localize['invoice_item_nonce'] = wp_create_nonce( 'invoice-item' );  | 
                                                        |
| 337 | - $localize['billing_details_nonce'] = wp_create_nonce( 'get-billing-details' );  | 
                                                        |
| 331 | +        $localize['ajax_url']                   = admin_url('admin-ajax.php'); | 
                                                        |
| 332 | + $localize['post_ID'] = isset($post->ID) ? $post->ID : '';  | 
                                                        |
| 333 | +        $localize['wpinv_nonce']                = wp_create_nonce('wpinv-nonce'); | 
                                                        |
| 334 | +        $localize['add_invoice_note_nonce']     = wp_create_nonce('add-invoice-note'); | 
                                                        |
| 335 | +        $localize['delete_invoice_note_nonce']  = wp_create_nonce('delete-invoice-note'); | 
                                                        |
| 336 | +        $localize['invoice_item_nonce']         = wp_create_nonce('invoice-item'); | 
                                                        |
| 337 | +        $localize['billing_details_nonce']      = wp_create_nonce('get-billing-details'); | 
                                                        |
| 338 | 338 | $localize['tax'] = wpinv_tax_amount();  | 
                                                        
| 339 | 339 | $localize['discount'] = wpinv_discount_amount();  | 
                                                        
| 340 | 340 | $localize['currency_symbol'] = wpinv_currency_symbol();  | 
                                                        
@@ -342,69 +342,69 @@ discard block  | 
                                                    ||
| 342 | 342 | $localize['thousand_sep'] = wpinv_thousands_separator();  | 
                                                        
| 343 | 343 | $localize['decimal_sep'] = wpinv_decimal_separator();  | 
                                                        
| 344 | 344 | $localize['decimals'] = wpinv_decimals();  | 
                                                        
| 345 | - $localize['save_invoice'] = __( 'Save Invoice', 'invoicing' );  | 
                                                        |
| 346 | - $localize['status_publish'] = wpinv_status_nicename( 'publish' );  | 
                                                        |
| 347 | - $localize['status_pending'] = wpinv_status_nicename( 'wpi-pending' );  | 
                                                        |
| 348 | - $localize['delete_tax_rate'] = __( 'Are you sure you wish to delete this tax rate?', 'invoicing' );  | 
                                                        |
| 349 | - $localize['OneItemMin'] = __( 'Invoice must contain at least one item', 'invoicing' );  | 
                                                        |
| 350 | - $localize['DeleteInvoiceItem'] = __( 'Are you sure you wish to delete this item?', 'invoicing' );  | 
                                                        |
| 351 | - $localize['FillBillingDetails'] = __( 'Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing' );  | 
                                                        |
| 352 | - $localize['confirmCalcTotals'] = __( 'Recalculate totals? This will recalculate totals based on the user billing country. If no billing country is set it will use the base country.', 'invoicing' );  | 
                                                        |
| 353 | - $localize['AreYouSure'] = __( 'Are you sure?', 'invoicing' );  | 
                                                        |
| 354 | - $localize['emptyInvoice'] = __( 'Add at least one item to save invoice!', 'invoicing' );  | 
                                                        |
| 355 | - $localize['errDeleteItem'] = __( 'This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing' );  | 
                                                        |
| 356 | - $localize['delete_subscription'] = __( 'Are you sure you want to delete this subscription?', 'invoicing' );  | 
                                                        |
| 357 | - $localize['action_edit'] = __( 'Edit', 'invoicing' );  | 
                                                        |
| 358 | - $localize['action_cancel'] = __( 'Cancel', 'invoicing' );  | 
                                                        |
| 359 | -  | 
                                                        |
| 360 | - $localize = apply_filters( 'wpinv_admin_js_localize', $localize );  | 
                                                        |
| 361 | -  | 
                                                        |
| 362 | - wp_localize_script( 'wpinv-admin-script', 'WPInv_Admin', $localize );  | 
                                                        |
| 363 | -  | 
                                                        |
| 364 | -        if ( $page == 'wpinv-subscriptions' ) { | 
                                                        |
| 365 | - wp_register_script( 'wpinv-sub-admin-script', WPINV_PLUGIN_URL . 'assets/js/subscriptions.js', array( 'wpinv-admin-script' ), WPINV_VERSION );  | 
                                                        |
| 366 | - wp_enqueue_script( 'wpinv-sub-admin-script' );  | 
                                                        |
| 345 | +        $localize['save_invoice']               = __('Save Invoice', 'invoicing'); | 
                                                        |
| 346 | +        $localize['status_publish']             = wpinv_status_nicename('publish'); | 
                                                        |
| 347 | +        $localize['status_pending']             = wpinv_status_nicename('wpi-pending'); | 
                                                        |
| 348 | +        $localize['delete_tax_rate']            = __('Are you sure you wish to delete this tax rate?', 'invoicing'); | 
                                                        |
| 349 | +        $localize['OneItemMin']                 = __('Invoice must contain at least one item', 'invoicing'); | 
                                                        |
| 350 | +        $localize['DeleteInvoiceItem']          = __('Are you sure you wish to delete this item?', 'invoicing'); | 
                                                        |
| 351 | +        $localize['FillBillingDetails']         = __('Fill the user\'s billing information? This will remove any currently entered billing information', 'invoicing'); | 
                                                        |
| 352 | +        $localize['confirmCalcTotals']          = __('Recalculate totals? This will recalculate totals based on the user billing country. If no billing country is set it will use the base country.', 'invoicing'); | 
                                                        |
| 353 | +        $localize['AreYouSure']                 = __('Are you sure?', 'invoicing'); | 
                                                        |
| 354 | +        $localize['emptyInvoice']               = __('Add at least one item to save invoice!', 'invoicing'); | 
                                                        |
| 355 | +        $localize['errDeleteItem']              = __('This item is in use! Before delete this item, you need to delete all the invoice(s) using this item.', 'invoicing'); | 
                                                        |
| 356 | +        $localize['delete_subscription']        = __('Are you sure you want to delete this subscription?', 'invoicing'); | 
                                                        |
| 357 | +        $localize['action_edit']                = __('Edit', 'invoicing'); | 
                                                        |
| 358 | +        $localize['action_cancel']              = __('Cancel', 'invoicing'); | 
                                                        |
| 359 | +  | 
                                                        |
| 360 | +        $localize = apply_filters('wpinv_admin_js_localize', $localize); | 
                                                        |
| 361 | +  | 
                                                        |
| 362 | +        wp_localize_script('wpinv-admin-script', 'WPInv_Admin', $localize); | 
                                                        |
| 363 | +  | 
                                                        |
| 364 | +        if ($page == 'wpinv-subscriptions') { | 
                                                        |
| 365 | +            wp_register_script('wpinv-sub-admin-script', WPINV_PLUGIN_URL . 'assets/js/subscriptions.js', array('wpinv-admin-script'), WPINV_VERSION); | 
                                                        |
| 366 | +            wp_enqueue_script('wpinv-sub-admin-script'); | 
                                                        |
| 367 | 367 | }  | 
                                                        
| 368 | 368 | }  | 
                                                        
| 369 | 369 | |
| 370 | -    public function admin_body_class( $classes ) { | 
                                                        |
| 370 | +    public function admin_body_class($classes) { | 
                                                        |
| 371 | 371 | global $pagenow, $post, $current_screen;  | 
                                                        
| 372 | 372 | |
| 373 | -        if ( !empty( $current_screen->post_type ) && ( $current_screen->post_type == 'wpi_invoice' || $current_screen->post_type == 'wpi_quote' ) ) { | 
                                                        |
| 373 | +        if (!empty($current_screen->post_type) && ($current_screen->post_type == 'wpi_invoice' || $current_screen->post_type == 'wpi_quote')) { | 
                                                        |
| 374 | 374 | $classes .= ' wpinv-cpt';  | 
                                                        
| 375 | 375 | }  | 
                                                        
| 376 | 376 | |
| 377 | - $page = isset( $_GET['page'] ) ? strtolower( $_GET['page'] ) : false;  | 
                                                        |
| 377 | + $page = isset($_GET['page']) ? strtolower($_GET['page']) : false;  | 
                                                        |
| 378 | 378 | |
| 379 | - $add_class = $page && $pagenow == 'admin.php' && strpos( $page, 'wpinv-' ) === 0 ? true : false;  | 
                                                        |
| 380 | -        if ( $add_class ) { | 
                                                        |
| 381 | - $classes .= ' wpi-' . wpinv_sanitize_key( $page );  | 
                                                        |
| 379 | + $add_class = $page && $pagenow == 'admin.php' && strpos($page, 'wpinv-') === 0 ? true : false;  | 
                                                        |
| 380 | +        if ($add_class) { | 
                                                        |
| 381 | + $classes .= ' wpi-' . wpinv_sanitize_key($page);  | 
                                                        |
| 382 | 382 | }  | 
                                                        
| 383 | 383 | |
| 384 | 384 | $settings_class = array();  | 
                                                        
| 385 | -        if ( $page == 'wpinv-settings' ) { | 
                                                        |
| 386 | -            if ( !empty( $_REQUEST['tab'] ) ) { | 
                                                        |
| 387 | - $settings_class[] = sanitize_text_field( $_REQUEST['tab'] );  | 
                                                        |
| 385 | +        if ($page == 'wpinv-settings') { | 
                                                        |
| 386 | +            if (!empty($_REQUEST['tab'])) { | 
                                                        |
| 387 | + $settings_class[] = sanitize_text_field($_REQUEST['tab']);  | 
                                                        |
| 388 | 388 | }  | 
                                                        
| 389 | 389 | |
| 390 | -            if ( !empty( $_REQUEST['section'] ) ) { | 
                                                        |
| 391 | - $settings_class[] = sanitize_text_field( $_REQUEST['section'] );  | 
                                                        |
| 390 | +            if (!empty($_REQUEST['section'])) { | 
                                                        |
| 391 | + $settings_class[] = sanitize_text_field($_REQUEST['section']);  | 
                                                        |
| 392 | 392 | }  | 
                                                        
| 393 | 393 | |
| 394 | - $settings_class[] = isset( $_REQUEST['wpi_sub'] ) && $_REQUEST['wpi_sub'] !== '' ? sanitize_text_field( $_REQUEST['wpi_sub'] ) : 'main';  | 
                                                        |
| 394 | + $settings_class[] = isset($_REQUEST['wpi_sub']) && $_REQUEST['wpi_sub'] !== '' ? sanitize_text_field($_REQUEST['wpi_sub']) : 'main';  | 
                                                        |
| 395 | 395 | }  | 
                                                        
| 396 | 396 | |
| 397 | -        if ( !empty( $settings_class ) ) { | 
                                                        |
| 398 | - $classes .= ' wpi-' . wpinv_sanitize_key( implode( $settings_class, '-' ) );  | 
                                                        |
| 397 | +        if (!empty($settings_class)) { | 
                                                        |
| 398 | + $classes .= ' wpi-' . wpinv_sanitize_key(implode($settings_class, '-'));  | 
                                                        |
| 399 | 399 | }  | 
                                                        
| 400 | 400 | |
| 401 | 401 | $post_type = wpinv_admin_post_type();  | 
                                                        
| 402 | 402 | |
| 403 | -        if ( $post_type == 'wpi_invoice' || $post_type == 'wpi_quote' || $add_class !== false ) { | 
                                                        |
| 403 | +        if ($post_type == 'wpi_invoice' || $post_type == 'wpi_quote' || $add_class !== false) { | 
                                                        |
| 404 | 404 | return $classes .= ' wpinv';  | 
                                                        
| 405 | 405 | }  | 
                                                        
| 406 | 406 | |
| 407 | -        if ( $pagenow == 'post.php' && $post_type == 'wpi_item' && !empty( $post ) && !wpinv_item_is_editable( $post ) ) { | 
                                                        |
| 407 | +        if ($pagenow == 'post.php' && $post_type == 'wpi_item' && !empty($post) && !wpinv_item_is_editable($post)) { | 
                                                        |
| 408 | 408 | $classes .= ' wpi-editable-n';  | 
                                                        
| 409 | 409 | }  | 
                                                        
| 410 | 410 | |
@@ -416,21 +416,21 @@ discard block  | 
                                                    ||
| 416 | 416 | }  | 
                                                        
| 417 | 417 | |
| 418 | 418 |      public function wpinv_actions() { | 
                                                        
| 419 | -        if ( isset( $_REQUEST['wpi_action'] ) ) { | 
                                                        |
| 420 | - do_action( 'wpinv_' . wpinv_sanitize_key( $_REQUEST['wpi_action'] ), $_REQUEST );  | 
                                                        |
| 419 | +        if (isset($_REQUEST['wpi_action'])) { | 
                                                        |
| 420 | +            do_action('wpinv_' . wpinv_sanitize_key($_REQUEST['wpi_action']), $_REQUEST); | 
                                                        |
| 421 | 421 | }  | 
                                                        
| 422 | 422 | }  | 
                                                        
| 423 | 423 | |
| 424 | -    public function pre_get_posts( $wp_query ) { | 
                                                        |
| 425 | -        if ( !empty( $wp_query->query_vars['post_type'] ) && $wp_query->query_vars['post_type'] == 'wpi_invoice' && is_user_logged_in() && is_single() && $wp_query->is_main_query() ) { | 
                                                        |
| 426 | - $wp_query->query_vars['post_status'] = array_keys( wpinv_get_invoice_statuses() );  | 
                                                        |
| 424 | +    public function pre_get_posts($wp_query) { | 
                                                        |
| 425 | +        if (!empty($wp_query->query_vars['post_type']) && $wp_query->query_vars['post_type'] == 'wpi_invoice' && is_user_logged_in() && is_single() && $wp_query->is_main_query()) { | 
                                                        |
| 426 | + $wp_query->query_vars['post_status'] = array_keys(wpinv_get_invoice_statuses());  | 
                                                        |
| 427 | 427 | }  | 
                                                        
| 428 | 428 | |
| 429 | 429 | return $wp_query;  | 
                                                        
| 430 | 430 | }  | 
                                                        
| 431 | 431 | |
| 432 | 432 |      public function bp_invoicing_init() { | 
                                                        
| 433 | - require_once( WPINV_PLUGIN_DIR . 'includes/class-wpinv-bp-core.php' );  | 
                                                        |
| 433 | + require_once(WPINV_PLUGIN_DIR . 'includes/class-wpinv-bp-core.php');  | 
                                                        |
| 434 | 434 | }  | 
                                                        
| 435 | 435 | |
| 436 | 436 | /**  | 
                                                        
@@ -438,11 +438,11 @@ discard block  | 
                                                    ||
| 438 | 438 | *  | 
                                                        
| 439 | 439 | */  | 
                                                        
| 440 | 440 |  	public function register_widgets() { | 
                                                        
| 441 | - register_widget( "WPInv_Checkout_Widget" );  | 
                                                        |
| 442 | - register_widget( "WPInv_History_Widget" );  | 
                                                        |
| 443 | - register_widget( "WPInv_Receipt_Widget" );  | 
                                                        |
| 444 | - register_widget( "WPInv_Subscriptions_Widget" );  | 
                                                        |
| 445 | - register_widget( "WPInv_Buy_Item_Widget" );  | 
                                                        |
| 446 | - register_widget( "WPInv_Messages_Widget" );  | 
                                                        |
| 441 | +		register_widget("WPInv_Checkout_Widget"); | 
                                                        |
| 442 | +		register_widget("WPInv_History_Widget"); | 
                                                        |
| 443 | +		register_widget("WPInv_Receipt_Widget"); | 
                                                        |
| 444 | +		register_widget("WPInv_Subscriptions_Widget"); | 
                                                        |
| 445 | +		register_widget("WPInv_Buy_Item_Widget"); | 
                                                        |
| 446 | +		register_widget("WPInv_Messages_Widget"); | 
                                                        |
| 447 | 447 | }  | 
                                                        
| 448 | 448 | }  | 
                                                        
| 449 | 449 | \ No newline at end of file  | 
                                                        
@@ -1,67 +1,67 @@ discard block  | 
                                                    ||
| 1 | 1 | <?php  | 
                                                        
| 2 | 2 | // MUST have WordPress.  | 
                                                        
| 3 | -if ( !defined( 'WPINC' ) ) { | 
                                                        |
| 4 | - exit( 'Do NOT access this file directly: ' . basename( __FILE__ ) );  | 
                                                        |
| 3 | +if (!defined('WPINC')) { | 
                                                        |
| 4 | +    exit('Do NOT access this file directly: ' . basename(__FILE__)); | 
                                                        |
| 5 | 5 | }  | 
                                                        
| 6 | 6 | |
| 7 | -function wpinv_add_meta_boxes( $post_type, $post ) { | 
                                                        |
| 7 | +function wpinv_add_meta_boxes($post_type, $post) { | 
                                                        |
| 8 | 8 | global $wpi_mb_invoice;  | 
                                                        
| 9 | -    if ( $post_type == 'wpi_invoice' && !empty( $post->ID ) ) { | 
                                                        |
| 10 | - $wpi_mb_invoice = wpinv_get_invoice( $post->ID );  | 
                                                        |
| 9 | +    if ($post_type == 'wpi_invoice' && !empty($post->ID)) { | 
                                                        |
| 10 | + $wpi_mb_invoice = wpinv_get_invoice($post->ID);  | 
                                                        |
| 11 | 11 | }  | 
                                                        
| 12 | 12 | |
| 13 | -    if ( !empty( $wpi_mb_invoice ) && !$wpi_mb_invoice->has_status( array( 'draft', 'auto-draft' ) ) ) { | 
                                                        |
| 14 | - add_meta_box( 'wpinv-mb-resend-invoice', __( 'Resend Invoice', 'invoicing' ), 'WPInv_Meta_Box_Details::resend_invoice', 'wpi_invoice', 'side', 'high' );  | 
                                                        |
| 13 | +    if (!empty($wpi_mb_invoice) && !$wpi_mb_invoice->has_status(array('draft', 'auto-draft'))) { | 
                                                        |
| 14 | +        add_meta_box('wpinv-mb-resend-invoice', __('Resend Invoice', 'invoicing'), 'WPInv_Meta_Box_Details::resend_invoice', 'wpi_invoice', 'side', 'high'); | 
                                                        |
| 15 | 15 | }  | 
                                                        
| 16 | 16 | |
| 17 | -    if ( !empty( $wpi_mb_invoice ) && $wpi_mb_invoice->is_recurring() && $wpi_mb_invoice->is_parent() ) { | 
                                                        |
| 18 | - add_meta_box( 'wpinv-mb-subscriptions', __( 'Subscriptions', 'invoicing' ), 'WPInv_Meta_Box_Details::subscriptions', 'wpi_invoice', 'side', 'high' );  | 
                                                        |
| 17 | +    if (!empty($wpi_mb_invoice) && $wpi_mb_invoice->is_recurring() && $wpi_mb_invoice->is_parent()) { | 
                                                        |
| 18 | +        add_meta_box('wpinv-mb-subscriptions', __('Subscriptions', 'invoicing'), 'WPInv_Meta_Box_Details::subscriptions', 'wpi_invoice', 'side', 'high'); | 
                                                        |
| 19 | 19 | }  | 
                                                        
| 20 | 20 | |
| 21 | -    if ( wpinv_is_subscription_payment( $wpi_mb_invoice ) ) { | 
                                                        |
| 22 | - add_meta_box( 'wpinv-mb-renewals', __( 'Renewal Payment', 'invoicing' ), 'WPInv_Meta_Box_Details::renewals', 'wpi_invoice', 'side', 'high' );  | 
                                                        |
| 21 | +    if (wpinv_is_subscription_payment($wpi_mb_invoice)) { | 
                                                        |
| 22 | +        add_meta_box('wpinv-mb-renewals', __('Renewal Payment', 'invoicing'), 'WPInv_Meta_Box_Details::renewals', 'wpi_invoice', 'side', 'high'); | 
                                                        |
| 23 | 23 | }  | 
                                                        
| 24 | 24 | |
| 25 | - add_meta_box( 'wpinv-details', __( 'Invoice Details', 'invoicing' ), 'WPInv_Meta_Box_Details::output', 'wpi_invoice', 'side', 'default' );  | 
                                                        |
| 26 | - add_meta_box( 'wpinv-payment-meta', __( 'Payment Meta', 'invoicing' ), 'WPInv_Meta_Box_Details::payment_meta', 'wpi_invoice', 'side', 'default' );  | 
                                                        |
| 25 | +    add_meta_box('wpinv-details', __('Invoice Details', 'invoicing'), 'WPInv_Meta_Box_Details::output', 'wpi_invoice', 'side', 'default'); | 
                                                        |
| 26 | +    add_meta_box('wpinv-payment-meta', __('Payment Meta', 'invoicing'), 'WPInv_Meta_Box_Details::payment_meta', 'wpi_invoice', 'side', 'default'); | 
                                                        |
| 27 | 27 | |
| 28 | - add_meta_box( 'wpinv-address', __( 'Billing Details', 'invoicing' ), 'WPInv_Meta_Box_Billing_Details::output', 'wpi_invoice', 'normal', 'high' );  | 
                                                        |
| 29 | - add_meta_box( 'wpinv-items', __( 'Invoice Items', 'invoicing' ), 'WPInv_Meta_Box_Items::output', 'wpi_invoice', 'normal', 'high' );  | 
                                                        |
| 30 | - add_meta_box( 'wpinv-notes', __( 'Invoice Notes', 'invoicing' ), 'WPInv_Meta_Box_Notes::output', 'wpi_invoice', 'normal', 'high' );  | 
                                                        |
| 28 | +    add_meta_box('wpinv-address', __('Billing Details', 'invoicing'), 'WPInv_Meta_Box_Billing_Details::output', 'wpi_invoice', 'normal', 'high'); | 
                                                        |
| 29 | +    add_meta_box('wpinv-items', __('Invoice Items', 'invoicing'), 'WPInv_Meta_Box_Items::output', 'wpi_invoice', 'normal', 'high'); | 
                                                        |
| 30 | +    add_meta_box('wpinv-notes', __('Invoice Notes', 'invoicing'), 'WPInv_Meta_Box_Notes::output', 'wpi_invoice', 'normal', 'high'); | 
                                                        |
| 31 | 31 | |
| 32 | 32 |  	remove_meta_box('wpseo_meta', 'wpi_invoice', 'normal'); | 
                                                        
| 33 | 33 | }  | 
                                                        
| 34 | -add_action( 'add_meta_boxes', 'wpinv_add_meta_boxes', 30, 2 );  | 
                                                        |
| 34 | +add_action('add_meta_boxes', 'wpinv_add_meta_boxes', 30, 2); | 
                                                        |
| 35 | 35 | |
| 36 | -function wpinv_save_meta_boxes( $post_id, $post, $update = false ) { | 
                                                        |
| 37 | - remove_action( 'save_post', __FUNCTION__ );  | 
                                                        |
| 36 | +function wpinv_save_meta_boxes($post_id, $post, $update = false) { | 
                                                        |
| 37 | +    remove_action('save_post', __FUNCTION__); | 
                                                        |
| 38 | 38 | |
| 39 | 39 | // $post_id and $post are required  | 
                                                        
| 40 | -    if ( empty( $post_id ) || empty( $post ) ) { | 
                                                        |
| 40 | +    if (empty($post_id) || empty($post)) { | 
                                                        |
| 41 | 41 | return;  | 
                                                        
| 42 | 42 | }  | 
                                                        
| 43 | 43 | |
| 44 | -    if ( !current_user_can( 'edit_post', $post_id ) || empty( $post->post_type ) ) { | 
                                                        |
| 44 | +    if (!current_user_can('edit_post', $post_id) || empty($post->post_type)) { | 
                                                        |
| 45 | 45 | return;  | 
                                                        
| 46 | 46 | }  | 
                                                        
| 47 | 47 | |
| 48 | 48 | // Dont' save meta boxes for revisions or autosaves  | 
                                                        
| 49 | -    if ( defined( 'DOING_AUTOSAVE' ) || is_int( wp_is_post_revision( $post ) ) || is_int( wp_is_post_autosave( $post ) ) ) { | 
                                                        |
| 49 | +    if (defined('DOING_AUTOSAVE') || is_int(wp_is_post_revision($post)) || is_int(wp_is_post_autosave($post))) { | 
                                                        |
| 50 | 50 | return;  | 
                                                        
| 51 | 51 | }  | 
                                                        
| 52 | 52 | |
| 53 | -    if ( $post->post_type == 'wpi_invoice' or $post->post_type == 'wpi_quote' ) { | 
                                                        |
| 54 | -        if ( ( defined( 'DOING_AJAX') && DOING_AJAX ) || isset( $_REQUEST['bulk_edit'] ) ) { | 
                                                        |
| 53 | +    if ($post->post_type == 'wpi_invoice' or $post->post_type == 'wpi_quote') { | 
                                                        |
| 54 | +        if ((defined('DOING_AJAX') && DOING_AJAX) || isset($_REQUEST['bulk_edit'])) { | 
                                                        |
| 55 | 55 | return;  | 
                                                        
| 56 | 56 | }  | 
                                                        
| 57 | 57 | |
| 58 | -        if ( isset( $_POST['wpinv_save_invoice'] ) && wp_verify_nonce( $_POST['wpinv_save_invoice'], 'wpinv_save_invoice' ) ) { | 
                                                        |
| 59 | - WPInv_Meta_Box_Items::save( $post_id, $_POST, $post );  | 
                                                        |
| 58 | +        if (isset($_POST['wpinv_save_invoice']) && wp_verify_nonce($_POST['wpinv_save_invoice'], 'wpinv_save_invoice')) { | 
                                                        |
| 59 | + WPInv_Meta_Box_Items::save($post_id, $_POST, $post);  | 
                                                        |
| 60 | 60 | }  | 
                                                        
| 61 | -    } else if ( $post->post_type == 'wpi_item' ) { | 
                                                        |
| 61 | +    } else if ($post->post_type == 'wpi_item') { | 
                                                        |
| 62 | 62 | // verify nonce  | 
                                                        
| 63 | -        if ( isset( $_POST['wpinv_vat_meta_box_nonce'] ) && wp_verify_nonce( $_POST['wpinv_vat_meta_box_nonce'], 'wpinv_item_meta_box_save' ) ) { | 
                                                        |
| 64 | - $fields = array();  | 
                                                        |
| 63 | +        if (isset($_POST['wpinv_vat_meta_box_nonce']) && wp_verify_nonce($_POST['wpinv_vat_meta_box_nonce'], 'wpinv_item_meta_box_save')) { | 
                                                        |
| 64 | + $fields = array();  | 
                                                        |
| 65 | 65 | $fields['_wpinv_price'] = 'wpinv_item_price';  | 
                                                        
| 66 | 66 | $fields['_wpinv_vat_class'] = 'wpinv_vat_class';  | 
                                                        
| 67 | 67 | $fields['_wpinv_vat_rule'] = 'wpinv_vat_rules';  | 
                                                        
@@ -76,96 +76,96 @@ discard block  | 
                                                    ||
| 76 | 76 | $fields['_wpinv_dynamic_pricing'] = 'wpinv_name_your_price';  | 
                                                        
| 77 | 77 | $fields['_minimum_price'] = 'wpinv_minimum_price';  | 
                                                        
| 78 | 78 | |
| 79 | -            if ( !isset( $_POST['wpinv_is_recurring'] ) ) { | 
                                                        |
| 79 | +            if (!isset($_POST['wpinv_is_recurring'])) { | 
                                                        |
| 80 | 80 | $_POST['wpinv_is_recurring'] = 0;  | 
                                                        
| 81 | 81 | }  | 
                                                        
| 82 | 82 | |
| 83 | -            if ( !isset( $_POST['wpinv_name_your_price'] ) ) { | 
                                                        |
| 83 | +            if (!isset($_POST['wpinv_name_your_price'])) { | 
                                                        |
| 84 | 84 | $_POST['wpinv_name_your_price'] = 0;  | 
                                                        
| 85 | 85 | }  | 
                                                        
| 86 | 86 | |
| 87 | -            if ( !isset( $_POST['wpinv_free_trial'] ) || empty( $_POST['wpinv_is_recurring'] ) ) { | 
                                                        |
| 87 | +            if (!isset($_POST['wpinv_free_trial']) || empty($_POST['wpinv_is_recurring'])) { | 
                                                        |
| 88 | 88 | $_POST['wpinv_free_trial'] = 0;  | 
                                                        
| 89 | 89 | }  | 
                                                        
| 90 | 90 | |
| 91 | -            foreach ( $fields as $field => $name ) { | 
                                                        |
| 92 | -                if ( isset( $_POST[ $name ] ) ) { | 
                                                        |
| 93 | - $allowed = apply_filters( 'wpinv_item_allowed_save_meta_value', true, $field, $post_id );  | 
                                                        |
| 91 | +            foreach ($fields as $field => $name) { | 
                                                        |
| 92 | +                if (isset($_POST[$name])) { | 
                                                        |
| 93 | +                    $allowed = apply_filters('wpinv_item_allowed_save_meta_value', true, $field, $post_id); | 
                                                        |
| 94 | 94 | |
| 95 | -                    if ( !$allowed ) { | 
                                                        |
| 95 | +                    if (!$allowed) { | 
                                                        |
| 96 | 96 | continue;  | 
                                                        
| 97 | 97 | }  | 
                                                        
| 98 | 98 | |
| 99 | -                    if ( $field == '_wpinv_price' ) { | 
                                                        |
| 100 | - $value = wpinv_sanitize_amount( $_POST[ $name ] );  | 
                                                        |
| 99 | +                    if ($field == '_wpinv_price') { | 
                                                        |
| 100 | + $value = wpinv_sanitize_amount($_POST[$name]);  | 
                                                        |
| 101 | 101 |                      } else { | 
                                                        
| 102 | - $value = is_string( $_POST[ $name ] ) ? sanitize_text_field( $_POST[ $name ] ) : $_POST[ $name ];  | 
                                                        |
| 102 | + $value = is_string($_POST[$name]) ? sanitize_text_field($_POST[$name]) : $_POST[$name];  | 
                                                        |
| 103 | 103 | }  | 
                                                        
| 104 | 104 | |
| 105 | - $value = apply_filters( 'wpinv_item_metabox_save_' . $field, $value, $name );  | 
                                                        |
| 106 | - update_post_meta( $post_id, $field, $value );  | 
                                                        |
| 105 | +                    $value = apply_filters('wpinv_item_metabox_save_' . $field, $value, $name); | 
                                                        |
| 106 | + update_post_meta($post_id, $field, $value);  | 
                                                        |
| 107 | 107 | }  | 
                                                        
| 108 | 108 | }  | 
                                                        
| 109 | 109 | |
| 110 | -            if ( !get_post_meta( $post_id, '_wpinv_custom_id', true ) ) { | 
                                                        |
| 111 | - update_post_meta( $post_id, '_wpinv_custom_id', $post_id );  | 
                                                        |
| 110 | +            if (!get_post_meta($post_id, '_wpinv_custom_id', true)) { | 
                                                        |
| 111 | + update_post_meta($post_id, '_wpinv_custom_id', $post_id);  | 
                                                        |
| 112 | 112 | }  | 
                                                        
| 113 | 113 | }  | 
                                                        
| 114 | 114 | }  | 
                                                        
| 115 | 115 | }  | 
                                                        
| 116 | -add_action( 'save_post', 'wpinv_save_meta_boxes', 10, 3 );  | 
                                                        |
| 116 | +add_action('save_post', 'wpinv_save_meta_boxes', 10, 3); | 
                                                        |
| 117 | 117 | |
| 118 | 118 |  function wpinv_register_item_meta_boxes() {     | 
                                                        
| 119 | 119 | global $wpinv_euvat;  | 
                                                        
| 120 | 120 | |
| 121 | - add_meta_box( 'wpinv_field_prices', __( 'Item Price', 'invoicing' ), 'WPInv_Meta_Box_Items::prices', 'wpi_item', 'normal', 'high' );  | 
                                                        |
| 121 | +    add_meta_box('wpinv_field_prices', __('Item Price', 'invoicing'), 'WPInv_Meta_Box_Items::prices', 'wpi_item', 'normal', 'high'); | 
                                                        |
| 122 | 122 | |
| 123 | -    if ( $wpinv_euvat->allow_vat_rules() ) { | 
                                                        |
| 124 | - add_meta_box( 'wpinv_field_vat_rules', __( 'VAT rules type to use', 'invoicing' ), 'WPInv_Meta_Box_Items::vat_rules', 'wpi_item', 'normal', 'high' );  | 
                                                        |
| 123 | +    if ($wpinv_euvat->allow_vat_rules()) { | 
                                                        |
| 124 | +        add_meta_box('wpinv_field_vat_rules', __('VAT rules type to use', 'invoicing'), 'WPInv_Meta_Box_Items::vat_rules', 'wpi_item', 'normal', 'high'); | 
                                                        |
| 125 | 125 | }  | 
                                                        
| 126 | 126 | |
| 127 | -    if ( $wpinv_euvat->allow_vat_classes() ) { | 
                                                        |
| 128 | - add_meta_box( 'wpinv_field_vat_classes', __( 'VAT rates class to use', 'invoicing' ), 'WPInv_Meta_Box_Items::vat_classes', 'wpi_item', 'normal', 'high' );  | 
                                                        |
| 127 | +    if ($wpinv_euvat->allow_vat_classes()) { | 
                                                        |
| 128 | +        add_meta_box('wpinv_field_vat_classes', __('VAT rates class to use', 'invoicing'), 'WPInv_Meta_Box_Items::vat_classes', 'wpi_item', 'normal', 'high'); | 
                                                        |
| 129 | 129 | }  | 
                                                        
| 130 | 130 | |
| 131 | - add_meta_box( 'wpinv_field_item_info', __( 'Item info', 'invoicing' ), 'WPInv_Meta_Box_Items::item_info', 'wpi_item', 'side', 'core' );  | 
                                                        |
| 132 | - add_meta_box( 'wpinv_field_meta_values', __( 'Item Meta Values', 'invoicing' ), 'WPInv_Meta_Box_Items::meta_values', 'wpi_item', 'side', 'core' );  | 
                                                        |
| 131 | +    add_meta_box('wpinv_field_item_info', __('Item info', 'invoicing'), 'WPInv_Meta_Box_Items::item_info', 'wpi_item', 'side', 'core'); | 
                                                        |
| 132 | +    add_meta_box('wpinv_field_meta_values', __('Item Meta Values', 'invoicing'), 'WPInv_Meta_Box_Items::meta_values', 'wpi_item', 'side', 'core'); | 
                                                        |
| 133 | 133 | }  | 
                                                        
| 134 | 134 | |
| 135 | 135 |  function wpinv_register_discount_meta_boxes() { | 
                                                        
| 136 | - add_meta_box( 'wpinv_discount_fields', __( 'Discount Details', 'invoicing' ), 'wpinv_discount_metabox_details', 'wpi_discount', 'normal', 'high' );  | 
                                                        |
| 136 | +    add_meta_box('wpinv_discount_fields', __('Discount Details', 'invoicing'), 'wpinv_discount_metabox_details', 'wpi_discount', 'normal', 'high'); | 
                                                        |
| 137 | 137 | }  | 
                                                        
| 138 | 138 | |
| 139 | -function wpinv_discount_metabox_details( $post ) { | 
                                                        |
| 139 | +function wpinv_discount_metabox_details($post) { | 
                                                        |
| 140 | 140 | $discount_id = $post->ID;  | 
                                                        
| 141 | - $discount = wpinv_get_discount( $discount_id );  | 
                                                        |
| 141 | + $discount = wpinv_get_discount($discount_id);  | 
                                                        |
| 142 | 142 | |
| 143 | - $type = wpinv_get_discount_type( $discount_id );  | 
                                                        |
| 144 | - $item_reqs = wpinv_get_discount_item_reqs( $discount_id );  | 
                                                        |
| 145 | - $excluded_items = wpinv_get_discount_excluded_items( $discount_id );  | 
                                                        |
| 146 | - $min_total = wpinv_get_discount_min_total( $discount_id );  | 
                                                        |
| 147 | - $max_total = wpinv_get_discount_max_total( $discount_id );  | 
                                                        |
| 148 | - $max_uses = wpinv_get_discount_max_uses( $discount_id );  | 
                                                        |
| 149 | - $single_use = wpinv_discount_is_single_use( $discount_id );  | 
                                                        |
| 150 | - $recurring = (bool)wpinv_discount_is_recurring( $discount_id );  | 
                                                        |
| 151 | - $start_date = wpinv_get_discount_start_date( $discount_id );  | 
                                                        |
| 152 | - $expiration_date = wpinv_get_discount_expiration( $discount_id );  | 
                                                        |
| 143 | + $type = wpinv_get_discount_type($discount_id);  | 
                                                        |
| 144 | + $item_reqs = wpinv_get_discount_item_reqs($discount_id);  | 
                                                        |
| 145 | + $excluded_items = wpinv_get_discount_excluded_items($discount_id);  | 
                                                        |
| 146 | + $min_total = wpinv_get_discount_min_total($discount_id);  | 
                                                        |
| 147 | + $max_total = wpinv_get_discount_max_total($discount_id);  | 
                                                        |
| 148 | + $max_uses = wpinv_get_discount_max_uses($discount_id);  | 
                                                        |
| 149 | + $single_use = wpinv_discount_is_single_use($discount_id);  | 
                                                        |
| 150 | + $recurring = (bool) wpinv_discount_is_recurring($discount_id);  | 
                                                        |
| 151 | + $start_date = wpinv_get_discount_start_date($discount_id);  | 
                                                        |
| 152 | + $expiration_date = wpinv_get_discount_expiration($discount_id);  | 
                                                        |
| 153 | 153 | |
| 154 | -    if ( ! empty( $start_date ) && strpos( $start_date, '0000' ) === false ) { | 
                                                        |
| 155 | - $start_time = strtotime( $start_date );  | 
                                                        |
| 156 | - $start_h = date_i18n( 'H', $start_time );  | 
                                                        |
| 157 | - $start_m = date_i18n( 'i', $start_time );  | 
                                                        |
| 158 | - $start_date = date_i18n( 'Y-m-d', $start_time );  | 
                                                        |
| 154 | +    if (!empty($start_date) && strpos($start_date, '0000') === false) { | 
                                                        |
| 155 | + $start_time = strtotime($start_date);  | 
                                                        |
| 156 | +        $start_h            = date_i18n('H', $start_time); | 
                                                        |
| 157 | +        $start_m            = date_i18n('i', $start_time); | 
                                                        |
| 158 | +        $start_date         = date_i18n('Y-m-d', $start_time); | 
                                                        |
| 159 | 159 |      } else { | 
                                                        
| 160 | 160 | $start_h = '00';  | 
                                                        
| 161 | 161 | $start_m = '00';  | 
                                                        
| 162 | 162 | }  | 
                                                        
| 163 | 163 | |
| 164 | -    if ( ! empty( $expiration_date ) && strpos( $expiration_date, '0000' ) === false ) { | 
                                                        |
| 165 | - $expiration_time = strtotime( $expiration_date );  | 
                                                        |
| 166 | - $expiration_h = date_i18n( 'H', $expiration_time );  | 
                                                        |
| 167 | - $expiration_m = date_i18n( 'i', $expiration_time );  | 
                                                        |
| 168 | - $expiration_date = date_i18n( 'Y-m-d', $expiration_time );  | 
                                                        |
| 164 | +    if (!empty($expiration_date) && strpos($expiration_date, '0000') === false) { | 
                                                        |
| 165 | + $expiration_time = strtotime($expiration_date);  | 
                                                        |
| 166 | +        $expiration_h       = date_i18n('H', $expiration_time); | 
                                                        |
| 167 | +        $expiration_m       = date_i18n('i', $expiration_time); | 
                                                        |
| 168 | +        $expiration_date    = date_i18n('Y-m-d', $expiration_time); | 
                                                        |
| 169 | 169 |      } else { | 
                                                        
| 170 | 170 | $expiration_h = '23';  | 
                                                        
| 171 | 171 | $expiration_m = '59';  | 
                                                        
@@ -175,207 +175,207 @@ discard block  | 
                                                    ||
| 175 | 175 | $max_total = $max_total > 0 ? $max_total : '';  | 
                                                        
| 176 | 176 | $max_uses = $max_uses > 0 ? $max_uses : '';  | 
                                                        
| 177 | 177 | ?>  | 
                                                        
| 178 | -<?php do_action( 'wpinv_discount_form_top', $post ); ?>  | 
                                                        |
| 179 | -<?php wp_nonce_field( 'wpinv_discount_metabox_nonce', 'wpinv_discount_metabox_nonce' ); ;?>  | 
                                                        |
| 178 | +<?php do_action('wpinv_discount_form_top', $post); ?> | 
                                                        |
| 179 | +<?php wp_nonce_field('wpinv_discount_metabox_nonce', 'wpinv_discount_metabox_nonce'); ;?> | 
                                                        |
| 180 | 180 | <table class="form-table wpi-form-table">  | 
                                                        
| 181 | 181 | <tbody>  | 
                                                        
| 182 | - <?php do_action( 'wpinv_discount_form_first', $post ); ?>  | 
                                                        |
| 183 | - <?php do_action( 'wpinv_discount_form_before_code', $post ); ?>  | 
                                                        |
| 182 | +        <?php do_action('wpinv_discount_form_first', $post); ?> | 
                                                        |
| 183 | +        <?php do_action('wpinv_discount_form_before_code', $post); ?> | 
                                                        |
| 184 | 184 | <tr>  | 
                                                        
| 185 | 185 | <th valign="top" scope="row">  | 
                                                        
| 186 | - <label for="wpinv_discount_code"><?php _e( 'Discount Code', 'invoicing' ); ?></label>  | 
                                                        |
| 186 | +                <label for="wpinv_discount_code"><?php _e('Discount Code', 'invoicing'); ?></label> | 
                                                        |
| 187 | 187 | </th>  | 
                                                        
| 188 | 188 | <td>  | 
                                                        
| 189 | - <input type="text" name="code" id="wpinv_discount_code" class="medium-text" value="<?php echo esc_attr( wpinv_get_discount_code( $discount_id ) ); ?>" required>  | 
                                                        |
| 190 | - <p class="description"><?php _e( 'Enter a code for this discount, such as 10OFF', 'invoicing' ); ?></p>  | 
                                                        |
| 189 | + <input type="text" name="code" id="wpinv_discount_code" class="medium-text" value="<?php echo esc_attr(wpinv_get_discount_code($discount_id)); ?>" required>  | 
                                                        |
| 190 | +                <p class="description"><?php _e('Enter a code for this discount, such as 10OFF', 'invoicing'); ?></p> | 
                                                        |
| 191 | 191 | </td>  | 
                                                        
| 192 | 192 | </tr>  | 
                                                        
| 193 | - <?php do_action( 'wpinv_discount_form_before_type', $post ); ?>  | 
                                                        |
| 193 | +        <?php do_action('wpinv_discount_form_before_type', $post); ?> | 
                                                        |
| 194 | 194 | <tr>  | 
                                                        
| 195 | 195 | <th valign="top" scope="row">  | 
                                                        
| 196 | - <label for="wpinv_discount_type"><?php _e( 'Discount Type', 'invoicing' ); ?></label>  | 
                                                        |
| 196 | +                <label for="wpinv_discount_type"><?php _e('Discount Type', 'invoicing'); ?></label> | 
                                                        |
| 197 | 197 | </th>  | 
                                                        
| 198 | 198 | <td>  | 
                                                        
| 199 | 199 | <select id="wpinv_discount_type" name="type" class="medium-text wpi_select2">  | 
                                                        
| 200 | -                    <?php foreach ( wpinv_get_discount_types() as $value => $label ) { ?> | 
                                                        |
| 201 | - <option value="<?php echo $value ;?>" <?php selected( $type, $value ); ?>><?php echo $label; ?></option>  | 
                                                        |
| 200 | +                    <?php foreach (wpinv_get_discount_types() as $value => $label) { ?> | 
                                                        |
| 201 | + <option value="<?php echo $value; ?>" <?php selected($type, $value); ?>><?php echo $label; ?></option>  | 
                                                        |
| 202 | 202 | <?php } ?>  | 
                                                        
| 203 | 203 | </select>  | 
                                                        
| 204 | - <p class="description"><?php _e( 'The kind of discount to apply for this discount.', 'invoicing' ); ?></p>  | 
                                                        |
| 204 | +                <p class="description"><?php _e('The kind of discount to apply for this discount.', 'invoicing'); ?></p> | 
                                                        |
| 205 | 205 | </td>  | 
                                                        
| 206 | 206 | </tr>  | 
                                                        
| 207 | - <?php do_action( 'wpinv_discount_form_before_amount', $post ); ?>  | 
                                                        |
| 207 | +        <?php do_action('wpinv_discount_form_before_amount', $post); ?> | 
                                                        |
| 208 | 208 | <tr>  | 
                                                        
| 209 | 209 | <th valign="top" scope="row">  | 
                                                        
| 210 | - <label for="wpinv_discount_amount"><?php _e( 'Amount', 'invoicing' ); ?></label>  | 
                                                        |
| 210 | +                <label for="wpinv_discount_amount"><?php _e('Amount', 'invoicing'); ?></label> | 
                                                        |
| 211 | 211 | </th>  | 
                                                        
| 212 | 212 | <td>  | 
                                                        
| 213 | - <input type="text" name="amount" id="wpinv_discount_amount" class="wpi-field-price wpi-price" value="<?php echo esc_attr( wpinv_get_discount_amount( $discount_id ) ); ?>" required> <font class="wpi-discount-p">%</font><font class="wpi-discount-f" style="display:none;"><?php echo wpinv_currency_symbol() ;?></font>  | 
                                                        |
| 214 | - <p style="display:none;" class="description"><?php _e( 'Enter the discount amount in USD', 'invoicing' ); ?></p>  | 
                                                        |
| 215 | - <p class="description"><?php _e( 'Enter the discount value. Ex: 10', 'invoicing' ); ?></p>  | 
                                                        |
| 213 | + <input type="text" name="amount" id="wpinv_discount_amount" class="wpi-field-price wpi-price" value="<?php echo esc_attr(wpinv_get_discount_amount($discount_id)); ?>" required> <font class="wpi-discount-p">%</font><font class="wpi-discount-f" style="display:none;"><?php echo wpinv_currency_symbol(); ?></font>  | 
                                                        |
| 214 | +                <p style="display:none;" class="description"><?php _e('Enter the discount amount in USD', 'invoicing'); ?></p> | 
                                                        |
| 215 | +                <p class="description"><?php _e('Enter the discount value. Ex: 10', 'invoicing'); ?></p> | 
                                                        |
| 216 | 216 | </td>  | 
                                                        
| 217 | 217 | </tr>  | 
                                                        
| 218 | - <?php do_action( 'wpinv_discount_form_before_items', $post ); ?>  | 
                                                        |
| 218 | +        <?php do_action('wpinv_discount_form_before_items', $post); ?> | 
                                                        |
| 219 | 219 | <tr>  | 
                                                        
| 220 | 220 | <th valign="top" scope="row">  | 
                                                        
| 221 | - <label for="wpinv_discount_items"><?php _e( 'Items', 'invoicing' ); ?></label>  | 
                                                        |
| 221 | +                <label for="wpinv_discount_items"><?php _e('Items', 'invoicing'); ?></label> | 
                                                        |
| 222 | 222 | </th>  | 
                                                        
| 223 | 223 | <td>  | 
                                                        
| 224 | - <p><?php echo wpinv_item_dropdown( array(  | 
                                                        |
| 224 | + <p><?php echo wpinv_item_dropdown(array(  | 
                                                        |
| 225 | 225 | 'name' => 'items[]',  | 
                                                        
| 226 | 226 | 'id' => 'items',  | 
                                                        
| 227 | 227 | 'selected' => $item_reqs,  | 
                                                        
| 228 | 228 | 'multiple' => true,  | 
                                                        
| 229 | 229 | 'class' => 'medium-text wpi_select2',  | 
                                                        
| 230 | - 'placeholder' => __( 'Select one or more Items', 'invoicing' ),  | 
                                                        |
| 230 | +                        'placeholder'       => __('Select one or more Items', 'invoicing'), | 
                                                        |
| 231 | 231 | 'show_recurring' => true,  | 
                                                        
| 232 | - ) ); ?>  | 
                                                        |
| 232 | + )); ?>  | 
                                                        |
| 233 | 233 | </p>  | 
                                                        
| 234 | - <p class="description"><?php _e( 'Items which need to be in the cart to use this discount or, for "Item Discounts", which items are discounted. If left blank, this discount can be used on any item.', 'invoicing' ); ?></p>  | 
                                                        |
| 234 | +                <p class="description"><?php _e('Items which need to be in the cart to use this discount or, for "Item Discounts", which items are discounted. If left blank, this discount can be used on any item.', 'invoicing'); ?></p> | 
                                                        |
| 235 | 235 | </td>  | 
                                                        
| 236 | 236 | </tr>  | 
                                                        
| 237 | - <?php do_action( 'wpinv_discount_form_before_excluded_items', $post ); ?>  | 
                                                        |
| 237 | +        <?php do_action('wpinv_discount_form_before_excluded_items', $post); ?> | 
                                                        |
| 238 | 238 | <tr>  | 
                                                        
| 239 | 239 | <th valign="top" scope="row">  | 
                                                        
| 240 | - <label for="wpinv_discount_excluded_items"><?php _e( 'Excluded Items', 'invoicing' ); ?></label>  | 
                                                        |
| 240 | +                <label for="wpinv_discount_excluded_items"><?php _e('Excluded Items', 'invoicing'); ?></label> | 
                                                        |
| 241 | 241 | </th>  | 
                                                        
| 242 | 242 | <td>  | 
                                                        
| 243 | - <p><?php echo wpinv_item_dropdown( array(  | 
                                                        |
| 243 | + <p><?php echo wpinv_item_dropdown(array(  | 
                                                        |
| 244 | 244 | 'name' => 'excluded_items[]',  | 
                                                        
| 245 | 245 | 'id' => 'excluded_items',  | 
                                                        
| 246 | 246 | 'selected' => $excluded_items,  | 
                                                        
| 247 | 247 | 'multiple' => true,  | 
                                                        
| 248 | 248 | 'class' => 'medium-text wpi_select2',  | 
                                                        
| 249 | - 'placeholder' => __( 'Select one or more Items', 'invoicing' ),  | 
                                                        |
| 249 | +                        'placeholder'       => __('Select one or more Items', 'invoicing'), | 
                                                        |
| 250 | 250 | 'show_recurring' => true,  | 
                                                        
| 251 | - ) ); ?>  | 
                                                        |
| 251 | + )); ?>  | 
                                                        |
| 252 | 252 | </p>  | 
                                                        
| 253 | - <p class="description"><?php _e( 'Items which are NOT allowed to use this discount.', 'invoicing' ); ?></p>  | 
                                                        |
| 253 | +                <p class="description"><?php _e('Items which are NOT allowed to use this discount.', 'invoicing'); ?></p> | 
                                                        |
| 254 | 254 | </td>  | 
                                                        
| 255 | 255 | </tr>  | 
                                                        
| 256 | - <?php do_action( 'wpinv_discount_form_before_start', $post ); ?>  | 
                                                        |
| 256 | +        <?php do_action('wpinv_discount_form_before_start', $post); ?> | 
                                                        |
| 257 | 257 | <tr>  | 
                                                        
| 258 | 258 | <th valign="top" scope="row">  | 
                                                        
| 259 | - <label for="wpinv_discount_start"><?php _e( 'Start Date', 'invoicing' ); ?></label>  | 
                                                        |
| 259 | +                <label for="wpinv_discount_start"><?php _e('Start Date', 'invoicing'); ?></label> | 
                                                        |
| 260 | 260 | </th>  | 
                                                        
| 261 | 261 | <td>  | 
                                                        
| 262 | - <input type="text" class="w120 wpiDatepicker" id="wpinv_discount_start" data-dateFormat="yy-mm-dd" name="start" value="<?php echo esc_attr( $start_date ); ?>"> @ <select id="wpinv_discount_start_h" name="start_h">  | 
                                                        |
| 263 | -                    <?php for ( $i = 0; $i <= 23; $i++ ) { $value = str_pad( $i, 2, '0', STR_PAD_LEFT ); ?> | 
                                                        |
| 264 | - <option value="<?php echo $value;?>" <?php selected( $value, $start_h ); ?>><?php echo $value;?></option>  | 
                                                        |
| 262 | + <input type="text" class="w120 wpiDatepicker" id="wpinv_discount_start" data-dateFormat="yy-mm-dd" name="start" value="<?php echo esc_attr($start_date); ?>"> @ <select id="wpinv_discount_start_h" name="start_h">  | 
                                                        |
| 263 | +                    <?php for ($i = 0; $i <= 23; $i++) { $value = str_pad($i, 2, '0', STR_PAD_LEFT); ?> | 
                                                        |
| 264 | + <option value="<?php echo $value; ?>" <?php selected($value, $start_h); ?>><?php echo $value; ?></option>  | 
                                                        |
| 265 | 265 | <?php } ?>  | 
                                                        
| 266 | 266 | </select> : <select id="wpinv_discount_start_m" name="start_m">  | 
                                                        
| 267 | -                    <?php for ( $i = 0; $i <= 59; $i++ ) { $value = str_pad( $i, 2, '0', STR_PAD_LEFT ); ?> | 
                                                        |
| 268 | - <option value="<?php echo $value;?>" <?php selected( $value, $start_m ); ?>><?php echo $value;?></option>  | 
                                                        |
| 267 | +                    <?php for ($i = 0; $i <= 59; $i++) { $value = str_pad($i, 2, '0', STR_PAD_LEFT); ?> | 
                                                        |
| 268 | + <option value="<?php echo $value; ?>" <?php selected($value, $start_m); ?>><?php echo $value; ?></option>  | 
                                                        |
| 269 | 269 | <?php } ?>  | 
                                                        
| 270 | 270 | </select>  | 
                                                        
| 271 | - <p class="description"><?php _e( 'Enter the start date for this discount code in the format of yyyy-mm-dd. For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'invoicing' ); ?></p>  | 
                                                        |
| 271 | +                <p class="description"><?php _e('Enter the start date for this discount code in the format of yyyy-mm-dd. For no start date, leave blank. If entered, the discount can only be used after or on this date.', 'invoicing'); ?></p> | 
                                                        |
| 272 | 272 | </td>  | 
                                                        
| 273 | 273 | </tr>  | 
                                                        
| 274 | - <?php do_action( 'wpinv_discount_form_before_expiration', $post ); ?>  | 
                                                        |
| 274 | +        <?php do_action('wpinv_discount_form_before_expiration', $post); ?> | 
                                                        |
| 275 | 275 | <tr>  | 
                                                        
| 276 | 276 | <th valign="top" scope="row">  | 
                                                        
| 277 | - <label for="wpinv_discount_expiration"><?php _e( 'Expiration Date', 'invoicing' ); ?></label>  | 
                                                        |
| 277 | +                <label for="wpinv_discount_expiration"><?php _e('Expiration Date', 'invoicing'); ?></label> | 
                                                        |
| 278 | 278 | </th>  | 
                                                        
| 279 | 279 | <td>  | 
                                                        
| 280 | - <input type="text" class="w120 wpiDatepicker" id="wpinv_discount_expiration" data-dateFormat="yy-mm-dd" name="expiration" value="<?php echo esc_attr( $expiration_date ); ?>"> @ <select id="wpinv_discount_expiration_h" name="expiration_h">  | 
                                                        |
| 281 | -                    <?php for ( $i = 0; $i <= 23; $i++ ) { $value = str_pad( $i, 2, '0', STR_PAD_LEFT ); ?> | 
                                                        |
| 282 | - <option value="<?php echo $value;?>" <?php selected( $value, $expiration_h ); ?>><?php echo $value;?></option>  | 
                                                        |
| 280 | + <input type="text" class="w120 wpiDatepicker" id="wpinv_discount_expiration" data-dateFormat="yy-mm-dd" name="expiration" value="<?php echo esc_attr($expiration_date); ?>"> @ <select id="wpinv_discount_expiration_h" name="expiration_h">  | 
                                                        |
| 281 | +                    <?php for ($i = 0; $i <= 23; $i++) { $value = str_pad($i, 2, '0', STR_PAD_LEFT); ?> | 
                                                        |
| 282 | + <option value="<?php echo $value; ?>" <?php selected($value, $expiration_h); ?>><?php echo $value; ?></option>  | 
                                                        |
| 283 | 283 | <?php } ?>  | 
                                                        
| 284 | 284 | </select> : <select id="wpinv_discount_expiration_m" name="expiration_m">  | 
                                                        
| 285 | -                    <?php for ( $i = 0; $i <= 59; $i++ ) { $value = str_pad( $i, 2, '0', STR_PAD_LEFT ); ?> | 
                                                        |
| 286 | - <option value="<?php echo $value;?>" <?php selected( $value, $expiration_m ); ?>><?php echo $value;?></option>  | 
                                                        |
| 285 | +                    <?php for ($i = 0; $i <= 59; $i++) { $value = str_pad($i, 2, '0', STR_PAD_LEFT); ?> | 
                                                        |
| 286 | + <option value="<?php echo $value; ?>" <?php selected($value, $expiration_m); ?>><?php echo $value; ?></option>  | 
                                                        |
| 287 | 287 | <?php } ?>  | 
                                                        
| 288 | 288 | </select>  | 
                                                        
| 289 | - <p class="description"><?php _e( 'Enter the expiration date for this discount code in the format of yyyy-mm-dd. Leave blank for no expiration.', 'invoicing' ); ?></p>  | 
                                                        |
| 289 | +                <p class="description"><?php _e('Enter the expiration date for this discount code in the format of yyyy-mm-dd. Leave blank for no expiration.', 'invoicing'); ?></p> | 
                                                        |
| 290 | 290 | </td>  | 
                                                        
| 291 | 291 | </tr>  | 
                                                        
| 292 | - <?php do_action( 'wpinv_discount_form_before_min_total', $post ); ?>  | 
                                                        |
| 292 | +        <?php do_action('wpinv_discount_form_before_min_total', $post); ?> | 
                                                        |
| 293 | 293 | <tr>  | 
                                                        
| 294 | 294 | <th valign="top" scope="row">  | 
                                                        
| 295 | - <label for="wpinv_discount_min_total"><?php _e( 'Minimum Amount', 'invoicing' ); ?></label>  | 
                                                        |
| 295 | +                <label for="wpinv_discount_min_total"><?php _e('Minimum Amount', 'invoicing'); ?></label> | 
                                                        |
| 296 | 296 | </th>  | 
                                                        
| 297 | 297 | <td>  | 
                                                        
| 298 | 298 | <input type="text" name="min_total" id="wpinv_discount_min_total" class="wpi-field-price wpi-price" value="<?php echo $min_total; ?>">  | 
                                                        
| 299 | - <p class="description"><?php _e( 'This allows you to set the minimum amount (subtotal, including taxes) allowed when using the discount.', 'invoicing' ); ?></p>  | 
                                                        |
| 299 | +                <p class="description"><?php _e('This allows you to set the minimum amount (subtotal, including taxes) allowed when using the discount.', 'invoicing'); ?></p> | 
                                                        |
| 300 | 300 | </td>  | 
                                                        
| 301 | 301 | </tr>  | 
                                                        
| 302 | - <?php do_action( 'wpinv_discount_form_before_max_total', $post ); ?>  | 
                                                        |
| 302 | +        <?php do_action('wpinv_discount_form_before_max_total', $post); ?> | 
                                                        |
| 303 | 303 | <tr>  | 
                                                        
| 304 | 304 | <th valign="top" scope="row">  | 
                                                        
| 305 | - <label for="wpinv_discount_max_total"><?php _e( 'Maximum Amount', 'invoicing' ); ?></label>  | 
                                                        |
| 305 | +                <label for="wpinv_discount_max_total"><?php _e('Maximum Amount', 'invoicing'); ?></label> | 
                                                        |
| 306 | 306 | </th>  | 
                                                        
| 307 | 307 | <td>  | 
                                                        
| 308 | 308 | <input type="text" name="max_total" id="wpinv_discount_max_total" class="wpi-field-price wpi-price" value="<?php echo $max_total; ?>">  | 
                                                        
| 309 | - <p class="description"><?php _e( 'This allows you to set the maximum amount (subtotal, including taxes) allowed when using the discount.', 'invoicing' ); ?></p>  | 
                                                        |
| 309 | +                <p class="description"><?php _e('This allows you to set the maximum amount (subtotal, including taxes) allowed when using the discount.', 'invoicing'); ?></p> | 
                                                        |
| 310 | 310 | </td>  | 
                                                        
| 311 | 311 | </tr>  | 
                                                        
| 312 | - <?php do_action( 'wpinv_discount_form_before_recurring', $post ); ?>  | 
                                                        |
| 312 | +        <?php do_action('wpinv_discount_form_before_recurring', $post); ?> | 
                                                        |
| 313 | 313 | <tr>  | 
                                                        
| 314 | 314 | <th valign="top" scope="row">  | 
                                                        
| 315 | - <label for="wpinv_discount_recurring"><?php _e( 'For recurring apply to', 'invoicing' ); ?></label>  | 
                                                        |
| 315 | +                <label for="wpinv_discount_recurring"><?php _e('For recurring apply to', 'invoicing'); ?></label> | 
                                                        |
| 316 | 316 | </th>  | 
                                                        
| 317 | 317 | <td>  | 
                                                        
| 318 | 318 | <select id="wpinv_discount_recurring" name="recurring" class="medium-text wpi_select2">  | 
                                                        
| 319 | - <option value="0" <?php selected( false, $recurring ); ?>><?php _e( 'First payment only', 'invoicing' ); ?></option>  | 
                                                        |
| 320 | - <option value="1" <?php selected( true, $recurring ); ?>><?php _e( 'All payments', 'invoicing' ); ?></option>  | 
                                                        |
| 319 | +                    <option value="0" <?php selected(false, $recurring); ?>><?php _e('First payment only', 'invoicing'); ?></option> | 
                                                        |
| 320 | +                    <option value="1" <?php selected(true, $recurring); ?>><?php _e('All payments', 'invoicing'); ?></option> | 
                                                        |
| 321 | 321 | </select>  | 
                                                        
| 322 | - <p class="description"><?php _e( '<b>All payments:</b> Apply this discount to all recurring payments of the recurring invoice. <br><b>First payment only:</b> Apply this discount to only first payment of the recurring invoice.', 'invoicing' ); ?></p>  | 
                                                        |
| 322 | +                <p class="description"><?php _e('<b>All payments:</b> Apply this discount to all recurring payments of the recurring invoice. <br><b>First payment only:</b> Apply this discount to only first payment of the recurring invoice.', 'invoicing'); ?></p> | 
                                                        |
| 323 | 323 | </td>  | 
                                                        
| 324 | 324 | </tr>  | 
                                                        
| 325 | - <?php do_action( 'wpinv_discount_form_before_max_uses', $post ); ?>  | 
                                                        |
| 325 | +        <?php do_action('wpinv_discount_form_before_max_uses', $post); ?> | 
                                                        |
| 326 | 326 | <tr>  | 
                                                        
| 327 | 327 | <th valign="top" scope="row">  | 
                                                        
| 328 | - <label for="wpinv_discount_max_uses"><?php _e( 'Max Uses', 'invoicing' ); ?></label>  | 
                                                        |
| 328 | +                <label for="wpinv_discount_max_uses"><?php _e('Max Uses', 'invoicing'); ?></label> | 
                                                        |
| 329 | 329 | </th>  | 
                                                        
| 330 | 330 | <td>  | 
                                                        
| 331 | 331 | <input type="number" min="0" step="1" id="wpinv_discount_max_uses" name="max_uses" class="medium-text" value="<?php echo $max_uses; ?>">  | 
                                                        
| 332 | - <p class="description"><?php _e( 'The maximum number of times this discount can be used. Leave blank for unlimited.', 'invoicing' ); ?></p>  | 
                                                        |
| 332 | +                <p class="description"><?php _e('The maximum number of times this discount can be used. Leave blank for unlimited.', 'invoicing'); ?></p> | 
                                                        |
| 333 | 333 | </td>  | 
                                                        
| 334 | 334 | </tr>  | 
                                                        
| 335 | - <?php do_action( 'wpinv_discount_form_before_single_use', $post ); ?>  | 
                                                        |
| 335 | +        <?php do_action('wpinv_discount_form_before_single_use', $post); ?> | 
                                                        |
| 336 | 336 | <tr>  | 
                                                        
| 337 | 337 | <th valign="top" scope="row">  | 
                                                        
| 338 | - <label for="wpinv_discount_single_use"><?php _e( 'Use Once Per User', 'invoicing' ); ?></label>  | 
                                                        |
| 338 | +                <label for="wpinv_discount_single_use"><?php _e('Use Once Per User', 'invoicing'); ?></label> | 
                                                        |
| 339 | 339 | </th>  | 
                                                        
| 340 | 340 | <td>  | 
                                                        
| 341 | - <input type="checkbox" value="1" name="single_use" id="wpinv_discount_single_use" <?php checked( true, $single_use ); ?>>  | 
                                                        |
| 342 | - <span class="description"><?php _e( 'Limit this discount to a single use per user?', 'invoicing' ); ?></span>  | 
                                                        |
| 341 | + <input type="checkbox" value="1" name="single_use" id="wpinv_discount_single_use" <?php checked(true, $single_use); ?>>  | 
                                                        |
| 342 | +                <span class="description"><?php _e('Limit this discount to a single use per user?', 'invoicing'); ?></span> | 
                                                        |
| 343 | 343 | </td>  | 
                                                        
| 344 | 344 | </tr>  | 
                                                        
| 345 | - <?php do_action( 'wpinv_discount_form_last', $post ); ?>  | 
                                                        |
| 345 | +        <?php do_action('wpinv_discount_form_last', $post); ?> | 
                                                        |
| 346 | 346 | </tbody>  | 
                                                        
| 347 | 347 | </table>  | 
                                                        
| 348 | -<?php do_action( 'wpinv_discount_form_bottom', $post ); ?>  | 
                                                        |
| 348 | +<?php do_action('wpinv_discount_form_bottom', $post); ?> | 
                                                        |
| 349 | 349 | <?php  | 
                                                        
| 350 | 350 | }  | 
                                                        
| 351 | 351 | |
| 352 | -function wpinv_discount_metabox_save( $post_id, $post, $update = false ) { | 
                                                        |
| 353 | - $post_type = !empty( $post ) ? $post->post_type : '';  | 
                                                        |
| 352 | +function wpinv_discount_metabox_save($post_id, $post, $update = false) { | 
                                                        |
| 353 | + $post_type = !empty($post) ? $post->post_type : '';  | 
                                                        |
| 354 | 354 | |
| 355 | -    if ( $post_type != 'wpi_discount' ) { | 
                                                        |
| 355 | +    if ($post_type != 'wpi_discount') { | 
                                                        |
| 356 | 356 | return;  | 
                                                        
| 357 | 357 | }  | 
                                                        
| 358 | 358 | |
| 359 | -    if ( !isset( $_POST['wpinv_discount_metabox_nonce'] ) || ( isset( $_POST['wpinv_discount_metabox_nonce'] ) && !wp_verify_nonce( $_POST['wpinv_discount_metabox_nonce'], 'wpinv_discount_metabox_nonce' ) ) ) { | 
                                                        |
| 359 | +    if (!isset($_POST['wpinv_discount_metabox_nonce']) || (isset($_POST['wpinv_discount_metabox_nonce']) && !wp_verify_nonce($_POST['wpinv_discount_metabox_nonce'], 'wpinv_discount_metabox_nonce'))) { | 
                                                        |
| 360 | 360 | return;  | 
                                                        
| 361 | 361 | }  | 
                                                        
| 362 | 362 | |
| 363 | -    if ( ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || ( defined( 'DOING_AJAX') && DOING_AJAX ) || isset( $_REQUEST['bulk_edit'] ) ) { | 
                                                        |
| 363 | +    if ((defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) || (defined('DOING_AJAX') && DOING_AJAX) || isset($_REQUEST['bulk_edit'])) { | 
                                                        |
| 364 | 364 | return;  | 
                                                        
| 365 | 365 | }  | 
                                                        
| 366 | 366 | |
| 367 | -    if ( !current_user_can( wpinv_get_capability(), $post_id ) ) { | 
                                                        |
| 367 | +    if (!current_user_can(wpinv_get_capability(), $post_id)) { | 
                                                        |
| 368 | 368 | return;  | 
                                                        
| 369 | 369 | }  | 
                                                        
| 370 | 370 | |
| 371 | -    if ( !empty( $_POST['start'] ) && isset( $_POST['start_h'] ) && isset( $_POST['start_m'] ) && $_POST['start_h'] !== '' && $_POST['start_m'] !== '' ) { | 
                                                        |
| 371 | +    if (!empty($_POST['start']) && isset($_POST['start_h']) && isset($_POST['start_m']) && $_POST['start_h'] !== '' && $_POST['start_m'] !== '') { | 
                                                        |
| 372 | 372 | $_POST['start'] = $_POST['start'] . ' ' . $_POST['start_h'] . ':' . $_POST['start_m'];  | 
                                                        
| 373 | 373 | }  | 
                                                        
| 374 | 374 | |
| 375 | -    if ( !empty( $_POST['expiration'] ) && isset( $_POST['expiration_h'] ) && isset( $_POST['expiration_m'] ) ) { | 
                                                        |
| 375 | +    if (!empty($_POST['expiration']) && isset($_POST['expiration_h']) && isset($_POST['expiration_m'])) { | 
                                                        |
| 376 | 376 | $_POST['expiration'] = $_POST['expiration'] . ' ' . $_POST['expiration_h'] . ':' . $_POST['expiration_m'];  | 
                                                        
| 377 | 377 | }  | 
                                                        
| 378 | 378 | |
| 379 | - return /** @scrutinizer ignore-call */ wpinv_store_discount( $post_id, $_POST, $post, $update );  | 
                                                        |
| 379 | + return /** @scrutinizer ignore-call */ wpinv_store_discount($post_id, $_POST, $post, $update);  | 
                                                        |
| 380 | 380 | }  | 
                                                        
| 381 | -add_action( 'save_post', 'wpinv_discount_metabox_save', 10, 3 );  | 
                                                        |
| 382 | 381 | \ No newline at end of file  | 
                                                        
| 382 | +add_action('save_post', 'wpinv_discount_metabox_save', 10, 3); | 
                                                        |
| 383 | 383 | \ No newline at end of file  | 
                                                        
@@ -7,110 +7,110 @@ 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_discount_types() { | 
                                                        
| 15 | 15 | $discount_types = array(  | 
                                                        
| 16 | - 'percent' => __( 'Percentage', 'invoicing' ),  | 
                                                        |
| 17 | - 'flat' => __( 'Flat Amount', 'invoicing' ),  | 
                                                        |
| 16 | +                        'percent'   => __('Percentage', 'invoicing'), | 
                                                        |
| 17 | +                        'flat'     => __('Flat Amount', 'invoicing'), | 
                                                        |
| 18 | 18 | );  | 
                                                        
| 19 | - return (array)apply_filters( 'wpinv_discount_types', $discount_types );  | 
                                                        |
| 19 | +    return (array) apply_filters('wpinv_discount_types', $discount_types); | 
                                                        |
| 20 | 20 | }  | 
                                                        
| 21 | 21 | |
| 22 | -function wpinv_get_discount_type_name( $type = '' ) { | 
                                                        |
| 22 | +function wpinv_get_discount_type_name($type = '') { | 
                                                        |
| 23 | 23 | $types = wpinv_get_discount_types();  | 
                                                        
| 24 | - return isset( $types[ $type ] ) ? $types[ $type ] : '';  | 
                                                        |
| 24 | + return isset($types[$type]) ? $types[$type] : '';  | 
                                                        |
| 25 | 25 | }  | 
                                                        
| 26 | 26 | |
| 27 | -function wpinv_delete_discount( $data ) { | 
                                                        |
| 28 | -    if ( ! isset( $data['_wpnonce'] ) || ! wp_verify_nonce( $data['_wpnonce'], 'wpinv_discount_nonce' ) ) { | 
                                                        |
| 29 | - wp_die( __( 'Trying to cheat or something?', 'invoicing' ), __( 'Error', 'invoicing' ), array( 'response' => 403 ) );  | 
                                                        |
| 27 | +function wpinv_delete_discount($data) { | 
                                                        |
| 28 | +    if (!isset($data['_wpnonce']) || !wp_verify_nonce($data['_wpnonce'], 'wpinv_discount_nonce')) { | 
                                                        |
| 29 | +        wp_die(__('Trying to cheat or something?', 'invoicing'), __('Error', 'invoicing'), array('response' => 403)); | 
                                                        |
| 30 | 30 | }  | 
                                                        
| 31 | 31 | |
| 32 | -    if( ! wpinv_current_user_can_manage_invoicing() ) { | 
                                                        |
| 33 | - wp_die( __( 'You do not have permission to delete discount codes', 'invoicing' ), __( 'Error', 'invoicing' ), array( 'response' => 403 ) );  | 
                                                        |
| 32 | +    if (!wpinv_current_user_can_manage_invoicing()) { | 
                                                        |
| 33 | +        wp_die(__('You do not have permission to delete discount codes', 'invoicing'), __('Error', 'invoicing'), array('response' => 403)); | 
                                                        |
| 34 | 34 | }  | 
                                                        
| 35 | 35 | |
| 36 | 36 | $discount_id = $data['discount'];  | 
                                                        
| 37 | - wpinv_remove_discount( $discount_id );  | 
                                                        |
| 37 | + wpinv_remove_discount($discount_id);  | 
                                                        |
| 38 | 38 | }  | 
                                                        
| 39 | -add_action( 'wpinv_delete_discount', 'wpinv_delete_discount' );  | 
                                                        |
| 39 | +add_action('wpinv_delete_discount', 'wpinv_delete_discount'); | 
                                                        |
| 40 | 40 | |
| 41 | -function wpinv_activate_discount( $data ) { | 
                                                        |
| 42 | -    if ( ! isset( $data['_wpnonce'] ) || ! wp_verify_nonce( $data['_wpnonce'], 'wpinv_discount_nonce' ) ) { | 
                                                        |
| 43 | - wp_die( __( 'Trying to cheat or something?', 'invoicing' ), __( 'Error', 'invoicing' ), array( 'response' => 403 ) );  | 
                                                        |
| 41 | +function wpinv_activate_discount($data) { | 
                                                        |
| 42 | +    if (!isset($data['_wpnonce']) || !wp_verify_nonce($data['_wpnonce'], 'wpinv_discount_nonce')) { | 
                                                        |
| 43 | +        wp_die(__('Trying to cheat or something?', 'invoicing'), __('Error', 'invoicing'), array('response' => 403)); | 
                                                        |
| 44 | 44 | }  | 
                                                        
| 45 | 45 | |
| 46 | -    if( ! wpinv_current_user_can_manage_invoicing() ) { | 
                                                        |
| 47 | - wp_die( __( 'You do not have permission to edit discount codes', 'invoicing' ), __( 'Error', 'invoicing' ), array( 'response' => 403 ) );  | 
                                                        |
| 46 | +    if (!wpinv_current_user_can_manage_invoicing()) { | 
                                                        |
| 47 | +        wp_die(__('You do not have permission to edit discount codes', 'invoicing'), __('Error', 'invoicing'), array('response' => 403)); | 
                                                        |
| 48 | 48 | }  | 
                                                        
| 49 | 49 | |
| 50 | - $id = absint( $data['discount'] );  | 
                                                        |
| 51 | - wpinv_update_discount_status( $id, 'publish' );  | 
                                                        |
| 50 | + $id = absint($data['discount']);  | 
                                                        |
| 51 | + wpinv_update_discount_status($id, 'publish');  | 
                                                        |
| 52 | 52 | }  | 
                                                        
| 53 | -add_action( 'wpinv_activate_discount', 'wpinv_activate_discount' );  | 
                                                        |
| 53 | +add_action('wpinv_activate_discount', 'wpinv_activate_discount'); | 
                                                        |
| 54 | 54 | |
| 55 | -function wpinv_deactivate_discount( $data ) { | 
                                                        |
| 56 | -    if ( ! isset( $data['_wpnonce'] ) || ! wp_verify_nonce( $data['_wpnonce'], 'wpinv_discount_nonce' ) ) { | 
                                                        |
| 57 | - wp_die( __( 'Trying to cheat or something?', 'invoicing' ), __( 'Error', 'invoicing' ), array( 'response' => 403 ) );  | 
                                                        |
| 55 | +function wpinv_deactivate_discount($data) { | 
                                                        |
| 56 | +    if (!isset($data['_wpnonce']) || !wp_verify_nonce($data['_wpnonce'], 'wpinv_discount_nonce')) { | 
                                                        |
| 57 | +        wp_die(__('Trying to cheat or something?', 'invoicing'), __('Error', 'invoicing'), array('response' => 403)); | 
                                                        |
| 58 | 58 | }  | 
                                                        
| 59 | 59 | |
| 60 | -    if( ! wpinv_current_user_can_manage_invoicing() ) { | 
                                                        |
| 61 | - wp_die( __( 'You do not have permission to create discount codes', 'invoicing' ), array( 'response' => 403 ) );  | 
                                                        |
| 60 | +    if (!wpinv_current_user_can_manage_invoicing()) { | 
                                                        |
| 61 | +        wp_die(__('You do not have permission to create discount codes', 'invoicing'), array('response' => 403)); | 
                                                        |
| 62 | 62 | }  | 
                                                        
| 63 | 63 | |
| 64 | - $id = absint( $data['discount'] );  | 
                                                        |
| 65 | - wpinv_update_discount_status( $id, 'pending' );  | 
                                                        |
| 64 | + $id = absint($data['discount']);  | 
                                                        |
| 65 | + wpinv_update_discount_status($id, 'pending');  | 
                                                        |
| 66 | 66 | }  | 
                                                        
| 67 | -add_action( 'wpinv_deactivate_discount', 'wpinv_deactivate_discount' );  | 
                                                        |
| 67 | +add_action('wpinv_deactivate_discount', 'wpinv_deactivate_discount'); | 
                                                        |
| 68 | 68 | |
| 69 | -function wpinv_get_discounts( $args = array() ) { | 
                                                        |
| 69 | +function wpinv_get_discounts($args = array()) { | 
                                                        |
| 70 | 70 | $defaults = array(  | 
                                                        
| 71 | 71 | 'post_type' => 'wpi_discount',  | 
                                                        
| 72 | 72 | 'posts_per_page' => 20,  | 
                                                        
| 73 | 73 | 'paged' => null,  | 
                                                        
| 74 | - 'post_status' => array( 'publish', 'pending', 'draft', 'expired' )  | 
                                                        |
| 74 | +        'post_status'    => array('publish', 'pending', 'draft', 'expired') | 
                                                        |
| 75 | 75 | );  | 
                                                        
| 76 | 76 | |
| 77 | - $args = wp_parse_args( $args, $defaults );  | 
                                                        |
| 77 | + $args = wp_parse_args($args, $defaults);  | 
                                                        |
| 78 | 78 | |
| 79 | - $discounts = get_posts( $args );  | 
                                                        |
| 79 | + $discounts = get_posts($args);  | 
                                                        |
| 80 | 80 | |
| 81 | -    if ( $discounts ) { | 
                                                        |
| 81 | +    if ($discounts) { | 
                                                        |
| 82 | 82 | return $discounts;  | 
                                                        
| 83 | 83 | }  | 
                                                        
| 84 | 84 | |
| 85 | -    if( ! $discounts && ! empty( $args['s'] ) ) { | 
                                                        |
| 85 | +    if (!$discounts && !empty($args['s'])) { | 
                                                        |
| 86 | 86 | $args['meta_key'] = '_wpi_discount_code';  | 
                                                        
| 87 | 87 | $args['meta_value'] = $args['s'];  | 
                                                        
| 88 | 88 | $args['meta_compare'] = 'LIKE';  | 
                                                        
| 89 | - unset( $args['s'] );  | 
                                                        |
| 90 | - $discounts = get_posts( $args );  | 
                                                        |
| 89 | + unset($args['s']);  | 
                                                        |
| 90 | + $discounts = get_posts($args);  | 
                                                        |
| 91 | 91 | }  | 
                                                        
| 92 | 92 | |
| 93 | -    if( $discounts ) { | 
                                                        |
| 93 | +    if ($discounts) { | 
                                                        |
| 94 | 94 | return $discounts;  | 
                                                        
| 95 | 95 | }  | 
                                                        
| 96 | 96 | |
| 97 | 97 | return false;  | 
                                                        
| 98 | 98 | }  | 
                                                        
| 99 | 99 | |
| 100 | -function wpinv_get_all_discounts( $args = array() ) { | 
                                                        |
| 100 | +function wpinv_get_all_discounts($args = array()) { | 
                                                        |
| 101 | 101 | |
| 102 | - $args = wp_parse_args( $args, array(  | 
                                                        |
| 103 | - 'status' => array( 'publish' ),  | 
                                                        |
| 104 | - 'limit' => get_option( 'posts_per_page' ),  | 
                                                        |
| 102 | + $args = wp_parse_args($args, array(  | 
                                                        |
| 103 | +        'status'         => array('publish'), | 
                                                        |
| 104 | +        'limit'          => get_option('posts_per_page'), | 
                                                        |
| 105 | 105 | 'page' => 1,  | 
                                                        
| 106 | 106 | 'exclude' => array(),  | 
                                                        
| 107 | 107 | 'orderby' => 'date',  | 
                                                        
| 108 | 108 | 'order' => 'DESC',  | 
                                                        
| 109 | - 'type' => array_keys( wpinv_get_discount_types() ),  | 
                                                        |
| 109 | + 'type' => array_keys(wpinv_get_discount_types()),  | 
                                                        |
| 110 | 110 | 'meta_query' => array(),  | 
                                                        
| 111 | 111 | 'return' => 'objects',  | 
                                                        
| 112 | 112 | 'paginate' => false,  | 
                                                        
| 113 | - ) );  | 
                                                        |
| 113 | + ));  | 
                                                        |
| 114 | 114 | |
| 115 | 115 | $wp_query_args = array(  | 
                                                        
| 116 | 116 | 'post_type' => 'wpi_discount',  | 
                                                        
@@ -120,18 +120,18 @@ discard block  | 
                                                    ||
| 120 | 120 | 'fields' => 'ids',  | 
                                                        
| 121 | 121 | 'orderby' => $args['orderby'],  | 
                                                        
| 122 | 122 | 'order' => $args['order'],  | 
                                                        
| 123 | - 'paged' => absint( $args['page'] ),  | 
                                                        |
| 123 | + 'paged' => absint($args['page']),  | 
                                                        |
| 124 | 124 | );  | 
                                                        
| 125 | 125 | |
| 126 | -    if ( ! empty( $args['exclude'] ) ) { | 
                                                        |
| 127 | - $wp_query_args['post__not_in'] = array_map( 'absint', $args['exclude'] );  | 
                                                        |
| 126 | +    if (!empty($args['exclude'])) { | 
                                                        |
| 127 | +        $wp_query_args['post__not_in'] = array_map('absint', $args['exclude']); | 
                                                        |
| 128 | 128 | }  | 
                                                        
| 129 | 129 | |
| 130 | -    if ( ! $args['paginate' ] ) { | 
                                                        |
| 130 | +    if (!$args['paginate']) { | 
                                                        |
| 131 | 131 | $wp_query_args['no_found_rows'] = true;  | 
                                                        
| 132 | 132 | }  | 
                                                        
| 133 | 133 | |
| 134 | -    if ( ! empty( $args['search'] ) ) { | 
                                                        |
| 134 | +    if (!empty($args['search'])) { | 
                                                        |
| 135 | 135 | |
| 136 | 136 | $wp_query_args['meta_query'][] = array(  | 
                                                        
| 137 | 137 | 'key' => '_wpi_discount_code',  | 
                                                        
@@ -141,11 +141,11 @@ discard block  | 
                                                    ||
| 141 | 141 | |
| 142 | 142 | }  | 
                                                        
| 143 | 143 | |
| 144 | -    if ( ! empty( $args['type'] ) ) { | 
                                                        |
| 145 | - $types = wpinv_parse_list( $args['type'] );  | 
                                                        |
| 144 | +    if (!empty($args['type'])) { | 
                                                        |
| 145 | + $types = wpinv_parse_list($args['type']);  | 
                                                        |
| 146 | 146 | $wp_query_args['meta_query'][] = array(  | 
                                                        
| 147 | 147 | 'key' => '_wpi_discount_type',  | 
                                                        
| 148 | - 'value' => implode( ',', $types ),  | 
                                                        |
| 148 | +            'value'   => implode(',', $types), | 
                                                        |
| 149 | 149 | 'compare' => 'IN',  | 
                                                        
| 150 | 150 | );  | 
                                                        
| 151 | 151 | }  | 
                                                        
@@ -153,17 +153,17 @@ discard block  | 
                                                    ||
| 153 | 153 |      $wp_query_args = apply_filters('wpinv_get_discount_args', $wp_query_args, $args); | 
                                                        
| 154 | 154 | |
| 155 | 155 | // Get results.  | 
                                                        
| 156 | - $discounts = new WP_Query( $wp_query_args );  | 
                                                        |
| 156 | + $discounts = new WP_Query($wp_query_args);  | 
                                                        |
| 157 | 157 | |
| 158 | -    if ( 'objects' === $args['return'] ) { | 
                                                        |
| 159 | - $return = array_map( 'get_post', $discounts->posts );  | 
                                                        |
| 160 | -    } elseif ( 'self' === $args['return'] ) { | 
                                                        |
| 158 | +    if ('objects' === $args['return']) { | 
                                                        |
| 159 | +        $return = array_map('get_post', $discounts->posts); | 
                                                        |
| 160 | +    } elseif ('self' === $args['return']) { | 
                                                        |
| 161 | 161 | return $discounts;  | 
                                                        
| 162 | 162 |      } else { | 
                                                        
| 163 | 163 | $return = $discounts->posts;  | 
                                                        
| 164 | 164 | }  | 
                                                        
| 165 | 165 | |
| 166 | -    if ( $args['paginate' ] ) { | 
                                                        |
| 166 | +    if ($args['paginate']) { | 
                                                        |
| 167 | 167 | return (object) array(  | 
                                                        
| 168 | 168 | 'discounts' => $return,  | 
                                                        
| 169 | 169 | 'total' => $discounts->found_posts,  | 
                                                        
@@ -180,9 +180,9 @@ discard block  | 
                                                    ||
| 180 | 180 | |
| 181 | 181 | $discounts = wpinv_get_discounts();  | 
                                                        
| 182 | 182 | |
| 183 | -    if ( $discounts) { | 
                                                        |
| 184 | -        foreach ( $discounts as $discount ) { | 
                                                        |
| 185 | -            if ( wpinv_is_discount_active( $discount->ID ) ) { | 
                                                        |
| 183 | +    if ($discounts) { | 
                                                        |
| 184 | +        foreach ($discounts as $discount) { | 
                                                        |
| 185 | +            if (wpinv_is_discount_active($discount->ID)) { | 
                                                        |
| 186 | 186 | $has_active = true;  | 
                                                        
| 187 | 187 | break;  | 
                                                        
| 188 | 188 | }  | 
                                                        
@@ -191,16 +191,16 @@ discard block  | 
                                                    ||
| 191 | 191 | return $has_active;  | 
                                                        
| 192 | 192 | }  | 
                                                        
| 193 | 193 | |
| 194 | -function wpinv_get_discount( $discount_id = 0 ) { | 
                                                        |
| 195 | -    if( empty( $discount_id ) ) { | 
                                                        |
| 194 | +function wpinv_get_discount($discount_id = 0) { | 
                                                        |
| 195 | +    if (empty($discount_id)) { | 
                                                        |
| 196 | 196 | return false;  | 
                                                        
| 197 | 197 | }  | 
                                                        
| 198 | 198 | |
| 199 | -    if ( get_post_type( $discount_id ) != 'wpi_discount' ) { | 
                                                        |
| 199 | +    if (get_post_type($discount_id) != 'wpi_discount') { | 
                                                        |
| 200 | 200 | return false;  | 
                                                        
| 201 | 201 | }  | 
                                                        
| 202 | 202 | |
| 203 | - $discount = get_post( $discount_id );  | 
                                                        |
| 203 | + $discount = get_post($discount_id);  | 
                                                        |
| 204 | 204 | |
| 205 | 205 | return $discount;  | 
                                                        
| 206 | 206 | }  | 
                                                        
@@ -212,8 +212,8 @@ discard block  | 
                                                    ||
| 212 | 212 | * @since 1.0.15  | 
                                                        
| 213 | 213 | * @return WPInv_Discount  | 
                                                        
| 214 | 214 | */  | 
                                                        
| 215 | -function wpinv_get_discount_obj( $discount = 0 ) { | 
                                                        |
| 216 | - return new WPInv_Discount( $discount );  | 
                                                        |
| 215 | +function wpinv_get_discount_obj($discount = 0) { | 
                                                        |
| 216 | + return new WPInv_Discount($discount);  | 
                                                        |
| 217 | 217 | }  | 
                                                        
| 218 | 218 | |
| 219 | 219 | /**  | 
                                                        
@@ -222,8 +222,8 @@ discard block  | 
                                                    ||
| 222 | 222 | * @param string $code The discount code.  | 
                                                        
| 223 | 223 | * @return bool|WP_Post  | 
                                                        
| 224 | 224 | */  | 
                                                        
| 225 | -function wpinv_get_discount_by_code( $code = '' ) { | 
                                                        |
| 226 | - return wpinv_get_discount_by( 'code', $code );  | 
                                                        |
| 225 | +function wpinv_get_discount_by_code($code = '') { | 
                                                        |
| 226 | +    return wpinv_get_discount_by('code', $code); | 
                                                        |
| 227 | 227 | }  | 
                                                        
| 228 | 228 | |
| 229 | 229 | /**  | 
                                                        
@@ -233,13 +233,13 @@ discard block  | 
                                                    ||
| 233 | 233 | * @param string|int $value The field value  | 
                                                        
| 234 | 234 | * @return bool|WP_Post  | 
                                                        
| 235 | 235 | */  | 
                                                        
| 236 | -function wpinv_get_discount_by( $field = '', $value = '' ) { | 
                                                        |
| 237 | - $data = WPInv_Discount::get_data_by( $field, $value );  | 
                                                        |
| 238 | -    if( empty( $data ) ) { | 
                                                        |
| 236 | +function wpinv_get_discount_by($field = '', $value = '') { | 
                                                        |
| 237 | + $data = WPInv_Discount::get_data_by($field, $value);  | 
                                                        |
| 238 | +    if (empty($data)) { | 
                                                        |
| 239 | 239 | return false;  | 
                                                        
| 240 | 240 | }  | 
                                                        
| 241 | 241 | |
| 242 | - return get_post( $data['ID'] );  | 
                                                        |
| 242 | + return get_post($data['ID']);  | 
                                                        |
| 243 | 243 | }  | 
                                                        
| 244 | 244 | |
| 245 | 245 | /**  | 
                                                        
@@ -249,68 +249,68 @@ discard block  | 
                                                    ||
| 249 | 249 | * @param array $data The discount's properties.  | 
                                                        
| 250 | 250 | * @return bool  | 
                                                        
| 251 | 251 | */  | 
                                                        
| 252 | -function wpinv_store_discount( $post_id, $data, $post, $update = false ) { | 
                                                        |
| 252 | +function wpinv_store_discount($post_id, $data, $post, $update = false) { | 
                                                        |
| 253 | 253 | $meta = array(  | 
                                                        
| 254 | - 'code' => isset( $data['code'] ) ? sanitize_text_field( $data['code'] ) : '',  | 
                                                        |
| 255 | - 'type' => isset( $data['type'] ) ? sanitize_text_field( $data['type'] ) : 'percent',  | 
                                                        |
| 256 | - 'amount' => isset( $data['amount'] ) ? wpinv_sanitize_amount( $data['amount'] ) : '',  | 
                                                        |
| 257 | - 'start' => isset( $data['start'] ) ? sanitize_text_field( $data['start'] ) : '',  | 
                                                        |
| 258 | - 'expiration' => isset( $data['expiration'] ) ? sanitize_text_field( $data['expiration'] ) : '',  | 
                                                        |
| 259 | - 'min_total' => isset( $data['min_total'] ) ? wpinv_sanitize_amount( $data['min_total'] ) : '',  | 
                                                        |
| 260 | - 'max_total' => isset( $data['max_total'] ) ? wpinv_sanitize_amount( $data['max_total'] ) : '',  | 
                                                        |
| 261 | - 'max_uses' => isset( $data['max_uses'] ) ? absint( $data['max_uses'] ) : '',  | 
                                                        |
| 262 | - 'items' => isset( $data['items'] ) ? $data['items'] : array(),  | 
                                                        |
| 263 | - 'excluded_items' => isset( $data['excluded_items'] ) ? $data['excluded_items'] : array(),  | 
                                                        |
| 264 | - 'is_recurring' => isset( $data['recurring'] ) ? (bool)$data['recurring'] : false,  | 
                                                        |
| 265 | - 'is_single_use' => isset( $data['single_use'] ) ? (bool)$data['single_use'] : false,  | 
                                                        |
| 266 | - 'uses' => isset( $data['uses'] ) ? (int)$data['uses'] : false,  | 
                                                        |
| 254 | + 'code' => isset($data['code']) ? sanitize_text_field($data['code']) : '',  | 
                                                        |
| 255 | + 'type' => isset($data['type']) ? sanitize_text_field($data['type']) : 'percent',  | 
                                                        |
| 256 | + 'amount' => isset($data['amount']) ? wpinv_sanitize_amount($data['amount']) : '',  | 
                                                        |
| 257 | + 'start' => isset($data['start']) ? sanitize_text_field($data['start']) : '',  | 
                                                        |
| 258 | + 'expiration' => isset($data['expiration']) ? sanitize_text_field($data['expiration']) : '',  | 
                                                        |
| 259 | + 'min_total' => isset($data['min_total']) ? wpinv_sanitize_amount($data['min_total']) : '',  | 
                                                        |
| 260 | + 'max_total' => isset($data['max_total']) ? wpinv_sanitize_amount($data['max_total']) : '',  | 
                                                        |
| 261 | + 'max_uses' => isset($data['max_uses']) ? absint($data['max_uses']) : '',  | 
                                                        |
| 262 | + 'items' => isset($data['items']) ? $data['items'] : array(),  | 
                                                        |
| 263 | + 'excluded_items' => isset($data['excluded_items']) ? $data['excluded_items'] : array(),  | 
                                                        |
| 264 | + 'is_recurring' => isset($data['recurring']) ? (bool) $data['recurring'] : false,  | 
                                                        |
| 265 | + 'is_single_use' => isset($data['single_use']) ? (bool) $data['single_use'] : false,  | 
                                                        |
| 266 | + 'uses' => isset($data['uses']) ? (int) $data['uses'] : false,  | 
                                                        |
| 267 | 267 | );  | 
                                                        
| 268 | 268 | |
| 269 | -    if ( $meta['type'] == 'percent' && (float)$meta['amount'] > 100 ) { | 
                                                        |
| 269 | +    if ($meta['type'] == 'percent' && (float) $meta['amount'] > 100) { | 
                                                        |
| 270 | 270 | $meta['amount'] = 100;  | 
                                                        
| 271 | 271 | }  | 
                                                        
| 272 | 272 | |
| 273 | -    if ( !empty( $meta['start'] ) ) { | 
                                                        |
| 274 | - $meta['start'] = date_i18n( 'Y-m-d H:i:s', strtotime( $meta['start'] ) );  | 
                                                        |
| 273 | +    if (!empty($meta['start'])) { | 
                                                        |
| 274 | +        $meta['start'] = date_i18n('Y-m-d H:i:s', strtotime($meta['start'])); | 
                                                        |
| 275 | 275 | }  | 
                                                        
| 276 | 276 | |
| 277 | -    if ( !empty( $meta['expiration'] ) ) { | 
                                                        |
| 278 | - $meta['expiration'] = date_i18n( 'Y-m-d H:i:s', strtotime( $meta['expiration'] ) );  | 
                                                        |
| 277 | +    if (!empty($meta['expiration'])) { | 
                                                        |
| 278 | +        $meta['expiration'] = date_i18n('Y-m-d H:i:s', strtotime($meta['expiration'])); | 
                                                        |
| 279 | 279 | |
| 280 | -        if ( !empty( $meta['start'] ) && strtotime( $meta['start'] ) > strtotime( $meta['expiration'] ) ) { | 
                                                        |
| 280 | +        if (!empty($meta['start']) && strtotime($meta['start']) > strtotime($meta['expiration'])) { | 
                                                        |
| 281 | 281 | $meta['expiration'] = $meta['start'];  | 
                                                        
| 282 | 282 | }  | 
                                                        
| 283 | 283 | }  | 
                                                        
| 284 | 284 | |
| 285 | -    if ( $meta['uses'] === false ) { | 
                                                        |
| 286 | - unset( $meta['uses'] );  | 
                                                        |
| 285 | +    if ($meta['uses'] === false) { | 
                                                        |
| 286 | + unset($meta['uses']);  | 
                                                        |
| 287 | 287 | }  | 
                                                        
| 288 | 288 | |
| 289 | -    if ( ! empty( $meta['items'] ) ) { | 
                                                        |
| 290 | -        foreach ( $meta['items'] as $key => $item ) { | 
                                                        |
| 291 | -            if ( 0 === intval( $item ) ) { | 
                                                        |
| 292 | - unset( $meta['items'][ $key ] );  | 
                                                        |
| 289 | +    if (!empty($meta['items'])) { | 
                                                        |
| 290 | +        foreach ($meta['items'] as $key => $item) { | 
                                                        |
| 291 | +            if (0 === intval($item)) { | 
                                                        |
| 292 | + unset($meta['items'][$key]);  | 
                                                        |
| 293 | 293 | }  | 
                                                        
| 294 | 294 | }  | 
                                                        
| 295 | 295 | }  | 
                                                        
| 296 | 296 | |
| 297 | -    if ( ! empty( $meta['excluded_items'] ) ) { | 
                                                        |
| 298 | -        foreach ( $meta['excluded_items'] as $key => $item ) { | 
                                                        |
| 299 | -            if ( 0 === intval( $item ) ) { | 
                                                        |
| 300 | - unset( $meta['excluded_items'][ $key ] );  | 
                                                        |
| 297 | +    if (!empty($meta['excluded_items'])) { | 
                                                        |
| 298 | +        foreach ($meta['excluded_items'] as $key => $item) { | 
                                                        |
| 299 | +            if (0 === intval($item)) { | 
                                                        |
| 300 | + unset($meta['excluded_items'][$key]);  | 
                                                        |
| 301 | 301 | }  | 
                                                        
| 302 | 302 | }  | 
                                                        
| 303 | 303 | }  | 
                                                        
| 304 | 304 | |
| 305 | - $meta = apply_filters( 'wpinv_update_discount', $meta, $post_id, $post );  | 
                                                        |
| 305 | +    $meta = apply_filters('wpinv_update_discount', $meta, $post_id, $post); | 
                                                        |
| 306 | 306 | |
| 307 | - do_action( 'wpinv_pre_update_discount', $meta, $post_id, $post );  | 
                                                        |
| 307 | +    do_action('wpinv_pre_update_discount', $meta, $post_id, $post); | 
                                                        |
| 308 | 308 | |
| 309 | -    foreach( $meta as $key => $value ) { | 
                                                        |
| 310 | - update_post_meta( $post_id, '_wpi_discount_' . $key, $value );  | 
                                                        |
| 309 | +    foreach ($meta as $key => $value) { | 
                                                        |
| 310 | + update_post_meta($post_id, '_wpi_discount_' . $key, $value);  | 
                                                        |
| 311 | 311 | }  | 
                                                        
| 312 | 312 | |
| 313 | - do_action( 'wpinv_post_update_discount', $meta, $post_id, $post );  | 
                                                        |
| 313 | +    do_action('wpinv_post_update_discount', $meta, $post_id, $post); | 
                                                        |
| 314 | 314 | |
| 315 | 315 | return $post_id;  | 
                                                        
| 316 | 316 | }  | 
                                                        
@@ -321,10 +321,10 @@ discard block  | 
                                                    ||
| 321 | 321 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 322 | 322 | * @return bool  | 
                                                        
| 323 | 323 | */  | 
                                                        
| 324 | -function wpinv_remove_discount( $discount = 0 ) { | 
                                                        |
| 324 | +function wpinv_remove_discount($discount = 0) { | 
                                                        |
| 325 | 325 | |
| 326 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 327 | -    if( ! $discount->exists() ) { | 
                                                        |
| 326 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 327 | +    if (!$discount->exists()) { | 
                                                        |
| 328 | 328 | return false;  | 
                                                        
| 329 | 329 | }  | 
                                                        
| 330 | 330 | |
@@ -339,9 +339,9 @@ discard block  | 
                                                    ||
| 339 | 339 | * @param string $new_status  | 
                                                        
| 340 | 340 | * @return bool  | 
                                                        
| 341 | 341 | */  | 
                                                        
| 342 | -function wpinv_update_discount_status( $discount = 0, $new_status = 'publish' ) { | 
                                                        |
| 343 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 344 | - return $discount->update_status( $new_status );  | 
                                                        |
| 342 | +function wpinv_update_discount_status($discount = 0, $new_status = 'publish') { | 
                                                        |
| 343 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 344 | + return $discount->update_status($new_status);  | 
                                                        |
| 345 | 345 | }  | 
                                                        
| 346 | 346 | |
| 347 | 347 | /**  | 
                                                        
@@ -350,48 +350,48 @@ discard block  | 
                                                    ||
| 350 | 350 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 351 | 351 | * @return bool  | 
                                                        
| 352 | 352 | */  | 
                                                        
| 353 | -function wpinv_discount_exists( $discount ) { | 
                                                        |
| 354 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 353 | +function wpinv_discount_exists($discount) { | 
                                                        |
| 354 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 355 | 355 | return $discount->exists();  | 
                                                        
| 356 | 356 | }  | 
                                                        
| 357 | 357 | |
| 358 | -function wpinv_is_discount_active( $code_id = null ) { | 
                                                        |
| 359 | - $discount = wpinv_get_discount( $code_id );  | 
                                                        |
| 358 | +function wpinv_is_discount_active($code_id = null) { | 
                                                        |
| 359 | + $discount = wpinv_get_discount($code_id);  | 
                                                        |
| 360 | 360 | $return = false;  | 
                                                        
| 361 | 361 | |
| 362 | -    if ( $discount ) { | 
                                                        |
| 363 | -        if ( wpinv_is_discount_expired( $code_id ) ) { | 
                                                        |
| 364 | -            if( defined( 'DOING_AJAX' ) ) { | 
                                                        |
| 365 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount is expired.', 'invoicing' ) );  | 
                                                        |
| 362 | +    if ($discount) { | 
                                                        |
| 363 | +        if (wpinv_is_discount_expired($code_id)) { | 
                                                        |
| 364 | +            if (defined('DOING_AJAX')) { | 
                                                        |
| 365 | +                wpinv_set_error('wpinv-discount-error', __('This discount is expired.', 'invoicing')); | 
                                                        |
| 366 | 366 | }  | 
                                                        
| 367 | -        } elseif ( $discount->post_status == 'publish' ) { | 
                                                        |
| 367 | +        } elseif ($discount->post_status == 'publish') { | 
                                                        |
| 368 | 368 | $return = true;  | 
                                                        
| 369 | 369 |          } else { | 
                                                        
| 370 | -            if( defined( 'DOING_AJAX' ) ) { | 
                                                        |
| 371 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount is not active.', 'invoicing' ) );  | 
                                                        |
| 370 | +            if (defined('DOING_AJAX')) { | 
                                                        |
| 371 | +                wpinv_set_error('wpinv-discount-error', __('This discount is not active.', 'invoicing')); | 
                                                        |
| 372 | 372 | }  | 
                                                        
| 373 | 373 | }  | 
                                                        
| 374 | 374 | }  | 
                                                        
| 375 | 375 | |
| 376 | - return apply_filters( 'wpinv_is_discount_active', $return, $code_id );  | 
                                                        |
| 376 | +    return apply_filters('wpinv_is_discount_active', $return, $code_id); | 
                                                        |
| 377 | 377 | }  | 
                                                        
| 378 | 378 | |
| 379 | -function wpinv_get_discount_code( $code_id = null ) { | 
                                                        |
| 380 | - $code = get_post_meta( $code_id, '_wpi_discount_code', true );  | 
                                                        |
| 379 | +function wpinv_get_discount_code($code_id = null) { | 
                                                        |
| 380 | + $code = get_post_meta($code_id, '_wpi_discount_code', true);  | 
                                                        |
| 381 | 381 | |
| 382 | - return apply_filters( 'wpinv_get_discount_code', $code, $code_id );  | 
                                                        |
| 382 | +    return apply_filters('wpinv_get_discount_code', $code, $code_id); | 
                                                        |
| 383 | 383 | }  | 
                                                        
| 384 | 384 | |
| 385 | -function wpinv_get_discount_start_date( $code_id = null ) { | 
                                                        |
| 386 | - $start_date = get_post_meta( $code_id, '_wpi_discount_start', true );  | 
                                                        |
| 385 | +function wpinv_get_discount_start_date($code_id = null) { | 
                                                        |
| 386 | + $start_date = get_post_meta($code_id, '_wpi_discount_start', true);  | 
                                                        |
| 387 | 387 | |
| 388 | - return apply_filters( 'wpinv_get_discount_start_date', $start_date, $code_id );  | 
                                                        |
| 388 | +    return apply_filters('wpinv_get_discount_start_date', $start_date, $code_id); | 
                                                        |
| 389 | 389 | }  | 
                                                        
| 390 | 390 | |
| 391 | -function wpinv_get_discount_expiration( $code_id = null ) { | 
                                                        |
| 392 | - $expiration = get_post_meta( $code_id, '_wpi_discount_expiration', true );  | 
                                                        |
| 391 | +function wpinv_get_discount_expiration($code_id = null) { | 
                                                        |
| 392 | + $expiration = get_post_meta($code_id, '_wpi_discount_expiration', true);  | 
                                                        |
| 393 | 393 | |
| 394 | - return apply_filters( 'wpinv_get_discount_expiration', $expiration, $code_id );  | 
                                                        |
| 394 | +    return apply_filters('wpinv_get_discount_expiration', $expiration, $code_id); | 
                                                        |
| 395 | 395 | }  | 
                                                        
| 396 | 396 | |
| 397 | 397 | /**  | 
                                                        
@@ -400,8 +400,8 @@ discard block  | 
                                                    ||
| 400 | 400 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 401 | 401 | * @return int  | 
                                                        
| 402 | 402 | */  | 
                                                        
| 403 | -function wpinv_get_discount_max_uses( $discount = array() ) { | 
                                                        |
| 404 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 403 | +function wpinv_get_discount_max_uses($discount = array()) { | 
                                                        |
| 404 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 405 | 405 | return (int) $discount->max_uses;  | 
                                                        
| 406 | 406 | }  | 
                                                        
| 407 | 407 | |
@@ -411,8 +411,8 @@ discard block  | 
                                                    ||
| 411 | 411 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 412 | 412 | * @return int  | 
                                                        
| 413 | 413 | */  | 
                                                        
| 414 | -function wpinv_get_discount_uses( $discount = array() ) { | 
                                                        |
| 415 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 414 | +function wpinv_get_discount_uses($discount = array()) { | 
                                                        |
| 415 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 416 | 416 | return (int) $discount->uses;  | 
                                                        
| 417 | 417 | }  | 
                                                        
| 418 | 418 | |
@@ -422,8 +422,8 @@ discard block  | 
                                                    ||
| 422 | 422 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 423 | 423 | * @return float  | 
                                                        
| 424 | 424 | */  | 
                                                        
| 425 | -function wpinv_get_discount_min_total( $discount = array() ) { | 
                                                        |
| 426 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 425 | +function wpinv_get_discount_min_total($discount = array()) { | 
                                                        |
| 426 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 427 | 427 | return (float) $discount->min_total;  | 
                                                        
| 428 | 428 | }  | 
                                                        
| 429 | 429 | |
@@ -433,8 +433,8 @@ discard block  | 
                                                    ||
| 433 | 433 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 434 | 434 | * @return float  | 
                                                        
| 435 | 435 | */  | 
                                                        
| 436 | -function wpinv_get_discount_max_total( $discount = array() ) { | 
                                                        |
| 437 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 436 | +function wpinv_get_discount_max_total($discount = array()) { | 
                                                        |
| 437 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 438 | 438 | return (float) $discount->max_total;  | 
                                                        
| 439 | 439 | }  | 
                                                        
| 440 | 440 | |
@@ -444,8 +444,8 @@ discard block  | 
                                                    ||
| 444 | 444 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 445 | 445 | * @return float  | 
                                                        
| 446 | 446 | */  | 
                                                        
| 447 | -function wpinv_get_discount_amount( $discount = array() ) { | 
                                                        |
| 448 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 447 | +function wpinv_get_discount_amount($discount = array()) { | 
                                                        |
| 448 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 449 | 449 | return (float) $discount->amount;  | 
                                                        
| 450 | 450 | }  | 
                                                        
| 451 | 451 | |
@@ -456,28 +456,28 @@ discard block  | 
                                                    ||
| 456 | 456 | * @param bool $name  | 
                                                        
| 457 | 457 | * @return string  | 
                                                        
| 458 | 458 | */  | 
                                                        
| 459 | -function wpinv_get_discount_type( $discount = array(), $name = false ) { | 
                                                        |
| 460 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 459 | +function wpinv_get_discount_type($discount = array(), $name = false) { | 
                                                        |
| 460 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 461 | 461 | |
| 462 | 462 | // Are we returning the name or just the type.  | 
                                                        
| 463 | -    if( $name ) { | 
                                                        |
| 463 | +    if ($name) { | 
                                                        |
| 464 | 464 | return $discount->type_name;  | 
                                                        
| 465 | 465 | }  | 
                                                        
| 466 | 466 | |
| 467 | 467 | return $discount->type;  | 
                                                        
| 468 | 468 | }  | 
                                                        
| 469 | 469 | |
| 470 | -function wpinv_discount_status( $status ) { | 
                                                        |
| 471 | -    switch( $status ){ | 
                                                        |
| 470 | +function wpinv_discount_status($status) { | 
                                                        |
| 471 | +    switch ($status) { | 
                                                        |
| 472 | 472 | case 'expired' :  | 
                                                        
| 473 | - $name = __( 'Expired', 'invoicing' );  | 
                                                        |
| 473 | +            $name = __('Expired', 'invoicing'); | 
                                                        |
| 474 | 474 | break;  | 
                                                        
| 475 | 475 | case 'publish' :  | 
                                                        
| 476 | 476 | case 'active' :  | 
                                                        
| 477 | - $name = __( 'Active', 'invoicing' );  | 
                                                        |
| 477 | +            $name = __('Active', 'invoicing'); | 
                                                        |
| 478 | 478 | break;  | 
                                                        
| 479 | 479 | default :  | 
                                                        
| 480 | - $name = __( 'Inactive', 'invoicing' );  | 
                                                        |
| 480 | +            $name = __('Inactive', 'invoicing'); | 
                                                        |
| 481 | 481 | break;  | 
                                                        
| 482 | 482 | }  | 
                                                        
| 483 | 483 | return $name;  | 
                                                        
@@ -489,8 +489,8 @@ discard block  | 
                                                    ||
| 489 | 489 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 490 | 490 | * @return array  | 
                                                        
| 491 | 491 | */  | 
                                                        
| 492 | -function wpinv_get_discount_excluded_items( $discount = array() ) { | 
                                                        |
| 493 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 492 | +function wpinv_get_discount_excluded_items($discount = array()) { | 
                                                        |
| 493 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 494 | 494 | return $discount->excluded_items;  | 
                                                        
| 495 | 495 | }  | 
                                                        
| 496 | 496 | |
@@ -500,17 +500,17 @@ discard block  | 
                                                    ||
| 500 | 500 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 501 | 501 | * @return array  | 
                                                        
| 502 | 502 | */  | 
                                                        
| 503 | -function wpinv_get_discount_item_reqs( $discount = array() ) { | 
                                                        |
| 504 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 503 | +function wpinv_get_discount_item_reqs($discount = array()) { | 
                                                        |
| 504 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 505 | 505 | return $discount->items;  | 
                                                        
| 506 | 506 | }  | 
                                                        
| 507 | 507 | |
| 508 | -function wpinv_get_discount_item_condition( $code_id = 0 ) { | 
                                                        |
| 509 | - return get_post_meta( $code_id, '_wpi_discount_item_condition', true );  | 
                                                        |
| 508 | +function wpinv_get_discount_item_condition($code_id = 0) { | 
                                                        |
| 509 | + return get_post_meta($code_id, '_wpi_discount_item_condition', true);  | 
                                                        |
| 510 | 510 | }  | 
                                                        
| 511 | 511 | |
| 512 | -function wpinv_is_discount_not_global( $code_id = 0 ) { | 
                                                        |
| 513 | - return (bool) get_post_meta( $code_id, '_wpi_discount_is_not_global', true );  | 
                                                        |
| 512 | +function wpinv_is_discount_not_global($code_id = 0) { | 
                                                        |
| 513 | + return (bool) get_post_meta($code_id, '_wpi_discount_is_not_global', true);  | 
                                                        |
| 514 | 514 | }  | 
                                                        
| 515 | 515 | |
| 516 | 516 | /**  | 
                                                        
@@ -519,14 +519,14 @@ discard block  | 
                                                    ||
| 519 | 519 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 520 | 520 | * @return bool  | 
                                                        
| 521 | 521 | */  | 
                                                        
| 522 | -function wpinv_is_discount_expired( $discount = array() ) { | 
                                                        |
| 523 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 522 | +function wpinv_is_discount_expired($discount = array()) { | 
                                                        |
| 523 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 524 | 524 | |
| 525 | -    if ( $discount->is_expired() ) { | 
                                                        |
| 526 | - $discount->update_status( 'pending' );  | 
                                                        |
| 525 | +    if ($discount->is_expired()) { | 
                                                        |
| 526 | +        $discount->update_status('pending'); | 
                                                        |
| 527 | 527 | |
| 528 | -        if( empty( $started ) ) { | 
                                                        |
| 529 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount has expired.', 'invoicing' ) );  | 
                                                        |
| 528 | +        if (empty($started)) { | 
                                                        |
| 529 | +            wpinv_set_error('wpinv-discount-error', __('This discount has expired.', 'invoicing')); | 
                                                        |
| 530 | 530 | }  | 
                                                        
| 531 | 531 | return true;  | 
                                                        
| 532 | 532 | }  | 
                                                        
@@ -540,12 +540,12 @@ discard block  | 
                                                    ||
| 540 | 540 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 541 | 541 | * @return bool  | 
                                                        
| 542 | 542 | */  | 
                                                        
| 543 | -function wpinv_is_discount_started( $discount = array() ) { | 
                                                        |
| 544 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 543 | +function wpinv_is_discount_started($discount = array()) { | 
                                                        |
| 544 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 545 | 545 | $started = $discount->has_started();  | 
                                                        
| 546 | 546 | |
| 547 | -    if( empty( $started ) ) { | 
                                                        |
| 548 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount is not active yet.', 'invoicing' ) );  | 
                                                        |
| 547 | +    if (empty($started)) { | 
                                                        |
| 548 | +        wpinv_set_error('wpinv-discount-error', __('This discount is not active yet.', 'invoicing')); | 
                                                        |
| 549 | 549 | }  | 
                                                        
| 550 | 550 | |
| 551 | 551 | return $started;  | 
                                                        
@@ -557,10 +557,10 @@ discard block  | 
                                                    ||
| 557 | 557 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 558 | 558 | * @return bool  | 
                                                        
| 559 | 559 | */  | 
                                                        
| 560 | -function wpinv_check_discount_dates( $discount ) { | 
                                                        |
| 561 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 562 | - $return = wpinv_is_discount_started( $discount ) && ! wpinv_is_discount_expired( $discount );  | 
                                                        |
| 563 | - return apply_filters( 'wpinv_check_discount_dates', $return, $discount->ID, $discount, $discount->code );  | 
                                                        |
| 560 | +function wpinv_check_discount_dates($discount) { | 
                                                        |
| 561 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 562 | + $return = wpinv_is_discount_started($discount) && !wpinv_is_discount_expired($discount);  | 
                                                        |
| 563 | +    return apply_filters('wpinv_check_discount_dates', $return, $discount->ID, $discount, $discount->code); | 
                                                        |
| 564 | 564 | }  | 
                                                        
| 565 | 565 | |
| 566 | 566 | /**  | 
                                                        
@@ -569,12 +569,12 @@ discard block  | 
                                                    ||
| 569 | 569 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 570 | 570 | * @return bool  | 
                                                        
| 571 | 571 | */  | 
                                                        
| 572 | -function wpinv_is_discount_maxed_out( $discount ) { | 
                                                        |
| 573 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 572 | +function wpinv_is_discount_maxed_out($discount) { | 
                                                        |
| 573 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 574 | 574 | $maxed_out = $discount->has_exceeded_limit();  | 
                                                        
| 575 | 575 | |
| 576 | -    if ( $maxed_out ) { | 
                                                        |
| 577 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount has reached its maximum usage.', 'invoicing' ) );  | 
                                                        |
| 576 | +    if ($maxed_out) { | 
                                                        |
| 577 | +        wpinv_set_error('wpinv-discount-error', __('This discount has reached its maximum usage.', 'invoicing')); | 
                                                        |
| 578 | 578 | }  | 
                                                        
| 579 | 579 | |
| 580 | 580 | return $maxed_out;  | 
                                                        
@@ -586,13 +586,13 @@ discard block  | 
                                                    ||
| 586 | 586 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 587 | 587 | * @return bool  | 
                                                        
| 588 | 588 | */  | 
                                                        
| 589 | -function wpinv_discount_is_min_met( $discount ) { | 
                                                        |
| 590 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 591 | - $cart_amount = (float)wpinv_get_cart_discountable_subtotal( $discount->ID );  | 
                                                        |
| 592 | - $min_met = $discount->is_minimum_amount_met( $cart_amount );  | 
                                                        |
| 589 | +function wpinv_discount_is_min_met($discount) { | 
                                                        |
| 590 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 591 | + $cart_amount = (float) wpinv_get_cart_discountable_subtotal($discount->ID);  | 
                                                        |
| 592 | + $min_met = $discount->is_minimum_amount_met($cart_amount);  | 
                                                        |
| 593 | 593 | |
| 594 | -    if ( ! $min_met ) { | 
                                                        |
| 595 | - wpinv_set_error( 'wpinv-discount-error', sprintf( __( 'Minimum invoice amount should be %s', 'invoicing' ), wpinv_price( wpinv_format_amount( $discount->min_total ) ) ) );  | 
                                                        |
| 594 | +    if (!$min_met) { | 
                                                        |
| 595 | +        wpinv_set_error('wpinv-discount-error', sprintf(__('Minimum invoice amount should be %s', 'invoicing'), wpinv_price(wpinv_format_amount($discount->min_total)))); | 
                                                        |
| 596 | 596 | }  | 
                                                        
| 597 | 597 | |
| 598 | 598 | return $min_met;  | 
                                                        
@@ -604,13 +604,13 @@ discard block  | 
                                                    ||
| 604 | 604 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 605 | 605 | * @return bool  | 
                                                        
| 606 | 606 | */  | 
                                                        
| 607 | -function wpinv_discount_is_max_met( $discount ) { | 
                                                        |
| 608 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 609 | - $cart_amount = (float)wpinv_get_cart_discountable_subtotal( $discount->ID );  | 
                                                        |
| 610 | - $max_met = $discount->is_maximum_amount_met( $cart_amount );  | 
                                                        |
| 607 | +function wpinv_discount_is_max_met($discount) { | 
                                                        |
| 608 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 609 | + $cart_amount = (float) wpinv_get_cart_discountable_subtotal($discount->ID);  | 
                                                        |
| 610 | + $max_met = $discount->is_maximum_amount_met($cart_amount);  | 
                                                        |
| 611 | 611 | |
| 612 | -    if ( ! $max_met ) { | 
                                                        |
| 613 | - wpinv_set_error( 'wpinv-discount-error', sprintf( __( 'Maximum invoice amount should be %s', 'invoicing' ), wpinv_price( wpinv_format_amount( $discount->max_total ) ) ) );  | 
                                                        |
| 612 | +    if (!$max_met) { | 
                                                        |
| 613 | +        wpinv_set_error('wpinv-discount-error', sprintf(__('Maximum invoice amount should be %s', 'invoicing'), wpinv_price(wpinv_format_amount($discount->max_total)))); | 
                                                        |
| 614 | 614 | }  | 
                                                        
| 615 | 615 | |
| 616 | 616 | return $max_met;  | 
                                                        
@@ -622,8 +622,8 @@ discard block  | 
                                                    ||
| 622 | 622 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 623 | 623 | * @return bool  | 
                                                        
| 624 | 624 | */  | 
                                                        
| 625 | -function wpinv_discount_is_single_use( $discount ) { | 
                                                        |
| 626 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 625 | +function wpinv_discount_is_single_use($discount) { | 
                                                        |
| 626 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 627 | 627 | return $discount->is_single_use;  | 
                                                        
| 628 | 628 | }  | 
                                                        
| 629 | 629 | |
@@ -634,53 +634,53 @@ discard block  | 
                                                    ||
| 634 | 634 | * @param int|array|string|WPInv_Discount $code discount data, object, ID or code.  | 
                                                        
| 635 | 635 | * @return bool  | 
                                                        
| 636 | 636 | */  | 
                                                        
| 637 | -function wpinv_discount_is_recurring( $discount = 0, $code = 0 ) { | 
                                                        |
| 637 | +function wpinv_discount_is_recurring($discount = 0, $code = 0) { | 
                                                        |
| 638 | 638 | |
| 639 | -    if( ! empty( $discount ) ) { | 
                                                        |
| 640 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 639 | +    if (!empty($discount)) { | 
                                                        |
| 640 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 641 | 641 |      } else { | 
                                                        
| 642 | - $discount = wpinv_get_discount_obj( $code );  | 
                                                        |
| 642 | + $discount = wpinv_get_discount_obj($code);  | 
                                                        |
| 643 | 643 | }  | 
                                                        
| 644 | 644 | |
| 645 | 645 | return $discount->is_recurring;  | 
                                                        
| 646 | 646 | }  | 
                                                        
| 647 | 647 | |
| 648 | -function wpinv_discount_item_reqs_met( $code_id = null ) { | 
                                                        |
| 649 | - $item_reqs = wpinv_get_discount_item_reqs( $code_id );  | 
                                                        |
| 650 | - $condition = wpinv_get_discount_item_condition( $code_id );  | 
                                                        |
| 651 | - $excluded_ps = wpinv_get_discount_excluded_items( $code_id );  | 
                                                        |
| 648 | +function wpinv_discount_item_reqs_met($code_id = null) { | 
                                                        |
| 649 | + $item_reqs = wpinv_get_discount_item_reqs($code_id);  | 
                                                        |
| 650 | + $condition = wpinv_get_discount_item_condition($code_id);  | 
                                                        |
| 651 | + $excluded_ps = wpinv_get_discount_excluded_items($code_id);  | 
                                                        |
| 652 | 652 | $cart_items = wpinv_get_cart_contents();  | 
                                                        
| 653 | - $cart_ids = $cart_items ? wp_list_pluck( $cart_items, 'id' ) : null;  | 
                                                        |
| 653 | + $cart_ids = $cart_items ? wp_list_pluck($cart_items, 'id') : null;  | 
                                                        |
| 654 | 654 | $ret = false;  | 
                                                        
| 655 | 655 | |
| 656 | -    if ( empty( $item_reqs ) && empty( $excluded_ps ) ) { | 
                                                        |
| 656 | +    if (empty($item_reqs) && empty($excluded_ps)) { | 
                                                        |
| 657 | 657 | $ret = true;  | 
                                                        
| 658 | 658 | }  | 
                                                        
| 659 | 659 | |
| 660 | 660 | // Normalize our data for item requirements, exclusions and cart data  | 
                                                        
| 661 | 661 | // First absint the items, then sort, and reset the array keys  | 
                                                        
| 662 | - $item_reqs = array_map( 'absint', $item_reqs );  | 
                                                        |
| 663 | - asort( $item_reqs );  | 
                                                        |
| 664 | - $item_reqs = array_values( $item_reqs );  | 
                                                        |
| 662 | +    $item_reqs = array_map('absint', $item_reqs); | 
                                                        |
| 663 | + asort($item_reqs);  | 
                                                        |
| 664 | + $item_reqs = array_values($item_reqs);  | 
                                                        |
| 665 | 665 | |
| 666 | - $excluded_ps = array_map( 'absint', $excluded_ps );  | 
                                                        |
| 667 | - asort( $excluded_ps );  | 
                                                        |
| 668 | - $excluded_ps = array_values( $excluded_ps );  | 
                                                        |
| 666 | +    $excluded_ps  = array_map('absint', $excluded_ps); | 
                                                        |
| 667 | + asort($excluded_ps);  | 
                                                        |
| 668 | + $excluded_ps = array_values($excluded_ps);  | 
                                                        |
| 669 | 669 | |
| 670 | - $cart_ids = array_map( 'absint', $cart_ids );  | 
                                                        |
| 671 | - asort( $cart_ids );  | 
                                                        |
| 672 | - $cart_ids = array_values( $cart_ids );  | 
                                                        |
| 670 | +    $cart_ids     = array_map('absint', $cart_ids); | 
                                                        |
| 671 | + asort($cart_ids);  | 
                                                        |
| 672 | + $cart_ids = array_values($cart_ids);  | 
                                                        |
| 673 | 673 | |
| 674 | 674 | // Ensure we have requirements before proceeding  | 
                                                        
| 675 | -    if ( !$ret && ! empty( $item_reqs ) ) { | 
                                                        |
| 676 | -        switch( $condition ) { | 
                                                        |
| 675 | +    if (!$ret && !empty($item_reqs)) { | 
                                                        |
| 676 | +        switch ($condition) { | 
                                                        |
| 677 | 677 | case 'all' :  | 
                                                        
| 678 | 678 | // Default back to true  | 
                                                        
| 679 | 679 | $ret = true;  | 
                                                        
| 680 | 680 | |
| 681 | -                foreach ( $item_reqs as $item_id ) { | 
                                                        |
| 682 | -                    if ( !wpinv_item_in_cart( $item_id ) ) { | 
                                                        |
| 683 | - wpinv_set_error( 'wpinv-discount-error', __( 'The item requirements for this discount are not met.', 'invoicing' ) );  | 
                                                        |
| 681 | +                foreach ($item_reqs as $item_id) { | 
                                                        |
| 682 | +                    if (!wpinv_item_in_cart($item_id)) { | 
                                                        |
| 683 | +                        wpinv_set_error('wpinv-discount-error', __('The item requirements for this discount are not met.', 'invoicing')); | 
                                                        |
| 684 | 684 | $ret = false;  | 
                                                        
| 685 | 685 | break;  | 
                                                        
| 686 | 686 | }  | 
                                                        
@@ -689,15 +689,15 @@ discard block  | 
                                                    ||
| 689 | 689 | break;  | 
                                                        
| 690 | 690 | |
| 691 | 691 | default : // Any  | 
                                                        
| 692 | -                foreach ( $item_reqs as $item_id ) { | 
                                                        |
| 693 | -                    if ( wpinv_item_in_cart( $item_id ) ) { | 
                                                        |
| 692 | +                foreach ($item_reqs as $item_id) { | 
                                                        |
| 693 | +                    if (wpinv_item_in_cart($item_id)) { | 
                                                        |
| 694 | 694 | $ret = true;  | 
                                                        
| 695 | 695 | break;  | 
                                                        
| 696 | 696 | }  | 
                                                        
| 697 | 697 | }  | 
                                                        
| 698 | 698 | |
| 699 | -                if( ! $ret ) { | 
                                                        |
| 700 | - wpinv_set_error( 'wpinv-discount-error', __( 'The item requirements for this discount are not met.', 'invoicing' ) );  | 
                                                        |
| 699 | +                if (!$ret) { | 
                                                        |
| 700 | +                    wpinv_set_error('wpinv-discount-error', __('The item requirements for this discount are not met.', 'invoicing')); | 
                                                        |
| 701 | 701 | }  | 
                                                        
| 702 | 702 | |
| 703 | 703 | break;  | 
                                                        
@@ -706,15 +706,15 @@ discard block  | 
                                                    ||
| 706 | 706 | $ret = true;  | 
                                                        
| 707 | 707 | }  | 
                                                        
| 708 | 708 | |
| 709 | -    if( ! empty( $excluded_ps ) ) { | 
                                                        |
| 709 | +    if (!empty($excluded_ps)) { | 
                                                        |
| 710 | 710 | // Check that there are items other than excluded ones in the cart  | 
                                                        
| 711 | -        if( $cart_ids == $excluded_ps ) { | 
                                                        |
| 712 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount is not valid for the cart contents.', 'invoicing' ) );  | 
                                                        |
| 711 | +        if ($cart_ids == $excluded_ps) { | 
                                                        |
| 712 | +            wpinv_set_error('wpinv-discount-error', __('This discount is not valid for the cart contents.', 'invoicing')); | 
                                                        |
| 713 | 713 | $ret = false;  | 
                                                        
| 714 | 714 | }  | 
                                                        
| 715 | 715 | }  | 
                                                        
| 716 | 716 | |
| 717 | - return (bool) apply_filters( 'wpinv_is_discount_item_req_met', $ret, $code_id, $condition );  | 
                                                        |
| 717 | +    return (bool) apply_filters('wpinv_is_discount_item_req_met', $ret, $code_id, $condition); | 
                                                        |
| 718 | 718 | }  | 
                                                        
| 719 | 719 | |
| 720 | 720 | /**  | 
                                                        
@@ -725,53 +725,53 @@ discard block  | 
                                                    ||
| 725 | 725 | * @param int|array|string|WPInv_Discount $code_id discount data, object, ID or code.  | 
                                                        
| 726 | 726 | * @return bool  | 
                                                        
| 727 | 727 | */  | 
                                                        
| 728 | -function wpinv_is_discount_used( $discount = array(), $user = '', $code_id = array() ) { | 
                                                        |
| 728 | +function wpinv_is_discount_used($discount = array(), $user = '', $code_id = array()) { | 
                                                        |
| 729 | 729 | |
| 730 | -    if( ! empty( $discount ) ) { | 
                                                        |
| 731 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 730 | +    if (!empty($discount)) { | 
                                                        |
| 731 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 732 | 732 |      } else { | 
                                                        
| 733 | - $discount = wpinv_get_discount_obj( $code_id );  | 
                                                        |
| 733 | + $discount = wpinv_get_discount_obj($code_id);  | 
                                                        |
| 734 | 734 | }  | 
                                                        
| 735 | 735 | |
| 736 | - $is_used = ! $discount->is_valid_for_user( $user );  | 
                                                        |
| 737 | - $is_used = apply_filters( 'wpinv_is_discount_used', $is_used, $discount->code, $user, $discount->ID, $discount );  | 
                                                        |
| 736 | + $is_used = !$discount->is_valid_for_user($user);  | 
                                                        |
| 737 | +    $is_used = apply_filters('wpinv_is_discount_used', $is_used, $discount->code, $user, $discount->ID, $discount); | 
                                                        |
| 738 | 738 | |
| 739 | -    if( $is_used ) { | 
                                                        |
| 740 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount has already been redeemed.', 'invoicing' ) );  | 
                                                        |
| 739 | +    if ($is_used) { | 
                                                        |
| 740 | +        wpinv_set_error('wpinv-discount-error', __('This discount has already been redeemed.', 'invoicing')); | 
                                                        |
| 741 | 741 | }  | 
                                                        
| 742 | 742 | |
| 743 | 743 | return $is_used;  | 
                                                        
| 744 | 744 | }  | 
                                                        
| 745 | 745 | |
| 746 | -function wpinv_is_discount_valid( $code = '', $user = '', $set_error = true ) { | 
                                                        |
| 746 | +function wpinv_is_discount_valid($code = '', $user = '', $set_error = true) { | 
                                                        |
| 747 | 747 | $return = false;  | 
                                                        
| 748 | - $discount_id = wpinv_get_discount_id_by_code( $code );  | 
                                                        |
| 749 | - $user = trim( $user );  | 
                                                        |
| 748 | + $discount_id = wpinv_get_discount_id_by_code($code);  | 
                                                        |
| 749 | + $user = trim($user);  | 
                                                        |
| 750 | 750 | |
| 751 | -    if ( wpinv_get_cart_contents() ) { | 
                                                        |
| 752 | -        if ( $discount_id !== false ) { | 
                                                        |
| 751 | +    if (wpinv_get_cart_contents()) { | 
                                                        |
| 752 | +        if ($discount_id !== false) { | 
                                                        |
| 753 | 753 | if (  | 
                                                        
| 754 | - wpinv_is_discount_active( $discount_id ) &&  | 
                                                        |
| 755 | - wpinv_check_discount_dates( $discount_id ) &&  | 
                                                        |
| 756 | - !wpinv_is_discount_maxed_out( $discount_id ) &&  | 
                                                        |
| 757 | - !wpinv_is_discount_used( $code, $user, $discount_id ) &&  | 
                                                        |
| 758 | - wpinv_discount_is_min_met( $discount_id ) &&  | 
                                                        |
| 759 | - wpinv_discount_is_max_met( $discount_id ) &&  | 
                                                        |
| 760 | - wpinv_discount_item_reqs_met( $discount_id )  | 
                                                        |
| 754 | + wpinv_is_discount_active($discount_id) &&  | 
                                                        |
| 755 | + wpinv_check_discount_dates($discount_id) &&  | 
                                                        |
| 756 | + !wpinv_is_discount_maxed_out($discount_id) &&  | 
                                                        |
| 757 | + !wpinv_is_discount_used($code, $user, $discount_id) &&  | 
                                                        |
| 758 | + wpinv_discount_is_min_met($discount_id) &&  | 
                                                        |
| 759 | + wpinv_discount_is_max_met($discount_id) &&  | 
                                                        |
| 760 | + wpinv_discount_item_reqs_met($discount_id)  | 
                                                        |
| 761 | 761 |              ) { | 
                                                        
| 762 | 762 | $return = true;  | 
                                                        
| 763 | 763 | }  | 
                                                        
| 764 | -        } elseif( $set_error ) { | 
                                                        |
| 765 | - wpinv_set_error( 'wpinv-discount-error', __( 'This discount is invalid.', 'invoicing' ) );  | 
                                                        |
| 764 | +        } elseif ($set_error) { | 
                                                        |
| 765 | +            wpinv_set_error('wpinv-discount-error', __('This discount is invalid.', 'invoicing')); | 
                                                        |
| 766 | 766 | }  | 
                                                        
| 767 | 767 | }  | 
                                                        
| 768 | 768 | |
| 769 | - return apply_filters( 'wpinv_is_discount_valid', $return, $discount_id, $code, $user );  | 
                                                        |
| 769 | +    return apply_filters('wpinv_is_discount_valid', $return, $discount_id, $code, $user); | 
                                                        |
| 770 | 770 | }  | 
                                                        
| 771 | 771 | |
| 772 | -function wpinv_get_discount_id_by_code( $code ) { | 
                                                        |
| 773 | - $discount = wpinv_get_discount_by_code( $code );  | 
                                                        |
| 774 | -    if( $discount ) { | 
                                                        |
| 772 | +function wpinv_get_discount_id_by_code($code) { | 
                                                        |
| 773 | + $discount = wpinv_get_discount_by_code($code);  | 
                                                        |
| 774 | +    if ($discount) { | 
                                                        |
| 775 | 775 | return $discount->ID;  | 
                                                        
| 776 | 776 | }  | 
                                                        
| 777 | 777 | return false;  | 
                                                        
@@ -784,9 +784,9 @@ discard block  | 
                                                    ||
| 784 | 784 | * @param float $base_price The number of usages to increase by  | 
                                                        
| 785 | 785 | * @return float  | 
                                                        
| 786 | 786 | */  | 
                                                        
| 787 | -function wpinv_get_discounted_amount( $discount, $base_price ) { | 
                                                        |
| 788 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 789 | - return $discount->get_discounted_amount( $base_price );  | 
                                                        |
| 787 | +function wpinv_get_discounted_amount($discount, $base_price) { | 
                                                        |
| 788 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 789 | + return $discount->get_discounted_amount($base_price);  | 
                                                        |
| 790 | 790 | }  | 
                                                        
| 791 | 791 | |
| 792 | 792 | /**  | 
                                                        
@@ -796,9 +796,9 @@ discard block  | 
                                                    ||
| 796 | 796 | * @param int $by The number of usages to increase by.  | 
                                                        
| 797 | 797 | * @return int the new number of uses.  | 
                                                        
| 798 | 798 | */  | 
                                                        
| 799 | -function wpinv_increase_discount_usage( $discount, $by = 1 ) { | 
                                                        |
| 800 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 801 | - return $discount->increase_usage( $by );  | 
                                                        |
| 799 | +function wpinv_increase_discount_usage($discount, $by = 1) { | 
                                                        |
| 800 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 801 | + return $discount->increase_usage($by);  | 
                                                        |
| 802 | 802 | }  | 
                                                        
| 803 | 803 | |
| 804 | 804 | /**  | 
                                                        
@@ -808,72 +808,72 @@ discard block  | 
                                                    ||
| 808 | 808 | * @param int $by The number of usages to decrease by.  | 
                                                        
| 809 | 809 | * @return int the new number of uses.  | 
                                                        
| 810 | 810 | */  | 
                                                        
| 811 | -function wpinv_decrease_discount_usage( $discount, $by = 1 ) { | 
                                                        |
| 812 | - $discount = wpinv_get_discount_obj( $discount );  | 
                                                        |
| 813 | - return $discount->increase_usage( 0 - $by );  | 
                                                        |
| 811 | +function wpinv_decrease_discount_usage($discount, $by = 1) { | 
                                                        |
| 812 | + $discount = wpinv_get_discount_obj($discount);  | 
                                                        |
| 813 | + return $discount->increase_usage(0 - $by);  | 
                                                        |
| 814 | 814 | }  | 
                                                        
| 815 | 815 | |
| 816 | -function wpinv_format_discount_rate( $type, $amount ) { | 
                                                        |
| 817 | -    if ( $type == 'flat' ) { | 
                                                        |
| 818 | - $rate = wpinv_price( wpinv_format_amount( $amount ) );  | 
                                                        |
| 816 | +function wpinv_format_discount_rate($type, $amount) { | 
                                                        |
| 817 | +    if ($type == 'flat') { | 
                                                        |
| 818 | + $rate = wpinv_price(wpinv_format_amount($amount));  | 
                                                        |
| 819 | 819 |      } else { | 
                                                        
| 820 | 820 | $rate = $amount . '%';  | 
                                                        
| 821 | 821 | }  | 
                                                        
| 822 | 822 | |
| 823 | - return apply_filters( 'wpinv_format_discount_rate', $rate, $type, $amount );  | 
                                                        |
| 823 | +    return apply_filters('wpinv_format_discount_rate', $rate, $type, $amount); | 
                                                        |
| 824 | 824 | }  | 
                                                        
| 825 | 825 | |
| 826 | -function wpinv_set_cart_discount( $code = '' ) {     | 
                                                        |
| 827 | -    if ( wpinv_multiple_discounts_allowed() ) { | 
                                                        |
| 826 | +function wpinv_set_cart_discount($code = '') {     | 
                                                        |
| 827 | +    if (wpinv_multiple_discounts_allowed()) { | 
                                                        |
| 828 | 828 | // Get all active cart discounts  | 
                                                        
| 829 | 829 | $discounts = wpinv_get_cart_discounts();  | 
                                                        
| 830 | 830 |      } else { | 
                                                        
| 831 | 831 | $discounts = false; // Only one discount allowed per purchase, so override any existing  | 
                                                        
| 832 | 832 | }  | 
                                                        
| 833 | 833 | |
| 834 | -    if ( $discounts ) { | 
                                                        |
| 835 | - $key = array_search( strtolower( $code ), array_map( 'strtolower', $discounts ) );  | 
                                                        |
| 836 | -        if( false !== $key ) { | 
                                                        |
| 837 | - unset( $discounts[ $key ] ); // Can't set the same discount more than once  | 
                                                        |
| 834 | +    if ($discounts) { | 
                                                        |
| 835 | +        $key = array_search(strtolower($code), array_map('strtolower', $discounts)); | 
                                                        |
| 836 | +        if (false !== $key) { | 
                                                        |
| 837 | + unset($discounts[$key]); // Can't set the same discount more than once  | 
                                                        |
| 838 | 838 | }  | 
                                                        
| 839 | 839 | $discounts[] = $code;  | 
                                                        
| 840 | 840 |      } else { | 
                                                        
| 841 | 841 | $discounts = array();  | 
                                                        
| 842 | 842 | $discounts[] = $code;  | 
                                                        
| 843 | 843 | }  | 
                                                        
| 844 | - $discounts = array_values( $discounts );  | 
                                                        |
| 844 | + $discounts = array_values($discounts);  | 
                                                        |
| 845 | 845 | |
| 846 | 846 | $data = wpinv_get_checkout_session();  | 
                                                        
| 847 | -    if ( empty( $data ) ) { | 
                                                        |
| 847 | +    if (empty($data)) { | 
                                                        |
| 848 | 848 | $data = array();  | 
                                                        
| 849 | 849 |      } else { | 
                                                        
| 850 | -        if ( !empty( $data['invoice_id'] ) && $payment_meta = wpinv_get_invoice_meta( $data['invoice_id'] ) ) { | 
                                                        |
| 851 | - $payment_meta['user_info']['discount'] = implode( ',', $discounts );  | 
                                                        |
| 852 | - update_post_meta( $data['invoice_id'], '_wpinv_payment_meta', $payment_meta );  | 
                                                        |
| 850 | +        if (!empty($data['invoice_id']) && $payment_meta = wpinv_get_invoice_meta($data['invoice_id'])) { | 
                                                        |
| 851 | +            $payment_meta['user_info']['discount'] = implode(',', $discounts); | 
                                                        |
| 852 | + update_post_meta($data['invoice_id'], '_wpinv_payment_meta', $payment_meta);  | 
                                                        |
| 853 | 853 | }  | 
                                                        
| 854 | 854 | }  | 
                                                        
| 855 | 855 | $data['cart_discounts'] = $discounts;  | 
                                                        
| 856 | 856 | |
| 857 | - wpinv_set_checkout_session( $data );  | 
                                                        |
| 857 | + wpinv_set_checkout_session($data);  | 
                                                        |
| 858 | 858 | |
| 859 | 859 | return $discounts;  | 
                                                        
| 860 | 860 | }  | 
                                                        
| 861 | 861 | |
| 862 | -function wpinv_unset_cart_discount( $code = '' ) {     | 
                                                        |
| 862 | +function wpinv_unset_cart_discount($code = '') {     | 
                                                        |
| 863 | 863 | $discounts = wpinv_get_cart_discounts();  | 
                                                        
| 864 | 864 | |
| 865 | -    if ( $code && !empty( $discounts ) && in_array( $code, $discounts ) ) { | 
                                                        |
| 866 | - $key = array_search( $code, $discounts );  | 
                                                        |
| 867 | - unset( $discounts[ $key ] );  | 
                                                        |
| 865 | +    if ($code && !empty($discounts) && in_array($code, $discounts)) { | 
                                                        |
| 866 | + $key = array_search($code, $discounts);  | 
                                                        |
| 867 | + unset($discounts[$key]);  | 
                                                        |
| 868 | 868 | |
| 869 | 869 | $data = wpinv_get_checkout_session();  | 
                                                        
| 870 | 870 | $data['cart_discounts'] = $discounts;  | 
                                                        
| 871 | -        if ( !empty( $data['invoice_id'] ) && $payment_meta = wpinv_get_invoice_meta( $data['invoice_id'] ) ) { | 
                                                        |
| 872 | - $payment_meta['user_info']['discount'] = !empty( $discounts ) ? implode( ',', $discounts ) : '';  | 
                                                        |
| 873 | - update_post_meta( $data['invoice_id'], '_wpinv_payment_meta', $payment_meta );  | 
                                                        |
| 871 | +        if (!empty($data['invoice_id']) && $payment_meta = wpinv_get_invoice_meta($data['invoice_id'])) { | 
                                                        |
| 872 | +            $payment_meta['user_info']['discount'] = !empty($discounts) ? implode(',', $discounts) : ''; | 
                                                        |
| 873 | + update_post_meta($data['invoice_id'], '_wpinv_payment_meta', $payment_meta);  | 
                                                        |
| 874 | 874 | }  | 
                                                        
| 875 | 875 | |
| 876 | - wpinv_set_checkout_session( $data );  | 
                                                        |
| 876 | + wpinv_set_checkout_session($data);  | 
                                                        |
| 877 | 877 | }  | 
                                                        
| 878 | 878 | |
| 879 | 879 | return $discounts;  | 
                                                        
@@ -882,10 +882,10 @@ discard block  | 
                                                    ||
| 882 | 882 |  function wpinv_unset_all_cart_discounts() { | 
                                                        
| 883 | 883 | $data = wpinv_get_checkout_session();  | 
                                                        
| 884 | 884 | |
| 885 | -    if ( !empty( $data ) && isset( $data['cart_discounts'] ) ) { | 
                                                        |
| 886 | - unset( $data['cart_discounts'] );  | 
                                                        |
| 885 | +    if (!empty($data) && isset($data['cart_discounts'])) { | 
                                                        |
| 886 | + unset($data['cart_discounts']);  | 
                                                        |
| 887 | 887 | |
| 888 | - wpinv_set_checkout_session( $data );  | 
                                                        |
| 888 | + wpinv_set_checkout_session($data);  | 
                                                        |
| 889 | 889 | return true;  | 
                                                        
| 890 | 890 | }  | 
                                                        
| 891 | 891 | |
@@ -894,13 +894,13 @@ discard block  | 
                                                    ||
| 894 | 894 | |
| 895 | 895 |  function wpinv_get_cart_discounts() { | 
                                                        
| 896 | 896 | $session = wpinv_get_checkout_session();  | 
                                                        
| 897 | - return empty( $session['cart_discounts'] ) ? false : $session['cart_discounts'];  | 
                                                        |
| 897 | + return empty($session['cart_discounts']) ? false : $session['cart_discounts'];  | 
                                                        |
| 898 | 898 | }  | 
                                                        
| 899 | 899 | |
| 900 | -function wpinv_cart_has_discounts( $items = array() ) { | 
                                                        |
| 900 | +function wpinv_cart_has_discounts($items = array()) { | 
                                                        |
| 901 | 901 | $ret = false;  | 
                                                        
| 902 | 902 | |
| 903 | -    if ( wpinv_get_cart_discounts( $items ) ) { | 
                                                        |
| 903 | +    if (wpinv_get_cart_discounts($items)) { | 
                                                        |
| 904 | 904 | $ret = true;  | 
                                                        
| 905 | 905 | }  | 
                                                        
| 906 | 906 | |
@@ -911,131 +911,131 @@ discard block  | 
                                                    ||
| 911 | 911 | }  | 
                                                        
| 912 | 912 | */  | 
                                                        
| 913 | 913 | |
| 914 | - return apply_filters( 'wpinv_cart_has_discounts', $ret );  | 
                                                        |
| 914 | +    return apply_filters('wpinv_cart_has_discounts', $ret); | 
                                                        |
| 915 | 915 | }  | 
                                                        
| 916 | 916 | |
| 917 | -function wpinv_get_cart_discounted_amount( $items = array(), $discounts = false ) { | 
                                                        |
| 917 | +function wpinv_get_cart_discounted_amount($items = array(), $discounts = false) { | 
                                                        |
| 918 | 918 | $amount = 0.00;  | 
                                                        
| 919 | - $items = !empty( $items ) ? $items : wpinv_get_cart_content_details();  | 
                                                        |
| 919 | + $items = !empty($items) ? $items : wpinv_get_cart_content_details();  | 
                                                        |
| 920 | 920 | |
| 921 | -    if ( $items ) { | 
                                                        |
| 922 | - $discounts = wp_list_pluck( $items, 'discount' );  | 
                                                        |
| 921 | +    if ($items) { | 
                                                        |
| 922 | + $discounts = wp_list_pluck($items, 'discount');  | 
                                                        |
| 923 | 923 | |
| 924 | -        if ( is_array( $discounts ) ) { | 
                                                        |
| 925 | - $discounts = array_map( 'floatval', $discounts );  | 
                                                        |
| 926 | - $amount = array_sum( $discounts );  | 
                                                        |
| 924 | +        if (is_array($discounts)) { | 
                                                        |
| 925 | +            $discounts = array_map('floatval', $discounts); | 
                                                        |
| 926 | + $amount = array_sum($discounts);  | 
                                                        |
| 927 | 927 | }  | 
                                                        
| 928 | 928 | }  | 
                                                        
| 929 | 929 | |
| 930 | - return apply_filters( 'wpinv_get_cart_discounted_amount', $amount );  | 
                                                        |
| 930 | +    return apply_filters('wpinv_get_cart_discounted_amount', $amount); | 
                                                        |
| 931 | 931 | }  | 
                                                        
| 932 | 932 | |
| 933 | -function wpinv_get_cart_items_discount_amount( $items = array(), $discount = false ) { | 
                                                        |
| 934 | - $items = !empty( $items ) ? $items : wpinv_get_cart_content_details();  | 
                                                        |
| 933 | +function wpinv_get_cart_items_discount_amount($items = array(), $discount = false) { | 
                                                        |
| 934 | + $items = !empty($items) ? $items : wpinv_get_cart_content_details();  | 
                                                        |
| 935 | 935 | |
| 936 | -    if ( empty( $discount ) || empty( $items ) ) { | 
                                                        |
| 936 | +    if (empty($discount) || empty($items)) { | 
                                                        |
| 937 | 937 | return 0;  | 
                                                        
| 938 | 938 | }  | 
                                                        
| 939 | 939 | |
| 940 | 940 | $amount = 0;  | 
                                                        
| 941 | 941 | |
| 942 | -    foreach ( $items as $item ) { | 
                                                        |
| 943 | - $amount += wpinv_get_cart_item_discount_amount( $item, $discount );  | 
                                                        |
| 942 | +    foreach ($items as $item) { | 
                                                        |
| 943 | + $amount += wpinv_get_cart_item_discount_amount($item, $discount);  | 
                                                        |
| 944 | 944 | }  | 
                                                        
| 945 | 945 | |
| 946 | - $amount = wpinv_round_amount( $amount );  | 
                                                        |
| 946 | + $amount = wpinv_round_amount($amount);  | 
                                                        |
| 947 | 947 | |
| 948 | 948 | return $amount;  | 
                                                        
| 949 | 949 | }  | 
                                                        
| 950 | 950 | |
| 951 | -function wpinv_get_cart_item_discount_amount( $item = array(), $discount = false ) { | 
                                                        |
| 951 | +function wpinv_get_cart_item_discount_amount($item = array(), $discount = false) { | 
                                                        |
| 952 | 952 | global $wpinv_is_last_cart_item, $wpinv_flat_discount_total;  | 
                                                        
| 953 | 953 | |
| 954 | 954 | $amount = 0;  | 
                                                        
| 955 | 955 | |
| 956 | -    if ( empty( $item ) || empty( $item['id'] ) ) { | 
                                                        |
| 956 | +    if (empty($item) || empty($item['id'])) { | 
                                                        |
| 957 | 957 | return $amount;  | 
                                                        
| 958 | 958 | }  | 
                                                        
| 959 | 959 | |
| 960 | -    if ( empty( $item['quantity'] ) ) { | 
                                                        |
| 960 | +    if (empty($item['quantity'])) { | 
                                                        |
| 961 | 961 | return $amount;  | 
                                                        
| 962 | 962 | }  | 
                                                        
| 963 | 963 | |
| 964 | -    if ( empty( $item['options'] ) ) { | 
                                                        |
| 964 | +    if (empty($item['options'])) { | 
                                                        |
| 965 | 965 | $item['options'] = array();  | 
                                                        
| 966 | 966 | }  | 
                                                        
| 967 | 967 | |
| 968 | - $price = wpinv_get_cart_item_price( $item['id'], $item, $item['options'] );  | 
                                                        |
| 968 | + $price = wpinv_get_cart_item_price($item['id'], $item, $item['options']);  | 
                                                        |
| 969 | 969 | $discounted_price = $price;  | 
                                                        
| 970 | 970 | |
| 971 | 971 | $discounts = false === $discount ? wpinv_get_cart_discounts() : $discount;  | 
                                                        
| 972 | -    if ( empty( $discounts ) ) { | 
                                                        |
| 972 | +    if (empty($discounts)) { | 
                                                        |
| 973 | 973 | return $amount;  | 
                                                        
| 974 | 974 | }  | 
                                                        
| 975 | 975 | |
| 976 | -    if ( $discounts ) { | 
                                                        |
| 977 | -        if ( is_array( $discounts ) ) { | 
                                                        |
| 978 | - $discounts = array_values( $discounts );  | 
                                                        |
| 976 | +    if ($discounts) { | 
                                                        |
| 977 | +        if (is_array($discounts)) { | 
                                                        |
| 978 | + $discounts = array_values($discounts);  | 
                                                        |
| 979 | 979 |          } else { | 
                                                        
| 980 | - $discounts = explode( ',', $discounts );  | 
                                                        |
| 980 | +            $discounts = explode(',', $discounts); | 
                                                        |
| 981 | 981 | }  | 
                                                        
| 982 | 982 | }  | 
                                                        
| 983 | 983 | |
| 984 | -    if( $discounts ) { | 
                                                        |
| 985 | -        foreach ( $discounts as $discount ) { | 
                                                        |
| 986 | - $code_id = wpinv_get_discount_id_by_code( $discount );  | 
                                                        |
| 984 | +    if ($discounts) { | 
                                                        |
| 985 | +        foreach ($discounts as $discount) { | 
                                                        |
| 986 | + $code_id = wpinv_get_discount_id_by_code($discount);  | 
                                                        |
| 987 | 987 | |
| 988 | 988 | // Check discount exists  | 
                                                        
| 989 | -            if( $code_id === false ) { | 
                                                        |
| 989 | +            if ($code_id === false) { | 
                                                        |
| 990 | 990 | continue;  | 
                                                        
| 991 | 991 | }  | 
                                                        
| 992 | 992 | |
| 993 | - $reqs = wpinv_get_discount_item_reqs( $code_id );  | 
                                                        |
| 994 | - $excluded_items = wpinv_get_discount_excluded_items( $code_id );  | 
                                                        |
| 993 | + $reqs = wpinv_get_discount_item_reqs($code_id);  | 
                                                        |
| 994 | + $excluded_items = wpinv_get_discount_excluded_items($code_id);  | 
                                                        |
| 995 | 995 | |
| 996 | 996 | // Make sure requirements are set and that this discount shouldn't apply to the whole cart  | 
                                                        
| 997 | -            if ( !empty( $reqs ) && wpinv_is_discount_not_global( $code_id ) ) { | 
                                                        |
| 998 | -                foreach ( $reqs as $item_id ) { | 
                                                        |
| 999 | -                    if ( $item_id == $item['id'] && ! in_array( $item['id'], $excluded_items ) ) { | 
                                                        |
| 1000 | - $discounted_price -= $price - wpinv_get_discounted_amount( $discount, $price );  | 
                                                        |
| 997 | +            if (!empty($reqs) && wpinv_is_discount_not_global($code_id)) { | 
                                                        |
| 998 | +                foreach ($reqs as $item_id) { | 
                                                        |
| 999 | +                    if ($item_id == $item['id'] && !in_array($item['id'], $excluded_items)) { | 
                                                        |
| 1000 | + $discounted_price -= $price - wpinv_get_discounted_amount($discount, $price);  | 
                                                        |
| 1001 | 1001 | }  | 
                                                        
| 1002 | 1002 | }  | 
                                                        
| 1003 | 1003 |              } else { | 
                                                        
| 1004 | 1004 | // This is a global cart discount  | 
                                                        
| 1005 | -                if ( !in_array( $item['id'], $excluded_items ) ) { | 
                                                        |
| 1006 | -                    if ( 'flat' === wpinv_get_discount_type( $code_id ) ) { | 
                                                        |
| 1005 | +                if (!in_array($item['id'], $excluded_items)) { | 
                                                        |
| 1006 | +                    if ('flat' === wpinv_get_discount_type($code_id)) { | 
                                                        |
| 1007 | 1007 | $items_subtotal = 0.00;  | 
                                                        
| 1008 | 1008 | $cart_items = wpinv_get_cart_contents();  | 
                                                        
| 1009 | 1009 | |
| 1010 | -                        foreach ( $cart_items as $cart_item ) { | 
                                                        |
| 1011 | -                            if ( ! in_array( $cart_item['id'], $excluded_items ) ) { | 
                                                        |
| 1012 | - $options = !empty( $cart_item['options'] ) ? $cart_item['options'] : array();  | 
                                                        |
| 1013 | - $item_price = wpinv_get_cart_item_price( $cart_item['id'], $cart_item, $options );  | 
                                                        |
| 1010 | +                        foreach ($cart_items as $cart_item) { | 
                                                        |
| 1011 | +                            if (!in_array($cart_item['id'], $excluded_items)) { | 
                                                        |
| 1012 | + $options = !empty($cart_item['options']) ? $cart_item['options'] : array();  | 
                                                        |
| 1013 | + $item_price = wpinv_get_cart_item_price($cart_item['id'], $cart_item, $options);  | 
                                                        |
| 1014 | 1014 | $items_subtotal += $item_price * $cart_item['quantity'];  | 
                                                        
| 1015 | 1015 | }  | 
                                                        
| 1016 | 1016 | }  | 
                                                        
| 1017 | 1017 | |
| 1018 | - $subtotal_percent = ( ( $price * $item['quantity'] ) / $items_subtotal );  | 
                                                        |
| 1019 | - $code_amount = wpinv_get_discount_amount( $code_id );  | 
                                                        |
| 1018 | + $subtotal_percent = (($price * $item['quantity']) / $items_subtotal);  | 
                                                        |
| 1019 | + $code_amount = wpinv_get_discount_amount($code_id);  | 
                                                        |
| 1020 | 1020 | $discounted_amount = $code_amount * $subtotal_percent;  | 
                                                        
| 1021 | 1021 | $discounted_price -= $discounted_amount;  | 
                                                        
| 1022 | 1022 | |
| 1023 | - $wpinv_flat_discount_total += round( $discounted_amount, wpinv_currency_decimal_filter() );  | 
                                                        |
| 1023 | + $wpinv_flat_discount_total += round($discounted_amount, wpinv_currency_decimal_filter());  | 
                                                        |
| 1024 | 1024 | |
| 1025 | -                        if ( $wpinv_is_last_cart_item && $wpinv_flat_discount_total < $code_amount ) { | 
                                                        |
| 1025 | +                        if ($wpinv_is_last_cart_item && $wpinv_flat_discount_total < $code_amount) { | 
                                                        |
| 1026 | 1026 | $adjustment = $code_amount - $wpinv_flat_discount_total;  | 
                                                        
| 1027 | 1027 | $discounted_price -= $adjustment;  | 
                                                        
| 1028 | 1028 | }  | 
                                                        
| 1029 | 1029 |                      } else { | 
                                                        
| 1030 | - $discounted_price -= $price - wpinv_get_discounted_amount( $discount, $price );  | 
                                                        |
| 1030 | + $discounted_price -= $price - wpinv_get_discounted_amount($discount, $price);  | 
                                                        |
| 1031 | 1031 | }  | 
                                                        
| 1032 | 1032 | }  | 
                                                        
| 1033 | 1033 | }  | 
                                                        
| 1034 | 1034 | }  | 
                                                        
| 1035 | 1035 | |
| 1036 | - $amount = ( $price - apply_filters( 'wpinv_get_cart_item_discounted_amount', $discounted_price, $discounts, $item, $price ) );  | 
                                                        |
| 1036 | +        $amount = ($price - apply_filters('wpinv_get_cart_item_discounted_amount', $discounted_price, $discounts, $item, $price)); | 
                                                        |
| 1037 | 1037 | |
| 1038 | -        if ( 'flat' !== wpinv_get_discount_type( $code_id ) ) { | 
                                                        |
| 1038 | +        if ('flat' !== wpinv_get_discount_type($code_id)) { | 
                                                        |
| 1039 | 1039 | $amount = $amount * $item['quantity'];  | 
                                                        
| 1040 | 1040 | }  | 
                                                        
| 1041 | 1041 | }  | 
                                                        
@@ -1043,59 +1043,59 @@ discard block  | 
                                                    ||
| 1043 | 1043 | return $amount;  | 
                                                        
| 1044 | 1044 | }  | 
                                                        
| 1045 | 1045 | |
| 1046 | -function wpinv_cart_discounts_html( $items = array() ) { | 
                                                        |
| 1047 | - echo wpinv_get_cart_discounts_html( $items );  | 
                                                        |
| 1046 | +function wpinv_cart_discounts_html($items = array()) { | 
                                                        |
| 1047 | + echo wpinv_get_cart_discounts_html($items);  | 
                                                        |
| 1048 | 1048 | }  | 
                                                        
| 1049 | 1049 | |
| 1050 | -function wpinv_get_cart_discounts_html( $items = array(), $discounts = false ) { | 
                                                        |
| 1050 | +function wpinv_get_cart_discounts_html($items = array(), $discounts = false) { | 
                                                        |
| 1051 | 1051 | global $wpi_cart_columns;  | 
                                                        
| 1052 | 1052 | |
| 1053 | - $items = !empty( $items ) ? $items : wpinv_get_cart_content_details();  | 
                                                        |
| 1053 | + $items = !empty($items) ? $items : wpinv_get_cart_content_details();  | 
                                                        |
| 1054 | 1054 | |
| 1055 | -    if ( !$discounts ) { | 
                                                        |
| 1056 | - $discounts = wpinv_get_cart_discounts( $items );  | 
                                                        |
| 1055 | +    if (!$discounts) { | 
                                                        |
| 1056 | + $discounts = wpinv_get_cart_discounts($items);  | 
                                                        |
| 1057 | 1057 | }  | 
                                                        
| 1058 | 1058 | |
| 1059 | -    if ( !$discounts ) { | 
                                                        |
| 1059 | +    if (!$discounts) { | 
                                                        |
| 1060 | 1060 | return;  | 
                                                        
| 1061 | 1061 | }  | 
                                                        
| 1062 | 1062 | |
| 1063 | - $discounts = is_array( $discounts ) ? $discounts : array( $discounts );  | 
                                                        |
| 1063 | + $discounts = is_array($discounts) ? $discounts : array($discounts);  | 
                                                        |
| 1064 | 1064 | |
| 1065 | 1065 | $html = '';  | 
                                                        
| 1066 | 1066 | |
| 1067 | -    foreach ( $discounts as $discount ) { | 
                                                        |
| 1068 | - $discount_id = wpinv_get_discount_id_by_code( $discount );  | 
                                                        |
| 1069 | - $discount_value = wpinv_get_discount_amount( $discount_id );  | 
                                                        |
| 1070 | - $rate = wpinv_format_discount_rate( wpinv_get_discount_type( $discount_id ), $discount_value );  | 
                                                        |
| 1071 | - $amount = wpinv_get_cart_items_discount_amount( $items, $discount );  | 
                                                        |
| 1072 | - $remove_btn = '<a title="' . esc_attr__( 'Remove discount', 'invoicing' ) . '" data-code="' . $discount . '" data-value="' . $discount_value . '" class="wpi-discount-remove" href="javascript:void(0);">[<i class="fa fa-times" aria-hidden="true"></i>]</a> ';  | 
                                                        |
| 1067 | +    foreach ($discounts as $discount) { | 
                                                        |
| 1068 | + $discount_id = wpinv_get_discount_id_by_code($discount);  | 
                                                        |
| 1069 | + $discount_value = wpinv_get_discount_amount($discount_id);  | 
                                                        |
| 1070 | + $rate = wpinv_format_discount_rate(wpinv_get_discount_type($discount_id), $discount_value);  | 
                                                        |
| 1071 | + $amount = wpinv_get_cart_items_discount_amount($items, $discount);  | 
                                                        |
| 1072 | +        $remove_btn     = '<a title="' . esc_attr__('Remove discount', 'invoicing') . '" data-code="' . $discount . '" data-value="' . $discount_value . '" class="wpi-discount-remove" href="javascript:void(0);">[<i class="fa fa-times" aria-hidden="true"></i>]</a> '; | 
                                                        |
| 1073 | 1073 | |
| 1074 | 1074 | $html .= '<tr class="wpinv_cart_footer_row wpinv_cart_discount_row">';  | 
                                                        
| 1075 | 1075 | ob_start();  | 
                                                        
| 1076 | - do_action( 'wpinv_checkout_table_discount_first', $items );  | 
                                                        |
| 1076 | +        do_action('wpinv_checkout_table_discount_first', $items); | 
                                                        |
| 1077 | 1077 | $html .= ob_get_clean();  | 
                                                        
| 1078 | - $html .= '<td class="wpinv_cart_discount_label text-right" colspan="' . $wpi_cart_columns . '">' . $remove_btn . '<strong>' . wpinv_cart_discount_label( $discount, $rate, false ) . '</strong></td><td class="wpinv_cart_discount text-right"><span data-discount="' . $amount . '" class="wpinv_cart_discount_amount">–' . wpinv_price( wpinv_format_amount( $amount ) ) . '</span></td>';  | 
                                                        |
| 1078 | + $html .= '<td class="wpinv_cart_discount_label text-right" colspan="' . $wpi_cart_columns . '">' . $remove_btn . '<strong>' . wpinv_cart_discount_label($discount, $rate, false) . '</strong></td><td class="wpinv_cart_discount text-right"><span data-discount="' . $amount . '" class="wpinv_cart_discount_amount">–' . wpinv_price(wpinv_format_amount($amount)) . '</span></td>';  | 
                                                        |
| 1079 | 1079 | ob_start();  | 
                                                        
| 1080 | - do_action( 'wpinv_checkout_table_discount_last', $items );  | 
                                                        |
| 1080 | +        do_action('wpinv_checkout_table_discount_last', $items); | 
                                                        |
| 1081 | 1081 | $html .= ob_get_clean();  | 
                                                        
| 1082 | 1082 | $html .= '</tr>';  | 
                                                        
| 1083 | 1083 | }  | 
                                                        
| 1084 | 1084 | |
| 1085 | - return apply_filters( 'wpinv_get_cart_discounts_html', $html, $discounts, $rate );  | 
                                                        |
| 1085 | +    return apply_filters('wpinv_get_cart_discounts_html', $html, $discounts, $rate); | 
                                                        |
| 1086 | 1086 | }  | 
                                                        
| 1087 | 1087 | |
| 1088 | -function wpinv_display_cart_discount( /** @scrutinizer ignore-unused */ $formatted = false, $echo = false ) { | 
                                                        |
| 1088 | +function wpinv_display_cart_discount(/** @scrutinizer ignore-unused */ $formatted = false, $echo = false) { | 
                                                        |
| 1089 | 1089 | $discounts = wpinv_get_cart_discounts();  | 
                                                        
| 1090 | 1090 | |
| 1091 | -    if ( empty( $discounts ) ) { | 
                                                        |
| 1091 | +    if (empty($discounts)) { | 
                                                        |
| 1092 | 1092 | return false;  | 
                                                        
| 1093 | 1093 | }  | 
                                                        
| 1094 | 1094 | |
| 1095 | - $discount_id = wpinv_get_discount_id_by_code( $discounts[0] );  | 
                                                        |
| 1096 | - $amount = wpinv_format_discount_rate( wpinv_get_discount_type( $discount_id ), wpinv_get_discount_amount( $discount_id ) );  | 
                                                        |
| 1095 | + $discount_id = wpinv_get_discount_id_by_code($discounts[0]);  | 
                                                        |
| 1096 | + $amount = wpinv_format_discount_rate(wpinv_get_discount_type($discount_id), wpinv_get_discount_amount($discount_id));  | 
                                                        |
| 1097 | 1097 | |
| 1098 | -    if ( $echo ) { | 
                                                        |
| 1098 | +    if ($echo) { | 
                                                        |
| 1099 | 1099 | echo $amount;  | 
                                                        
| 1100 | 1100 | }  | 
                                                        
| 1101 | 1101 | |
@@ -1103,101 +1103,101 @@ discard block  | 
                                                    ||
| 1103 | 1103 | }  | 
                                                        
| 1104 | 1104 | |
| 1105 | 1105 |  function wpinv_remove_cart_discount() { | 
                                                        
| 1106 | -    if ( !isset( $_GET['discount_id'] ) || ! isset( $_GET['discount_code'] ) ) { | 
                                                        |
| 1106 | +    if (!isset($_GET['discount_id']) || !isset($_GET['discount_code'])) { | 
                                                        |
| 1107 | 1107 | return;  | 
                                                        
| 1108 | 1108 | }  | 
                                                        
| 1109 | 1109 | |
| 1110 | - do_action( 'wpinv_pre_remove_cart_discount', absint( $_GET['discount_id'] ) );  | 
                                                        |
| 1110 | +    do_action('wpinv_pre_remove_cart_discount', absint($_GET['discount_id'])); | 
                                                        |
| 1111 | 1111 | |
| 1112 | - wpinv_unset_cart_discount( urldecode( $_GET['discount_code'] ) );  | 
                                                        |
| 1112 | + wpinv_unset_cart_discount(urldecode($_GET['discount_code']));  | 
                                                        |
| 1113 | 1113 | |
| 1114 | - do_action( 'wpinv_post_remove_cart_discount', absint( $_GET['discount_id'] ) );  | 
                                                        |
| 1114 | +    do_action('wpinv_post_remove_cart_discount', absint($_GET['discount_id'])); | 
                                                        |
| 1115 | 1115 | |
| 1116 | - wp_redirect( wpinv_get_checkout_uri() ); wpinv_die();  | 
                                                        |
| 1116 | + wp_redirect(wpinv_get_checkout_uri()); wpinv_die();  | 
                                                        |
| 1117 | 1117 | }  | 
                                                        
| 1118 | -add_action( 'wpinv_remove_cart_discount', 'wpinv_remove_cart_discount' );  | 
                                                        |
| 1118 | +add_action('wpinv_remove_cart_discount', 'wpinv_remove_cart_discount'); | 
                                                        |
| 1119 | 1119 | |
| 1120 | 1120 |  function wpinv_maybe_remove_cart_discount() { | 
                                                        
| 1121 | 1121 | $discounts = wpinv_get_cart_discounts();  | 
                                                        
| 1122 | 1122 | |
| 1123 | -    if ( !$discounts ) { | 
                                                        |
| 1123 | +    if (!$discounts) { | 
                                                        |
| 1124 | 1124 | return;  | 
                                                        
| 1125 | 1125 | }  | 
                                                        
| 1126 | 1126 | |
| 1127 | -    foreach ( $discounts as $discount ) { | 
                                                        |
| 1128 | -        if ( !wpinv_is_discount_valid( $discount ) ) { | 
                                                        |
| 1129 | - wpinv_unset_cart_discount( $discount );  | 
                                                        |
| 1127 | +    foreach ($discounts as $discount) { | 
                                                        |
| 1128 | +        if (!wpinv_is_discount_valid($discount)) { | 
                                                        |
| 1129 | + wpinv_unset_cart_discount($discount);  | 
                                                        |
| 1130 | 1130 | }  | 
                                                        
| 1131 | 1131 | }  | 
                                                        
| 1132 | 1132 | }  | 
                                                        
| 1133 | -add_action( 'wpinv_post_remove_from_cart', 'wpinv_maybe_remove_cart_discount' );  | 
                                                        |
| 1133 | +add_action('wpinv_post_remove_from_cart', 'wpinv_maybe_remove_cart_discount'); | 
                                                        |
| 1134 | 1134 | |
| 1135 | 1135 |  function wpinv_multiple_discounts_allowed() { | 
                                                        
| 1136 | - $ret = wpinv_get_option( 'allow_multiple_discounts', false );  | 
                                                        |
| 1137 | - return (bool) apply_filters( 'wpinv_multiple_discounts_allowed', $ret );  | 
                                                        |
| 1136 | +    $ret = wpinv_get_option('allow_multiple_discounts', false); | 
                                                        |
| 1137 | +    return (bool) apply_filters('wpinv_multiple_discounts_allowed', $ret); | 
                                                        |
| 1138 | 1138 | }  | 
                                                        
| 1139 | 1139 | |
| 1140 | -function wpinv_get_discount_label( $code, $echo = true ) { | 
                                                        |
| 1141 | - $label = wp_sprintf( __( 'Discount%1$s', 'invoicing' ), ( $code != '' && $code != 'none' ? ' (<code>' . $code . '</code>)': '' ) );  | 
                                                        |
| 1142 | - $label = apply_filters( 'wpinv_get_discount_label', $label, $code );  | 
                                                        |
| 1140 | +function wpinv_get_discount_label($code, $echo = true) { | 
                                                        |
| 1141 | +    $label = wp_sprintf(__('Discount%1$s', 'invoicing'), ($code != '' && $code != 'none' ? ' (<code>' . $code . '</code>)' : '')); | 
                                                        |
| 1142 | +    $label = apply_filters('wpinv_get_discount_label', $label, $code); | 
                                                        |
| 1143 | 1143 | |
| 1144 | -    if ( $echo ) { | 
                                                        |
| 1144 | +    if ($echo) { | 
                                                        |
| 1145 | 1145 | echo $label;  | 
                                                        
| 1146 | 1146 |      } else { | 
                                                        
| 1147 | 1147 | return $label;  | 
                                                        
| 1148 | 1148 | }  | 
                                                        
| 1149 | 1149 | }  | 
                                                        
| 1150 | 1150 | |
| 1151 | -function wpinv_cart_discount_label( $code, $rate, $echo = true ) { | 
                                                        |
| 1152 | - $label = wp_sprintf( __( 'Discount: %s', 'invoicing' ), $code );  | 
                                                        |
| 1153 | - $label = apply_filters( 'wpinv_cart_discount_label', $label, $code, $rate );  | 
                                                        |
| 1151 | +function wpinv_cart_discount_label($code, $rate, $echo = true) { | 
                                                        |
| 1152 | +    $label = wp_sprintf(__('Discount: %s', 'invoicing'), $code); | 
                                                        |
| 1153 | +    $label = apply_filters('wpinv_cart_discount_label', $label, $code, $rate); | 
                                                        |
| 1154 | 1154 | |
| 1155 | -    if ( $echo ) { | 
                                                        |
| 1155 | +    if ($echo) { | 
                                                        |
| 1156 | 1156 | echo $label;  | 
                                                        
| 1157 | 1157 |      } else { | 
                                                        
| 1158 | 1158 | return $label;  | 
                                                        
| 1159 | 1159 | }  | 
                                                        
| 1160 | 1160 | }  | 
                                                        
| 1161 | 1161 | |
| 1162 | -function wpinv_check_delete_discount( $check, $post ) { | 
                                                        |
| 1163 | -    if ( $post->post_type == 'wpi_discount' && wpinv_get_discount_uses( $post->ID ) > 0 ) { | 
                                                        |
| 1162 | +function wpinv_check_delete_discount($check, $post) { | 
                                                        |
| 1163 | +    if ($post->post_type == 'wpi_discount' && wpinv_get_discount_uses($post->ID) > 0) { | 
                                                        |
| 1164 | 1164 | return true;  | 
                                                        
| 1165 | 1165 | }  | 
                                                        
| 1166 | 1166 | |
| 1167 | 1167 | return $check;  | 
                                                        
| 1168 | 1168 | }  | 
                                                        
| 1169 | -add_filter( 'pre_delete_post', 'wpinv_check_delete_discount', 10, 2 );  | 
                                                        |
| 1169 | +add_filter('pre_delete_post', 'wpinv_check_delete_discount', 10, 2); | 
                                                        |
| 1170 | 1170 | |
| 1171 | 1171 |  function wpinv_checkout_form_validate_discounts() { | 
                                                        
| 1172 | 1172 | global $wpi_checkout_id;  | 
                                                        
| 1173 | 1173 | |
| 1174 | 1174 | $discounts = wpinv_get_cart_discounts();  | 
                                                        
| 1175 | 1175 | |
| 1176 | -    if ( !empty( $discounts ) ) { | 
                                                        |
| 1176 | +    if (!empty($discounts)) { | 
                                                        |
| 1177 | 1177 | $invalid = false;  | 
                                                        
| 1178 | 1178 | |
| 1179 | -        foreach ( $discounts as $key => $code ) { | 
                                                        |
| 1180 | -            if ( !wpinv_is_discount_valid( $code, (int)wpinv_get_user_id( $wpi_checkout_id ) ) ) { | 
                                                        |
| 1179 | +        foreach ($discounts as $key => $code) { | 
                                                        |
| 1180 | +            if (!wpinv_is_discount_valid($code, (int) wpinv_get_user_id($wpi_checkout_id))) { | 
                                                        |
| 1181 | 1181 | $invalid = true;  | 
                                                        
| 1182 | 1182 | |
| 1183 | - wpinv_unset_cart_discount( $code );  | 
                                                        |
| 1183 | + wpinv_unset_cart_discount($code);  | 
                                                        |
| 1184 | 1184 | }  | 
                                                        
| 1185 | 1185 | }  | 
                                                        
| 1186 | 1186 | |
| 1187 | -        if ( $invalid ) { | 
                                                        |
| 1187 | +        if ($invalid) { | 
                                                        |
| 1188 | 1188 | $errors = wpinv_get_errors();  | 
                                                        
| 1189 | - $error = !empty( $errors['wpinv-discount-error'] ) ? $errors['wpinv-discount-error'] . ' ' : '';  | 
                                                        |
| 1190 | - $error .= __( 'The discount has been removed from cart.', 'invoicing' );  | 
                                                        |
| 1191 | - wpinv_set_error( 'wpinv-discount-error', $error );  | 
                                                        |
| 1189 | + $error = !empty($errors['wpinv-discount-error']) ? $errors['wpinv-discount-error'] . ' ' : '';  | 
                                                        |
| 1190 | +            $error .= __('The discount has been removed from cart.', 'invoicing'); | 
                                                        |
| 1191 | +            wpinv_set_error('wpinv-discount-error', $error); | 
                                                        |
| 1192 | 1192 | |
| 1193 | - wpinv_recalculate_tax( true );  | 
                                                        |
| 1193 | + wpinv_recalculate_tax(true);  | 
                                                        |
| 1194 | 1194 | }  | 
                                                        
| 1195 | 1195 | }  | 
                                                        
| 1196 | 1196 | }  | 
                                                        
| 1197 | -add_action( 'wpinv_before_checkout_form', 'wpinv_checkout_form_validate_discounts', -10 );  | 
                                                        |
| 1197 | +add_action('wpinv_before_checkout_form', 'wpinv_checkout_form_validate_discounts', -10); | 
                                                        |
| 1198 | 1198 | |
| 1199 | 1199 |  function wpinv_discount_amount() { | 
                                                        
| 1200 | 1200 | $output = 0.00;  | 
                                                        
| 1201 | 1201 | |
| 1202 | - return apply_filters( 'wpinv_discount_amount', $output );  | 
                                                        |
| 1202 | +    return apply_filters('wpinv_discount_amount', $output); | 
                                                        |
| 1203 | 1203 | }  | 
                                                        
| 1204 | 1204 | \ No newline at end of file  | 
                                                        
@@ -33,173 +33,173 @@ discard block  | 
                                                    ||
| 33 | 33 | */  | 
                                                        
| 34 | 34 |  class WPInv_Discount { | 
                                                        
| 35 | 35 | |
| 36 | - /**  | 
                                                        |
| 37 | - * Discount ID.  | 
                                                        |
| 38 | - *  | 
                                                        |
| 39 | - * @since 1.0.15  | 
                                                        |
| 40 | - * @var integer|null  | 
                                                        |
| 41 | - */  | 
                                                        |
| 42 | - public $ID = null;  | 
                                                        |
| 43 | -  | 
                                                        |
| 44 | - /**  | 
                                                        |
| 45 | - * Old discount status.  | 
                                                        |
| 46 | - *  | 
                                                        |
| 47 | - * @since 1.0.15  | 
                                                        |
| 48 | - * @var string  | 
                                                        |
| 49 | - */  | 
                                                        |
| 50 | - public $old_status = 'draft';  | 
                                                        |
| 36 | + /**  | 
                                                        |
| 37 | + * Discount ID.  | 
                                                        |
| 38 | + *  | 
                                                        |
| 39 | + * @since 1.0.15  | 
                                                        |
| 40 | + * @var integer|null  | 
                                                        |
| 41 | + */  | 
                                                        |
| 42 | + public $ID = null;  | 
                                                        |
| 43 | +  | 
                                                        |
| 44 | + /**  | 
                                                        |
| 45 | + * Old discount status.  | 
                                                        |
| 46 | + *  | 
                                                        |
| 47 | + * @since 1.0.15  | 
                                                        |
| 48 | + * @var string  | 
                                                        |
| 49 | + */  | 
                                                        |
| 50 | + public $old_status = 'draft';  | 
                                                        |
| 51 | 51 | |
| 52 | - /**  | 
                                                        |
| 53 | - * Data array.  | 
                                                        |
| 54 | - *  | 
                                                        |
| 55 | - * @since 1.0.15  | 
                                                        |
| 56 | - * @var array  | 
                                                        |
| 57 | - */  | 
                                                        |
| 58 | - protected $data = array();  | 
                                                        |
| 59 | -  | 
                                                        |
| 60 | - /**  | 
                                                        |
| 61 | - * Discount constructor.  | 
                                                        |
| 62 | - *  | 
                                                        |
| 63 | - * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        |
| 64 | - * @since 1.0.15  | 
                                                        |
| 65 | - */  | 
                                                        |
| 66 | -	public function __construct( $discount = array() ) { | 
                                                        |
| 52 | + /**  | 
                                                        |
| 53 | + * Data array.  | 
                                                        |
| 54 | + *  | 
                                                        |
| 55 | + * @since 1.0.15  | 
                                                        |
| 56 | + * @var array  | 
                                                        |
| 57 | + */  | 
                                                        |
| 58 | + protected $data = array();  | 
                                                        |
| 59 | +  | 
                                                        |
| 60 | + /**  | 
                                                        |
| 61 | + * Discount constructor.  | 
                                                        |
| 62 | + *  | 
                                                        |
| 63 | + * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        |
| 64 | + * @since 1.0.15  | 
                                                        |
| 65 | + */  | 
                                                        |
| 66 | +    public function __construct( $discount = array() ) { | 
                                                        |
| 67 | 67 | |
| 68 | 68 | // If the discount is an instance of this class...  | 
                                                        
| 69 | -		if ( $discount instanceof WPInv_Discount ) { | 
                                                        |
| 70 | - $this->init( $discount->data );  | 
                                                        |
| 71 | - return;  | 
                                                        |
| 69 | +        if ( $discount instanceof WPInv_Discount ) { | 
                                                        |
| 70 | + $this->init( $discount->data );  | 
                                                        |
| 71 | + return;  | 
                                                        |
| 72 | 72 | }  | 
                                                        
| 73 | 73 | |
| 74 | 74 | // If the discount is an array of discount details...  | 
                                                        
| 75 | 75 |          if ( is_array( $discount ) ) { | 
                                                        
| 76 | - $this->init( $discount );  | 
                                                        |
| 77 | - return;  | 
                                                        |
| 78 | - }  | 
                                                        |
| 76 | + $this->init( $discount );  | 
                                                        |
| 77 | + return;  | 
                                                        |
| 78 | + }  | 
                                                        |
| 79 | 79 | |
| 80 | - // Try fetching the discount by its post id.  | 
                                                        |
| 81 | - $data = false;  | 
                                                        |
| 80 | + // Try fetching the discount by its post id.  | 
                                                        |
| 81 | + $data = false;  | 
                                                        |
| 82 | 82 | |
| 83 | -		if ( ! empty( $discount ) && is_numeric( $discount ) ) { | 
                                                        |
| 84 | - $discount = absint( $discount );  | 
                                                        |
| 85 | - $data = self::get_data_by( 'id', $discount );  | 
                                                        |
| 86 | - }  | 
                                                        |
| 87 | -  | 
                                                        |
| 88 | -		if ( is_array( $data ) ) { | 
                                                        |
| 89 | - $this->init( $data );  | 
                                                        |
| 90 | - return;  | 
                                                        |
| 91 | - }  | 
                                                        |
| 83 | +        if ( ! empty( $discount ) && is_numeric( $discount ) ) { | 
                                                        |
| 84 | + $discount = absint( $discount );  | 
                                                        |
| 85 | + $data = self::get_data_by( 'id', $discount );  | 
                                                        |
| 86 | + }  | 
                                                        |
| 87 | +  | 
                                                        |
| 88 | +        if ( is_array( $data ) ) { | 
                                                        |
| 89 | + $this->init( $data );  | 
                                                        |
| 90 | + return;  | 
                                                        |
| 91 | + }  | 
                                                        |
| 92 | 92 | |
| 93 | - // Try fetching the discount by its discount code.  | 
                                                        |
| 94 | -		if ( ! empty( $discount ) && is_string( $discount ) ) { | 
                                                        |
| 95 | - $data = self::get_data_by( 'discount_code', $discount );  | 
                                                        |
| 96 | - }  | 
                                                        |
| 97 | -  | 
                                                        |
| 98 | -		if ( is_array( $data ) ) { | 
                                                        |
| 99 | - $this->init( $data );  | 
                                                        |
| 100 | - return;  | 
                                                        |
| 101 | - }  | 
                                                        |
| 93 | + // Try fetching the discount by its discount code.  | 
                                                        |
| 94 | +        if ( ! empty( $discount ) && is_string( $discount ) ) { | 
                                                        |
| 95 | + $data = self::get_data_by( 'discount_code', $discount );  | 
                                                        |
| 96 | + }  | 
                                                        |
| 97 | +  | 
                                                        |
| 98 | +        if ( is_array( $data ) ) { | 
                                                        |
| 99 | + $this->init( $data );  | 
                                                        |
| 100 | + return;  | 
                                                        |
| 101 | + }  | 
                                                        |
| 102 | 102 | |
| 103 | - // If we are here then the discount does not exist.  | 
                                                        |
| 104 | - $this->init( array() );  | 
                                                        |
| 105 | - }  | 
                                                        |
| 103 | + // If we are here then the discount does not exist.  | 
                                                        |
| 104 | + $this->init( array() );  | 
                                                        |
| 105 | + }  | 
                                                        |
| 106 | 106 | |
| 107 | - /**  | 
                                                        |
| 108 | - * Sets up object properties  | 
                                                        |
| 109 | - *  | 
                                                        |
| 110 | - * @since 1.0.15  | 
                                                        |
| 111 | - * @param array $data An array containing the discount's data  | 
                                                        |
| 112 | - */  | 
                                                        |
| 113 | -	public function init( $data ) { | 
                                                        |
| 114 | - $data = self::sanitize_discount_data( $data );  | 
                                                        |
| 115 | - $this->data = $data;  | 
                                                        |
| 116 | - $this->old_status = $data['status'];  | 
                                                        |
| 117 | - $this->ID = $data['ID'];  | 
                                                        |
| 118 | - }  | 
                                                        |
| 107 | + /**  | 
                                                        |
| 108 | + * Sets up object properties  | 
                                                        |
| 109 | + *  | 
                                                        |
| 110 | + * @since 1.0.15  | 
                                                        |
| 111 | + * @param array $data An array containing the discount's data  | 
                                                        |
| 112 | + */  | 
                                                        |
| 113 | +    public function init( $data ) { | 
                                                        |
| 114 | + $data = self::sanitize_discount_data( $data );  | 
                                                        |
| 115 | + $this->data = $data;  | 
                                                        |
| 116 | + $this->old_status = $data['status'];  | 
                                                        |
| 117 | + $this->ID = $data['ID'];  | 
                                                        |
| 118 | + }  | 
                                                        |
| 119 | 119 | |
| 120 | - /**  | 
                                                        |
| 121 | - * Fetch a discount from the db/cache  | 
                                                        |
| 122 | - *  | 
                                                        |
| 123 | - *  | 
                                                        |
| 124 | - * @static  | 
                                                        |
| 125 | - * @param string $field The field to query against: 'ID', 'discount_code'  | 
                                                        |
| 126 | - * @param string|int $value The field value  | 
                                                        |
| 127 | - * @since 1.0.15  | 
                                                        |
| 128 | - * @return array|bool array of discount details on success. False otherwise.  | 
                                                        |
| 129 | - */  | 
                                                        |
| 130 | -	public static function get_data_by( $field, $value ) { | 
                                                        |
| 131 | -  | 
                                                        |
| 132 | -		if ( 'id' == strtolower( $field ) ) { | 
                                                        |
| 133 | - // Make sure the value is numeric to avoid casting objects, for example,  | 
                                                        |
| 134 | - // to int 1.  | 
                                                        |
| 135 | - if ( ! is_numeric( $value ) )  | 
                                                        |
| 136 | - return false;  | 
                                                        |
| 137 | - $value = intval( $value );  | 
                                                        |
| 138 | - if ( $value < 1 )  | 
                                                        |
| 139 | - return false;  | 
                                                        |
| 140 | - }  | 
                                                        |
| 141 | -  | 
                                                        |
| 142 | -		if ( ! $value || ! is_string( $field ) ) { | 
                                                        |
| 143 | - return false;  | 
                                                        |
| 144 | - }  | 
                                                        |
| 120 | + /**  | 
                                                        |
| 121 | + * Fetch a discount from the db/cache  | 
                                                        |
| 122 | + *  | 
                                                        |
| 123 | + *  | 
                                                        |
| 124 | + * @static  | 
                                                        |
| 125 | + * @param string $field The field to query against: 'ID', 'discount_code'  | 
                                                        |
| 126 | + * @param string|int $value The field value  | 
                                                        |
| 127 | + * @since 1.0.15  | 
                                                        |
| 128 | + * @return array|bool array of discount details on success. False otherwise.  | 
                                                        |
| 129 | + */  | 
                                                        |
| 130 | +    public static function get_data_by( $field, $value ) { | 
                                                        |
| 131 | +  | 
                                                        |
| 132 | +        if ( 'id' == strtolower( $field ) ) { | 
                                                        |
| 133 | + // Make sure the value is numeric to avoid casting objects, for example,  | 
                                                        |
| 134 | + // to int 1.  | 
                                                        |
| 135 | + if ( ! is_numeric( $value ) )  | 
                                                        |
| 136 | + return false;  | 
                                                        |
| 137 | + $value = intval( $value );  | 
                                                        |
| 138 | + if ( $value < 1 )  | 
                                                        |
| 139 | + return false;  | 
                                                        |
| 140 | + }  | 
                                                        |
| 141 | +  | 
                                                        |
| 142 | +        if ( ! $value || ! is_string( $field ) ) { | 
                                                        |
| 143 | + return false;  | 
                                                        |
| 144 | + }  | 
                                                        |
| 145 | 145 | |
| 146 | - $field = trim( $field );  | 
                                                        |
| 147 | -  | 
                                                        |
| 148 | - // prepare query args  | 
                                                        |
| 149 | -		switch ( strtolower( $field ) ) { | 
                                                        |
| 150 | - case 'id':  | 
                                                        |
| 151 | - $discount_id = $value;  | 
                                                        |
| 152 | - $args = array( 'include' => array( $value ) );  | 
                                                        |
| 153 | - break;  | 
                                                        |
| 154 | - case 'discount_code':  | 
                                                        |
| 155 | - case 'code':  | 
                                                        |
| 156 | - $value = trim( $value );  | 
                                                        |
| 157 | - $discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );  | 
                                                        |
| 158 | - $args = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );  | 
                                                        |
| 159 | - break;  | 
                                                        |
| 160 | - case 'name':  | 
                                                        |
| 161 | - $discount_id = 0;  | 
                                                        |
| 162 | - $args = array( 'name' => trim( $value ) );  | 
                                                        |
| 163 | - break;  | 
                                                        |
| 164 | - default:  | 
                                                        |
| 165 | -				$args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value ); | 
                                                        |
| 166 | -				if ( ! is_array( $args ) ) { | 
                                                        |
| 167 | - return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );  | 
                                                        |
| 168 | - }  | 
                                                        |
| 169 | -  | 
                                                        |
| 170 | - }  | 
                                                        |
| 171 | -  | 
                                                        |
| 172 | - // Check if there is a cached value.  | 
                                                        |
| 173 | -		if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) { | 
                                                        |
| 174 | - return $discount;  | 
                                                        |
| 175 | - }  | 
                                                        |
| 176 | -  | 
                                                        |
| 177 | - $args = array_merge(  | 
                                                        |
| 178 | - $args,  | 
                                                        |
| 179 | - array(  | 
                                                        |
| 180 | - 'post_type' => 'wpi_discount',  | 
                                                        |
| 181 | - 'posts_per_page' => 1,  | 
                                                        |
| 182 | - 'post_status' => array( 'publish', 'pending', 'draft', 'expired' )  | 
                                                        |
| 183 | - )  | 
                                                        |
| 184 | - );  | 
                                                        |
| 185 | -  | 
                                                        |
| 186 | - $discount = get_posts( $args );  | 
                                                        |
| 146 | + $field = trim( $field );  | 
                                                        |
| 147 | +  | 
                                                        |
| 148 | + // prepare query args  | 
                                                        |
| 149 | +        switch ( strtolower( $field ) ) { | 
                                                        |
| 150 | + case 'id':  | 
                                                        |
| 151 | + $discount_id = $value;  | 
                                                        |
| 152 | + $args = array( 'include' => array( $value ) );  | 
                                                        |
| 153 | + break;  | 
                                                        |
| 154 | + case 'discount_code':  | 
                                                        |
| 155 | + case 'code':  | 
                                                        |
| 156 | + $value = trim( $value );  | 
                                                        |
| 157 | + $discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );  | 
                                                        |
| 158 | + $args = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );  | 
                                                        |
| 159 | + break;  | 
                                                        |
| 160 | + case 'name':  | 
                                                        |
| 161 | + $discount_id = 0;  | 
                                                        |
| 162 | + $args = array( 'name' => trim( $value ) );  | 
                                                        |
| 163 | + break;  | 
                                                        |
| 164 | + default:  | 
                                                        |
| 165 | +                $args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value ); | 
                                                        |
| 166 | +                if ( ! is_array( $args ) ) { | 
                                                        |
| 167 | + return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );  | 
                                                        |
| 168 | + }  | 
                                                        |
| 169 | +  | 
                                                        |
| 170 | + }  | 
                                                        |
| 171 | +  | 
                                                        |
| 172 | + // Check if there is a cached value.  | 
                                                        |
| 173 | +        if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) { | 
                                                        |
| 174 | + return $discount;  | 
                                                        |
| 175 | + }  | 
                                                        |
| 176 | +  | 
                                                        |
| 177 | + $args = array_merge(  | 
                                                        |
| 178 | + $args,  | 
                                                        |
| 179 | + array(  | 
                                                        |
| 180 | + 'post_type' => 'wpi_discount',  | 
                                                        |
| 181 | + 'posts_per_page' => 1,  | 
                                                        |
| 182 | + 'post_status' => array( 'publish', 'pending', 'draft', 'expired' )  | 
                                                        |
| 183 | + )  | 
                                                        |
| 184 | + );  | 
                                                        |
| 185 | +  | 
                                                        |
| 186 | + $discount = get_posts( $args );  | 
                                                        |
| 187 | 187 | |
| 188 | -		if( empty( $discount ) ) { | 
                                                        |
| 189 | - return false;  | 
                                                        |
| 190 | - }  | 
                                                        |
| 188 | +        if( empty( $discount ) ) { | 
                                                        |
| 189 | + return false;  | 
                                                        |
| 190 | + }  | 
                                                        |
| 191 | 191 | |
| 192 | - $discount = $discount[0];  | 
                                                        |
| 192 | + $discount = $discount[0];  | 
                                                        |
| 193 | 193 | |
| 194 | - // Prepare the return data.  | 
                                                        |
| 195 | - $return = array(  | 
                                                        |
| 194 | + // Prepare the return data.  | 
                                                        |
| 195 | + $return = array(  | 
                                                        |
| 196 | 196 | 'ID' => $discount->ID,  | 
                                                        
| 197 | 197 | 'code' => get_post_meta( $discount->ID, '_wpi_discount_code', true ),  | 
                                                        
| 198 | 198 | 'amount' => get_post_meta( $discount->ID, '_wpi_discount_amount', true ),  | 
                                                        
| 199 | 199 | 'date_created' => $discount->post_date,  | 
                                                        
| 200 | - 'date_modified' => $discount->post_modified,  | 
                                                        |
| 201 | - 'status' => $discount->post_status,  | 
                                                        |
| 202 | - 'start' => get_post_meta( $discount->ID, '_wpi_discount_start', true ),  | 
                                                        |
| 200 | + 'date_modified' => $discount->post_modified,  | 
                                                        |
| 201 | + 'status' => $discount->post_status,  | 
                                                        |
| 202 | + 'start' => get_post_meta( $discount->ID, '_wpi_discount_start', true ),  | 
                                                        |
| 203 | 203 | 'expiration' => get_post_meta( $discount->ID, '_wpi_discount_expiration', true ),  | 
                                                        
| 204 | 204 | 'type' => get_post_meta( $discount->ID, '_wpi_discount_type', true ),  | 
                                                        
| 205 | 205 | 'description' => $discount->post_excerpt,  | 
                                                        
@@ -213,38 +213,38 @@ discard block  | 
                                                    ||
| 213 | 213 | 'max_total' => get_post_meta( $discount->ID, '_wpi_discount_max_total', true ),  | 
                                                        
| 214 | 214 | );  | 
                                                        
| 215 | 215 | |
| 216 | - $return = self::sanitize_discount_data( $return );  | 
                                                        |
| 217 | - $return = apply_filters( 'wpinv_discount_properties', $return );  | 
                                                        |
| 216 | + $return = self::sanitize_discount_data( $return );  | 
                                                        |
| 217 | + $return = apply_filters( 'wpinv_discount_properties', $return );  | 
                                                        |
| 218 | 218 | |
| 219 | - // Update the cache with our data  | 
                                                        |
| 220 | - wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );  | 
                                                        |
| 221 | - wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );  | 
                                                        |
| 219 | + // Update the cache with our data  | 
                                                        |
| 220 | + wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );  | 
                                                        |
| 221 | + wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );  | 
                                                        |
| 222 | 222 | |
| 223 | - return $return;  | 
                                                        |
| 224 | - }  | 
                                                        |
| 223 | + return $return;  | 
                                                        |
| 224 | + }  | 
                                                        |
| 225 | 225 | |
| 226 | - /**  | 
                                                        |
| 227 | - * Sanitizes discount data  | 
                                                        |
| 228 | - *  | 
                                                        |
| 229 | - * @static  | 
                                                        |
| 230 | - * @since 1.0.15  | 
                                                        |
| 231 | - * @access public  | 
                                                        |
| 232 | - *  | 
                                                        |
| 233 | - * @return array the sanitized data  | 
                                                        |
| 234 | - */  | 
                                                        |
| 235 | -	public static function sanitize_discount_data( $data ) { | 
                                                        |
| 226 | + /**  | 
                                                        |
| 227 | + * Sanitizes discount data  | 
                                                        |
| 228 | + *  | 
                                                        |
| 229 | + * @static  | 
                                                        |
| 230 | + * @since 1.0.15  | 
                                                        |
| 231 | + * @access public  | 
                                                        |
| 232 | + *  | 
                                                        |
| 233 | + * @return array the sanitized data  | 
                                                        |
| 234 | + */  | 
                                                        |
| 235 | +    public static function sanitize_discount_data( $data ) { | 
                                                        |
| 236 | 236 | |
| 237 | - $allowed_discount_types = array_keys( wpinv_get_discount_types() );  | 
                                                        |
| 237 | + $allowed_discount_types = array_keys( wpinv_get_discount_types() );  | 
                                                        |
| 238 | 238 | |
| 239 | - $return = array(  | 
                                                        |
| 239 | + $return = array(  | 
                                                        |
| 240 | 240 | 'ID' => null,  | 
                                                        
| 241 | 241 | 'code' => '',  | 
                                                        
| 242 | 242 | 'amount' => 0,  | 
                                                        
| 243 | 243 |              'date_created'                => current_time('mysql'), | 
                                                        
| 244 | 244 |              'date_modified'               => current_time('mysql'), | 
                                                        
| 245 | - 'expiration' => null,  | 
                                                        |
| 246 | -			'start'                  	  => current_time('mysql'), | 
                                                        |
| 247 | - 'status' => 'draft',  | 
                                                        |
| 245 | + 'expiration' => null,  | 
                                                        |
| 246 | +            'start'                  	  => current_time('mysql'), | 
                                                        |
| 247 | + 'status' => 'draft',  | 
                                                        |
| 248 | 248 | 'type' => 'percent',  | 
                                                        
| 249 | 249 | 'description' => '',  | 
                                                        
| 250 | 250 | 'uses' => 0,  | 
                                                        
@@ -254,426 +254,426 @@ discard block  | 
                                                    ||
| 254 | 254 | 'max_uses' => 0,  | 
                                                        
| 255 | 255 | 'is_recurring' => false,  | 
                                                        
| 256 | 256 | 'min_total' => '',  | 
                                                        
| 257 | - 'max_total' => '',  | 
                                                        |
| 258 | - );  | 
                                                        |
| 257 | + 'max_total' => '',  | 
                                                        |
| 258 | + );  | 
                                                        |
| 259 | 259 | |
| 260 | 260 | |
| 261 | - // Arrays only please.  | 
                                                        |
| 262 | -		if ( ! is_array( $data ) ) { | 
                                                        |
| 261 | + // Arrays only please.  | 
                                                        |
| 262 | +        if ( ! is_array( $data ) ) { | 
                                                        |
| 263 | 263 | return $return;  | 
                                                        
| 264 | 264 | }  | 
                                                        
| 265 | 265 | |
| 266 | - // If an id is provided, ensure it is a valid discount.  | 
                                                        |
| 266 | + // If an id is provided, ensure it is a valid discount.  | 
                                                        |
| 267 | 267 |          if ( ! empty( $data['ID'] ) && ( ! is_numeric( $data['ID'] ) || 'wpi_discount' !== get_post_type( $data['ID'] ) ) ) { | 
                                                        
| 268 | 268 | return $return;  | 
                                                        
| 269 | - }  | 
                                                        |
| 269 | + }  | 
                                                        |
| 270 | 270 | |
| 271 | 271 | $return = array_merge( $return, $data );  | 
                                                        
| 272 | 272 | |
| 273 | 273 | // Sanitize some keys.  | 
                                                        
| 274 | 274 | $return['amount'] = wpinv_sanitize_amount( $return['amount'] );  | 
                                                        
| 275 | - $return['is_single_use'] = (bool) $return['is_single_use'];  | 
                                                        |
| 276 | - $return['is_recurring'] = (bool) $return['is_recurring'];  | 
                                                        |
| 277 | - $return['uses'] = (int) $return['uses'];  | 
                                                        |
| 278 | - $return['max_uses'] = (int) $return['max_uses'];  | 
                                                        |
| 279 | - $return['min_total'] = wpinv_sanitize_amount( $return['min_total'] );  | 
                                                        |
| 275 | + $return['is_single_use'] = (bool) $return['is_single_use'];  | 
                                                        |
| 276 | + $return['is_recurring'] = (bool) $return['is_recurring'];  | 
                                                        |
| 277 | + $return['uses'] = (int) $return['uses'];  | 
                                                        |
| 278 | + $return['max_uses'] = (int) $return['max_uses'];  | 
                                                        |
| 279 | + $return['min_total'] = wpinv_sanitize_amount( $return['min_total'] );  | 
                                                        |
| 280 | 280 | $return['max_total'] = wpinv_sanitize_amount( $return['max_total'] );  | 
                                                        
| 281 | 281 | |
| 282 | - // Trim all values.  | 
                                                        |
| 283 | - $return = wpinv_clean( $return );  | 
                                                        |
| 282 | + // Trim all values.  | 
                                                        |
| 283 | + $return = wpinv_clean( $return );  | 
                                                        |
| 284 | 284 | |
| 285 | - // Ensure the discount type is supported.  | 
                                                        |
| 285 | + // Ensure the discount type is supported.  | 
                                                        |
| 286 | 286 |          if ( ! in_array( $return['type'], $allowed_discount_types, true ) ) { | 
                                                        
| 287 | 287 | $return['type'] = 'percent';  | 
                                                        
| 288 | - }  | 
                                                        |
| 289 | - $return['type_name'] = wpinv_get_discount_type_name( $return['type'] );  | 
                                                        |
| 288 | + }  | 
                                                        |
| 289 | + $return['type_name'] = wpinv_get_discount_type_name( $return['type'] );  | 
                                                        |
| 290 | 290 | |
| 291 | - // Do not offer more than a 100% discount.  | 
                                                        |
| 292 | -		if ( $return['type'] == 'percent' && (float) $return['amount'] > 100 ) { | 
                                                        |
| 293 | - $return['amount'] = 100;  | 
                                                        |
| 294 | - }  | 
                                                        |
| 295 | -  | 
                                                        |
| 296 | - // Format dates.  | 
                                                        |
| 297 | -		foreach( wpinv_parse_list( 'date_created date_modified expiration start') as $prop ) { | 
                                                        |
| 298 | -			if( ! empty( $return[$prop] ) ) { | 
                                                        |
| 299 | - $return[$prop] = date_i18n( 'Y-m-d H:i:s', strtotime( $return[$prop] ) );  | 
                                                        |
| 300 | - }  | 
                                                        |
| 301 | - }  | 
                                                        |
| 302 | -  | 
                                                        |
| 303 | - // Formart items.  | 
                                                        |
| 304 | -		foreach( array( 'excluded_items', 'items' ) as $prop ) { | 
                                                        |
| 305 | -  | 
                                                        |
| 306 | -			if( ! empty( $return[$prop] ) ) { | 
                                                        |
| 307 | - // Ensure that the property is an array of non-empty integers.  | 
                                                        |
| 308 | - $return[$prop] = array_filter( array_map( 'intval', wpinv_parse_list( $return[$prop] ) ) );  | 
                                                        |
| 309 | -			} else { | 
                                                        |
| 310 | - $return[$prop] = array();  | 
                                                        |
| 311 | - }  | 
                                                        |
| 312 | -  | 
                                                        |
| 313 | - }  | 
                                                        |
| 291 | + // Do not offer more than a 100% discount.  | 
                                                        |
| 292 | +        if ( $return['type'] == 'percent' && (float) $return['amount'] > 100 ) { | 
                                                        |
| 293 | + $return['amount'] = 100;  | 
                                                        |
| 294 | + }  | 
                                                        |
| 295 | +  | 
                                                        |
| 296 | + // Format dates.  | 
                                                        |
| 297 | +        foreach( wpinv_parse_list( 'date_created date_modified expiration start') as $prop ) { | 
                                                        |
| 298 | +            if( ! empty( $return[$prop] ) ) { | 
                                                        |
| 299 | + $return[$prop] = date_i18n( 'Y-m-d H:i:s', strtotime( $return[$prop] ) );  | 
                                                        |
| 300 | + }  | 
                                                        |
| 301 | + }  | 
                                                        |
| 302 | +  | 
                                                        |
| 303 | + // Formart items.  | 
                                                        |
| 304 | +        foreach( array( 'excluded_items', 'items' ) as $prop ) { | 
                                                        |
| 305 | +  | 
                                                        |
| 306 | +            if( ! empty( $return[$prop] ) ) { | 
                                                        |
| 307 | + // Ensure that the property is an array of non-empty integers.  | 
                                                        |
| 308 | + $return[$prop] = array_filter( array_map( 'intval', wpinv_parse_list( $return[$prop] ) ) );  | 
                                                        |
| 309 | +            } else { | 
                                                        |
| 310 | + $return[$prop] = array();  | 
                                                        |
| 311 | + }  | 
                                                        |
| 312 | +  | 
                                                        |
| 313 | + }  | 
                                                        |
| 314 | 314 | |
| 315 | - return apply_filters( 'wpinv_sanitize_discount_data', $return, $data );  | 
                                                        |
| 316 | - }  | 
                                                        |
| 315 | + return apply_filters( 'wpinv_sanitize_discount_data', $return, $data );  | 
                                                        |
| 316 | + }  | 
                                                        |
| 317 | 317 | |
| 318 | - /**  | 
                                                        |
| 319 | - * Magic method for checking the existence of a certain custom field.  | 
                                                        |
| 320 | - *  | 
                                                        |
| 321 | - * @since 1.0.15  | 
                                                        |
| 322 | - * @access public  | 
                                                        |
| 323 | - *  | 
                                                        |
| 324 | - * @return bool Whether the given discount field is set.  | 
                                                        |
| 325 | - */  | 
                                                        |
| 326 | -	public function __isset( $key ){ | 
                                                        |
| 327 | - return isset( $this->data[$key] ) || method_exists( $this, "get_$key");  | 
                                                        |
| 328 | - }  | 
                                                        |
| 318 | + /**  | 
                                                        |
| 319 | + * Magic method for checking the existence of a certain custom field.  | 
                                                        |
| 320 | + *  | 
                                                        |
| 321 | + * @since 1.0.15  | 
                                                        |
| 322 | + * @access public  | 
                                                        |
| 323 | + *  | 
                                                        |
| 324 | + * @return bool Whether the given discount field is set.  | 
                                                        |
| 325 | + */  | 
                                                        |
| 326 | +    public function __isset( $key ){ | 
                                                        |
| 327 | + return isset( $this->data[$key] ) || method_exists( $this, "get_$key");  | 
                                                        |
| 328 | + }  | 
                                                        |
| 329 | 329 | |
| 330 | - /**  | 
                                                        |
| 331 | - * Magic method for accessing discount properties.  | 
                                                        |
| 332 | - *  | 
                                                        |
| 333 | - * @since 1.0.15  | 
                                                        |
| 334 | - * @access public  | 
                                                        |
| 335 | - *  | 
                                                        |
| 336 | - * @param string $key Discount data to retrieve  | 
                                                        |
| 337 | - * @return mixed Value of the given discount property (if set).  | 
                                                        |
| 338 | - */  | 
                                                        |
| 339 | -	public function __get( $key ) { | 
                                                        |
| 340 | - return $this->get( $key );  | 
                                                        |
| 341 | - }  | 
                                                        |
| 342 | -  | 
                                                        |
| 343 | - /**  | 
                                                        |
| 344 | - * Magic method for accessing discount properties.  | 
                                                        |
| 345 | - *  | 
                                                        |
| 346 | - * @since 1.0.15  | 
                                                        |
| 347 | - * @access public  | 
                                                        |
| 348 | - *  | 
                                                        |
| 349 | - * @param string $key Discount data to retrieve  | 
                                                        |
| 350 | - * @return mixed Value of the given discount property (if set).  | 
                                                        |
| 351 | - */  | 
                                                        |
| 352 | -	public function get( $key ) { | 
                                                        |
| 330 | + /**  | 
                                                        |
| 331 | + * Magic method for accessing discount properties.  | 
                                                        |
| 332 | + *  | 
                                                        |
| 333 | + * @since 1.0.15  | 
                                                        |
| 334 | + * @access public  | 
                                                        |
| 335 | + *  | 
                                                        |
| 336 | + * @param string $key Discount data to retrieve  | 
                                                        |
| 337 | + * @return mixed Value of the given discount property (if set).  | 
                                                        |
| 338 | + */  | 
                                                        |
| 339 | +    public function __get( $key ) { | 
                                                        |
| 340 | + return $this->get( $key );  | 
                                                        |
| 341 | + }  | 
                                                        |
| 342 | +  | 
                                                        |
| 343 | + /**  | 
                                                        |
| 344 | + * Magic method for accessing discount properties.  | 
                                                        |
| 345 | + *  | 
                                                        |
| 346 | + * @since 1.0.15  | 
                                                        |
| 347 | + * @access public  | 
                                                        |
| 348 | + *  | 
                                                        |
| 349 | + * @param string $key Discount data to retrieve  | 
                                                        |
| 350 | + * @return mixed Value of the given discount property (if set).  | 
                                                        |
| 351 | + */  | 
                                                        |
| 352 | +    public function get( $key ) { | 
                                                        |
| 353 | 353 | |
| 354 | -		if ( $key == 'id' ) { | 
                                                        |
| 355 | - $key = 'ID';  | 
                                                        |
| 356 | - }  | 
                                                        |
| 354 | +        if ( $key == 'id' ) { | 
                                                        |
| 355 | + $key = 'ID';  | 
                                                        |
| 356 | + }  | 
                                                        |
| 357 | 357 | |
| 358 | -		if( method_exists( $this, "get_$key") ) { | 
                                                        |
| 359 | - $value = call_user_func( array( $this, "get_$key" ) );  | 
                                                        |
| 360 | -		} else if( isset( $this->data[$key] ) ) { | 
                                                        |
| 361 | - $value = $this->data[$key];  | 
                                                        |
| 362 | -		} else { | 
                                                        |
| 363 | - $value = null;  | 
                                                        |
| 364 | - }  | 
                                                        |
| 358 | +        if( method_exists( $this, "get_$key") ) { | 
                                                        |
| 359 | + $value = call_user_func( array( $this, "get_$key" ) );  | 
                                                        |
| 360 | +        } else if( isset( $this->data[$key] ) ) { | 
                                                        |
| 361 | + $value = $this->data[$key];  | 
                                                        |
| 362 | +        } else { | 
                                                        |
| 363 | + $value = null;  | 
                                                        |
| 364 | + }  | 
                                                        |
| 365 | 365 | |
| 366 | - /**  | 
                                                        |
| 367 | - * Filters a discount's property value.  | 
                                                        |
| 368 | - *  | 
                                                        |
| 369 | - * The dynamic part ($key) can be any property name e.g items, code, type etc.  | 
                                                        |
| 370 | - *  | 
                                                        |
| 371 | - * @param mixed $value The property's value.  | 
                                                        |
| 372 | - * @param int $ID The discount's ID.  | 
                                                        |
| 373 | - * @param WPInv_Discount $discount The discount object.  | 
                                                        |
| 374 | - * @param string $code The discount's discount code.  | 
                                                        |
| 375 | - * @param array $data The discount's data array.  | 
                                                        |
| 376 | - */  | 
                                                        |
| 377 | -		return apply_filters( "wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data ); | 
                                                        |
| 378 | -  | 
                                                        |
| 379 | - }  | 
                                                        |
| 366 | + /**  | 
                                                        |
| 367 | + * Filters a discount's property value.  | 
                                                        |
| 368 | + *  | 
                                                        |
| 369 | + * The dynamic part ($key) can be any property name e.g items, code, type etc.  | 
                                                        |
| 370 | + *  | 
                                                        |
| 371 | + * @param mixed $value The property's value.  | 
                                                        |
| 372 | + * @param int $ID The discount's ID.  | 
                                                        |
| 373 | + * @param WPInv_Discount $discount The discount object.  | 
                                                        |
| 374 | + * @param string $code The discount's discount code.  | 
                                                        |
| 375 | + * @param array $data The discount's data array.  | 
                                                        |
| 376 | + */  | 
                                                        |
| 377 | +        return apply_filters( "wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data ); | 
                                                        |
| 378 | +  | 
                                                        |
| 379 | + }  | 
                                                        |
| 380 | 380 | |
| 381 | - /**  | 
                                                        |
| 382 | - * Magic method for setting discount fields.  | 
                                                        |
| 383 | - *  | 
                                                        |
| 384 | - * This method does not update custom fields in the database.  | 
                                                        |
| 385 | - *  | 
                                                        |
| 386 | - * @since 1.0.15  | 
                                                        |
| 387 | - * @access public  | 
                                                        |
| 388 | - *  | 
                                                        |
| 389 | - */  | 
                                                        |
| 390 | -	public function __set( $key, $value ) { | 
                                                        |
| 381 | + /**  | 
                                                        |
| 382 | + * Magic method for setting discount fields.  | 
                                                        |
| 383 | + *  | 
                                                        |
| 384 | + * This method does not update custom fields in the database.  | 
                                                        |
| 385 | + *  | 
                                                        |
| 386 | + * @since 1.0.15  | 
                                                        |
| 387 | + * @access public  | 
                                                        |
| 388 | + *  | 
                                                        |
| 389 | + */  | 
                                                        |
| 390 | +    public function __set( $key, $value ) { | 
                                                        |
| 391 | 391 | |
| 392 | -		if ( 'id' == strtolower( $key ) ) { | 
                                                        |
| 392 | +        if ( 'id' == strtolower( $key ) ) { | 
                                                        |
| 393 | 393 | |
| 394 | - $this->ID = $value;  | 
                                                        |
| 395 | - $this->data['ID'] = $value;  | 
                                                        |
| 396 | - return;  | 
                                                        |
| 394 | + $this->ID = $value;  | 
                                                        |
| 395 | + $this->data['ID'] = $value;  | 
                                                        |
| 396 | + return;  | 
                                                        |
| 397 | 397 | |
| 398 | - }  | 
                                                        |
| 398 | + }  | 
                                                        |
| 399 | 399 | |
| 400 | - /**  | 
                                                        |
| 401 | - * Filters a discount's property value before it is saved.  | 
                                                        |
| 402 | - *  | 
                                                        |
| 403 | - *  | 
                                                        |
| 404 | - *  | 
                                                        |
| 405 | - * The dynamic part ($key) can be any property name e.g items, code, type etc.  | 
                                                        |
| 406 | - *  | 
                                                        |
| 407 | - * @param mixed $value The property's value.  | 
                                                        |
| 408 | - * @param int $ID The discount's ID.  | 
                                                        |
| 409 | - * @param WPInv_Discount $discount The discount object.  | 
                                                        |
| 410 | - * @param string $code The discount's discount code.  | 
                                                        |
| 411 | - * @param array $data The discount's data array.  | 
                                                        |
| 412 | - */  | 
                                                        |
| 413 | -		$value = apply_filters( "wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data ); | 
                                                        |
| 414 | -  | 
                                                        |
| 415 | -		if( method_exists( $this, "set_$key") ) { | 
                                                        |
| 416 | - call_user_func( array( $this, "set_$key" ), $value );  | 
                                                        |
| 417 | -		} else { | 
                                                        |
| 418 | - $this->data[$key] = $value;  | 
                                                        |
| 419 | - }  | 
                                                        |
| 400 | + /**  | 
                                                        |
| 401 | + * Filters a discount's property value before it is saved.  | 
                                                        |
| 402 | + *  | 
                                                        |
| 403 | + *  | 
                                                        |
| 404 | + *  | 
                                                        |
| 405 | + * The dynamic part ($key) can be any property name e.g items, code, type etc.  | 
                                                        |
| 406 | + *  | 
                                                        |
| 407 | + * @param mixed $value The property's value.  | 
                                                        |
| 408 | + * @param int $ID The discount's ID.  | 
                                                        |
| 409 | + * @param WPInv_Discount $discount The discount object.  | 
                                                        |
| 410 | + * @param string $code The discount's discount code.  | 
                                                        |
| 411 | + * @param array $data The discount's data array.  | 
                                                        |
| 412 | + */  | 
                                                        |
| 413 | +        $value = apply_filters( "wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data ); | 
                                                        |
| 414 | +  | 
                                                        |
| 415 | +        if( method_exists( $this, "set_$key") ) { | 
                                                        |
| 416 | + call_user_func( array( $this, "set_$key" ), $value );  | 
                                                        |
| 417 | +        } else { | 
                                                        |
| 418 | + $this->data[$key] = $value;  | 
                                                        |
| 419 | + }  | 
                                                        |
| 420 | 420 | |
| 421 | - }  | 
                                                        |
| 421 | + }  | 
                                                        |
| 422 | 422 | |
| 423 | - /**  | 
                                                        |
| 424 | - * Saves (or updates) a discount to the database  | 
                                                        |
| 425 | - *  | 
                                                        |
| 426 | - * @since 1.0.15  | 
                                                        |
| 427 | - * @access public  | 
                                                        |
| 428 | - * @return bool  | 
                                                        |
| 429 | - *  | 
                                                        |
| 430 | - */  | 
                                                        |
| 431 | -	public function save(){ | 
                                                        |
| 423 | + /**  | 
                                                        |
| 424 | + * Saves (or updates) a discount to the database  | 
                                                        |
| 425 | + *  | 
                                                        |
| 426 | + * @since 1.0.15  | 
                                                        |
| 427 | + * @access public  | 
                                                        |
| 428 | + * @return bool  | 
                                                        |
| 429 | + *  | 
                                                        |
| 430 | + */  | 
                                                        |
| 431 | +    public function save(){ | 
                                                        |
| 432 | 432 | |
| 433 | - $data = self::sanitize_discount_data( $this->data );  | 
                                                        |
| 433 | + $data = self::sanitize_discount_data( $this->data );  | 
                                                        |
| 434 | 434 | |
| 435 | - // Should we create a new post?  | 
                                                        |
| 436 | -		if( ! $data[ 'ID' ] ) { | 
                                                        |
| 435 | + // Should we create a new post?  | 
                                                        |
| 436 | +        if( ! $data[ 'ID' ] ) { | 
                                                        |
| 437 | 437 | |
| 438 | - $id = wp_insert_post( array(  | 
                                                        |
| 439 | - 'post_status' => $data['status'],  | 
                                                        |
| 440 | - 'post_type' => 'wpi_discount',  | 
                                                        |
| 441 | - 'post_excerpt' => $data['description'],  | 
                                                        |
| 442 | - ) );  | 
                                                        |
| 438 | + $id = wp_insert_post( array(  | 
                                                        |
| 439 | + 'post_status' => $data['status'],  | 
                                                        |
| 440 | + 'post_type' => 'wpi_discount',  | 
                                                        |
| 441 | + 'post_excerpt' => $data['description'],  | 
                                                        |
| 442 | + ) );  | 
                                                        |
| 443 | 443 | |
| 444 | -			if( empty( $id ) ) { | 
                                                        |
| 445 | - return false;  | 
                                                        |
| 446 | - }  | 
                                                        |
| 444 | +            if( empty( $id ) ) { | 
                                                        |
| 445 | + return false;  | 
                                                        |
| 446 | + }  | 
                                                        |
| 447 | 447 | |
| 448 | - $data[ 'ID' ] = (int) $id;  | 
                                                        |
| 449 | - $this->ID = $data[ 'ID' ];  | 
                                                        |
| 450 | - $this->data['ID'] = $data[ 'ID' ];  | 
                                                        |
| 448 | + $data[ 'ID' ] = (int) $id;  | 
                                                        |
| 449 | + $this->ID = $data[ 'ID' ];  | 
                                                        |
| 450 | + $this->data['ID'] = $data[ 'ID' ];  | 
                                                        |
| 451 | 451 | |
| 452 | -		} else { | 
                                                        |
| 453 | - $this->update_status( $data['status'] );  | 
                                                        |
| 454 | - }  | 
                                                        |
| 452 | +        } else { | 
                                                        |
| 453 | + $this->update_status( $data['status'] );  | 
                                                        |
| 454 | + }  | 
                                                        |
| 455 | 455 | |
| 456 | - $meta = apply_filters( 'wpinv_update_discount', $data, $this->ID, $this );  | 
                                                        |
| 456 | + $meta = apply_filters( 'wpinv_update_discount', $data, $this->ID, $this );  | 
                                                        |
| 457 | 457 | |
| 458 | - do_action( 'wpinv_pre_update_discount', $meta, $this->ID, $this );  | 
                                                        |
| 458 | + do_action( 'wpinv_pre_update_discount', $meta, $this->ID, $this );  | 
                                                        |
| 459 | 459 | |
| 460 | -		foreach( wpinv_parse_list( 'ID date_created date_modified status description type_name' ) as $prop ) { | 
                                                        |
| 461 | -			if ( isset( $meta[$prop] ) ) { | 
                                                        |
| 462 | - unset( $meta[$prop] );  | 
                                                        |
| 463 | - }  | 
                                                        |
| 464 | - }  | 
                                                        |
| 460 | +        foreach( wpinv_parse_list( 'ID date_created date_modified status description type_name' ) as $prop ) { | 
                                                        |
| 461 | +            if ( isset( $meta[$prop] ) ) { | 
                                                        |
| 462 | + unset( $meta[$prop] );  | 
                                                        |
| 463 | + }  | 
                                                        |
| 464 | + }  | 
                                                        |
| 465 | 465 | |
| 466 | -		if( isset( $meta['uses'] ) && empty( $meta['uses'] ) ) { | 
                                                        |
| 467 | - unset( $meta['uses'] );  | 
                                                        |
| 468 | - }  | 
                                                        |
| 466 | +        if( isset( $meta['uses'] ) && empty( $meta['uses'] ) ) { | 
                                                        |
| 467 | + unset( $meta['uses'] );  | 
                                                        |
| 468 | + }  | 
                                                        |
| 469 | 469 | |
| 470 | - // Save the metadata.  | 
                                                        |
| 471 | -		foreach( $meta as $key => $value ) { | 
                                                        |
| 472 | - update_post_meta( $this->ID, "_wpi_discount_$key", $value );  | 
                                                        |
| 473 | - }  | 
                                                        |
| 470 | + // Save the metadata.  | 
                                                        |
| 471 | +        foreach( $meta as $key => $value ) { | 
                                                        |
| 472 | + update_post_meta( $this->ID, "_wpi_discount_$key", $value );  | 
                                                        |
| 473 | + }  | 
                                                        |
| 474 | 474 | |
| 475 | - $this->refresh();  | 
                                                        |
| 475 | + $this->refresh();  | 
                                                        |
| 476 | 476 | |
| 477 | - do_action( 'wpinv_post_update_discount', $meta, $this->ID );  | 
                                                        |
| 477 | + do_action( 'wpinv_post_update_discount', $meta, $this->ID );  | 
                                                        |
| 478 | 478 | |
| 479 | - return true;  | 
                                                        |
| 480 | - }  | 
                                                        |
| 479 | + return true;  | 
                                                        |
| 480 | + }  | 
                                                        |
| 481 | 481 | |
| 482 | - /**  | 
                                                        |
| 483 | - * Refreshes the discount data.  | 
                                                        |
| 484 | - *  | 
                                                        |
| 485 | - * @since 1.0.15  | 
                                                        |
| 486 | - * @access public  | 
                                                        |
| 487 | - * @return bool  | 
                                                        |
| 488 | - *  | 
                                                        |
| 489 | - */  | 
                                                        |
| 490 | -	public function refresh(){ | 
                                                        |
| 482 | + /**  | 
                                                        |
| 483 | + * Refreshes the discount data.  | 
                                                        |
| 484 | + *  | 
                                                        |
| 485 | + * @since 1.0.15  | 
                                                        |
| 486 | + * @access public  | 
                                                        |
| 487 | + * @return bool  | 
                                                        |
| 488 | + *  | 
                                                        |
| 489 | + */  | 
                                                        |
| 490 | +    public function refresh(){ | 
                                                        |
| 491 | 491 | |
| 492 | - // Empty the cache for this discount.  | 
                                                        |
| 493 | - wp_cache_delete( $this->ID, 'WPInv_Discounts' );  | 
                                                        |
| 494 | - wp_cache_delete( $this->get( 'code' ), 'WPInv_Discount_Codes' );  | 
                                                        |
| 492 | + // Empty the cache for this discount.  | 
                                                        |
| 493 | + wp_cache_delete( $this->ID, 'WPInv_Discounts' );  | 
                                                        |
| 494 | + wp_cache_delete( $this->get( 'code' ), 'WPInv_Discount_Codes' );  | 
                                                        |
| 495 | 495 | |
| 496 | - $data = self::get_data_by( 'id', $this->ID );  | 
                                                        |
| 497 | -		if( is_array( $data ) ) { | 
                                                        |
| 498 | - $this->init( $data );  | 
                                                        |
| 499 | -		} else { | 
                                                        |
| 500 | - $this->init( array() );  | 
                                                        |
| 501 | - }  | 
                                                        |
| 496 | + $data = self::get_data_by( 'id', $this->ID );  | 
                                                        |
| 497 | +        if( is_array( $data ) ) { | 
                                                        |
| 498 | + $this->init( $data );  | 
                                                        |
| 499 | +        } else { | 
                                                        |
| 500 | + $this->init( array() );  | 
                                                        |
| 501 | + }  | 
                                                        |
| 502 | 502 | |
| 503 | - }  | 
                                                        |
| 503 | + }  | 
                                                        |
| 504 | 504 | |
| 505 | - /**  | 
                                                        |
| 506 | - * Saves (or updates) a discount to the database  | 
                                                        |
| 507 | - *  | 
                                                        |
| 508 | - * @since 1.0.15  | 
                                                        |
| 509 | - * @access public  | 
                                                        |
| 510 | - * @return bool  | 
                                                        |
| 511 | - *  | 
                                                        |
| 512 | - */  | 
                                                        |
| 513 | -	public function update_status( $status = 'publish' ){ | 
                                                        |
| 505 | + /**  | 
                                                        |
| 506 | + * Saves (or updates) a discount to the database  | 
                                                        |
| 507 | + *  | 
                                                        |
| 508 | + * @since 1.0.15  | 
                                                        |
| 509 | + * @access public  | 
                                                        |
| 510 | + * @return bool  | 
                                                        |
| 511 | + *  | 
                                                        |
| 512 | + */  | 
                                                        |
| 513 | +    public function update_status( $status = 'publish' ){ | 
                                                        |
| 514 | 514 | |
| 515 | 515 | |
| 516 | -		if ( $this->exists() && $this->old_status != $status ) { | 
                                                        |
| 516 | +        if ( $this->exists() && $this->old_status != $status ) { | 
                                                        |
| 517 | 517 | |
| 518 | - do_action( 'wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status );  | 
                                                        |
| 519 | - $updated = wp_update_post( array( 'ID' => $this->ID, 'post_status' => $status ) );  | 
                                                        |
| 520 | - do_action( 'wpinv_post_update_discount_status', $this->ID, $this->old_status, $status );  | 
                                                        |
| 518 | + do_action( 'wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status );  | 
                                                        |
| 519 | + $updated = wp_update_post( array( 'ID' => $this->ID, 'post_status' => $status ) );  | 
                                                        |
| 520 | + do_action( 'wpinv_post_update_discount_status', $this->ID, $this->old_status, $status );  | 
                                                        |
| 521 | 521 | |
| 522 | - $this->refresh();  | 
                                                        |
| 522 | + $this->refresh();  | 
                                                        |
| 523 | 523 | |
| 524 | - return $updated !== 0;  | 
                                                        |
| 524 | + return $updated !== 0;  | 
                                                        |
| 525 | 525 | |
| 526 | - }  | 
                                                        |
| 526 | + }  | 
                                                        |
| 527 | 527 | |
| 528 | - return false;  | 
                                                        |
| 529 | - }  | 
                                                        |
| 528 | + return false;  | 
                                                        |
| 529 | + }  | 
                                                        |
| 530 | 530 | |
| 531 | 531 | |
| 532 | - /**  | 
                                                        |
| 533 | - * Checks whether a discount exists in the database or not  | 
                                                        |
| 534 | - *  | 
                                                        |
| 535 | - * @since 1.0.15  | 
                                                        |
| 536 | - */  | 
                                                        |
| 537 | -	public function exists(){ | 
                                                        |
| 538 | - return ! empty( $this->ID );  | 
                                                        |
| 539 | - }  | 
                                                        |
| 532 | + /**  | 
                                                        |
| 533 | + * Checks whether a discount exists in the database or not  | 
                                                        |
| 534 | + *  | 
                                                        |
| 535 | + * @since 1.0.15  | 
                                                        |
| 536 | + */  | 
                                                        |
| 537 | +    public function exists(){ | 
                                                        |
| 538 | + return ! empty( $this->ID );  | 
                                                        |
| 539 | + }  | 
                                                        |
| 540 | 540 | |
| 541 | - // Boolean methods  | 
                                                        |
| 541 | + // Boolean methods  | 
                                                        |
| 542 | 542 | |
| 543 | - /**  | 
                                                        |
| 544 | - * Checks the discount type.  | 
                                                        |
| 545 | - *  | 
                                                        |
| 546 | - *  | 
                                                        |
| 547 | - * @param string $type the discount type to check against  | 
                                                        |
| 548 | - * @since 1.0.15  | 
                                                        |
| 549 | - * @return bool  | 
                                                        |
| 550 | - */  | 
                                                        |
| 551 | -	public function is_type( $type ) { | 
                                                        |
| 552 | - return $this->type == $type;  | 
                                                        |
| 553 | - }  | 
                                                        |
| 543 | + /**  | 
                                                        |
| 544 | + * Checks the discount type.  | 
                                                        |
| 545 | + *  | 
                                                        |
| 546 | + *  | 
                                                        |
| 547 | + * @param string $type the discount type to check against  | 
                                                        |
| 548 | + * @since 1.0.15  | 
                                                        |
| 549 | + * @return bool  | 
                                                        |
| 550 | + */  | 
                                                        |
| 551 | +    public function is_type( $type ) { | 
                                                        |
| 552 | + return $this->type == $type;  | 
                                                        |
| 553 | + }  | 
                                                        |
| 554 | 554 | |
| 555 | - /**  | 
                                                        |
| 556 | - * Checks whether the discount is published or not  | 
                                                        |
| 557 | - *  | 
                                                        |
| 558 | - * @since 1.0.15  | 
                                                        |
| 559 | - * @return bool  | 
                                                        |
| 560 | - */  | 
                                                        |
| 561 | -	public function is_active() { | 
                                                        |
| 562 | - return $this->status == 'publish';  | 
                                                        |
| 563 | - }  | 
                                                        |
| 555 | + /**  | 
                                                        |
| 556 | + * Checks whether the discount is published or not  | 
                                                        |
| 557 | + *  | 
                                                        |
| 558 | + * @since 1.0.15  | 
                                                        |
| 559 | + * @return bool  | 
                                                        |
| 560 | + */  | 
                                                        |
| 561 | +    public function is_active() { | 
                                                        |
| 562 | + return $this->status == 'publish';  | 
                                                        |
| 563 | + }  | 
                                                        |
| 564 | 564 | |
| 565 | - /**  | 
                                                        |
| 566 | - * Checks whether the discount is has exided the usage limit or not  | 
                                                        |
| 567 | - *  | 
                                                        |
| 568 | - * @since 1.0.15  | 
                                                        |
| 569 | - * @return bool  | 
                                                        |
| 570 | - */  | 
                                                        |
| 571 | -	public function has_exceeded_limit() { | 
                                                        |
| 572 | -		if( empty( $this->max_uses ) || empty( $this->uses ) ) {  | 
                                                        |
| 573 | - return false ;  | 
                                                        |
| 574 | - }  | 
                                                        |
| 565 | + /**  | 
                                                        |
| 566 | + * Checks whether the discount is has exided the usage limit or not  | 
                                                        |
| 567 | + *  | 
                                                        |
| 568 | + * @since 1.0.15  | 
                                                        |
| 569 | + * @return bool  | 
                                                        |
| 570 | + */  | 
                                                        |
| 571 | +    public function has_exceeded_limit() { | 
                                                        |
| 572 | +        if( empty( $this->max_uses ) || empty( $this->uses ) ) {  | 
                                                        |
| 573 | + return false ;  | 
                                                        |
| 574 | + }  | 
                                                        |
| 575 | 575 | |
| 576 | - $exceeded = $this->uses >= $this->max_uses;  | 
                                                        |
| 577 | - return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );  | 
                                                        |
| 578 | - }  | 
                                                        |
| 576 | + $exceeded = $this->uses >= $this->max_uses;  | 
                                                        |
| 577 | + return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );  | 
                                                        |
| 578 | + }  | 
                                                        |
| 579 | 579 | |
| 580 | - /**  | 
                                                        |
| 581 | - * Checks if the discount is expired  | 
                                                        |
| 582 | - *  | 
                                                        |
| 583 | - * @since 1.0.15  | 
                                                        |
| 584 | - * @return bool  | 
                                                        |
| 585 | - */  | 
                                                        |
| 586 | -	public function is_expired() { | 
                                                        |
| 587 | - $expired = empty ( $this->expiration ) ? false : current_time( 'timestamp' ) > strtotime( $this->expiration );  | 
                                                        |
| 588 | - return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );  | 
                                                        |
| 589 | - }  | 
                                                        |
| 590 | -  | 
                                                        |
| 591 | - /**  | 
                                                        |
| 592 | - * Checks the discount start date.  | 
                                                        |
| 593 | - *  | 
                                                        |
| 594 | - * @since 1.0.15  | 
                                                        |
| 595 | - * @return bool  | 
                                                        |
| 596 | - */  | 
                                                        |
| 597 | -	public function has_started() { | 
                                                        |
| 598 | - $started = empty ( $this->start ) ? true : current_time( 'timestamp' ) > strtotime( $this->start );  | 
                                                        |
| 599 | - return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );  | 
                                                        |
| 600 | - }  | 
                                                        |
| 580 | + /**  | 
                                                        |
| 581 | + * Checks if the discount is expired  | 
                                                        |
| 582 | + *  | 
                                                        |
| 583 | + * @since 1.0.15  | 
                                                        |
| 584 | + * @return bool  | 
                                                        |
| 585 | + */  | 
                                                        |
| 586 | +    public function is_expired() { | 
                                                        |
| 587 | + $expired = empty ( $this->expiration ) ? false : current_time( 'timestamp' ) > strtotime( $this->expiration );  | 
                                                        |
| 588 | + return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );  | 
                                                        |
| 589 | + }  | 
                                                        |
| 590 | +  | 
                                                        |
| 591 | + /**  | 
                                                        |
| 592 | + * Checks the discount start date.  | 
                                                        |
| 593 | + *  | 
                                                        |
| 594 | + * @since 1.0.15  | 
                                                        |
| 595 | + * @return bool  | 
                                                        |
| 596 | + */  | 
                                                        |
| 597 | +    public function has_started() { | 
                                                        |
| 598 | + $started = empty ( $this->start ) ? true : current_time( 'timestamp' ) > strtotime( $this->start );  | 
                                                        |
| 599 | + return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );  | 
                                                        |
| 600 | + }  | 
                                                        |
| 601 | 601 | |
| 602 | - /**  | 
                                                        |
| 603 | - * Check if a discount is valid for a given item id.  | 
                                                        |
| 604 | - *  | 
                                                        |
| 605 | - * @param int|int[] $item_ids  | 
                                                        |
| 606 | - * @since 1.0.15  | 
                                                        |
| 607 | - * @return boolean  | 
                                                        |
| 608 | - */  | 
                                                        |
| 609 | -	public function is_valid_for_items( $item_ids ) { | 
                                                        |
| 602 | + /**  | 
                                                        |
| 603 | + * Check if a discount is valid for a given item id.  | 
                                                        |
| 604 | + *  | 
                                                        |
| 605 | + * @param int|int[] $item_ids  | 
                                                        |
| 606 | + * @since 1.0.15  | 
                                                        |
| 607 | + * @return boolean  | 
                                                        |
| 608 | + */  | 
                                                        |
| 609 | +    public function is_valid_for_items( $item_ids ) { | 
                                                        |
| 610 | 610 | |
| 611 | - $item_ids = array_map( 'intval', wpinv_parse_list( $item_ids ) );  | 
                                                        |
| 612 | - $included = array_intersect( $item_ids, $this->items );  | 
                                                        |
| 613 | - $excluded = array_intersect( $item_ids, $this->excluded_items );  | 
                                                        |
| 614 | -  | 
                                                        |
| 615 | -		if( ! empty( $this->excluded_items ) && ! empty( $excluded ) ) { | 
                                                        |
| 616 | - return false;  | 
                                                        |
| 617 | - }  | 
                                                        |
| 618 | -  | 
                                                        |
| 619 | -		if( ! empty( $this->items ) && empty( $included ) ) { | 
                                                        |
| 620 | - return false;  | 
                                                        |
| 621 | - }  | 
                                                        |
| 622 | - return true;  | 
                                                        |
| 623 | - }  | 
                                                        |
| 611 | + $item_ids = array_map( 'intval', wpinv_parse_list( $item_ids ) );  | 
                                                        |
| 612 | + $included = array_intersect( $item_ids, $this->items );  | 
                                                        |
| 613 | + $excluded = array_intersect( $item_ids, $this->excluded_items );  | 
                                                        |
| 614 | +  | 
                                                        |
| 615 | +        if( ! empty( $this->excluded_items ) && ! empty( $excluded ) ) { | 
                                                        |
| 616 | + return false;  | 
                                                        |
| 617 | + }  | 
                                                        |
| 618 | +  | 
                                                        |
| 619 | +        if( ! empty( $this->items ) && empty( $included ) ) { | 
                                                        |
| 620 | + return false;  | 
                                                        |
| 621 | + }  | 
                                                        |
| 622 | + return true;  | 
                                                        |
| 623 | + }  | 
                                                        |
| 624 | 624 | |
| 625 | - /**  | 
                                                        |
| 626 | - * Check if a discount is valid for the given amount  | 
                                                        |
| 627 | - *  | 
                                                        |
| 628 | - * @param float $amount The amount to check against  | 
                                                        |
| 629 | - * @since 1.0.15  | 
                                                        |
| 630 | - * @return boolean  | 
                                                        |
| 631 | - */  | 
                                                        |
| 632 | -	public function is_valid_for_amount( $amount ) { | 
                                                        |
| 633 | - return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );  | 
                                                        |
| 634 | - }  | 
                                                        |
| 635 | -  | 
                                                        |
| 636 | - /**  | 
                                                        |
| 637 | - * Checks if the minimum amount is met  | 
                                                        |
| 638 | - *  | 
                                                        |
| 639 | - * @param float $amount The amount to check against  | 
                                                        |
| 640 | - * @since 1.0.15  | 
                                                        |
| 641 | - * @return boolean  | 
                                                        |
| 642 | - */  | 
                                                        |
| 643 | -	public function is_minimum_amount_met( $amount ) { | 
                                                        |
| 644 | - $amount = floatval( $amount );  | 
                                                        |
| 645 | - $min_met= ! ( $this->min_total > 0 && $amount < $this->min_total );  | 
                                                        |
| 646 | - return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );  | 
                                                        |
| 647 | - }  | 
                                                        |
| 648 | -  | 
                                                        |
| 649 | - /**  | 
                                                        |
| 650 | - * Checks if the maximum amount is met  | 
                                                        |
| 651 | - *  | 
                                                        |
| 652 | - * @param float $amount The amount to check against  | 
                                                        |
| 653 | - * @since 1.0.15  | 
                                                        |
| 654 | - * @return boolean  | 
                                                        |
| 655 | - */  | 
                                                        |
| 656 | -	public function is_maximum_amount_met( $amount ) { | 
                                                        |
| 657 | - $amount = floatval( $amount );  | 
                                                        |
| 658 | - $max_met= ! ( $this->max_total > 0 && $amount > $this->max_total );  | 
                                                        |
| 659 | - return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );  | 
                                                        |
| 660 | - }  | 
                                                        |
| 661 | -  | 
                                                        |
| 662 | - /**  | 
                                                        |
| 663 | - * Check if a discount is valid for the given user  | 
                                                        |
| 664 | - *  | 
                                                        |
| 665 | - * @param int|string $user  | 
                                                        |
| 666 | - * @since 1.0.15  | 
                                                        |
| 667 | - * @return boolean  | 
                                                        |
| 668 | - */  | 
                                                        |
| 669 | -	public function is_valid_for_user( $user ) { | 
                                                        |
| 670 | - global $wpi_checkout_id;  | 
                                                        |
| 671 | -  | 
                                                        |
| 672 | -		if( empty( $user ) || empty( $this->is_single_use ) ) { | 
                                                        |
| 673 | - return true;  | 
                                                        |
| 674 | - }  | 
                                                        |
| 675 | -  | 
                                                        |
| 676 | - $user_id = 0;  | 
                                                        |
| 625 | + /**  | 
                                                        |
| 626 | + * Check if a discount is valid for the given amount  | 
                                                        |
| 627 | + *  | 
                                                        |
| 628 | + * @param float $amount The amount to check against  | 
                                                        |
| 629 | + * @since 1.0.15  | 
                                                        |
| 630 | + * @return boolean  | 
                                                        |
| 631 | + */  | 
                                                        |
| 632 | +    public function is_valid_for_amount( $amount ) { | 
                                                        |
| 633 | + return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );  | 
                                                        |
| 634 | + }  | 
                                                        |
| 635 | +  | 
                                                        |
| 636 | + /**  | 
                                                        |
| 637 | + * Checks if the minimum amount is met  | 
                                                        |
| 638 | + *  | 
                                                        |
| 639 | + * @param float $amount The amount to check against  | 
                                                        |
| 640 | + * @since 1.0.15  | 
                                                        |
| 641 | + * @return boolean  | 
                                                        |
| 642 | + */  | 
                                                        |
| 643 | +    public function is_minimum_amount_met( $amount ) { | 
                                                        |
| 644 | + $amount = floatval( $amount );  | 
                                                        |
| 645 | + $min_met= ! ( $this->min_total > 0 && $amount < $this->min_total );  | 
                                                        |
| 646 | + return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );  | 
                                                        |
| 647 | + }  | 
                                                        |
| 648 | +  | 
                                                        |
| 649 | + /**  | 
                                                        |
| 650 | + * Checks if the maximum amount is met  | 
                                                        |
| 651 | + *  | 
                                                        |
| 652 | + * @param float $amount The amount to check against  | 
                                                        |
| 653 | + * @since 1.0.15  | 
                                                        |
| 654 | + * @return boolean  | 
                                                        |
| 655 | + */  | 
                                                        |
| 656 | +    public function is_maximum_amount_met( $amount ) { | 
                                                        |
| 657 | + $amount = floatval( $amount );  | 
                                                        |
| 658 | + $max_met= ! ( $this->max_total > 0 && $amount > $this->max_total );  | 
                                                        |
| 659 | + return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );  | 
                                                        |
| 660 | + }  | 
                                                        |
| 661 | +  | 
                                                        |
| 662 | + /**  | 
                                                        |
| 663 | + * Check if a discount is valid for the given user  | 
                                                        |
| 664 | + *  | 
                                                        |
| 665 | + * @param int|string $user  | 
                                                        |
| 666 | + * @since 1.0.15  | 
                                                        |
| 667 | + * @return boolean  | 
                                                        |
| 668 | + */  | 
                                                        |
| 669 | +    public function is_valid_for_user( $user ) { | 
                                                        |
| 670 | + global $wpi_checkout_id;  | 
                                                        |
| 671 | +  | 
                                                        |
| 672 | +        if( empty( $user ) || empty( $this->is_single_use ) ) { | 
                                                        |
| 673 | + return true;  | 
                                                        |
| 674 | + }  | 
                                                        |
| 675 | +  | 
                                                        |
| 676 | + $user_id = 0;  | 
                                                        |
| 677 | 677 |          if ( is_int( $user ) ) { | 
                                                        
| 678 | 678 | $user_id = absint( $user );  | 
                                                        
| 679 | 679 |          } else if ( is_email( $user ) && $user_data = get_user_by( 'email', $user ) ) { | 
                                                        
@@ -682,164 +682,164 @@ discard block  | 
                                                    ||
| 682 | 682 | $user_id = $user_data->ID;  | 
                                                        
| 683 | 683 |          } else if ( absint( $user ) > 0 ) { | 
                                                        
| 684 | 684 | $user_id = absint( $user );  | 
                                                        
| 685 | - }  | 
                                                        |
| 685 | + }  | 
                                                        |
| 686 | 686 | |
| 687 | -		if ( empty( $user_id ) ) { | 
                                                        |
| 688 | - return true;  | 
                                                        |
| 689 | - }  | 
                                                        |
| 687 | +        if ( empty( $user_id ) ) { | 
                                                        |
| 688 | + return true;  | 
                                                        |
| 689 | + }  | 
                                                        |
| 690 | 690 | |
| 691 | - // Get all payments with matching user id  | 
                                                        |
| 691 | + // Get all payments with matching user id  | 
                                                        |
| 692 | 692 | $payments = wpinv_get_invoices( array( 'user' => $user_id, 'limit' => false ) );  | 
                                                        
| 693 | - $code = strtolower( $this->code );  | 
                                                        |
| 693 | + $code = strtolower( $this->code );  | 
                                                        |
| 694 | 694 | |
| 695 | -		foreach ( $payments as $payment ) { | 
                                                        |
| 695 | +        foreach ( $payments as $payment ) { | 
                                                        |
| 696 | 696 | |
| 697 | - // Don't count discount used for current invoice checkout.  | 
                                                        |
| 698 | -			if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) { | 
                                                        |
| 699 | - continue;  | 
                                                        |
| 700 | - }  | 
                                                        |
| 697 | + // Don't count discount used for current invoice checkout.  | 
                                                        |
| 698 | +            if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) { | 
                                                        |
| 699 | + continue;  | 
                                                        |
| 700 | + }  | 
                                                        |
| 701 | 701 | |
| 702 | -			if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) { | 
                                                        |
| 703 | - continue;  | 
                                                        |
| 704 | - }  | 
                                                        |
| 705 | -  | 
                                                        |
| 706 | - $discounts = $payment->get_discounts( true );  | 
                                                        |
| 707 | -			if ( empty( $discounts ) ) { | 
                                                        |
| 708 | - continue;  | 
                                                        |
| 709 | - }  | 
                                                        |
| 710 | -  | 
                                                        |
| 711 | - $discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );  | 
                                                        |
| 712 | -			if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) { | 
                                                        |
| 713 | - return false;  | 
                                                        |
| 714 | - }  | 
                                                        |
| 715 | - }  | 
                                                        |
| 716 | -  | 
                                                        |
| 717 | - return true;  | 
                                                        |
| 718 | - }  | 
                                                        |
| 719 | -  | 
                                                        |
| 720 | - /**  | 
                                                        |
| 721 | - * Deletes the discount from the database  | 
                                                        |
| 722 | - *  | 
                                                        |
| 723 | - * @since 1.0.15  | 
                                                        |
| 724 | - * @return boolean  | 
                                                        |
| 725 | - */  | 
                                                        |
| 726 | -	public function remove() { | 
                                                        |
| 727 | -  | 
                                                        |
| 728 | -		if ( empty( $this->ID ) ) { | 
                                                        |
| 729 | - return true;  | 
                                                        |
| 730 | - }  | 
                                                        |
| 731 | -  | 
                                                        |
| 732 | - do_action( 'wpinv_pre_delete_discount', $this->ID, $this->data );  | 
                                                        |
| 733 | - wp_cache_delete( $this->ID, 'WPInv_Discounts' );  | 
                                                        |
| 734 | - wp_delete_post( $this->ID, true );  | 
                                                        |
| 735 | - wp_cache_delete( $this->code, 'WPInv_Discount_Codes' );  | 
                                                        |
| 736 | - do_action( 'wpinv_post_delete_discount', $this->ID, $this->data );  | 
                                                        |
| 737 | -  | 
                                                        |
| 738 | - $this->ID = null;  | 
                                                        |
| 739 | - $this->data['id'] = null;  | 
                                                        |
| 740 | - return true;  | 
                                                        |
| 741 | - }  | 
                                                        |
| 742 | -  | 
                                                        |
| 743 | - /**  | 
                                                        |
| 744 | - * Increases a discount's usage.  | 
                                                        |
| 745 | - *  | 
                                                        |
| 746 | - * @since 1.0.15  | 
                                                        |
| 747 | - * @param int $by The number of usages to increas by.  | 
                                                        |
| 748 | - * @return int  | 
                                                        |
| 749 | - */  | 
                                                        |
| 750 | -	public function increase_usage( $by = 1 ) { | 
                                                        |
| 751 | -  | 
                                                        |
| 752 | - $this->uses = $this->uses + $by;  | 
                                                        |
| 753 | -  | 
                                                        |
| 754 | -		if( $this->uses  < 0 ) { | 
                                                        |
| 755 | - $this->uses = 0;  | 
                                                        |
| 756 | - update_post_meta( $this->ID, "_wpi_discount_uses", 0 );  | 
                                                        |
| 757 | - }  | 
                                                        |
| 758 | -  | 
                                                        |
| 759 | - $this->save();  | 
                                                        |
| 760 | -  | 
                                                        |
| 761 | -		if( $by > 0 ) { | 
                                                        |
| 762 | - do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by );  | 
                                                        |
| 763 | -		} else { | 
                                                        |
| 764 | - do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );  | 
                                                        |
| 765 | - }  | 
                                                        |
| 702 | +            if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) { | 
                                                        |
| 703 | + continue;  | 
                                                        |
| 704 | + }  | 
                                                        |
| 705 | +  | 
                                                        |
| 706 | + $discounts = $payment->get_discounts( true );  | 
                                                        |
| 707 | +            if ( empty( $discounts ) ) { | 
                                                        |
| 708 | + continue;  | 
                                                        |
| 709 | + }  | 
                                                        |
| 710 | +  | 
                                                        |
| 711 | + $discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );  | 
                                                        |
| 712 | +            if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) { | 
                                                        |
| 713 | + return false;  | 
                                                        |
| 714 | + }  | 
                                                        |
| 715 | + }  | 
                                                        |
| 716 | +  | 
                                                        |
| 717 | + return true;  | 
                                                        |
| 718 | + }  | 
                                                        |
| 719 | +  | 
                                                        |
| 720 | + /**  | 
                                                        |
| 721 | + * Deletes the discount from the database  | 
                                                        |
| 722 | + *  | 
                                                        |
| 723 | + * @since 1.0.15  | 
                                                        |
| 724 | + * @return boolean  | 
                                                        |
| 725 | + */  | 
                                                        |
| 726 | +    public function remove() { | 
                                                        |
| 727 | +  | 
                                                        |
| 728 | +        if ( empty( $this->ID ) ) { | 
                                                        |
| 729 | + return true;  | 
                                                        |
| 730 | + }  | 
                                                        |
| 731 | +  | 
                                                        |
| 732 | + do_action( 'wpinv_pre_delete_discount', $this->ID, $this->data );  | 
                                                        |
| 733 | + wp_cache_delete( $this->ID, 'WPInv_Discounts' );  | 
                                                        |
| 734 | + wp_delete_post( $this->ID, true );  | 
                                                        |
| 735 | + wp_cache_delete( $this->code, 'WPInv_Discount_Codes' );  | 
                                                        |
| 736 | + do_action( 'wpinv_post_delete_discount', $this->ID, $this->data );  | 
                                                        |
| 737 | +  | 
                                                        |
| 738 | + $this->ID = null;  | 
                                                        |
| 739 | + $this->data['id'] = null;  | 
                                                        |
| 740 | + return true;  | 
                                                        |
| 741 | + }  | 
                                                        |
| 742 | +  | 
                                                        |
| 743 | + /**  | 
                                                        |
| 744 | + * Increases a discount's usage.  | 
                                                        |
| 745 | + *  | 
                                                        |
| 746 | + * @since 1.0.15  | 
                                                        |
| 747 | + * @param int $by The number of usages to increas by.  | 
                                                        |
| 748 | + * @return int  | 
                                                        |
| 749 | + */  | 
                                                        |
| 750 | +    public function increase_usage( $by = 1 ) { | 
                                                        |
| 751 | +  | 
                                                        |
| 752 | + $this->uses = $this->uses + $by;  | 
                                                        |
| 753 | +  | 
                                                        |
| 754 | +        if( $this->uses  < 0 ) { | 
                                                        |
| 755 | + $this->uses = 0;  | 
                                                        |
| 756 | + update_post_meta( $this->ID, "_wpi_discount_uses", 0 );  | 
                                                        |
| 757 | + }  | 
                                                        |
| 758 | +  | 
                                                        |
| 759 | + $this->save();  | 
                                                        |
| 760 | +  | 
                                                        |
| 761 | +        if( $by > 0 ) { | 
                                                        |
| 762 | + do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by );  | 
                                                        |
| 763 | +        } else { | 
                                                        |
| 764 | + do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );  | 
                                                        |
| 765 | + }  | 
                                                        |
| 766 | 766 | |
| 767 | - return $this->uses;  | 
                                                        |
| 768 | - }  | 
                                                        |
| 769 | -  | 
                                                        |
| 770 | - /**  | 
                                                        |
| 771 | - * Retrieves discount data  | 
                                                        |
| 772 | - *  | 
                                                        |
| 773 | - * @since 1.0.15  | 
                                                        |
| 774 | - * @return array  | 
                                                        |
| 775 | - */  | 
                                                        |
| 776 | -	public function get_data() { | 
                                                        |
| 777 | - $return = array();  | 
                                                        |
| 778 | -		foreach( array_keys( $this->data ) as $key ) { | 
                                                        |
| 779 | - $return[ $key ] = $this->get( $key );  | 
                                                        |
| 780 | - }  | 
                                                        |
| 781 | - return $return;  | 
                                                        |
| 782 | - }  | 
                                                        |
| 783 | -  | 
                                                        |
| 784 | - /**  | 
                                                        |
| 785 | - * Retrieves discount data as json  | 
                                                        |
| 786 | - *  | 
                                                        |
| 787 | - * @since 1.0.15  | 
                                                        |
| 788 | - * @return string|false  | 
                                                        |
| 789 | - */  | 
                                                        |
| 790 | -	public function get_data_as_json() { | 
                                                        |
| 791 | - return wp_json_encode( $this->get_data() );  | 
                                                        |
| 792 | - }  | 
                                                        |
| 793 | -  | 
                                                        |
| 794 | - /**  | 
                                                        |
| 795 | - * Checks if a discount can only be used once per user.  | 
                                                        |
| 796 | - *  | 
                                                        |
| 797 | - * @since 1.0.15  | 
                                                        |
| 798 | - * @return bool  | 
                                                        |
| 799 | - */  | 
                                                        |
| 800 | -	public function get_is_single_use() { | 
                                                        |
| 801 | - return (bool) apply_filters( 'wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code );  | 
                                                        |
| 802 | - }  | 
                                                        |
| 803 | -  | 
                                                        |
| 804 | - /**  | 
                                                        |
| 805 | - * Checks if a discount is recurring.  | 
                                                        |
| 806 | - *  | 
                                                        |
| 807 | - * @since 1.0.15  | 
                                                        |
| 808 | - * @return bool  | 
                                                        |
| 809 | - */  | 
                                                        |
| 810 | -	public function get_is_recurring() { | 
                                                        |
| 811 | - return (bool) apply_filters( 'wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this );  | 
                                                        |
| 812 | - }  | 
                                                        |
| 813 | -  | 
                                                        |
| 814 | - /**  | 
                                                        |
| 815 | - * Returns a discount's included items.  | 
                                                        |
| 816 | - *  | 
                                                        |
| 817 | - * @since 1.0.15  | 
                                                        |
| 818 | - * @return array  | 
                                                        |
| 819 | - */  | 
                                                        |
| 820 | -	public function get_items() { | 
                                                        |
| 821 | - return wpinv_parse_list( apply_filters( 'wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code ) );  | 
                                                        |
| 822 | - }  | 
                                                        |
| 823 | -  | 
                                                        |
| 824 | - /**  | 
                                                        |
| 825 | - * Returns a discount's discounted amount.  | 
                                                        |
| 826 | - *  | 
                                                        |
| 827 | - * @since 1.0.15  | 
                                                        |
| 828 | - * @return float  | 
                                                        |
| 829 | - */  | 
                                                        |
| 830 | -	public function get_discounted_amount( $amount ) { | 
                                                        |
| 831 | -  | 
                                                        |
| 832 | -		if ( $this->type == 'flat' ) { | 
                                                        |
| 767 | + return $this->uses;  | 
                                                        |
| 768 | + }  | 
                                                        |
| 769 | +  | 
                                                        |
| 770 | + /**  | 
                                                        |
| 771 | + * Retrieves discount data  | 
                                                        |
| 772 | + *  | 
                                                        |
| 773 | + * @since 1.0.15  | 
                                                        |
| 774 | + * @return array  | 
                                                        |
| 775 | + */  | 
                                                        |
| 776 | +    public function get_data() { | 
                                                        |
| 777 | + $return = array();  | 
                                                        |
| 778 | +        foreach( array_keys( $this->data ) as $key ) { | 
                                                        |
| 779 | + $return[ $key ] = $this->get( $key );  | 
                                                        |
| 780 | + }  | 
                                                        |
| 781 | + return $return;  | 
                                                        |
| 782 | + }  | 
                                                        |
| 783 | +  | 
                                                        |
| 784 | + /**  | 
                                                        |
| 785 | + * Retrieves discount data as json  | 
                                                        |
| 786 | + *  | 
                                                        |
| 787 | + * @since 1.0.15  | 
                                                        |
| 788 | + * @return string|false  | 
                                                        |
| 789 | + */  | 
                                                        |
| 790 | +    public function get_data_as_json() { | 
                                                        |
| 791 | + return wp_json_encode( $this->get_data() );  | 
                                                        |
| 792 | + }  | 
                                                        |
| 793 | +  | 
                                                        |
| 794 | + /**  | 
                                                        |
| 795 | + * Checks if a discount can only be used once per user.  | 
                                                        |
| 796 | + *  | 
                                                        |
| 797 | + * @since 1.0.15  | 
                                                        |
| 798 | + * @return bool  | 
                                                        |
| 799 | + */  | 
                                                        |
| 800 | +    public function get_is_single_use() { | 
                                                        |
| 801 | + return (bool) apply_filters( 'wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code );  | 
                                                        |
| 802 | + }  | 
                                                        |
| 803 | +  | 
                                                        |
| 804 | + /**  | 
                                                        |
| 805 | + * Checks if a discount is recurring.  | 
                                                        |
| 806 | + *  | 
                                                        |
| 807 | + * @since 1.0.15  | 
                                                        |
| 808 | + * @return bool  | 
                                                        |
| 809 | + */  | 
                                                        |
| 810 | +    public function get_is_recurring() { | 
                                                        |
| 811 | + return (bool) apply_filters( 'wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this );  | 
                                                        |
| 812 | + }  | 
                                                        |
| 813 | +  | 
                                                        |
| 814 | + /**  | 
                                                        |
| 815 | + * Returns a discount's included items.  | 
                                                        |
| 816 | + *  | 
                                                        |
| 817 | + * @since 1.0.15  | 
                                                        |
| 818 | + * @return array  | 
                                                        |
| 819 | + */  | 
                                                        |
| 820 | +    public function get_items() { | 
                                                        |
| 821 | + return wpinv_parse_list( apply_filters( 'wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code ) );  | 
                                                        |
| 822 | + }  | 
                                                        |
| 823 | +  | 
                                                        |
| 824 | + /**  | 
                                                        |
| 825 | + * Returns a discount's discounted amount.  | 
                                                        |
| 826 | + *  | 
                                                        |
| 827 | + * @since 1.0.15  | 
                                                        |
| 828 | + * @return float  | 
                                                        |
| 829 | + */  | 
                                                        |
| 830 | +    public function get_discounted_amount( $amount ) { | 
                                                        |
| 831 | +  | 
                                                        |
| 832 | +        if ( $this->type == 'flat' ) { | 
                                                        |
| 833 | 833 | $amount = $amount - $this->amount;  | 
                                                        
| 834 | -		} else { | 
                                                        |
| 834 | +        } else { | 
                                                        |
| 835 | 835 | $amount = $amount - ( $amount * ( $this->amount / 100 ) );  | 
                                                        
| 836 | - }  | 
                                                        |
| 836 | + }  | 
                                                        |
| 837 | 837 | |
| 838 | -		if ( $amount < 0 ) { | 
                                                        |
| 839 | - $amount = 0;  | 
                                                        |
| 840 | - }  | 
                                                        |
| 838 | +        if ( $amount < 0 ) { | 
                                                        |
| 839 | + $amount = 0;  | 
                                                        |
| 840 | + }  | 
                                                        |
| 841 | 841 | |
| 842 | - return apply_filters( 'wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount );  | 
                                                        |
| 843 | - }  | 
                                                        |
| 842 | + return apply_filters( 'wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount );  | 
                                                        |
| 843 | + }  | 
                                                        |
| 844 | 844 | |
| 845 | 845 | }  | 
                                                        
@@ -5,7 +5,7 @@ discard block  | 
                                                    ||
| 5 | 5 | * @since 1.0.15  | 
                                                        
| 6 | 6 | */  | 
                                                        
| 7 | 7 | |
| 8 | -defined( 'ABSPATH' ) || exit;  | 
                                                        |
| 8 | +defined('ABSPATH') || exit; | 
                                                        |
| 9 | 9 | |
| 10 | 10 | /**  | 
                                                        
| 11 | 11 | * Discount class.  | 
                                                        
@@ -63,45 +63,45 @@ discard block  | 
                                                    ||
| 63 | 63 | * @param int|array|string|WPInv_Discount $discount discount data, object, ID or code.  | 
                                                        
| 64 | 64 | * @since 1.0.15  | 
                                                        
| 65 | 65 | */  | 
                                                        
| 66 | -	public function __construct( $discount = array() ) { | 
                                                        |
| 66 | +	public function __construct($discount = array()) { | 
                                                        |
| 67 | 67 | |
| 68 | 68 | // If the discount is an instance of this class...  | 
                                                        
| 69 | -		if ( $discount instanceof WPInv_Discount ) { | 
                                                        |
| 70 | - $this->init( $discount->data );  | 
                                                        |
| 69 | +		if ($discount instanceof WPInv_Discount) { | 
                                                        |
| 70 | + $this->init($discount->data);  | 
                                                        |
| 71 | 71 | return;  | 
                                                        
| 72 | 72 | }  | 
                                                        
| 73 | 73 | |
| 74 | 74 | // If the discount is an array of discount details...  | 
                                                        
| 75 | -        if ( is_array( $discount ) ) { | 
                                                        |
| 76 | - $this->init( $discount );  | 
                                                        |
| 75 | +        if (is_array($discount)) { | 
                                                        |
| 76 | + $this->init($discount);  | 
                                                        |
| 77 | 77 | return;  | 
                                                        
| 78 | 78 | }  | 
                                                        
| 79 | 79 | |
| 80 | 80 | // Try fetching the discount by its post id.  | 
                                                        
| 81 | 81 | $data = false;  | 
                                                        
| 82 | 82 | |
| 83 | -		if ( ! empty( $discount ) && is_numeric( $discount ) ) { | 
                                                        |
| 84 | - $discount = absint( $discount );  | 
                                                        |
| 85 | - $data = self::get_data_by( 'id', $discount );  | 
                                                        |
| 83 | +		if (!empty($discount) && is_numeric($discount)) { | 
                                                        |
| 84 | + $discount = absint($discount);  | 
                                                        |
| 85 | +			$data = self::get_data_by('id', $discount); | 
                                                        |
| 86 | 86 | }  | 
                                                        
| 87 | 87 | |
| 88 | -		if ( is_array( $data ) ) { | 
                                                        |
| 89 | - $this->init( $data );  | 
                                                        |
| 88 | +		if (is_array($data)) { | 
                                                        |
| 89 | + $this->init($data);  | 
                                                        |
| 90 | 90 | return;  | 
                                                        
| 91 | 91 | }  | 
                                                        
| 92 | 92 | |
| 93 | 93 | // Try fetching the discount by its discount code.  | 
                                                        
| 94 | -		if ( ! empty( $discount ) && is_string( $discount ) ) { | 
                                                        |
| 95 | - $data = self::get_data_by( 'discount_code', $discount );  | 
                                                        |
| 94 | +		if (!empty($discount) && is_string($discount)) { | 
                                                        |
| 95 | +			$data = self::get_data_by('discount_code', $discount); | 
                                                        |
| 96 | 96 | }  | 
                                                        
| 97 | 97 | |
| 98 | -		if ( is_array( $data ) ) { | 
                                                        |
| 99 | - $this->init( $data );  | 
                                                        |
| 98 | +		if (is_array($data)) { | 
                                                        |
| 99 | + $this->init($data);  | 
                                                        |
| 100 | 100 | return;  | 
                                                        
| 101 | 101 | }  | 
                                                        
| 102 | 102 | |
| 103 | 103 | // If we are here then the discount does not exist.  | 
                                                        
| 104 | - $this->init( array() );  | 
                                                        |
| 104 | + $this->init(array());  | 
                                                        |
| 105 | 105 | }  | 
                                                        
| 106 | 106 | |
| 107 | 107 | /**  | 
                                                        
@@ -110,8 +110,8 @@ discard block  | 
                                                    ||
| 110 | 110 | * @since 1.0.15  | 
                                                        
| 111 | 111 | * @param array $data An array containing the discount's data  | 
                                                        
| 112 | 112 | */  | 
                                                        
| 113 | -	public function init( $data ) { | 
                                                        |
| 114 | - $data = self::sanitize_discount_data( $data );  | 
                                                        |
| 113 | +	public function init($data) { | 
                                                        |
| 114 | + $data = self::sanitize_discount_data($data);  | 
                                                        |
| 115 | 115 | $this->data = $data;  | 
                                                        
| 116 | 116 | $this->old_status = $data['status'];  | 
                                                        
| 117 | 117 | $this->ID = $data['ID'];  | 
                                                        
@@ -127,50 +127,50 @@ discard block  | 
                                                    ||
| 127 | 127 | * @since 1.0.15  | 
                                                        
| 128 | 128 | * @return array|bool array of discount details on success. False otherwise.  | 
                                                        
| 129 | 129 | */  | 
                                                        
| 130 | -	public static function get_data_by( $field, $value ) { | 
                                                        |
| 130 | +	public static function get_data_by($field, $value) { | 
                                                        |
| 131 | 131 | |
| 132 | -		if ( 'id' == strtolower( $field ) ) { | 
                                                        |
| 132 | +		if ('id' == strtolower($field)) { | 
                                                        |
| 133 | 133 | // Make sure the value is numeric to avoid casting objects, for example,  | 
                                                        
| 134 | 134 | // to int 1.  | 
                                                        
| 135 | - if ( ! is_numeric( $value ) )  | 
                                                        |
| 135 | + if (!is_numeric($value))  | 
                                                        |
| 136 | 136 | return false;  | 
                                                        
| 137 | - $value = intval( $value );  | 
                                                        |
| 138 | - if ( $value < 1 )  | 
                                                        |
| 137 | + $value = intval($value);  | 
                                                        |
| 138 | + if ($value < 1)  | 
                                                        |
| 139 | 139 | return false;  | 
                                                        
| 140 | 140 | }  | 
                                                        
| 141 | 141 | |
| 142 | -		if ( ! $value || ! is_string( $field ) ) { | 
                                                        |
| 142 | +		if (!$value || !is_string($field)) { | 
                                                        |
| 143 | 143 | return false;  | 
                                                        
| 144 | 144 | }  | 
                                                        
| 145 | 145 | |
| 146 | - $field = trim( $field );  | 
                                                        |
| 146 | + $field = trim($field);  | 
                                                        |
| 147 | 147 | |
| 148 | 148 | // prepare query args  | 
                                                        
| 149 | -		switch ( strtolower( $field ) ) { | 
                                                        |
| 149 | +		switch (strtolower($field)) { | 
                                                        |
| 150 | 150 | case 'id':  | 
                                                        
| 151 | 151 | $discount_id = $value;  | 
                                                        
| 152 | - $args = array( 'include' => array( $value ) );  | 
                                                        |
| 152 | +				$args = array('include' => array($value)); | 
                                                        |
| 153 | 153 | break;  | 
                                                        
| 154 | 154 | case 'discount_code':  | 
                                                        
| 155 | 155 | case 'code':  | 
                                                        
| 156 | - $value = trim( $value );  | 
                                                        |
| 157 | - $discount_id = wp_cache_get( $value, 'WPInv_Discount_Codes' );  | 
                                                        |
| 158 | - $args = array( 'meta_key' => '_wpi_discount_code', 'meta_value' => $value );  | 
                                                        |
| 156 | + $value = trim($value);  | 
                                                        |
| 157 | + $discount_id = wp_cache_get($value, 'WPInv_Discount_Codes');  | 
                                                        |
| 158 | +				$args = array('meta_key' => '_wpi_discount_code', 'meta_value' => $value); | 
                                                        |
| 159 | 159 | break;  | 
                                                        
| 160 | 160 | case 'name':  | 
                                                        
| 161 | 161 | $discount_id = 0;  | 
                                                        
| 162 | - $args = array( 'name' => trim( $value ) );  | 
                                                        |
| 162 | +				$args		 = array('name' => trim($value)); | 
                                                        |
| 163 | 163 | break;  | 
                                                        
| 164 | 164 | default:  | 
                                                        
| 165 | -				$args		 = apply_filters( "wpinv_discount_get_data_by_{$field}_args", null, $value ); | 
                                                        |
| 166 | -				if ( ! is_array( $args ) ) { | 
                                                        |
| 167 | - return apply_filters( "wpinv_discount_get_data_by_$field", false, $value );  | 
                                                        |
| 165 | +				$args		 = apply_filters("wpinv_discount_get_data_by_{$field}_args", null, $value); | 
                                                        |
| 166 | +				if (!is_array($args)) { | 
                                                        |
| 167 | +					return apply_filters("wpinv_discount_get_data_by_$field", false, $value); | 
                                                        |
| 168 | 168 | }  | 
                                                        
| 169 | 169 | |
| 170 | 170 | }  | 
                                                        
| 171 | 171 | |
| 172 | 172 | // Check if there is a cached value.  | 
                                                        
| 173 | -		if ( ! empty( $discount_id ) && $discount = wp_cache_get( (int) $discount_id, 'WPInv_Discounts' ) ) { | 
                                                        |
| 173 | +		if (!empty($discount_id) && $discount = wp_cache_get((int) $discount_id, 'WPInv_Discounts')) { | 
                                                        |
| 174 | 174 | return $discount;  | 
                                                        
| 175 | 175 | }  | 
                                                        
| 176 | 176 | |
@@ -179,13 +179,13 @@ discard block  | 
                                                    ||
| 179 | 179 | array(  | 
                                                        
| 180 | 180 | 'post_type' => 'wpi_discount',  | 
                                                        
| 181 | 181 | 'posts_per_page' => 1,  | 
                                                        
| 182 | - 'post_status' => array( 'publish', 'pending', 'draft', 'expired' )  | 
                                                        |
| 182 | +				'post_status'    => array('publish', 'pending', 'draft', 'expired') | 
                                                        |
| 183 | 183 | )  | 
                                                        
| 184 | 184 | );  | 
                                                        
| 185 | 185 | |
| 186 | - $discount = get_posts( $args );  | 
                                                        |
| 186 | + $discount = get_posts($args);  | 
                                                        |
| 187 | 187 | |
| 188 | -		if( empty( $discount ) ) { | 
                                                        |
| 188 | +		if (empty($discount)) { | 
                                                        |
| 189 | 189 | return false;  | 
                                                        
| 190 | 190 | }  | 
                                                        
| 191 | 191 | |
@@ -194,31 +194,31 @@ discard block  | 
                                                    ||
| 194 | 194 | // Prepare the return data.  | 
                                                        
| 195 | 195 | $return = array(  | 
                                                        
| 196 | 196 | 'ID' => $discount->ID,  | 
                                                        
| 197 | - 'code' => get_post_meta( $discount->ID, '_wpi_discount_code', true ),  | 
                                                        |
| 198 | - 'amount' => get_post_meta( $discount->ID, '_wpi_discount_amount', true ),  | 
                                                        |
| 197 | + 'code' => get_post_meta($discount->ID, '_wpi_discount_code', true),  | 
                                                        |
| 198 | + 'amount' => get_post_meta($discount->ID, '_wpi_discount_amount', true),  | 
                                                        |
| 199 | 199 | 'date_created' => $discount->post_date,  | 
                                                        
| 200 | 200 | 'date_modified' => $discount->post_modified,  | 
                                                        
| 201 | 201 | 'status' => $discount->post_status,  | 
                                                        
| 202 | - 'start' => get_post_meta( $discount->ID, '_wpi_discount_start', true ),  | 
                                                        |
| 203 | - 'expiration' => get_post_meta( $discount->ID, '_wpi_discount_expiration', true ),  | 
                                                        |
| 204 | - 'type' => get_post_meta( $discount->ID, '_wpi_discount_type', true ),  | 
                                                        |
| 202 | + 'start' => get_post_meta($discount->ID, '_wpi_discount_start', true),  | 
                                                        |
| 203 | + 'expiration' => get_post_meta($discount->ID, '_wpi_discount_expiration', true),  | 
                                                        |
| 204 | + 'type' => get_post_meta($discount->ID, '_wpi_discount_type', true),  | 
                                                        |
| 205 | 205 | 'description' => $discount->post_excerpt,  | 
                                                        
| 206 | - 'uses' => get_post_meta( $discount->ID, '_wpi_discount_uses', true ),  | 
                                                        |
| 207 | - 'is_single_use' => get_post_meta( $discount->ID, '_wpi_discount_is_single_use', true ),  | 
                                                        |
| 208 | - 'items' => get_post_meta( $discount->ID, '_wpi_discount_items', true ),  | 
                                                        |
| 209 | - 'excluded_items' => get_post_meta( $discount->ID, '_wpi_discount_excluded_items', true ),  | 
                                                        |
| 210 | - 'max_uses' => get_post_meta( $discount->ID, '_wpi_discount_max_uses', true ),  | 
                                                        |
| 211 | - 'is_recurring' => get_post_meta( $discount->ID, '_wpi_discount_is_recurring', true ),  | 
                                                        |
| 212 | - 'min_total' => get_post_meta( $discount->ID, '_wpi_discount_min_total', true ),  | 
                                                        |
| 213 | - 'max_total' => get_post_meta( $discount->ID, '_wpi_discount_max_total', true ),  | 
                                                        |
| 206 | + 'uses' => get_post_meta($discount->ID, '_wpi_discount_uses', true),  | 
                                                        |
| 207 | + 'is_single_use' => get_post_meta($discount->ID, '_wpi_discount_is_single_use', true),  | 
                                                        |
| 208 | + 'items' => get_post_meta($discount->ID, '_wpi_discount_items', true),  | 
                                                        |
| 209 | + 'excluded_items' => get_post_meta($discount->ID, '_wpi_discount_excluded_items', true),  | 
                                                        |
| 210 | + 'max_uses' => get_post_meta($discount->ID, '_wpi_discount_max_uses', true),  | 
                                                        |
| 211 | + 'is_recurring' => get_post_meta($discount->ID, '_wpi_discount_is_recurring', true),  | 
                                                        |
| 212 | + 'min_total' => get_post_meta($discount->ID, '_wpi_discount_min_total', true),  | 
                                                        |
| 213 | + 'max_total' => get_post_meta($discount->ID, '_wpi_discount_max_total', true),  | 
                                                        |
| 214 | 214 | );  | 
                                                        
| 215 | 215 | |
| 216 | - $return = self::sanitize_discount_data( $return );  | 
                                                        |
| 217 | - $return = apply_filters( 'wpinv_discount_properties', $return );  | 
                                                        |
| 216 | + $return = self::sanitize_discount_data($return);  | 
                                                        |
| 217 | +		$return = apply_filters('wpinv_discount_properties', $return); | 
                                                        |
| 218 | 218 | |
| 219 | 219 | // Update the cache with our data  | 
                                                        
| 220 | - wp_cache_add( $discount->ID, $return, 'WPInv_Discounts' );  | 
                                                        |
| 221 | - wp_cache_add( $return['code'], $discount->ID, 'WPInv_Discount_Codes' );  | 
                                                        |
| 220 | + wp_cache_add($discount->ID, $return, 'WPInv_Discounts');  | 
                                                        |
| 221 | + wp_cache_add($return['code'], $discount->ID, 'WPInv_Discount_Codes');  | 
                                                        |
| 222 | 222 | |
| 223 | 223 | return $return;  | 
                                                        
| 224 | 224 | }  | 
                                                        
@@ -232,9 +232,9 @@ discard block  | 
                                                    ||
| 232 | 232 | *  | 
                                                        
| 233 | 233 | * @return array the sanitized data  | 
                                                        
| 234 | 234 | */  | 
                                                        
| 235 | -	public static function sanitize_discount_data( $data ) { | 
                                                        |
| 235 | +	public static function sanitize_discount_data($data) { | 
                                                        |
| 236 | 236 | |
| 237 | - $allowed_discount_types = array_keys( wpinv_get_discount_types() );  | 
                                                        |
| 237 | + $allowed_discount_types = array_keys(wpinv_get_discount_types());  | 
                                                        |
| 238 | 238 | |
| 239 | 239 | $return = array(  | 
                                                        
| 240 | 240 | 'ID' => null,  | 
                                                        
@@ -259,60 +259,60 @@ discard block  | 
                                                    ||
| 259 | 259 | |
| 260 | 260 | |
| 261 | 261 | // Arrays only please.  | 
                                                        
| 262 | -		if ( ! is_array( $data ) ) { | 
                                                        |
| 262 | +		if (!is_array($data)) { | 
                                                        |
| 263 | 263 | return $return;  | 
                                                        
| 264 | 264 | }  | 
                                                        
| 265 | 265 | |
| 266 | 266 | // If an id is provided, ensure it is a valid discount.  | 
                                                        
| 267 | -        if ( ! empty( $data['ID'] ) && ( ! is_numeric( $data['ID'] ) || 'wpi_discount' !== get_post_type( $data['ID'] ) ) ) { | 
                                                        |
| 267 | +        if (!empty($data['ID']) && (!is_numeric($data['ID']) || 'wpi_discount' !== get_post_type($data['ID']))) { | 
                                                        |
| 268 | 268 | return $return;  | 
                                                        
| 269 | 269 | }  | 
                                                        
| 270 | 270 | |
| 271 | - $return = array_merge( $return, $data );  | 
                                                        |
| 271 | + $return = array_merge($return, $data);  | 
                                                        |
| 272 | 272 | |
| 273 | 273 | // Sanitize some keys.  | 
                                                        
| 274 | - $return['amount'] = wpinv_sanitize_amount( $return['amount'] );  | 
                                                        |
| 274 | + $return['amount'] = wpinv_sanitize_amount($return['amount']);  | 
                                                        |
| 275 | 275 | $return['is_single_use'] = (bool) $return['is_single_use'];  | 
                                                        
| 276 | 276 | $return['is_recurring'] = (bool) $return['is_recurring'];  | 
                                                        
| 277 | 277 | $return['uses'] = (int) $return['uses'];  | 
                                                        
| 278 | 278 | $return['max_uses'] = (int) $return['max_uses'];  | 
                                                        
| 279 | - $return['min_total'] = wpinv_sanitize_amount( $return['min_total'] );  | 
                                                        |
| 280 | - $return['max_total'] = wpinv_sanitize_amount( $return['max_total'] );  | 
                                                        |
| 279 | + $return['min_total'] = wpinv_sanitize_amount($return['min_total']);  | 
                                                        |
| 280 | + $return['max_total'] = wpinv_sanitize_amount($return['max_total']);  | 
                                                        |
| 281 | 281 | |
| 282 | 282 | // Trim all values.  | 
                                                        
| 283 | - $return = wpinv_clean( $return );  | 
                                                        |
| 283 | + $return = wpinv_clean($return);  | 
                                                        |
| 284 | 284 | |
| 285 | 285 | // Ensure the discount type is supported.  | 
                                                        
| 286 | -        if ( ! in_array( $return['type'], $allowed_discount_types, true ) ) { | 
                                                        |
| 286 | +        if (!in_array($return['type'], $allowed_discount_types, true)) { | 
                                                        |
| 287 | 287 | $return['type'] = 'percent';  | 
                                                        
| 288 | 288 | }  | 
                                                        
| 289 | - $return['type_name'] = wpinv_get_discount_type_name( $return['type'] );  | 
                                                        |
| 289 | + $return['type_name'] = wpinv_get_discount_type_name($return['type']);  | 
                                                        |
| 290 | 290 | |
| 291 | 291 | // Do not offer more than a 100% discount.  | 
                                                        
| 292 | -		if ( $return['type'] == 'percent' && (float) $return['amount'] > 100 ) { | 
                                                        |
| 292 | +		if ($return['type'] == 'percent' && (float) $return['amount'] > 100) { | 
                                                        |
| 293 | 293 | $return['amount'] = 100;  | 
                                                        
| 294 | 294 | }  | 
                                                        
| 295 | 295 | |
| 296 | 296 | // Format dates.  | 
                                                        
| 297 | -		foreach( wpinv_parse_list( 'date_created date_modified expiration start') as $prop ) { | 
                                                        |
| 298 | -			if( ! empty( $return[$prop] ) ) { | 
                                                        |
| 299 | - $return[$prop] = date_i18n( 'Y-m-d H:i:s', strtotime( $return[$prop] ) );  | 
                                                        |
| 297 | +		foreach (wpinv_parse_list('date_created date_modified expiration start') as $prop) { | 
                                                        |
| 298 | +			if (!empty($return[$prop])) { | 
                                                        |
| 299 | +				$return[$prop] = date_i18n('Y-m-d H:i:s', strtotime($return[$prop])); | 
                                                        |
| 300 | 300 | }  | 
                                                        
| 301 | 301 | }  | 
                                                        
| 302 | 302 | |
| 303 | 303 | // Formart items.  | 
                                                        
| 304 | -		foreach( array( 'excluded_items', 'items' ) as $prop ) { | 
                                                        |
| 304 | +		foreach (array('excluded_items', 'items') as $prop) { | 
                                                        |
| 305 | 305 | |
| 306 | -			if( ! empty( $return[$prop] ) ) { | 
                                                        |
| 306 | +			if (!empty($return[$prop])) { | 
                                                        |
| 307 | 307 | // Ensure that the property is an array of non-empty integers.  | 
                                                        
| 308 | - $return[$prop] = array_filter( array_map( 'intval', wpinv_parse_list( $return[$prop] ) ) );  | 
                                                        |
| 308 | +				$return[$prop]      = array_filter(array_map('intval', wpinv_parse_list($return[$prop]))); | 
                                                        |
| 309 | 309 |  			} else { | 
                                                        
| 310 | 310 | $return[$prop] = array();  | 
                                                        
| 311 | 311 | }  | 
                                                        
| 312 | 312 | |
| 313 | 313 | }  | 
                                                        
| 314 | 314 | |
| 315 | - return apply_filters( 'wpinv_sanitize_discount_data', $return, $data );  | 
                                                        |
| 315 | +		return apply_filters('wpinv_sanitize_discount_data', $return, $data); | 
                                                        |
| 316 | 316 | }  | 
                                                        
| 317 | 317 | |
| 318 | 318 | /**  | 
                                                        
@@ -323,8 +323,8 @@ discard block  | 
                                                    ||
| 323 | 323 | *  | 
                                                        
| 324 | 324 | * @return bool Whether the given discount field is set.  | 
                                                        
| 325 | 325 | */  | 
                                                        
| 326 | -	public function __isset( $key ){ | 
                                                        |
| 327 | - return isset( $this->data[$key] ) || method_exists( $this, "get_$key");  | 
                                                        |
| 326 | +	public function __isset($key) { | 
                                                        |
| 327 | + return isset($this->data[$key]) || method_exists($this, "get_$key");  | 
                                                        |
| 328 | 328 | }  | 
                                                        
| 329 | 329 | |
| 330 | 330 | /**  | 
                                                        
@@ -336,8 +336,8 @@ discard block  | 
                                                    ||
| 336 | 336 | * @param string $key Discount data to retrieve  | 
                                                        
| 337 | 337 | * @return mixed Value of the given discount property (if set).  | 
                                                        
| 338 | 338 | */  | 
                                                        
| 339 | -	public function __get( $key ) { | 
                                                        |
| 340 | - return $this->get( $key );  | 
                                                        |
| 339 | +	public function __get($key) { | 
                                                        |
| 340 | + return $this->get($key);  | 
                                                        |
| 341 | 341 | }  | 
                                                        
| 342 | 342 | |
| 343 | 343 | /**  | 
                                                        
@@ -349,15 +349,15 @@ discard block  | 
                                                    ||
| 349 | 349 | * @param string $key Discount data to retrieve  | 
                                                        
| 350 | 350 | * @return mixed Value of the given discount property (if set).  | 
                                                        
| 351 | 351 | */  | 
                                                        
| 352 | -	public function get( $key ) { | 
                                                        |
| 352 | +	public function get($key) { | 
                                                        |
| 353 | 353 | |
| 354 | -		if ( $key == 'id' ) { | 
                                                        |
| 354 | +		if ($key == 'id') { | 
                                                        |
| 355 | 355 | $key = 'ID';  | 
                                                        
| 356 | 356 | }  | 
                                                        
| 357 | 357 | |
| 358 | -		if( method_exists( $this, "get_$key") ) { | 
                                                        |
| 359 | - $value = call_user_func( array( $this, "get_$key" ) );  | 
                                                        |
| 360 | -		} else if( isset( $this->data[$key] ) ) { | 
                                                        |
| 358 | +		if (method_exists($this, "get_$key")) { | 
                                                        |
| 359 | + $value = call_user_func(array($this, "get_$key"));  | 
                                                        |
| 360 | +		} else if (isset($this->data[$key])) { | 
                                                        |
| 361 | 361 | $value = $this->data[$key];  | 
                                                        
| 362 | 362 |  		} else { | 
                                                        
| 363 | 363 | $value = null;  | 
                                                        
@@ -374,7 +374,7 @@ discard block  | 
                                                    ||
| 374 | 374 | * @param string $code The discount's discount code.  | 
                                                        
| 375 | 375 | * @param array $data The discount's data array.  | 
                                                        
| 376 | 376 | */  | 
                                                        
| 377 | -		return apply_filters( "wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data ); | 
                                                        |
| 377 | +		return apply_filters("wpinv_get_discount_{$key}", $value, $this->ID, $this, $this->data['code'], $this->data); | 
                                                        |
| 378 | 378 | |
| 379 | 379 | }  | 
                                                        
| 380 | 380 | |
@@ -387,9 +387,9 @@ discard block  | 
                                                    ||
| 387 | 387 | * @access public  | 
                                                        
| 388 | 388 | *  | 
                                                        
| 389 | 389 | */  | 
                                                        
| 390 | -	public function __set( $key, $value ) { | 
                                                        |
| 390 | +	public function __set($key, $value) { | 
                                                        |
| 391 | 391 | |
| 392 | -		if ( 'id' == strtolower( $key ) ) { | 
                                                        |
| 392 | +		if ('id' == strtolower($key)) { | 
                                                        |
| 393 | 393 | |
| 394 | 394 | $this->ID = $value;  | 
                                                        
| 395 | 395 | $this->data['ID'] = $value;  | 
                                                        
@@ -410,10 +410,10 @@ discard block  | 
                                                    ||
| 410 | 410 | * @param string $code The discount's discount code.  | 
                                                        
| 411 | 411 | * @param array $data The discount's data array.  | 
                                                        
| 412 | 412 | */  | 
                                                        
| 413 | -		$value = apply_filters( "wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data ); | 
                                                        |
| 413 | +		$value = apply_filters("wpinv_set_discount_{$key}", $value, $this->ID, $this, $this->code, $this->data); | 
                                                        |
| 414 | 414 | |
| 415 | -		if( method_exists( $this, "set_$key") ) { | 
                                                        |
| 416 | - call_user_func( array( $this, "set_$key" ), $value );  | 
                                                        |
| 415 | +		if (method_exists($this, "set_$key")) { | 
                                                        |
| 416 | + call_user_func(array($this, "set_$key"), $value);  | 
                                                        |
| 417 | 417 |  		} else { | 
                                                        
| 418 | 418 | $this->data[$key] = $value;  | 
                                                        
| 419 | 419 | }  | 
                                                        
@@ -428,53 +428,53 @@ discard block  | 
                                                    ||
| 428 | 428 | * @return bool  | 
                                                        
| 429 | 429 | *  | 
                                                        
| 430 | 430 | */  | 
                                                        
| 431 | -	public function save(){ | 
                                                        |
| 431 | +	public function save() { | 
                                                        |
| 432 | 432 | |
| 433 | - $data = self::sanitize_discount_data( $this->data );  | 
                                                        |
| 433 | + $data = self::sanitize_discount_data($this->data);  | 
                                                        |
| 434 | 434 | |
| 435 | 435 | // Should we create a new post?  | 
                                                        
| 436 | -		if( ! $data[ 'ID' ] ) { | 
                                                        |
| 436 | +		if (!$data['ID']) { | 
                                                        |
| 437 | 437 | |
| 438 | - $id = wp_insert_post( array(  | 
                                                        |
| 438 | + $id = wp_insert_post(array(  | 
                                                        |
| 439 | 439 | 'post_status' => $data['status'],  | 
                                                        
| 440 | 440 | 'post_type' => 'wpi_discount',  | 
                                                        
| 441 | 441 | 'post_excerpt' => $data['description'],  | 
                                                        
| 442 | - ) );  | 
                                                        |
| 442 | + ));  | 
                                                        |
| 443 | 443 | |
| 444 | -			if( empty( $id ) ) { | 
                                                        |
| 444 | +			if (empty($id)) { | 
                                                        |
| 445 | 445 | return false;  | 
                                                        
| 446 | 446 | }  | 
                                                        
| 447 | 447 | |
| 448 | - $data[ 'ID' ] = (int) $id;  | 
                                                        |
| 449 | - $this->ID = $data[ 'ID' ];  | 
                                                        |
| 450 | - $this->data['ID'] = $data[ 'ID' ];  | 
                                                        |
| 448 | + $data['ID'] = (int) $id;  | 
                                                        |
| 449 | + $this->ID = $data['ID'];  | 
                                                        |
| 450 | + $this->data['ID'] = $data['ID'];  | 
                                                        |
| 451 | 451 | |
| 452 | 452 |  		} else { | 
                                                        
| 453 | - $this->update_status( $data['status'] );  | 
                                                        |
| 453 | + $this->update_status($data['status']);  | 
                                                        |
| 454 | 454 | }  | 
                                                        
| 455 | 455 | |
| 456 | - $meta = apply_filters( 'wpinv_update_discount', $data, $this->ID, $this );  | 
                                                        |
| 456 | +		$meta = apply_filters('wpinv_update_discount', $data, $this->ID, $this); | 
                                                        |
| 457 | 457 | |
| 458 | - do_action( 'wpinv_pre_update_discount', $meta, $this->ID, $this );  | 
                                                        |
| 458 | +		do_action('wpinv_pre_update_discount', $meta, $this->ID, $this); | 
                                                        |
| 459 | 459 | |
| 460 | -		foreach( wpinv_parse_list( 'ID date_created date_modified status description type_name' ) as $prop ) { | 
                                                        |
| 461 | -			if ( isset( $meta[$prop] ) ) { | 
                                                        |
| 462 | - unset( $meta[$prop] );  | 
                                                        |
| 460 | +		foreach (wpinv_parse_list('ID date_created date_modified status description type_name') as $prop) { | 
                                                        |
| 461 | +			if (isset($meta[$prop])) { | 
                                                        |
| 462 | + unset($meta[$prop]);  | 
                                                        |
| 463 | 463 | }  | 
                                                        
| 464 | 464 | }  | 
                                                        
| 465 | 465 | |
| 466 | -		if( isset( $meta['uses'] ) && empty( $meta['uses'] ) ) { | 
                                                        |
| 467 | - unset( $meta['uses'] );  | 
                                                        |
| 466 | +		if (isset($meta['uses']) && empty($meta['uses'])) { | 
                                                        |
| 467 | + unset($meta['uses']);  | 
                                                        |
| 468 | 468 | }  | 
                                                        
| 469 | 469 | |
| 470 | 470 | // Save the metadata.  | 
                                                        
| 471 | -		foreach( $meta as $key => $value ) { | 
                                                        |
| 472 | - update_post_meta( $this->ID, "_wpi_discount_$key", $value );  | 
                                                        |
| 471 | +		foreach ($meta as $key => $value) { | 
                                                        |
| 472 | + update_post_meta($this->ID, "_wpi_discount_$key", $value);  | 
                                                        |
| 473 | 473 | }  | 
                                                        
| 474 | 474 | |
| 475 | 475 | $this->refresh();  | 
                                                        
| 476 | 476 | |
| 477 | - do_action( 'wpinv_post_update_discount', $meta, $this->ID );  | 
                                                        |
| 477 | +		do_action('wpinv_post_update_discount', $meta, $this->ID); | 
                                                        |
| 478 | 478 | |
| 479 | 479 | return true;  | 
                                                        
| 480 | 480 | }  | 
                                                        
@@ -487,17 +487,17 @@ discard block  | 
                                                    ||
| 487 | 487 | * @return bool  | 
                                                        
| 488 | 488 | *  | 
                                                        
| 489 | 489 | */  | 
                                                        
| 490 | -	public function refresh(){ | 
                                                        |
| 490 | +	public function refresh() { | 
                                                        |
| 491 | 491 | |
| 492 | 492 | // Empty the cache for this discount.  | 
                                                        
| 493 | - wp_cache_delete( $this->ID, 'WPInv_Discounts' );  | 
                                                        |
| 494 | - wp_cache_delete( $this->get( 'code' ), 'WPInv_Discount_Codes' );  | 
                                                        |
| 493 | + wp_cache_delete($this->ID, 'WPInv_Discounts');  | 
                                                        |
| 494 | +		wp_cache_delete($this->get('code'), 'WPInv_Discount_Codes'); | 
                                                        |
| 495 | 495 | |
| 496 | - $data = self::get_data_by( 'id', $this->ID );  | 
                                                        |
| 497 | -		if( is_array( $data ) ) { | 
                                                        |
| 498 | - $this->init( $data );  | 
                                                        |
| 496 | +		$data = self::get_data_by('id', $this->ID); | 
                                                        |
| 497 | +		if (is_array($data)) { | 
                                                        |
| 498 | + $this->init($data);  | 
                                                        |
| 499 | 499 |  		} else { | 
                                                        
| 500 | - $this->init( array() );  | 
                                                        |
| 500 | + $this->init(array());  | 
                                                        |
| 501 | 501 | }  | 
                                                        
| 502 | 502 | |
| 503 | 503 | }  | 
                                                        
@@ -510,14 +510,14 @@ discard block  | 
                                                    ||
| 510 | 510 | * @return bool  | 
                                                        
| 511 | 511 | *  | 
                                                        
| 512 | 512 | */  | 
                                                        
| 513 | -	public function update_status( $status = 'publish' ){ | 
                                                        |
| 513 | +	public function update_status($status = 'publish') { | 
                                                        |
| 514 | 514 | |
| 515 | 515 | |
| 516 | -		if ( $this->exists() && $this->old_status != $status ) { | 
                                                        |
| 516 | +		if ($this->exists() && $this->old_status != $status) { | 
                                                        |
| 517 | 517 | |
| 518 | - do_action( 'wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status );  | 
                                                        |
| 519 | - $updated = wp_update_post( array( 'ID' => $this->ID, 'post_status' => $status ) );  | 
                                                        |
| 520 | - do_action( 'wpinv_post_update_discount_status', $this->ID, $this->old_status, $status );  | 
                                                        |
| 518 | +			do_action('wpinv_pre_update_discount_status', $this->ID, $this->old_status, $status); | 
                                                        |
| 519 | +        	$updated = wp_update_post(array('ID' => $this->ID, 'post_status' => $status)); | 
                                                        |
| 520 | +			do_action('wpinv_post_update_discount_status', $this->ID, $this->old_status, $status); | 
                                                        |
| 521 | 521 | |
| 522 | 522 | $this->refresh();  | 
                                                        
| 523 | 523 | |
@@ -534,8 +534,8 @@ discard block  | 
                                                    ||
| 534 | 534 | *  | 
                                                        
| 535 | 535 | * @since 1.0.15  | 
                                                        
| 536 | 536 | */  | 
                                                        
| 537 | -	public function exists(){ | 
                                                        |
| 538 | - return ! empty( $this->ID );  | 
                                                        |
| 537 | +	public function exists() { | 
                                                        |
| 538 | + return !empty($this->ID);  | 
                                                        |
| 539 | 539 | }  | 
                                                        
| 540 | 540 | |
| 541 | 541 | // Boolean methods  | 
                                                        
@@ -548,7 +548,7 @@ discard block  | 
                                                    ||
| 548 | 548 | * @since 1.0.15  | 
                                                        
| 549 | 549 | * @return bool  | 
                                                        
| 550 | 550 | */  | 
                                                        
| 551 | -	public function is_type( $type ) { | 
                                                        |
| 551 | +	public function is_type($type) { | 
                                                        |
| 552 | 552 | return $this->type == $type;  | 
                                                        
| 553 | 553 | }  | 
                                                        
| 554 | 554 | |
@@ -569,12 +569,12 @@ discard block  | 
                                                    ||
| 569 | 569 | * @return bool  | 
                                                        
| 570 | 570 | */  | 
                                                        
| 571 | 571 |  	public function has_exceeded_limit() { | 
                                                        
| 572 | -		if( empty( $this->max_uses ) || empty( $this->uses ) ) {  | 
                                                        |
| 573 | - return false ;  | 
                                                        |
| 572 | +		if (empty($this->max_uses) || empty($this->uses)) {  | 
                                                        |
| 573 | + return false;  | 
                                                        |
| 574 | 574 | }  | 
                                                        
| 575 | 575 | |
| 576 | - $exceeded = $this->uses >= $this->max_uses;  | 
                                                        |
| 577 | - return apply_filters( 'wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code );  | 
                                                        |
| 576 | + $exceeded = $this->uses >= $this->max_uses;  | 
                                                        |
| 577 | +		return apply_filters('wpinv_is_discount_maxed_out', $exceeded, $this->ID, $this, $this->code); | 
                                                        |
| 578 | 578 | }  | 
                                                        
| 579 | 579 | |
| 580 | 580 | /**  | 
                                                        
@@ -584,8 +584,8 @@ discard block  | 
                                                    ||
| 584 | 584 | * @return bool  | 
                                                        
| 585 | 585 | */  | 
                                                        
| 586 | 586 |  	public function is_expired() { | 
                                                        
| 587 | - $expired = empty ( $this->expiration ) ? false : current_time( 'timestamp' ) > strtotime( $this->expiration );  | 
                                                        |
| 588 | - return apply_filters( 'wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code );  | 
                                                        |
| 587 | +		$expired = empty ($this->expiration) ? false : current_time('timestamp') > strtotime($this->expiration); | 
                                                        |
| 588 | +		return apply_filters('wpinv_is_discount_expired', $expired, $this->ID, $this, $this->code); | 
                                                        |
| 589 | 589 | }  | 
                                                        
| 590 | 590 | |
| 591 | 591 | /**  | 
                                                        
@@ -595,8 +595,8 @@ discard block  | 
                                                    ||
| 595 | 595 | * @return bool  | 
                                                        
| 596 | 596 | */  | 
                                                        
| 597 | 597 |  	public function has_started() { | 
                                                        
| 598 | - $started = empty ( $this->start ) ? true : current_time( 'timestamp' ) > strtotime( $this->start );  | 
                                                        |
| 599 | - return apply_filters( 'wpinv_is_discount_started', $started, $this->ID, $this, $this->code );  | 
                                                        |
| 598 | +		$started = empty ($this->start) ? true : current_time('timestamp') > strtotime($this->start); | 
                                                        |
| 599 | +		return apply_filters('wpinv_is_discount_started', $started, $this->ID, $this, $this->code);		 | 
                                                        |
| 600 | 600 | }  | 
                                                        
| 601 | 601 | |
| 602 | 602 | /**  | 
                                                        
@@ -606,17 +606,17 @@ discard block  | 
                                                    ||
| 606 | 606 | * @since 1.0.15  | 
                                                        
| 607 | 607 | * @return boolean  | 
                                                        
| 608 | 608 | */  | 
                                                        
| 609 | -	public function is_valid_for_items( $item_ids ) { | 
                                                        |
| 609 | +	public function is_valid_for_items($item_ids) { | 
                                                        |
| 610 | 610 | |
| 611 | - $item_ids = array_map( 'intval', wpinv_parse_list( $item_ids ) );  | 
                                                        |
| 612 | - $included = array_intersect( $item_ids, $this->items );  | 
                                                        |
| 613 | - $excluded = array_intersect( $item_ids, $this->excluded_items );  | 
                                                        |
| 611 | +		$item_ids = array_map('intval', wpinv_parse_list($item_ids)); | 
                                                        |
| 612 | + $included = array_intersect($item_ids, $this->items);  | 
                                                        |
| 613 | + $excluded = array_intersect($item_ids, $this->excluded_items);  | 
                                                        |
| 614 | 614 | |
| 615 | -		if( ! empty( $this->excluded_items ) && ! empty( $excluded ) ) { | 
                                                        |
| 615 | +		if (!empty($this->excluded_items) && !empty($excluded)) { | 
                                                        |
| 616 | 616 | return false;  | 
                                                        
| 617 | 617 | }  | 
                                                        
| 618 | 618 | |
| 619 | -		if( ! empty( $this->items ) && empty( $included ) ) { | 
                                                        |
| 619 | +		if (!empty($this->items) && empty($included)) { | 
                                                        |
| 620 | 620 | return false;  | 
                                                        
| 621 | 621 | }  | 
                                                        
| 622 | 622 | return true;  | 
                                                        
@@ -629,8 +629,8 @@ discard block  | 
                                                    ||
| 629 | 629 | * @since 1.0.15  | 
                                                        
| 630 | 630 | * @return boolean  | 
                                                        
| 631 | 631 | */  | 
                                                        
| 632 | -	public function is_valid_for_amount( $amount ) { | 
                                                        |
| 633 | - return $this->is_minimum_amount_met( $amount ) && $this->is_maximum_amount_met( $amount );  | 
                                                        |
| 632 | +	public function is_valid_for_amount($amount) { | 
                                                        |
| 633 | + return $this->is_minimum_amount_met($amount) && $this->is_maximum_amount_met($amount);  | 
                                                        |
| 634 | 634 | }  | 
                                                        
| 635 | 635 | |
| 636 | 636 | /**  | 
                                                        
@@ -640,10 +640,10 @@ discard block  | 
                                                    ||
| 640 | 640 | * @since 1.0.15  | 
                                                        
| 641 | 641 | * @return boolean  | 
                                                        
| 642 | 642 | */  | 
                                                        
| 643 | -	public function is_minimum_amount_met( $amount ) { | 
                                                        |
| 644 | - $amount = floatval( $amount );  | 
                                                        |
| 645 | - $min_met= ! ( $this->min_total > 0 && $amount < $this->min_total );  | 
                                                        |
| 646 | - return apply_filters( 'wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount );  | 
                                                        |
| 643 | +	public function is_minimum_amount_met($amount) { | 
                                                        |
| 644 | + $amount = floatval($amount);  | 
                                                        |
| 645 | + $min_met = !($this->min_total > 0 && $amount < $this->min_total);  | 
                                                        |
| 646 | +		return apply_filters('wpinv_is_discount_min_met', $min_met, $this->ID, $this, $this->code, $amount); | 
                                                        |
| 647 | 647 | }  | 
                                                        
| 648 | 648 | |
| 649 | 649 | /**  | 
                                                        
@@ -653,10 +653,10 @@ discard block  | 
                                                    ||
| 653 | 653 | * @since 1.0.15  | 
                                                        
| 654 | 654 | * @return boolean  | 
                                                        
| 655 | 655 | */  | 
                                                        
| 656 | -	public function is_maximum_amount_met( $amount ) { | 
                                                        |
| 657 | - $amount = floatval( $amount );  | 
                                                        |
| 658 | - $max_met= ! ( $this->max_total > 0 && $amount > $this->max_total );  | 
                                                        |
| 659 | - return apply_filters( 'wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount );  | 
                                                        |
| 656 | +	public function is_maximum_amount_met($amount) { | 
                                                        |
| 657 | + $amount = floatval($amount);  | 
                                                        |
| 658 | + $max_met = !($this->max_total > 0 && $amount > $this->max_total);  | 
                                                        |
| 659 | +		return apply_filters('wpinv_is_discount_max_met', $max_met, $this->ID, $this, $this->code, $amount); | 
                                                        |
| 660 | 660 | }  | 
                                                        
| 661 | 661 | |
| 662 | 662 | /**  | 
                                                        
@@ -666,50 +666,50 @@ discard block  | 
                                                    ||
| 666 | 666 | * @since 1.0.15  | 
                                                        
| 667 | 667 | * @return boolean  | 
                                                        
| 668 | 668 | */  | 
                                                        
| 669 | -	public function is_valid_for_user( $user ) { | 
                                                        |
| 669 | +	public function is_valid_for_user($user) { | 
                                                        |
| 670 | 670 | global $wpi_checkout_id;  | 
                                                        
| 671 | 671 | |
| 672 | -		if( empty( $user ) || empty( $this->is_single_use ) ) { | 
                                                        |
| 672 | +		if (empty($user) || empty($this->is_single_use)) { | 
                                                        |
| 673 | 673 | return true;  | 
                                                        
| 674 | 674 | }  | 
                                                        
| 675 | 675 | |
| 676 | 676 | $user_id = 0;  | 
                                                        
| 677 | -        if ( is_int( $user ) ) { | 
                                                        |
| 678 | - $user_id = absint( $user );  | 
                                                        |
| 679 | -        } else if ( is_email( $user ) && $user_data = get_user_by( 'email', $user ) ) { | 
                                                        |
| 677 | +        if (is_int($user)) { | 
                                                        |
| 678 | + $user_id = absint($user);  | 
                                                        |
| 679 | +        } else if (is_email($user) && $user_data = get_user_by('email', $user)) { | 
                                                        |
| 680 | 680 | $user_id = $user_data->ID;  | 
                                                        
| 681 | -        } else if ( $user_data = get_user_by( 'login', $user ) ) { | 
                                                        |
| 681 | +        } else if ($user_data = get_user_by('login', $user)) { | 
                                                        |
| 682 | 682 | $user_id = $user_data->ID;  | 
                                                        
| 683 | -        } else if ( absint( $user ) > 0 ) { | 
                                                        |
| 684 | - $user_id = absint( $user );  | 
                                                        |
| 683 | +        } else if (absint($user) > 0) { | 
                                                        |
| 684 | + $user_id = absint($user);  | 
                                                        |
| 685 | 685 | }  | 
                                                        
| 686 | 686 | |
| 687 | -		if ( empty( $user_id ) ) { | 
                                                        |
| 687 | +		if (empty($user_id)) { | 
                                                        |
| 688 | 688 | return true;  | 
                                                        
| 689 | 689 | }  | 
                                                        
| 690 | 690 | |
| 691 | 691 | // Get all payments with matching user id  | 
                                                        
| 692 | - $payments = wpinv_get_invoices( array( 'user' => $user_id, 'limit' => false ) );  | 
                                                        |
| 693 | - $code = strtolower( $this->code );  | 
                                                        |
| 692 | +        $payments = wpinv_get_invoices(array('user' => $user_id, 'limit' => false));  | 
                                                        |
| 693 | + $code = strtolower($this->code);  | 
                                                        |
| 694 | 694 | |
| 695 | -		foreach ( $payments as $payment ) { | 
                                                        |
| 695 | +		foreach ($payments as $payment) { | 
                                                        |
| 696 | 696 | |
| 697 | 697 | // Don't count discount used for current invoice checkout.  | 
                                                        
| 698 | -			if ( ! empty( $wpi_checkout_id ) && $wpi_checkout_id == $payment->ID ) { | 
                                                        |
| 698 | +			if (!empty($wpi_checkout_id) && $wpi_checkout_id == $payment->ID) { | 
                                                        |
| 699 | 699 | continue;  | 
                                                        
| 700 | 700 | }  | 
                                                        
| 701 | 701 | |
| 702 | -			if ( $payment->has_status( array( 'wpi-cancelled', 'wpi-failed' ) ) ) { | 
                                                        |
| 702 | +			if ($payment->has_status(array('wpi-cancelled', 'wpi-failed'))) { | 
                                                        |
| 703 | 703 | continue;  | 
                                                        
| 704 | 704 | }  | 
                                                        
| 705 | 705 | |
| 706 | - $discounts = $payment->get_discounts( true );  | 
                                                        |
| 707 | -			if ( empty( $discounts ) ) { | 
                                                        |
| 706 | + $discounts = $payment->get_discounts(true);  | 
                                                        |
| 707 | +			if (empty($discounts)) { | 
                                                        |
| 708 | 708 | continue;  | 
                                                        
| 709 | 709 | }  | 
                                                        
| 710 | 710 | |
| 711 | - $discounts = array_map( 'strtolower', wpinv_parse_list( $discounts ) );  | 
                                                        |
| 712 | -			if ( ! empty( $discounts ) && in_array( $code, $discounts ) ) { | 
                                                        |
| 711 | +			$discounts = array_map('strtolower', wpinv_parse_list($discounts)); | 
                                                        |
| 712 | +			if (!empty($discounts) && in_array($code, $discounts)) { | 
                                                        |
| 713 | 713 | return false;  | 
                                                        
| 714 | 714 | }  | 
                                                        
| 715 | 715 | }  | 
                                                        
@@ -725,15 +725,15 @@ discard block  | 
                                                    ||
| 725 | 725 | */  | 
                                                        
| 726 | 726 |  	public function remove() { | 
                                                        
| 727 | 727 | |
| 728 | -		if ( empty( $this->ID ) ) { | 
                                                        |
| 728 | +		if (empty($this->ID)) { | 
                                                        |
| 729 | 729 | return true;  | 
                                                        
| 730 | 730 | }  | 
                                                        
| 731 | 731 | |
| 732 | - do_action( 'wpinv_pre_delete_discount', $this->ID, $this->data );  | 
                                                        |
| 733 | - wp_cache_delete( $this->ID, 'WPInv_Discounts' );  | 
                                                        |
| 734 | - wp_delete_post( $this->ID, true );  | 
                                                        |
| 735 | - wp_cache_delete( $this->code, 'WPInv_Discount_Codes' );  | 
                                                        |
| 736 | - do_action( 'wpinv_post_delete_discount', $this->ID, $this->data );  | 
                                                        |
| 732 | +		do_action('wpinv_pre_delete_discount', $this->ID, $this->data); | 
                                                        |
| 733 | + wp_cache_delete($this->ID, 'WPInv_Discounts');  | 
                                                        |
| 734 | + wp_delete_post($this->ID, true);  | 
                                                        |
| 735 | + wp_cache_delete($this->code, 'WPInv_Discount_Codes');  | 
                                                        |
| 736 | +    	do_action('wpinv_post_delete_discount', $this->ID, $this->data); | 
                                                        |
| 737 | 737 | |
| 738 | 738 | $this->ID = null;  | 
                                                        
| 739 | 739 | $this->data['id'] = null;  | 
                                                        
@@ -747,21 +747,21 @@ discard block  | 
                                                    ||
| 747 | 747 | * @param int $by The number of usages to increas by.  | 
                                                        
| 748 | 748 | * @return int  | 
                                                        
| 749 | 749 | */  | 
                                                        
| 750 | -	public function increase_usage( $by = 1 ) { | 
                                                        |
| 750 | +	public function increase_usage($by = 1) { | 
                                                        |
| 751 | 751 | |
| 752 | 752 | $this->uses = $this->uses + $by;  | 
                                                        
| 753 | 753 | |
| 754 | -		if( $this->uses  < 0 ) { | 
                                                        |
| 754 | +		if ($this->uses < 0) { | 
                                                        |
| 755 | 755 | $this->uses = 0;  | 
                                                        
| 756 | - update_post_meta( $this->ID, "_wpi_discount_uses", 0 );  | 
                                                        |
| 756 | + update_post_meta($this->ID, "_wpi_discount_uses", 0);  | 
                                                        |
| 757 | 757 | }  | 
                                                        
| 758 | 758 | |
| 759 | 759 | $this->save();  | 
                                                        
| 760 | 760 | |
| 761 | -		if( $by > 0 ) { | 
                                                        |
| 762 | - do_action( 'wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by );  | 
                                                        |
| 761 | +		if ($by > 0) { | 
                                                        |
| 762 | +			do_action('wpinv_discount_increase_use_count', $this->uses, $this->ID, $this->code, $by); | 
                                                        |
| 763 | 763 |  		} else { | 
                                                        
| 764 | - do_action( 'wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint( $by ) );  | 
                                                        |
| 764 | +			do_action('wpinv_discount_decrease_use_count', $this->uses, $this->ID, $this->code, absint($by)); | 
                                                        |
| 765 | 765 | }  | 
                                                        
| 766 | 766 | |
| 767 | 767 | return $this->uses;  | 
                                                        
@@ -775,8 +775,8 @@ discard block  | 
                                                    ||
| 775 | 775 | */  | 
                                                        
| 776 | 776 |  	public function get_data() { | 
                                                        
| 777 | 777 | $return = array();  | 
                                                        
| 778 | -		foreach( array_keys( $this->data ) as $key ) { | 
                                                        |
| 779 | - $return[ $key ] = $this->get( $key );  | 
                                                        |
| 778 | +		foreach (array_keys($this->data) as $key) { | 
                                                        |
| 779 | + $return[$key] = $this->get($key);  | 
                                                        |
| 780 | 780 | }  | 
                                                        
| 781 | 781 | return $return;  | 
                                                        
| 782 | 782 | }  | 
                                                        
@@ -788,7 +788,7 @@ discard block  | 
                                                    ||
| 788 | 788 | * @return string|false  | 
                                                        
| 789 | 789 | */  | 
                                                        
| 790 | 790 |  	public function get_data_as_json() { | 
                                                        
| 791 | - return wp_json_encode( $this->get_data() );  | 
                                                        |
| 791 | + return wp_json_encode($this->get_data());  | 
                                                        |
| 792 | 792 | }  | 
                                                        
| 793 | 793 | |
| 794 | 794 | /**  | 
                                                        
@@ -798,7 +798,7 @@ discard block  | 
                                                    ||
| 798 | 798 | * @return bool  | 
                                                        
| 799 | 799 | */  | 
                                                        
| 800 | 800 |  	public function get_is_single_use() { | 
                                                        
| 801 | - return (bool) apply_filters( 'wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code );  | 
                                                        |
| 801 | +		return (bool) apply_filters('wpinv_is_discount_single_use', $this->data['is_single_use'], $this->ID, $this, $this->code); | 
                                                        |
| 802 | 802 | }  | 
                                                        
| 803 | 803 | |
| 804 | 804 | /**  | 
                                                        
@@ -808,7 +808,7 @@ discard block  | 
                                                    ||
| 808 | 808 | * @return bool  | 
                                                        
| 809 | 809 | */  | 
                                                        
| 810 | 810 |  	public function get_is_recurring() { | 
                                                        
| 811 | - return (bool) apply_filters( 'wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this );  | 
                                                        |
| 811 | +		return (bool) apply_filters('wpinv_is_discount_recurring', $this->data['is_recurring'], $this->ID, $this->code, $this); | 
                                                        |
| 812 | 812 | }  | 
                                                        
| 813 | 813 | |
| 814 | 814 | /**  | 
                                                        
@@ -818,7 +818,7 @@ discard block  | 
                                                    ||
| 818 | 818 | * @return array  | 
                                                        
| 819 | 819 | */  | 
                                                        
| 820 | 820 |  	public function get_items() { | 
                                                        
| 821 | - return wpinv_parse_list( apply_filters( 'wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code ) );  | 
                                                        |
| 821 | +		return wpinv_parse_list(apply_filters('wpinv_get_discount_item_reqs', $this->data['items'], $this->ID, $this, $this->code)); | 
                                                        |
| 822 | 822 | }  | 
                                                        
| 823 | 823 | |
| 824 | 824 | /**  | 
                                                        
@@ -827,19 +827,19 @@ discard block  | 
                                                    ||
| 827 | 827 | * @since 1.0.15  | 
                                                        
| 828 | 828 | * @return float  | 
                                                        
| 829 | 829 | */  | 
                                                        
| 830 | -	public function get_discounted_amount( $amount ) { | 
                                                        |
| 830 | +	public function get_discounted_amount($amount) { | 
                                                        |
| 831 | 831 | |
| 832 | -		if ( $this->type == 'flat' ) { | 
                                                        |
| 832 | +		if ($this->type == 'flat') { | 
                                                        |
| 833 | 833 | $amount = $amount - $this->amount;  | 
                                                        
| 834 | 834 |  		} else { | 
                                                        
| 835 | - $amount = $amount - ( $amount * ( $this->amount / 100 ) );  | 
                                                        |
| 835 | + $amount = $amount - ($amount * ($this->amount / 100));  | 
                                                        |
| 836 | 836 | }  | 
                                                        
| 837 | 837 | |
| 838 | -		if ( $amount < 0 ) { | 
                                                        |
| 838 | +		if ($amount < 0) { | 
                                                        |
| 839 | 839 | $amount = 0;  | 
                                                        
| 840 | 840 | }  | 
                                                        
| 841 | 841 | |
| 842 | - return apply_filters( 'wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount );  | 
                                                        |
| 842 | +		return apply_filters('wpinv_discounted_amount', $amount, $this->ID, $this, $this->code, $this->amount); | 
                                                        |
| 843 | 843 | }  | 
                                                        
| 844 | 844 | |
| 845 | 845 | }  | 
                                                        
@@ -132,11 +132,13 @@  | 
                                                    ||
| 132 | 132 |  		if ( 'id' == strtolower( $field ) ) { | 
                                                        
| 133 | 133 | // Make sure the value is numeric to avoid casting objects, for example,  | 
                                                        
| 134 | 134 | // to int 1.  | 
                                                        
| 135 | - if ( ! is_numeric( $value ) )  | 
                                                        |
| 136 | - return false;  | 
                                                        |
| 135 | +			if ( ! is_numeric( $value ) ) { | 
                                                        |
| 136 | + return false;  | 
                                                        |
| 137 | + }  | 
                                                        |
| 137 | 138 | $value = intval( $value );  | 
                                                        
| 138 | - if ( $value < 1 )  | 
                                                        |
| 139 | - return false;  | 
                                                        |
| 139 | +			if ( $value < 1 ) { | 
                                                        |
| 140 | + return false;  | 
                                                        |
| 141 | + }  | 
                                                        |
| 140 | 142 | }  | 
                                                        
| 141 | 143 | |
| 142 | 144 |  		if ( ! $value || ! is_string( $field ) ) { | 
                                                        
@@ -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', wpinv_get_theme_template_dir_name() );  | 
                                                        |
| 22 | +    return apply_filters('wpinv_template_path', wpinv_get_theme_template_dir_name()); | 
                                                        |
| 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 btn-print-invoice" 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 btn-invoice-history" 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 btn-print-invoice" 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 btn-invoice-history" 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,159 +208,159 @@ 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', 'invoicing' ) );  | 
                                                        |
| 225 | +	return trailingslashit(apply_filters('wpinv_templates_dir', 'invoicing')); | 
                                                        |
| 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' );  | 
                                                        |
| 234 | - $pages[] = wpinv_get_option( 'invoice_subscription_page' );  | 
                                                        |
| 231 | +	$pages[] = wpinv_get_option('success_page'); | 
                                                        |
| 232 | +	$pages[] = wpinv_get_option('failure_page'); | 
                                                        |
| 233 | +	$pages[] = wpinv_get_option('invoice_history_page'); | 
                                                        |
| 234 | +	$pages[] = wpinv_get_option('invoice_subscription_page'); | 
                                                        |
| 235 | 235 | |
| 236 | -	if( !wpinv_is_checkout() && !is_page( $pages ) ) { | 
                                                        |
| 236 | +	if (!wpinv_is_checkout() && !is_page($pages)) { | 
                                                        |
| 237 | 237 | return;  | 
                                                        
| 238 | 238 | }  | 
                                                        
| 239 | 239 | |
| 240 | 240 | echo '<meta name="robots" content="noindex,nofollow" />' . "\n";  | 
                                                        
| 241 | 241 | }  | 
                                                        
| 242 | -add_action( 'wp_head', 'wpinv_checkout_meta_tags' );  | 
                                                        |
| 242 | +add_action('wp_head', 'wpinv_checkout_meta_tags'); | 
                                                        |
| 243 | 243 | |
| 244 | -function wpinv_add_body_classes( $class ) { | 
                                                        |
| 245 | - $classes = (array)$class;  | 
                                                        |
| 244 | +function wpinv_add_body_classes($class) { | 
                                                        |
| 245 | + $classes = (array) $class;  | 
                                                        |
| 246 | 246 | |
| 247 | -	if( wpinv_is_checkout() ) { | 
                                                        |
| 247 | +	if (wpinv_is_checkout()) { | 
                                                        |
| 248 | 248 | $classes[] = 'wpinv-checkout';  | 
                                                        
| 249 | 249 | $classes[] = 'wpinv-page';  | 
                                                        
| 250 | 250 | }  | 
                                                        
| 251 | 251 | |
| 252 | -	if( wpinv_is_success_page() ) { | 
                                                        |
| 252 | +	if (wpinv_is_success_page()) { | 
                                                        |
| 253 | 253 | $classes[] = 'wpinv-success';  | 
                                                        
| 254 | 254 | $classes[] = 'wpinv-page';  | 
                                                        
| 255 | 255 | }  | 
                                                        
| 256 | 256 | |
| 257 | -	if( wpinv_is_failed_transaction_page() ) { | 
                                                        |
| 257 | +	if (wpinv_is_failed_transaction_page()) { | 
                                                        |
| 258 | 258 | $classes[] = 'wpinv-failed-transaction';  | 
                                                        
| 259 | 259 | $classes[] = 'wpinv-page';  | 
                                                        
| 260 | 260 | }  | 
                                                        
| 261 | 261 | |
| 262 | -	if( wpinv_is_invoice_history_page() ) { | 
                                                        |
| 262 | +	if (wpinv_is_invoice_history_page()) { | 
                                                        |
| 263 | 263 | $classes[] = 'wpinv-history';  | 
                                                        
| 264 | 264 | $classes[] = 'wpinv-page';  | 
                                                        
| 265 | 265 | }  | 
                                                        
| 266 | 266 | |
| 267 | -	if( wpinv_is_subscriptions_history_page() ) { | 
                                                        |
| 267 | +	if (wpinv_is_subscriptions_history_page()) { | 
                                                        |
| 268 | 268 | $classes[] = 'wpinv-subscription';  | 
                                                        
| 269 | 269 | $classes[] = 'wpinv-page';  | 
                                                        
| 270 | 270 | }  | 
                                                        
| 271 | 271 | |
| 272 | -	if( wpinv_is_test_mode() ) { | 
                                                        |
| 272 | +	if (wpinv_is_test_mode()) { | 
                                                        |
| 273 | 273 | $classes[] = 'wpinv-test-mode';  | 
                                                        
| 274 | 274 | $classes[] = 'wpinv-page';  | 
                                                        
| 275 | 275 | }  | 
                                                        
| 276 | 276 | |
| 277 | - return array_unique( $classes );  | 
                                                        |
| 277 | + return array_unique($classes);  | 
                                                        |
| 278 | 278 | }  | 
                                                        
| 279 | -add_filter( 'body_class', 'wpinv_add_body_classes' );  | 
                                                        |
| 279 | +add_filter('body_class', 'wpinv_add_body_classes'); | 
                                                        |
| 280 | 280 | |
| 281 | -function wpinv_html_dropdown( $name = 'wpinv_discounts', $selected = 0, $status = '' ) { | 
                                                        |
| 282 | - $args = array( 'nopaging' => true );  | 
                                                        |
| 281 | +function wpinv_html_dropdown($name = 'wpinv_discounts', $selected = 0, $status = '') { | 
                                                        |
| 282 | +    $args = array('nopaging' => true); | 
                                                        |
| 283 | 283 | |
| 284 | - if ( ! empty( $status ) )  | 
                                                        |
| 284 | + if (!empty($status))  | 
                                                        |
| 285 | 285 | $args['post_status'] = $status;  | 
                                                        
| 286 | 286 | |
| 287 | - $discounts = wpinv_get_discounts( $args );  | 
                                                        |
| 287 | + $discounts = wpinv_get_discounts($args);  | 
                                                        |
| 288 | 288 | $options = array();  | 
                                                        
| 289 | 289 | |
| 290 | -    if ( $discounts ) { | 
                                                        |
| 291 | -        foreach ( $discounts as $discount ) { | 
                                                        |
| 292 | - $options[ absint( $discount->ID ) ] = esc_html( get_the_title( $discount->ID ) );  | 
                                                        |
| 290 | +    if ($discounts) { | 
                                                        |
| 291 | +        foreach ($discounts as $discount) { | 
                                                        |
| 292 | + $options[absint($discount->ID)] = esc_html(get_the_title($discount->ID));  | 
                                                        |
| 293 | 293 | }  | 
                                                        
| 294 | 294 |      } else { | 
                                                        
| 295 | - $options[0] = __( 'No discounts found', 'invoicing' );  | 
                                                        |
| 295 | +        $options[0] = __('No discounts found', 'invoicing'); | 
                                                        |
| 296 | 296 | }  | 
                                                        
| 297 | 297 | |
| 298 | - $output = wpinv_html_select( array(  | 
                                                        |
| 298 | + $output = wpinv_html_select(array(  | 
                                                        |
| 299 | 299 | 'name' => $name,  | 
                                                        
| 300 | 300 | 'selected' => $selected,  | 
                                                        
| 301 | 301 | 'options' => $options,  | 
                                                        
| 302 | 302 | 'show_option_all' => false,  | 
                                                        
| 303 | 303 | 'show_option_none' => false,  | 
                                                        
| 304 | - ) );  | 
                                                        |
| 304 | + ));  | 
                                                        |
| 305 | 305 | |
| 306 | 306 | return $output;  | 
                                                        
| 307 | 307 | }  | 
                                                        
| 308 | 308 | |
| 309 | -function wpinv_html_year_dropdown( $name = 'year', $selected = 0, $years_before = 5, $years_after = 0 ) { | 
                                                        |
| 310 | - $current = date( 'Y' );  | 
                                                        |
| 311 | - $start_year = $current - absint( $years_before );  | 
                                                        |
| 312 | - $end_year = $current + absint( $years_after );  | 
                                                        |
| 313 | - $selected = empty( $selected ) ? date( 'Y' ) : $selected;  | 
                                                        |
| 309 | +function wpinv_html_year_dropdown($name = 'year', $selected = 0, $years_before = 5, $years_after = 0) { | 
                                                        |
| 310 | +    $current     = date('Y'); | 
                                                        |
| 311 | + $start_year = $current - absint($years_before);  | 
                                                        |
| 312 | + $end_year = $current + absint($years_after);  | 
                                                        |
| 313 | +    $selected    = empty($selected) ? date('Y') : $selected; | 
                                                        |
| 314 | 314 | $options = array();  | 
                                                        
| 315 | 315 | |
| 316 | -    while ( $start_year <= $end_year ) { | 
                                                        |
| 317 | - $options[ absint( $start_year ) ] = $start_year;  | 
                                                        |
| 316 | +    while ($start_year <= $end_year) { | 
                                                        |
| 317 | + $options[absint($start_year)] = $start_year;  | 
                                                        |
| 318 | 318 | $start_year++;  | 
                                                        
| 319 | 319 | }  | 
                                                        
| 320 | 320 | |
| 321 | - $output = wpinv_html_select( array(  | 
                                                        |
| 321 | + $output = wpinv_html_select(array(  | 
                                                        |
| 322 | 322 | 'name' => $name,  | 
                                                        
| 323 | 323 | 'selected' => $selected,  | 
                                                        
| 324 | 324 | 'options' => $options,  | 
                                                        
| 325 | 325 | 'show_option_all' => false,  | 
                                                        
| 326 | 326 | 'show_option_none' => false  | 
                                                        
| 327 | - ) );  | 
                                                        |
| 327 | + ));  | 
                                                        |
| 328 | 328 | |
| 329 | 329 | return $output;  | 
                                                        
| 330 | 330 | }  | 
                                                        
| 331 | 331 | |
| 332 | -function wpinv_html_month_dropdown( $name = 'month', $selected = 0 ) { | 
                                                        |
| 332 | +function wpinv_html_month_dropdown($name = 'month', $selected = 0) { | 
                                                        |
| 333 | 333 | |
| 334 | 334 | $options = array(  | 
                                                        
| 335 | - '1' => __( 'January', 'invoicing' ),  | 
                                                        |
| 336 | - '2' => __( 'February', 'invoicing' ),  | 
                                                        |
| 337 | - '3' => __( 'March', 'invoicing' ),  | 
                                                        |
| 338 | - '4' => __( 'April', 'invoicing' ),  | 
                                                        |
| 339 | - '5' => __( 'May', 'invoicing' ),  | 
                                                        |
| 340 | - '6' => __( 'June', 'invoicing' ),  | 
                                                        |
| 341 | - '7' => __( 'July', 'invoicing' ),  | 
                                                        |
| 342 | - '8' => __( 'August', 'invoicing' ),  | 
                                                        |
| 343 | - '9' => __( 'September', 'invoicing' ),  | 
                                                        |
| 344 | - '10' => __( 'October', 'invoicing' ),  | 
                                                        |
| 345 | - '11' => __( 'November', 'invoicing' ),  | 
                                                        |
| 346 | - '12' => __( 'December', 'invoicing' ),  | 
                                                        |
| 335 | +        '1'  => __('January', 'invoicing'), | 
                                                        |
| 336 | +        '2'  => __('February', 'invoicing'), | 
                                                        |
| 337 | +        '3'  => __('March', 'invoicing'), | 
                                                        |
| 338 | +        '4'  => __('April', 'invoicing'), | 
                                                        |
| 339 | +        '5'  => __('May', 'invoicing'), | 
                                                        |
| 340 | +        '6'  => __('June', 'invoicing'), | 
                                                        |
| 341 | +        '7'  => __('July', 'invoicing'), | 
                                                        |
| 342 | +        '8'  => __('August', 'invoicing'), | 
                                                        |
| 343 | +        '9'  => __('September', 'invoicing'), | 
                                                        |
| 344 | +        '10' => __('October', 'invoicing'), | 
                                                        |
| 345 | +        '11' => __('November', 'invoicing'), | 
                                                        |
| 346 | +        '12' => __('December', 'invoicing'), | 
                                                        |
| 347 | 347 | );  | 
                                                        
| 348 | 348 | |
| 349 | 349 | // If no month is selected, default to the current month  | 
                                                        
| 350 | - $selected = empty( $selected ) ? date( 'n' ) : $selected;  | 
                                                        |
| 350 | +    $selected = empty($selected) ? date('n') : $selected; | 
                                                        |
| 351 | 351 | |
| 352 | - $output = wpinv_html_select( array(  | 
                                                        |
| 352 | + $output = wpinv_html_select(array(  | 
                                                        |
| 353 | 353 | 'name' => $name,  | 
                                                        
| 354 | 354 | 'selected' => $selected,  | 
                                                        
| 355 | 355 | 'options' => $options,  | 
                                                        
| 356 | 356 | 'show_option_all' => false,  | 
                                                        
| 357 | 357 | 'show_option_none' => false  | 
                                                        
| 358 | - ) );  | 
                                                        |
| 358 | + ));  | 
                                                        |
| 359 | 359 | |
| 360 | 360 | return $output;  | 
                                                        
| 361 | 361 | }  | 
                                                        
| 362 | 362 | |
| 363 | -function wpinv_html_select( $args = array() ) { | 
                                                        |
| 363 | +function wpinv_html_select($args = array()) { | 
                                                        |
| 364 | 364 | $defaults = array(  | 
                                                        
| 365 | 365 | 'options' => array(),  | 
                                                        
| 366 | 366 | 'name' => null,  | 
                                                        
@@ -369,8 +369,8 @@ discard block  | 
                                                    ||
| 369 | 369 | 'selected' => 0,  | 
                                                        
| 370 | 370 | 'placeholder' => null,  | 
                                                        
| 371 | 371 | 'multiple' => false,  | 
                                                        
| 372 | - 'show_option_all' => _x( 'All', 'all dropdown items', 'invoicing' ),  | 
                                                        |
| 373 | - 'show_option_none' => _x( 'None', 'no dropdown items', 'invoicing' ),  | 
                                                        |
| 372 | +        'show_option_all'  => _x('All', 'all dropdown items', 'invoicing'), | 
                                                        |
| 373 | +        'show_option_none' => _x('None', 'no dropdown items', 'invoicing'), | 
                                                        |
| 374 | 374 | 'data' => array(),  | 
                                                        
| 375 | 375 | 'onchange' => null,  | 
                                                        
| 376 | 376 | 'required' => false,  | 
                                                        
@@ -378,74 +378,74 @@ discard block  | 
                                                    ||
| 378 | 378 | 'readonly' => false,  | 
                                                        
| 379 | 379 | );  | 
                                                        
| 380 | 380 | |
| 381 | - $args = wp_parse_args( $args, $defaults );  | 
                                                        |
| 381 | + $args = wp_parse_args($args, $defaults);  | 
                                                        |
| 382 | 382 | |
| 383 | 383 | $data_elements = '';  | 
                                                        
| 384 | -    foreach ( $args['data'] as $key => $value ) { | 
                                                        |
| 385 | - $data_elements .= ' data-' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"';  | 
                                                        |
| 384 | +    foreach ($args['data'] as $key => $value) { | 
                                                        |
| 385 | + $data_elements .= ' data-' . esc_attr($key) . '="' . esc_attr($value) . '"';  | 
                                                        |
| 386 | 386 | }  | 
                                                        
| 387 | 387 | |
| 388 | -    if( $args['multiple'] ) { | 
                                                        |
| 388 | +    if ($args['multiple']) { | 
                                                        |
| 389 | 389 | $multiple = ' MULTIPLE';  | 
                                                        
| 390 | 390 |      } else { | 
                                                        
| 391 | 391 | $multiple = '';  | 
                                                        
| 392 | 392 | }  | 
                                                        
| 393 | 393 | |
| 394 | -    if( $args['placeholder'] ) { | 
                                                        |
| 394 | +    if ($args['placeholder']) { | 
                                                        |
| 395 | 395 | $placeholder = $args['placeholder'];  | 
                                                        
| 396 | 396 |      } else { | 
                                                        
| 397 | 397 | $placeholder = '';  | 
                                                        
| 398 | 398 | }  | 
                                                        
| 399 | 399 | |
| 400 | 400 | $options = '';  | 
                                                        
| 401 | -    if( !empty( $args['onchange'] ) ) { | 
                                                        |
| 402 | - $options .= ' onchange="' . esc_attr( $args['onchange'] ) . '"';  | 
                                                        |
| 401 | +    if (!empty($args['onchange'])) { | 
                                                        |
| 402 | + $options .= ' onchange="' . esc_attr($args['onchange']) . '"';  | 
                                                        |
| 403 | 403 | }  | 
                                                        
| 404 | 404 | |
| 405 | -    if( !empty( $args['required'] ) ) { | 
                                                        |
| 405 | +    if (!empty($args['required'])) { | 
                                                        |
| 406 | 406 | $options .= ' required="required"';  | 
                                                        
| 407 | 407 | }  | 
                                                        
| 408 | 408 | |
| 409 | -    if( !empty( $args['disabled'] ) ) { | 
                                                        |
| 409 | +    if (!empty($args['disabled'])) { | 
                                                        |
| 410 | 410 | $options .= ' disabled';  | 
                                                        
| 411 | 411 | }  | 
                                                        
| 412 | 412 | |
| 413 | -    if( !empty( $args['readonly'] ) ) { | 
                                                        |
| 413 | +    if (!empty($args['readonly'])) { | 
                                                        |
| 414 | 414 | $options .= ' readonly';  | 
                                                        
| 415 | 415 | }  | 
                                                        
| 416 | 416 | |
| 417 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );  | 
                                                        |
| 418 | - $output = '<select name="' . esc_attr( $args['name'] ) . '" id="' . esc_attr( $args['id'] ) . '" class="wpinv-select ' . $class . '"' . $multiple . ' data-placeholder="' . $placeholder . '" ' . trim( $options ) . $data_elements . '>';  | 
                                                        |
| 417 | +    $class  = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); | 
                                                        |
| 418 | + $output = '<select name="' . esc_attr($args['name']) . '" id="' . esc_attr($args['id']) . '" class="wpinv-select ' . $class . '"' . $multiple . ' data-placeholder="' . $placeholder . '" ' . trim($options) . $data_elements . '>';  | 
                                                        |
| 419 | 419 | |
| 420 | -    if ( $args['show_option_all'] ) { | 
                                                        |
| 421 | -        if( $args['multiple'] ) { | 
                                                        |
| 422 | - $selected = selected( true, in_array( 0, $args['selected'] ), false );  | 
                                                        |
| 420 | +    if ($args['show_option_all']) { | 
                                                        |
| 421 | +        if ($args['multiple']) { | 
                                                        |
| 422 | + $selected = selected(true, in_array(0, $args['selected']), false);  | 
                                                        |
| 423 | 423 |          } else { | 
                                                        
| 424 | - $selected = selected( $args['selected'], 0, false );  | 
                                                        |
| 424 | + $selected = selected($args['selected'], 0, false);  | 
                                                        |
| 425 | 425 | }  | 
                                                        
| 426 | - $output .= '<option value="all"' . $selected . '>' . esc_html( $args['show_option_all'] ) . '</option>';  | 
                                                        |
| 426 | + $output .= '<option value="all"' . $selected . '>' . esc_html($args['show_option_all']) . '</option>';  | 
                                                        |
| 427 | 427 | }  | 
                                                        
| 428 | 428 | |
| 429 | -    if ( !empty( $args['options'] ) ) { | 
                                                        |
| 429 | +    if (!empty($args['options'])) { | 
                                                        |
| 430 | 430 | |
| 431 | -        if ( $args['show_option_none'] ) { | 
                                                        |
| 432 | -            if( $args['multiple'] ) { | 
                                                        |
| 433 | - $selected = selected( true, in_array( "", $args['selected'] ), false );  | 
                                                        |
| 431 | +        if ($args['show_option_none']) { | 
                                                        |
| 432 | +            if ($args['multiple']) { | 
                                                        |
| 433 | +                $selected = selected(true, in_array("", $args['selected']), false); | 
                                                        |
| 434 | 434 |              } else { | 
                                                        
| 435 | - $selected = selected( $args['selected'] === "", true, false );  | 
                                                        |
| 435 | + $selected = selected($args['selected'] === "", true, false);  | 
                                                        |
| 436 | 436 | }  | 
                                                        
| 437 | - $output .= '<option value=""' . $selected . '>' . esc_html( $args['show_option_none'] ) . '</option>';  | 
                                                        |
| 437 | + $output .= '<option value=""' . $selected . '>' . esc_html($args['show_option_none']) . '</option>';  | 
                                                        |
| 438 | 438 | }  | 
                                                        
| 439 | 439 | |
| 440 | -        foreach( $args['options'] as $key => $option ) { | 
                                                        |
| 440 | +        foreach ($args['options'] as $key => $option) { | 
                                                        |
| 441 | 441 | |
| 442 | -            if( $args['multiple'] && is_array( $args['selected'] ) ) { | 
                                                        |
| 443 | - $selected = selected( true, (bool)in_array( $key, $args['selected'] ), false );  | 
                                                        |
| 442 | +            if ($args['multiple'] && is_array($args['selected'])) { | 
                                                        |
| 443 | + $selected = selected(true, (bool) in_array($key, $args['selected']), false);  | 
                                                        |
| 444 | 444 |              } else { | 
                                                        
| 445 | - $selected = selected( $args['selected'], $key, false );  | 
                                                        |
| 445 | + $selected = selected($args['selected'], $key, false);  | 
                                                        |
| 446 | 446 | }  | 
                                                        
| 447 | 447 | |
| 448 | - $output .= '<option value="' . esc_attr( $key ) . '"' . $selected . '>' . esc_html( $option ) . '</option>';  | 
                                                        |
| 448 | + $output .= '<option value="' . esc_attr($key) . '"' . $selected . '>' . esc_html($option) . '</option>';  | 
                                                        |
| 449 | 449 | }  | 
                                                        
| 450 | 450 | }  | 
                                                        
| 451 | 451 | |
@@ -454,7 +454,7 @@ discard block  | 
                                                    ||
| 454 | 454 | return $output;  | 
                                                        
| 455 | 455 | }  | 
                                                        
| 456 | 456 | |
| 457 | -function wpinv_item_dropdown( $args = array() ) { | 
                                                        |
| 457 | +function wpinv_item_dropdown($args = array()) { | 
                                                        |
| 458 | 458 | $defaults = array(  | 
                                                        
| 459 | 459 | 'name' => 'wpi_item',  | 
                                                        
| 460 | 460 | 'id' => 'wpi_item',  | 
                                                        
@@ -462,14 +462,14 @@ discard block  | 
                                                    ||
| 462 | 462 | 'multiple' => false,  | 
                                                        
| 463 | 463 | 'selected' => 0,  | 
                                                        
| 464 | 464 | 'number' => 100,  | 
                                                        
| 465 | - 'placeholder' => __( 'Choose a item', 'invoicing' ),  | 
                                                        |
| 466 | - 'data' => array( 'search-type' => 'item' ),  | 
                                                        |
| 465 | +        'placeholder'       => __('Choose a item', 'invoicing'), | 
                                                        |
| 466 | +        'data'              => array('search-type' => 'item'), | 
                                                        |
| 467 | 467 | 'show_option_all' => false,  | 
                                                        
| 468 | 468 | 'show_option_none' => false,  | 
                                                        
| 469 | 469 | 'show_recurring' => false,  | 
                                                        
| 470 | 470 | );  | 
                                                        
| 471 | 471 | |
| 472 | - $args = wp_parse_args( $args, $defaults );  | 
                                                        |
| 472 | + $args = wp_parse_args($args, $defaults);  | 
                                                        |
| 473 | 473 | |
| 474 | 474 | $item_args = array(  | 
                                                        
| 475 | 475 | 'post_type' => 'wpi_item',  | 
                                                        
@@ -478,44 +478,44 @@ discard block  | 
                                                    ||
| 478 | 478 | 'posts_per_page' => $args['number']  | 
                                                        
| 479 | 479 | );  | 
                                                        
| 480 | 480 | |
| 481 | - $item_args = apply_filters( 'wpinv_item_dropdown_query_args', $item_args, $args, $defaults );  | 
                                                        |
| 481 | +    $item_args  = apply_filters('wpinv_item_dropdown_query_args', $item_args, $args, $defaults); | 
                                                        |
| 482 | 482 | |
| 483 | - $items = get_posts( $item_args );  | 
                                                        |
| 483 | + $items = get_posts($item_args);  | 
                                                        |
| 484 | 484 | $options = array();  | 
                                                        
| 485 | -    if ( $items ) { | 
                                                        |
| 486 | -        foreach ( $items as $item ) { | 
                                                        |
| 487 | - $title = esc_html( $item->post_title );  | 
                                                        |
| 485 | +    if ($items) { | 
                                                        |
| 486 | +        foreach ($items as $item) { | 
                                                        |
| 487 | + $title = esc_html($item->post_title);  | 
                                                        |
| 488 | 488 | |
| 489 | -            if ( !empty( $args['show_recurring'] ) ) { | 
                                                        |
| 490 | - $title .= wpinv_get_item_suffix( $item->ID, false );  | 
                                                        |
| 489 | +            if (!empty($args['show_recurring'])) { | 
                                                        |
| 490 | + $title .= wpinv_get_item_suffix($item->ID, false);  | 
                                                        |
| 491 | 491 | }  | 
                                                        
| 492 | 492 | |
| 493 | - $options[ absint( $item->ID ) ] = $title;  | 
                                                        |
| 493 | + $options[absint($item->ID)] = $title;  | 
                                                        |
| 494 | 494 | }  | 
                                                        
| 495 | 495 | }  | 
                                                        
| 496 | 496 | |
| 497 | 497 | // This ensures that any selected items are included in the drop down  | 
                                                        
| 498 | -    if( is_array( $args['selected'] ) ) { | 
                                                        |
| 499 | -        foreach( $args['selected'] as $item ) { | 
                                                        |
| 500 | -            if( ! in_array( $item, $options ) ) { | 
                                                        |
| 501 | - $title = get_the_title( $item );  | 
                                                        |
| 502 | -                if ( !empty( $args['show_recurring'] ) ) { | 
                                                        |
| 503 | - $title .= wpinv_get_item_suffix( $item, false );  | 
                                                        |
| 498 | +    if (is_array($args['selected'])) { | 
                                                        |
| 499 | +        foreach ($args['selected'] as $item) { | 
                                                        |
| 500 | +            if (!in_array($item, $options)) { | 
                                                        |
| 501 | + $title = get_the_title($item);  | 
                                                        |
| 502 | +                if (!empty($args['show_recurring'])) { | 
                                                        |
| 503 | + $title .= wpinv_get_item_suffix($item, false);  | 
                                                        |
| 504 | 504 | }  | 
                                                        
| 505 | 505 | $options[$item] = $title;  | 
                                                        
| 506 | 506 | }  | 
                                                        
| 507 | 507 | }  | 
                                                        
| 508 | -    } elseif ( is_numeric( $args['selected'] ) && $args['selected'] !== 0 ) { | 
                                                        |
| 509 | -        if ( ! in_array( $args['selected'], $options ) ) { | 
                                                        |
| 510 | - $title = get_the_title( $args['selected'] );  | 
                                                        |
| 511 | -            if ( !empty( $args['show_recurring'] ) ) { | 
                                                        |
| 512 | - $title .= wpinv_get_item_suffix( $args['selected'], false );  | 
                                                        |
| 508 | +    } elseif (is_numeric($args['selected']) && $args['selected'] !== 0) { | 
                                                        |
| 509 | +        if (!in_array($args['selected'], $options)) { | 
                                                        |
| 510 | + $title = get_the_title($args['selected']);  | 
                                                        |
| 511 | +            if (!empty($args['show_recurring'])) { | 
                                                        |
| 512 | + $title .= wpinv_get_item_suffix($args['selected'], false);  | 
                                                        |
| 513 | 513 | }  | 
                                                        
| 514 | - $options[$args['selected']] = get_the_title( $args['selected'] );  | 
                                                        |
| 514 | + $options[$args['selected']] = get_the_title($args['selected']);  | 
                                                        |
| 515 | 515 | }  | 
                                                        
| 516 | 516 | }  | 
                                                        
| 517 | 517 | |
| 518 | - $output = wpinv_html_select( array(  | 
                                                        |
| 518 | + $output = wpinv_html_select(array(  | 
                                                        |
| 519 | 519 | 'name' => $args['name'],  | 
                                                        
| 520 | 520 | 'selected' => $args['selected'],  | 
                                                        
| 521 | 521 | 'id' => $args['id'],  | 
                                                        
@@ -526,12 +526,12 @@ discard block  | 
                                                    ||
| 526 | 526 | 'show_option_all' => $args['show_option_all'],  | 
                                                        
| 527 | 527 | 'show_option_none' => $args['show_option_none'],  | 
                                                        
| 528 | 528 | 'data' => $args['data'],  | 
                                                        
| 529 | - ) );  | 
                                                        |
| 529 | + ));  | 
                                                        |
| 530 | 530 | |
| 531 | 531 | return $output;  | 
                                                        
| 532 | 532 | }  | 
                                                        
| 533 | 533 | |
| 534 | -function wpinv_html_checkbox( $args = array() ) { | 
                                                        |
| 534 | +function wpinv_html_checkbox($args = array()) { | 
                                                        |
| 535 | 535 | $defaults = array(  | 
                                                        
| 536 | 536 | 'name' => null,  | 
                                                        
| 537 | 537 | 'current' => null,  | 
                                                        
@@ -542,38 +542,38 @@ discard block  | 
                                                    ||
| 542 | 542 | )  | 
                                                        
| 543 | 543 | );  | 
                                                        
| 544 | 544 | |
| 545 | - $args = wp_parse_args( $args, $defaults );  | 
                                                        |
| 545 | + $args = wp_parse_args($args, $defaults);  | 
                                                        |
| 546 | 546 | |
| 547 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );  | 
                                                        |
| 547 | +    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); | 
                                                        |
| 548 | 548 | $options = '';  | 
                                                        
| 549 | -    if ( ! empty( $args['options']['disabled'] ) ) { | 
                                                        |
| 549 | +    if (!empty($args['options']['disabled'])) { | 
                                                        |
| 550 | 550 | $options .= ' disabled="disabled"';  | 
                                                        
| 551 | -    } elseif ( ! empty( $args['options']['readonly'] ) ) { | 
                                                        |
| 551 | +    } elseif (!empty($args['options']['readonly'])) { | 
                                                        |
| 552 | 552 | $options .= ' readonly';  | 
                                                        
| 553 | 553 | }  | 
                                                        
| 554 | 554 | |
| 555 | - $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 ) . ' />';  | 
                                                        |
| 555 | + $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) . ' />';  | 
                                                        |
| 556 | 556 | |
| 557 | 557 | return $output;  | 
                                                        
| 558 | 558 | }  | 
                                                        
| 559 | 559 | |
| 560 | -function wpinv_html_text( $args = array() ) { | 
                                                        |
| 560 | +function wpinv_html_text($args = array()) { | 
                                                        |
| 561 | 561 | // Backwards compatibility  | 
                                                        
| 562 | -    if ( func_num_args() > 1 ) { | 
                                                        |
| 562 | +    if (func_num_args() > 1) { | 
                                                        |
| 563 | 563 | $args = func_get_args();  | 
                                                        
| 564 | 564 | |
| 565 | 565 | $name = $args[0];  | 
                                                        
| 566 | - $value = isset( $args[1] ) ? $args[1] : '';  | 
                                                        |
| 567 | - $label = isset( $args[2] ) ? $args[2] : '';  | 
                                                        |
| 568 | - $desc = isset( $args[3] ) ? $args[3] : '';  | 
                                                        |
| 566 | + $value = isset($args[1]) ? $args[1] : '';  | 
                                                        |
| 567 | + $label = isset($args[2]) ? $args[2] : '';  | 
                                                        |
| 568 | + $desc = isset($args[3]) ? $args[3] : '';  | 
                                                        |
| 569 | 569 | }  | 
                                                        
| 570 | 570 | |
| 571 | 571 | $defaults = array(  | 
                                                        
| 572 | 572 | 'id' => '',  | 
                                                        
| 573 | - 'name' => isset( $name ) ? $name : 'text',  | 
                                                        |
| 574 | - 'value' => isset( $value ) ? $value : null,  | 
                                                        |
| 575 | - 'label' => isset( $label ) ? $label : null,  | 
                                                        |
| 576 | - 'desc' => isset( $desc ) ? $desc : null,  | 
                                                        |
| 573 | + 'name' => isset($name) ? $name : 'text',  | 
                                                        |
| 574 | + 'value' => isset($value) ? $value : null,  | 
                                                        |
| 575 | + 'label' => isset($label) ? $label : null,  | 
                                                        |
| 576 | + 'desc' => isset($desc) ? $desc : null,  | 
                                                        |
| 577 | 577 | 'placeholder' => '',  | 
                                                        
| 578 | 578 | 'class' => 'regular-text',  | 
                                                        
| 579 | 579 | 'disabled' => false,  | 
                                                        
@@ -583,51 +583,51 @@ discard block  | 
                                                    ||
| 583 | 583 | 'data' => false  | 
                                                        
| 584 | 584 | );  | 
                                                        
| 585 | 585 | |
| 586 | - $args = wp_parse_args( $args, $defaults );  | 
                                                        |
| 586 | + $args = wp_parse_args($args, $defaults);  | 
                                                        |
| 587 | 587 | |
| 588 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );  | 
                                                        |
| 588 | +    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); | 
                                                        |
| 589 | 589 | $options = '';  | 
                                                        
| 590 | -    if( $args['required'] ) { | 
                                                        |
| 590 | +    if ($args['required']) { | 
                                                        |
| 591 | 591 | $options .= ' required="required"';  | 
                                                        
| 592 | 592 | }  | 
                                                        
| 593 | -    if( $args['readonly'] ) { | 
                                                        |
| 593 | +    if ($args['readonly']) { | 
                                                        |
| 594 | 594 | $options .= ' readonly';  | 
                                                        
| 595 | 595 | }  | 
                                                        
| 596 | -    if( $args['readonly'] ) { | 
                                                        |
| 596 | +    if ($args['readonly']) { | 
                                                        |
| 597 | 597 | $options .= ' readonly';  | 
                                                        
| 598 | 598 | }  | 
                                                        
| 599 | 599 | |
| 600 | 600 | $data = '';  | 
                                                        
| 601 | -    if ( !empty( $args['data'] ) ) { | 
                                                        |
| 602 | -        foreach ( $args['data'] as $key => $value ) { | 
                                                        |
| 603 | - $data .= 'data-' . wpinv_sanitize_key( $key ) . '="' . esc_attr( $value ) . '" ';  | 
                                                        |
| 601 | +    if (!empty($args['data'])) { | 
                                                        |
| 602 | +        foreach ($args['data'] as $key => $value) { | 
                                                        |
| 603 | + $data .= 'data-' . wpinv_sanitize_key($key) . '="' . esc_attr($value) . '" ';  | 
                                                        |
| 604 | 604 | }  | 
                                                        
| 605 | 605 | }  | 
                                                        
| 606 | 606 | |
| 607 | - $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">';  | 
                                                        |
| 608 | - $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['id'] ) . '">' . esc_html( $args['label'] ) . '</label>';  | 
                                                        |
| 609 | -    if ( ! empty( $args['desc'] ) ) { | 
                                                        |
| 610 | - $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>';  | 
                                                        |
| 607 | + $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">';  | 
                                                        |
| 608 | + $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['id']) . '">' . esc_html($args['label']) . '</label>';  | 
                                                        |
| 609 | +    if (!empty($args['desc'])) { | 
                                                        |
| 610 | + $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>';  | 
                                                        |
| 611 | 611 | }  | 
                                                        
| 612 | 612 | |
| 613 | - $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 ) . '/>';  | 
                                                        |
| 613 | + $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) . '/>';  | 
                                                        |
| 614 | 614 | |
| 615 | 615 | $output .= '</span>';  | 
                                                        
| 616 | 616 | |
| 617 | 617 | return $output;  | 
                                                        
| 618 | 618 | }  | 
                                                        
| 619 | 619 | |
| 620 | -function wpinv_html_date_field( $args = array() ) { | 
                                                        |
| 621 | -    if( empty( $args['class'] ) ) { | 
                                                        |
| 620 | +function wpinv_html_date_field($args = array()) { | 
                                                        |
| 621 | +    if (empty($args['class'])) { | 
                                                        |
| 622 | 622 | $args['class'] = 'wpiDatepicker';  | 
                                                        
| 623 | -    } elseif( ! strpos( $args['class'], 'wpiDatepicker' ) ) { | 
                                                        |
| 623 | +    } elseif (!strpos($args['class'], 'wpiDatepicker')) { | 
                                                        |
| 624 | 624 | $args['class'] .= ' wpiDatepicker';  | 
                                                        
| 625 | 625 | }  | 
                                                        
| 626 | 626 | |
| 627 | - return wpinv_html_text( $args );  | 
                                                        |
| 627 | + return wpinv_html_text($args);  | 
                                                        |
| 628 | 628 | }  | 
                                                        
| 629 | 629 | |
| 630 | -function wpinv_html_textarea( $args = array() ) { | 
                                                        |
| 630 | +function wpinv_html_textarea($args = array()) { | 
                                                        |
| 631 | 631 | $defaults = array(  | 
                                                        
| 632 | 632 | 'name' => 'textarea',  | 
                                                        
| 633 | 633 | 'value' => null,  | 
                                                        
@@ -637,31 +637,31 @@ discard block  | 
                                                    ||
| 637 | 637 | 'disabled' => false  | 
                                                        
| 638 | 638 | );  | 
                                                        
| 639 | 639 | |
| 640 | - $args = wp_parse_args( $args, $defaults );  | 
                                                        |
| 640 | + $args = wp_parse_args($args, $defaults);  | 
                                                        |
| 641 | 641 | |
| 642 | - $class = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $args['class'] ) ) );  | 
                                                        |
| 642 | +    $class = implode(' ', array_map('sanitize_html_class', explode(' ', $args['class']))); | 
                                                        |
| 643 | 643 | $disabled = '';  | 
                                                        
| 644 | -    if( $args['disabled'] ) { | 
                                                        |
| 644 | +    if ($args['disabled']) { | 
                                                        |
| 645 | 645 | $disabled = ' disabled="disabled"';  | 
                                                        
| 646 | 646 | }  | 
                                                        
| 647 | 647 | |
| 648 | - $output = '<span id="wpinv-' . wpinv_sanitize_key( $args['name'] ) . '-wrap">';  | 
                                                        |
| 649 | - $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key( $args['name'] ) . '">' . esc_html( $args['label'] ) . '</label>';  | 
                                                        |
| 650 | - $output .= '<textarea name="' . esc_attr( $args['name'] ) . '" id="' . wpinv_sanitize_key( $args['name'] ) . '" class="' . $class . '"' . $disabled . '>' . esc_attr( $args['value'] ) . '</textarea>';  | 
                                                        |
| 648 | + $output = '<span id="wpinv-' . wpinv_sanitize_key($args['name']) . '-wrap">';  | 
                                                        |
| 649 | + $output .= '<label class="wpinv-label" for="' . wpinv_sanitize_key($args['name']) . '">' . esc_html($args['label']) . '</label>';  | 
                                                        |
| 650 | + $output .= '<textarea name="' . esc_attr($args['name']) . '" id="' . wpinv_sanitize_key($args['name']) . '" class="' . $class . '"' . $disabled . '>' . esc_attr($args['value']) . '</textarea>';  | 
                                                        |
| 651 | 651 | |
| 652 | -    if ( ! empty( $args['desc'] ) ) { | 
                                                        |
| 653 | - $output .= '<span class="wpinv-description">' . esc_html( $args['desc'] ) . '</span>';  | 
                                                        |
| 652 | +    if (!empty($args['desc'])) { | 
                                                        |
| 653 | + $output .= '<span class="wpinv-description">' . esc_html($args['desc']) . '</span>';  | 
                                                        |
| 654 | 654 | }  | 
                                                        
| 655 | 655 | $output .= '</span>';  | 
                                                        
| 656 | 656 | |
| 657 | 657 | return $output;  | 
                                                        
| 658 | 658 | }  | 
                                                        
| 659 | 659 | |
| 660 | -function wpinv_html_ajax_user_search( $args = array() ) { | 
                                                        |
| 660 | +function wpinv_html_ajax_user_search($args = array()) { | 
                                                        |
| 661 | 661 | $defaults = array(  | 
                                                        
| 662 | 662 | 'name' => 'user_id',  | 
                                                        
| 663 | 663 | 'value' => null,  | 
                                                        
| 664 | - 'placeholder' => __( 'Enter username', 'invoicing' ),  | 
                                                        |
| 664 | +        'placeholder' => __('Enter username', 'invoicing'), | 
                                                        |
| 665 | 665 | 'label' => null,  | 
                                                        
| 666 | 666 | 'desc' => null,  | 
                                                        
| 667 | 667 | 'class' => '',  | 
                                                        
@@ -670,13 +670,13 @@ discard block  | 
                                                    ||
| 670 | 670 | 'data' => false  | 
                                                        
| 671 | 671 | );  | 
                                                        
| 672 | 672 | |
| 673 | - $args = wp_parse_args( $args, $defaults );  | 
                                                        |
| 673 | + $args = wp_parse_args($args, $defaults);  | 
                                                        |
| 674 | 674 | |
| 675 | 675 | $args['class'] = 'wpinv-ajax-user-search ' . $args['class'];  | 
                                                        
| 676 | 676 | |
| 677 | 677 | $output = '<span class="wpinv_user_search_wrap">';  | 
                                                        
| 678 | - $output .= wpinv_html_text( $args );  | 
                                                        |
| 679 | - $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>';  | 
                                                        |
| 678 | + $output .= wpinv_html_text($args);  | 
                                                        |
| 679 | +        $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>'; | 
                                                        |
| 680 | 680 | $output .= '</span>';  | 
                                                        
| 681 | 681 | |
| 682 | 682 | return $output;  | 
                                                        
@@ -685,7 +685,7 @@ discard block  | 
                                                    ||
| 685 | 685 |  function wpinv_ip_geolocation() { | 
                                                        
| 686 | 686 | global $wpinv_euvat;  | 
                                                        
| 687 | 687 | |
| 688 | - $ip = !empty( $_GET['ip'] ) ? sanitize_text_field( $_GET['ip'] ) : '';  | 
                                                        |
| 688 | + $ip = !empty($_GET['ip']) ? sanitize_text_field($_GET['ip']) : '';  | 
                                                        |
| 689 | 689 | $content = '';  | 
                                                        
| 690 | 690 | $iso = '';  | 
                                                        
| 691 | 691 | $country = '';  | 
                                                        
@@ -696,69 +696,69 @@ discard block  | 
                                                    ||
| 696 | 696 | $credit = '';  | 
                                                        
| 697 | 697 | $address = '';  | 
                                                        
| 698 | 698 | |
| 699 | -    if ( wpinv_get_option( 'vat_ip_lookup' ) == 'geoip2' && $geoip2_city = $wpinv_euvat->geoip2_city_record( $ip ) ) { | 
                                                        |
| 699 | +    if (wpinv_get_option('vat_ip_lookup') == 'geoip2' && $geoip2_city = $wpinv_euvat->geoip2_city_record($ip)) { | 
                                                        |
| 700 | 700 |          try { | 
                                                        
| 701 | 701 | $iso = $geoip2_city->country->isoCode;  | 
                                                        
| 702 | 702 | $country = $geoip2_city->country->name;  | 
                                                        
| 703 | - $region = !empty( $geoip2_city->subdivisions ) && !empty( $geoip2_city->subdivisions[0]->name ) ? $geoip2_city->subdivisions[0]->name : '';  | 
                                                        |
| 703 | + $region = !empty($geoip2_city->subdivisions) && !empty($geoip2_city->subdivisions[0]->name) ? $geoip2_city->subdivisions[0]->name : '';  | 
                                                        |
| 704 | 704 | $city = $geoip2_city->city->name;  | 
                                                        
| 705 | 705 | $longitude = $geoip2_city->location->longitude;  | 
                                                        
| 706 | 706 | $latitude = $geoip2_city->location->latitude;  | 
                                                        
| 707 | - $credit = __( 'Geolocated using the information by MaxMind, available from <a href="http://www.maxmind.com" target="_blank">www.maxmind.com</a>', 'invoicing' );  | 
                                                        |
| 708 | -        } catch( Exception $e ) { } | 
                                                        |
| 707 | +            $credit     = __('Geolocated using the information by MaxMind, available from <a href="http://www.maxmind.com" target="_blank">www.maxmind.com</a>', 'invoicing'); | 
                                                        |
| 708 | +        } catch (Exception $e) { } | 
                                                        |
| 709 | 709 | }  | 
                                                        
| 710 | 710 | |
| 711 | -    if ( !( $iso && $longitude && $latitude ) && function_exists( 'simplexml_load_file' ) ) { | 
                                                        |
| 711 | +    if (!($iso && $longitude && $latitude) && function_exists('simplexml_load_file')) { | 
                                                        |
| 712 | 712 |          try { | 
                                                        
| 713 | - $load_xml = simplexml_load_file( 'http://www.geoplugin.net/xml.gp?ip=' . $ip );  | 
                                                        |
| 713 | +            $load_xml = simplexml_load_file('http://www.geoplugin.net/xml.gp?ip=' . $ip); | 
                                                        |
| 714 | 714 | |
| 715 | -            if ( !empty( $load_xml ) && isset( $load_xml->geoplugin_countryCode ) && !empty( $load_xml->geoplugin_latitude ) && !empty( $load_xml->geoplugin_longitude ) ) { | 
                                                        |
| 715 | +            if (!empty($load_xml) && isset($load_xml->geoplugin_countryCode) && !empty($load_xml->geoplugin_latitude) && !empty($load_xml->geoplugin_longitude)) { | 
                                                        |
| 716 | 716 | $iso = $load_xml->geoplugin_countryCode;  | 
                                                        
| 717 | 717 | $country = $load_xml->geoplugin_countryName;  | 
                                                        
| 718 | - $region = !empty( $load_xml->geoplugin_regionName ) ? $load_xml->geoplugin_regionName : '';  | 
                                                        |
| 719 | - $city = !empty( $load_xml->geoplugin_city ) ? $load_xml->geoplugin_city : '';  | 
                                                        |
| 718 | + $region = !empty($load_xml->geoplugin_regionName) ? $load_xml->geoplugin_regionName : '';  | 
                                                        |
| 719 | + $city = !empty($load_xml->geoplugin_city) ? $load_xml->geoplugin_city : '';  | 
                                                        |
| 720 | 720 | $longitude = $load_xml->geoplugin_longitude;  | 
                                                        
| 721 | 721 | $latitude = $load_xml->geoplugin_latitude;  | 
                                                        
| 722 | 722 | $credit = $load_xml->geoplugin_credit;  | 
                                                        
| 723 | - $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;  | 
                                                        |
| 723 | +                $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; | 
                                                        |
| 724 | 724 | }  | 
                                                        
| 725 | -        } catch( Exception $e ) { } | 
                                                        |
| 725 | +        } catch (Exception $e) { } | 
                                                        |
| 726 | 726 | }  | 
                                                        
| 727 | 727 | |
| 728 | -    if ( $iso && $longitude && $latitude ) { | 
                                                        |
| 729 | -        if ( $city ) { | 
                                                        |
| 728 | +    if ($iso && $longitude && $latitude) { | 
                                                        |
| 729 | +        if ($city) { | 
                                                        |
| 730 | 730 | $address .= $city . ', ';  | 
                                                        
| 731 | 731 | }  | 
                                                        
| 732 | 732 | |
| 733 | -        if ( $region ) { | 
                                                        |
| 733 | +        if ($region) { | 
                                                        |
| 734 | 734 | $address .= $region . ', ';  | 
                                                        
| 735 | 735 | }  | 
                                                        
| 736 | 736 | |
| 737 | 737 |          $address .= $country . ' (' . $iso . ')'; | 
                                                        
| 738 | - $content = '<p>'. sprintf( __( '<b>Address:</b> %s', 'invoicing' ), $address ) . '</p>';  | 
                                                        |
| 739 | - $content .= '<p>'. $credit . '</p>';  | 
                                                        |
| 738 | +        $content = '<p>' . sprintf(__('<b>Address:</b> %s', 'invoicing'), $address) . '</p>'; | 
                                                        |
| 739 | + $content .= '<p>' . $credit . '</p>';  | 
                                                        |
| 740 | 740 |      } else { | 
                                                        
| 741 | - $content = '<p>'. sprintf( __( 'Unable to find geolocation for the IP address: %s', 'invoicing' ), $ip ) . '</p>';  | 
                                                        |
| 741 | +        $content = '<p>' . sprintf(__('Unable to find geolocation for the IP address: %s', 'invoicing'), $ip) . '</p>'; | 
                                                        |
| 742 | 742 | }  | 
                                                        
| 743 | 743 | ?>  | 
                                                        
| 744 | 744 | <!DOCTYPE html>  | 
                                                        
| 745 | -<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> | 
                                                        |
| 745 | +<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> | 
                                                        |
| 746 | 746 | <body>  | 
                                                        
| 747 | -    <?php if ( $latitude && $latitude ) { ?> | 
                                                        |
| 747 | +    <?php if ($latitude && $latitude) { ?> | 
                                                        |
| 748 | 748 | <div id="map"></div>  | 
                                                        
| 749 | 749 | <script src="//cdnjs.cloudflare.com/ajax/libs/leaflet/1.0.0-rc.1/leaflet.js"></script>  | 
                                                        
| 750 | 750 | <script type="text/javascript">  | 
                                                        
| 751 | 751 |          var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', | 
                                                        
| 752 | 752 | osmAttrib = '© <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',  | 
                                                        
| 753 | 753 |              osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution: osmAttrib}), | 
                                                        
| 754 | - latlng = new L.LatLng(<?php echo $latitude;?>, <?php echo $longitude;?>);  | 
                                                        |
| 754 | + latlng = new L.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>);  | 
                                                        |
| 755 | 755 | |
| 756 | 756 |          var map = new L.Map('map', {center: latlng, zoom: 12, layers: [osm]}); | 
                                                        
| 757 | 757 | |
| 758 | 758 | var marker = new L.Marker(latlng);  | 
                                                        
| 759 | 759 | map.addLayer(marker);  | 
                                                        
| 760 | 760 | |
| 761 | -        marker.bindPopup("<p><?php esc_attr_e( $address );?></p>"); | 
                                                        |
| 761 | +        marker.bindPopup("<p><?php esc_attr_e($address); ?></p>"); | 
                                                        |
| 762 | 762 | </script>  | 
                                                        
| 763 | 763 | <?php } ?>  | 
                                                        
| 764 | 764 | <div style="height:100px"><?php echo $content; ?></div>  | 
                                                        
@@ -766,18 +766,18 @@ discard block  | 
                                                    ||
| 766 | 766 | <?php  | 
                                                        
| 767 | 767 | exit;  | 
                                                        
| 768 | 768 | }  | 
                                                        
| 769 | -add_action( 'wp_ajax_wpinv_ip_geolocation', 'wpinv_ip_geolocation' );  | 
                                                        |
| 770 | -add_action( 'wp_ajax_nopriv_wpinv_ip_geolocation', 'wpinv_ip_geolocation' );  | 
                                                        |
| 769 | +add_action('wp_ajax_wpinv_ip_geolocation', 'wpinv_ip_geolocation'); | 
                                                        |
| 770 | +add_action('wp_ajax_nopriv_wpinv_ip_geolocation', 'wpinv_ip_geolocation'); | 
                                                        |
| 771 | 771 | |
| 772 | 772 | // Set up the template for the invoice.  | 
                                                        
| 773 | -function wpinv_template( $template ) { | 
                                                        |
| 773 | +function wpinv_template($template) { | 
                                                        |
| 774 | 774 | global $post, $wp_query;  | 
                                                        
| 775 | 775 | |
| 776 | -    if ( ( is_single() || is_404() ) && !empty( $post->ID ) && (get_post_type( $post->ID ) == 'wpi_invoice' or get_post_type( $post->ID ) == 'wpi_quote')) { | 
                                                        |
| 777 | -        if ( wpinv_user_can_view_invoice( $post->ID ) ) { | 
                                                        |
| 778 | - $template = wpinv_get_template_part( 'wpinv-invoice-print', false, false );  | 
                                                        |
| 776 | +    if ((is_single() || is_404()) && !empty($post->ID) && (get_post_type($post->ID) == 'wpi_invoice' or get_post_type($post->ID) == 'wpi_quote')) { | 
                                                        |
| 777 | +        if (wpinv_user_can_view_invoice($post->ID)) { | 
                                                        |
| 778 | +            $template = wpinv_get_template_part('wpinv-invoice-print', false, false); | 
                                                        |
| 779 | 779 |          } else { | 
                                                        
| 780 | - $template = wpinv_get_template_part( 'wpinv-invalid-access', false, false );  | 
                                                        |
| 780 | +            $template = wpinv_get_template_part('wpinv-invalid-access', false, false); | 
                                                        |
| 781 | 781 | }  | 
                                                        
| 782 | 782 | }  | 
                                                        
| 783 | 783 | |
@@ -786,7 +786,7 @@ discard block  | 
                                                    ||
| 786 | 786 | |
| 787 | 787 |  function wpinv_get_business_address() { | 
                                                        
| 788 | 788 | $business_address = wpinv_store_address();  | 
                                                        
| 789 | - $business_address = !empty( $business_address ) ? wpautop( wp_kses_post( $business_address ) ) : '';  | 
                                                        |
| 789 | + $business_address = !empty($business_address) ? wpautop(wp_kses_post($business_address)) : '';  | 
                                                        |
| 790 | 790 | |
| 791 | 791 | /*  | 
                                                        
| 792 | 792 | $default_country = wpinv_get_default_country();  | 
                                                        
@@ -810,7 +810,7 @@ discard block  | 
                                                    ||
| 810 | 810 | |
| 811 | 811 | $business_address = $business_address ? '<div class="address">' . $business_address . '</div>' : '';  | 
                                                        
| 812 | 812 | |
| 813 | - return apply_filters( 'wpinv_get_business_address', $business_address );  | 
                                                        |
| 813 | +    return apply_filters('wpinv_get_business_address', $business_address); | 
                                                        |
| 814 | 814 | }  | 
                                                        
| 815 | 815 | |
| 816 | 816 |  function wpinv_display_from_address() { | 
                                                        
@@ -820,107 +820,107 @@ discard block  | 
                                                    ||
| 820 | 820 |      if (empty($from_name)) { | 
                                                        
| 821 | 821 | $from_name = wpinv_get_business_name();  | 
                                                        
| 822 | 822 | }  | 
                                                        
| 823 | - ?><div class="from col-xs-2"><strong><?php _e( 'From:', 'invoicing' ) ?></strong></div>  | 
                                                        |
| 823 | +    ?><div class="from col-xs-2"><strong><?php _e('From:', 'invoicing') ?></strong></div> | 
                                                        |
| 824 | 824 | <div class="wrapper col-xs-10">  | 
                                                        
| 825 | - <div class="name"><?php echo esc_html( $from_name ); ?></div>  | 
                                                        |
| 826 | -        <?php if ( $address = wpinv_get_business_address() ) { ?> | 
                                                        |
| 827 | - <div class="address"><?php echo wpautop( wp_kses_post( $address ) );?></div>  | 
                                                        |
| 825 | + <div class="name"><?php echo esc_html($from_name); ?></div>  | 
                                                        |
| 826 | +        <?php if ($address = wpinv_get_business_address()) { ?> | 
                                                        |
| 827 | + <div class="address"><?php echo wpautop(wp_kses_post($address)); ?></div>  | 
                                                        |
| 828 | 828 | <?php } ?>  | 
                                                        
| 829 | -        <?php if ( $email_from = wpinv_mail_get_from_address() ) { ?> | 
                                                        |
| 830 | - <div class="email_from"><?php echo wp_sprintf( __( 'Email: %s', 'invoicing' ), $email_from );?></div>  | 
                                                        |
| 829 | +        <?php if ($email_from = wpinv_mail_get_from_address()) { ?> | 
                                                        |
| 830 | +        <div class="email_from"><?php echo wp_sprintf(__('Email: %s', 'invoicing'), $email_from); ?></div> | 
                                                        |
| 831 | 831 | <?php } ?>  | 
                                                        
| 832 | 832 | </div>  | 
                                                        
| 833 | 833 | <?php  | 
                                                        
| 834 | 834 | }  | 
                                                        
| 835 | 835 | |
| 836 | -function wpinv_watermark( $id = 0 ) { | 
                                                        |
| 837 | - $output = wpinv_get_watermark( $id );  | 
                                                        |
| 836 | +function wpinv_watermark($id = 0) { | 
                                                        |
| 837 | + $output = wpinv_get_watermark($id);  | 
                                                        |
| 838 | 838 | |
| 839 | - return apply_filters( 'wpinv_get_watermark', $output, $id );  | 
                                                        |
| 839 | +    return apply_filters('wpinv_get_watermark', $output, $id); | 
                                                        |
| 840 | 840 | }  | 
                                                        
| 841 | 841 | |
| 842 | -function wpinv_get_watermark( $id ) { | 
                                                        |
| 843 | -    if ( !$id > 0 ) { | 
                                                        |
| 842 | +function wpinv_get_watermark($id) { | 
                                                        |
| 843 | +    if (!$id > 0) { | 
                                                        |
| 844 | 844 | return NULL;  | 
                                                        
| 845 | 845 | }  | 
                                                        
| 846 | - $invoice = wpinv_get_invoice( $id );  | 
                                                        |
| 846 | + $invoice = wpinv_get_invoice($id);  | 
                                                        |
| 847 | 847 | |
| 848 | -    if ( !empty( $invoice ) && "wpi_invoice" === $invoice->post_type ) { | 
                                                        |
| 849 | -        if ( $invoice->is_paid() ) { | 
                                                        |
| 850 | - return __( 'Paid', 'invoicing' );  | 
                                                        |
| 848 | +    if (!empty($invoice) && "wpi_invoice" === $invoice->post_type) { | 
                                                        |
| 849 | +        if ($invoice->is_paid()) { | 
                                                        |
| 850 | +            return __('Paid', 'invoicing'); | 
                                                        |
| 851 | 851 | }  | 
                                                        
| 852 | -        if ( $invoice->is_refunded() ) { | 
                                                        |
| 853 | - return __( 'Refunded', 'invoicing' );  | 
                                                        |
| 852 | +        if ($invoice->is_refunded()) { | 
                                                        |
| 853 | +            return __('Refunded', 'invoicing'); | 
                                                        |
| 854 | 854 | }  | 
                                                        
| 855 | -        if ( $invoice->has_status( array( 'wpi-cancelled' ) ) ) { | 
                                                        |
| 856 | - return __( 'Cancelled', 'invoicing' );  | 
                                                        |
| 855 | +        if ($invoice->has_status(array('wpi-cancelled'))) { | 
                                                        |
| 856 | +            return __('Cancelled', 'invoicing'); | 
                                                        |
| 857 | 857 | }  | 
                                                        
| 858 | 858 | }  | 
                                                        
| 859 | 859 | |
| 860 | 860 | return NULL;  | 
                                                        
| 861 | 861 | }  | 
                                                        
| 862 | 862 | |
| 863 | -function wpinv_display_invoice_details( $invoice ) { | 
                                                        |
| 863 | +function wpinv_display_invoice_details($invoice) { | 
                                                        |
| 864 | 864 | global $wpinv_euvat;  | 
                                                        
| 865 | 865 | |
| 866 | 866 | $invoice_id = $invoice->ID;  | 
                                                        
| 867 | 867 | $vat_name = $wpinv_euvat->get_vat_name();  | 
                                                        
| 868 | 868 | $use_taxes = wpinv_use_taxes();  | 
                                                        
| 869 | 869 | |
| 870 | - $invoice_status = wpinv_get_invoice_status( $invoice_id );  | 
                                                        |
| 870 | + $invoice_status = wpinv_get_invoice_status($invoice_id);  | 
                                                        |
| 871 | 871 | ?>  | 
                                                        
| 872 | 872 | <table class="table table-bordered table-sm">  | 
                                                        
| 873 | -        <?php if ( $invoice_number = wpinv_get_invoice_number( $invoice_id ) ) { ?> | 
                                                        |
| 873 | +        <?php if ($invoice_number = wpinv_get_invoice_number($invoice_id)) { ?> | 
                                                        |
| 874 | 874 | <tr class="wpi-row-number">  | 
                                                        
| 875 | - <th><?php echo apply_filters( 'wpinv_invoice_number_label', __( 'Invoice Number', 'invoicing' ), $invoice ); ?></th>  | 
                                                        |
| 876 | - <td><?php echo esc_html( $invoice_number ); ?></td>  | 
                                                        |
| 875 | +                <th><?php echo apply_filters('wpinv_invoice_number_label', __('Invoice Number', 'invoicing'), $invoice); ?></th> | 
                                                        |
| 876 | + <td><?php echo esc_html($invoice_number); ?></td>  | 
                                                        |
| 877 | 877 | </tr>  | 
                                                        
| 878 | 878 | <?php } ?>  | 
                                                        
| 879 | 879 | <tr class="wpi-row-status">  | 
                                                        
| 880 | - <th><?php echo apply_filters( 'wpinv_invoice_status_label', __( 'Invoice Status', 'invoicing' ), $invoice ); ?></th>  | 
                                                        |
| 881 | - <td><?php echo wpinv_invoice_status_label( $invoice_status, wpinv_get_invoice_status( $invoice_id, true ) ); ?></td>  | 
                                                        |
| 880 | +            <th><?php echo apply_filters('wpinv_invoice_status_label', __('Invoice Status', 'invoicing'), $invoice); ?></th> | 
                                                        |
| 881 | + <td><?php echo wpinv_invoice_status_label($invoice_status, wpinv_get_invoice_status($invoice_id, true)); ?></td>  | 
                                                        |
| 882 | 882 | </tr>  | 
                                                        
| 883 | -        <?php if ( $invoice->is_renewal() ) { ?> | 
                                                        |
| 883 | +        <?php if ($invoice->is_renewal()) { ?> | 
                                                        |
| 884 | 884 | <tr class="wpi-row-parent">  | 
                                                        
| 885 | - <th><?php echo apply_filters( 'wpinv_invoice_parent_invoice_label', __( 'Parent Invoice', 'invoicing' ), $invoice ); ?></th>  | 
                                                        |
| 886 | - <td><?php echo wpinv_invoice_link( $invoice->parent_invoice ); ?></td>  | 
                                                        |
| 885 | +            <th><?php echo apply_filters('wpinv_invoice_parent_invoice_label', __('Parent Invoice', 'invoicing'), $invoice); ?></th> | 
                                                        |
| 886 | + <td><?php echo wpinv_invoice_link($invoice->parent_invoice); ?></td>  | 
                                                        |
| 887 | 887 | </tr>  | 
                                                        
| 888 | 888 | <?php } ?>  | 
                                                        
| 889 | -        <?php if ( ( $gateway_name = wpinv_get_payment_gateway_name( $invoice_id ) ) && ( $invoice->is_paid() || $invoice->is_refunded() ) ) { ?> | 
                                                        |
| 889 | +        <?php if (($gateway_name = wpinv_get_payment_gateway_name($invoice_id)) && ($invoice->is_paid() || $invoice->is_refunded())) { ?> | 
                                                        |
| 890 | 890 | <tr class="wpi-row-gateway">  | 
                                                        
| 891 | - <th><?php echo apply_filters( 'wpinv_invoice_payment_method_label', __( 'Payment Method', 'invoicing' ), $invoice ); ?></th>  | 
                                                        |
| 891 | +                <th><?php echo apply_filters('wpinv_invoice_payment_method_label', __('Payment Method', 'invoicing'), $invoice); ?></th> | 
                                                        |
| 892 | 892 | <td><?php echo $gateway_name; ?></td>  | 
                                                        
| 893 | 893 | </tr>  | 
                                                        
| 894 | 894 | <?php } ?>  | 
                                                        
| 895 | -        <?php if ( $invoice_date = wpinv_get_invoice_date( $invoice_id ) ) { ?> | 
                                                        |
| 895 | +        <?php if ($invoice_date = wpinv_get_invoice_date($invoice_id)) { ?> | 
                                                        |
| 896 | 896 | <tr class="wpi-row-date">  | 
                                                        
| 897 | - <th><?php echo apply_filters( 'wpinv_invoice_date_label', __( 'Invoice Date', 'invoicing' ), $invoice ); ?></th>  | 
                                                        |
| 897 | +                <th><?php echo apply_filters('wpinv_invoice_date_label', __('Invoice Date', 'invoicing'), $invoice); ?></th> | 
                                                        |
| 898 | 898 | <td><?php echo $invoice_date; ?></td>  | 
                                                        
| 899 | 899 | </tr>  | 
                                                        
| 900 | 900 | <?php } ?>  | 
                                                        
| 901 | -        <?php if ( wpinv_get_option( 'overdue_active' ) && $invoice->needs_payment() && ( $due_date = $invoice->get_due_date( true ) ) ) { ?> | 
                                                        |
| 901 | +        <?php if (wpinv_get_option('overdue_active') && $invoice->needs_payment() && ($due_date = $invoice->get_due_date(true))) { ?> | 
                                                        |
| 902 | 902 | <tr class="wpi-row-date">  | 
                                                        
| 903 | - <th><?php echo apply_filters( 'wpinv_invoice_due_date_label', __( 'Due Date', 'invoicing' ), $invoice ); ?></th>  | 
                                                        |
| 903 | +                <th><?php echo apply_filters('wpinv_invoice_due_date_label', __('Due Date', 'invoicing'), $invoice); ?></th> | 
                                                        |
| 904 | 904 | <td><?php echo $due_date; ?></td>  | 
                                                        
| 905 | 905 | </tr>  | 
                                                        
| 906 | 906 | <?php } ?>  | 
                                                        
| 907 | - <?php do_action( 'wpinv_display_details_before_due_date', $invoice_id ); ?>  | 
                                                        |
| 908 | -        <?php if ( $owner_vat_number = $wpinv_euvat->get_vat_number() ) { ?> | 
                                                        |
| 907 | +        <?php do_action('wpinv_display_details_before_due_date', $invoice_id); ?> | 
                                                        |
| 908 | +        <?php if ($owner_vat_number = $wpinv_euvat->get_vat_number()) { ?> | 
                                                        |
| 909 | 909 | <tr class="wpi-row-ovatno">  | 
                                                        
| 910 | - <th><?php echo apply_filters( 'wpinv_invoice_owner_vat_number_label', wp_sprintf( __( 'Owner %s Number', 'invoicing' ), $vat_name ), $invoice, $vat_name ); ?></th>  | 
                                                        |
| 910 | +                <th><?php echo apply_filters('wpinv_invoice_owner_vat_number_label', wp_sprintf(__('Owner %s Number', 'invoicing'), $vat_name), $invoice, $vat_name); ?></th> | 
                                                        |
| 911 | 911 | <td><?php echo $owner_vat_number; ?></td>  | 
                                                        
| 912 | 912 | </tr>  | 
                                                        
| 913 | 913 | <?php } ?>  | 
                                                        
| 914 | - <?php do_action( 'wpinv_display_details_after_due_date', $invoice_id ); ?>  | 
                                                        |
| 915 | -        <?php if ( $use_taxes && ( $user_vat_number = wpinv_get_invoice_vat_number( $invoice_id ) ) ) { ?> | 
                                                        |
| 914 | +        <?php do_action('wpinv_display_details_after_due_date', $invoice_id); ?> | 
                                                        |
| 915 | +        <?php if ($use_taxes && ($user_vat_number = wpinv_get_invoice_vat_number($invoice_id))) { ?> | 
                                                        |
| 916 | 916 | <tr class="wpi-row-uvatno">  | 
                                                        
| 917 | - <th><?php echo apply_filters( 'wpinv_invoice_user_vat_number_label', wp_sprintf( __( 'Invoice %s Number', 'invoicing' ), $vat_name ), $invoice, $vat_name ); ?></th>  | 
                                                        |
| 917 | +                <th><?php echo apply_filters('wpinv_invoice_user_vat_number_label', wp_sprintf(__('Invoice %s Number', 'invoicing'), $vat_name), $invoice, $vat_name); ?></th> | 
                                                        |
| 918 | 918 | <td><?php echo $user_vat_number; ?></td>  | 
                                                        
| 919 | 919 | </tr>  | 
                                                        
| 920 | 920 | <?php } ?>  | 
                                                        
| 921 | 921 | <tr class="table-active tr-total wpi-row-total">  | 
                                                        
| 922 | - <th><strong><?php _e( 'Total Amount', 'invoicing' ) ?></strong></th>  | 
                                                        |
| 923 | - <td><strong><?php echo wpinv_payment_total( $invoice_id, true ); ?></strong></td>  | 
                                                        |
| 922 | +            <th><strong><?php _e('Total Amount', 'invoicing') ?></strong></th> | 
                                                        |
| 923 | + <td><strong><?php echo wpinv_payment_total($invoice_id, true); ?></strong></td>  | 
                                                        |
| 924 | 924 | </tr>  | 
                                                        
| 925 | 925 | </table>  | 
                                                        
| 926 | 926 | <?php  | 
                                                        
@@ -936,84 +936,84 @@ discard block  | 
                                                    ||
| 936 | 936 | * @param string $separator How to separate address lines.  | 
                                                        
| 937 | 937 | * @return string  | 
                                                        
| 938 | 938 | */  | 
                                                        
| 939 | -function wpinv_get_invoice_address_markup( $billing_details, $separator = '<br/>' ) { | 
                                                        |
| 939 | +function wpinv_get_invoice_address_markup($billing_details, $separator = '<br/>') { | 
                                                        |
| 940 | 940 | |
| 941 | 941 | // Retrieve the address markup...  | 
                                                        
| 942 | - $country= empty( $billing_details['country'] ) ? '' : $billing_details['country'];  | 
                                                        |
| 943 | - $format = wpinv_get_full_address_format( $country );  | 
                                                        |
| 942 | + $country = empty($billing_details['country']) ? '' : $billing_details['country'];  | 
                                                        |
| 943 | + $format = wpinv_get_full_address_format($country);  | 
                                                        |
| 944 | 944 | |
| 945 | 945 | // ... and the replacements.  | 
                                                        
| 946 | - $replacements = wpinv_get_invoice_address_replacements( $billing_details );  | 
                                                        |
| 946 | + $replacements = wpinv_get_invoice_address_replacements($billing_details);  | 
                                                        |
| 947 | 947 | |
| 948 | - $formatted_address = str_ireplace( array_keys( $replacements ), $replacements, $format );  | 
                                                        |
| 948 | + $formatted_address = str_ireplace(array_keys($replacements), $replacements, $format);  | 
                                                        |
| 949 | 949 | |
| 950 | 950 | // Remove unavailable tags.  | 
                                                        
| 951 | -    $formatted_address = preg_replace( "/\{\{\w+\}\}/", '', $formatted_address ); | 
                                                        |
| 951 | +    $formatted_address = preg_replace("/\{\{\w+\}\}/", '', $formatted_address); | 
                                                        |
| 952 | 952 | |
| 953 | 953 | // Clean up white space.  | 
                                                        
| 954 | - $formatted_address = preg_replace( '/ +/', ' ', trim( $formatted_address ) );  | 
                                                        |
| 955 | - $formatted_address = preg_replace( '/\n\n+/', "\n", $formatted_address );  | 
                                                        |
| 954 | +	$formatted_address = preg_replace('/  +/', ' ', trim($formatted_address)); | 
                                                        |
| 955 | +    $formatted_address = preg_replace('/\n\n+/', "\n", $formatted_address); | 
                                                        |
| 956 | 956 | |
| 957 | 957 | // Break newlines apart and remove empty lines/trim commas and white space.  | 
                                                        
| 958 | - $formatted_address = array_filter( array_map( 'wpinv_trim_formatted_address_line', explode( "\n", $formatted_address ) ) );  | 
                                                        |
| 958 | +	$formatted_address = array_filter(array_map('wpinv_trim_formatted_address_line', explode("\n", $formatted_address))); | 
                                                        |
| 959 | 959 | |
| 960 | 960 | // Add html breaks.  | 
                                                        
| 961 | - $formatted_address = implode( $separator, $formatted_address );  | 
                                                        |
| 961 | + $formatted_address = implode($separator, $formatted_address);  | 
                                                        |
| 962 | 962 | |
| 963 | 963 | // We're done!  | 
                                                        
| 964 | 964 | return $formatted_address;  | 
                                                        
| 965 | 965 | |
| 966 | 966 | }  | 
                                                        
| 967 | 967 | |
| 968 | -function wpinv_display_to_address( $invoice_id = 0 ) { | 
                                                        |
| 969 | - $invoice = wpinv_get_invoice( $invoice_id );  | 
                                                        |
| 968 | +function wpinv_display_to_address($invoice_id = 0) { | 
                                                        |
| 969 | + $invoice = wpinv_get_invoice($invoice_id);  | 
                                                        |
| 970 | 970 | |
| 971 | -    if ( empty( $invoice ) ) { | 
                                                        |
| 971 | +    if (empty($invoice)) { | 
                                                        |
| 972 | 972 | return NULL;  | 
                                                        
| 973 | 973 | }  | 
                                                        
| 974 | 974 | |
| 975 | 975 | $billing_details = $invoice->get_user_info();  | 
                                                        
| 976 | - $output = '<div class="to col-xs-2"><strong>' . __( 'To:', 'invoicing' ) . '</strong></div>';  | 
                                                        |
| 976 | +    $output = '<div class="to col-xs-2"><strong>' . __('To:', 'invoicing') . '</strong></div>'; | 
                                                        |
| 977 | 977 | $output .= '<div class="wrapper col-xs-10">';  | 
                                                        
| 978 | 978 | |
| 979 | 979 | ob_start();  | 
                                                        
| 980 | - do_action( 'wpinv_display_to_address_top', $invoice );  | 
                                                        |
| 980 | +    do_action('wpinv_display_to_address_top', $invoice); | 
                                                        |
| 981 | 981 | $output .= ob_get_clean();  | 
                                                        
| 982 | 982 | |
| 983 | - $address_row = wpinv_get_invoice_address_markup( $billing_details );  | 
                                                        |
| 983 | + $address_row = wpinv_get_invoice_address_markup($billing_details);  | 
                                                        |
| 984 | 984 | |
| 985 | -    if ( $address_row ) { | 
                                                        |
| 985 | +    if ($address_row) { | 
                                                        |
| 986 | 986 | $output .= '<div class="address">' . $address_row . '</div>';  | 
                                                        
| 987 | 987 | }  | 
                                                        
| 988 | 988 | |
| 989 | -    if ( $phone = $invoice->get_phone() ) { | 
                                                        |
| 990 | - $output .= '<div class="phone">' . wp_sprintf( __( 'Phone: %s', 'invoicing' ), esc_html( $phone ) ) . '</div>';  | 
                                                        |
| 989 | +    if ($phone = $invoice->get_phone()) { | 
                                                        |
| 990 | +        $output .= '<div class="phone">' . wp_sprintf(__('Phone: %s', 'invoicing'), esc_html($phone)) . '</div>'; | 
                                                        |
| 991 | 991 | }  | 
                                                        
| 992 | -    if ( $email = $invoice->get_email() ) { | 
                                                        |
| 993 | - $output .= '<div class="email">' . wp_sprintf( __( 'Email: %s' , 'invoicing'), esc_html( $email ) ) . '</div>';  | 
                                                        |
| 992 | +    if ($email = $invoice->get_email()) { | 
                                                        |
| 993 | +        $output .= '<div class="email">' . wp_sprintf(__('Email: %s', 'invoicing'), esc_html($email)) . '</div>'; | 
                                                        |
| 994 | 994 | }  | 
                                                        
| 995 | 995 | |
| 996 | 996 | ob_start();  | 
                                                        
| 997 | - do_action( 'wpinv_display_to_address_bottom', $invoice );  | 
                                                        |
| 997 | +    do_action('wpinv_display_to_address_bottom', $invoice); | 
                                                        |
| 998 | 998 | $output .= ob_get_clean();  | 
                                                        
| 999 | 999 | |
| 1000 | 1000 | $output .= '</div>';  | 
                                                        
| 1001 | - $output = apply_filters( 'wpinv_display_to_address', $output, $invoice );  | 
                                                        |
| 1001 | +    $output = apply_filters('wpinv_display_to_address', $output, $invoice); | 
                                                        |
| 1002 | 1002 | |
| 1003 | 1003 | echo $output;  | 
                                                        
| 1004 | 1004 | }  | 
                                                        
| 1005 | 1005 | |
| 1006 | -function wpinv_display_line_items( $invoice_id = 0 ) { | 
                                                        |
| 1006 | +function wpinv_display_line_items($invoice_id = 0) { | 
                                                        |
| 1007 | 1007 | global $wpinv_euvat, $ajax_cart_details;  | 
                                                        
| 1008 | - $invoice = wpinv_get_invoice( $invoice_id );  | 
                                                        |
| 1008 | + $invoice = wpinv_get_invoice($invoice_id);  | 
                                                        |
| 1009 | 1009 | $quantities_enabled = wpinv_item_quantities_enabled();  | 
                                                        
| 1010 | 1010 | $use_taxes = wpinv_use_taxes();  | 
                                                        
| 1011 | -    if ( !$use_taxes && (float)$invoice->get_tax() > 0 ) { | 
                                                        |
| 1011 | +    if (!$use_taxes && (float) $invoice->get_tax() > 0) { | 
                                                        |
| 1012 | 1012 | $use_taxes = true;  | 
                                                        
| 1013 | 1013 | }  | 
                                                        
| 1014 | - $zero_tax = !(float)$invoice->get_tax() > 0 ? true : false;  | 
                                                        |
| 1015 | - $tax_label = $use_taxes && $invoice->has_vat() ? $wpinv_euvat->get_vat_name() : __( 'Tax', 'invoicing' );  | 
                                                        |
| 1016 | - $tax_title = !$zero_tax && $use_taxes ? ( wpinv_prices_include_tax() ? wp_sprintf( __( '(%s Incl.)', 'invoicing' ), $tax_label ) : wp_sprintf( __( '(%s Excl.)', 'invoicing' ), $tax_label ) ) : '';  | 
                                                        |
| 1014 | + $zero_tax = !(float) $invoice->get_tax() > 0 ? true : false;  | 
                                                        |
| 1015 | +    $tax_label = $use_taxes && $invoice->has_vat() ? $wpinv_euvat->get_vat_name() : __('Tax', 'invoicing'); | 
                                                        |
| 1016 | +    $tax_title          = !$zero_tax && $use_taxes ? (wpinv_prices_include_tax() ? wp_sprintf(__('(%s Incl.)', 'invoicing'), $tax_label) : wp_sprintf(__('(%s Excl.)', 'invoicing'), $tax_label)) : ''; | 
                                                        |
| 1017 | 1017 | |
| 1018 | 1018 | $cart_details = $invoice->get_cart_details();  | 
                                                        
| 1019 | 1019 | $ajax_cart_details = $cart_details;  | 
                                                        
@@ -1022,67 +1022,67 @@ discard block  | 
                                                    ||
| 1022 | 1022 | <table class="table table-sm table-bordered table-responsive">  | 
                                                        
| 1023 | 1023 | <thead>  | 
                                                        
| 1024 | 1024 | <tr>  | 
                                                        
| 1025 | - <th class="name"><strong><?php _e( "Item Name", "invoicing" );?></strong></th>  | 
                                                        |
| 1026 | - <th class="rate"><strong><?php _e( "Price", "invoicing" );?></strong></th>  | 
                                                        |
| 1025 | +                <th class="name"><strong><?php _e("Item Name", "invoicing"); ?></strong></th> | 
                                                        |
| 1026 | +                <th class="rate"><strong><?php _e("Price", "invoicing"); ?></strong></th> | 
                                                        |
| 1027 | 1027 |                  <?php if ($quantities_enabled) { ?> | 
                                                        
| 1028 | - <th class="qty"><strong><?php _e( "Qty", "invoicing" );?></strong></th>  | 
                                                        |
| 1028 | +                    <th class="qty"><strong><?php _e("Qty", "invoicing"); ?></strong></th> | 
                                                        |
| 1029 | 1029 | <?php } ?>  | 
                                                        
| 1030 | 1030 |                  <?php if ($use_taxes && !$zero_tax) { ?> | 
                                                        
| 1031 | 1031 | <th class="tax"><strong><?php echo $tax_label . ' <span class="normal small">(%)</span>'; ?></strong></th>  | 
                                                        
| 1032 | 1032 | <?php } ?>  | 
                                                        
| 1033 | - <th class="total"><strong><?php echo __( "Item Total", "invoicing" ) . ' <span class="normal small">' . $tax_title . '<span>';?></strong></th>  | 
                                                        |
| 1033 | +                <th class="total"><strong><?php echo __("Item Total", "invoicing") . ' <span class="normal small">' . $tax_title . '<span>'; ?></strong></th> | 
                                                        |
| 1034 | 1034 | </tr>  | 
                                                        
| 1035 | 1035 | </thead>  | 
                                                        
| 1036 | 1036 | <tbody>  | 
                                                        
| 1037 | 1037 | <?php  | 
                                                        
| 1038 | -            if ( !empty( $cart_details ) ) { | 
                                                        |
| 1039 | - do_action( 'wpinv_display_line_items_start', $invoice );  | 
                                                        |
| 1038 | +            if (!empty($cart_details)) { | 
                                                        |
| 1039 | +                do_action('wpinv_display_line_items_start', $invoice); | 
                                                        |
| 1040 | 1040 | |
| 1041 | 1041 | $count = 0;  | 
                                                        
| 1042 | 1042 | $cols = 3;  | 
                                                        
| 1043 | -                foreach ( $cart_details as $key => $cart_item ) { | 
                                                        |
| 1044 | - $item_id = !empty($cart_item['id']) ? absint( $cart_item['id'] ) : '';  | 
                                                        |
| 1045 | - $item_price = isset($cart_item["item_price"]) ? wpinv_round_amount( $cart_item["item_price"] ) : 0;  | 
                                                        |
| 1046 | - $line_total = isset($cart_item["subtotal"]) ? wpinv_round_amount( $cart_item["subtotal"] ) : 0;  | 
                                                        |
| 1047 | - $quantity = !empty($cart_item['quantity']) && (int)$cart_item['quantity'] > 0 ? absint( $cart_item['quantity'] ) : 1;  | 
                                                        |
| 1043 | +                foreach ($cart_details as $key => $cart_item) { | 
                                                        |
| 1044 | + $item_id = !empty($cart_item['id']) ? absint($cart_item['id']) : '';  | 
                                                        |
| 1045 | + $item_price = isset($cart_item["item_price"]) ? wpinv_round_amount($cart_item["item_price"]) : 0;  | 
                                                        |
| 1046 | + $line_total = isset($cart_item["subtotal"]) ? wpinv_round_amount($cart_item["subtotal"]) : 0;  | 
                                                        |
| 1047 | + $quantity = !empty($cart_item['quantity']) && (int) $cart_item['quantity'] > 0 ? absint($cart_item['quantity']) : 1;  | 
                                                        |
| 1048 | 1048 | |
| 1049 | - $item = $item_id ? new WPInv_Item( $item_id ) : NULL;  | 
                                                        |
| 1049 | + $item = $item_id ? new WPInv_Item($item_id) : NULL;  | 
                                                        |
| 1050 | 1050 | $summary = '';  | 
                                                        
| 1051 | - $item_name = '';  | 
                                                        |
| 1051 | + $item_name = '';  | 
                                                        |
| 1052 | 1052 | $cols = 3;  | 
                                                        
| 1053 | -                    if ( !empty($item) ) { | 
                                                        |
| 1053 | +                    if (!empty($item)) { | 
                                                        |
| 1054 | 1054 | $item_name = $item->get_name();  | 
                                                        
| 1055 | 1055 | $summary = $item->get_summary();  | 
                                                        
| 1056 | 1056 | }  | 
                                                        
| 1057 | - $item_name = !empty($cart_item['name']) ? $cart_item['name'] : $item_name;  | 
                                                        |
| 1057 | + $item_name = !empty($cart_item['name']) ? $cart_item['name'] : $item_name;  | 
                                                        |
| 1058 | 1058 | |
| 1059 | - $summary = apply_filters( 'wpinv_print_invoice_line_item_summary', $summary, $cart_item, $item, $invoice );  | 
                                                        |
| 1059 | +                    $summary = apply_filters('wpinv_print_invoice_line_item_summary', $summary, $cart_item, $item, $invoice); | 
                                                        |
| 1060 | 1060 | |
| 1061 | 1061 | $item_tax = '';  | 
                                                        
| 1062 | 1062 | $tax_rate = '';  | 
                                                        
| 1063 | -                    if ( $use_taxes && $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0 ) { | 
                                                        |
| 1064 | - $item_tax = wpinv_price( wpinv_format_amount( $cart_item['tax'] ), $invoice->get_currency() );  | 
                                                        |
| 1065 | - $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : ( $cart_item['tax'] / $cart_item['subtotal'] ) * 100;  | 
                                                        |
| 1066 | - $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount( $tax_rate, 4 ) : '';  | 
                                                        |
| 1063 | +                    if ($use_taxes && $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0) { | 
                                                        |
| 1064 | + $item_tax = wpinv_price(wpinv_format_amount($cart_item['tax']), $invoice->get_currency());  | 
                                                        |
| 1065 | + $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : ($cart_item['tax'] / $cart_item['subtotal']) * 100;  | 
                                                        |
| 1066 | + $tax_rate = $tax_rate > 0 ? (float) wpinv_round_amount($tax_rate, 4) : '';  | 
                                                        |
| 1067 | 1067 |                          $tax_rate = $tax_rate != '' ? ' <small class="tax-rate">(' . $tax_rate . '%)</small>' : ''; | 
                                                        
| 1068 | 1068 | }  | 
                                                        
| 1069 | 1069 | |
| 1070 | 1070 | $line_item_tax = $item_tax . $tax_rate;  | 
                                                        
| 1071 | 1071 | |
| 1072 | -                    if ( $line_item_tax === '' ) { | 
                                                        |
| 1072 | +                    if ($line_item_tax === '') { | 
                                                        |
| 1073 | 1073 | $line_item_tax = 0; // Zero tax  | 
                                                        
| 1074 | 1074 | }  | 
                                                        
| 1075 | 1075 | |
| 1076 | - $action = apply_filters( 'wpinv_display_line_item_action', '', $cart_item, $invoice, $cols );  | 
                                                        |
| 1076 | +                    $action = apply_filters('wpinv_display_line_item_action', '', $cart_item, $invoice, $cols); | 
                                                        |
| 1077 | 1077 | |
| 1078 | - $line_item = '<tr class="row-' . ( ($count % 2 == 0) ? 'even' : 'odd' ) . ' wpinv-item">';  | 
                                                        |
| 1079 | - $line_item .= '<td class="name">' . $action. esc_html__( $item_name, 'invoicing' ) . wpinv_get_item_suffix( $item );  | 
                                                        |
| 1080 | -                        if ( $summary !== '' ) { | 
                                                        |
| 1081 | - $line_item .= '<br/><small class="meta">' . wpautop( wp_kses_post( $summary ) ) . '</small>';  | 
                                                        |
| 1078 | + $line_item = '<tr class="row-' . (($count % 2 == 0) ? 'even' : 'odd') . ' wpinv-item">';  | 
                                                        |
| 1079 | + $line_item .= '<td class="name">' . $action . esc_html__($item_name, 'invoicing') . wpinv_get_item_suffix($item);  | 
                                                        |
| 1080 | +                        if ($summary !== '') { | 
                                                        |
| 1081 | + $line_item .= '<br/><small class="meta">' . wpautop(wp_kses_post($summary)) . '</small>';  | 
                                                        |
| 1082 | 1082 | }  | 
                                                        
| 1083 | 1083 | $line_item .= '</td>';  | 
                                                        
| 1084 | 1084 | |
| 1085 | - $line_item .= '<td class="rate">' . esc_html__( wpinv_price( wpinv_format_amount( $item_price ), $invoice->get_currency() ) ) . '</td>';  | 
                                                        |
| 1085 | + $line_item .= '<td class="rate">' . esc_html__(wpinv_price(wpinv_format_amount($item_price), $invoice->get_currency())) . '</td>';  | 
                                                        |
| 1086 | 1086 |                          if ($quantities_enabled) { | 
                                                        
| 1087 | 1087 | $cols++;  | 
                                                        
| 1088 | 1088 | $line_item .= '<td class="qty">' . $quantity . '</td>';  | 
                                                        
@@ -1091,55 +1091,55 @@ discard block  | 
                                                    ||
| 1091 | 1091 | $cols++;  | 
                                                        
| 1092 | 1092 | $line_item .= '<td class="tax">' . $line_item_tax . '</td>';  | 
                                                        
| 1093 | 1093 | }  | 
                                                        
| 1094 | - $line_item .= '<td class="total">' . esc_html__( wpinv_price( wpinv_format_amount( $line_total ), $invoice->get_currency() ) ) . '</td>';  | 
                                                        |
| 1094 | + $line_item .= '<td class="total">' . esc_html__(wpinv_price(wpinv_format_amount($line_total), $invoice->get_currency())) . '</td>';  | 
                                                        |
| 1095 | 1095 | $line_item .= '</tr>';  | 
                                                        
| 1096 | 1096 | |
| 1097 | - echo apply_filters( 'wpinv_display_line_item', $line_item, $cart_item, $invoice, $cols );  | 
                                                        |
| 1097 | +                    echo apply_filters('wpinv_display_line_item', $line_item, $cart_item, $invoice, $cols); | 
                                                        |
| 1098 | 1098 | |
| 1099 | 1099 | $count++;  | 
                                                        
| 1100 | 1100 | }  | 
                                                        
| 1101 | 1101 | |
| 1102 | - do_action( 'wpinv_display_before_subtotal', $invoice, $cols );  | 
                                                        |
| 1102 | +                do_action('wpinv_display_before_subtotal', $invoice, $cols); | 
                                                        |
| 1103 | 1103 | ?>  | 
                                                        
| 1104 | 1104 | <tr class="row-sub-total row_odd">  | 
                                                        
| 1105 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_subtotal_label', '<strong>' . __( 'Sub Total', 'invoicing' ) . ':</strong>', $invoice ); ?></td>  | 
                                                        |
| 1106 | - <td class="total"><strong><?php _e( wpinv_subtotal( $invoice_id, true ) ) ?></strong></td>  | 
                                                        |
| 1105 | +                    <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_subtotal_label', '<strong>' . __('Sub Total', 'invoicing') . ':</strong>', $invoice); ?></td> | 
                                                        |
| 1106 | + <td class="total"><strong><?php _e(wpinv_subtotal($invoice_id, true)) ?></strong></td>  | 
                                                        |
| 1107 | 1107 | </tr>  | 
                                                        
| 1108 | 1108 | <?php  | 
                                                        
| 1109 | - do_action( 'wpinv_display_after_subtotal', $invoice, $cols );  | 
                                                        |
| 1109 | +                do_action('wpinv_display_after_subtotal', $invoice, $cols); | 
                                                        |
| 1110 | 1110 | |
| 1111 | -                if ( wpinv_discount( $invoice_id, false ) > 0 ) { | 
                                                        |
| 1112 | - do_action( 'wpinv_display_before_discount', $invoice, $cols );  | 
                                                        |
| 1111 | +                if (wpinv_discount($invoice_id, false) > 0) { | 
                                                        |
| 1112 | +                    do_action('wpinv_display_before_discount', $invoice, $cols); | 
                                                        |
| 1113 | 1113 | ?>  | 
                                                        
| 1114 | 1114 | <tr class="row-discount">  | 
                                                        
| 1115 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php wpinv_get_discount_label( wpinv_discount_code( $invoice_id ) ); ?>:</td>  | 
                                                        |
| 1116 | - <td class="total"><?php echo wpinv_discount( $invoice_id, true, true ); ?></td>  | 
                                                        |
| 1115 | + <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php wpinv_get_discount_label(wpinv_discount_code($invoice_id)); ?>:</td>  | 
                                                        |
| 1116 | + <td class="total"><?php echo wpinv_discount($invoice_id, true, true); ?></td>  | 
                                                        |
| 1117 | 1117 | </tr>  | 
                                                        
| 1118 | 1118 | <?php  | 
                                                        
| 1119 | - do_action( 'wpinv_display_after_discount', $invoice, $cols );  | 
                                                        |
| 1119 | +                    do_action('wpinv_display_after_discount', $invoice, $cols); | 
                                                        |
| 1120 | 1120 | }  | 
                                                        
| 1121 | 1121 | |
| 1122 | -                if ( $use_taxes ) { | 
                                                        |
| 1123 | - do_action( 'wpinv_display_before_tax', $invoice, $cols );  | 
                                                        |
| 1122 | +                if ($use_taxes) { | 
                                                        |
| 1123 | +                    do_action('wpinv_display_before_tax', $invoice, $cols); | 
                                                        |
| 1124 | 1124 | ?>  | 
                                                        
| 1125 | 1125 | <tr class="row-tax">  | 
                                                        
| 1126 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_tax_label', '<strong>' . $tax_label . ':</strong>', $invoice ); ?></td>  | 
                                                        |
| 1127 | - <td class="total"><?php _e( wpinv_tax( $invoice_id, true ) ) ?></td>  | 
                                                        |
| 1126 | +                        <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_tax_label', '<strong>' . $tax_label . ':</strong>', $invoice); ?></td> | 
                                                        |
| 1127 | + <td class="total"><?php _e(wpinv_tax($invoice_id, true)) ?></td>  | 
                                                        |
| 1128 | 1128 | </tr>  | 
                                                        
| 1129 | 1129 | <?php  | 
                                                        
| 1130 | - do_action( 'wpinv_display_after_tax', $invoice, $cols );  | 
                                                        |
| 1130 | +                    do_action('wpinv_display_after_tax', $invoice, $cols); | 
                                                        |
| 1131 | 1131 | }  | 
                                                        
| 1132 | 1132 | |
| 1133 | - do_action( 'wpinv_display_before_total', $invoice, $cols );  | 
                                                        |
| 1133 | +                do_action('wpinv_display_before_total', $invoice, $cols); | 
                                                        |
| 1134 | 1134 | ?>  | 
                                                        
| 1135 | 1135 | <tr class="table-active row-total">  | 
                                                        
| 1136 | - <td class="rate" colspan="<?php echo ( $cols - 1 ); ?>"><?php echo apply_filters( 'wpinv_print_cart_total_label', '<strong>' . __( 'Total', 'invoicing' ) . ':</strong>', $invoice ); ?></td>  | 
                                                        |
| 1137 | - <td class="total"><strong><?php _e( wpinv_payment_total( $invoice_id, true ) ) ?></strong></td>  | 
                                                        |
| 1136 | +                    <td class="rate" colspan="<?php echo ($cols - 1); ?>"><?php echo apply_filters('wpinv_print_cart_total_label', '<strong>' . __('Total', 'invoicing') . ':</strong>', $invoice); ?></td> | 
                                                        |
| 1137 | + <td class="total"><strong><?php _e(wpinv_payment_total($invoice_id, true)) ?></strong></td>  | 
                                                        |
| 1138 | 1138 | </tr>  | 
                                                        
| 1139 | 1139 | <?php  | 
                                                        
| 1140 | - do_action( 'wpinv_display_after_total', $invoice, $cols );  | 
                                                        |
| 1140 | +                do_action('wpinv_display_after_total', $invoice, $cols); | 
                                                        |
| 1141 | 1141 | |
| 1142 | - do_action( 'wpinv_display_line_end', $invoice, $cols );  | 
                                                        |
| 1142 | +                do_action('wpinv_display_line_end', $invoice, $cols); | 
                                                        |
| 1143 | 1143 | }  | 
                                                        
| 1144 | 1144 | ?>  | 
                                                        
| 1145 | 1145 | </tbody>  | 
                                                        
@@ -1148,35 +1148,35 @@ discard block  | 
                                                    ||
| 1148 | 1148 | echo ob_get_clean();  | 
                                                        
| 1149 | 1149 | }  | 
                                                        
| 1150 | 1150 | |
| 1151 | -function wpinv_display_invoice_totals( $invoice_id = 0 ) { | 
                                                        |
| 1151 | +function wpinv_display_invoice_totals($invoice_id = 0) { | 
                                                        |
| 1152 | 1152 | $use_taxes = wpinv_use_taxes();  | 
                                                        
| 1153 | 1153 | |
| 1154 | - do_action( 'wpinv_before_display_totals_table', $invoice_id );  | 
                                                        |
| 1154 | +    do_action('wpinv_before_display_totals_table', $invoice_id);  | 
                                                        |
| 1155 | 1155 | ?>  | 
                                                        
| 1156 | 1156 | <table class="table table-sm table-bordered table-responsive">  | 
                                                        
| 1157 | 1157 | <tbody>  | 
                                                        
| 1158 | - <?php do_action( 'wpinv_before_display_totals' ); ?>  | 
                                                        |
| 1158 | +            <?php do_action('wpinv_before_display_totals'); ?> | 
                                                        |
| 1159 | 1159 | <tr class="row-sub-total">  | 
                                                        
| 1160 | - <td class="rate"><strong><?php _e( 'Sub Total', 'invoicing' ); ?></strong></td>  | 
                                                        |
| 1161 | - <td class="total"><strong><?php _e( wpinv_subtotal( $invoice_id, true ) ) ?></strong></td>  | 
                                                        |
| 1160 | +                <td class="rate"><strong><?php _e('Sub Total', 'invoicing'); ?></strong></td> | 
                                                        |
| 1161 | + <td class="total"><strong><?php _e(wpinv_subtotal($invoice_id, true)) ?></strong></td>  | 
                                                        |
| 1162 | 1162 | </tr>  | 
                                                        
| 1163 | - <?php do_action( 'wpinv_after_display_totals' ); ?>  | 
                                                        |
| 1164 | -            <?php if ( wpinv_discount( $invoice_id, false ) > 0 ) { ?> | 
                                                        |
| 1163 | +            <?php do_action('wpinv_after_display_totals'); ?> | 
                                                        |
| 1164 | +            <?php if (wpinv_discount($invoice_id, false) > 0) { ?> | 
                                                        |
| 1165 | 1165 | <tr class="row-discount">  | 
                                                        
| 1166 | - <td class="rate"><?php wpinv_get_discount_label( wpinv_discount_code( $invoice_id ) ); ?></td>  | 
                                                        |
| 1167 | - <td class="total"><?php echo wpinv_discount( $invoice_id, true, true ); ?></td>  | 
                                                        |
| 1166 | + <td class="rate"><?php wpinv_get_discount_label(wpinv_discount_code($invoice_id)); ?></td>  | 
                                                        |
| 1167 | + <td class="total"><?php echo wpinv_discount($invoice_id, true, true); ?></td>  | 
                                                        |
| 1168 | 1168 | </tr>  | 
                                                        
| 1169 | - <?php do_action( 'wpinv_after_display_discount' ); ?>  | 
                                                        |
| 1169 | +            <?php do_action('wpinv_after_display_discount'); ?> | 
                                                        |
| 1170 | 1170 | <?php } ?>  | 
                                                        
| 1171 | -            <?php if ( $use_taxes ) { ?> | 
                                                        |
| 1171 | +            <?php if ($use_taxes) { ?> | 
                                                        |
| 1172 | 1172 | <tr class="row-tax">  | 
                                                        
| 1173 | - <td class="rate"><?php _e( 'Tax', 'invoicing' ); ?></td>  | 
                                                        |
| 1174 | - <td class="total"><?php _e( wpinv_tax( $invoice_id, true ) ) ?></td>  | 
                                                        |
| 1173 | +                <td class="rate"><?php _e('Tax', 'invoicing'); ?></td> | 
                                                        |
| 1174 | + <td class="total"><?php _e(wpinv_tax($invoice_id, true)) ?></td>  | 
                                                        |
| 1175 | 1175 | </tr>  | 
                                                        
| 1176 | - <?php do_action( 'wpinv_after_display_tax' ); ?>  | 
                                                        |
| 1176 | +            <?php do_action('wpinv_after_display_tax'); ?> | 
                                                        |
| 1177 | 1177 | <?php } ?>  | 
                                                        
| 1178 | -            <?php if ( $fees = wpinv_get_fees( $invoice_id ) ) { ?> | 
                                                        |
| 1179 | -                <?php foreach ( $fees as $fee ) { ?> | 
                                                        |
| 1178 | +            <?php if ($fees = wpinv_get_fees($invoice_id)) { ?> | 
                                                        |
| 1179 | +                <?php foreach ($fees as $fee) { ?> | 
                                                        |
| 1180 | 1180 | <tr class="row-fee">  | 
                                                        
| 1181 | 1181 | <td class="rate"><?php echo $fee['label']; ?></td>  | 
                                                        
| 1182 | 1182 | <td class="total"><?php echo $fee['amount_display']; ?></td>  | 
                                                        
@@ -1184,82 +1184,82 @@ discard block  | 
                                                    ||
| 1184 | 1184 | <?php } ?>  | 
                                                        
| 1185 | 1185 | <?php } ?>  | 
                                                        
| 1186 | 1186 | <tr class="table-active row-total">  | 
                                                        
| 1187 | - <td class="rate"><strong><?php _e( 'Total', 'invoicing' ) ?></strong></td>  | 
                                                        |
| 1188 | - <td class="total"><strong><?php _e( wpinv_payment_total( $invoice_id, true ) ) ?></strong></td>  | 
                                                        |
| 1187 | +                <td class="rate"><strong><?php _e('Total', 'invoicing') ?></strong></td> | 
                                                        |
| 1188 | + <td class="total"><strong><?php _e(wpinv_payment_total($invoice_id, true)) ?></strong></td>  | 
                                                        |
| 1189 | 1189 | </tr>  | 
                                                        
| 1190 | - <?php do_action( 'wpinv_after_totals' ); ?>  | 
                                                        |
| 1190 | +            <?php do_action('wpinv_after_totals'); ?> | 
                                                        |
| 1191 | 1191 | </tbody>  | 
                                                        
| 1192 | 1192 | |
| 1193 | 1193 | </table>  | 
                                                        
| 1194 | 1194 | |
| 1195 | - <?php do_action( 'wpinv_after_totals_table' );  | 
                                                        |
| 1195 | +    <?php do_action('wpinv_after_totals_table'); | 
                                                        |
| 1196 | 1196 | }  | 
                                                        
| 1197 | 1197 | |
| 1198 | -function wpinv_display_payments_info( $invoice_id = 0, $echo = true ) { | 
                                                        |
| 1199 | - $invoice = wpinv_get_invoice( $invoice_id );  | 
                                                        |
| 1198 | +function wpinv_display_payments_info($invoice_id = 0, $echo = true) { | 
                                                        |
| 1199 | + $invoice = wpinv_get_invoice($invoice_id);  | 
                                                        |
| 1200 | 1200 | |
| 1201 | 1201 | ob_start();  | 
                                                        
| 1202 | - do_action( 'wpinv_before_display_payments_info', $invoice_id );  | 
                                                        |
| 1203 | -    if ( ( $gateway_title = $invoice->get_gateway_title() ) || $invoice->is_paid() || $invoice->is_refunded() ) { | 
                                                        |
| 1202 | +    do_action('wpinv_before_display_payments_info', $invoice_id); | 
                                                        |
| 1203 | +    if (($gateway_title = $invoice->get_gateway_title()) || $invoice->is_paid() || $invoice->is_refunded()) { | 
                                                        |
| 1204 | 1204 | ?>  | 
                                                        
| 1205 | 1205 | <div class="wpi-payment-info">  | 
                                                        
| 1206 | - <p class="wpi-payment-gateway"><?php echo wp_sprintf( __( 'Payment via %s', 'invoicing' ), $gateway_title ? $gateway_title : __( 'Manually', 'invoicing' ) ); ?></p>  | 
                                                        |
| 1207 | -            <?php if ( $gateway_title ) { ?> | 
                                                        |
| 1208 | - <p class="wpi-payment-transid"><?php echo wp_sprintf( __( 'Transaction ID: %s', 'invoicing' ), $invoice->get_transaction_id() ); ?></p>  | 
                                                        |
| 1206 | +            <p class="wpi-payment-gateway"><?php echo wp_sprintf(__('Payment via %s', 'invoicing'), $gateway_title ? $gateway_title : __('Manually', 'invoicing')); ?></p> | 
                                                        |
| 1207 | +            <?php if ($gateway_title) { ?> | 
                                                        |
| 1208 | +            <p class="wpi-payment-transid"><?php echo wp_sprintf(__('Transaction ID: %s', 'invoicing'), $invoice->get_transaction_id()); ?></p> | 
                                                        |
| 1209 | 1209 | <?php } ?>  | 
                                                        
| 1210 | 1210 | </div>  | 
                                                        
| 1211 | 1211 | <?php  | 
                                                        
| 1212 | 1212 | }  | 
                                                        
| 1213 | - do_action( 'wpinv_after_display_payments_info', $invoice_id );  | 
                                                        |
| 1213 | +    do_action('wpinv_after_display_payments_info', $invoice_id); | 
                                                        |
| 1214 | 1214 | $outout = ob_get_clean();  | 
                                                        
| 1215 | 1215 | |
| 1216 | -    if ( $echo ) { | 
                                                        |
| 1216 | +    if ($echo) { | 
                                                        |
| 1217 | 1217 | echo $outout;  | 
                                                        
| 1218 | 1218 |      } else { | 
                                                        
| 1219 | 1219 | return $outout;  | 
                                                        
| 1220 | 1220 | }  | 
                                                        
| 1221 | 1221 | }  | 
                                                        
| 1222 | 1222 | |
| 1223 | -function wpinv_display_style( $invoice ) { | 
                                                        |
| 1224 | - wp_register_style( 'wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), WPINV_VERSION );  | 
                                                        |
| 1223 | +function wpinv_display_style($invoice) { | 
                                                        |
| 1224 | +    wp_register_style('wpinv-single-style', WPINV_PLUGIN_URL . 'assets/css/invoice.css', array(), WPINV_VERSION); | 
                                                        |
| 1225 | 1225 | |
| 1226 | - wp_print_styles( 'open-sans' );  | 
                                                        |
| 1227 | - wp_print_styles( 'wpinv-single-style' );  | 
                                                        |
| 1226 | +    wp_print_styles('open-sans'); | 
                                                        |
| 1227 | +    wp_print_styles('wpinv-single-style'); | 
                                                        |
| 1228 | 1228 | |
| 1229 | 1229 |      $custom_css = wpinv_get_option('template_custom_css'); | 
                                                        
| 1230 | -    if(isset($custom_css) && !empty($custom_css)){ | 
                                                        |
| 1231 | - $custom_css = wp_kses( $custom_css, array( '\'', '\"' ) );  | 
                                                        |
| 1232 | - $custom_css = str_replace( '>', '>', $custom_css );  | 
                                                        |
| 1230 | +    if (isset($custom_css) && !empty($custom_css)) { | 
                                                        |
| 1231 | +        $custom_css     = wp_kses($custom_css, array('\'', '\"')); | 
                                                        |
| 1232 | +        $custom_css     = str_replace('>', '>', $custom_css); | 
                                                        |
| 1233 | 1233 | echo '<style type="text/css">';  | 
                                                        
| 1234 | 1234 | echo $custom_css;  | 
                                                        
| 1235 | 1235 | echo '</style>';  | 
                                                        
| 1236 | 1236 | }  | 
                                                        
| 1237 | 1237 | }  | 
                                                        
| 1238 | -add_action( 'wpinv_invoice_print_head', 'wpinv_display_style' );  | 
                                                        |
| 1239 | -add_action( 'wpinv_invalid_invoice_head', 'wpinv_display_style' );  | 
                                                        |
| 1238 | +add_action('wpinv_invoice_print_head', 'wpinv_display_style'); | 
                                                        |
| 1239 | +add_action('wpinv_invalid_invoice_head', 'wpinv_display_style'); | 
                                                        |
| 1240 | 1240 | |
| 1241 | 1241 |  function wpinv_checkout_billing_details() { | 
                                                        
| 1242 | - $invoice_id = (int)wpinv_get_invoice_cart_id();  | 
                                                        |
| 1242 | + $invoice_id = (int) wpinv_get_invoice_cart_id();  | 
                                                        |
| 1243 | 1243 |      if (empty($invoice_id)) { | 
                                                        
| 1244 | - wpinv_error_log( 'Invoice id not found', 'ERROR', __FILE__, __LINE__ );  | 
                                                        |
| 1244 | +        wpinv_error_log('Invoice id not found', 'ERROR', __FILE__, __LINE__); | 
                                                        |
| 1245 | 1245 | return null;  | 
                                                        
| 1246 | 1246 | }  | 
                                                        
| 1247 | 1247 | |
| 1248 | - $invoice = wpinv_get_invoice_cart( $invoice_id );  | 
                                                        |
| 1248 | + $invoice = wpinv_get_invoice_cart($invoice_id);  | 
                                                        |
| 1249 | 1249 |      if (empty($invoice)) { | 
                                                        
| 1250 | - wpinv_error_log( 'Invoice not found', 'ERROR', __FILE__, __LINE__ );  | 
                                                        |
| 1250 | +        wpinv_error_log('Invoice not found', 'ERROR', __FILE__, __LINE__); | 
                                                        |
| 1251 | 1251 | return null;  | 
                                                        
| 1252 | 1252 | }  | 
                                                        
| 1253 | 1253 | $user_id = $invoice->get_user_id();  | 
                                                        
| 1254 | 1254 | $user_info = $invoice->get_user_info();  | 
                                                        
| 1255 | - $address_info = wpinv_get_user_address( $user_id );  | 
                                                        |
| 1255 | + $address_info = wpinv_get_user_address($user_id);  | 
                                                        |
| 1256 | 1256 | |
| 1257 | -    if ( empty( $user_info['first_name'] ) && !empty( $user_info['first_name'] ) ) { | 
                                                        |
| 1257 | +    if (empty($user_info['first_name']) && !empty($user_info['first_name'])) { | 
                                                        |
| 1258 | 1258 | $user_info['first_name'] = $user_info['first_name'];  | 
                                                        
| 1259 | 1259 | $user_info['last_name'] = $user_info['last_name'];  | 
                                                        
| 1260 | 1260 | }  | 
                                                        
| 1261 | 1261 | |
| 1262 | -    if ( ( ( empty( $user_info['country'] ) && !empty( $address_info['country'] ) ) || ( empty( $user_info['state'] ) && !empty( $address_info['state'] ) && $user_info['country'] == $address_info['country'] ) ) ) { | 
                                                        |
| 1262 | +    if (((empty($user_info['country']) && !empty($address_info['country'])) || (empty($user_info['state']) && !empty($address_info['state']) && $user_info['country'] == $address_info['country']))) { | 
                                                        |
| 1263 | 1263 | $user_info['country'] = $address_info['country'];  | 
                                                        
| 1264 | 1264 | $user_info['state'] = $address_info['state'];  | 
                                                        
| 1265 | 1265 | $user_info['city'] = $address_info['city'];  | 
                                                        
@@ -1275,98 +1275,98 @@ discard block  | 
                                                    ||
| 1275 | 1275 | 'address'  | 
                                                        
| 1276 | 1276 | );  | 
                                                        
| 1277 | 1277 | |
| 1278 | -    foreach ( $address_fields as $field ) { | 
                                                        |
| 1279 | -        if ( empty( $user_info[$field] ) ) { | 
                                                        |
| 1278 | +    foreach ($address_fields as $field) { | 
                                                        |
| 1279 | +        if (empty($user_info[$field])) { | 
                                                        |
| 1280 | 1280 | $user_info[$field] = $address_info[$field];  | 
                                                        
| 1281 | 1281 | }  | 
                                                        
| 1282 | 1282 | }  | 
                                                        
| 1283 | 1283 | |
| 1284 | - return apply_filters( 'wpinv_checkout_billing_details', $user_info, $invoice );  | 
                                                        |
| 1284 | +    return apply_filters('wpinv_checkout_billing_details', $user_info, $invoice); | 
                                                        |
| 1285 | 1285 | }  | 
                                                        
| 1286 | 1286 | |
| 1287 | 1287 |  function wpinv_admin_get_line_items($invoice = array()) { | 
                                                        
| 1288 | 1288 | $item_quantities = wpinv_item_quantities_enabled();  | 
                                                        
| 1289 | 1289 | $use_taxes = wpinv_use_taxes();  | 
                                                        
| 1290 | 1290 | |
| 1291 | -    if ( empty( $invoice ) ) { | 
                                                        |
| 1291 | +    if (empty($invoice)) { | 
                                                        |
| 1292 | 1292 | return NULL;  | 
                                                        
| 1293 | 1293 | }  | 
                                                        
| 1294 | 1294 | |
| 1295 | 1295 | $cart_items = $invoice->get_cart_details();  | 
                                                        
| 1296 | -    if ( empty( $cart_items ) ) { | 
                                                        |
| 1296 | +    if (empty($cart_items)) { | 
                                                        |
| 1297 | 1297 | return NULL;  | 
                                                        
| 1298 | 1298 | }  | 
                                                        
| 1299 | 1299 | ob_start();  | 
                                                        
| 1300 | 1300 | |
| 1301 | - do_action( 'wpinv_admin_before_line_items', $cart_items, $invoice );  | 
                                                        |
| 1301 | +    do_action('wpinv_admin_before_line_items', $cart_items, $invoice); | 
                                                        |
| 1302 | 1302 | |
| 1303 | 1303 | $count = 0;  | 
                                                        
| 1304 | -    foreach ( $cart_items as $key => $cart_item ) { | 
                                                        |
| 1304 | +    foreach ($cart_items as $key => $cart_item) { | 
                                                        |
| 1305 | 1305 | $item_id = $cart_item['id'];  | 
                                                        
| 1306 | - $wpi_item = $item_id > 0 ? new WPInv_Item( $item_id ) : NULL;  | 
                                                        |
| 1306 | + $wpi_item = $item_id > 0 ? new WPInv_Item($item_id) : NULL;  | 
                                                        |
| 1307 | 1307 | |
| 1308 | 1308 |          if (empty($wpi_item)) { | 
                                                        
| 1309 | 1309 | continue;  | 
                                                        
| 1310 | 1310 | }  | 
                                                        
| 1311 | 1311 | |
| 1312 | - $item_price = wpinv_price( wpinv_format_amount( $cart_item['item_price'] ), $invoice->get_currency() );  | 
                                                        |
| 1313 | - $quantity = !empty( $cart_item['quantity'] ) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1;  | 
                                                        |
| 1314 | - $item_subtotal = wpinv_price( wpinv_format_amount( $cart_item['subtotal'] ), $invoice->get_currency() );  | 
                                                        |
| 1312 | + $item_price = wpinv_price(wpinv_format_amount($cart_item['item_price']), $invoice->get_currency());  | 
                                                        |
| 1313 | + $quantity = !empty($cart_item['quantity']) && $cart_item['quantity'] > 0 ? $cart_item['quantity'] : 1;  | 
                                                        |
| 1314 | + $item_subtotal = wpinv_price(wpinv_format_amount($cart_item['subtotal']), $invoice->get_currency());  | 
                                                        |
| 1315 | 1315 | $can_remove = true;  | 
                                                        
| 1316 | 1316 | |
| 1317 | - $summary = apply_filters( 'wpinv_admin_invoice_line_item_summary', '', $cart_item, $wpi_item, $invoice );  | 
                                                        |
| 1317 | +        $summary = apply_filters('wpinv_admin_invoice_line_item_summary', '', $cart_item, $wpi_item, $invoice); | 
                                                        |
| 1318 | 1318 | |
| 1319 | 1319 | $item_tax = '';  | 
                                                        
| 1320 | 1320 | $tax_rate = '';  | 
                                                        
| 1321 | -        if ( $cart_item['tax'] > 0 && $cart_item['subtotal'] > 0 ) { | 
                                                        |
| 1322 | - $item_tax = wpinv_price( wpinv_format_amount( $cart_item['tax'] ), $invoice->get_currency() );  | 
                                                        |
| 1323 | - $tax_rate = !empty( $cart_item['vat_rate'] ) ? $cart_item['vat_rate'] : ( $cart_item['tax'] / $cart_item['subtotal'] ) * 100;  | 
                                                        |
| 1324 | - $tax_rate = $tax_rate > 0 ? (float)wpinv_round_amount( $tax_rate, 4 ) : '';  | 
                                                        |
| 1321 | +        if ($cart_item['tax'] > 0 && $cart_item['subtotal'] > 0) { | 
                                                        |
| 1322 | + $item_tax = wpinv_price(wpinv_format_amount($cart_item['tax']), $invoice->get_currency());  | 
                                                        |
| 1323 | + $tax_rate = !empty($cart_item['vat_rate']) ? $cart_item['vat_rate'] : ($cart_item['tax'] / $cart_item['subtotal']) * 100;  | 
                                                        |
| 1324 | + $tax_rate = $tax_rate > 0 ? (float) wpinv_round_amount($tax_rate, 4) : '';  | 
                                                        |
| 1325 | 1325 |              $tax_rate = $tax_rate != '' ? ' <span class="tax-rate">(' . $tax_rate . '%)</span>' : ''; | 
                                                        
| 1326 | 1326 | }  | 
                                                        
| 1327 | 1327 | $line_item_tax = $item_tax . $tax_rate;  | 
                                                        
| 1328 | 1328 | |
| 1329 | -        if ( $line_item_tax === '' ) { | 
                                                        |
| 1329 | +        if ($line_item_tax === '') { | 
                                                        |
| 1330 | 1330 | $line_item_tax = 0; // Zero tax  | 
                                                        
| 1331 | 1331 | }  | 
                                                        
| 1332 | 1332 | |
| 1333 | - $line_item = '<tr class="item item-' . ( ($count % 2 == 0) ? 'even' : 'odd' ) . '" data-item-id="' . $item_id . '">';  | 
                                                        |
| 1333 | + $line_item = '<tr class="item item-' . (($count % 2 == 0) ? 'even' : 'odd') . '" data-item-id="' . $item_id . '">';  | 
                                                        |
| 1334 | 1334 | $line_item .= '<td class="id">' . $item_id . '</td>';  | 
                                                        
| 1335 | - $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 );  | 
                                                        |
| 1336 | -            if ( $summary !== '' ) { | 
                                                        |
| 1337 | - $line_item .= '<span class="meta">' . wpautop( wp_kses_post( $summary ) ) . '</span>';  | 
                                                        |
| 1335 | + $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);  | 
                                                        |
| 1336 | +            if ($summary !== '') { | 
                                                        |
| 1337 | + $line_item .= '<span class="meta">' . wpautop(wp_kses_post($summary)) . '</span>';  | 
                                                        |
| 1338 | 1338 | }  | 
                                                        
| 1339 | 1339 | $line_item .= '</td>';  | 
                                                        
| 1340 | 1340 | $line_item .= '<td class="price">' . $item_price . '</td>';  | 
                                                        
| 1341 | 1341 | |
| 1342 | -            if ( $item_quantities ) { | 
                                                        |
| 1343 | -                if ( count( $cart_items ) == 1 && $quantity <= 1 ) { | 
                                                        |
| 1342 | +            if ($item_quantities) { | 
                                                        |
| 1343 | +                if (count($cart_items) == 1 && $quantity <= 1) { | 
                                                        |
| 1344 | 1344 | $can_remove = false;  | 
                                                        
| 1345 | 1345 | }  | 
                                                        
| 1346 | 1346 | $line_item .= '<td class="qty" data-quantity="' . $quantity . '"> × ' . $quantity . '</td>';  | 
                                                        
| 1347 | 1347 |              } else { | 
                                                        
| 1348 | -                if ( count( $cart_items ) == 1 ) { | 
                                                        |
| 1348 | +                if (count($cart_items) == 1) { | 
                                                        |
| 1349 | 1349 | $can_remove = false;  | 
                                                        
| 1350 | 1350 | }  | 
                                                        
| 1351 | 1351 | }  | 
                                                        
| 1352 | 1352 | $line_item .= '<td class="total">' . $item_subtotal . '</td>';  | 
                                                        
| 1353 | 1353 | |
| 1354 | -            if ( $use_taxes ) { | 
                                                        |
| 1354 | +            if ($use_taxes) { | 
                                                        |
| 1355 | 1355 | $line_item .= '<td class="tax">' . $line_item_tax . '</td>';  | 
                                                        
| 1356 | 1356 | }  | 
                                                        
| 1357 | 1357 | $line_item .= '<td class="action">';  | 
                                                        
| 1358 | -            if ( !$invoice->is_paid() && !$invoice->is_refunded() ) { | 
                                                        |
| 1358 | +            if (!$invoice->is_paid() && !$invoice->is_refunded()) { | 
                                                        |
| 1359 | 1359 | $line_item .= '<i class="fa fa-remove wpinv-item-remove"></i>';  | 
                                                        
| 1360 | 1360 | }  | 
                                                        
| 1361 | 1361 | $line_item .= '</td>';  | 
                                                        
| 1362 | 1362 | $line_item .= '</tr>';  | 
                                                        
| 1363 | 1363 | |
| 1364 | - echo apply_filters( 'wpinv_admin_line_item', $line_item, $cart_item, $invoice );  | 
                                                        |
| 1364 | +        echo apply_filters('wpinv_admin_line_item', $line_item, $cart_item, $invoice); | 
                                                        |
| 1365 | 1365 | |
| 1366 | 1366 | $count++;  | 
                                                        
| 1367 | 1367 | }  | 
                                                        
| 1368 | 1368 | |
| 1369 | - do_action( 'wpinv_admin_after_line_items', $cart_items, $invoice );  | 
                                                        |
| 1369 | +    do_action('wpinv_admin_after_line_items', $cart_items, $invoice); | 
                                                        |
| 1370 | 1370 | |
| 1371 | 1371 | return ob_get_clean();  | 
                                                        
| 1372 | 1372 | }  | 
                                                        
@@ -1378,32 +1378,32 @@ discard block  | 
                                                    ||
| 1378 | 1378 | $wpi_checkout_id = wpinv_get_invoice_cart_id();  | 
                                                        
| 1379 | 1379 | |
| 1380 | 1380 | //Maybe update the prices  | 
                                                        
| 1381 | -    if(! empty( $_GET['wpi_dynamic_item'] ) && ! empty( $_GET['wpi_dynamic_price'] ) ) { | 
                                                        |
| 1381 | +    if (!empty($_GET['wpi_dynamic_item']) && !empty($_GET['wpi_dynamic_price'])) { | 
                                                        |
| 1382 | 1382 | |
| 1383 | 1383 | //If the invoice exists, update it with new pricing details  | 
                                                        
| 1384 | -        if (! empty( $wpi_checkout_id ) ) { | 
                                                        |
| 1384 | +        if (!empty($wpi_checkout_id)) { | 
                                                        |
| 1385 | 1385 | |
| 1386 | 1386 | $_invoice = wpinv_get_invoice_cart();  | 
                                                        
| 1387 | 1387 | $_cart_details = $_invoice->get_cart_details();  | 
                                                        
| 1388 | - $_dynamic_item = sanitize_text_field( $_GET['wpi_dynamic_item'] );  | 
                                                        |
| 1388 | + $_dynamic_item = sanitize_text_field($_GET['wpi_dynamic_item']);  | 
                                                        |
| 1389 | 1389 | |
| 1390 | 1390 | //First, fetch the item  | 
                                                        
| 1391 | - $item = new WPInv_Item( $_dynamic_item );  | 
                                                        |
| 1391 | + $item = new WPInv_Item($_dynamic_item);  | 
                                                        |
| 1392 | 1392 | |
| 1393 | 1393 | //Next, ensure it supports dynamic pricing...  | 
                                                        
| 1394 | -            if( $item->supports_dynamic_pricing() && $item->get_is_dynamic_pricing() ) { | 
                                                        |
| 1394 | +            if ($item->supports_dynamic_pricing() && $item->get_is_dynamic_pricing()) { | 
                                                        |
| 1395 | 1395 | |
| 1396 | 1396 | //... and that the new price is not lower than the minimum price  | 
                                                        
| 1397 | - $_dynamic_price = (float) wpinv_sanitize_amount( sanitize_text_field( $_GET['wpi_dynamic_price'] ) );  | 
                                                        |
| 1398 | -                if( $_dynamic_price < $item->get_minimum_price() ) { | 
                                                        |
| 1397 | + $_dynamic_price = (float) wpinv_sanitize_amount(sanitize_text_field($_GET['wpi_dynamic_price']));  | 
                                                        |
| 1398 | +                if ($_dynamic_price < $item->get_minimum_price()) { | 
                                                        |
| 1399 | 1399 | $_dynamic_price = $item->get_minimum_price();  | 
                                                        
| 1400 | 1400 | }  | 
                                                        
| 1401 | 1401 | |
| 1402 | 1402 | //Finally, update our invoice with the new price  | 
                                                        
| 1403 | -                if ( !empty( $_cart_details ) ) { | 
                                                        |
| 1403 | +                if (!empty($_cart_details)) { | 
                                                        |
| 1404 | 1404 | |
| 1405 | -                    foreach ( $_cart_details as $key => $item ) { | 
                                                        |
| 1406 | -                        if ( !empty( $item['id'] ) && $_dynamic_item == $item['id'] ) { | 
                                                        |
| 1405 | +                    foreach ($_cart_details as $key => $item) { | 
                                                        |
| 1406 | +                        if (!empty($item['id']) && $_dynamic_item == $item['id']) { | 
                                                        |
| 1407 | 1407 | $_cart_details[$key]['custom_price'] = $_dynamic_price;  | 
                                                        
| 1408 | 1408 | $_cart_details[$key]['item_price'] = $_dynamic_price;  | 
                                                        
| 1409 | 1409 | }  | 
                                                        
@@ -1411,8 +1411,8 @@ discard block  | 
                                                    ||
| 1411 | 1411 | |
| 1412 | 1412 | $_meta = $_invoice->get_meta();  | 
                                                        
| 1413 | 1413 | $_meta['cart_details'] = $_cart_details;  | 
                                                        
| 1414 | - $_invoice->set( 'payment_meta', $_meta );  | 
                                                        |
| 1415 | - $_invoice->set( 'cart_details', $_cart_details );  | 
                                                        |
| 1414 | +                    $_invoice->set('payment_meta', $_meta); | 
                                                        |
| 1415 | +                    $_invoice->set('cart_details', $_cart_details); | 
                                                        |
| 1416 | 1416 | $_invoice->recalculate_totals();  | 
                                                        
| 1417 | 1417 | |
| 1418 | 1418 | }  | 
                                                        
@@ -1423,60 +1423,60 @@ discard block  | 
                                                    ||
| 1423 | 1423 | |
| 1424 | 1424 | }  | 
                                                        
| 1425 | 1425 | |
| 1426 | - $form_action = esc_url( wpinv_get_checkout_uri() );  | 
                                                        |
| 1426 | + $form_action = esc_url(wpinv_get_checkout_uri());  | 
                                                        |
| 1427 | 1427 | |
| 1428 | 1428 | ob_start();  | 
                                                        
| 1429 | - do_action( 'wpinv_checkout_content_before' );  | 
                                                        |
| 1429 | +	    do_action('wpinv_checkout_content_before'); | 
                                                        |
| 1430 | 1430 | echo '<div id="wpinv_checkout_wrap">';  | 
                                                        
| 1431 | 1431 | |
| 1432 | -        if ( wpinv_get_cart_contents() || wpinv_cart_has_fees() ) { | 
                                                        |
| 1432 | +        if (wpinv_get_cart_contents() || wpinv_cart_has_fees()) { | 
                                                        |
| 1433 | 1433 | ?>  | 
                                                        
| 1434 | 1434 | <div id="wpinv_checkout_form_wrap" class="wpinv_clearfix table-responsive">  | 
                                                        
| 1435 | - <?php do_action( 'wpinv_before_checkout_form' ); ?>  | 
                                                        |
| 1435 | +                <?php do_action('wpinv_before_checkout_form'); ?> | 
                                                        |
| 1436 | 1436 | <form id="wpinv_checkout_form" class="wpi-form" action="<?php echo $form_action; ?>" method="POST">  | 
                                                        
| 1437 | 1437 | <?php  | 
                                                        
| 1438 | - do_action( 'wpinv_checkout_form_top' );  | 
                                                        |
| 1439 | - do_action( 'wpinv_checkout_billing_info' );  | 
                                                        |
| 1440 | - do_action( 'wpinv_checkout_cart' );  | 
                                                        |
| 1441 | - do_action( 'wpinv_payment_mode_select' );  | 
                                                        |
| 1442 | - do_action( 'wpinv_checkout_form_bottom' )  | 
                                                        |
| 1438 | +                    do_action('wpinv_checkout_form_top'); | 
                                                        |
| 1439 | +                    do_action('wpinv_checkout_billing_info'); | 
                                                        |
| 1440 | +                    do_action('wpinv_checkout_cart'); | 
                                                        |
| 1441 | +                    do_action('wpinv_payment_mode_select'); | 
                                                        |
| 1442 | +                    do_action('wpinv_checkout_form_bottom') | 
                                                        |
| 1443 | 1443 | ?>  | 
                                                        
| 1444 | 1444 | </form>  | 
                                                        
| 1445 | - <?php do_action( 'wpinv_after_purchase_form' ); ?>  | 
                                                        |
| 1445 | +                <?php do_action('wpinv_after_purchase_form'); ?> | 
                                                        |
| 1446 | 1446 | </div><!--end #wpinv_checkout_form_wrap-->  | 
                                                        
| 1447 | 1447 | <?php  | 
                                                        
| 1448 | 1448 |          } else { | 
                                                        
| 1449 | - do_action( 'wpinv_cart_empty' );  | 
                                                        |
| 1449 | +            do_action('wpinv_cart_empty'); | 
                                                        |
| 1450 | 1450 | }  | 
                                                        
| 1451 | 1451 | echo '</div><!--end #wpinv_checkout_wrap-->';  | 
                                                        
| 1452 | - do_action( 'wpinv_checkout_content_after' );  | 
                                                        |
| 1452 | +	    do_action('wpinv_checkout_content_after'); | 
                                                        |
| 1453 | 1453 | return ob_get_clean();  | 
                                                        
| 1454 | 1454 | }  | 
                                                        
| 1455 | 1455 | |
| 1456 | -function wpinv_checkout_cart( $cart_details = array(), $echo = true ) { | 
                                                        |
| 1456 | +function wpinv_checkout_cart($cart_details = array(), $echo = true) { | 
                                                        |
| 1457 | 1457 | global $ajax_cart_details;  | 
                                                        
| 1458 | 1458 | $ajax_cart_details = $cart_details;  | 
                                                        
| 1459 | 1459 | |
| 1460 | 1460 | ob_start();  | 
                                                        
| 1461 | - do_action( 'wpinv_before_checkout_cart' );  | 
                                                        |
| 1461 | +    do_action('wpinv_before_checkout_cart'); | 
                                                        |
| 1462 | 1462 | echo '<div id="wpinv_checkout_cart_form" method="post">';  | 
                                                        
| 1463 | 1463 | echo '<div id="wpinv_checkout_cart_wrap">';  | 
                                                        
| 1464 | - wpinv_get_template_part( 'wpinv-checkout-cart' );  | 
                                                        |
| 1464 | +            wpinv_get_template_part('wpinv-checkout-cart'); | 
                                                        |
| 1465 | 1465 | echo '</div>';  | 
                                                        
| 1466 | 1466 | echo '</div>';  | 
                                                        
| 1467 | - do_action( 'wpinv_after_checkout_cart' );  | 
                                                        |
| 1467 | +    do_action('wpinv_after_checkout_cart'); | 
                                                        |
| 1468 | 1468 | $content = ob_get_clean();  | 
                                                        
| 1469 | 1469 | |
| 1470 | -    if ( $echo ) { | 
                                                        |
| 1470 | +    if ($echo) { | 
                                                        |
| 1471 | 1471 | echo $content;  | 
                                                        
| 1472 | 1472 |      } else { | 
                                                        
| 1473 | 1473 | return $content;  | 
                                                        
| 1474 | 1474 | }  | 
                                                        
| 1475 | 1475 | }  | 
                                                        
| 1476 | -add_action( 'wpinv_checkout_cart', 'wpinv_checkout_cart', 10 );  | 
                                                        |
| 1476 | +add_action('wpinv_checkout_cart', 'wpinv_checkout_cart', 10); | 
                                                        |
| 1477 | 1477 | |
| 1478 | 1478 |  function wpinv_empty_cart_message() { | 
                                                        
| 1479 | - return apply_filters( 'wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __( 'Your cart is empty.', 'invoicing' ) . '</span>' );  | 
                                                        |
| 1479 | +	return apply_filters('wpinv_empty_cart_message', '<span class="wpinv_empty_cart">' . __('Your cart is empty.', 'invoicing') . '</span>'); | 
                                                        |
| 1480 | 1480 | }  | 
                                                        
| 1481 | 1481 | |
| 1482 | 1482 | /**  | 
                                                        
@@ -1488,83 +1488,83 @@ discard block  | 
                                                    ||
| 1488 | 1488 |  function wpinv_empty_checkout_cart() { | 
                                                        
| 1489 | 1489 | echo wpinv_empty_cart_message();  | 
                                                        
| 1490 | 1490 | }  | 
                                                        
| 1491 | -add_action( 'wpinv_cart_empty', 'wpinv_empty_checkout_cart' );  | 
                                                        |
| 1491 | +add_action('wpinv_cart_empty', 'wpinv_empty_checkout_cart'); | 
                                                        |
| 1492 | 1492 | |
| 1493 | 1493 |  function wpinv_update_cart_button() { | 
                                                        
| 1494 | - if ( !wpinv_item_quantities_enabled() )  | 
                                                        |
| 1494 | + if (!wpinv_item_quantities_enabled())  | 
                                                        |
| 1495 | 1495 | return;  | 
                                                        
| 1496 | 1496 | ?>  | 
                                                        
| 1497 | - <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e( 'Update Cart', 'invoicing' ); ?>"/>  | 
                                                        |
| 1497 | +    <input type="submit" name="wpinv_update_cart_submit" class="wpinv-submit wpinv-no-js button" value="<?php _e('Update Cart', 'invoicing'); ?>"/> | 
                                                        |
| 1498 | 1498 | <input type="hidden" name="wpi_action" value="update_cart"/>  | 
                                                        
| 1499 | 1499 | <?php  | 
                                                        
| 1500 | 1500 | }  | 
                                                        
| 1501 | 1501 | |
| 1502 | 1502 |  function wpinv_checkout_cart_columns() { | 
                                                        
| 1503 | 1503 | $default = 3;  | 
                                                        
| 1504 | -    if ( wpinv_item_quantities_enabled() ) { | 
                                                        |
| 1504 | +    if (wpinv_item_quantities_enabled()) { | 
                                                        |
| 1505 | 1505 | $default++;  | 
                                                        
| 1506 | 1506 | }  | 
                                                        
| 1507 | 1507 | |
| 1508 | -    if ( wpinv_use_taxes() ) { | 
                                                        |
| 1508 | +    if (wpinv_use_taxes()) { | 
                                                        |
| 1509 | 1509 | $default++;  | 
                                                        
| 1510 | 1510 | }  | 
                                                        
| 1511 | 1511 | |
| 1512 | - return apply_filters( 'wpinv_checkout_cart_columns', $default );  | 
                                                        |
| 1512 | +    return apply_filters('wpinv_checkout_cart_columns', $default); | 
                                                        |
| 1513 | 1513 | }  | 
                                                        
| 1514 | 1514 | |
| 1515 | 1515 |  function wpinv_display_cart_messages() { | 
                                                        
| 1516 | 1516 | global $wpi_session;  | 
                                                        
| 1517 | 1517 | |
| 1518 | - $messages = $wpi_session->get( 'wpinv_cart_messages' );  | 
                                                        |
| 1518 | +    $messages = $wpi_session->get('wpinv_cart_messages'); | 
                                                        |
| 1519 | 1519 | |
| 1520 | -    if ( $messages ) { | 
                                                        |
| 1521 | -        foreach ( $messages as $message_id => $message ) { | 
                                                        |
| 1520 | +    if ($messages) { | 
                                                        |
| 1521 | +        foreach ($messages as $message_id => $message) { | 
                                                        |
| 1522 | 1522 | // Try and detect what type of message this is  | 
                                                        
| 1523 | -            if ( strpos( strtolower( $message ), 'error' ) ) { | 
                                                        |
| 1523 | +            if (strpos(strtolower($message), 'error')) { | 
                                                        |
| 1524 | 1524 | $type = 'error';  | 
                                                        
| 1525 | -            } elseif ( strpos( strtolower( $message ), 'success' ) ) { | 
                                                        |
| 1525 | +            } elseif (strpos(strtolower($message), 'success')) { | 
                                                        |
| 1526 | 1526 | $type = 'success';  | 
                                                        
| 1527 | 1527 |              } else { | 
                                                        
| 1528 | 1528 | $type = 'info';  | 
                                                        
| 1529 | 1529 | }  | 
                                                        
| 1530 | 1530 | |
| 1531 | - $classes = apply_filters( 'wpinv_' . $type . '_class', array( 'wpinv_errors', 'wpinv-alert', 'wpinv-alert-' . $type ) );  | 
                                                        |
| 1531 | +            $classes = apply_filters('wpinv_' . $type . '_class', array('wpinv_errors', 'wpinv-alert', 'wpinv-alert-' . $type)); | 
                                                        |
| 1532 | 1532 | |
| 1533 | - echo '<div class="' . implode( ' ', $classes ) . '">';  | 
                                                        |
| 1533 | +            echo '<div class="' . implode(' ', $classes) . '">'; | 
                                                        |
| 1534 | 1534 | // Loop message codes and display messages  | 
                                                        
| 1535 | 1535 | echo '<p class="wpinv_error" id="wpinv_msg_' . $message_id . '">' . $message . '</p>';  | 
                                                        
| 1536 | 1536 | echo '</div>';  | 
                                                        
| 1537 | 1537 | }  | 
                                                        
| 1538 | 1538 | |
| 1539 | 1539 | // Remove all of the cart saving messages  | 
                                                        
| 1540 | - $wpi_session->set( 'wpinv_cart_messages', null );  | 
                                                        |
| 1540 | +        $wpi_session->set('wpinv_cart_messages', null); | 
                                                        |
| 1541 | 1541 | }  | 
                                                        
| 1542 | 1542 | }  | 
                                                        
| 1543 | -add_action( 'wpinv_before_checkout_cart', 'wpinv_display_cart_messages' );  | 
                                                        |
| 1543 | +add_action('wpinv_before_checkout_cart', 'wpinv_display_cart_messages'); | 
                                                        |
| 1544 | 1544 | |
| 1545 | 1545 |  function wpinv_discount_field() { | 
                                                        
| 1546 | -    if ( isset( $_GET['wpi-gateway'] ) && wpinv_is_ajax_disabled() ) { | 
                                                        |
| 1546 | +    if (isset($_GET['wpi-gateway']) && wpinv_is_ajax_disabled()) { | 
                                                        |
| 1547 | 1547 | return; // Only show before a payment method has been selected if ajax is disabled  | 
                                                        
| 1548 | 1548 | }  | 
                                                        
| 1549 | 1549 | |
| 1550 | -    if ( !wpinv_is_checkout() ) { | 
                                                        |
| 1550 | +    if (!wpinv_is_checkout()) { | 
                                                        |
| 1551 | 1551 | return;  | 
                                                        
| 1552 | 1552 | }  | 
                                                        
| 1553 | 1553 | |
| 1554 | -    if ( wpinv_has_active_discounts() && wpinv_get_cart_total() ) { | 
                                                        |
| 1554 | +    if (wpinv_has_active_discounts() && wpinv_get_cart_total()) { | 
                                                        |
| 1555 | 1555 | ?>  | 
                                                        
| 1556 | 1556 | <div id="wpinv-discount-field" class="panel panel-default">  | 
                                                        
| 1557 | 1557 | <div class="panel-body">  | 
                                                        
| 1558 | 1558 | <p>  | 
                                                        
| 1559 | - <label class="wpinv-label" for="wpinv_discount_code"><strong><?php _e( 'Discount', 'invoicing' ); ?></strong></label>  | 
                                                        |
| 1560 | - <span class="wpinv-description"><?php _e( 'Enter a discount code if you have one.', 'invoicing' ); ?></span>  | 
                                                        |
| 1559 | +                <label class="wpinv-label" for="wpinv_discount_code"><strong><?php _e('Discount', 'invoicing'); ?></strong></label> | 
                                                        |
| 1560 | +                <span class="wpinv-description"><?php _e('Enter a discount code if you have one.', 'invoicing'); ?></span> | 
                                                        |
| 1561 | 1561 | </p>  | 
                                                        
| 1562 | 1562 | <div class="form-group row">  | 
                                                        
| 1563 | 1563 | <div class="col-sm-4">  | 
                                                        
| 1564 | - <input class="wpinv-input form-control" type="text" id="wpinv_discount_code" name="wpinv_discount_code" placeholder="<?php _e( 'Enter discount code', 'invoicing' ); ?>"/>  | 
                                                        |
| 1564 | +                    <input class="wpinv-input form-control" type="text" id="wpinv_discount_code" name="wpinv_discount_code" placeholder="<?php _e('Enter discount code', 'invoicing'); ?>"/> | 
                                                        |
| 1565 | 1565 | </div>  | 
                                                        
| 1566 | 1566 | <div class="col-sm-3">  | 
                                                        
| 1567 | - <button id="wpi-apply-discount" type="button" class="btn btn-success btn-sm"><?php _e( 'Apply Discount', 'invoicing' ); ?></button>  | 
                                                        |
| 1567 | +                    <button id="wpi-apply-discount" type="button" class="btn btn-success btn-sm"><?php _e('Apply Discount', 'invoicing'); ?></button> | 
                                                        |
| 1568 | 1568 | </div>  | 
                                                        
| 1569 | 1569 | <div style="clear:both"></div>  | 
                                                        
| 1570 | 1570 | <div class="col-sm-12 wpinv-discount-msg">  | 
                                                        
@@ -1577,10 +1577,10 @@ discard block  | 
                                                    ||
| 1577 | 1577 | <?php  | 
                                                        
| 1578 | 1578 | }  | 
                                                        
| 1579 | 1579 | }  | 
                                                        
| 1580 | -add_action( 'wpinv_after_checkout_cart', 'wpinv_discount_field', -10 );  | 
                                                        |
| 1580 | +add_action('wpinv_after_checkout_cart', 'wpinv_discount_field', -10); | 
                                                        |
| 1581 | 1581 | |
| 1582 | 1582 |  function wpinv_agree_to_terms_js() { | 
                                                        
| 1583 | -    if ( wpinv_get_option( 'show_agree_to_terms', false ) ) { | 
                                                        |
| 1583 | +    if (wpinv_get_option('show_agree_to_terms', false)) { | 
                                                        |
| 1584 | 1584 | ?>  | 
                                                        
| 1585 | 1585 | <script type="text/javascript">  | 
                                                        
| 1586 | 1586 |      jQuery(document).ready(function($){ | 
                                                        
@@ -1595,125 +1595,125 @@ discard block  | 
                                                    ||
| 1595 | 1595 | <?php  | 
                                                        
| 1596 | 1596 | }  | 
                                                        
| 1597 | 1597 | }  | 
                                                        
| 1598 | -add_action( 'wpinv_checkout_form_top', 'wpinv_agree_to_terms_js' );  | 
                                                        |
| 1598 | +add_action('wpinv_checkout_form_top', 'wpinv_agree_to_terms_js'); | 
                                                        |
| 1599 | 1599 | |
| 1600 | 1600 |  function wpinv_payment_mode_select() { | 
                                                        
| 1601 | - $gateways = wpinv_get_enabled_payment_gateways( true );  | 
                                                        |
| 1602 | - $gateways = apply_filters( 'wpinv_payment_gateways_on_cart', $gateways );  | 
                                                        |
| 1603 | - $invoice = wpinv_get_invoice( 0, true );  | 
                                                        |
| 1601 | + $gateways = wpinv_get_enabled_payment_gateways(true);  | 
                                                        |
| 1602 | +    $gateways = apply_filters('wpinv_payment_gateways_on_cart', $gateways); | 
                                                        |
| 1603 | + $invoice = wpinv_get_invoice(0, true);  | 
                                                        |
| 1604 | 1604 | |
| 1605 | 1605 |      do_action('wpinv_payment_mode_top'); | 
                                                        
| 1606 | - $invoice_id = (int)$invoice->ID;  | 
                                                        |
| 1607 | - $chosen_gateway = wpinv_get_chosen_gateway( $invoice_id );  | 
                                                        |
| 1606 | + $invoice_id = (int) $invoice->ID;  | 
                                                        |
| 1607 | + $chosen_gateway = wpinv_get_chosen_gateway($invoice_id);  | 
                                                        |
| 1608 | 1608 | ?>  | 
                                                        
| 1609 | - <div id="wpinv_payment_mode_select" data-gateway="<?php echo $chosen_gateway; ?>" <?php echo ( $invoice->is_free() ? 'style="display:none;" data-free="1"' : '' ); ?>>  | 
                                                        |
| 1610 | - <?php do_action( 'wpinv_payment_mode_before_gateways_wrap' ); ?>  | 
                                                        |
| 1609 | + <div id="wpinv_payment_mode_select" data-gateway="<?php echo $chosen_gateway; ?>" <?php echo ($invoice->is_free() ? 'style="display:none;" data-free="1"' : ''); ?>>  | 
                                                        |
| 1610 | +            <?php do_action('wpinv_payment_mode_before_gateways_wrap'); ?> | 
                                                        |
| 1611 | 1611 | <div id="wpinv-payment-mode-wrap" class="panel panel-default">  | 
                                                        
| 1612 | - <div class="panel-heading"><h3 class="panel-title"><?php _e( 'Select Payment Method', 'invoicing' ); ?></h3></div>  | 
                                                        |
| 1612 | +                <div class="panel-heading"><h3 class="panel-title"><?php _e('Select Payment Method', 'invoicing'); ?></h3></div> | 
                                                        |
| 1613 | 1613 | <div class="panel-body list-group wpi-payment_methods">  | 
                                                        
| 1614 | 1614 | <?php  | 
                                                        
| 1615 | - do_action( 'wpinv_payment_mode_before_gateways' );  | 
                                                        |
| 1616 | -  | 
                                                        |
| 1617 | -                    if ( !empty( $gateways ) ) { | 
                                                        |
| 1618 | -                        foreach ( $gateways as $gateway_id => $gateway ) { | 
                                                        |
| 1619 | - $checked = checked( $gateway_id, $chosen_gateway, false );  | 
                                                        |
| 1620 | - $button_label = wpinv_get_gateway_button_label( $gateway_id );  | 
                                                        |
| 1621 | - $gateway_label = wpinv_get_gateway_checkout_label( $gateway_id );  | 
                                                        |
| 1622 | - $description = wpinv_get_gateway_description( $gateway_id );  | 
                                                        |
| 1615 | +                    do_action('wpinv_payment_mode_before_gateways'); | 
                                                        |
| 1616 | +  | 
                                                        |
| 1617 | +                    if (!empty($gateways)) { | 
                                                        |
| 1618 | +                        foreach ($gateways as $gateway_id => $gateway) { | 
                                                        |
| 1619 | + $checked = checked($gateway_id, $chosen_gateway, false);  | 
                                                        |
| 1620 | + $button_label = wpinv_get_gateway_button_label($gateway_id);  | 
                                                        |
| 1621 | + $gateway_label = wpinv_get_gateway_checkout_label($gateway_id);  | 
                                                        |
| 1622 | + $description = wpinv_get_gateway_description($gateway_id);  | 
                                                        |
| 1623 | 1623 | ?>  | 
                                                        
| 1624 | 1624 | <div class="list-group-item">  | 
                                                        
| 1625 | 1625 | <div class="radio">  | 
                                                        
| 1626 | - <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_label ); ?></label>  | 
                                                        |
| 1626 | + <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_label); ?></label>  | 
                                                        |
| 1627 | 1627 | </div>  | 
                                                        
| 1628 | - <div style="display:none;" class="payment_box wpi_gateway_<?php echo esc_attr( $gateway_id );?>" role="alert">  | 
                                                        |
| 1629 | -                                    <?php if ( !empty( $description ) ) { ?> | 
                                                        |
| 1630 | - <div class="wpi-gateway-desc alert alert-info"><?php _e( $description, 'invoicing' ); ?></div>  | 
                                                        |
| 1628 | + <div style="display:none;" class="payment_box wpi_gateway_<?php echo esc_attr($gateway_id); ?>" role="alert">  | 
                                                        |
| 1629 | +                                    <?php if (!empty($description)) { ?> | 
                                                        |
| 1630 | + <div class="wpi-gateway-desc alert alert-info"><?php _e($description, 'invoicing'); ?></div>  | 
                                                        |
| 1631 | 1631 | <?php } ?>  | 
                                                        
| 1632 | - <?php do_action( 'wpinv_' . $gateway_id . '_cc_form', $invoice_id ) ;?>  | 
                                                        |
| 1632 | +                                    <?php do_action('wpinv_' . $gateway_id . '_cc_form', $invoice_id); ?> | 
                                                        |
| 1633 | 1633 | </div>  | 
                                                        
| 1634 | 1634 | </div>  | 
                                                        
| 1635 | 1635 | <?php  | 
                                                        
| 1636 | 1636 | }  | 
                                                        
| 1637 | 1637 |                      } else { | 
                                                        
| 1638 | - echo '<div class="alert alert-warning">'. __( 'No payment gateway active', 'invoicing' ) .'</div>';  | 
                                                        |
| 1638 | +                        echo '<div class="alert alert-warning">' . __('No payment gateway active', 'invoicing') . '</div>'; | 
                                                        |
| 1639 | 1639 | }  | 
                                                        
| 1640 | 1640 | |
| 1641 | - do_action( 'wpinv_payment_mode_after_gateways' );  | 
                                                        |
| 1641 | +                    do_action('wpinv_payment_mode_after_gateways'); | 
                                                        |
| 1642 | 1642 | ?>  | 
                                                        
| 1643 | 1643 | </div>  | 
                                                        
| 1644 | 1644 | </div>  | 
                                                        
| 1645 | - <?php do_action( 'wpinv_payment_mode_after_gateways_wrap' ); ?>  | 
                                                        |
| 1645 | +            <?php do_action('wpinv_payment_mode_after_gateways_wrap'); ?> | 
                                                        |
| 1646 | 1646 | </div>  | 
                                                        
| 1647 | 1647 | <?php  | 
                                                        
| 1648 | 1648 |      do_action('wpinv_payment_mode_bottom'); | 
                                                        
| 1649 | 1649 | }  | 
                                                        
| 1650 | -add_action( 'wpinv_payment_mode_select', 'wpinv_payment_mode_select' );  | 
                                                        |
| 1650 | +add_action('wpinv_payment_mode_select', 'wpinv_payment_mode_select'); | 
                                                        |
| 1651 | 1651 | |
| 1652 | 1652 |  function wpinv_checkout_billing_info() { | 
                                                        
| 1653 | -    if ( wpinv_is_checkout() ) { | 
                                                        |
| 1653 | +    if (wpinv_is_checkout()) { | 
                                                        |
| 1654 | 1654 | $billing_details = wpinv_checkout_billing_details();  | 
                                                        
| 1655 | - $selected_country = !empty( $billing_details['country'] ) ? $billing_details['country'] : wpinv_default_billing_country();  | 
                                                        |
| 1655 | + $selected_country = !empty($billing_details['country']) ? $billing_details['country'] : wpinv_default_billing_country();  | 
                                                        |
| 1656 | 1656 | ?>  | 
                                                        
| 1657 | 1657 | <div id="wpinv-fields" class="clearfix">  | 
                                                        
| 1658 | 1658 | <div id="wpi-billing" class="wpi-billing clearfix panel panel-default">  | 
                                                        
| 1659 | - <div class="panel-heading"><h3 class="panel-title"><?php _e( 'Billing Details', 'invoicing' );?></h3></div>  | 
                                                        |
| 1659 | +                <div class="panel-heading"><h3 class="panel-title"><?php _e('Billing Details', 'invoicing'); ?></h3></div> | 
                                                        |
| 1660 | 1660 | <div id="wpinv-fields-box" class="panel-body">  | 
                                                        
| 1661 | - <?php do_action( 'wpinv_checkout_billing_fields_first', $billing_details ); ?>  | 
                                                        |
| 1661 | +                    <?php do_action('wpinv_checkout_billing_fields_first', $billing_details); ?> | 
                                                        |
| 1662 | 1662 | <p class="wpi-cart-field wpi-col2 wpi-colf">  | 
                                                        
| 1663 | -                        <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> | 
                                                        |
| 1663 | +                        <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> | 
                                                        |
| 1664 | 1664 | <?php  | 
                                                        
| 1665 | - echo wpinv_html_text( array(  | 
                                                        |
| 1665 | + echo wpinv_html_text(array(  | 
                                                        |
| 1666 | 1666 | 'id' => 'wpinv_first_name',  | 
                                                        
| 1667 | 1667 | 'name' => 'wpinv_first_name',  | 
                                                        
| 1668 | 1668 | 'value' => $billing_details['first_name'],  | 
                                                        
| 1669 | 1669 | 'class' => 'wpi-input form-control',  | 
                                                        
| 1670 | - 'placeholder' => __( 'First name', 'invoicing' ),  | 
                                                        |
| 1671 | - 'required' => (bool)wpinv_get_option( 'fname_mandatory' ),  | 
                                                        |
| 1672 | - ) );  | 
                                                        |
| 1670 | +                                'placeholder'   => __('First name', 'invoicing'), | 
                                                        |
| 1671 | +                                'required'      => (bool) wpinv_get_option('fname_mandatory'), | 
                                                        |
| 1672 | + ));  | 
                                                        |
| 1673 | 1673 | ?>  | 
                                                        
| 1674 | 1674 | </p>  | 
                                                        
| 1675 | 1675 | <p class="wpi-cart-field wpi-col2 wpi-coll">  | 
                                                        
| 1676 | -                        <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> | 
                                                        |
| 1676 | +                        <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> | 
                                                        |
| 1677 | 1677 | <?php  | 
                                                        
| 1678 | - echo wpinv_html_text( array(  | 
                                                        |
| 1678 | + echo wpinv_html_text(array(  | 
                                                        |
| 1679 | 1679 | 'id' => 'wpinv_last_name',  | 
                                                        
| 1680 | 1680 | 'name' => 'wpinv_last_name',  | 
                                                        
| 1681 | 1681 | 'value' => $billing_details['last_name'],  | 
                                                        
| 1682 | 1682 | 'class' => 'wpi-input form-control',  | 
                                                        
| 1683 | - 'placeholder' => __( 'Last name', 'invoicing' ),  | 
                                                        |
| 1684 | - 'required' => (bool)wpinv_get_option( 'lname_mandatory' ),  | 
                                                        |
| 1685 | - ) );  | 
                                                        |
| 1683 | +                                'placeholder'   => __('Last name', 'invoicing'), | 
                                                        |
| 1684 | +                                'required'      => (bool) wpinv_get_option('lname_mandatory'), | 
                                                        |
| 1685 | + ));  | 
                                                        |
| 1686 | 1686 | ?>  | 
                                                        
| 1687 | 1687 | </p>  | 
                                                        
| 1688 | 1688 | <p class="wpi-cart-field wpi-col2 wpi-colf">  | 
                                                        
| 1689 | -                        <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> | 
                                                        |
| 1689 | +                        <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> | 
                                                        |
| 1690 | 1690 | <?php  | 
                                                        
| 1691 | - echo wpinv_html_text( array(  | 
                                                        |
| 1691 | + echo wpinv_html_text(array(  | 
                                                        |
| 1692 | 1692 | 'id' => 'wpinv_address',  | 
                                                        
| 1693 | 1693 | 'name' => 'wpinv_address',  | 
                                                        
| 1694 | 1694 | 'value' => $billing_details['address'],  | 
                                                        
| 1695 | 1695 | 'class' => 'wpi-input form-control',  | 
                                                        
| 1696 | - 'placeholder' => __( 'Address', 'invoicing' ),  | 
                                                        |
| 1697 | - 'required' => (bool)wpinv_get_option( 'address_mandatory' ),  | 
                                                        |
| 1698 | - ) );  | 
                                                        |
| 1696 | +                                'placeholder'   => __('Address', 'invoicing'), | 
                                                        |
| 1697 | +                                'required'      => (bool) wpinv_get_option('address_mandatory'), | 
                                                        |
| 1698 | + ));  | 
                                                        |
| 1699 | 1699 | ?>  | 
                                                        
| 1700 | 1700 | </p>  | 
                                                        
| 1701 | 1701 | <p class="wpi-cart-field wpi-col2 wpi-coll">  | 
                                                        
| 1702 | -                        <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> | 
                                                        |
| 1702 | +                        <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> | 
                                                        |
| 1703 | 1703 | <?php  | 
                                                        
| 1704 | - echo wpinv_html_text( array(  | 
                                                        |
| 1704 | + echo wpinv_html_text(array(  | 
                                                        |
| 1705 | 1705 | 'id' => 'wpinv_city',  | 
                                                        
| 1706 | 1706 | 'name' => 'wpinv_city',  | 
                                                        
| 1707 | 1707 | 'value' => $billing_details['city'],  | 
                                                        
| 1708 | 1708 | 'class' => 'wpi-input form-control',  | 
                                                        
| 1709 | - 'placeholder' => __( 'City', 'invoicing' ),  | 
                                                        |
| 1710 | - 'required' => (bool)wpinv_get_option( 'city_mandatory' ),  | 
                                                        |
| 1711 | - ) );  | 
                                                        |
| 1709 | +                                'placeholder'   => __('City', 'invoicing'), | 
                                                        |
| 1710 | +                                'required'      => (bool) wpinv_get_option('city_mandatory'), | 
                                                        |
| 1711 | + ));  | 
                                                        |
| 1712 | 1712 | ?>  | 
                                                        
| 1713 | 1713 | </p>  | 
                                                        
| 1714 | 1714 | <p id="wpinv_country_box" class="wpi-cart-field wpi-col2 wpi-colf">  | 
                                                        
| 1715 | -                        <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> | 
                                                        |
| 1716 | - <?php echo wpinv_html_select( array(  | 
                                                        |
| 1715 | +                        <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> | 
                                                        |
| 1716 | + <?php echo wpinv_html_select(array(  | 
                                                        |
| 1717 | 1717 | 'options' => wpinv_get_country_list(),  | 
                                                        
| 1718 | 1718 | 'name' => 'wpinv_country',  | 
                                                        
| 1719 | 1719 | 'id' => 'wpinv_country',  | 
                                                        
@@ -1721,16 +1721,16 @@ discard block  | 
                                                    ||
| 1721 | 1721 | 'show_option_all' => false,  | 
                                                        
| 1722 | 1722 | 'show_option_none' => false,  | 
                                                        
| 1723 | 1723 | 'class' => 'wpi-input form-control wpi_select2',  | 
                                                        
| 1724 | - 'placeholder' => __( 'Choose a country', 'invoicing' ),  | 
                                                        |
| 1725 | - 'required' => (bool)wpinv_get_option( 'country_mandatory' ),  | 
                                                        |
| 1726 | - ) ); ?>  | 
                                                        |
| 1724 | +                            'placeholder'      => __('Choose a country', 'invoicing'), | 
                                                        |
| 1725 | +                            'required'         => (bool) wpinv_get_option('country_mandatory'), | 
                                                        |
| 1726 | + )); ?>  | 
                                                        |
| 1727 | 1727 | </p>  | 
                                                        
| 1728 | 1728 | <p id="wpinv_state_box" class="wpi-cart-field wpi-col2 wpi-coll">  | 
                                                        
| 1729 | -                        <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> | 
                                                        |
| 1729 | +                        <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> | 
                                                        |
| 1730 | 1730 | <?php  | 
                                                        
| 1731 | - $states = wpinv_get_country_states( $selected_country );  | 
                                                        |
| 1732 | -                        if( !empty( $states ) ) { | 
                                                        |
| 1733 | - echo wpinv_html_select( array(  | 
                                                        |
| 1731 | + $states = wpinv_get_country_states($selected_country);  | 
                                                        |
| 1732 | +                        if (!empty($states)) { | 
                                                        |
| 1733 | + echo wpinv_html_select(array(  | 
                                                        |
| 1734 | 1734 | 'options' => $states,  | 
                                                        
| 1735 | 1735 | 'name' => 'wpinv_state',  | 
                                                        
| 1736 | 1736 | 'id' => 'wpinv_state',  | 
                                                        
@@ -1738,61 +1738,61 @@ discard block  | 
                                                    ||
| 1738 | 1738 | 'show_option_all' => false,  | 
                                                        
| 1739 | 1739 | 'show_option_none' => false,  | 
                                                        
| 1740 | 1740 | 'class' => 'wpi-input form-control wpi_select2',  | 
                                                        
| 1741 | - 'placeholder' => __( 'Choose a state', 'invoicing' ),  | 
                                                        |
| 1742 | - 'required' => (bool)wpinv_get_option( 'state_mandatory' ),  | 
                                                        |
| 1743 | - ) );  | 
                                                        |
| 1741 | +                                'placeholder'      => __('Choose a state', 'invoicing'), | 
                                                        |
| 1742 | +                                'required'         => (bool) wpinv_get_option('state_mandatory'), | 
                                                        |
| 1743 | + ));  | 
                                                        |
| 1744 | 1744 |                          } else { | 
                                                        
| 1745 | - echo wpinv_html_text( array(  | 
                                                        |
| 1745 | + echo wpinv_html_text(array(  | 
                                                        |
| 1746 | 1746 | 'name' => 'wpinv_state',  | 
                                                        
| 1747 | 1747 | 'value' => $billing_details['state'],  | 
                                                        
| 1748 | 1748 | 'id' => 'wpinv_state',  | 
                                                        
| 1749 | 1749 | 'class' => 'wpi-input form-control',  | 
                                                        
| 1750 | - 'placeholder' => __( 'State / Province', 'invoicing' ),  | 
                                                        |
| 1751 | - 'required' => (bool)wpinv_get_option( 'state_mandatory' ),  | 
                                                        |
| 1752 | - ) );  | 
                                                        |
| 1750 | +                                'placeholder'   => __('State / Province', 'invoicing'), | 
                                                        |
| 1751 | +                                'required'      => (bool) wpinv_get_option('state_mandatory'), | 
                                                        |
| 1752 | + ));  | 
                                                        |
| 1753 | 1753 | }  | 
                                                        
| 1754 | 1754 | ?>  | 
                                                        
| 1755 | 1755 | </p>  | 
                                                        
| 1756 | 1756 | <p class="wpi-cart-field wpi-col2 wpi-colf">  | 
                                                        
| 1757 | -                        <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> | 
                                                        |
| 1757 | +                        <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> | 
                                                        |
| 1758 | 1758 | <?php  | 
                                                        
| 1759 | - echo wpinv_html_text( array(  | 
                                                        |
| 1759 | + echo wpinv_html_text(array(  | 
                                                        |
| 1760 | 1760 | 'name' => 'wpinv_zip',  | 
                                                        
| 1761 | 1761 | 'value' => $billing_details['zip'],  | 
                                                        
| 1762 | 1762 | 'id' => 'wpinv_zip',  | 
                                                        
| 1763 | 1763 | 'class' => 'wpi-input form-control',  | 
                                                        
| 1764 | - 'placeholder' => __( 'ZIP / Postcode', 'invoicing' ),  | 
                                                        |
| 1765 | - 'required' => (bool)wpinv_get_option( 'zip_mandatory' ),  | 
                                                        |
| 1766 | - ) );  | 
                                                        |
| 1764 | +                                'placeholder'   => __('ZIP / Postcode', 'invoicing'), | 
                                                        |
| 1765 | +                                'required'      => (bool) wpinv_get_option('zip_mandatory'), | 
                                                        |
| 1766 | + ));  | 
                                                        |
| 1767 | 1767 | ?>  | 
                                                        
| 1768 | 1768 | </p>  | 
                                                        
| 1769 | 1769 | <p class="wpi-cart-field wpi-col2 wpi-coll">  | 
                                                        
| 1770 | -                        <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> | 
                                                        |
| 1770 | +                        <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> | 
                                                        |
| 1771 | 1771 | <?php  | 
                                                        
| 1772 | - echo wpinv_html_text( array(  | 
                                                        |
| 1772 | + echo wpinv_html_text(array(  | 
                                                        |
| 1773 | 1773 | 'id' => 'wpinv_phone',  | 
                                                        
| 1774 | 1774 | 'name' => 'wpinv_phone',  | 
                                                        
| 1775 | 1775 | 'value' => $billing_details['phone'],  | 
                                                        
| 1776 | 1776 | 'class' => 'wpi-input form-control',  | 
                                                        
| 1777 | - 'placeholder' => __( 'Phone', 'invoicing' ),  | 
                                                        |
| 1778 | - 'required' => (bool)wpinv_get_option( 'phone_mandatory' ),  | 
                                                        |
| 1779 | - ) );  | 
                                                        |
| 1777 | +                                'placeholder'   => __('Phone', 'invoicing'), | 
                                                        |
| 1778 | +                                'required'      => (bool) wpinv_get_option('phone_mandatory'), | 
                                                        |
| 1779 | + ));  | 
                                                        |
| 1780 | 1780 | ?>  | 
                                                        
| 1781 | 1781 | </p>  | 
                                                        
| 1782 | - <?php do_action( 'wpinv_checkout_billing_fields_last', $billing_details ); ?>  | 
                                                        |
| 1782 | +                    <?php do_action('wpinv_checkout_billing_fields_last', $billing_details); ?> | 
                                                        |
| 1783 | 1783 | <div class="clearfix"></div>  | 
                                                        
| 1784 | 1784 | </div>  | 
                                                        
| 1785 | 1785 | </div>  | 
                                                        
| 1786 | - <?php do_action( 'wpinv_after_billing_fields', $billing_details ); ?>  | 
                                                        |
| 1786 | +            <?php do_action('wpinv_after_billing_fields', $billing_details); ?> | 
                                                        |
| 1787 | 1787 | </div>  | 
                                                        
| 1788 | 1788 | <?php  | 
                                                        
| 1789 | 1789 | }  | 
                                                        
| 1790 | 1790 | }  | 
                                                        
| 1791 | -add_action( 'wpinv_checkout_billing_info', 'wpinv_checkout_billing_info' );  | 
                                                        |
| 1791 | +add_action('wpinv_checkout_billing_info', 'wpinv_checkout_billing_info'); | 
                                                        |
| 1792 | 1792 | |
| 1793 | 1793 |  function wpinv_checkout_hidden_fields() { | 
                                                        
| 1794 | 1794 | ?>  | 
                                                        
| 1795 | -    <?php if ( is_user_logged_in() ) { ?> | 
                                                        |
| 1795 | +    <?php if (is_user_logged_in()) { ?> | 
                                                        |
| 1796 | 1796 | <input type="hidden" name="wpinv_user_id" value="<?php echo get_current_user_id(); ?>"/>  | 
                                                        
| 1797 | 1797 | <?php } ?>  | 
                                                        
| 1798 | 1798 | <input type="hidden" name="wpi_action" value="payment" />  | 
                                                        
@@ -1802,9 +1802,9 @@ discard block  | 
                                                    ||
| 1802 | 1802 |  function wpinv_checkout_button_purchase() { | 
                                                        
| 1803 | 1803 | ob_start();  | 
                                                        
| 1804 | 1804 | ?>  | 
                                                        
| 1805 | - <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' ) ?>"/>  | 
                                                        |
| 1805 | +    <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') ?>"/> | 
                                                        |
| 1806 | 1806 | <?php  | 
                                                        
| 1807 | - return apply_filters( 'wpinv_checkout_button_purchase', ob_get_clean() );  | 
                                                        |
| 1807 | +    return apply_filters('wpinv_checkout_button_purchase', ob_get_clean()); | 
                                                        |
| 1808 | 1808 | }  | 
                                                        
| 1809 | 1809 | |
| 1810 | 1810 |  function wpinv_checkout_total() { | 
                                                        
@@ -1813,84 +1813,84 @@ discard block  | 
                                                    ||
| 1813 | 1813 | <div id="wpinv_checkout_total" class="panel panel-info">  | 
                                                        
| 1814 | 1814 | <div class="panel-body">  | 
                                                        
| 1815 | 1815 | <?php  | 
                                                        
| 1816 | - do_action( 'wpinv_purchase_form_before_checkout_total' );  | 
                                                        |
| 1816 | +    do_action('wpinv_purchase_form_before_checkout_total'); | 
                                                        |
| 1817 | 1817 | ?>  | 
                                                        
| 1818 | - <strong><?php _e( 'Invoice Total:', 'invoicing' ) ?></strong> <span class="wpinv-chdeckout-total"><?php echo $cart_total;?></span>  | 
                                                        |
| 1818 | +    <strong><?php _e('Invoice Total:', 'invoicing') ?></strong> <span class="wpinv-chdeckout-total"><?php echo $cart_total; ?></span> | 
                                                        |
| 1819 | 1819 | <?php  | 
                                                        
| 1820 | - do_action( 'wpinv_purchase_form_after_checkout_total' );  | 
                                                        |
| 1820 | +    do_action('wpinv_purchase_form_after_checkout_total'); | 
                                                        |
| 1821 | 1821 | ?>  | 
                                                        
| 1822 | 1822 | </div>  | 
                                                        
| 1823 | 1823 | </div>  | 
                                                        
| 1824 | 1824 | <?php  | 
                                                        
| 1825 | 1825 | }  | 
                                                        
| 1826 | -add_action( 'wpinv_checkout_form_bottom', 'wpinv_checkout_total', 9998 );  | 
                                                        |
| 1826 | +add_action('wpinv_checkout_form_bottom', 'wpinv_checkout_total', 9998); | 
                                                        |
| 1827 | 1827 | |
| 1828 | 1828 |  function wpinv_checkout_accept_tandc() { | 
                                                        
| 1829 | - $page = wpinv_get_option( 'tandc_page' );  | 
                                                        |
| 1829 | +    $page = wpinv_get_option('tandc_page'); | 
                                                        |
| 1830 | 1830 | ?>  | 
                                                        
| 1831 | 1831 | <div id="wpinv_checkout_tandc" class="panel panel-success">  | 
                                                        
| 1832 | 1832 | <div class="panel-body">  | 
                                                        
| 1833 | 1833 | <?php echo wpinv_get_policy_text(); ?>  | 
                                                        
| 1834 | 1834 | <?php  | 
                                                        
| 1835 | -            if(isset($page) && (int)$page > 0 && apply_filters( 'wpinv_checkout_show_terms', true )){ | 
                                                        |
| 1836 | - $terms_link = esc_url( get_permalink( $page ) );  | 
                                                        |
| 1835 | +            if (isset($page) && (int) $page > 0 && apply_filters('wpinv_checkout_show_terms', true)) { | 
                                                        |
| 1836 | + $terms_link = esc_url(get_permalink($page));  | 
                                                        |
| 1837 | 1837 | ?>  | 
                                                        
| 1838 | 1838 | <label class="">  | 
                                                        
| 1839 | - <input type="checkbox" class="wpi-terms-checkbox" name="wpi_terms" id="wpi-terms" <?php checked( apply_filters( 'wpinv_terms_is_checked_default', isset( $_POST['wpi_terms'] ) ), true ); ?>> <span><?php printf( __( 'I’ve read and accept the <a href="%s" target="_blank" class="wpi-terms-and-conditions-link">terms & conditions</a>', 'invoicing' ), $terms_link ); ?></span> <span class="wpi-required">*</span>  | 
                                                        |
| 1839 | +                    <input type="checkbox" class="wpi-terms-checkbox" name="wpi_terms" id="wpi-terms" <?php checked(apply_filters('wpinv_terms_is_checked_default', isset($_POST['wpi_terms'])), true); ?>> <span><?php printf(__('I’ve read and accept the <a href="%s" target="_blank" class="wpi-terms-and-conditions-link">terms & conditions</a>', 'invoicing'), $terms_link); ?></span> <span class="wpi-required">*</span> | 
                                                        |
| 1840 | 1840 | </label>  | 
                                                        
| 1841 | 1841 | <?php } ?>  | 
                                                        
| 1842 | 1842 | </div>  | 
                                                        
| 1843 | 1843 | </div>  | 
                                                        
| 1844 | 1844 | <?php  | 
                                                        
| 1845 | 1845 | }  | 
                                                        
| 1846 | -add_action( 'wpinv_checkout_form_bottom', 'wpinv_checkout_accept_tandc', 9995 );  | 
                                                        |
| 1846 | +add_action('wpinv_checkout_form_bottom', 'wpinv_checkout_accept_tandc', 9995); | 
                                                        |
| 1847 | 1847 | |
| 1848 | 1848 |  function wpinv_checkout_submit() { | 
                                                        
| 1849 | 1849 | ?>  | 
                                                        
| 1850 | 1850 | <div id="wpinv_purchase_submit" class="panel panel-success">  | 
                                                        
| 1851 | 1851 | <div class="panel-body text-center">  | 
                                                        
| 1852 | 1852 | <?php  | 
                                                        
| 1853 | - do_action( 'wpinv_purchase_form_before_submit' );  | 
                                                        |
| 1853 | +    do_action('wpinv_purchase_form_before_submit'); | 
                                                        |
| 1854 | 1854 | wpinv_checkout_hidden_fields();  | 
                                                        
| 1855 | 1855 | echo wpinv_checkout_button_purchase();  | 
                                                        
| 1856 | - do_action( 'wpinv_purchase_form_after_submit' );  | 
                                                        |
| 1856 | +    do_action('wpinv_purchase_form_after_submit'); | 
                                                        |
| 1857 | 1857 | ?>  | 
                                                        
| 1858 | 1858 | </div>  | 
                                                        
| 1859 | 1859 | </div>  | 
                                                        
| 1860 | 1860 | <?php  | 
                                                        
| 1861 | 1861 | }  | 
                                                        
| 1862 | -add_action( 'wpinv_checkout_form_bottom', 'wpinv_checkout_submit', 9999 );  | 
                                                        |
| 1862 | +add_action('wpinv_checkout_form_bottom', 'wpinv_checkout_submit', 9999); | 
                                                        |
| 1863 | 1863 | |
| 1864 | -function wpinv_receipt_billing_address( $invoice_id = 0 ) { | 
                                                        |
| 1865 | - $invoice = wpinv_get_invoice( $invoice_id );  | 
                                                        |
| 1864 | +function wpinv_receipt_billing_address($invoice_id = 0) { | 
                                                        |
| 1865 | + $invoice = wpinv_get_invoice($invoice_id);  | 
                                                        |
| 1866 | 1866 | |
| 1867 | -    if ( empty( $invoice ) ) { | 
                                                        |
| 1867 | +    if (empty($invoice)) { | 
                                                        |
| 1868 | 1868 | return NULL;  | 
                                                        
| 1869 | 1869 | }  | 
                                                        
| 1870 | 1870 | |
| 1871 | 1871 | $billing_details = $invoice->get_user_info();  | 
                                                        
| 1872 | - $address_row = wpinv_get_invoice_address_markup( $billing_details );  | 
                                                        |
| 1872 | + $address_row = wpinv_get_invoice_address_markup($billing_details);  | 
                                                        |
| 1873 | 1873 | |
| 1874 | 1874 | ob_start();  | 
                                                        
| 1875 | 1875 | ?>  | 
                                                        
| 1876 | 1876 | <table class="table table-bordered table-sm wpi-billing-details">  | 
                                                        
| 1877 | 1877 | <tbody>  | 
                                                        
| 1878 | 1878 | <tr class="wpi-receipt-name">  | 
                                                        
| 1879 | - <th class="text-left"><?php _e( 'Name', 'invoicing' ); ?></th>  | 
                                                        |
| 1880 | - <td><?php echo esc_html( trim( $billing_details['first_name'] . ' ' . $billing_details['last_name'] ) ) ;?></td>  | 
                                                        |
| 1879 | +                <th class="text-left"><?php _e('Name', 'invoicing'); ?></th> | 
                                                        |
| 1880 | + <td><?php echo esc_html(trim($billing_details['first_name'] . ' ' . $billing_details['last_name'])); ?></td>  | 
                                                        |
| 1881 | 1881 | </tr>  | 
                                                        
| 1882 | 1882 | <tr class="wpi-receipt-email">  | 
                                                        
| 1883 | - <th class="text-left"><?php _e( 'Email', 'invoicing' ); ?></th>  | 
                                                        |
| 1884 | - <td><?php echo $billing_details['email'] ;?></td>  | 
                                                        |
| 1883 | +                <th class="text-left"><?php _e('Email', 'invoicing'); ?></th> | 
                                                        |
| 1884 | + <td><?php echo $billing_details['email']; ?></td>  | 
                                                        |
| 1885 | 1885 | </tr>  | 
                                                        
| 1886 | 1886 | <tr class="wpi-receipt-address">  | 
                                                        
| 1887 | - <th class="text-left"><?php _e( 'Address', 'invoicing' ); ?></th>  | 
                                                        |
| 1888 | - <td><?php echo $address_row ;?></td>  | 
                                                        |
| 1887 | +                <th class="text-left"><?php _e('Address', 'invoicing'); ?></th> | 
                                                        |
| 1888 | + <td><?php echo $address_row; ?></td>  | 
                                                        |
| 1889 | 1889 | </tr>  | 
                                                        
| 1890 | -            <?php if ( $billing_details['phone'] ) { ?> | 
                                                        |
| 1890 | +            <?php if ($billing_details['phone']) { ?> | 
                                                        |
| 1891 | 1891 | <tr class="wpi-receipt-phone">  | 
                                                        
| 1892 | - <th class="text-left"><?php _e( 'Phone', 'invoicing' ); ?></th>  | 
                                                        |
| 1893 | - <td><?php echo esc_html( $billing_details['phone'] ) ;?></td>  | 
                                                        |
| 1892 | +                <th class="text-left"><?php _e('Phone', 'invoicing'); ?></th> | 
                                                        |
| 1893 | + <td><?php echo esc_html($billing_details['phone']); ?></td>  | 
                                                        |
| 1894 | 1894 | </tr>  | 
                                                        
| 1895 | 1895 | <?php } ?>  | 
                                                        
| 1896 | 1896 | </tbody>  | 
                                                        
@@ -1898,74 +1898,74 @@ discard block  | 
                                                    ||
| 1898 | 1898 | <?php  | 
                                                        
| 1899 | 1899 | $output = ob_get_clean();  | 
                                                        
| 1900 | 1900 | |
| 1901 | - $output = apply_filters( 'wpinv_receipt_billing_address', $output, $invoice_id );  | 
                                                        |
| 1901 | +    $output = apply_filters('wpinv_receipt_billing_address', $output, $invoice_id); | 
                                                        |
| 1902 | 1902 | |
| 1903 | 1903 | echo $output;  | 
                                                        
| 1904 | 1904 | }  | 
                                                        
| 1905 | 1905 | |
| 1906 | -function wpinv_filter_success_page_content( $content ) { | 
                                                        |
| 1907 | -    if ( isset( $_GET['payment-confirm'] ) && wpinv_is_success_page() ) { | 
                                                        |
| 1908 | -        if ( has_filter( 'wpinv_payment_confirm_' . sanitize_text_field( $_GET['payment-confirm'] ) ) ) { | 
                                                        |
| 1909 | - $content = apply_filters( 'wpinv_payment_confirm_' . sanitize_text_field( $_GET['payment-confirm'] ), $content );  | 
                                                        |
| 1906 | +function wpinv_filter_success_page_content($content) { | 
                                                        |
| 1907 | +    if (isset($_GET['payment-confirm']) && wpinv_is_success_page()) { | 
                                                        |
| 1908 | +        if (has_filter('wpinv_payment_confirm_' . sanitize_text_field($_GET['payment-confirm']))) { | 
                                                        |
| 1909 | +            $content = apply_filters('wpinv_payment_confirm_' . sanitize_text_field($_GET['payment-confirm']), $content); | 
                                                        |
| 1910 | 1910 | }  | 
                                                        
| 1911 | 1911 | }  | 
                                                        
| 1912 | 1912 | |
| 1913 | 1913 | return $content;  | 
                                                        
| 1914 | 1914 | }  | 
                                                        
| 1915 | -add_filter( 'the_content', 'wpinv_filter_success_page_content', 99999 );  | 
                                                        |
| 1915 | +add_filter('the_content', 'wpinv_filter_success_page_content', 99999); | 
                                                        |
| 1916 | 1916 | |
| 1917 | -function wpinv_receipt_actions( $invoice ) { | 
                                                        |
| 1918 | -    if ( !empty( $invoice ) ) { | 
                                                        |
| 1917 | +function wpinv_receipt_actions($invoice) { | 
                                                        |
| 1918 | +    if (!empty($invoice)) { | 
                                                        |
| 1919 | 1919 | $actions = array();  | 
                                                        
| 1920 | 1920 | |
| 1921 | -        if ( wpinv_user_can_view_invoice( $invoice->ID ) ) { | 
                                                        |
| 1922 | - $actions['print'] = array(  | 
                                                        |
| 1923 | - 'url' => $invoice->get_view_url( true ),  | 
                                                        |
| 1924 | - 'name' => __( 'Print Invoice', 'invoicing' ),  | 
                                                        |
| 1921 | +        if (wpinv_user_can_view_invoice($invoice->ID)) { | 
                                                        |
| 1922 | + $actions['print'] = array(  | 
                                                        |
| 1923 | + 'url' => $invoice->get_view_url(true),  | 
                                                        |
| 1924 | +                'name' => __('Print Invoice', 'invoicing'), | 
                                                        |
| 1925 | 1925 | 'class' => 'btn-primary',  | 
                                                        
| 1926 | 1926 | );  | 
                                                        
| 1927 | 1927 | }  | 
                                                        
| 1928 | 1928 | |
| 1929 | -        if ( is_user_logged_in() ) { | 
                                                        |
| 1929 | +        if (is_user_logged_in()) { | 
                                                        |
| 1930 | 1930 | $actions['history'] = array(  | 
                                                        
| 1931 | 1931 | 'url' => wpinv_get_history_page_uri(),  | 
                                                        
| 1932 | - 'name' => __( 'Invoice History', 'invoicing' ),  | 
                                                        |
| 1932 | +                'name' => __('Invoice History', 'invoicing'), | 
                                                        |
| 1933 | 1933 | 'class' => 'btn-warning',  | 
                                                        
| 1934 | 1934 | );  | 
                                                        
| 1935 | 1935 | }  | 
                                                        
| 1936 | 1936 | |
| 1937 | - $actions = apply_filters( 'wpinv_invoice_receipt_actions', $actions, $invoice );  | 
                                                        |
| 1937 | +        $actions = apply_filters('wpinv_invoice_receipt_actions', $actions, $invoice); | 
                                                        |
| 1938 | 1938 | |
| 1939 | -        if ( !empty( $actions ) ) { | 
                                                        |
| 1939 | +        if (!empty($actions)) { | 
                                                        |
| 1940 | 1940 | ?>  | 
                                                        
| 1941 | 1941 | <div class="wpinv-receipt-actions text-right">  | 
                                                        
| 1942 | -            <?php foreach ( $actions as $key => $action ) { $class = !empty($action['class']) ? sanitize_html_class( $action['class'] ) : ''; ?> | 
                                                        |
| 1943 | - <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>  | 
                                                        |
| 1942 | +            <?php foreach ($actions as $key => $action) { $class = !empty($action['class']) ? sanitize_html_class($action['class']) : ''; ?> | 
                                                        |
| 1943 | + <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>  | 
                                                        |
| 1944 | 1944 | <?php } ?>  | 
                                                        
| 1945 | 1945 | </div>  | 
                                                        
| 1946 | 1946 | <?php  | 
                                                        
| 1947 | 1947 | }  | 
                                                        
| 1948 | 1948 | }  | 
                                                        
| 1949 | 1949 | }  | 
                                                        
| 1950 | -add_action( 'wpinv_receipt_start', 'wpinv_receipt_actions', -10, 1 );  | 
                                                        |
| 1950 | +add_action('wpinv_receipt_start', 'wpinv_receipt_actions', -10, 1); | 
                                                        |
| 1951 | 1951 | |
| 1952 | -function wpinv_invoice_link( $invoice_id ) { | 
                                                        |
| 1953 | - $invoice = wpinv_get_invoice( $invoice_id );  | 
                                                        |
| 1952 | +function wpinv_invoice_link($invoice_id) { | 
                                                        |
| 1953 | + $invoice = wpinv_get_invoice($invoice_id);  | 
                                                        |
| 1954 | 1954 | |
| 1955 | -    if ( empty( $invoice ) ) { | 
                                                        |
| 1955 | +    if (empty($invoice)) { | 
                                                        |
| 1956 | 1956 | return NULL;  | 
                                                        
| 1957 | 1957 | }  | 
                                                        
| 1958 | 1958 | |
| 1959 | - $invoice_link = '<a href="' . esc_url( $invoice->get_view_url() ) . '">' . $invoice->get_number() . '</a>';  | 
                                                        |
| 1959 | + $invoice_link = '<a href="' . esc_url($invoice->get_view_url()) . '">' . $invoice->get_number() . '</a>';  | 
                                                        |
| 1960 | 1960 | |
| 1961 | - return apply_filters( 'wpinv_get_invoice_link', $invoice_link, $invoice );  | 
                                                        |
| 1961 | +    return apply_filters('wpinv_get_invoice_link', $invoice_link, $invoice); | 
                                                        |
| 1962 | 1962 | }  | 
                                                        
| 1963 | 1963 | |
| 1964 | -function wpinv_invoice_subscription_details( $invoice ) { | 
                                                        |
| 1965 | -    if ( !empty( $invoice ) && $invoice->is_recurring() && ! wpinv_is_subscription_payment( $invoice ) ) { | 
                                                        |
| 1966 | - $subscription = wpinv_get_subscription( $invoice, true );  | 
                                                        |
| 1964 | +function wpinv_invoice_subscription_details($invoice) { | 
                                                        |
| 1965 | +    if (!empty($invoice) && $invoice->is_recurring() && !wpinv_is_subscription_payment($invoice)) { | 
                                                        |
| 1966 | + $subscription = wpinv_get_subscription($invoice, true);  | 
                                                        |
| 1967 | 1967 | |
| 1968 | -        if ( empty( $subscription ) ) { | 
                                                        |
| 1968 | +        if (empty($subscription)) { | 
                                                        |
| 1969 | 1969 | return;  | 
                                                        
| 1970 | 1970 | }  | 
                                                        
| 1971 | 1971 | |
@@ -1976,15 +1976,15 @@ discard block  | 
                                                    ||
| 1976 | 1976 | $payments = $subscription->get_child_payments();  | 
                                                        
| 1977 | 1977 | ?>  | 
                                                        
| 1978 | 1978 | <div class="wpinv-subscriptions-details">  | 
                                                        
| 1979 | - <h3 class="wpinv-subscriptions-t"><?php echo apply_filters( 'wpinv_subscription_details_title', __( 'Subscription Details', 'invoicing' ) ); ?></h3>  | 
                                                        |
| 1979 | +            <h3 class="wpinv-subscriptions-t"><?php echo apply_filters('wpinv_subscription_details_title', __('Subscription Details', 'invoicing')); ?></h3> | 
                                                        |
| 1980 | 1980 | <table class="table">  | 
                                                        
| 1981 | 1981 | <thead>  | 
                                                        
| 1982 | 1982 | <tr>  | 
                                                        
| 1983 | - <th><?php _e( 'Billing Cycle', 'invoicing' ) ;?></th>  | 
                                                        |
| 1984 | - <th><?php _e( 'Start Date', 'invoicing' ) ;?></th>  | 
                                                        |
| 1985 | - <th><?php _e( 'Expiration Date', 'invoicing' ) ;?></th>  | 
                                                        |
| 1986 | - <th class="text-center"><?php _e( 'Times Billed', 'invoicing' ) ;?></th>  | 
                                                        |
| 1987 | - <th class="text-center"><?php _e( 'Status', 'invoicing' ) ;?></th>  | 
                                                        |
| 1983 | +                        <th><?php _e('Billing Cycle', 'invoicing'); ?></th> | 
                                                        |
| 1984 | +                        <th><?php _e('Start Date', 'invoicing'); ?></th> | 
                                                        |
| 1985 | +                        <th><?php _e('Expiration Date', 'invoicing'); ?></th> | 
                                                        |
| 1986 | +                        <th class="text-center"><?php _e('Times Billed', 'invoicing'); ?></th> | 
                                                        |
| 1987 | +                        <th class="text-center"><?php _e('Status', 'invoicing'); ?></th> | 
                                                        |
| 1988 | 1988 | </tr>  | 
                                                        
| 1989 | 1989 | </thead>  | 
                                                        
| 1990 | 1990 | <tbody>  | 
                                                        
@@ -1998,29 +1998,29 @@ discard block  | 
                                                    ||
| 1998 | 1998 | </tbody>  | 
                                                        
| 1999 | 1999 | </table>  | 
                                                        
| 2000 | 2000 | </div>  | 
                                                        
| 2001 | -        <?php if ( !empty( $payments ) ) { ?> | 
                                                        |
| 2001 | +        <?php if (!empty($payments)) { ?> | 
                                                        |
| 2002 | 2002 | <div class="wpinv-renewal-payments">  | 
                                                        
| 2003 | - <h3 class="wpinv-renewals-t"><?php echo apply_filters( 'wpinv_renewal_payments_title', __( 'Renewal Payments', 'invoicing' ) ); ?></h3>  | 
                                                        |
| 2003 | +            <h3 class="wpinv-renewals-t"><?php echo apply_filters('wpinv_renewal_payments_title', __('Renewal Payments', 'invoicing')); ?></h3> | 
                                                        |
| 2004 | 2004 | <table class="table">  | 
                                                        
| 2005 | 2005 | <thead>  | 
                                                        
| 2006 | 2006 | <tr>  | 
                                                        
| 2007 | 2007 | <th>#</th>  | 
                                                        
| 2008 | - <th><?php _e( 'Invoice', 'invoicing' ) ;?></th>  | 
                                                        |
| 2009 | - <th><?php _e( 'Date', 'invoicing' ) ;?></th>  | 
                                                        |
| 2010 | - <th class="text-right"><?php _e( 'Amount', 'invoicing' ) ;?></th>  | 
                                                        |
| 2008 | +                        <th><?php _e('Invoice', 'invoicing'); ?></th> | 
                                                        |
| 2009 | +                        <th><?php _e('Date', 'invoicing'); ?></th> | 
                                                        |
| 2010 | +                        <th class="text-right"><?php _e('Amount', 'invoicing'); ?></th> | 
                                                        |
| 2011 | 2011 | </tr>  | 
                                                        
| 2012 | 2012 | </thead>  | 
                                                        
| 2013 | 2013 | <tbody>  | 
                                                        
| 2014 | 2014 | <?php  | 
                                                        
| 2015 | 2015 | $i = 1;  | 
                                                        
| 2016 | -                        foreach ( $payments as $payment ) { | 
                                                        |
| 2016 | +                        foreach ($payments as $payment) { | 
                                                        |
| 2017 | 2017 | $invoice_id = $payment->ID;  | 
                                                        
| 2018 | 2018 | ?>  | 
                                                        
| 2019 | 2019 | <tr>  | 
                                                        
| 2020 | - <th scope="row"><?php echo $i;?></th>  | 
                                                        |
| 2021 | - <td><?php echo wpinv_invoice_link( $invoice_id ) ;?></td>  | 
                                                        |
| 2022 | - <td><?php echo wpinv_get_invoice_date( $invoice_id ); ?></td>  | 
                                                        |
| 2023 | - <td class="text-right"><?php echo wpinv_payment_total( $invoice_id, true ); ?></td>  | 
                                                        |
| 2020 | + <th scope="row"><?php echo $i; ?></th>  | 
                                                        |
| 2021 | + <td><?php echo wpinv_invoice_link($invoice_id); ?></td>  | 
                                                        |
| 2022 | + <td><?php echo wpinv_get_invoice_date($invoice_id); ?></td>  | 
                                                        |
| 2023 | + <td class="text-right"><?php echo wpinv_payment_total($invoice_id, true); ?></td>  | 
                                                        |
| 2024 | 2024 | </tr>  | 
                                                        
| 2025 | 2025 | <?php $i++; } ?>  | 
                                                        
| 2026 | 2026 | </tbody>  | 
                                                        
@@ -2031,52 +2031,52 @@ discard block  | 
                                                    ||
| 2031 | 2031 | }  | 
                                                        
| 2032 | 2032 | }  | 
                                                        
| 2033 | 2033 | |
| 2034 | -function wpinv_cart_total_label( $label, $invoice ) { | 
                                                        |
| 2035 | -    if ( empty( $invoice ) ) { | 
                                                        |
| 2034 | +function wpinv_cart_total_label($label, $invoice) { | 
                                                        |
| 2035 | +    if (empty($invoice)) { | 
                                                        |
| 2036 | 2036 | return $label;  | 
                                                        
| 2037 | 2037 | }  | 
                                                        
| 2038 | 2038 | |
| 2039 | 2039 | $prefix_label = '';  | 
                                                        
| 2040 | -    if ( $invoice->is_parent() && $item_id = $invoice->get_recurring() ) { | 
                                                        |
| 2041 | - $prefix_label = '<span class="label label-primary label-recurring">' . __( 'Recurring Payment', 'invoicing' ) . '</span> ' . wpinv_subscription_payment_desc( $invoice );  | 
                                                        |
| 2042 | -    } else if ( $invoice->is_renewal() ) { | 
                                                        |
| 2043 | - $prefix_label = '<span class="label label-primary label-renewal">' . __( 'Renewal Payment', 'invoicing' ) . '</span> ';  | 
                                                        |
| 2040 | +    if ($invoice->is_parent() && $item_id = $invoice->get_recurring()) { | 
                                                        |
| 2041 | +        $prefix_label   = '<span class="label label-primary label-recurring">' . __('Recurring Payment', 'invoicing') . '</span> ' . wpinv_subscription_payment_desc($invoice); | 
                                                        |
| 2042 | +    } else if ($invoice->is_renewal()) { | 
                                                        |
| 2043 | +        $prefix_label   = '<span class="label label-primary label-renewal">' . __('Renewal Payment', 'invoicing') . '</span> ';         | 
                                                        |
| 2044 | 2044 | }  | 
                                                        
| 2045 | 2045 | |
| 2046 | -    if ( $prefix_label != '' ) { | 
                                                        |
| 2047 | - $label = '<span class="wpinv-cart-sub-desc">' . $prefix_label . '</span> ' . $label;  | 
                                                        |
| 2046 | +    if ($prefix_label != '') { | 
                                                        |
| 2047 | + $label = '<span class="wpinv-cart-sub-desc">' . $prefix_label . '</span> ' . $label;  | 
                                                        |
| 2048 | 2048 | }  | 
                                                        
| 2049 | 2049 | |
| 2050 | 2050 | return $label;  | 
                                                        
| 2051 | 2051 | }  | 
                                                        
| 2052 | -add_filter( 'wpinv_cart_total_label', 'wpinv_cart_total_label', 10, 2 );  | 
                                                        |
| 2053 | -add_filter( 'wpinv_email_cart_total_label', 'wpinv_cart_total_label', 10, 2 );  | 
                                                        |
| 2054 | -add_filter( 'wpinv_print_cart_total_label', 'wpinv_cart_total_label', 10, 2 );  | 
                                                        |
| 2052 | +add_filter('wpinv_cart_total_label', 'wpinv_cart_total_label', 10, 2); | 
                                                        |
| 2053 | +add_filter('wpinv_email_cart_total_label', 'wpinv_cart_total_label', 10, 2); | 
                                                        |
| 2054 | +add_filter('wpinv_print_cart_total_label', 'wpinv_cart_total_label', 10, 2); | 
                                                        |
| 2055 | 2055 | |
| 2056 | -add_action( 'wpinv_invoice_print_middle', 'wpinv_invoice_subscription_details', 10, 1 );  | 
                                                        |
| 2056 | +add_action('wpinv_invoice_print_middle', 'wpinv_invoice_subscription_details', 10, 1); | 
                                                        |
| 2057 | 2057 | |
| 2058 | -function wpinv_invoice_print_description( $invoice ) { | 
                                                        |
| 2059 | -    if ( empty( $invoice ) ) { | 
                                                        |
| 2058 | +function wpinv_invoice_print_description($invoice) { | 
                                                        |
| 2059 | +    if (empty($invoice)) { | 
                                                        |
| 2060 | 2060 | return NULL;  | 
                                                        
| 2061 | 2061 | }  | 
                                                        
| 2062 | -    if ( $description = wpinv_get_invoice_description( $invoice->ID ) ) { | 
                                                        |
| 2062 | +    if ($description = wpinv_get_invoice_description($invoice->ID)) { | 
                                                        |
| 2063 | 2063 | ?>  | 
                                                        
| 2064 | 2064 | <div class="row wpinv-lower">  | 
                                                        
| 2065 | 2065 | <div class="col-sm-12 wpinv-description">  | 
                                                        
| 2066 | - <?php echo wpautop( $description ); ?>  | 
                                                        |
| 2066 | + <?php echo wpautop($description); ?>  | 
                                                        |
| 2067 | 2067 | </div>  | 
                                                        
| 2068 | 2068 | </div>  | 
                                                        
| 2069 | 2069 | <?php  | 
                                                        
| 2070 | 2070 | }  | 
                                                        
| 2071 | 2071 | }  | 
                                                        
| 2072 | -add_action( 'wpinv_invoice_print_middle', 'wpinv_invoice_print_description', 10.1, 1 );  | 
                                                        |
| 2072 | +add_action('wpinv_invoice_print_middle', 'wpinv_invoice_print_description', 10.1, 1); | 
                                                        |
| 2073 | 2073 | |
| 2074 | -function wpinv_invoice_print_payment_info( $invoice ) { | 
                                                        |
| 2075 | -    if ( empty( $invoice ) ) { | 
                                                        |
| 2074 | +function wpinv_invoice_print_payment_info($invoice) { | 
                                                        |
| 2075 | +    if (empty($invoice)) { | 
                                                        |
| 2076 | 2076 | return NULL;  | 
                                                        
| 2077 | 2077 | }  | 
                                                        
| 2078 | 2078 | |
| 2079 | -    if ( $payments_info = wpinv_display_payments_info( $invoice->ID, false ) ) { | 
                                                        |
| 2079 | +    if ($payments_info = wpinv_display_payments_info($invoice->ID, false)) { | 
                                                        |
| 2080 | 2080 | ?>  | 
                                                        
| 2081 | 2081 | <div class="row wpinv-payments">  | 
                                                        
| 2082 | 2082 | <div class="col-sm-12">  | 
                                                        
@@ -2088,43 +2088,43 @@ discard block  | 
                                                    ||
| 2088 | 2088 | }  | 
                                                        
| 2089 | 2089 | // add_action( 'wpinv_invoice_print_after_line_items', 'wpinv_invoice_print_payment_info', 10, 1 );  | 
                                                        
| 2090 | 2090 | |
| 2091 | -function wpinv_get_invoice_note_line_item( $note, $echo = true ) { | 
                                                        |
| 2092 | -    if ( empty( $note ) ) { | 
                                                        |
| 2091 | +function wpinv_get_invoice_note_line_item($note, $echo = true) { | 
                                                        |
| 2092 | +    if (empty($note)) { | 
                                                        |
| 2093 | 2093 | return NULL;  | 
                                                        
| 2094 | 2094 | }  | 
                                                        
| 2095 | 2095 | |
| 2096 | -    if ( is_int( $note ) ) { | 
                                                        |
| 2097 | - $note = get_comment( $note );  | 
                                                        |
| 2096 | +    if (is_int($note)) { | 
                                                        |
| 2097 | + $note = get_comment($note);  | 
                                                        |
| 2098 | 2098 | }  | 
                                                        
| 2099 | 2099 | |
| 2100 | -    if ( !( is_object( $note ) && is_a( $note, 'WP_Comment' ) ) ) { | 
                                                        |
| 2100 | +    if (!(is_object($note) && is_a($note, 'WP_Comment'))) { | 
                                                        |
| 2101 | 2101 | return NULL;  | 
                                                        
| 2102 | 2102 | }  | 
                                                        
| 2103 | 2103 | |
| 2104 | - $note_classes = array( 'note' );  | 
                                                        |
| 2105 | - $note_classes[] = get_comment_meta( $note->comment_ID, '_wpi_customer_note', true ) ? 'customer-note' : '';  | 
                                                        |
| 2104 | +    $note_classes   = array('note'); | 
                                                        |
| 2105 | + $note_classes[] = get_comment_meta($note->comment_ID, '_wpi_customer_note', true) ? 'customer-note' : '';  | 
                                                        |
| 2106 | 2106 | $note_classes[] = $note->comment_author === 'System' ? 'system-note' : '';  | 
                                                        
| 2107 | - $note_classes = apply_filters( 'wpinv_invoice_note_class', array_filter( $note_classes ), $note );  | 
                                                        |
| 2108 | - $note_classes = !empty( $note_classes ) ? implode( ' ', $note_classes ) : '';  | 
                                                        |
| 2107 | +    $note_classes   = apply_filters('wpinv_invoice_note_class', array_filter($note_classes), $note); | 
                                                        |
| 2108 | +    $note_classes   = !empty($note_classes) ? implode(' ', $note_classes) : ''; | 
                                                        |
| 2109 | 2109 | |
| 2110 | 2110 | ob_start();  | 
                                                        
| 2111 | 2111 | ?>  | 
                                                        
| 2112 | - <li rel="<?php echo absint( $note->comment_ID ) ; ?>" class="<?php echo esc_attr( $note_classes ); ?>">  | 
                                                        |
| 2112 | + <li rel="<?php echo absint($note->comment_ID); ?>" class="<?php echo esc_attr($note_classes); ?>">  | 
                                                        |
| 2113 | 2113 | <div class="note_content">  | 
                                                        
| 2114 | - <?php echo wpautop( wptexturize( wp_kses_post( $note->comment_content ) ) ); ?>  | 
                                                        |
| 2114 | + <?php echo wpautop(wptexturize(wp_kses_post($note->comment_content))); ?>  | 
                                                        |
| 2115 | 2115 | </div>  | 
                                                        
| 2116 | 2116 | <p class="meta">  | 
                                                        
| 2117 | - <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>    | 
                                                        |
| 2118 | -            <?php if ( $note->comment_author !== 'System' || wpinv_current_user_can_manage_invoicing() ) { ?> | 
                                                        |
| 2119 | - <a href="#" class="delete_note"><?php _e( 'Delete note', 'invoicing' ); ?></a>  | 
                                                        |
| 2117 | +            <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>   | 
                                                        |
| 2118 | +            <?php if ($note->comment_author !== 'System' || wpinv_current_user_can_manage_invoicing()) { ?> | 
                                                        |
| 2119 | +                <a href="#" class="delete_note"><?php _e('Delete note', 'invoicing'); ?></a> | 
                                                        |
| 2120 | 2120 | <?php } ?>  | 
                                                        
| 2121 | 2121 | </p>  | 
                                                        
| 2122 | 2122 | </li>  | 
                                                        
| 2123 | 2123 | <?php  | 
                                                        
| 2124 | 2124 | $note_content = ob_get_clean();  | 
                                                        
| 2125 | - $note_content = apply_filters( 'wpinv_get_invoice_note_line_item', $note_content, $note, $echo );  | 
                                                        |
| 2125 | +    $note_content = apply_filters('wpinv_get_invoice_note_line_item', $note_content, $note, $echo); | 
                                                        |
| 2126 | 2126 | |
| 2127 | -    if ( $echo ) { | 
                                                        |
| 2127 | +    if ($echo) { | 
                                                        |
| 2128 | 2128 | echo $note_content;  | 
                                                        
| 2129 | 2129 |      } else { | 
                                                        
| 2130 | 2130 | return $note_content;  | 
                                                        
@@ -2134,43 +2134,43 @@ discard block  | 
                                                    ||
| 2134 | 2134 |  function wpinv_invalid_invoice_content() { | 
                                                        
| 2135 | 2135 | global $post;  | 
                                                        
| 2136 | 2136 | |
| 2137 | - $invoice = wpinv_get_invoice( $post->ID );  | 
                                                        |
| 2137 | + $invoice = wpinv_get_invoice($post->ID);  | 
                                                        |
| 2138 | 2138 | |
| 2139 | - $error = __( 'This invoice is only viewable by clicking on the invoice link that was sent to you via email.', 'invoicing' );  | 
                                                        |
| 2140 | -    if ( !empty( $invoice->ID ) && $invoice->has_status( array_keys( wpinv_get_invoice_statuses() ) ) ) { | 
                                                        |
| 2141 | -        if ( is_user_logged_in() ) { | 
                                                        |
| 2142 | -            if ( wpinv_require_login_to_checkout() ) { | 
                                                        |
| 2143 | -                if ( isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) { | 
                                                        |
| 2144 | - $error = __( 'You are not allowed to view this invoice.', 'invoicing' );  | 
                                                        |
| 2139 | +    $error = __('This invoice is only viewable by clicking on the invoice link that was sent to you via email.', 'invoicing'); | 
                                                        |
| 2140 | +    if (!empty($invoice->ID) && $invoice->has_status(array_keys(wpinv_get_invoice_statuses()))) { | 
                                                        |
| 2141 | +        if (is_user_logged_in()) { | 
                                                        |
| 2142 | +            if (wpinv_require_login_to_checkout()) { | 
                                                        |
| 2143 | +                if (isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) { | 
                                                        |
| 2144 | +                    $error = __('You are not allowed to view this invoice.', 'invoicing'); | 
                                                        |
| 2145 | 2145 | }  | 
                                                        
| 2146 | 2146 | }  | 
                                                        
| 2147 | 2147 |          } else { | 
                                                        
| 2148 | -            if ( wpinv_require_login_to_checkout() ) { | 
                                                        |
| 2149 | -                if ( isset( $_GET['invoice_key'] ) && $_GET['invoice_key'] === $invoice->get_key() ) { | 
                                                        |
| 2150 | - $error = __( 'You must be logged in to view this invoice.', 'invoicing' );  | 
                                                        |
| 2148 | +            if (wpinv_require_login_to_checkout()) { | 
                                                        |
| 2149 | +                if (isset($_GET['invoice_key']) && $_GET['invoice_key'] === $invoice->get_key()) { | 
                                                        |
| 2150 | +                    $error = __('You must be logged in to view this invoice.', 'invoicing'); | 
                                                        |
| 2151 | 2151 | }  | 
                                                        
| 2152 | 2152 | }  | 
                                                        
| 2153 | 2153 | }  | 
                                                        
| 2154 | 2154 |      } else { | 
                                                        
| 2155 | - $error = __( 'This invoice is deleted or does not exist.', 'invoicing' );  | 
                                                        |
| 2155 | +        $error = __('This invoice is deleted or does not exist.', 'invoicing'); | 
                                                        |
| 2156 | 2156 | }  | 
                                                        
| 2157 | 2157 | ?>  | 
                                                        
| 2158 | 2158 | <div class="row wpinv-row-invalid">  | 
                                                        
| 2159 | 2159 | <div class="col-md-6 col-md-offset-3 wpinv-message error">  | 
                                                        
| 2160 | - <h3><?php _e( 'Access Denied', 'invoicing' ); ?></h3>  | 
                                                        |
| 2160 | +            <h3><?php _e('Access Denied', 'invoicing'); ?></h3> | 
                                                        |
| 2161 | 2161 | <p class="wpinv-msg-text"><?php echo $error; ?></p>  | 
                                                        
| 2162 | 2162 | </div>  | 
                                                        
| 2163 | 2163 | </div>  | 
                                                        
| 2164 | 2164 | <?php  | 
                                                        
| 2165 | 2165 | }  | 
                                                        
| 2166 | -add_action( 'wpinv_invalid_invoice_content', 'wpinv_invalid_invoice_content' );  | 
                                                        |
| 2166 | +add_action('wpinv_invalid_invoice_content', 'wpinv_invalid_invoice_content'); | 
                                                        |
| 2167 | 2167 | |
| 2168 | -add_action( 'wpinv_checkout_billing_fields_last', 'wpinv_force_company_name_field');  | 
                                                        |
| 2169 | -function wpinv_force_company_name_field(){ | 
                                                        |
| 2168 | +add_action('wpinv_checkout_billing_fields_last', 'wpinv_force_company_name_field'); | 
                                                        |
| 2169 | +function wpinv_force_company_name_field() { | 
                                                        |
| 2170 | 2170 | $invoice = wpinv_get_invoice_cart();  | 
                                                        
| 2171 | - $user_id = wpinv_get_user_id( $invoice->ID );  | 
                                                        |
| 2172 | - $company = empty( $user_id ) ? "" : get_user_meta( $user_id, '_wpinv_company', true );  | 
                                                        |
| 2173 | -    if ( 1 == wpinv_get_option( 'force_show_company' ) && !wpinv_use_taxes() ) { | 
                                                        |
| 2171 | + $user_id = wpinv_get_user_id($invoice->ID);  | 
                                                        |
| 2172 | + $company = empty($user_id) ? "" : get_user_meta($user_id, '_wpinv_company', true);  | 
                                                        |
| 2173 | +    if (1 == wpinv_get_option('force_show_company') && !wpinv_use_taxes()) { | 
                                                        |
| 2174 | 2174 | ?>  | 
                                                        
| 2175 | 2175 | <p class="wpi-cart-field wpi-col2 wpi-colf">  | 
                                                        
| 2176 | 2176 |              <label for="wpinv_company" class="wpi-label"><?php _e('Company Name', 'invoicing'); ?></label> | 
                                                        
@@ -2195,21 +2195,21 @@ discard block  | 
                                                    ||
| 2195 | 2195 | * @return string  | 
                                                        
| 2196 | 2196 | */  | 
                                                        
| 2197 | 2197 |  function wpinv_get_policy_text() { | 
                                                        
| 2198 | - $privacy_page_id = get_option( 'wp_page_for_privacy_policy', 0 );  | 
                                                        |
| 2198 | +    $privacy_page_id = get_option('wp_page_for_privacy_policy', 0); | 
                                                        |
| 2199 | 2199 | |
| 2200 | -    $text = wpinv_get_option('invoicing_privacy_checkout_message', sprintf( __( 'Your personal data will be used to process your invoice, payment and for other purposes described in our %s.', 'invoicing' ), '[wpinv_privacy_policy]' )); | 
                                                        |
| 2200 | +    $text = wpinv_get_option('invoicing_privacy_checkout_message', sprintf(__('Your personal data will be used to process your invoice, payment and for other purposes described in our %s.', 'invoicing'), '[wpinv_privacy_policy]')); | 
                                                        |
| 2201 | 2201 | |
| 2202 | -    if(!$privacy_page_id){ | 
                                                        |
| 2203 | - $privacy_page_id = wpinv_get_option( 'privacy_page', 0 );  | 
                                                        |
| 2202 | +    if (!$privacy_page_id) { | 
                                                        |
| 2203 | +        $privacy_page_id = wpinv_get_option('privacy_page', 0); | 
                                                        |
| 2204 | 2204 | }  | 
                                                        
| 2205 | 2205 | |
| 2206 | - $privacy_link = $privacy_page_id ? '<a href="' . esc_url( get_permalink( $privacy_page_id ) ) . '" class="wpinv-privacy-policy-link" target="_blank">' . __( 'privacy policy', 'invoicing' ) . '</a>' : __( 'privacy policy', 'invoicing' );  | 
                                                        |
| 2206 | +    $privacy_link = $privacy_page_id ? '<a href="' . esc_url(get_permalink($privacy_page_id)) . '" class="wpinv-privacy-policy-link" target="_blank">' . __('privacy policy', 'invoicing') . '</a>' : __('privacy policy', 'invoicing'); | 
                                                        |
| 2207 | 2207 | |
| 2208 | 2208 | $find_replace = array(  | 
                                                        
| 2209 | 2209 | '[wpinv_privacy_policy]' => $privacy_link,  | 
                                                        
| 2210 | 2210 | );  | 
                                                        
| 2211 | 2211 | |
| 2212 | - $privacy_text = str_replace( array_keys( $find_replace ), array_values( $find_replace ), $text );  | 
                                                        |
| 2212 | + $privacy_text = str_replace(array_keys($find_replace), array_values($find_replace), $text);  | 
                                                        |
| 2213 | 2213 | |
| 2214 | 2214 | return wp_kses_post(wpautop($privacy_text));  | 
                                                        
| 2215 | 2215 | }  | 
                                                        
@@ -2218,25 +2218,25 @@ discard block  | 
                                                    ||
| 2218 | 2218 | /**  | 
                                                        
| 2219 | 2219 | * Allows the user to set their own price for an invoice item  | 
                                                        
| 2220 | 2220 | */  | 
                                                        
| 2221 | -function wpinv_checkout_cart_item_name_your_price( $cart_item, $key ) { | 
                                                        |
| 2221 | +function wpinv_checkout_cart_item_name_your_price($cart_item, $key) { | 
                                                        |
| 2222 | 2222 | |
| 2223 | 2223 | //Ensure we have an item id  | 
                                                        
| 2224 | -    if(! is_array( $cart_item ) || empty( $cart_item['id'] ) ) { | 
                                                        |
| 2224 | +    if (!is_array($cart_item) || empty($cart_item['id'])) { | 
                                                        |
| 2225 | 2225 | return;  | 
                                                        
| 2226 | 2226 | }  | 
                                                        
| 2227 | 2227 | |
| 2228 | 2228 | //Fetch the item  | 
                                                        
| 2229 | 2229 | $item_id = $cart_item['id'];  | 
                                                        
| 2230 | - $item = new WPInv_Item( $item_id );  | 
                                                        |
| 2230 | + $item = new WPInv_Item($item_id);  | 
                                                        |
| 2231 | 2231 | |
| 2232 | -    if(! $item->supports_dynamic_pricing() || !$item->get_is_dynamic_pricing() ) { | 
                                                        |
| 2232 | +    if (!$item->supports_dynamic_pricing() || !$item->get_is_dynamic_pricing()) { | 
                                                        |
| 2233 | 2233 | return;  | 
                                                        
| 2234 | 2234 | }  | 
                                                        
| 2235 | 2235 | |
| 2236 | 2236 | //Fetch the dynamic pricing "strings"  | 
                                                        
| 2237 | - $suggested_price_text = esc_html( wpinv_get_option( 'suggested_price_text', __( 'Suggested Price:', 'invoicing' ) ) );  | 
                                                        |
| 2238 | - $minimum_price_text = esc_html( wpinv_get_option( 'minimum_price_text', __( 'Minimum Price:', 'invoicing' ) ) );  | 
                                                        |
| 2239 | - $name_your_price_text = esc_html( wpinv_get_option( 'name_your_price_text', __( 'Name Your Price', 'invoicing' ) ) );  | 
                                                        |
| 2237 | +    $suggested_price_text = esc_html(wpinv_get_option('suggested_price_text', __('Suggested Price:', 'invoicing'))); | 
                                                        |
| 2238 | +    $minimum_price_text   = esc_html(wpinv_get_option('minimum_price_text', __('Minimum Price:', 'invoicing'))); | 
                                                        |
| 2239 | +    $name_your_price_text = esc_html(wpinv_get_option('name_your_price_text', __('Name Your Price', 'invoicing'))); | 
                                                        |
| 2240 | 2240 | |
| 2241 | 2241 | //Display a "name_your_price" button  | 
                                                        
| 2242 | 2242 | echo " — <a href='#' class='wpinv-name-your-price-frontend small'>$name_your_price_text</a></div>";  | 
                                                        
@@ -2245,7 +2245,7 @@ discard block  | 
                                                    ||
| 2245 | 2245 | echo '<div class="name-your-price-miniform">';  | 
                                                        
| 2246 | 2246 | |
| 2247 | 2247 | //Maybe display the recommended price  | 
                                                        
| 2248 | -    if( $item->get_price() > 0 && !empty( $suggested_price_text ) ) { | 
                                                        |
| 2248 | +    if ($item->get_price() > 0 && !empty($suggested_price_text)) { | 
                                                        |
| 2249 | 2249 | $suggested_price = $item->get_the_price();  | 
                                                        
| 2250 | 2250 | echo "<div>$suggested_price_text — $suggested_price</div>";  | 
                                                        
| 2251 | 2251 | }  | 
                                                        
@@ -2253,50 +2253,50 @@ discard block  | 
                                                    ||
| 2253 | 2253 | //Display the update price form  | 
                                                        
| 2254 | 2254 | $symbol = wpinv_currency_symbol();  | 
                                                        
| 2255 | 2255 | $position = wpinv_currency_position();  | 
                                                        
| 2256 | - $minimum = esc_attr( $item->get_minimum_price() );  | 
                                                        |
| 2257 | - $price = esc_attr( $cart_item['item_price'] );  | 
                                                        |
| 2258 | - $update = esc_attr__( "Update", 'invoicing' );  | 
                                                        |
| 2256 | + $minimum = esc_attr($item->get_minimum_price());  | 
                                                        |
| 2257 | + $price = esc_attr($cart_item['item_price']);  | 
                                                        |
| 2258 | +    $update         = esc_attr__("Update", 'invoicing'); | 
                                                        |
| 2259 | 2259 | |
| 2260 | 2260 | //Ensure it supports dynamic prici  | 
                                                        
| 2261 | -    if( $price < $minimum ) { | 
                                                        |
| 2261 | +    if ($price < $minimum) { | 
                                                        |
| 2262 | 2262 | $price = $minimum;  | 
                                                        
| 2263 | 2263 | }  | 
                                                        
| 2264 | 2264 | |
| 2265 | 2265 | echo '<label>';  | 
                                                        
| 2266 | 2266 | echo $position != 'right' ? $symbol . ' ' : '';  | 
                                                        
| 2267 | 2267 | echo "<input type='number' min='$minimum' placeholder='$price' value='$price' class='wpi-field-price' />";  | 
                                                        
| 2268 | - echo $position == 'right' ? ' ' . $symbol : '' ;  | 
                                                        |
| 2268 | + echo $position == 'right' ? ' ' . $symbol : '';  | 
                                                        |
| 2269 | 2269 | echo "</label>";  | 
                                                        
| 2270 | 2270 | echo "<input type='hidden' value='$item_id' class='wpi-field-item' />";  | 
                                                        
| 2271 | 2271 | echo "<a class='btn btn-success wpinv-submit wpinv-update-dynamic-price-frontend'>$update</a>";  | 
                                                        
| 2272 | 2272 | |
| 2273 | 2273 | //Maybe display the minimum price  | 
                                                        
| 2274 | -    if( $item->get_minimum_price() > 0 && !empty( $minimum_price_text ) ) { | 
                                                        |
| 2275 | - $minimum_price = wpinv_price( wpinv_format_amount( $item->get_minimum_price() ) );  | 
                                                        |
| 2274 | +    if ($item->get_minimum_price() > 0 && !empty($minimum_price_text)) { | 
                                                        |
| 2275 | + $minimum_price = wpinv_price(wpinv_format_amount($item->get_minimum_price()));  | 
                                                        |
| 2276 | 2276 | echo "<div>$minimum_price_text — $minimum_price</div>";  | 
                                                        
| 2277 | 2277 | }  | 
                                                        
| 2278 | 2278 | |
| 2279 | 2279 | echo "</div>";  | 
                                                        
| 2280 | 2280 | |
| 2281 | 2281 | }  | 
                                                        
| 2282 | -add_action( 'wpinv_checkout_cart_item_price_after', 'wpinv_checkout_cart_item_name_your_price', 10, 2 );  | 
                                                        |
| 2282 | +add_action('wpinv_checkout_cart_item_price_after', 'wpinv_checkout_cart_item_name_your_price', 10, 2); | 
                                                        |
| 2283 | 2283 | |
| 2284 | 2284 |  function wpinv_oxygen_fix_conflict() { | 
                                                        
| 2285 | 2285 | global $ct_ignore_post_types;  | 
                                                        
| 2286 | 2286 | |
| 2287 | -    if ( ! is_array( $ct_ignore_post_types ) ) { | 
                                                        |
| 2287 | +    if (!is_array($ct_ignore_post_types)) { | 
                                                        |
| 2288 | 2288 | $ct_ignore_post_types = array();  | 
                                                        
| 2289 | 2289 | }  | 
                                                        
| 2290 | 2290 | |
| 2291 | - $post_types = array( 'wpi_discount', 'wpi_invoice', 'wpi_item' );  | 
                                                        |
| 2291 | +    $post_types = array('wpi_discount', 'wpi_invoice', 'wpi_item'); | 
                                                        |
| 2292 | 2292 | |
| 2293 | -    foreach ( $post_types as $post_type ) { | 
                                                        |
| 2293 | +    foreach ($post_types as $post_type) { | 
                                                        |
| 2294 | 2294 | $ct_ignore_post_types[] = $post_type;  | 
                                                        
| 2295 | 2295 | |
| 2296 | 2296 | // Ignore post type  | 
                                                        
| 2297 | - add_filter( 'pre_option_oxygen_vsb_ignore_post_type_' . $post_type, '__return_true', 999 );  | 
                                                        |
| 2297 | +        add_filter('pre_option_oxygen_vsb_ignore_post_type_' . $post_type, '__return_true', 999); | 
                                                        |
| 2298 | 2298 | }  | 
                                                        
| 2299 | 2299 | |
| 2300 | - remove_filter( 'template_include', 'wpinv_template', 10, 1 );  | 
                                                        |
| 2301 | - add_filter( 'template_include', 'wpinv_template', 999, 1 );  | 
                                                        |
| 2300 | +    remove_filter('template_include', 'wpinv_template', 10, 1); | 
                                                        |
| 2301 | +    add_filter('template_include', 'wpinv_template', 999, 1); | 
                                                        |
| 2302 | 2302 | }  | 
                                                        
| 2303 | 2303 | \ No newline at end of file  | 
                                                        
@@ -700,7 +700,7 @@ discard block  | 
                                                    ||
| 700 | 700 | }  | 
                                                        
| 701 | 701 | |
| 702 | 702 |  function wpinv_get_php_arg_separator_output() { | 
                                                        
| 703 | - return ini_get( 'arg_separator.output' );  | 
                                                        |
| 703 | + return ini_get( 'arg_separator.output' );  | 
                                                        |
| 704 | 704 | }  | 
                                                        
| 705 | 705 | |
| 706 | 706 |  function wpinv_rgb_from_hex( $color ) { | 
                                                        
@@ -1038,11 +1038,11 @@ discard block  | 
                                                    ||
| 1038 | 1038 | * @return array Sanitized array of values.  | 
                                                        
| 1039 | 1039 | */  | 
                                                        
| 1040 | 1040 |  function wpinv_parse_list( $list ) { | 
                                                        
| 1041 | -	if ( ! is_array( $list ) ) { | 
                                                        |
| 1042 | - return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );  | 
                                                        |
| 1043 | - }  | 
                                                        |
| 1041 | +    if ( ! is_array( $list ) ) { | 
                                                        |
| 1042 | + return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );  | 
                                                        |
| 1043 | + }  | 
                                                        |
| 1044 | 1044 | |
| 1045 | - return $list;  | 
                                                        |
| 1045 | + return $list;  | 
                                                        |
| 1046 | 1046 | }  | 
                                                        
| 1047 | 1047 | |
| 1048 | 1048 | /**  | 
                                                        
@@ -1062,9 +1062,9 @@ discard block  | 
                                                    ||
| 1062 | 1062 | }  | 
                                                        
| 1063 | 1063 | |
| 1064 | 1064 | $data = apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" );  | 
                                                        
| 1065 | - wp_cache_set( "wpinv-$key", $data, 'wpinv' );  | 
                                                        |
| 1065 | + wp_cache_set( "wpinv-$key", $data, 'wpinv' );  | 
                                                        |
| 1066 | 1066 | |
| 1067 | - return $data;  | 
                                                        |
| 1067 | + return $data;  | 
                                                        |
| 1068 | 1068 | }  | 
                                                        
| 1069 | 1069 | |
| 1070 | 1070 | /**  | 
                                                        
@@ -1093,17 +1093,17 @@ discard block  | 
                                                    ||
| 1093 | 1093 | */  | 
                                                        
| 1094 | 1094 |  function wpinv_clean( $var ) { | 
                                                        
| 1095 | 1095 | |
| 1096 | -	if ( is_array( $var ) ) { | 
                                                        |
| 1097 | - return array_map( 'wpinv_clean', $var );  | 
                                                        |
| 1096 | +    if ( is_array( $var ) ) { | 
                                                        |
| 1097 | + return array_map( 'wpinv_clean', $var );  | 
                                                        |
| 1098 | 1098 | }  | 
                                                        
| 1099 | 1099 | |
| 1100 | 1100 |      if ( is_object( $var ) ) { | 
                                                        
| 1101 | - $object_vars = get_object_vars( $var );  | 
                                                        |
| 1102 | -		foreach ( $object_vars as $property_name => $property_value ) { | 
                                                        |
| 1103 | - $var->$property_name = wpinv_clean( $property_value );  | 
                                                        |
| 1101 | + $object_vars = get_object_vars( $var );  | 
                                                        |
| 1102 | +        foreach ( $object_vars as $property_name => $property_value ) { | 
                                                        |
| 1103 | + $var->$property_name = wpinv_clean( $property_value );  | 
                                                        |
| 1104 | 1104 | }  | 
                                                        
| 1105 | 1105 | return $var;  | 
                                                        
| 1106 | - }  | 
                                                        |
| 1106 | + }  | 
                                                        |
| 1107 | 1107 | |
| 1108 | 1108 | return is_string( $var ) ? sanitize_text_field( $var ) : $var;  | 
                                                        
| 1109 | 1109 | }  | 
                                                        
| 1110 | 1110 | \ No newline at end of file  | 
                                                        
@@ -7,132 +7,132 @@ 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( $draft = false, $trashed = false, $invoice = false ) { | 
                                                        |
| 92 | +function wpinv_get_invoice_statuses($draft = false, $trashed = false, $invoice = false) { | 
                                                        |
| 93 | 93 | global $post;  | 
                                                        
| 94 | 94 | |
| 95 | 95 | $invoice_statuses = array(  | 
                                                        
| 96 | - 'wpi-pending' => __( 'Pending Payment', 'invoicing' ),  | 
                                                        |
| 97 | - 'publish' => __( 'Paid', 'invoicing'),  | 
                                                        |
| 98 | - 'wpi-processing' => __( 'Processing', 'invoicing' ),  | 
                                                        |
| 99 | - 'wpi-onhold' => __( 'On Hold', 'invoicing' ),  | 
                                                        |
| 100 | - 'wpi-refunded' => __( 'Refunded', 'invoicing' ),  | 
                                                        |
| 101 | - 'wpi-cancelled' => __( 'Cancelled', 'invoicing' ),  | 
                                                        |
| 102 | - 'wpi-failed' => __( 'Failed', 'invoicing' ),  | 
                                                        |
| 103 | - 'wpi-renewal' => __( 'Renewal Payment', 'invoicing' )  | 
                                                        |
| 96 | +        'wpi-pending' => __('Pending Payment', 'invoicing'), | 
                                                        |
| 97 | +        'publish' => __('Paid', 'invoicing'), | 
                                                        |
| 98 | +        'wpi-processing' => __('Processing', 'invoicing'), | 
                                                        |
| 99 | +        'wpi-onhold' => __('On Hold', 'invoicing'), | 
                                                        |
| 100 | +        'wpi-refunded' => __('Refunded', 'invoicing'), | 
                                                        |
| 101 | +        'wpi-cancelled' => __('Cancelled', 'invoicing'), | 
                                                        |
| 102 | +        'wpi-failed' => __('Failed', 'invoicing'), | 
                                                        |
| 103 | +        'wpi-renewal' => __('Renewal Payment', 'invoicing') | 
                                                        |
| 104 | 104 | );  | 
                                                        
| 105 | 105 | |
| 106 | -    if ( $draft ) { | 
                                                        |
| 107 | - $invoice_statuses['draft'] = __( 'Draft', 'invoicing' );  | 
                                                        |
| 106 | +    if ($draft) { | 
                                                        |
| 107 | +        $invoice_statuses['draft'] = __('Draft', 'invoicing'); | 
                                                        |
| 108 | 108 | }  | 
                                                        
| 109 | 109 | |
| 110 | -    if ( $trashed ) { | 
                                                        |
| 111 | - $invoice_statuses['trash'] = __( 'Trash', 'invoicing' );  | 
                                                        |
| 110 | +    if ($trashed) { | 
                                                        |
| 111 | +        $invoice_statuses['trash'] = __('Trash', 'invoicing'); | 
                                                        |
| 112 | 112 | }  | 
                                                        
| 113 | 113 | |
| 114 | - return apply_filters( 'wpinv_statuses', $invoice_statuses, $invoice );  | 
                                                        |
| 114 | +    return apply_filters('wpinv_statuses', $invoice_statuses, $invoice); | 
                                                        |
| 115 | 115 | }  | 
                                                        
| 116 | 116 | |
| 117 | -function wpinv_status_nicename( $status ) { | 
                                                        |
| 118 | - $statuses = wpinv_get_invoice_statuses( true, true );  | 
                                                        |
| 119 | - $status = isset( $statuses[$status] ) ? $statuses[$status] : __( $status, 'invoicing' );  | 
                                                        |
| 117 | +function wpinv_status_nicename($status) { | 
                                                        |
| 118 | + $statuses = wpinv_get_invoice_statuses(true, true);  | 
                                                        |
| 119 | + $status = isset($statuses[$status]) ? $statuses[$status] : __($status, 'invoicing');  | 
                                                        |
| 120 | 120 | |
| 121 | 121 | return $status;  | 
                                                        
| 122 | 122 | }  | 
                                                        
| 123 | 123 | |
| 124 | 124 |  function wpinv_get_currency() { | 
                                                        
| 125 | - $currency = wpinv_get_option( 'currency', 'USD' );  | 
                                                        |
| 125 | +    $currency = wpinv_get_option('currency', 'USD'); | 
                                                        |
| 126 | 126 | |
| 127 | - return apply_filters( 'wpinv_currency', $currency );  | 
                                                        |
| 127 | +    return apply_filters('wpinv_currency', $currency); | 
                                                        |
| 128 | 128 | }  | 
                                                        
| 129 | 129 | |
| 130 | -function wpinv_currency_symbol( $currency = '' ) { | 
                                                        |
| 131 | -    if ( empty( $currency ) ) { | 
                                                        |
| 130 | +function wpinv_currency_symbol($currency = '') { | 
                                                        |
| 131 | +    if (empty($currency)) { | 
                                                        |
| 132 | 132 | $currency = wpinv_get_currency();  | 
                                                        
| 133 | 133 | }  | 
                                                        
| 134 | 134 | |
| 135 | - $symbols = apply_filters( 'wpinv_currency_symbols', array(  | 
                                                        |
| 135 | +    $symbols = apply_filters('wpinv_currency_symbols', array( | 
                                                        |
| 136 | 136 | 'AED' => 'د.إ',  | 
                                                        
| 137 | 137 | 'AFN' => '؋',  | 
                                                        
| 138 | 138 | 'ALL' => 'L',  | 
                                                        
@@ -295,209 +295,209 @@ discard block  | 
                                                    ||
| 295 | 295 | 'YER' => '﷼',  | 
                                                        
| 296 | 296 | 'ZAR' => 'R',  | 
                                                        
| 297 | 297 | 'ZMW' => 'ZK',  | 
                                                        
| 298 | - ) );  | 
                                                        |
| 298 | + ));  | 
                                                        |
| 299 | 299 | |
| 300 | - $currency_symbol = isset( $symbols[$currency] ) ? $symbols[$currency] : $currency;  | 
                                                        |
| 300 | + $currency_symbol = isset($symbols[$currency]) ? $symbols[$currency] : $currency;  | 
                                                        |
| 301 | 301 | |
| 302 | - return apply_filters( 'wpinv_currency_symbol', $currency_symbol, $currency );  | 
                                                        |
| 302 | +    return apply_filters('wpinv_currency_symbol', $currency_symbol, $currency); | 
                                                        |
| 303 | 303 | }  | 
                                                        
| 304 | 304 | |
| 305 | 305 |  function wpinv_currency_position() { | 
                                                        
| 306 | - $position = wpinv_get_option( 'currency_position', 'left' );  | 
                                                        |
| 306 | +    $position = wpinv_get_option('currency_position', 'left'); | 
                                                        |
| 307 | 307 | |
| 308 | - return apply_filters( 'wpinv_currency_position', $position );  | 
                                                        |
| 308 | +    return apply_filters('wpinv_currency_position', $position); | 
                                                        |
| 309 | 309 | }  | 
                                                        
| 310 | 310 | |
| 311 | 311 |  function wpinv_thousands_separator() { | 
                                                        
| 312 | - $thousand_sep = wpinv_get_option( 'thousands_separator', ',' );  | 
                                                        |
| 312 | +    $thousand_sep = wpinv_get_option('thousands_separator', ','); | 
                                                        |
| 313 | 313 | |
| 314 | - return apply_filters( 'wpinv_thousands_separator', $thousand_sep );  | 
                                                        |
| 314 | +    return apply_filters('wpinv_thousands_separator', $thousand_sep); | 
                                                        |
| 315 | 315 | }  | 
                                                        
| 316 | 316 | |
| 317 | 317 |  function wpinv_decimal_separator() { | 
                                                        
| 318 | - $decimal_sep = wpinv_get_option( 'decimal_separator', '.' );  | 
                                                        |
| 318 | +    $decimal_sep = wpinv_get_option('decimal_separator', '.'); | 
                                                        |
| 319 | 319 | |
| 320 | - return apply_filters( 'wpinv_decimal_separator', $decimal_sep );  | 
                                                        |
| 320 | +    return apply_filters('wpinv_decimal_separator', $decimal_sep); | 
                                                        |
| 321 | 321 | }  | 
                                                        
| 322 | 322 | |
| 323 | 323 |  function wpinv_decimals() { | 
                                                        
| 324 | - $decimals = apply_filters( 'wpinv_decimals', wpinv_get_option( 'decimals', 2 ) );  | 
                                                        |
| 324 | +    $decimals = apply_filters('wpinv_decimals', wpinv_get_option('decimals', 2)); | 
                                                        |
| 325 | 325 | |
| 326 | - return absint( $decimals );  | 
                                                        |
| 326 | + return absint($decimals);  | 
                                                        |
| 327 | 327 | }  | 
                                                        
| 328 | 328 | |
| 329 | 329 |  function wpinv_get_currencies() { | 
                                                        
| 330 | 330 | $currencies = array(  | 
                                                        
| 331 | - 'USD' => __( 'US Dollar', 'invoicing' ),  | 
                                                        |
| 332 | - 'EUR' => __( 'Euro', 'invoicing' ),  | 
                                                        |
| 333 | - 'GBP' => __( 'Pound Sterling', 'invoicing' ),  | 
                                                        |
| 334 | - 'AED' => __( 'United Arab Emirates', 'invoicing' ),  | 
                                                        |
| 335 | - 'AFN' => __( 'Afghan Afghani', 'invoicing' ),  | 
                                                        |
| 336 | - 'ALL' => __( 'Albanian Lek', 'invoicing' ),  | 
                                                        |
| 337 | - 'AMD' => __( 'Armenian Dram', 'invoicing' ),  | 
                                                        |
| 338 | - 'ANG' => __( 'Netherlands Antillean Guilder', 'invoicing' ),  | 
                                                        |
| 339 | - 'AOA' => __( 'Angolan Kwanza', 'invoicing' ),  | 
                                                        |
| 340 | - 'ARS' => __( 'Argentine Peso', 'invoicing' ),  | 
                                                        |
| 341 | - 'AUD' => __( 'Australian Dollar', 'invoicing' ),  | 
                                                        |
| 342 | - 'AWG' => __( 'Aruban Florin', 'invoicing' ),  | 
                                                        |
| 343 | - 'AZN' => __( 'Azerbaijani Manat', 'invoicing' ),  | 
                                                        |
| 344 | - 'BAM' => __( 'Bosnia and Herzegovina Convertible Marka', 'invoicing' ),  | 
                                                        |
| 345 | - 'BBD' => __( 'Barbadian Dollar', 'invoicing' ),  | 
                                                        |
| 346 | - 'BDT' => __( 'Bangladeshi Taka', 'invoicing' ),  | 
                                                        |
| 347 | - 'BGN' => __( 'Bulgarian Lev', 'invoicing' ),  | 
                                                        |
| 348 | - 'BHD' => __( 'Bahraini Dinar', 'invoicing' ),  | 
                                                        |
| 349 | - 'BIF' => __( 'Burundian Franc', 'invoicing' ),  | 
                                                        |
| 350 | - 'BMD' => __( 'Bermudian Dollar', 'invoicing' ),  | 
                                                        |
| 351 | - 'BND' => __( 'Brunei Dollar', 'invoicing' ),  | 
                                                        |
| 352 | - 'BOB' => __( 'Bolivian Boliviano', 'invoicing' ),  | 
                                                        |
| 353 | - 'BRL' => __( 'Brazilian Real', 'invoicing' ),  | 
                                                        |
| 354 | - 'BSD' => __( 'Bahamian Dollar', 'invoicing' ),  | 
                                                        |
| 355 | - 'BTC' => __( 'Bitcoin', 'invoicing' ),  | 
                                                        |
| 356 | - 'BTN' => __( 'Bhutanese Ngultrum', 'invoicing' ),  | 
                                                        |
| 357 | - 'BWP' => __( 'Botswana Pula', 'invoicing' ),  | 
                                                        |
| 358 | - 'BYN' => __( 'Belarusian Ruble', 'invoicing' ),  | 
                                                        |
| 359 | - 'BZD' => __( 'Belize Dollar', 'invoicing' ),  | 
                                                        |
| 360 | - 'CAD' => __( 'Canadian Dollar', 'invoicing' ),  | 
                                                        |
| 361 | - 'CDF' => __( 'Congolese Franc', 'invoicing' ),  | 
                                                        |
| 362 | - 'CHF' => __( 'Swiss Franc', 'invoicing' ),  | 
                                                        |
| 363 | - 'CLP' => __( 'Chilean Peso', 'invoicing' ),  | 
                                                        |
| 364 | - 'CNY' => __( 'Chinese Yuan', 'invoicing' ),  | 
                                                        |
| 365 | - 'COP' => __( 'Colombian Peso', 'invoicing' ),  | 
                                                        |
| 366 | - 'CRC' => __( 'Costa Rican Colon', 'invoicing' ),  | 
                                                        |
| 367 | - 'CUC' => __( 'Cuban Convertible Peso', 'invoicing' ),  | 
                                                        |
| 368 | - 'CUP' => __( 'Cuban Peso', 'invoicing' ),  | 
                                                        |
| 369 | - 'CVE' => __( 'Cape Verdean escudo', 'invoicing' ),  | 
                                                        |
| 370 | - 'CZK' => __( 'Czech Koruna', 'invoicing' ),  | 
                                                        |
| 371 | - 'DJF' => __( 'Djiboutian Franc', 'invoicing' ),  | 
                                                        |
| 372 | - 'DKK' => __( 'Danish Krone', 'invoicing' ),  | 
                                                        |
| 373 | - 'DOP' => __( 'Dominican Peso', 'invoicing' ),  | 
                                                        |
| 374 | - 'DZD' => __( 'Algerian Dinar', 'invoicing' ),  | 
                                                        |
| 375 | - 'EGP' => __( 'Egyptian Pound', 'invoicing' ),  | 
                                                        |
| 376 | - 'ERN' => __( 'Eritrean Nakfa', 'invoicing' ),  | 
                                                        |
| 377 | - 'ETB' => __( 'Ethiopian Irr', 'invoicing' ),  | 
                                                        |
| 378 | - 'FJD' => __( 'Fijian Dollar', 'invoicing' ),  | 
                                                        |
| 379 | - 'FKP' => __( 'Falkland Islands Pound', 'invoicing' ),  | 
                                                        |
| 380 | - 'GEL' => __( 'Georgian Lari', 'invoicing' ),  | 
                                                        |
| 381 | - 'GGP' => __( 'Guernsey Pound', 'invoicing' ),  | 
                                                        |
| 382 | - 'GHS' => __( 'Ghana Cedi', 'invoicing' ),  | 
                                                        |
| 383 | - 'GIP' => __( 'Gibraltar Pound', 'invoicing' ),  | 
                                                        |
| 384 | - 'GMD' => __( 'Gambian Dalasi', 'invoicing' ),  | 
                                                        |
| 385 | - 'GNF' => __( 'Guinean Franc', 'invoicing' ),  | 
                                                        |
| 386 | - 'GTQ' => __( 'Guatemalan Quetzal', 'invoicing' ),  | 
                                                        |
| 387 | - 'GYD' => __( 'Guyanese Dollar', 'invoicing' ),  | 
                                                        |
| 388 | - 'HKD' => __( 'Hong Kong Dollar', 'invoicing' ),  | 
                                                        |
| 389 | - 'HNL' => __( 'Honduran Lempira', 'invoicing' ),  | 
                                                        |
| 390 | - 'HRK' => __( 'Croatian Kuna', 'invoicing' ),  | 
                                                        |
| 391 | - 'HTG' => __( 'Haitian Gourde', 'invoicing' ),  | 
                                                        |
| 392 | - 'HUF' => __( 'Hungarian Forint', 'invoicing' ),  | 
                                                        |
| 393 | - 'IDR' => __( 'Indonesian Rupiah', 'invoicing' ),  | 
                                                        |
| 394 | - 'ILS' => __( 'Israeli New Shekel', 'invoicing' ),  | 
                                                        |
| 395 | - 'IMP' => __( 'Manx Pound', 'invoicing' ),  | 
                                                        |
| 396 | - 'INR' => __( 'Indian Rupee', 'invoicing' ),  | 
                                                        |
| 397 | - 'IQD' => __( 'Iraqi Dinar', 'invoicing' ),  | 
                                                        |
| 398 | - 'IRR' => __( 'Iranian Rial', 'invoicing' ),  | 
                                                        |
| 399 | - 'IRT' => __( 'Iranian Toman', 'invoicing' ),  | 
                                                        |
| 400 | - 'ISK' => __( 'Icelandic Krona', 'invoicing' ),  | 
                                                        |
| 401 | - 'JEP' => __( 'Jersey Pound', 'invoicing' ),  | 
                                                        |
| 402 | - 'JMD' => __( 'Jamaican Dollar', 'invoicing' ),  | 
                                                        |
| 403 | - 'JOD' => __( 'Jordanian Dinar', 'invoicing' ),  | 
                                                        |
| 404 | - 'JPY' => __( 'Japanese Yen', 'invoicing' ),  | 
                                                        |
| 405 | - 'KES' => __( 'Kenyan Shilling', 'invoicing' ),  | 
                                                        |
| 406 | - 'KGS' => __( 'Kyrgyzstani Som', 'invoicing' ),  | 
                                                        |
| 407 | - 'KHR' => __( 'Cambodian Riel', 'invoicing' ),  | 
                                                        |
| 408 | - 'KMF' => __( 'Comorian Franc', 'invoicing' ),  | 
                                                        |
| 409 | - 'KPW' => __( 'North Korean Won', 'invoicing' ),  | 
                                                        |
| 410 | - 'KRW' => __( 'South Korean Won', 'invoicing' ),  | 
                                                        |
| 411 | - 'KWD' => __( 'Kuwaiti Dinar', 'invoicing' ),  | 
                                                        |
| 412 | - 'KYD' => __( 'Cayman Islands Dollar', 'invoicing' ),  | 
                                                        |
| 413 | - 'KZT' => __( 'Kazakhstani Tenge', 'invoicing' ),  | 
                                                        |
| 414 | - 'LAK' => __( 'Lao Kip', 'invoicing' ),  | 
                                                        |
| 415 | - 'LBP' => __( 'Lebanese Pound', 'invoicing' ),  | 
                                                        |
| 416 | - 'LKR' => __( 'Sri Lankan Rupee', 'invoicing' ),  | 
                                                        |
| 417 | - 'LRD' => __( 'Liberian Dollar', 'invoicing' ),  | 
                                                        |
| 418 | - 'LSL' => __( 'Lesotho Loti', 'invoicing' ),  | 
                                                        |
| 419 | - 'LYD' => __( 'Libyan Dinar', 'invoicing' ),  | 
                                                        |
| 420 | - 'MAD' => __( 'Moroccan Dirham', 'invoicing' ),  | 
                                                        |
| 421 | - 'MDL' => __( 'Moldovan Leu', 'invoicing' ),  | 
                                                        |
| 422 | - 'MGA' => __( 'Malagasy Ariary', 'invoicing' ),  | 
                                                        |
| 423 | - 'MKD' => __( 'Macedonian Denar', 'invoicing' ),  | 
                                                        |
| 424 | - 'MMK' => __( 'Burmese Kyat', 'invoicing' ),  | 
                                                        |
| 425 | - 'MNT' => __( 'Mongolian Tughrik', 'invoicing' ),  | 
                                                        |
| 426 | - 'MOP' => __( 'Macanese Pataca', 'invoicing' ),  | 
                                                        |
| 427 | - 'MRO' => __( 'Mauritanian Ouguiya', 'invoicing' ),  | 
                                                        |
| 428 | - 'MUR' => __( 'Mauritian Rupee', 'invoicing' ),  | 
                                                        |
| 429 | - 'MVR' => __( 'Maldivian Rufiyaa', 'invoicing' ),  | 
                                                        |
| 430 | - 'MWK' => __( 'Malawian Kwacha', 'invoicing' ),  | 
                                                        |
| 431 | - 'MXN' => __( 'Mexican Peso', 'invoicing' ),  | 
                                                        |
| 432 | - 'MYR' => __( 'Malaysian Ringgit', 'invoicing' ),  | 
                                                        |
| 433 | - 'MZN' => __( 'Mozambican Metical', 'invoicing' ),  | 
                                                        |
| 434 | - 'NAD' => __( 'Namibian Dollar', 'invoicing' ),  | 
                                                        |
| 435 | - 'NGN' => __( 'Nigerian Naira', 'invoicing' ),  | 
                                                        |
| 436 | - 'NIO' => __( 'Nicaraguan Cordoba', 'invoicing' ),  | 
                                                        |
| 437 | - 'NOK' => __( 'Norwegian Krone', 'invoicing' ),  | 
                                                        |
| 438 | - 'NPR' => __( 'Nepalese Rupee', 'invoicing' ),  | 
                                                        |
| 439 | - 'NZD' => __( 'New Zealand Dollar', 'invoicing' ),  | 
                                                        |
| 440 | - 'OMR' => __( 'Omani Rial', 'invoicing' ),  | 
                                                        |
| 441 | - 'PAB' => __( 'Panamanian Balboa', 'invoicing' ),  | 
                                                        |
| 442 | - 'PEN' => __( 'Peruvian Nuevo Sol', 'invoicing' ),  | 
                                                        |
| 443 | - 'PGK' => __( 'Papua New Guinean Kina', 'invoicing' ),  | 
                                                        |
| 444 | - 'PHP' => __( 'Philippine Peso', 'invoicing' ),  | 
                                                        |
| 445 | - 'PKR' => __( 'Pakistani Rupee', 'invoicing' ),  | 
                                                        |
| 446 | - 'PLN' => __( 'Polish Zloty', 'invoicing' ),  | 
                                                        |
| 447 | - 'PRB' => __( 'Transnistrian Ruble', 'invoicing' ),  | 
                                                        |
| 448 | - 'PYG' => __( 'Paraguayan Guarani', 'invoicing' ),  | 
                                                        |
| 449 | - 'QAR' => __( 'Qatari Riyal', 'invoicing' ),  | 
                                                        |
| 450 | - 'RON' => __( 'Romanian Leu', 'invoicing' ),  | 
                                                        |
| 451 | - 'RSD' => __( 'Serbian Dinar', 'invoicing' ),  | 
                                                        |
| 452 | - 'RUB' => __( 'Russian Ruble', 'invoicing' ),  | 
                                                        |
| 453 | - 'RWF' => __( 'Rwandan Franc', 'invoicing' ),  | 
                                                        |
| 454 | - 'SAR' => __( 'Saudi Riyal', 'invoicing' ),  | 
                                                        |
| 455 | - 'SBD' => __( 'Solomon Islands Dollar', 'invoicing' ),  | 
                                                        |
| 456 | - 'SCR' => __( 'Seychellois Rupee', 'invoicing' ),  | 
                                                        |
| 457 | - 'SDG' => __( 'Sudanese Pound', 'invoicing' ),  | 
                                                        |
| 458 | - 'SEK' => __( 'Swedish Krona', 'invoicing' ),  | 
                                                        |
| 459 | - 'SGD' => __( 'Singapore Dollar', 'invoicing' ),  | 
                                                        |
| 460 | - 'SHP' => __( 'Saint Helena Pound', 'invoicing' ),  | 
                                                        |
| 461 | - 'SLL' => __( 'Sierra Leonean Leone', 'invoicing' ),  | 
                                                        |
| 462 | - 'SOS' => __( 'Somali Shilling', 'invoicing' ),  | 
                                                        |
| 463 | - 'SRD' => __( 'Surinamese Dollar', 'invoicing' ),  | 
                                                        |
| 464 | - 'SSP' => __( 'South Sudanese Pound', 'invoicing' ),  | 
                                                        |
| 465 | - 'STD' => __( 'Sao Tomean Dobra', 'invoicing' ),  | 
                                                        |
| 466 | - 'SYP' => __( 'Syrian Pound', 'invoicing' ),  | 
                                                        |
| 467 | - 'SZL' => __( 'Swazi Lilangeni', 'invoicing' ),  | 
                                                        |
| 468 | - 'THB' => __( 'Thai Baht', 'invoicing' ),  | 
                                                        |
| 469 | - 'TJS' => __( 'Tajikistani Somoni', 'invoicing' ),  | 
                                                        |
| 470 | - 'TMT' => __( 'Turkmenistan Manat', 'invoicing' ),  | 
                                                        |
| 471 | - 'TND' => __( 'Tunisian Dinar', 'invoicing' ),  | 
                                                        |
| 472 | - 'TOP' => __( 'Tongan Paʻanga', 'invoicing' ),  | 
                                                        |
| 473 | - 'TRY' => __( 'Turkish Lira', 'invoicing' ),  | 
                                                        |
| 474 | - 'TTD' => __( 'Trinidad and Tobago Dollar', 'invoicing' ),  | 
                                                        |
| 475 | - 'TWD' => __( 'New Taiwan Dollar', 'invoicing' ),  | 
                                                        |
| 476 | - 'TZS' => __( 'Tanzanian Shilling', 'invoicing' ),  | 
                                                        |
| 477 | - 'UAH' => __( 'Ukrainian Hryvnia', 'invoicing' ),  | 
                                                        |
| 478 | - 'UGX' => __( 'Ugandan Shilling', 'invoicing' ),  | 
                                                        |
| 479 | - 'UYU' => __( 'Uruguayan Peso', 'invoicing' ),  | 
                                                        |
| 480 | - 'UZS' => __( 'Uzbekistani Som', 'invoicing' ),  | 
                                                        |
| 481 | - 'VEF' => __( 'Venezuelan Bolívar', 'invoicing' ),  | 
                                                        |
| 482 | - 'VND' => __( 'Vietnamese Dong', 'invoicing' ),  | 
                                                        |
| 483 | - 'VUV' => __( 'Vanuatu Vatu', 'invoicing' ),  | 
                                                        |
| 484 | - 'WST' => __( 'Samoan Tala', 'invoicing' ),  | 
                                                        |
| 485 | - 'XAF' => __( 'Central African CFA Franc', 'invoicing' ),  | 
                                                        |
| 486 | - 'XCD' => __( 'East Caribbean Dollar', 'invoicing' ),  | 
                                                        |
| 487 | - 'XOF' => __( 'West African CFA Franc', 'invoicing' ),  | 
                                                        |
| 488 | - 'XPF' => __( 'CFP Franc', 'invoicing' ),  | 
                                                        |
| 489 | - 'YER' => __( 'Yemeni Rial', 'invoicing' ),  | 
                                                        |
| 490 | - 'ZAR' => __( 'South African Rand', 'invoicing' ),  | 
                                                        |
| 491 | - 'ZMW' => __( 'Zambian Kwacha', 'invoicing' ),  | 
                                                        |
| 331 | +        'USD' => __('US Dollar', 'invoicing'), | 
                                                        |
| 332 | +        'EUR' => __('Euro', 'invoicing'), | 
                                                        |
| 333 | +        'GBP' => __('Pound Sterling', 'invoicing'), | 
                                                        |
| 334 | +        'AED' => __('United Arab Emirates', 'invoicing'), | 
                                                        |
| 335 | +        'AFN' => __('Afghan Afghani', 'invoicing'), | 
                                                        |
| 336 | +        'ALL' => __('Albanian Lek', 'invoicing'), | 
                                                        |
| 337 | +        'AMD' => __('Armenian Dram', 'invoicing'), | 
                                                        |
| 338 | +        'ANG' => __('Netherlands Antillean Guilder', 'invoicing'), | 
                                                        |
| 339 | +        'AOA' => __('Angolan Kwanza', 'invoicing'), | 
                                                        |
| 340 | +        'ARS' => __('Argentine Peso', 'invoicing'), | 
                                                        |
| 341 | +        'AUD' => __('Australian Dollar', 'invoicing'), | 
                                                        |
| 342 | +        'AWG' => __('Aruban Florin', 'invoicing'), | 
                                                        |
| 343 | +        'AZN' => __('Azerbaijani Manat', 'invoicing'), | 
                                                        |
| 344 | +        'BAM' => __('Bosnia and Herzegovina Convertible Marka', 'invoicing'), | 
                                                        |
| 345 | +        'BBD' => __('Barbadian Dollar', 'invoicing'), | 
                                                        |
| 346 | +        'BDT' => __('Bangladeshi Taka', 'invoicing'), | 
                                                        |
| 347 | +        'BGN' => __('Bulgarian Lev', 'invoicing'), | 
                                                        |
| 348 | +        'BHD' => __('Bahraini Dinar', 'invoicing'), | 
                                                        |
| 349 | +        'BIF' => __('Burundian Franc', 'invoicing'), | 
                                                        |
| 350 | +        'BMD' => __('Bermudian Dollar', 'invoicing'), | 
                                                        |
| 351 | +        'BND' => __('Brunei Dollar', 'invoicing'), | 
                                                        |
| 352 | +        'BOB' => __('Bolivian Boliviano', 'invoicing'), | 
                                                        |
| 353 | +        'BRL' => __('Brazilian Real', 'invoicing'), | 
                                                        |
| 354 | +        'BSD' => __('Bahamian Dollar', 'invoicing'), | 
                                                        |
| 355 | +        'BTC' => __('Bitcoin', 'invoicing'), | 
                                                        |
| 356 | +        'BTN' => __('Bhutanese Ngultrum', 'invoicing'), | 
                                                        |
| 357 | +        'BWP' => __('Botswana Pula', 'invoicing'), | 
                                                        |
| 358 | +        'BYN' => __('Belarusian Ruble', 'invoicing'), | 
                                                        |
| 359 | +        'BZD' => __('Belize Dollar', 'invoicing'), | 
                                                        |
| 360 | +        'CAD' => __('Canadian Dollar', 'invoicing'), | 
                                                        |
| 361 | +        'CDF' => __('Congolese Franc', 'invoicing'), | 
                                                        |
| 362 | +        'CHF' => __('Swiss Franc', 'invoicing'), | 
                                                        |
| 363 | +        'CLP' => __('Chilean Peso', 'invoicing'), | 
                                                        |
| 364 | +        'CNY' => __('Chinese Yuan', 'invoicing'), | 
                                                        |
| 365 | +        'COP' => __('Colombian Peso', 'invoicing'), | 
                                                        |
| 366 | +        'CRC' => __('Costa Rican Colon', 'invoicing'), | 
                                                        |
| 367 | +        'CUC' => __('Cuban Convertible Peso', 'invoicing'), | 
                                                        |
| 368 | +        'CUP' => __('Cuban Peso', 'invoicing'), | 
                                                        |
| 369 | +        'CVE' => __('Cape Verdean escudo', 'invoicing'), | 
                                                        |
| 370 | +        'CZK' => __('Czech Koruna', 'invoicing'), | 
                                                        |
| 371 | +        'DJF' => __('Djiboutian Franc', 'invoicing'), | 
                                                        |
| 372 | +        'DKK' => __('Danish Krone', 'invoicing'), | 
                                                        |
| 373 | +        'DOP' => __('Dominican Peso', 'invoicing'), | 
                                                        |
| 374 | +        'DZD' => __('Algerian Dinar', 'invoicing'), | 
                                                        |
| 375 | +        'EGP' => __('Egyptian Pound', 'invoicing'), | 
                                                        |
| 376 | +        'ERN' => __('Eritrean Nakfa', 'invoicing'), | 
                                                        |
| 377 | +        'ETB' => __('Ethiopian Irr', 'invoicing'), | 
                                                        |
| 378 | +        'FJD' => __('Fijian Dollar', 'invoicing'), | 
                                                        |
| 379 | +        'FKP' => __('Falkland Islands Pound', 'invoicing'), | 
                                                        |
| 380 | +        'GEL' => __('Georgian Lari', 'invoicing'), | 
                                                        |
| 381 | +        'GGP' => __('Guernsey Pound', 'invoicing'), | 
                                                        |
| 382 | +        'GHS' => __('Ghana Cedi', 'invoicing'), | 
                                                        |
| 383 | +        'GIP' => __('Gibraltar Pound', 'invoicing'), | 
                                                        |
| 384 | +        'GMD' => __('Gambian Dalasi', 'invoicing'), | 
                                                        |
| 385 | +        'GNF' => __('Guinean Franc', 'invoicing'), | 
                                                        |
| 386 | +        'GTQ' => __('Guatemalan Quetzal', 'invoicing'), | 
                                                        |
| 387 | +        'GYD' => __('Guyanese Dollar', 'invoicing'), | 
                                                        |
| 388 | +        'HKD' => __('Hong Kong Dollar', 'invoicing'), | 
                                                        |
| 389 | +        'HNL' => __('Honduran Lempira', 'invoicing'), | 
                                                        |
| 390 | +        'HRK' => __('Croatian Kuna', 'invoicing'), | 
                                                        |
| 391 | +        'HTG' => __('Haitian Gourde', 'invoicing'), | 
                                                        |
| 392 | +        'HUF' => __('Hungarian Forint', 'invoicing'), | 
                                                        |
| 393 | +        'IDR' => __('Indonesian Rupiah', 'invoicing'), | 
                                                        |
| 394 | +        'ILS' => __('Israeli New Shekel', 'invoicing'), | 
                                                        |
| 395 | +        'IMP' => __('Manx Pound', 'invoicing'), | 
                                                        |
| 396 | +        'INR' => __('Indian Rupee', 'invoicing'), | 
                                                        |
| 397 | +        'IQD' => __('Iraqi Dinar', 'invoicing'), | 
                                                        |
| 398 | +        'IRR' => __('Iranian Rial', 'invoicing'), | 
                                                        |
| 399 | +        'IRT' => __('Iranian Toman', 'invoicing'), | 
                                                        |
| 400 | +        'ISK' => __('Icelandic Krona', 'invoicing'), | 
                                                        |
| 401 | +        'JEP' => __('Jersey Pound', 'invoicing'), | 
                                                        |
| 402 | +        'JMD' => __('Jamaican Dollar', 'invoicing'), | 
                                                        |
| 403 | +        'JOD' => __('Jordanian Dinar', 'invoicing'), | 
                                                        |
| 404 | +        'JPY' => __('Japanese Yen', 'invoicing'), | 
                                                        |
| 405 | +        'KES' => __('Kenyan Shilling', 'invoicing'), | 
                                                        |
| 406 | +        'KGS' => __('Kyrgyzstani Som', 'invoicing'), | 
                                                        |
| 407 | +        'KHR' => __('Cambodian Riel', 'invoicing'), | 
                                                        |
| 408 | +        'KMF' => __('Comorian Franc', 'invoicing'), | 
                                                        |
| 409 | +        'KPW' => __('North Korean Won', 'invoicing'), | 
                                                        |
| 410 | +        'KRW' => __('South Korean Won', 'invoicing'), | 
                                                        |
| 411 | +        'KWD' => __('Kuwaiti Dinar', 'invoicing'), | 
                                                        |
| 412 | +        'KYD' => __('Cayman Islands Dollar', 'invoicing'), | 
                                                        |
| 413 | +        'KZT' => __('Kazakhstani Tenge', 'invoicing'), | 
                                                        |
| 414 | +        'LAK' => __('Lao Kip', 'invoicing'), | 
                                                        |
| 415 | +        'LBP' => __('Lebanese Pound', 'invoicing'), | 
                                                        |
| 416 | +        'LKR' => __('Sri Lankan Rupee', 'invoicing'), | 
                                                        |
| 417 | +        'LRD' => __('Liberian Dollar', 'invoicing'), | 
                                                        |
| 418 | +        'LSL' => __('Lesotho Loti', 'invoicing'), | 
                                                        |
| 419 | +        'LYD' => __('Libyan Dinar', 'invoicing'), | 
                                                        |
| 420 | +        'MAD' => __('Moroccan Dirham', 'invoicing'), | 
                                                        |
| 421 | +        'MDL' => __('Moldovan Leu', 'invoicing'), | 
                                                        |
| 422 | +        'MGA' => __('Malagasy Ariary', 'invoicing'), | 
                                                        |
| 423 | +        'MKD' => __('Macedonian Denar', 'invoicing'), | 
                                                        |
| 424 | +        'MMK' => __('Burmese Kyat', 'invoicing'), | 
                                                        |
| 425 | +        'MNT' => __('Mongolian Tughrik', 'invoicing'), | 
                                                        |
| 426 | +        'MOP' => __('Macanese Pataca', 'invoicing'), | 
                                                        |
| 427 | +        'MRO' => __('Mauritanian Ouguiya', 'invoicing'), | 
                                                        |
| 428 | +        'MUR' => __('Mauritian Rupee', 'invoicing'), | 
                                                        |
| 429 | +        'MVR' => __('Maldivian Rufiyaa', 'invoicing'), | 
                                                        |
| 430 | +        'MWK' => __('Malawian Kwacha', 'invoicing'), | 
                                                        |
| 431 | +        'MXN' => __('Mexican Peso', 'invoicing'), | 
                                                        |
| 432 | +        'MYR' => __('Malaysian Ringgit', 'invoicing'), | 
                                                        |
| 433 | +        'MZN' => __('Mozambican Metical', 'invoicing'), | 
                                                        |
| 434 | +        'NAD' => __('Namibian Dollar', 'invoicing'), | 
                                                        |
| 435 | +        'NGN' => __('Nigerian Naira', 'invoicing'), | 
                                                        |
| 436 | +        'NIO' => __('Nicaraguan Cordoba', 'invoicing'), | 
                                                        |
| 437 | +        'NOK' => __('Norwegian Krone', 'invoicing'), | 
                                                        |
| 438 | +        'NPR' => __('Nepalese Rupee', 'invoicing'), | 
                                                        |
| 439 | +        'NZD' => __('New Zealand Dollar', 'invoicing'), | 
                                                        |
| 440 | +        'OMR' => __('Omani Rial', 'invoicing'), | 
                                                        |
| 441 | +        'PAB' => __('Panamanian Balboa', 'invoicing'), | 
                                                        |
| 442 | +        'PEN' => __('Peruvian Nuevo Sol', 'invoicing'), | 
                                                        |
| 443 | +        'PGK' => __('Papua New Guinean Kina', 'invoicing'), | 
                                                        |
| 444 | +        'PHP' => __('Philippine Peso', 'invoicing'), | 
                                                        |
| 445 | +        'PKR' => __('Pakistani Rupee', 'invoicing'), | 
                                                        |
| 446 | +        'PLN' => __('Polish Zloty', 'invoicing'), | 
                                                        |
| 447 | +        'PRB' => __('Transnistrian Ruble', 'invoicing'), | 
                                                        |
| 448 | +        'PYG' => __('Paraguayan Guarani', 'invoicing'), | 
                                                        |
| 449 | +        'QAR' => __('Qatari Riyal', 'invoicing'), | 
                                                        |
| 450 | +        'RON' => __('Romanian Leu', 'invoicing'), | 
                                                        |
| 451 | +        'RSD' => __('Serbian Dinar', 'invoicing'), | 
                                                        |
| 452 | +        'RUB' => __('Russian Ruble', 'invoicing'), | 
                                                        |
| 453 | +        'RWF' => __('Rwandan Franc', 'invoicing'), | 
                                                        |
| 454 | +        'SAR' => __('Saudi Riyal', 'invoicing'), | 
                                                        |
| 455 | +        'SBD' => __('Solomon Islands Dollar', 'invoicing'), | 
                                                        |
| 456 | +        'SCR' => __('Seychellois Rupee', 'invoicing'), | 
                                                        |
| 457 | +        'SDG' => __('Sudanese Pound', 'invoicing'), | 
                                                        |
| 458 | +        'SEK' => __('Swedish Krona', 'invoicing'), | 
                                                        |
| 459 | +        'SGD' => __('Singapore Dollar', 'invoicing'), | 
                                                        |
| 460 | +        'SHP' => __('Saint Helena Pound', 'invoicing'), | 
                                                        |
| 461 | +        'SLL' => __('Sierra Leonean Leone', 'invoicing'), | 
                                                        |
| 462 | +        'SOS' => __('Somali Shilling', 'invoicing'), | 
                                                        |
| 463 | +        'SRD' => __('Surinamese Dollar', 'invoicing'), | 
                                                        |
| 464 | +        'SSP' => __('South Sudanese Pound', 'invoicing'), | 
                                                        |
| 465 | +        'STD' => __('Sao Tomean Dobra', 'invoicing'), | 
                                                        |
| 466 | +        'SYP' => __('Syrian Pound', 'invoicing'), | 
                                                        |
| 467 | +        'SZL' => __('Swazi Lilangeni', 'invoicing'), | 
                                                        |
| 468 | +        'THB' => __('Thai Baht', 'invoicing'), | 
                                                        |
| 469 | +        'TJS' => __('Tajikistani Somoni', 'invoicing'), | 
                                                        |
| 470 | +        'TMT' => __('Turkmenistan Manat', 'invoicing'), | 
                                                        |
| 471 | +        'TND' => __('Tunisian Dinar', 'invoicing'), | 
                                                        |
| 472 | +        'TOP' => __('Tongan Paʻanga', 'invoicing'), | 
                                                        |
| 473 | +        'TRY' => __('Turkish Lira', 'invoicing'), | 
                                                        |
| 474 | +        'TTD' => __('Trinidad and Tobago Dollar', 'invoicing'), | 
                                                        |
| 475 | +        'TWD' => __('New Taiwan Dollar', 'invoicing'), | 
                                                        |
| 476 | +        'TZS' => __('Tanzanian Shilling', 'invoicing'), | 
                                                        |
| 477 | +        'UAH' => __('Ukrainian Hryvnia', 'invoicing'), | 
                                                        |
| 478 | +        'UGX' => __('Ugandan Shilling', 'invoicing'), | 
                                                        |
| 479 | +        'UYU' => __('Uruguayan Peso', 'invoicing'), | 
                                                        |
| 480 | +        'UZS' => __('Uzbekistani Som', 'invoicing'), | 
                                                        |
| 481 | +        'VEF' => __('Venezuelan Bolívar', 'invoicing'), | 
                                                        |
| 482 | +        'VND' => __('Vietnamese Dong', 'invoicing'), | 
                                                        |
| 483 | +        'VUV' => __('Vanuatu Vatu', 'invoicing'), | 
                                                        |
| 484 | +        'WST' => __('Samoan Tala', 'invoicing'), | 
                                                        |
| 485 | +        'XAF' => __('Central African CFA Franc', 'invoicing'), | 
                                                        |
| 486 | +        'XCD' => __('East Caribbean Dollar', 'invoicing'), | 
                                                        |
| 487 | +        'XOF' => __('West African CFA Franc', 'invoicing'), | 
                                                        |
| 488 | +        'XPF' => __('CFP Franc', 'invoicing'), | 
                                                        |
| 489 | +        'YER' => __('Yemeni Rial', 'invoicing'), | 
                                                        |
| 490 | +        'ZAR' => __('South African Rand', 'invoicing'), | 
                                                        |
| 491 | +        'ZMW' => __('Zambian Kwacha', 'invoicing'), | 
                                                        |
| 492 | 492 | );  | 
                                                        
| 493 | 493 | |
| 494 | 494 | //asort( $currencies ); // this  | 
                                                        
| 495 | 495 | |
| 496 | - return apply_filters( 'wpinv_currencies', $currencies );  | 
                                                        |
| 496 | +    return apply_filters('wpinv_currencies', $currencies); | 
                                                        |
| 497 | 497 | }  | 
                                                        
| 498 | 498 | |
| 499 | -function wpinv_price( $amount = '', $currency = '' ) { | 
                                                        |
| 500 | -    if( empty( $currency ) ) { | 
                                                        |
| 499 | +function wpinv_price($amount = '', $currency = '') { | 
                                                        |
| 500 | +    if (empty($currency)) { | 
                                                        |
| 501 | 501 | $currency = wpinv_get_currency();  | 
                                                        
| 502 | 502 | }  | 
                                                        
| 503 | 503 | |
@@ -505,14 +505,14 @@ discard block  | 
                                                    ||
| 505 | 505 | |
| 506 | 506 | $negative = $amount < 0;  | 
                                                        
| 507 | 507 | |
| 508 | -    if ( $negative ) { | 
                                                        |
| 509 | - $amount = substr( $amount, 1 );  | 
                                                        |
| 508 | +    if ($negative) { | 
                                                        |
| 509 | + $amount = substr($amount, 1);  | 
                                                        |
| 510 | 510 | }  | 
                                                        
| 511 | 511 | |
| 512 | - $symbol = wpinv_currency_symbol( $currency );  | 
                                                        |
| 512 | + $symbol = wpinv_currency_symbol($currency);  | 
                                                        |
| 513 | 513 | |
| 514 | -    if ( $position == 'left' || $position == 'left_space' ) { | 
                                                        |
| 515 | -        switch ( $currency ) { | 
                                                        |
| 514 | +    if ($position == 'left' || $position == 'left_space') { | 
                                                        |
| 515 | +        switch ($currency) { | 
                                                        |
| 516 | 516 | case "GBP" :  | 
                                                        
| 517 | 517 | case "BRL" :  | 
                                                        
| 518 | 518 | case "EUR" :  | 
                                                        
@@ -524,15 +524,15 @@ discard block  | 
                                                    ||
| 524 | 524 | case "NZD" :  | 
                                                        
| 525 | 525 | case "SGD" :  | 
                                                        
| 526 | 526 | case "JPY" :  | 
                                                        
| 527 | - $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;  | 
                                                        |
| 527 | + $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;  | 
                                                        |
| 528 | 528 | break;  | 
                                                        
| 529 | 529 | default :  | 
                                                        
| 530 | 530 | //$price = $currency . ' ' . $amount;  | 
                                                        
| 531 | - $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;  | 
                                                        |
| 531 | + $price = $position == 'left_space' ? $symbol . ' ' . $amount : $symbol . $amount;  | 
                                                        |
| 532 | 532 | break;  | 
                                                        
| 533 | 533 | }  | 
                                                        
| 534 | 534 |      } else { | 
                                                        
| 535 | -        switch ( $currency ) { | 
                                                        |
| 535 | +        switch ($currency) { | 
                                                        |
| 536 | 536 | case "GBP" :  | 
                                                        
| 537 | 537 | case "BRL" :  | 
                                                        
| 538 | 538 | case "EUR" :  | 
                                                        
@@ -543,83 +543,83 @@ discard block  | 
                                                    ||
| 543 | 543 | case "MXN" :  | 
                                                        
| 544 | 544 | case "SGD" :  | 
                                                        
| 545 | 545 | case "JPY" :  | 
                                                        
| 546 | - $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;  | 
                                                        |
| 546 | + $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;  | 
                                                        |
| 547 | 547 | break;  | 
                                                        
| 548 | 548 | default :  | 
                                                        
| 549 | 549 | //$price = $amount . ' ' . $currency;  | 
                                                        
| 550 | - $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;  | 
                                                        |
| 550 | + $price = $position == 'right_space' ? $amount . ' ' . $symbol : $amount . $symbol;  | 
                                                        |
| 551 | 551 | break;  | 
                                                        
| 552 | 552 | }  | 
                                                        
| 553 | 553 | }  | 
                                                        
| 554 | 554 | |
| 555 | -    if ( $negative ) { | 
                                                        |
| 555 | +    if ($negative) { | 
                                                        |
| 556 | 556 | $price = '-' . $price;  | 
                                                        
| 557 | 557 | }  | 
                                                        
| 558 | 558 | |
| 559 | - $price = apply_filters( 'wpinv_' . strtolower( $currency ) . '_currency_filter_' . $position, $price, $currency, $amount );  | 
                                                        |
| 559 | +    $price = apply_filters('wpinv_' . strtolower($currency) . '_currency_filter_' . $position, $price, $currency, $amount); | 
                                                        |
| 560 | 560 | |
| 561 | 561 | return $price;  | 
                                                        
| 562 | 562 | }  | 
                                                        
| 563 | 563 | |
| 564 | -function wpinv_format_amount( $amount, $decimals = NULL, $calculate = false ) { | 
                                                        |
| 564 | +function wpinv_format_amount($amount, $decimals = NULL, $calculate = false) { | 
                                                        |
| 565 | 565 | $thousands_sep = wpinv_thousands_separator();  | 
                                                        
| 566 | 566 | $decimal_sep = wpinv_decimal_separator();  | 
                                                        
| 567 | 567 | |
| 568 | -    if ( $decimals === NULL ) { | 
                                                        |
| 568 | +    if ($decimals === NULL) { | 
                                                        |
| 569 | 569 | $decimals = wpinv_decimals();  | 
                                                        
| 570 | 570 | }  | 
                                                        
| 571 | 571 | |
| 572 | -    if ( $decimal_sep == ',' && false !== ( $sep_found = strpos( $amount, $decimal_sep ) ) ) { | 
                                                        |
| 573 | - $whole = substr( $amount, 0, $sep_found );  | 
                                                        |
| 574 | - $part = substr( $amount, $sep_found + 1, ( strlen( $amount ) - 1 ) );  | 
                                                        |
| 572 | +    if ($decimal_sep == ',' && false !== ($sep_found = strpos($amount, $decimal_sep))) { | 
                                                        |
| 573 | + $whole = substr($amount, 0, $sep_found);  | 
                                                        |
| 574 | + $part = substr($amount, $sep_found + 1, (strlen($amount) - 1));  | 
                                                        |
| 575 | 575 | $amount = $whole . '.' . $part;  | 
                                                        
| 576 | 576 | }  | 
                                                        
| 577 | 577 | |
| 578 | -    if ( $thousands_sep == ',' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) { | 
                                                        |
| 579 | - $amount = str_replace( ',', '', $amount );  | 
                                                        |
| 578 | +    if ($thousands_sep == ',' && false !== ($found = strpos($amount, $thousands_sep))) { | 
                                                        |
| 579 | +        $amount = str_replace(',', '', $amount); | 
                                                        |
| 580 | 580 | }  | 
                                                        
| 581 | 581 | |
| 582 | -    if ( $thousands_sep == ' ' && false !== ( $found = strpos( $amount, $thousands_sep ) ) ) { | 
                                                        |
| 583 | - $amount = str_replace( ' ', '', $amount );  | 
                                                        |
| 582 | +    if ($thousands_sep == ' ' && false !== ($found = strpos($amount, $thousands_sep))) { | 
                                                        |
| 583 | +        $amount = str_replace(' ', '', $amount); | 
                                                        |
| 584 | 584 | }  | 
                                                        
| 585 | 585 | |
| 586 | -    if ( empty( $amount ) ) { | 
                                                        |
| 586 | +    if (empty($amount)) { | 
                                                        |
| 587 | 587 | $amount = 0;  | 
                                                        
| 588 | 588 | }  | 
                                                        
| 589 | 589 | |
| 590 | - $decimals = apply_filters( 'wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate );  | 
                                                        |
| 591 | - $formatted = number_format( (float)$amount, $decimals, $decimal_sep, $thousands_sep );  | 
                                                        |
| 590 | +    $decimals  = apply_filters('wpinv_amount_format_decimals', $decimals ? $decimals : 0, $amount, $calculate); | 
                                                        |
| 591 | + $formatted = number_format((float) $amount, $decimals, $decimal_sep, $thousands_sep);  | 
                                                        |
| 592 | 592 | |
| 593 | -    if ( $calculate ) { | 
                                                        |
| 594 | -        if ( $thousands_sep === "," ) { | 
                                                        |
| 595 | - $formatted = str_replace( ",", "", $formatted );  | 
                                                        |
| 593 | +    if ($calculate) { | 
                                                        |
| 594 | +        if ($thousands_sep === ",") { | 
                                                        |
| 595 | +            $formatted = str_replace(",", "", $formatted); | 
                                                        |
| 596 | 596 | }  | 
                                                        
| 597 | 597 | |
| 598 | -        if ( $decimal_sep === "," ) { | 
                                                        |
| 599 | - $formatted = str_replace( ",", ".", $formatted );  | 
                                                        |
| 598 | +        if ($decimal_sep === ",") { | 
                                                        |
| 599 | +            $formatted = str_replace(",", ".", $formatted); | 
                                                        |
| 600 | 600 | }  | 
                                                        
| 601 | 601 | }  | 
                                                        
| 602 | 602 | |
| 603 | - return apply_filters( 'wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate );  | 
                                                        |
| 603 | +    return apply_filters('wpinv_amount_format', $formatted, $amount, $decimals, $decimal_sep, $thousands_sep, $calculate); | 
                                                        |
| 604 | 604 | }  | 
                                                        
| 605 | -add_filter( 'wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1 );  | 
                                                        |
| 605 | +add_filter('wpinv_amount_format_decimals', 'wpinv_currency_decimal_filter', 10, 1); | 
                                                        |
| 606 | 606 | |
| 607 | -function wpinv_sanitize_key( $key ) { | 
                                                        |
| 607 | +function wpinv_sanitize_key($key) { | 
                                                        |
| 608 | 608 | $raw_key = $key;  | 
                                                        
| 609 | - $key = preg_replace( '/[^a-zA-Z0-9_\-\.\:\/]/', '', $key );  | 
                                                        |
| 609 | +    $key = preg_replace('/[^a-zA-Z0-9_\-\.\:\/]/', '', $key); | 
                                                        |
| 610 | 610 | |
| 611 | - return apply_filters( 'wpinv_sanitize_key', $key, $raw_key );  | 
                                                        |
| 611 | +    return apply_filters('wpinv_sanitize_key', $key, $raw_key); | 
                                                        |
| 612 | 612 | }  | 
                                                        
| 613 | 613 | |
| 614 | -function wpinv_get_file_extension( $str ) { | 
                                                        |
| 615 | - $parts = explode( '.', $str );  | 
                                                        |
| 616 | - return end( $parts );  | 
                                                        |
| 614 | +function wpinv_get_file_extension($str) { | 
                                                        |
| 615 | +    $parts = explode('.', $str); | 
                                                        |
| 616 | + return end($parts);  | 
                                                        |
| 617 | 617 | }  | 
                                                        
| 618 | 618 | |
| 619 | -function wpinv_string_is_image_url( $str ) { | 
                                                        |
| 620 | - $ext = wpinv_get_file_extension( $str );  | 
                                                        |
| 619 | +function wpinv_string_is_image_url($str) { | 
                                                        |
| 620 | + $ext = wpinv_get_file_extension($str);  | 
                                                        |
| 621 | 621 | |
| 622 | -    switch ( strtolower( $ext ) ) { | 
                                                        |
| 622 | +    switch (strtolower($ext)) { | 
                                                        |
| 623 | 623 | case 'jpeg';  | 
                                                        
| 624 | 624 | case 'jpg';  | 
                                                        
| 625 | 625 | $return = true;  | 
                                                        
@@ -635,32 +635,32 @@ discard block  | 
                                                    ||
| 635 | 635 | break;  | 
                                                        
| 636 | 636 | }  | 
                                                        
| 637 | 637 | |
| 638 | - return (bool)apply_filters( 'wpinv_string_is_image', $return, $str );  | 
                                                        |
| 638 | +    return (bool) apply_filters('wpinv_string_is_image', $return, $str); | 
                                                        |
| 639 | 639 | }  | 
                                                        
| 640 | 640 | |
| 641 | -function wpinv_error_log( $log, $title = '', $file = '', $line = '', $exit = false ) { | 
                                                        |
| 642 | - $should_log = apply_filters( 'wpinv_log_errors', WP_DEBUG );  | 
                                                        |
| 641 | +function wpinv_error_log($log, $title = '', $file = '', $line = '', $exit = false) { | 
                                                        |
| 642 | +    $should_log = apply_filters('wpinv_log_errors', WP_DEBUG); | 
                                                        |
| 643 | 643 | |
| 644 | -    if ( true === $should_log ) { | 
                                                        |
| 644 | +    if (true === $should_log) { | 
                                                        |
| 645 | 645 | $label = '';  | 
                                                        
| 646 | -        if ( $file && $file !== '' ) { | 
                                                        |
| 647 | -            $label .= basename( $file ) . ( $line ? '(' . $line . ')' : '' ); | 
                                                        |
| 646 | +        if ($file && $file !== '') { | 
                                                        |
| 647 | +            $label .= basename($file) . ($line ? '(' . $line . ')' : ''); | 
                                                        |
| 648 | 648 | }  | 
                                                        
| 649 | 649 | |
| 650 | -        if ( $title && $title !== '' ) { | 
                                                        |
| 650 | +        if ($title && $title !== '') { | 
                                                        |
| 651 | 651 | $label = $label !== '' ? $label . ' ' : '';  | 
                                                        
| 652 | 652 | $label .= $title . ' ';  | 
                                                        
| 653 | 653 | }  | 
                                                        
| 654 | 654 | |
| 655 | - $label = $label !== '' ? trim( $label ) . ' : ' : '';  | 
                                                        |
| 655 | + $label = $label !== '' ? trim($label) . ' : ' : '';  | 
                                                        |
| 656 | 656 | |
| 657 | -        if ( is_array( $log ) || is_object( $log ) ) { | 
                                                        |
| 658 | - error_log( $label . print_r( $log, true ) );  | 
                                                        |
| 657 | +        if (is_array($log) || is_object($log)) { | 
                                                        |
| 658 | + error_log($label . print_r($log, true));  | 
                                                        |
| 659 | 659 |          } else { | 
                                                        
| 660 | - error_log( $label . $log );  | 
                                                        |
| 660 | + error_log($label . $log);  | 
                                                        |
| 661 | 661 | }  | 
                                                        
| 662 | 662 | |
| 663 | -        if ( $exit ) { | 
                                                        |
| 663 | +        if ($exit) { | 
                                                        |
| 664 | 664 | exit;  | 
                                                        
| 665 | 665 | }  | 
                                                        
| 666 | 666 | }  | 
                                                        
@@ -668,65 +668,65 @@ discard block  | 
                                                    ||
| 668 | 668 | |
| 669 | 669 |  function wpinv_is_ajax_disabled() { | 
                                                        
| 670 | 670 | $retval = false;  | 
                                                        
| 671 | - return apply_filters( 'wpinv_is_ajax_disabled', $retval );  | 
                                                        |
| 671 | +    return apply_filters('wpinv_is_ajax_disabled', $retval); | 
                                                        |
| 672 | 672 | }  | 
                                                        
| 673 | 673 | |
| 674 | -function wpinv_get_current_page_url( $nocache = false ) { | 
                                                        |
| 674 | +function wpinv_get_current_page_url($nocache = false) { | 
                                                        |
| 675 | 675 | global $wp;  | 
                                                        
| 676 | 676 | |
| 677 | -    if ( get_option( 'permalink_structure' ) ) { | 
                                                        |
| 678 | - $base = trailingslashit( home_url( $wp->request ) );  | 
                                                        |
| 677 | +    if (get_option('permalink_structure')) { | 
                                                        |
| 678 | + $base = trailingslashit(home_url($wp->request));  | 
                                                        |
| 679 | 679 |      } else { | 
                                                        
| 680 | - $base = add_query_arg( $wp->query_string, '', trailingslashit( home_url( $wp->request ) ) );  | 
                                                        |
| 681 | - $base = remove_query_arg( array( 'post_type', 'name' ), $base );  | 
                                                        |
| 680 | + $base = add_query_arg($wp->query_string, '', trailingslashit(home_url($wp->request)));  | 
                                                        |
| 681 | +        $base = remove_query_arg(array('post_type', 'name'), $base); | 
                                                        |
| 682 | 682 | }  | 
                                                        
| 683 | 683 | |
| 684 | 684 | $scheme = is_ssl() ? 'https' : 'http';  | 
                                                        
| 685 | - $uri = set_url_scheme( $base, $scheme );  | 
                                                        |
| 685 | + $uri = set_url_scheme($base, $scheme);  | 
                                                        |
| 686 | 686 | |
| 687 | -    if ( is_front_page() ) { | 
                                                        |
| 688 | - $uri = home_url( '/' );  | 
                                                        |
| 689 | -    } elseif ( wpinv_is_checkout( array(), false ) ) { | 
                                                        |
| 687 | +    if (is_front_page()) { | 
                                                        |
| 688 | +        $uri = home_url('/'); | 
                                                        |
| 689 | +    } elseif (wpinv_is_checkout(array(), false)) { | 
                                                        |
| 690 | 690 | $uri = wpinv_get_checkout_uri();  | 
                                                        
| 691 | 691 | }  | 
                                                        
| 692 | 692 | |
| 693 | - $uri = apply_filters( 'wpinv_get_current_page_url', $uri );  | 
                                                        |
| 693 | +    $uri = apply_filters('wpinv_get_current_page_url', $uri); | 
                                                        |
| 694 | 694 | |
| 695 | -    if ( $nocache ) { | 
                                                        |
| 696 | - $uri = wpinv_add_cache_busting( $uri );  | 
                                                        |
| 695 | +    if ($nocache) { | 
                                                        |
| 696 | + $uri = wpinv_add_cache_busting($uri);  | 
                                                        |
| 697 | 697 | }  | 
                                                        
| 698 | 698 | |
| 699 | 699 | return $uri;  | 
                                                        
| 700 | 700 | }  | 
                                                        
| 701 | 701 | |
| 702 | 702 |  function wpinv_get_php_arg_separator_output() { | 
                                                        
| 703 | - return ini_get( 'arg_separator.output' );  | 
                                                        |
| 703 | +	return ini_get('arg_separator.output'); | 
                                                        |
| 704 | 704 | }  | 
                                                        
| 705 | 705 | |
| 706 | -function wpinv_rgb_from_hex( $color ) { | 
                                                        |
| 707 | - $color = str_replace( '#', '', $color );  | 
                                                        |
| 706 | +function wpinv_rgb_from_hex($color) { | 
                                                        |
| 707 | +    $color = str_replace('#', '', $color); | 
                                                        |
| 708 | 708 | // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF"  | 
                                                        
| 709 | - $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );  | 
                                                        |
| 709 | +    $color = preg_replace('~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color); | 
                                                        |
| 710 | 710 | |
| 711 | 711 | $rgb = array();  | 
                                                        
| 712 | -    $rgb['R'] = hexdec( $color{0}.$color{1} ); | 
                                                        |
| 713 | -    $rgb['G'] = hexdec( $color{2}.$color{3} ); | 
                                                        |
| 714 | -    $rgb['B'] = hexdec( $color{4}.$color{5} ); | 
                                                        |
| 712 | +    $rgb['R'] = hexdec($color{0} . $color{1} ); | 
                                                        |
| 713 | +    $rgb['G'] = hexdec($color{2} . $color{3} ); | 
                                                        |
| 714 | +    $rgb['B'] = hexdec($color{4} . $color{5} ); | 
                                                        |
| 715 | 715 | |
| 716 | 716 | return $rgb;  | 
                                                        
| 717 | 717 | }  | 
                                                        
| 718 | 718 | |
| 719 | -function wpinv_hex_darker( $color, $factor = 30 ) { | 
                                                        |
| 720 | - $base = wpinv_rgb_from_hex( $color );  | 
                                                        |
| 719 | +function wpinv_hex_darker($color, $factor = 30) { | 
                                                        |
| 720 | + $base = wpinv_rgb_from_hex($color);  | 
                                                        |
| 721 | 721 | $color = '#';  | 
                                                        
| 722 | 722 | |
| 723 | -    foreach ( $base as $k => $v ) { | 
                                                        |
| 723 | +    foreach ($base as $k => $v) { | 
                                                        |
| 724 | 724 | $amount = $v / 100;  | 
                                                        
| 725 | - $amount = round( $amount * $factor );  | 
                                                        |
| 725 | + $amount = round($amount * $factor);  | 
                                                        |
| 726 | 726 | $new_decimal = $v - $amount;  | 
                                                        
| 727 | 727 | |
| 728 | - $new_hex_component = dechex( $new_decimal );  | 
                                                        |
| 729 | -        if ( strlen( $new_hex_component ) < 2 ) { | 
                                                        |
| 728 | + $new_hex_component = dechex($new_decimal);  | 
                                                        |
| 729 | +        if (strlen($new_hex_component) < 2) { | 
                                                        |
| 730 | 730 | $new_hex_component = "0" . $new_hex_component;  | 
                                                        
| 731 | 731 | }  | 
                                                        
| 732 | 732 | $color .= $new_hex_component;  | 
                                                        
@@ -735,18 +735,18 @@ discard block  | 
                                                    ||
| 735 | 735 | return $color;  | 
                                                        
| 736 | 736 | }  | 
                                                        
| 737 | 737 | |
| 738 | -function wpinv_hex_lighter( $color, $factor = 30 ) { | 
                                                        |
| 739 | - $base = wpinv_rgb_from_hex( $color );  | 
                                                        |
| 738 | +function wpinv_hex_lighter($color, $factor = 30) { | 
                                                        |
| 739 | + $base = wpinv_rgb_from_hex($color);  | 
                                                        |
| 740 | 740 | $color = '#';  | 
                                                        
| 741 | 741 | |
| 742 | -    foreach ( $base as $k => $v ) { | 
                                                        |
| 742 | +    foreach ($base as $k => $v) { | 
                                                        |
| 743 | 743 | $amount = 255 - $v;  | 
                                                        
| 744 | 744 | $amount = $amount / 100;  | 
                                                        
| 745 | - $amount = round( $amount * $factor );  | 
                                                        |
| 745 | + $amount = round($amount * $factor);  | 
                                                        |
| 746 | 746 | $new_decimal = $v + $amount;  | 
                                                        
| 747 | 747 | |
| 748 | - $new_hex_component = dechex( $new_decimal );  | 
                                                        |
| 749 | -        if ( strlen( $new_hex_component ) < 2 ) { | 
                                                        |
| 748 | + $new_hex_component = dechex($new_decimal);  | 
                                                        |
| 749 | +        if (strlen($new_hex_component) < 2) { | 
                                                        |
| 750 | 750 | $new_hex_component = "0" . $new_hex_component;  | 
                                                        
| 751 | 751 | }  | 
                                                        
| 752 | 752 | $color .= $new_hex_component;  | 
                                                        
@@ -755,22 +755,22 @@ discard block  | 
                                                    ||
| 755 | 755 | return $color;  | 
                                                        
| 756 | 756 | }  | 
                                                        
| 757 | 757 | |
| 758 | -function wpinv_light_or_dark( $color, $dark = '#000000', $light = '#FFFFFF' ) { | 
                                                        |
| 759 | - $hex = str_replace( '#', '', $color );  | 
                                                        |
| 758 | +function wpinv_light_or_dark($color, $dark = '#000000', $light = '#FFFFFF') { | 
                                                        |
| 759 | +    $hex = str_replace('#', '', $color); | 
                                                        |
| 760 | 760 | |
| 761 | - $c_r = hexdec( substr( $hex, 0, 2 ) );  | 
                                                        |
| 762 | - $c_g = hexdec( substr( $hex, 2, 2 ) );  | 
                                                        |
| 763 | - $c_b = hexdec( substr( $hex, 4, 2 ) );  | 
                                                        |
| 761 | + $c_r = hexdec(substr($hex, 0, 2));  | 
                                                        |
| 762 | + $c_g = hexdec(substr($hex, 2, 2));  | 
                                                        |
| 763 | + $c_b = hexdec(substr($hex, 4, 2));  | 
                                                        |
| 764 | 764 | |
| 765 | - $brightness = ( ( $c_r * 299 ) + ( $c_g * 587 ) + ( $c_b * 114 ) ) / 1000;  | 
                                                        |
| 765 | + $brightness = (($c_r * 299) + ($c_g * 587) + ($c_b * 114)) / 1000;  | 
                                                        |
| 766 | 766 | |
| 767 | 767 | return $brightness > 155 ? $dark : $light;  | 
                                                        
| 768 | 768 | }  | 
                                                        
| 769 | 769 | |
| 770 | -function wpinv_format_hex( $hex ) { | 
                                                        |
| 771 | - $hex = trim( str_replace( '#', '', $hex ) );  | 
                                                        |
| 770 | +function wpinv_format_hex($hex) { | 
                                                        |
| 771 | +    $hex = trim(str_replace('#', '', $hex)); | 
                                                        |
| 772 | 772 | |
| 773 | -    if ( strlen( $hex ) == 3 ) { | 
                                                        |
| 773 | +    if (strlen($hex) == 3) { | 
                                                        |
| 774 | 774 | $hex = $hex[0] . $hex[0] . $hex[1] . $hex[1] . $hex[2] . $hex[2];  | 
                                                        
| 775 | 775 | }  | 
                                                        
| 776 | 776 | |
@@ -790,12 +790,12 @@ discard block  | 
                                                    ||
| 790 | 790 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".  | 
                                                        
| 791 | 791 | * @return string  | 
                                                        
| 792 | 792 | */  | 
                                                        
| 793 | -function wpinv_utf8_strimwidth( $str, $start, $width, $trimmaker = '', $encoding = 'UTF-8' ) { | 
                                                        |
| 794 | -    if ( function_exists( 'mb_strimwidth' ) ) { | 
                                                        |
| 795 | - return mb_strimwidth( $str, $start, $width, $trimmaker, $encoding );  | 
                                                        |
| 793 | +function wpinv_utf8_strimwidth($str, $start, $width, $trimmaker = '', $encoding = 'UTF-8') { | 
                                                        |
| 794 | +    if (function_exists('mb_strimwidth')) { | 
                                                        |
| 795 | + return mb_strimwidth($str, $start, $width, $trimmaker, $encoding);  | 
                                                        |
| 796 | 796 | }  | 
                                                        
| 797 | 797 | |
| 798 | - return wpinv_utf8_substr( $str, $start, $width, $encoding ) . $trimmaker;  | 
                                                        |
| 798 | + return wpinv_utf8_substr($str, $start, $width, $encoding) . $trimmaker;  | 
                                                        |
| 799 | 799 | }  | 
                                                        
| 800 | 800 | |
| 801 | 801 | /**  | 
                                                        
@@ -807,28 +807,28 @@ discard block  | 
                                                    ||
| 807 | 807 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".  | 
                                                        
| 808 | 808 | * @return int Returns the number of characters in string.  | 
                                                        
| 809 | 809 | */  | 
                                                        
| 810 | -function wpinv_utf8_strlen( $str, $encoding = 'UTF-8' ) { | 
                                                        |
| 811 | -    if ( function_exists( 'mb_strlen' ) ) { | 
                                                        |
| 812 | - return mb_strlen( $str, $encoding );  | 
                                                        |
| 810 | +function wpinv_utf8_strlen($str, $encoding = 'UTF-8') { | 
                                                        |
| 811 | +    if (function_exists('mb_strlen')) { | 
                                                        |
| 812 | + return mb_strlen($str, $encoding);  | 
                                                        |
| 813 | 813 | }  | 
                                                        
| 814 | 814 | |
| 815 | - return strlen( $str );  | 
                                                        |
| 815 | + return strlen($str);  | 
                                                        |
| 816 | 816 | }  | 
                                                        
| 817 | 817 | |
| 818 | -function wpinv_utf8_strtolower( $str, $encoding = 'UTF-8' ) { | 
                                                        |
| 819 | -    if ( function_exists( 'mb_strtolower' ) ) { | 
                                                        |
| 820 | - return mb_strtolower( $str, $encoding );  | 
                                                        |
| 818 | +function wpinv_utf8_strtolower($str, $encoding = 'UTF-8') { | 
                                                        |
| 819 | +    if (function_exists('mb_strtolower')) { | 
                                                        |
| 820 | + return mb_strtolower($str, $encoding);  | 
                                                        |
| 821 | 821 | }  | 
                                                        
| 822 | 822 | |
| 823 | - return strtolower( $str );  | 
                                                        |
| 823 | + return strtolower($str);  | 
                                                        |
| 824 | 824 | }  | 
                                                        
| 825 | 825 | |
| 826 | -function wpinv_utf8_strtoupper( $str, $encoding = 'UTF-8' ) { | 
                                                        |
| 827 | -    if ( function_exists( 'mb_strtoupper' ) ) { | 
                                                        |
| 828 | - return mb_strtoupper( $str, $encoding );  | 
                                                        |
| 826 | +function wpinv_utf8_strtoupper($str, $encoding = 'UTF-8') { | 
                                                        |
| 827 | +    if (function_exists('mb_strtoupper')) { | 
                                                        |
| 828 | + return mb_strtoupper($str, $encoding);  | 
                                                        |
| 829 | 829 | }  | 
                                                        
| 830 | 830 | |
| 831 | - return strtoupper( $str );  | 
                                                        |
| 831 | + return strtoupper($str);  | 
                                                        |
| 832 | 832 | }  | 
                                                        
| 833 | 833 | |
| 834 | 834 | /**  | 
                                                        
@@ -842,12 +842,12 @@ discard block  | 
                                                    ||
| 842 | 842 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".  | 
                                                        
| 843 | 843 | * @return int Returns the position of the first occurrence of search in the string.  | 
                                                        
| 844 | 844 | */  | 
                                                        
| 845 | -function wpinv_utf8_strpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) { | 
                                                        |
| 846 | -    if ( function_exists( 'mb_strpos' ) ) { | 
                                                        |
| 847 | - return mb_strpos( $str, $find, $offset, $encoding );  | 
                                                        |
| 845 | +function wpinv_utf8_strpos($str, $find, $offset = 0, $encoding = 'UTF-8') { | 
                                                        |
| 846 | +    if (function_exists('mb_strpos')) { | 
                                                        |
| 847 | + return mb_strpos($str, $find, $offset, $encoding);  | 
                                                        |
| 848 | 848 | }  | 
                                                        
| 849 | 849 | |
| 850 | - return strpos( $str, $find, $offset );  | 
                                                        |
| 850 | + return strpos($str, $find, $offset);  | 
                                                        |
| 851 | 851 | }  | 
                                                        
| 852 | 852 | |
| 853 | 853 | /**  | 
                                                        
@@ -861,12 +861,12 @@ discard block  | 
                                                    ||
| 861 | 861 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".  | 
                                                        
| 862 | 862 | * @return int Returns the position of the last occurrence of search.  | 
                                                        
| 863 | 863 | */  | 
                                                        
| 864 | -function wpinv_utf8_strrpos( $str, $find, $offset = 0, $encoding = 'UTF-8' ) { | 
                                                        |
| 865 | -    if ( function_exists( 'mb_strrpos' ) ) { | 
                                                        |
| 866 | - return mb_strrpos( $str, $find, $offset, $encoding );  | 
                                                        |
| 864 | +function wpinv_utf8_strrpos($str, $find, $offset = 0, $encoding = 'UTF-8') { | 
                                                        |
| 865 | +    if (function_exists('mb_strrpos')) { | 
                                                        |
| 866 | + return mb_strrpos($str, $find, $offset, $encoding);  | 
                                                        |
| 867 | 867 | }  | 
                                                        
| 868 | 868 | |
| 869 | - return strrpos( $str, $find, $offset );  | 
                                                        |
| 869 | + return strrpos($str, $find, $offset);  | 
                                                        |
| 870 | 870 | }  | 
                                                        
| 871 | 871 | |
| 872 | 872 | /**  | 
                                                        
@@ -881,16 +881,16 @@ discard block  | 
                                                    ||
| 881 | 881 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".  | 
                                                        
| 882 | 882 | * @return string  | 
                                                        
| 883 | 883 | */  | 
                                                        
| 884 | -function wpinv_utf8_substr( $str, $start, $length = null, $encoding = 'UTF-8' ) { | 
                                                        |
| 885 | -    if ( function_exists( 'mb_substr' ) ) { | 
                                                        |
| 886 | -        if ( $length === null ) { | 
                                                        |
| 887 | - return mb_substr( $str, $start, wpinv_utf8_strlen( $str, $encoding ), $encoding );  | 
                                                        |
| 884 | +function wpinv_utf8_substr($str, $start, $length = null, $encoding = 'UTF-8') { | 
                                                        |
| 885 | +    if (function_exists('mb_substr')) { | 
                                                        |
| 886 | +        if ($length === null) { | 
                                                        |
| 887 | + return mb_substr($str, $start, wpinv_utf8_strlen($str, $encoding), $encoding);  | 
                                                        |
| 888 | 888 |          } else { | 
                                                        
| 889 | - return mb_substr( $str, $start, $length, $encoding );  | 
                                                        |
| 889 | + return mb_substr($str, $start, $length, $encoding);  | 
                                                        |
| 890 | 890 | }  | 
                                                        
| 891 | 891 | }  | 
                                                        
| 892 | 892 | |
| 893 | - return substr( $str, $start, $length );  | 
                                                        |
| 893 | + return substr($str, $start, $length);  | 
                                                        |
| 894 | 894 | }  | 
                                                        
| 895 | 895 | |
| 896 | 896 | /**  | 
                                                        
@@ -902,48 +902,48 @@ discard block  | 
                                                    ||
| 902 | 902 | * @param string $encoding The encoding parameter is the character encoding. Default "UTF-8".  | 
                                                        
| 903 | 903 | * @return string The width of string.  | 
                                                        
| 904 | 904 | */  | 
                                                        
| 905 | -function wpinv_utf8_strwidth( $str, $encoding = 'UTF-8' ) { | 
                                                        |
| 906 | -    if ( function_exists( 'mb_strwidth' ) ) { | 
                                                        |
| 907 | - return mb_strwidth( $str, $encoding );  | 
                                                        |
| 905 | +function wpinv_utf8_strwidth($str, $encoding = 'UTF-8') { | 
                                                        |
| 906 | +    if (function_exists('mb_strwidth')) { | 
                                                        |
| 907 | + return mb_strwidth($str, $encoding);  | 
                                                        |
| 908 | 908 | }  | 
                                                        
| 909 | 909 | |
| 910 | - return wpinv_utf8_strlen( $str, $encoding );  | 
                                                        |
| 910 | + return wpinv_utf8_strlen($str, $encoding);  | 
                                                        |
| 911 | 911 | }  | 
                                                        
| 912 | 912 | |
| 913 | -function wpinv_utf8_ucfirst( $str, $lower_str_end = false, $encoding = 'UTF-8' ) { | 
                                                        |
| 914 | -    if ( function_exists( 'mb_strlen' ) ) { | 
                                                        |
| 915 | - $first_letter = wpinv_utf8_strtoupper( wpinv_utf8_substr( $str, 0, 1, $encoding ), $encoding );  | 
                                                        |
| 913 | +function wpinv_utf8_ucfirst($str, $lower_str_end = false, $encoding = 'UTF-8') { | 
                                                        |
| 914 | +    if (function_exists('mb_strlen')) { | 
                                                        |
| 915 | + $first_letter = wpinv_utf8_strtoupper(wpinv_utf8_substr($str, 0, 1, $encoding), $encoding);  | 
                                                        |
| 916 | 916 | $str_end = "";  | 
                                                        
| 917 | 917 | |
| 918 | -        if ( $lower_str_end ) { | 
                                                        |
| 919 | - $str_end = wpinv_utf8_strtolower( wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding ), $encoding );  | 
                                                        |
| 918 | +        if ($lower_str_end) { | 
                                                        |
| 919 | + $str_end = wpinv_utf8_strtolower(wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding), $encoding);  | 
                                                        |
| 920 | 920 |          } else { | 
                                                        
| 921 | - $str_end = wpinv_utf8_substr( $str, 1, wpinv_utf8_strlen( $str, $encoding ), $encoding );  | 
                                                        |
| 921 | + $str_end = wpinv_utf8_substr($str, 1, wpinv_utf8_strlen($str, $encoding), $encoding);  | 
                                                        |
| 922 | 922 | }  | 
                                                        
| 923 | 923 | |
| 924 | 924 | return $first_letter . $str_end;  | 
                                                        
| 925 | 925 | }  | 
                                                        
| 926 | 926 | |
| 927 | - return ucfirst( $str );  | 
                                                        |
| 927 | + return ucfirst($str);  | 
                                                        |
| 928 | 928 | }  | 
                                                        
| 929 | 929 | |
| 930 | -function wpinv_utf8_ucwords( $str, $encoding = 'UTF-8' ) { | 
                                                        |
| 931 | -    if ( function_exists( 'mb_convert_case' ) ) { | 
                                                        |
| 932 | - return mb_convert_case( $str, MB_CASE_TITLE, $encoding );  | 
                                                        |
| 930 | +function wpinv_utf8_ucwords($str, $encoding = 'UTF-8') { | 
                                                        |
| 931 | +    if (function_exists('mb_convert_case')) { | 
                                                        |
| 932 | + return mb_convert_case($str, MB_CASE_TITLE, $encoding);  | 
                                                        |
| 933 | 933 | }  | 
                                                        
| 934 | 934 | |
| 935 | - return ucwords( $str );  | 
                                                        |
| 935 | + return ucwords($str);  | 
                                                        |
| 936 | 936 | }  | 
                                                        
| 937 | 937 | |
| 938 | -function wpinv_period_in_days( $period, $unit ) { | 
                                                        |
| 939 | - $period = absint( $period );  | 
                                                        |
| 938 | +function wpinv_period_in_days($period, $unit) { | 
                                                        |
| 939 | + $period = absint($period);  | 
                                                        |
| 940 | 940 | |
| 941 | -    if ( $period > 0 ) { | 
                                                        |
| 942 | -        if ( in_array( strtolower( $unit ), array( 'w', 'week', 'weeks' ) ) ) { | 
                                                        |
| 941 | +    if ($period > 0) { | 
                                                        |
| 942 | +        if (in_array(strtolower($unit), array('w', 'week', 'weeks'))) { | 
                                                        |
| 943 | 943 | $period = $period * 7;  | 
                                                        
| 944 | -        } else if ( in_array( strtolower( $unit ), array( 'm', 'month', 'months' ) ) ) { | 
                                                        |
| 944 | +        } else if (in_array(strtolower($unit), array('m', 'month', 'months'))) { | 
                                                        |
| 945 | 945 | $period = $period * 30;  | 
                                                        
| 946 | -        } else if ( in_array( strtolower( $unit ), array( 'y', 'year', 'years' ) ) ) { | 
                                                        |
| 946 | +        } else if (in_array(strtolower($unit), array('y', 'year', 'years'))) { | 
                                                        |
| 947 | 947 | $period = $period * 365;  | 
                                                        
| 948 | 948 | }  | 
                                                        
| 949 | 949 | }  | 
                                                        
@@ -951,14 +951,14 @@ discard block  | 
                                                    ||
| 951 | 951 | return $period;  | 
                                                        
| 952 | 952 | }  | 
                                                        
| 953 | 953 | |
| 954 | -function wpinv_cal_days_in_month( $calendar, $month, $year ) { | 
                                                        |
| 955 | -    if ( function_exists( 'cal_days_in_month' ) ) { | 
                                                        |
| 956 | - return cal_days_in_month( $calendar, $month, $year );  | 
                                                        |
| 954 | +function wpinv_cal_days_in_month($calendar, $month, $year) { | 
                                                        |
| 955 | +    if (function_exists('cal_days_in_month')) { | 
                                                        |
| 956 | + return cal_days_in_month($calendar, $month, $year);  | 
                                                        |
| 957 | 957 | }  | 
                                                        
| 958 | 958 | |
| 959 | 959 | // Fallback in case the calendar extension is not loaded in PHP  | 
                                                        
| 960 | 960 | // Only supports Gregorian calendar  | 
                                                        
| 961 | - return date( 't', mktime( 0, 0, 0, $month, 1, $year ) );  | 
                                                        |
| 961 | +    return date('t', mktime(0, 0, 0, $month, 1, $year)); | 
                                                        |
| 962 | 962 | }  | 
                                                        
| 963 | 963 | |
| 964 | 964 | /**  | 
                                                        
@@ -969,11 +969,11 @@ discard block  | 
                                                    ||
| 969 | 969 | *  | 
                                                        
| 970 | 970 | * @return string  | 
                                                        
| 971 | 971 | */  | 
                                                        
| 972 | -function wpi_help_tip( $tip, $allow_html = false ) { | 
                                                        |
| 973 | -    if ( $allow_html ) { | 
                                                        |
| 974 | - $tip = wpi_sanitize_tooltip( $tip );  | 
                                                        |
| 972 | +function wpi_help_tip($tip, $allow_html = false) { | 
                                                        |
| 973 | +    if ($allow_html) { | 
                                                        |
| 974 | + $tip = wpi_sanitize_tooltip($tip);  | 
                                                        |
| 975 | 975 |      } else { | 
                                                        
| 976 | - $tip = esc_attr( $tip );  | 
                                                        |
| 976 | + $tip = esc_attr($tip);  | 
                                                        |
| 977 | 977 | }  | 
                                                        
| 978 | 978 | |
| 979 | 979 | return '<span class="wpi-help-tip dashicons dashicons-editor-help" title="' . $tip . '"></span>';  | 
                                                        
@@ -987,8 +987,8 @@ discard block  | 
                                                    ||
| 987 | 987 | * @param string $var  | 
                                                        
| 988 | 988 | * @return string  | 
                                                        
| 989 | 989 | */  | 
                                                        
| 990 | -function wpi_sanitize_tooltip( $var ) { | 
                                                        |
| 991 | - return htmlspecialchars( wp_kses( html_entity_decode( $var ), array(  | 
                                                        |
| 990 | +function wpi_sanitize_tooltip($var) { | 
                                                        |
| 991 | + return htmlspecialchars(wp_kses(html_entity_decode($var), array(  | 
                                                        |
| 992 | 992 | 'br' => array(),  | 
                                                        
| 993 | 993 | 'em' => array(),  | 
                                                        
| 994 | 994 | 'strong' => array(),  | 
                                                        
@@ -998,7 +998,7 @@ discard block  | 
                                                    ||
| 998 | 998 | 'li' => array(),  | 
                                                        
| 999 | 999 | 'ol' => array(),  | 
                                                        
| 1000 | 1000 | 'p' => array(),  | 
                                                        
| 1001 | - ) ) );  | 
                                                        |
| 1001 | + )));  | 
                                                        |
| 1002 | 1002 | }  | 
                                                        
| 1003 | 1003 | |
| 1004 | 1004 | /**  | 
                                                        
@@ -1008,7 +1008,7 @@ discard block  | 
                                                    ||
| 1008 | 1008 | */  | 
                                                        
| 1009 | 1009 |  function wpinv_get_screen_ids() { | 
                                                        
| 1010 | 1010 | |
| 1011 | - $screen_id = sanitize_title( __( 'Invoicing', 'invoicing' ) );  | 
                                                        |
| 1011 | +    $screen_id = sanitize_title(__('Invoicing', 'invoicing')); | 
                                                        |
| 1012 | 1012 | |
| 1013 | 1013 | $screen_ids = array(  | 
                                                        
| 1014 | 1014 | 'toplevel_page_' . $screen_id,  | 
                                                        
@@ -1026,7 +1026,7 @@ discard block  | 
                                                    ||
| 1026 | 1026 | 'invoicing_page_wpi-addons',  | 
                                                        
| 1027 | 1027 | );  | 
                                                        
| 1028 | 1028 | |
| 1029 | - return apply_filters( 'wpinv_screen_ids', $screen_ids );  | 
                                                        |
| 1029 | +    return apply_filters('wpinv_screen_ids', $screen_ids); | 
                                                        |
| 1030 | 1030 | }  | 
                                                        
| 1031 | 1031 | |
| 1032 | 1032 | /**  | 
                                                        
@@ -1037,9 +1037,9 @@ discard block  | 
                                                    ||
| 1037 | 1037 | * @param array|string $list List of values.  | 
                                                        
| 1038 | 1038 | * @return array Sanitized array of values.  | 
                                                        
| 1039 | 1039 | */  | 
                                                        
| 1040 | -function wpinv_parse_list( $list ) { | 
                                                        |
| 1041 | -	if ( ! is_array( $list ) ) { | 
                                                        |
| 1042 | - return preg_split( '/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY );  | 
                                                        |
| 1040 | +function wpinv_parse_list($list) { | 
                                                        |
| 1041 | +	if (!is_array($list)) { | 
                                                        |
| 1042 | +		return preg_split('/[\s,]+/', $list, -1, PREG_SPLIT_NO_EMPTY); | 
                                                        |
| 1043 | 1043 | }  | 
                                                        
| 1044 | 1044 | |
| 1045 | 1045 | return $list;  | 
                                                        
@@ -1053,16 +1053,16 @@ discard block  | 
                                                    ||
| 1053 | 1053 | * @param string $key Type of data to fetch.  | 
                                                        
| 1054 | 1054 | * @return mixed Fetched data.  | 
                                                        
| 1055 | 1055 | */  | 
                                                        
| 1056 | -function wpinv_get_data( $key ) { | 
                                                        |
| 1056 | +function wpinv_get_data($key) { | 
                                                        |
| 1057 | 1057 | |
| 1058 | 1058 | // Try fetching it from the cache.  | 
                                                        
| 1059 | - $data = wp_cache_get( "wpinv-$key", 'wpinv' );  | 
                                                        |
| 1060 | -    if( $data ) { | 
                                                        |
| 1059 | +    $data = wp_cache_get("wpinv-$key", 'wpinv'); | 
                                                        |
| 1060 | +    if ($data) { | 
                                                        |
| 1061 | 1061 | return $data;  | 
                                                        
| 1062 | 1062 | }  | 
                                                        
| 1063 | 1063 | |
| 1064 | - $data = apply_filters( "wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php" );  | 
                                                        |
| 1065 | - wp_cache_set( "wpinv-$key", $data, 'wpinv' );  | 
                                                        |
| 1064 | +    $data = apply_filters("wpinv_get_$key", include WPINV_PLUGIN_DIR . "includes/data/$key.php"); | 
                                                        |
| 1065 | +	wp_cache_set("wpinv-$key", $data, 'wpinv'); | 
                                                        |
| 1066 | 1066 | |
| 1067 | 1067 | return $data;  | 
                                                        
| 1068 | 1068 | }  | 
                                                        
@@ -1076,10 +1076,10 @@ discard block  | 
                                                    ||
| 1076 | 1076 | * @param bool $first_empty Whether or not the first item in the list should be empty  | 
                                                        
| 1077 | 1077 | * @return mixed Fetched data.  | 
                                                        
| 1078 | 1078 | */  | 
                                                        
| 1079 | -function wpinv_maybe_add_empty_option( $options, $first_empty ) { | 
                                                        |
| 1079 | +function wpinv_maybe_add_empty_option($options, $first_empty) { | 
                                                        |
| 1080 | 1080 | |
| 1081 | -    if ( ! empty( $options ) && $first_empty ) { | 
                                                        |
| 1082 | - return array_merge( array( '' => '' ), $options );  | 
                                                        |
| 1081 | +    if (!empty($options) && $first_empty) { | 
                                                        |
| 1082 | +        return array_merge(array('' => ''), $options); | 
                                                        |
| 1083 | 1083 | }  | 
                                                        
| 1084 | 1084 | return $options;  | 
                                                        
| 1085 | 1085 | |
@@ -1091,19 +1091,19 @@ discard block  | 
                                                    ||
| 1091 | 1091 | * @param mixed $var Data to sanitize.  | 
                                                        
| 1092 | 1092 | * @return string|array  | 
                                                        
| 1093 | 1093 | */  | 
                                                        
| 1094 | -function wpinv_clean( $var ) { | 
                                                        |
| 1094 | +function wpinv_clean($var) { | 
                                                        |
| 1095 | 1095 | |
| 1096 | -	if ( is_array( $var ) ) { | 
                                                        |
| 1097 | - return array_map( 'wpinv_clean', $var );  | 
                                                        |
| 1096 | +	if (is_array($var)) { | 
                                                        |
| 1097 | +		return array_map('wpinv_clean', $var); | 
                                                        |
| 1098 | 1098 | }  | 
                                                        
| 1099 | 1099 | |
| 1100 | -    if ( is_object( $var ) ) { | 
                                                        |
| 1101 | - $object_vars = get_object_vars( $var );  | 
                                                        |
| 1102 | -		foreach ( $object_vars as $property_name => $property_value ) { | 
                                                        |
| 1103 | - $var->$property_name = wpinv_clean( $property_value );  | 
                                                        |
| 1100 | +    if (is_object($var)) { | 
                                                        |
| 1101 | + $object_vars = get_object_vars($var);  | 
                                                        |
| 1102 | +		foreach ($object_vars as $property_name => $property_value) { | 
                                                        |
| 1103 | + $var->$property_name = wpinv_clean($property_value);  | 
                                                        |
| 1104 | 1104 | }  | 
                                                        
| 1105 | 1105 | return $var;  | 
                                                        
| 1106 | 1106 | }  | 
                                                        
| 1107 | 1107 | |
| 1108 | - return is_string( $var ) ? sanitize_text_field( $var ) : $var;  | 
                                                        |
| 1108 | + return is_string($var) ? sanitize_text_field($var) : $var;  | 
                                                        |
| 1109 | 1109 | }  | 
                                                        
| 1110 | 1110 | \ No newline at end of file  |