@@ -1,6 +1,6 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | 2 | if ( ! defined( 'ABSPATH' ) ) { |
| 3 | - exit; |
|
| 3 | + exit; |
|
| 4 | 4 | } |
| 5 | 5 | |
| 6 | 6 | /** |
@@ -20,29 +20,29 @@ discard block |
||
| 20 | 20 | public $templates_url; |
| 21 | 21 | |
| 22 | 22 | /** |
| 23 | - * Class constructor. |
|
| 24 | - * |
|
| 25 | - * @since 1.0.19 |
|
| 26 | - */ |
|
| 27 | - public function __construct() { |
|
| 23 | + * Class constructor. |
|
| 24 | + * |
|
| 25 | + * @since 1.0.19 |
|
| 26 | + */ |
|
| 27 | + public function __construct() { |
|
| 28 | 28 | |
| 29 | 29 | $this->templates_dir = apply_filters( 'getpaid_default_templates_dir', WPINV_PLUGIN_DIR . 'templates' ); |
| 30 | 30 | $this->templates_url = apply_filters( 'getpaid_default_templates_url', WPINV_PLUGIN_URL . 'templates' ); |
| 31 | 31 | |
| 32 | 32 | // Oxygen plugin |
| 33 | - if ( defined( 'CT_VERSION' ) ) { |
|
| 34 | - add_filter( 'wpinv_locate_template', array( $this, 'oxygen_override_template' ), 11, 4 ); |
|
| 35 | - } |
|
| 33 | + if ( defined( 'CT_VERSION' ) ) { |
|
| 34 | + add_filter( 'wpinv_locate_template', array( $this, 'oxygen_override_template' ), 11, 4 ); |
|
| 35 | + } |
|
| 36 | 36 | |
| 37 | 37 | } |
| 38 | 38 | |
| 39 | 39 | /** |
| 40 | - * Checks if this is a preview page |
|
| 41 | - * |
|
| 42 | - * @since 1.0.19 |
|
| 43 | - * @return bool |
|
| 44 | - */ |
|
| 45 | - public function is_preview() { |
|
| 40 | + * Checks if this is a preview page |
|
| 41 | + * |
|
| 42 | + * @since 1.0.19 |
|
| 43 | + * @return bool |
|
| 44 | + */ |
|
| 45 | + public function is_preview() { |
|
| 46 | 46 | return |
| 47 | 47 | $this->is_divi_preview() || |
| 48 | 48 | $this->is_elementor_preview() || |
@@ -54,73 +54,73 @@ discard block |
||
| 54 | 54 | } |
| 55 | 55 | |
| 56 | 56 | /** |
| 57 | - * Checks if this is an elementor preview page |
|
| 58 | - * |
|
| 59 | - * @since 1.0.19 |
|
| 60 | - * @return bool |
|
| 61 | - */ |
|
| 62 | - public function is_elementor_preview() { |
|
| 63 | - return isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ); |
|
| 64 | - } |
|
| 65 | - |
|
| 66 | - /** |
|
| 67 | - * Checks if this is a DIVI preview page |
|
| 68 | - * |
|
| 69 | - * @since 1.0.19 |
|
| 70 | - * @return bool |
|
| 71 | - */ |
|
| 72 | - public function is_divi_preview() { |
|
| 73 | - return isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'et_pb' ); |
|
| 74 | - } |
|
| 75 | - |
|
| 76 | - /** |
|
| 77 | - * Checks if this is a beaver builder preview page |
|
| 78 | - * |
|
| 79 | - * @since 1.0.19 |
|
| 80 | - * @return bool |
|
| 81 | - */ |
|
| 82 | - public function is_beaver_preview() { |
|
| 83 | - return isset( $_REQUEST['fl_builder'] ); |
|
| 84 | - } |
|
| 85 | - |
|
| 86 | - /** |
|
| 87 | - * Checks if this is a siteorigin builder preview page |
|
| 88 | - * |
|
| 89 | - * @since 1.0.19 |
|
| 90 | - * @return bool |
|
| 91 | - */ |
|
| 92 | - public function is_siteorigin_preview() { |
|
| 93 | - return ! empty( $_REQUEST['siteorigin_panels_live_editor'] ); |
|
| 94 | - } |
|
| 95 | - |
|
| 96 | - /** |
|
| 97 | - * Checks if this is a cornerstone builder preview page |
|
| 98 | - * |
|
| 99 | - * @since 1.0.19 |
|
| 100 | - * @return bool |
|
| 101 | - */ |
|
| 102 | - public function is_cornerstone_preview() { |
|
| 103 | - return ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint'; |
|
| 104 | - } |
|
| 105 | - |
|
| 106 | - /** |
|
| 107 | - * Checks if this is a fusion builder preview page |
|
| 108 | - * |
|
| 109 | - * @since 1.0.19 |
|
| 110 | - * @return bool |
|
| 111 | - */ |
|
| 112 | - public function is_fusion_preview() { |
|
| 113 | - return ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ); |
|
| 114 | - } |
|
| 115 | - |
|
| 116 | - /** |
|
| 117 | - * Checks if this is an oxygen builder preview page |
|
| 118 | - * |
|
| 119 | - * @since 1.0.19 |
|
| 120 | - * @return bool |
|
| 121 | - */ |
|
| 122 | - public function is_oxygen_preview() { |
|
| 123 | - return ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ); |
|
| 57 | + * Checks if this is an elementor preview page |
|
| 58 | + * |
|
| 59 | + * @since 1.0.19 |
|
| 60 | + * @return bool |
|
| 61 | + */ |
|
| 62 | + public function is_elementor_preview() { |
|
| 63 | + return isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ); |
|
| 64 | + } |
|
| 65 | + |
|
| 66 | + /** |
|
| 67 | + * Checks if this is a DIVI preview page |
|
| 68 | + * |
|
| 69 | + * @since 1.0.19 |
|
| 70 | + * @return bool |
|
| 71 | + */ |
|
| 72 | + public function is_divi_preview() { |
|
| 73 | + return isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'et_pb' ); |
|
| 74 | + } |
|
| 75 | + |
|
| 76 | + /** |
|
| 77 | + * Checks if this is a beaver builder preview page |
|
| 78 | + * |
|
| 79 | + * @since 1.0.19 |
|
| 80 | + * @return bool |
|
| 81 | + */ |
|
| 82 | + public function is_beaver_preview() { |
|
| 83 | + return isset( $_REQUEST['fl_builder'] ); |
|
| 84 | + } |
|
| 85 | + |
|
| 86 | + /** |
|
| 87 | + * Checks if this is a siteorigin builder preview page |
|
| 88 | + * |
|
| 89 | + * @since 1.0.19 |
|
| 90 | + * @return bool |
|
| 91 | + */ |
|
| 92 | + public function is_siteorigin_preview() { |
|
| 93 | + return ! empty( $_REQUEST['siteorigin_panels_live_editor'] ); |
|
| 94 | + } |
|
| 95 | + |
|
| 96 | + /** |
|
| 97 | + * Checks if this is a cornerstone builder preview page |
|
| 98 | + * |
|
| 99 | + * @since 1.0.19 |
|
| 100 | + * @return bool |
|
| 101 | + */ |
|
| 102 | + public function is_cornerstone_preview() { |
|
| 103 | + return ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint'; |
|
| 104 | + } |
|
| 105 | + |
|
| 106 | + /** |
|
| 107 | + * Checks if this is a fusion builder preview page |
|
| 108 | + * |
|
| 109 | + * @since 1.0.19 |
|
| 110 | + * @return bool |
|
| 111 | + */ |
|
| 112 | + public function is_fusion_preview() { |
|
| 113 | + return ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ); |
|
| 114 | + } |
|
| 115 | + |
|
| 116 | + /** |
|
| 117 | + * Checks if this is an oxygen builder preview page |
|
| 118 | + * |
|
| 119 | + * @since 1.0.19 |
|
| 120 | + * @return bool |
|
| 121 | + */ |
|
| 122 | + public function is_oxygen_preview() { |
|
| 123 | + return ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ); |
|
| 124 | 124 | } |
| 125 | 125 | |
| 126 | 126 | /** |
@@ -130,7 +130,7 @@ discard block |
||
| 130 | 130 | * @param string $template_path The template path relative to the theme's root dir. Defaults to 'invoicing'. |
| 131 | 131 | * @param string $default_path The root path to the default template. Defaults to invoicing/templates |
| 132 | 132 | */ |
| 133 | - public function locate_template( $template_name, $template_path = '', $default_path = '' ) { |
|
| 133 | + public function locate_template( $template_name, $template_path = '', $default_path = '' ) { |
|
| 134 | 134 | |
| 135 | 135 | // Load the defaults for the template path and default path. |
| 136 | 136 | $template_path = empty( $template_path ) ? 'invoicing' : $template_path; |
@@ -151,22 +151,22 @@ discard block |
||
| 151 | 151 | } |
| 152 | 152 | |
| 153 | 153 | /** |
| 154 | - * Loads a template |
|
| 155 | - * |
|
| 156 | - * @since 1.0.19 |
|
| 157 | - * @return bool |
|
| 158 | - */ |
|
| 159 | - protected function load_template( $template_name, $template_path, $args ) { |
|
| 154 | + * Loads a template |
|
| 155 | + * |
|
| 156 | + * @since 1.0.19 |
|
| 157 | + * @return bool |
|
| 158 | + */ |
|
| 159 | + protected function load_template( $template_name, $template_path, $args ) { |
|
| 160 | 160 | |
| 161 | 161 | if ( is_array( $args ) ){ |
| 162 | 162 | extract( $args ); |
| 163 | 163 | } |
| 164 | 164 | |
| 165 | 165 | // Fires before loading a template. |
| 166 | - do_action( 'wpinv_before_template_part', $template_name, $template_path, $args ); |
|
| 166 | + do_action( 'wpinv_before_template_part', $template_name, $template_path, $args ); |
|
| 167 | 167 | |
| 168 | 168 | // Load the template. |
| 169 | - include( $template_path ); |
|
| 169 | + include( $template_path ); |
|
| 170 | 170 | |
| 171 | 171 | // Fires after loading a template. |
| 172 | 172 | do_action( 'wpinv_after_template_part', $template_name, $template_path, $args ); |
@@ -183,7 +183,7 @@ discard block |
||
| 183 | 183 | * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'. |
| 184 | 184 | * @param string $default_path The root path to the default template. Defaults to invoicing/templates |
| 185 | 185 | */ |
| 186 | - public function display_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 186 | + public function display_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 187 | 187 | |
| 188 | 188 | // Locate the template. |
| 189 | 189 | $located = $this->locate_template( $template_name, $template_path, $default_path ); |
@@ -208,74 +208,74 @@ discard block |
||
| 208 | 208 | * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'. |
| 209 | 209 | * @param string $default_path The root path to the default template. Defaults to invoicing/templates |
| 210 | 210 | */ |
| 211 | - public function get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 211 | + public function get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 212 | 212 | ob_start(); |
| 213 | 213 | $this->display_template( $template_name, $args, $template_path, $default_path ); |
| 214 | 214 | return ob_get_clean(); |
| 215 | 215 | } |
| 216 | 216 | |
| 217 | 217 | /** |
| 218 | - * Get the geodirectory templates theme path. |
|
| 219 | - * |
|
| 220 | - * |
|
| 221 | - * @return string Template path. |
|
| 222 | - */ |
|
| 223 | - public static function get_theme_template_path() { |
|
| 224 | - $template = get_template(); |
|
| 225 | - $theme_root = get_theme_root( $template ); |
|
| 226 | - |
|
| 227 | - return $theme_root . '/' . $template . '/' . untrailingslashit( wpinv_get_theme_template_dir_name() ); |
|
| 228 | - |
|
| 229 | - } |
|
| 230 | - |
|
| 231 | - /** |
|
| 232 | - * Oxygen locate theme template. |
|
| 233 | - * |
|
| 234 | - * @param string $template The template. |
|
| 235 | - * @return string The theme template. |
|
| 236 | - */ |
|
| 237 | - public static function oxygen_locate_template( $template ) { |
|
| 238 | - |
|
| 239 | - if ( empty( $template ) ) { |
|
| 240 | - return ''; |
|
| 241 | - } |
|
| 242 | - |
|
| 243 | - $has_filter = has_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 244 | - |
|
| 245 | - // Remove template filter |
|
| 246 | - if ( $has_filter ) { |
|
| 247 | - remove_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 248 | - } |
|
| 249 | - |
|
| 250 | - $template = self::get_theme_template_path() . '/' . $template; |
|
| 251 | - |
|
| 252 | - if ( ! file_exists( $template ) ) { |
|
| 253 | - $template = ''; |
|
| 254 | - } |
|
| 255 | - |
|
| 256 | - // Add template filter |
|
| 257 | - if ( $has_filter ) { |
|
| 258 | - add_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 259 | - } |
|
| 260 | - |
|
| 261 | - return $template; |
|
| 262 | - } |
|
| 263 | - |
|
| 264 | - /** |
|
| 265 | - * Oxygen override theme template. |
|
| 266 | - * |
|
| 267 | - * @param string $located Located template. |
|
| 268 | - * @param string $template_name Template name. |
|
| 269 | - * @return string Located template. |
|
| 270 | - */ |
|
| 271 | - public function oxygen_override_template( $located, $template_name ) { |
|
| 218 | + * Get the geodirectory templates theme path. |
|
| 219 | + * |
|
| 220 | + * |
|
| 221 | + * @return string Template path. |
|
| 222 | + */ |
|
| 223 | + public static function get_theme_template_path() { |
|
| 224 | + $template = get_template(); |
|
| 225 | + $theme_root = get_theme_root( $template ); |
|
| 226 | + |
|
| 227 | + return $theme_root . '/' . $template . '/' . untrailingslashit( wpinv_get_theme_template_dir_name() ); |
|
| 228 | + |
|
| 229 | + } |
|
| 230 | + |
|
| 231 | + /** |
|
| 232 | + * Oxygen locate theme template. |
|
| 233 | + * |
|
| 234 | + * @param string $template The template. |
|
| 235 | + * @return string The theme template. |
|
| 236 | + */ |
|
| 237 | + public static function oxygen_locate_template( $template ) { |
|
| 238 | + |
|
| 239 | + if ( empty( $template ) ) { |
|
| 240 | + return ''; |
|
| 241 | + } |
|
| 242 | + |
|
| 243 | + $has_filter = has_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 244 | + |
|
| 245 | + // Remove template filter |
|
| 246 | + if ( $has_filter ) { |
|
| 247 | + remove_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 248 | + } |
|
| 249 | + |
|
| 250 | + $template = self::get_theme_template_path() . '/' . $template; |
|
| 251 | + |
|
| 252 | + if ( ! file_exists( $template ) ) { |
|
| 253 | + $template = ''; |
|
| 254 | + } |
|
| 255 | + |
|
| 256 | + // Add template filter |
|
| 257 | + if ( $has_filter ) { |
|
| 258 | + add_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 259 | + } |
|
| 260 | + |
|
| 261 | + return $template; |
|
| 262 | + } |
|
| 263 | + |
|
| 264 | + /** |
|
| 265 | + * Oxygen override theme template. |
|
| 266 | + * |
|
| 267 | + * @param string $located Located template. |
|
| 268 | + * @param string $template_name Template name. |
|
| 269 | + * @return string Located template. |
|
| 270 | + */ |
|
| 271 | + public function oxygen_override_template( $located, $template_name ) { |
|
| 272 | 272 | |
| 273 | 273 | $oxygen_overide = self::oxygen_locate_template( $template_name ); |
| 274 | - if ( ! empty( $oxygen_overide ) ) { |
|
| 275 | - return $oxygen_overide; |
|
| 276 | - } |
|
| 274 | + if ( ! empty( $oxygen_overide ) ) { |
|
| 275 | + return $oxygen_overide; |
|
| 276 | + } |
|
| 277 | 277 | |
| 278 | - return $located; |
|
| 279 | - } |
|
| 278 | + return $located; |
|
| 279 | + } |
|
| 280 | 280 | |
| 281 | 281 | } |
@@ -1,5 +1,5 @@ discard block |
||
| 1 | 1 | <?php |
| 2 | -if ( ! defined( 'ABSPATH' ) ) { |
|
| 2 | +if (!defined('ABSPATH')) { |
|
| 3 | 3 | exit; |
| 4 | 4 | } |
| 5 | 5 | |
@@ -26,12 +26,12 @@ discard block |
||
| 26 | 26 | */ |
| 27 | 27 | public function __construct() { |
| 28 | 28 | |
| 29 | - $this->templates_dir = apply_filters( 'getpaid_default_templates_dir', WPINV_PLUGIN_DIR . 'templates' ); |
|
| 30 | - $this->templates_url = apply_filters( 'getpaid_default_templates_url', WPINV_PLUGIN_URL . 'templates' ); |
|
| 29 | + $this->templates_dir = apply_filters('getpaid_default_templates_dir', WPINV_PLUGIN_DIR . 'templates'); |
|
| 30 | + $this->templates_url = apply_filters('getpaid_default_templates_url', WPINV_PLUGIN_URL . 'templates'); |
|
| 31 | 31 | |
| 32 | 32 | // Oxygen plugin |
| 33 | - if ( defined( 'CT_VERSION' ) ) { |
|
| 34 | - add_filter( 'wpinv_locate_template', array( $this, 'oxygen_override_template' ), 11, 4 ); |
|
| 33 | + if (defined('CT_VERSION')) { |
|
| 34 | + add_filter('wpinv_locate_template', array($this, 'oxygen_override_template'), 11, 4); |
|
| 35 | 35 | } |
| 36 | 36 | |
| 37 | 37 | } |
@@ -60,7 +60,7 @@ discard block |
||
| 60 | 60 | * @return bool |
| 61 | 61 | */ |
| 62 | 62 | public function is_elementor_preview() { |
| 63 | - return isset( $_REQUEST['elementor-preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor' ) || ( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'elementor_ajax' ); |
|
| 63 | + return isset($_REQUEST['elementor-preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor') || (isset($_REQUEST['action']) && $_REQUEST['action'] == 'elementor_ajax'); |
|
| 64 | 64 | } |
| 65 | 65 | |
| 66 | 66 | /** |
@@ -70,7 +70,7 @@ discard block |
||
| 70 | 70 | * @return bool |
| 71 | 71 | */ |
| 72 | 72 | public function is_divi_preview() { |
| 73 | - return isset( $_REQUEST['et_fb'] ) || isset( $_REQUEST['et_pb_preview'] ) || ( is_admin() && isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'et_pb' ); |
|
| 73 | + return isset($_REQUEST['et_fb']) || isset($_REQUEST['et_pb_preview']) || (is_admin() && isset($_REQUEST['action']) && $_REQUEST['action'] == 'et_pb'); |
|
| 74 | 74 | } |
| 75 | 75 | |
| 76 | 76 | /** |
@@ -80,7 +80,7 @@ discard block |
||
| 80 | 80 | * @return bool |
| 81 | 81 | */ |
| 82 | 82 | public function is_beaver_preview() { |
| 83 | - return isset( $_REQUEST['fl_builder'] ); |
|
| 83 | + return isset($_REQUEST['fl_builder']); |
|
| 84 | 84 | } |
| 85 | 85 | |
| 86 | 86 | /** |
@@ -90,7 +90,7 @@ discard block |
||
| 90 | 90 | * @return bool |
| 91 | 91 | */ |
| 92 | 92 | public function is_siteorigin_preview() { |
| 93 | - return ! empty( $_REQUEST['siteorigin_panels_live_editor'] ); |
|
| 93 | + return !empty($_REQUEST['siteorigin_panels_live_editor']); |
|
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | /** |
@@ -100,7 +100,7 @@ discard block |
||
| 100 | 100 | * @return bool |
| 101 | 101 | */ |
| 102 | 102 | public function is_cornerstone_preview() { |
| 103 | - return ! empty( $_REQUEST['cornerstone_preview'] ) || basename( $_SERVER['REQUEST_URI'] ) == 'cornerstone-endpoint'; |
|
| 103 | + return !empty($_REQUEST['cornerstone_preview']) || basename($_SERVER['REQUEST_URI']) == 'cornerstone-endpoint'; |
|
| 104 | 104 | } |
| 105 | 105 | |
| 106 | 106 | /** |
@@ -110,7 +110,7 @@ discard block |
||
| 110 | 110 | * @return bool |
| 111 | 111 | */ |
| 112 | 112 | public function is_fusion_preview() { |
| 113 | - return ! empty( $_REQUEST['fb-edit'] ) || ! empty( $_REQUEST['fusion_load_nonce'] ); |
|
| 113 | + return !empty($_REQUEST['fb-edit']) || !empty($_REQUEST['fusion_load_nonce']); |
|
| 114 | 114 | } |
| 115 | 115 | |
| 116 | 116 | /** |
@@ -120,7 +120,7 @@ discard block |
||
| 120 | 120 | * @return bool |
| 121 | 121 | */ |
| 122 | 122 | public function is_oxygen_preview() { |
| 123 | - return ! empty( $_REQUEST['ct_builder'] ) || ( ! empty( $_REQUEST['action'] ) && ( substr( $_REQUEST['action'], 0, 11 ) === "oxy_render_" || substr( $_REQUEST['action'], 0, 10 ) === "ct_render_" ) ); |
|
| 123 | + return !empty($_REQUEST['ct_builder']) || (!empty($_REQUEST['action']) && (substr($_REQUEST['action'], 0, 11) === "oxy_render_" || substr($_REQUEST['action'], 0, 10) === "ct_render_")); |
|
| 124 | 124 | } |
| 125 | 125 | |
| 126 | 126 | /** |
@@ -130,24 +130,24 @@ discard block |
||
| 130 | 130 | * @param string $template_path The template path relative to the theme's root dir. Defaults to 'invoicing'. |
| 131 | 131 | * @param string $default_path The root path to the default template. Defaults to invoicing/templates |
| 132 | 132 | */ |
| 133 | - public function locate_template( $template_name, $template_path = '', $default_path = '' ) { |
|
| 133 | + public function locate_template($template_name, $template_path = '', $default_path = '') { |
|
| 134 | 134 | |
| 135 | 135 | // Load the defaults for the template path and default path. |
| 136 | - $template_path = empty( $template_path ) ? 'invoicing' : $template_path; |
|
| 137 | - $default_path = empty( $default_path ) ? $this->templates_dir : $default_path; |
|
| 138 | - $default_path = apply_filters( 'getpaid_template_default_template_path', $default_path, $template_name ); |
|
| 136 | + $template_path = empty($template_path) ? 'invoicing' : $template_path; |
|
| 137 | + $default_path = empty($default_path) ? $this->templates_dir : $default_path; |
|
| 138 | + $default_path = apply_filters('getpaid_template_default_template_path', $default_path, $template_name); |
|
| 139 | 139 | |
| 140 | 140 | // Is it overidden? |
| 141 | 141 | $template = locate_template( |
| 142 | - array( trailingslashit( $template_path ) . $template_name, 'wpinv-' . $template_name ) |
|
| 142 | + array(trailingslashit($template_path) . $template_name, 'wpinv-' . $template_name) |
|
| 143 | 143 | ); |
| 144 | 144 | |
| 145 | 145 | // If not, load the default template. |
| 146 | - if ( empty( $template ) ) { |
|
| 147 | - $template = trailingslashit( $default_path ) . $template_name; |
|
| 146 | + if (empty($template)) { |
|
| 147 | + $template = trailingslashit($default_path) . $template_name; |
|
| 148 | 148 | } |
| 149 | 149 | |
| 150 | - return apply_filters( 'wpinv_locate_template', $template, $template_name, $template_path, $default_path ); |
|
| 150 | + return apply_filters('wpinv_locate_template', $template, $template_name, $template_path, $default_path); |
|
| 151 | 151 | } |
| 152 | 152 | |
| 153 | 153 | /** |
@@ -156,20 +156,20 @@ discard block |
||
| 156 | 156 | * @since 1.0.19 |
| 157 | 157 | * @return bool |
| 158 | 158 | */ |
| 159 | - protected function load_template( $template_name, $template_path, $args ) { |
|
| 159 | + protected function load_template($template_name, $template_path, $args) { |
|
| 160 | 160 | |
| 161 | - if ( is_array( $args ) ){ |
|
| 162 | - extract( $args ); |
|
| 161 | + if (is_array($args)) { |
|
| 162 | + extract($args); |
|
| 163 | 163 | } |
| 164 | 164 | |
| 165 | 165 | // Fires before loading a template. |
| 166 | - do_action( 'wpinv_before_template_part', $template_name, $template_path, $args ); |
|
| 166 | + do_action('wpinv_before_template_part', $template_name, $template_path, $args); |
|
| 167 | 167 | |
| 168 | 168 | // Load the template. |
| 169 | - include( $template_path ); |
|
| 169 | + include($template_path); |
|
| 170 | 170 | |
| 171 | 171 | // Fires after loading a template. |
| 172 | - do_action( 'wpinv_after_template_part', $template_name, $template_path, $args ); |
|
| 172 | + do_action('wpinv_after_template_part', $template_name, $template_path, $args); |
|
| 173 | 173 | |
| 174 | 174 | } |
| 175 | 175 | |
@@ -183,18 +183,18 @@ discard block |
||
| 183 | 183 | * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'. |
| 184 | 184 | * @param string $default_path The root path to the default template. Defaults to invoicing/templates |
| 185 | 185 | */ |
| 186 | - public function display_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 186 | + public function display_template($template_name, $args = array(), $template_path = '', $default_path = '') { |
|
| 187 | 187 | |
| 188 | 188 | // Locate the template. |
| 189 | - $located = $this->locate_template( $template_name, $template_path, $default_path ); |
|
| 189 | + $located = $this->locate_template($template_name, $template_path, $default_path); |
|
| 190 | 190 | |
| 191 | 191 | // Abort if the file does not exist. |
| 192 | - if ( ! file_exists( $located ) ) { |
|
| 193 | - getpaid_doing_it_wrong( __METHOD__, sprintf( '<code>%s</code> does not exist.', $located ), '2.0.0' ); |
|
| 192 | + if (!file_exists($located)) { |
|
| 193 | + getpaid_doing_it_wrong(__METHOD__, sprintf('<code>%s</code> does not exist.', $located), '2.0.0'); |
|
| 194 | 194 | return; |
| 195 | 195 | } |
| 196 | 196 | |
| 197 | - $this->load_template( $template_name, $located, $args ); |
|
| 197 | + $this->load_template($template_name, $located, $args); |
|
| 198 | 198 | |
| 199 | 199 | } |
| 200 | 200 | |
@@ -208,9 +208,9 @@ discard block |
||
| 208 | 208 | * @param string $template_path The templates directory relative to the theme's root dir. Defaults to 'invoicing'. |
| 209 | 209 | * @param string $default_path The root path to the default template. Defaults to invoicing/templates |
| 210 | 210 | */ |
| 211 | - public function get_template( $template_name, $args = array(), $template_path = '', $default_path = '' ) { |
|
| 211 | + public function get_template($template_name, $args = array(), $template_path = '', $default_path = '') { |
|
| 212 | 212 | ob_start(); |
| 213 | - $this->display_template( $template_name, $args, $template_path, $default_path ); |
|
| 213 | + $this->display_template($template_name, $args, $template_path, $default_path); |
|
| 214 | 214 | return ob_get_clean(); |
| 215 | 215 | } |
| 216 | 216 | |
@@ -222,9 +222,9 @@ discard block |
||
| 222 | 222 | */ |
| 223 | 223 | public static function get_theme_template_path() { |
| 224 | 224 | $template = get_template(); |
| 225 | - $theme_root = get_theme_root( $template ); |
|
| 225 | + $theme_root = get_theme_root($template); |
|
| 226 | 226 | |
| 227 | - return $theme_root . '/' . $template . '/' . untrailingslashit( wpinv_get_theme_template_dir_name() ); |
|
| 227 | + return $theme_root . '/' . $template . '/' . untrailingslashit(wpinv_get_theme_template_dir_name()); |
|
| 228 | 228 | |
| 229 | 229 | } |
| 230 | 230 | |
@@ -234,28 +234,28 @@ discard block |
||
| 234 | 234 | * @param string $template The template. |
| 235 | 235 | * @return string The theme template. |
| 236 | 236 | */ |
| 237 | - public static function oxygen_locate_template( $template ) { |
|
| 237 | + public static function oxygen_locate_template($template) { |
|
| 238 | 238 | |
| 239 | - if ( empty( $template ) ) { |
|
| 239 | + if (empty($template)) { |
|
| 240 | 240 | return ''; |
| 241 | 241 | } |
| 242 | 242 | |
| 243 | - $has_filter = has_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 243 | + $has_filter = has_filter('template', 'ct_oxygen_template_name'); |
|
| 244 | 244 | |
| 245 | 245 | // Remove template filter |
| 246 | - if ( $has_filter ) { |
|
| 247 | - remove_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 246 | + if ($has_filter) { |
|
| 247 | + remove_filter('template', 'ct_oxygen_template_name'); |
|
| 248 | 248 | } |
| 249 | 249 | |
| 250 | 250 | $template = self::get_theme_template_path() . '/' . $template; |
| 251 | 251 | |
| 252 | - if ( ! file_exists( $template ) ) { |
|
| 252 | + if (!file_exists($template)) { |
|
| 253 | 253 | $template = ''; |
| 254 | 254 | } |
| 255 | 255 | |
| 256 | 256 | // Add template filter |
| 257 | - if ( $has_filter ) { |
|
| 258 | - add_filter( 'template', 'ct_oxygen_template_name' ); |
|
| 257 | + if ($has_filter) { |
|
| 258 | + add_filter('template', 'ct_oxygen_template_name'); |
|
| 259 | 259 | } |
| 260 | 260 | |
| 261 | 261 | return $template; |
@@ -268,10 +268,10 @@ discard block |
||
| 268 | 268 | * @param string $template_name Template name. |
| 269 | 269 | * @return string Located template. |
| 270 | 270 | */ |
| 271 | - public function oxygen_override_template( $located, $template_name ) { |
|
| 271 | + public function oxygen_override_template($located, $template_name) { |
|
| 272 | 272 | |
| 273 | - $oxygen_overide = self::oxygen_locate_template( $template_name ); |
|
| 274 | - if ( ! empty( $oxygen_overide ) ) { |
|
| 273 | + $oxygen_overide = self::oxygen_locate_template($template_name); |
|
| 274 | + if (!empty($oxygen_overide)) { |
|
| 275 | 275 | return $oxygen_overide; |
| 276 | 276 | } |
| 277 | 277 | |
@@ -7,24 +7,24 @@ |
||
| 7 | 7 | * @version 1.0.19 |
| 8 | 8 | */ |
| 9 | 9 | |
| 10 | -defined( 'ABSPATH' ) || exit; |
|
| 10 | +defined('ABSPATH') || exit; |
|
| 11 | 11 | |
| 12 | -$logo_width = wpinv_get_option( 'logo_width' ); |
|
| 13 | -$logo_height = wpinv_get_option( 'logo_height' ); |
|
| 12 | +$logo_width = wpinv_get_option('logo_width'); |
|
| 13 | +$logo_height = wpinv_get_option('logo_height'); |
|
| 14 | 14 | |
| 15 | 15 | ?> |
| 16 | -<a target="_blank" class="logo-link text-dark" href="<?php echo esc_url( wpinv_get_business_website() ); ?>"> |
|
| 16 | +<a target="_blank" class="logo-link text-dark" href="<?php echo esc_url(wpinv_get_business_website()); ?>"> |
|
| 17 | 17 | |
| 18 | - <?php if ( $logo = wpinv_get_business_logo() ) : ?> |
|
| 18 | + <?php if ($logo = wpinv_get_business_logo()) : ?> |
|
| 19 | 19 | |
| 20 | - <?php if ( ! empty( $logo_width ) && ! empty( $logo_height ) ) : ?> |
|
| 21 | - <img class="logo" style="max-width:100%; width:<?php echo absint( $logo_width ); ?>px; height:<?php echo absint( $logo_height ); ?>px;" src="<?php echo esc_url( $logo ); ?>"> |
|
| 20 | + <?php if (!empty($logo_width) && !empty($logo_height)) : ?> |
|
| 21 | + <img class="logo" style="max-width:100%; width:<?php echo absint($logo_width); ?>px; height:<?php echo absint($logo_height); ?>px;" src="<?php echo esc_url($logo); ?>"> |
|
| 22 | 22 | <?php else: ?> |
| 23 | - <img class="logo" style="max-width:100%;" src="<?php echo esc_url( $logo ); ?>"> |
|
| 23 | + <img class="logo" style="max-width:100%;" src="<?php echo esc_url($logo); ?>"> |
|
| 24 | 24 | <?php endif; ?> |
| 25 | 25 | |
| 26 | 26 | <?php else: ?> |
| 27 | - <h1 class="h3"><?php echo esc_html( wpinv_get_business_name() ); ?></h1> |
|
| 27 | + <h1 class="h3"><?php echo esc_html(wpinv_get_business_name()); ?></h1> |
|
| 28 | 28 | <?php endif; ?> |
| 29 | 29 | |
| 30 | 30 | </a> |
@@ -19,12 +19,18 @@ |
||
| 19 | 19 | |
| 20 | 20 | <?php if ( ! empty( $logo_width ) && ! empty( $logo_height ) ) : ?> |
| 21 | 21 | <img class="logo" style="max-width:100%; width:<?php echo absint( $logo_width ); ?>px; height:<?php echo absint( $logo_height ); ?>px;" src="<?php echo esc_url( $logo ); ?>"> |
| 22 | - <?php else: ?> |
|
| 23 | - <img class="logo" style="max-width:100%;" src="<?php echo esc_url( $logo ); ?>"> |
|
| 22 | + <?php else { |
|
| 23 | + : ?> |
|
| 24 | + <img class="logo" style="max-width:100%;" src="<?php echo esc_url( $logo ); |
|
| 25 | +} |
|
| 26 | +?>"> |
|
| 24 | 27 | <?php endif; ?> |
| 25 | 28 | |
| 26 | - <?php else: ?> |
|
| 27 | - <h1 class="h3"><?php echo esc_html( wpinv_get_business_name() ); ?></h1> |
|
| 29 | + <?php else { |
|
| 30 | + : ?> |
|
| 31 | + <h1 class="h3"><?php echo esc_html( wpinv_get_business_name() ); |
|
| 32 | +} |
|
| 33 | +?></h1> |
|
| 28 | 34 | <?php endif; ?> |
| 29 | 35 | |
| 30 | 36 | </a> |
@@ -411,9 +411,9 @@ |
||
| 411 | 411 | $bill_times = $item->get_recurring_limit(); |
| 412 | 412 | |
| 413 | 413 | if ( ! empty( $bill_times ) ) { |
| 414 | - $bill_times = $item->get_recurring_interval() * $bill_times; |
|
| 415 | - $bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times ); |
|
| 416 | - } |
|
| 414 | + $bill_times = $item->get_recurring_interval() * $bill_times; |
|
| 415 | + $bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times ); |
|
| 416 | + } |
|
| 417 | 417 | |
| 418 | 418 | if ( $item instanceof GetPaid_Form_Item && false === $_initial_price ) { |
| 419 | 419 | $initial_price = wpinv_price( $item->get_sub_total(), $currency ); |
@@ -6,7 +6,7 @@ discard block |
||
| 6 | 6 | * @package Invoicing |
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | -defined( 'ABSPATH' ) || exit; |
|
| 9 | +defined('ABSPATH') || exit; |
|
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * Retrieves an item by it's ID. |
@@ -14,9 +14,9 @@ discard block |
||
| 14 | 14 | * @param int the item ID to retrieve. |
| 15 | 15 | * @return WPInv_Item|false |
| 16 | 16 | */ |
| 17 | -function wpinv_get_item_by_id( $id ) { |
|
| 18 | - $item = wpinv_get_item( $id ); |
|
| 19 | - return empty( $item ) || $id != $item->get_id() ? false : $item; |
|
| 17 | +function wpinv_get_item_by_id($id) { |
|
| 18 | + $item = wpinv_get_item($id); |
|
| 19 | + return empty($item) || $id != $item->get_id() ? false : $item; |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | /** |
@@ -24,14 +24,14 @@ discard block |
||
| 24 | 24 | * |
| 25 | 25 | * @return WPInv_Item|false |
| 26 | 26 | */ |
| 27 | -function wpinv_get_item_by( $field = '', $value = '', $type = '' ) { |
|
| 27 | +function wpinv_get_item_by($field = '', $value = '', $type = '') { |
|
| 28 | 28 | |
| 29 | - if ( 'id' == strtolower( $field ) ) { |
|
| 30 | - return wpinv_get_item_by_id( $field ); |
|
| 29 | + if ('id' == strtolower($field)) { |
|
| 30 | + return wpinv_get_item_by_id($field); |
|
| 31 | 31 | } |
| 32 | 32 | |
| 33 | - $id = WPInv_Item::get_item_id_by_field( $value, strtolower( $field ), $type ); |
|
| 34 | - return empty( $id ) ? false : wpinv_get_item( $id ); |
|
| 33 | + $id = WPInv_Item::get_item_id_by_field($value, strtolower($field), $type); |
|
| 34 | + return empty($id) ? false : wpinv_get_item($id); |
|
| 35 | 35 | |
| 36 | 36 | } |
| 37 | 37 | |
@@ -41,22 +41,22 @@ discard block |
||
| 41 | 41 | * @param int|WPInv_Item the item to retrieve. |
| 42 | 42 | * @return WPInv_Item|false |
| 43 | 43 | */ |
| 44 | -function wpinv_get_item( $item = 0 ) { |
|
| 44 | +function wpinv_get_item($item = 0) { |
|
| 45 | 45 | |
| 46 | - if ( empty( $item ) ) { |
|
| 46 | + if (empty($item)) { |
|
| 47 | 47 | return false; |
| 48 | 48 | } |
| 49 | 49 | |
| 50 | - $item = new WPInv_Item( $item ); |
|
| 50 | + $item = new WPInv_Item($item); |
|
| 51 | 51 | return $item->exists() ? $item : false; |
| 52 | 52 | |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | -function wpinv_get_all_items( $args = array() ) { |
|
| 55 | +function wpinv_get_all_items($args = array()) { |
|
| 56 | 56 | |
| 57 | - $args = wp_parse_args( $args, array( |
|
| 58 | - 'status' => array( 'publish' ), |
|
| 59 | - 'limit' => get_option( 'posts_per_page' ), |
|
| 57 | + $args = wp_parse_args($args, array( |
|
| 58 | + 'status' => array('publish'), |
|
| 59 | + 'limit' => get_option('posts_per_page'), |
|
| 60 | 60 | 'page' => 1, |
| 61 | 61 | 'exclude' => array(), |
| 62 | 62 | 'orderby' => 'date', |
@@ -65,7 +65,7 @@ discard block |
||
| 65 | 65 | 'meta_query' => array(), |
| 66 | 66 | 'return' => 'objects', |
| 67 | 67 | 'paginate' => false, |
| 68 | - ) ); |
|
| 68 | + )); |
|
| 69 | 69 | |
| 70 | 70 | $wp_query_args = array( |
| 71 | 71 | 'post_type' => 'wpi_item', |
@@ -75,26 +75,26 @@ discard block |
||
| 75 | 75 | 'fields' => 'ids', |
| 76 | 76 | 'orderby' => $args['orderby'], |
| 77 | 77 | 'order' => $args['order'], |
| 78 | - 'paged' => absint( $args['page'] ), |
|
| 78 | + 'paged' => absint($args['page']), |
|
| 79 | 79 | ); |
| 80 | 80 | |
| 81 | - if ( ! empty( $args['exclude'] ) ) { |
|
| 82 | - $wp_query_args['post__not_in'] = array_map( 'absint', $args['exclude'] ); |
|
| 81 | + if (!empty($args['exclude'])) { |
|
| 82 | + $wp_query_args['post__not_in'] = array_map('absint', $args['exclude']); |
|
| 83 | 83 | } |
| 84 | 84 | |
| 85 | - if ( ! $args['paginate' ] ) { |
|
| 85 | + if (!$args['paginate']) { |
|
| 86 | 86 | $wp_query_args['no_found_rows'] = true; |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | - if ( ! empty( $args['search'] ) ) { |
|
| 89 | + if (!empty($args['search'])) { |
|
| 90 | 90 | $wp_query_args['s'] = $args['search']; |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | - if ( ! empty( $args['type'] ) && $args['type'] !== wpinv_item_types() ) { |
|
| 94 | - $types = wpinv_parse_list( $args['type'] ); |
|
| 93 | + if (!empty($args['type']) && $args['type'] !== wpinv_item_types()) { |
|
| 94 | + $types = wpinv_parse_list($args['type']); |
|
| 95 | 95 | $wp_query_args['meta_query'][] = array( |
| 96 | 96 | 'key' => '_wpinv_type', |
| 97 | - 'value' => implode( ',', $types ), |
|
| 97 | + 'value' => implode(',', $types), |
|
| 98 | 98 | 'compare' => 'IN', |
| 99 | 99 | ); |
| 100 | 100 | } |
@@ -102,17 +102,17 @@ discard block |
||
| 102 | 102 | $wp_query_args = apply_filters('wpinv_get_items_args', $wp_query_args, $args); |
| 103 | 103 | |
| 104 | 104 | // Get results. |
| 105 | - $items = new WP_Query( $wp_query_args ); |
|
| 105 | + $items = new WP_Query($wp_query_args); |
|
| 106 | 106 | |
| 107 | - if ( 'objects' === $args['return'] ) { |
|
| 108 | - $return = array_map( 'wpinv_get_item_by_id', $items->posts ); |
|
| 109 | - } elseif ( 'self' === $args['return'] ) { |
|
| 107 | + if ('objects' === $args['return']) { |
|
| 108 | + $return = array_map('wpinv_get_item_by_id', $items->posts); |
|
| 109 | + } elseif ('self' === $args['return']) { |
|
| 110 | 110 | return $items; |
| 111 | 111 | } else { |
| 112 | 112 | $return = $items->posts; |
| 113 | 113 | } |
| 114 | 114 | |
| 115 | - if ( $args['paginate' ] ) { |
|
| 115 | + if ($args['paginate']) { |
|
| 116 | 116 | return (object) array( |
| 117 | 117 | 'items' => $return, |
| 118 | 118 | 'total' => $items->found_posts, |
@@ -124,12 +124,12 @@ discard block |
||
| 124 | 124 | |
| 125 | 125 | } |
| 126 | 126 | |
| 127 | -function wpinv_is_free_item( $item_id = 0 ) { |
|
| 128 | - if( empty( $item_id ) ) { |
|
| 127 | +function wpinv_is_free_item($item_id = 0) { |
|
| 128 | + if (empty($item_id)) { |
|
| 129 | 129 | return false; |
| 130 | 130 | } |
| 131 | 131 | |
| 132 | - $item = new WPInv_Item( $item_id ); |
|
| 132 | + $item = new WPInv_Item($item_id); |
|
| 133 | 133 | |
| 134 | 134 | return $item->is_free(); |
| 135 | 135 | } |
@@ -139,21 +139,21 @@ discard block |
||
| 139 | 139 | * |
| 140 | 140 | * @param WP_Post|WPInv_Item|Int $item The item to check for. |
| 141 | 141 | */ |
| 142 | -function wpinv_item_is_editable( $item = 0 ) { |
|
| 142 | +function wpinv_item_is_editable($item = 0) { |
|
| 143 | 143 | |
| 144 | 144 | // Fetch the item. |
| 145 | - $item = new WPInv_Item( $item ); |
|
| 145 | + $item = new WPInv_Item($item); |
|
| 146 | 146 | |
| 147 | 147 | // Check if it is editable. |
| 148 | 148 | return $item->is_editable(); |
| 149 | 149 | } |
| 150 | 150 | |
| 151 | -function wpinv_get_item_price( $item_id = 0 ) { |
|
| 152 | - if( empty( $item_id ) ) { |
|
| 151 | +function wpinv_get_item_price($item_id = 0) { |
|
| 152 | + if (empty($item_id)) { |
|
| 153 | 153 | return false; |
| 154 | 154 | } |
| 155 | 155 | |
| 156 | - $item = new WPInv_Item( $item_id ); |
|
| 156 | + $item = new WPInv_Item($item_id); |
|
| 157 | 157 | |
| 158 | 158 | return $item->get_price(); |
| 159 | 159 | } |
@@ -163,96 +163,96 @@ discard block |
||
| 163 | 163 | * |
| 164 | 164 | * @param WPInv_Item|int $item |
| 165 | 165 | */ |
| 166 | -function wpinv_is_recurring_item( $item = 0 ) { |
|
| 167 | - $item = new WPInv_Item( $item ); |
|
| 166 | +function wpinv_is_recurring_item($item = 0) { |
|
| 167 | + $item = new WPInv_Item($item); |
|
| 168 | 168 | return $item->is_recurring(); |
| 169 | 169 | } |
| 170 | 170 | |
| 171 | -function wpinv_item_price( $item_id = 0 ) { |
|
| 172 | - if( empty( $item_id ) ) { |
|
| 171 | +function wpinv_item_price($item_id = 0) { |
|
| 172 | + if (empty($item_id)) { |
|
| 173 | 173 | return false; |
| 174 | 174 | } |
| 175 | 175 | |
| 176 | - $price = wpinv_get_item_price( $item_id ); |
|
| 177 | - $price = wpinv_price( $price ); |
|
| 176 | + $price = wpinv_get_item_price($item_id); |
|
| 177 | + $price = wpinv_price($price); |
|
| 178 | 178 | |
| 179 | - return apply_filters( 'wpinv_item_price', $price, $item_id ); |
|
| 179 | + return apply_filters('wpinv_item_price', $price, $item_id); |
|
| 180 | 180 | } |
| 181 | 181 | |
| 182 | -function wpinv_get_item_final_price( $item_id = 0, $amount_override = null ) { |
|
| 183 | - if ( is_null( $amount_override ) ) { |
|
| 184 | - $original_price = get_post_meta( $item_id, '_wpinv_price', true ); |
|
| 182 | +function wpinv_get_item_final_price($item_id = 0, $amount_override = null) { |
|
| 183 | + if (is_null($amount_override)) { |
|
| 184 | + $original_price = get_post_meta($item_id, '_wpinv_price', true); |
|
| 185 | 185 | } else { |
| 186 | 186 | $original_price = $amount_override; |
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | $price = $original_price; |
| 190 | 190 | |
| 191 | - return apply_filters( 'wpinv_get_item_final_price', $price, $item_id ); |
|
| 191 | + return apply_filters('wpinv_get_item_final_price', $price, $item_id); |
|
| 192 | 192 | } |
| 193 | 193 | |
| 194 | -function wpinv_item_custom_singular_name( $item_id ) { |
|
| 195 | - if( empty( $item_id ) ) { |
|
| 194 | +function wpinv_item_custom_singular_name($item_id) { |
|
| 195 | + if (empty($item_id)) { |
|
| 196 | 196 | return false; |
| 197 | 197 | } |
| 198 | 198 | |
| 199 | - $item = new WPInv_Item( $item_id ); |
|
| 199 | + $item = new WPInv_Item($item_id); |
|
| 200 | 200 | |
| 201 | 201 | return $item->get_custom_singular_name(); |
| 202 | 202 | } |
| 203 | 203 | |
| 204 | 204 | function wpinv_get_item_types() { |
| 205 | 205 | $item_types = array( |
| 206 | - 'custom' => __( 'Standard', 'invoicing' ), |
|
| 207 | - 'fee' => __( 'Fee', 'invoicing' ), |
|
| 206 | + 'custom' => __('Standard', 'invoicing'), |
|
| 207 | + 'fee' => __('Fee', 'invoicing'), |
|
| 208 | 208 | ); |
| 209 | - return apply_filters( 'wpinv_get_item_types', $item_types ); |
|
| 209 | + return apply_filters('wpinv_get_item_types', $item_types); |
|
| 210 | 210 | } |
| 211 | 211 | |
| 212 | 212 | function wpinv_item_types() { |
| 213 | 213 | $item_types = wpinv_get_item_types(); |
| 214 | 214 | |
| 215 | - return ( !empty( $item_types ) ? array_keys( $item_types ) : array() ); |
|
| 215 | + return (!empty($item_types) ? array_keys($item_types) : array()); |
|
| 216 | 216 | } |
| 217 | 217 | |
| 218 | -function wpinv_get_item_type( $item_id ) { |
|
| 219 | - if( empty( $item_id ) ) { |
|
| 218 | +function wpinv_get_item_type($item_id) { |
|
| 219 | + if (empty($item_id)) { |
|
| 220 | 220 | return false; |
| 221 | 221 | } |
| 222 | 222 | |
| 223 | - $item = new WPInv_Item( $item_id ); |
|
| 223 | + $item = new WPInv_Item($item_id); |
|
| 224 | 224 | |
| 225 | 225 | return $item->get_type(); |
| 226 | 226 | } |
| 227 | 227 | |
| 228 | -function wpinv_item_type( $item_id ) { |
|
| 228 | +function wpinv_item_type($item_id) { |
|
| 229 | 229 | $item_types = wpinv_get_item_types(); |
| 230 | 230 | |
| 231 | - $item_type = wpinv_get_item_type( $item_id ); |
|
| 231 | + $item_type = wpinv_get_item_type($item_id); |
|
| 232 | 232 | |
| 233 | - if ( empty( $item_type ) ) { |
|
| 233 | + if (empty($item_type)) { |
|
| 234 | 234 | $item_type = '-'; |
| 235 | 235 | } |
| 236 | 236 | |
| 237 | - $item_type = isset( $item_types[$item_type] ) ? $item_types[$item_type] : __( $item_type, 'invoicing' ); |
|
| 237 | + $item_type = isset($item_types[$item_type]) ? $item_types[$item_type] : __($item_type, 'invoicing'); |
|
| 238 | 238 | |
| 239 | - return apply_filters( 'wpinv_item_type', $item_type, $item_id ); |
|
| 239 | + return apply_filters('wpinv_item_type', $item_type, $item_id); |
|
| 240 | 240 | } |
| 241 | 241 | |
| 242 | -function wpinv_get_random_item( $post_ids = true ) { |
|
| 243 | - wpinv_get_random_items( 1, $post_ids ); |
|
| 242 | +function wpinv_get_random_item($post_ids = true) { |
|
| 243 | + wpinv_get_random_items(1, $post_ids); |
|
| 244 | 244 | } |
| 245 | 245 | |
| 246 | -function wpinv_get_random_items( $num = 3, $post_ids = true ) { |
|
| 247 | - if ( $post_ids ) { |
|
| 248 | - $args = array( 'post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num, 'fields' => 'ids' ); |
|
| 246 | +function wpinv_get_random_items($num = 3, $post_ids = true) { |
|
| 247 | + if ($post_ids) { |
|
| 248 | + $args = array('post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num, 'fields' => 'ids'); |
|
| 249 | 249 | } else { |
| 250 | - $args = array( 'post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num ); |
|
| 250 | + $args = array('post_type' => 'wpi_item', 'orderby' => 'rand', 'post_count' => $num); |
|
| 251 | 251 | } |
| 252 | 252 | |
| 253 | - $args = apply_filters( 'wpinv_get_random_items', $args ); |
|
| 253 | + $args = apply_filters('wpinv_get_random_items', $args); |
|
| 254 | 254 | |
| 255 | - return get_posts( $args ); |
|
| 255 | + return get_posts($args); |
|
| 256 | 256 | } |
| 257 | 257 | |
| 258 | 258 | /** |
@@ -261,13 +261,13 @@ discard block |
||
| 261 | 261 | * @param WPInv_Item|int $item |
| 262 | 262 | * @param bool $html |
| 263 | 263 | */ |
| 264 | -function wpinv_get_item_suffix( $item, $html = true ) { |
|
| 264 | +function wpinv_get_item_suffix($item, $html = true) { |
|
| 265 | 265 | |
| 266 | - $item = new WPInv_Item( $item ); |
|
| 267 | - $suffix = $item->is_recurring() ? ' ' . __( '(r)', 'invoicing' ) : ''; |
|
| 268 | - $suffix = $html ? $suffix : strip_tags( $suffix ); |
|
| 266 | + $item = new WPInv_Item($item); |
|
| 267 | + $suffix = $item->is_recurring() ? ' ' . __('(r)', 'invoicing') : ''; |
|
| 268 | + $suffix = $html ? $suffix : strip_tags($suffix); |
|
| 269 | 269 | |
| 270 | - return apply_filters( 'wpinv_get_item_suffix', $suffix, $item, $html ); |
|
| 270 | + return apply_filters('wpinv_get_item_suffix', $suffix, $item, $html); |
|
| 271 | 271 | } |
| 272 | 272 | |
| 273 | 273 | /** |
@@ -276,9 +276,9 @@ discard block |
||
| 276 | 276 | * @param WPInv_Item|int $item |
| 277 | 277 | * @param bool $force_delete |
| 278 | 278 | */ |
| 279 | -function wpinv_remove_item( $item = 0, $force_delete = false ) { |
|
| 280 | - $item = new WPInv_Item( $item ); |
|
| 281 | - $item->delete( $force_delete ); |
|
| 279 | +function wpinv_remove_item($item = 0, $force_delete = false) { |
|
| 280 | + $item = new WPInv_Item($item); |
|
| 281 | + $item->delete($force_delete); |
|
| 282 | 282 | } |
| 283 | 283 | |
| 284 | 284 | /** |
@@ -317,45 +317,45 @@ discard block |
||
| 317 | 317 | * @param bool $wp_error whether or not to return a WP_Error on failure. |
| 318 | 318 | * @return bool|WP_Error|WPInv_Item |
| 319 | 319 | */ |
| 320 | -function wpinv_create_item( $args = array(), $wp_error = false ) { |
|
| 320 | +function wpinv_create_item($args = array(), $wp_error = false) { |
|
| 321 | 321 | |
| 322 | 322 | // Prepare the item. |
| 323 | - if ( ! empty( $args['custom_id'] ) && empty( $args['ID'] ) ) { |
|
| 324 | - $type = empty( $args['type'] ) ? 'custom' : $args['type']; |
|
| 325 | - $item = wpinv_get_item_by( 'custom_id', $args['custom_id'], $type ); |
|
| 323 | + if (!empty($args['custom_id']) && empty($args['ID'])) { |
|
| 324 | + $type = empty($args['type']) ? 'custom' : $args['type']; |
|
| 325 | + $item = wpinv_get_item_by('custom_id', $args['custom_id'], $type); |
|
| 326 | 326 | |
| 327 | - if ( ! empty( $item ) ) { |
|
| 327 | + if (!empty($item)) { |
|
| 328 | 328 | $args['ID'] = $item->get_id(); |
| 329 | 329 | } |
| 330 | 330 | |
| 331 | 331 | } |
| 332 | 332 | |
| 333 | 333 | // Do we have an item? |
| 334 | - if ( ! empty( $args['ID'] ) ) { |
|
| 335 | - $item = new WPInv_Item( $args['ID'] ); |
|
| 334 | + if (!empty($args['ID'])) { |
|
| 335 | + $item = new WPInv_Item($args['ID']); |
|
| 336 | 336 | } else { |
| 337 | 337 | $item = new WPInv_Item(); |
| 338 | 338 | } |
| 339 | 339 | |
| 340 | 340 | // Do we have an error? |
| 341 | - if ( ! empty( $item->last_error ) ) { |
|
| 342 | - return $wp_error ? new WP_Error( 'invalid_item', $item->last_error ) : false; |
|
| 341 | + if (!empty($item->last_error)) { |
|
| 342 | + return $wp_error ? new WP_Error('invalid_item', $item->last_error) : false; |
|
| 343 | 343 | } |
| 344 | 344 | |
| 345 | 345 | // Update item props. |
| 346 | - $item->set_props( $args ); |
|
| 346 | + $item->set_props($args); |
|
| 347 | 347 | |
| 348 | 348 | // Save the item. |
| 349 | 349 | $item->save(); |
| 350 | 350 | |
| 351 | 351 | // Do we have an error? |
| 352 | - if ( ! empty( $item->last_error ) ) { |
|
| 353 | - return $wp_error ? new WP_Error( 'not_saved', $item->last_error ) : false; |
|
| 352 | + if (!empty($item->last_error)) { |
|
| 353 | + return $wp_error ? new WP_Error('not_saved', $item->last_error) : false; |
|
| 354 | 354 | } |
| 355 | 355 | |
| 356 | 356 | // Was the item saved? |
| 357 | - if ( ! $item->get_id() ) { |
|
| 358 | - return $wp_error ? new WP_Error( 'not_saved', __( 'An error occured while saving the item', 'invoicing' ) ) : false; |
|
| 357 | + if (!$item->get_id()) { |
|
| 358 | + return $wp_error ? new WP_Error('not_saved', __('An error occured while saving the item', 'invoicing')) : false; |
|
| 359 | 359 | } |
| 360 | 360 | |
| 361 | 361 | return $item; |
@@ -367,14 +367,14 @@ discard block |
||
| 367 | 367 | * |
| 368 | 368 | * @see wpinv_create_item() |
| 369 | 369 | */ |
| 370 | -function wpinv_update_item( $args = array(), $wp_error = false ) { |
|
| 371 | - return wpinv_create_item( $args, $wp_error ); |
|
| 370 | +function wpinv_update_item($args = array(), $wp_error = false) { |
|
| 371 | + return wpinv_create_item($args, $wp_error); |
|
| 372 | 372 | } |
| 373 | 373 | |
| 374 | 374 | /** |
| 375 | 375 | * Sanitizes a recurring period |
| 376 | 376 | */ |
| 377 | -function getpaid_sanitize_recurring_period( $period, $full = false ) { |
|
| 377 | +function getpaid_sanitize_recurring_period($period, $full = false) { |
|
| 378 | 378 | |
| 379 | 379 | $periods = array( |
| 380 | 380 | 'D' => 'day', |
@@ -383,11 +383,11 @@ discard block |
||
| 383 | 383 | 'Y' => 'year', |
| 384 | 384 | ); |
| 385 | 385 | |
| 386 | - if ( ! isset( $periods[ $period ] ) ) { |
|
| 386 | + if (!isset($periods[$period])) { |
|
| 387 | 387 | $period = 'D'; |
| 388 | 388 | } |
| 389 | 389 | |
| 390 | - return $full ? $periods[ $period ] : $period; |
|
| 390 | + return $full ? $periods[$period] : $period; |
|
| 391 | 391 | |
| 392 | 392 | } |
| 393 | 393 | |
@@ -396,46 +396,46 @@ discard block |
||
| 396 | 396 | * |
| 397 | 397 | * @param WPInv_Item|GetPaid_Form_Item $item |
| 398 | 398 | */ |
| 399 | -function getpaid_item_recurring_price_help_text( $item, $currency = '', $_initial_price = false, $_recurring_price = false ) { |
|
| 399 | +function getpaid_item_recurring_price_help_text($item, $currency = '', $_initial_price = false, $_recurring_price = false) { |
|
| 400 | 400 | |
| 401 | 401 | // Abort if it is not recurring. |
| 402 | - if ( ! $item->is_recurring() ) { |
|
| 402 | + if (!$item->is_recurring()) { |
|
| 403 | 403 | return ''; |
| 404 | 404 | } |
| 405 | 405 | |
| 406 | - $initial_price = false === $_initial_price ? wpinv_price( $item->get_initial_price(), $currency ) : $_initial_price; |
|
| 407 | - $recurring_price = false === $_recurring_price ? wpinv_price( $item->get_recurring_price(), $currency ) : $_recurring_price; |
|
| 408 | - $period = getpaid_get_subscription_period_label( $item->get_recurring_period(), $item->get_recurring_interval(), '' ); |
|
| 406 | + $initial_price = false === $_initial_price ? wpinv_price($item->get_initial_price(), $currency) : $_initial_price; |
|
| 407 | + $recurring_price = false === $_recurring_price ? wpinv_price($item->get_recurring_price(), $currency) : $_recurring_price; |
|
| 408 | + $period = getpaid_get_subscription_period_label($item->get_recurring_period(), $item->get_recurring_interval(), ''); |
|
| 409 | 409 | $initial_class = 'getpaid-item-initial-price'; |
| 410 | 410 | $recurring_class = 'getpaid-item-recurring-price'; |
| 411 | 411 | $bill_times = $item->get_recurring_limit(); |
| 412 | 412 | |
| 413 | - if ( ! empty( $bill_times ) ) { |
|
| 413 | + if (!empty($bill_times)) { |
|
| 414 | 414 | $bill_times = $item->get_recurring_interval() * $bill_times; |
| 415 | - $bill_times = getpaid_get_subscription_period_label( $item->get_recurring_period(), $bill_times ); |
|
| 415 | + $bill_times = getpaid_get_subscription_period_label($item->get_recurring_period(), $bill_times); |
|
| 416 | 416 | } |
| 417 | 417 | |
| 418 | - if ( $item instanceof GetPaid_Form_Item && false === $_initial_price ) { |
|
| 419 | - $initial_price = wpinv_price( $item->get_sub_total(), $currency ); |
|
| 420 | - $recurring_price = wpinv_price( $item->get_recurring_sub_total(), $currency ); |
|
| 418 | + if ($item instanceof GetPaid_Form_Item && false === $_initial_price) { |
|
| 419 | + $initial_price = wpinv_price($item->get_sub_total(), $currency); |
|
| 420 | + $recurring_price = wpinv_price($item->get_recurring_sub_total(), $currency); |
|
| 421 | 421 | } |
| 422 | 422 | |
| 423 | - if ( wpinv_price( 0, $currency ) == $initial_price && wpinv_price( 0, $currency ) == $recurring_price ) { |
|
| 424 | - return __( 'Free forever', 'invoicing' ); |
|
| 423 | + if (wpinv_price(0, $currency) == $initial_price && wpinv_price(0, $currency) == $recurring_price) { |
|
| 424 | + return __('Free forever', 'invoicing'); |
|
| 425 | 425 | } |
| 426 | 426 | |
| 427 | 427 | // For free trial items. |
| 428 | - if ( $item->has_free_trial() ) { |
|
| 429 | - $trial_period = getpaid_get_subscription_period_label( $item->get_trial_period(), $item->get_trial_interval() ); |
|
| 428 | + if ($item->has_free_trial()) { |
|
| 429 | + $trial_period = getpaid_get_subscription_period_label($item->get_trial_period(), $item->get_trial_interval()); |
|
| 430 | 430 | |
| 431 | - if ( wpinv_price( 0, $currency ) == $initial_price ) { |
|
| 431 | + if (wpinv_price(0, $currency) == $initial_price) { |
|
| 432 | 432 | |
| 433 | - if ( empty( $bill_times ) ) { |
|
| 433 | + if (empty($bill_times)) { |
|
| 434 | 434 | |
| 435 | 435 | return sprintf( |
| 436 | 436 | |
| 437 | 437 | // translators: $1: is the trial period, $2: is the recurring price, $3: is the susbcription period |
| 438 | - _x( 'Free for %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year)', 'invoicing' ), |
|
| 438 | + _x('Free for %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year)', 'invoicing'), |
|
| 439 | 439 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
| 440 | 440 | "<span class='$recurring_class'>$recurring_price</span>", |
| 441 | 441 | "<span class='getpaid-item-recurring-period'>$period</span>" |
@@ -447,7 +447,7 @@ discard block |
||
| 447 | 447 | return sprintf( |
| 448 | 448 | |
| 449 | 449 | // translators: $1: is the trial period, $2: is the recurring price, $3: is the susbcription period, $4: is the bill times |
| 450 | - _x( 'Free for %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year for 4 years)', 'invoicing' ), |
|
| 450 | + _x('Free for %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Free for 1 month then $120 / year for 4 years)', 'invoicing'), |
|
| 451 | 451 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
| 452 | 452 | "<span class='$recurring_class'>$recurring_price</span>", |
| 453 | 453 | "<span class='getpaid-item-recurring-period'>$period</span>", |
@@ -457,12 +457,12 @@ discard block |
||
| 457 | 457 | |
| 458 | 458 | } |
| 459 | 459 | |
| 460 | - if ( empty( $bill_times ) ) { |
|
| 460 | + if (empty($bill_times)) { |
|
| 461 | 461 | |
| 462 | 462 | return sprintf( |
| 463 | 463 | |
| 464 | 464 | // translators: $1: is the initial price, $2: is the trial period, $3: is the recurring price, $4: is the susbcription period |
| 465 | - _x( '%1$s for %2$s then %3$s / %4$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year)', 'invoicing' ), |
|
| 465 | + _x('%1$s for %2$s then %3$s / %4$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year)', 'invoicing'), |
|
| 466 | 466 | "<span class='$initial_class'>$initial_price</span>", |
| 467 | 467 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
| 468 | 468 | "<span class='$recurring_class'>$recurring_price</span>", |
@@ -475,7 +475,7 @@ discard block |
||
| 475 | 475 | return sprintf( |
| 476 | 476 | |
| 477 | 477 | // translators: $1: is the initial price, $2: is the trial period, $3: is the recurring price, $4: is the susbcription period, $4: is the susbcription bill times |
| 478 | - _x( '%1$s for %2$s then %3$s / %4$s for %5$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year for 5 years)', 'invoicing' ), |
|
| 478 | + _x('%1$s for %2$s then %3$s / %4$s for %5$s', 'Item subscription amount. (e.g.: $7 for 1 month then $120 / year for 5 years)', 'invoicing'), |
|
| 479 | 479 | "<span class='$initial_class'>$initial_price</span>", |
| 480 | 480 | "<span class='getpaid-item-trial-period'>$trial_period</span>", |
| 481 | 481 | "<span class='$recurring_class'>$recurring_price</span>", |
@@ -486,14 +486,14 @@ discard block |
||
| 486 | 486 | |
| 487 | 487 | } |
| 488 | 488 | |
| 489 | - if ( $initial_price == $recurring_price ) { |
|
| 489 | + if ($initial_price == $recurring_price) { |
|
| 490 | 490 | |
| 491 | - if ( empty( $bill_times ) ) { |
|
| 491 | + if (empty($bill_times)) { |
|
| 492 | 492 | |
| 493 | 493 | return sprintf( |
| 494 | 494 | |
| 495 | 495 | // translators: $1: is the recurring price, $2: is the susbcription period |
| 496 | - _x( '%1$s / %2$s', 'Item subscription amount. (e.g.: $120 / year)', 'invoicing' ), |
|
| 496 | + _x('%1$s / %2$s', 'Item subscription amount. (e.g.: $120 / year)', 'invoicing'), |
|
| 497 | 497 | "<span class='$recurring_class'>$recurring_price</span>", |
| 498 | 498 | "<span class='getpaid-item-recurring-period'>$period</span>" |
| 499 | 499 | |
@@ -504,7 +504,7 @@ discard block |
||
| 504 | 504 | return sprintf( |
| 505 | 505 | |
| 506 | 506 | // translators: $1: is the recurring price, $2: is the susbcription period, $3: is the susbcription bill times |
| 507 | - _x( '%1$s / %2$s for %3$s', 'Item subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing' ), |
|
| 507 | + _x('%1$s / %2$s for %3$s', 'Item subscription amount. (e.g.: $120 / year for 5 years)', 'invoicing'), |
|
| 508 | 508 | "<span class='$recurring_class'>$recurring_price</span>", |
| 509 | 509 | "<span class='getpaid-item-recurring-period'>$period</span>", |
| 510 | 510 | "<span class='getpaid-item-recurring-bill-times'>$bill_times</span>" |
@@ -513,14 +513,14 @@ discard block |
||
| 513 | 513 | |
| 514 | 514 | } |
| 515 | 515 | |
| 516 | - if ( $initial_price == wpinv_price( 0, $currency ) ) { |
|
| 516 | + if ($initial_price == wpinv_price(0, $currency)) { |
|
| 517 | 517 | |
| 518 | - if ( empty( $bill_times ) ) { |
|
| 518 | + if (empty($bill_times)) { |
|
| 519 | 519 | |
| 520 | 520 | return sprintf( |
| 521 | 521 | |
| 522 | 522 | // translators: $1: is the recurring period, $2: is the recurring price |
| 523 | - _x( 'Free for %1$s then %2$s / %1$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months)', 'invoicing' ), |
|
| 523 | + _x('Free for %1$s then %2$s / %1$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months)', 'invoicing'), |
|
| 524 | 524 | "<span class='getpaid-item-recurring-period'>$period</span>", |
| 525 | 525 | "<span class='$recurring_class'>$recurring_price</span>" |
| 526 | 526 | |
@@ -531,7 +531,7 @@ discard block |
||
| 531 | 531 | return sprintf( |
| 532 | 532 | |
| 533 | 533 | // translators: $1: is the recurring period, $2: is the recurring price, $3: is the bill times |
| 534 | - _x( 'Free for %1$s then %2$s / %1$s for %3$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months for 12 months)', 'invoicing' ), |
|
| 534 | + _x('Free for %1$s then %2$s / %1$s for %3$s', 'Item subscription amount. (e.g.: Free for 3 months then $7 / 3 months for 12 months)', 'invoicing'), |
|
| 535 | 535 | "<span class='getpaid-item-recurring-period'>$period</span>", |
| 536 | 536 | "<span class='$recurring_class'>$recurring_price</span>", |
| 537 | 537 | "<span class='getpaid-item-recurring-bill-times'>$bill_times</span>" |
@@ -540,12 +540,12 @@ discard block |
||
| 540 | 540 | |
| 541 | 541 | } |
| 542 | 542 | |
| 543 | - if ( empty( $bill_times ) ) { |
|
| 543 | + if (empty($bill_times)) { |
|
| 544 | 544 | |
| 545 | 545 | return sprintf( |
| 546 | 546 | |
| 547 | 547 | // translators: $1: is the initial price, $2: is the recurring price, $3: is the susbcription period |
| 548 | - _x( 'Initial payment of %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year)', 'invoicing' ), |
|
| 548 | + _x('Initial payment of %1$s then %2$s / %3$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year)', 'invoicing'), |
|
| 549 | 549 | "<span class='$initial_class'>$initial_price</span>", |
| 550 | 550 | "<span class='$recurring_class'>$recurring_price</span>", |
| 551 | 551 | "<span class='getpaid-item-recurring-period'>$period</span>" |
@@ -557,7 +557,7 @@ discard block |
||
| 557 | 557 | return sprintf( |
| 558 | 558 | |
| 559 | 559 | // translators: $1: is the initial price, $2: is the recurring price, $3: is the susbcription period, $4: is the susbcription bill times |
| 560 | - _x( 'Initial payment of %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year for 4 years)', 'invoicing' ), |
|
| 560 | + _x('Initial payment of %1$s then %2$s / %3$s for %4$s', 'Item subscription amount. (e.g.: Initial payment of $7 then $120 / year for 4 years)', 'invoicing'), |
|
| 561 | 561 | "<span class='$initial_class'>$initial_price</span>", |
| 562 | 562 | "<span class='$recurring_class'>$recurring_price</span>", |
| 563 | 563 | "<span class='getpaid-item-recurring-period'>$period</span>", |
@@ -14,51 +14,51 @@ |
||
| 14 | 14 | */ |
| 15 | 15 | class GetPaid_Payment_Exception extends Exception { |
| 16 | 16 | |
| 17 | - /** |
|
| 18 | - * Sanitized error code. |
|
| 19 | - * |
|
| 20 | - * @var string |
|
| 21 | - */ |
|
| 22 | - protected $error_code; |
|
| 17 | + /** |
|
| 18 | + * Sanitized error code. |
|
| 19 | + * |
|
| 20 | + * @var string |
|
| 21 | + */ |
|
| 22 | + protected $error_code; |
|
| 23 | 23 | |
| 24 | - /** |
|
| 25 | - * Error extra data. |
|
| 26 | - * |
|
| 27 | - * @var array |
|
| 28 | - */ |
|
| 29 | - protected $error_data; |
|
| 24 | + /** |
|
| 25 | + * Error extra data. |
|
| 26 | + * |
|
| 27 | + * @var array |
|
| 28 | + */ |
|
| 29 | + protected $error_data; |
|
| 30 | 30 | |
| 31 | - /** |
|
| 32 | - * Setup exception. |
|
| 33 | - * |
|
| 34 | - * @param string $code Machine-readable error code, e.g `getpaid-discount-error`. |
|
| 35 | - * @param string $message User-friendly translated error message, e.g. 'Discount is invalid'. |
|
| 36 | - * @param int $http_status_code Proper HTTP status code to respond with, e.g. 400. |
|
| 37 | - * @param array $data Extra error data. |
|
| 38 | - */ |
|
| 39 | - public function __construct( $code, $message, $http_status_code = 400, $data = array() ) { |
|
| 40 | - $this->error_code = $code; |
|
| 41 | - $this->error_data = array_merge( array( 'status' => $http_status_code ), $data ); |
|
| 31 | + /** |
|
| 32 | + * Setup exception. |
|
| 33 | + * |
|
| 34 | + * @param string $code Machine-readable error code, e.g `getpaid-discount-error`. |
|
| 35 | + * @param string $message User-friendly translated error message, e.g. 'Discount is invalid'. |
|
| 36 | + * @param int $http_status_code Proper HTTP status code to respond with, e.g. 400. |
|
| 37 | + * @param array $data Extra error data. |
|
| 38 | + */ |
|
| 39 | + public function __construct( $code, $message, $http_status_code = 400, $data = array() ) { |
|
| 40 | + $this->error_code = $code; |
|
| 41 | + $this->error_data = array_merge( array( 'status' => $http_status_code ), $data ); |
|
| 42 | 42 | |
| 43 | - parent::__construct( $message, $http_status_code ); |
|
| 44 | - } |
|
| 43 | + parent::__construct( $message, $http_status_code ); |
|
| 44 | + } |
|
| 45 | 45 | |
| 46 | - /** |
|
| 47 | - * Returns the error code. |
|
| 48 | - * |
|
| 49 | - * @return string |
|
| 50 | - */ |
|
| 51 | - public function getErrorCode() { |
|
| 52 | - return $this->error_code; |
|
| 53 | - } |
|
| 46 | + /** |
|
| 47 | + * Returns the error code. |
|
| 48 | + * |
|
| 49 | + * @return string |
|
| 50 | + */ |
|
| 51 | + public function getErrorCode() { |
|
| 52 | + return $this->error_code; |
|
| 53 | + } |
|
| 54 | 54 | |
| 55 | - /** |
|
| 56 | - * Returns error data. |
|
| 57 | - * |
|
| 58 | - * @return array |
|
| 59 | - */ |
|
| 60 | - public function getErrorData() { |
|
| 61 | - return $this->error_data; |
|
| 62 | - } |
|
| 55 | + /** |
|
| 56 | + * Returns error data. |
|
| 57 | + * |
|
| 58 | + * @return array |
|
| 59 | + */ |
|
| 60 | + public function getErrorData() { |
|
| 61 | + return $this->error_data; |
|
| 62 | + } |
|
| 63 | 63 | |
| 64 | 64 | } |
@@ -7,7 +7,7 @@ discard block |
||
| 7 | 7 | * @since 2.2.2 |
| 8 | 8 | */ |
| 9 | 9 | |
| 10 | -defined( 'ABSPATH' ) || exit; |
|
| 10 | +defined('ABSPATH') || exit; |
|
| 11 | 11 | |
| 12 | 12 | /** |
| 13 | 13 | * Payment exception class. |
@@ -36,11 +36,11 @@ discard block |
||
| 36 | 36 | * @param int $http_status_code Proper HTTP status code to respond with, e.g. 400. |
| 37 | 37 | * @param array $data Extra error data. |
| 38 | 38 | */ |
| 39 | - public function __construct( $code, $message, $http_status_code = 400, $data = array() ) { |
|
| 39 | + public function __construct($code, $message, $http_status_code = 400, $data = array()) { |
|
| 40 | 40 | $this->error_code = $code; |
| 41 | - $this->error_data = array_merge( array( 'status' => $http_status_code ), $data ); |
|
| 41 | + $this->error_data = array_merge(array('status' => $http_status_code), $data); |
|
| 42 | 42 | |
| 43 | - parent::__construct( $message, $http_status_code ); |
|
| 43 | + parent::__construct($message, $http_status_code); |
|
| 44 | 44 | } |
| 45 | 45 | |
| 46 | 46 | /** |
@@ -12,162 +12,162 @@ |
||
| 12 | 12 | */ |
| 13 | 13 | class GetPaid_Payment_Form_Submission_Discount { |
| 14 | 14 | |
| 15 | - /** |
|
| 16 | - * Submission discounts. |
|
| 17 | - * @var array |
|
| 18 | - */ |
|
| 19 | - public $discounts = array(); |
|
| 15 | + /** |
|
| 16 | + * Submission discounts. |
|
| 17 | + * @var array |
|
| 18 | + */ |
|
| 19 | + public $discounts = array(); |
|
| 20 | + |
|
| 21 | + /** |
|
| 22 | + * Class constructor |
|
| 23 | + * |
|
| 24 | + * @param GetPaid_Payment_Form_Submission $submission |
|
| 25 | + * @param float $initial_total |
|
| 26 | + * @param float $recurring_total |
|
| 27 | + */ |
|
| 28 | + public function __construct( $submission, $initial_total, $recurring_total ) { |
|
| 29 | + |
|
| 30 | + // Process any existing invoice discounts. |
|
| 31 | + if ( $submission->has_invoice() ) { |
|
| 32 | + $this->discounts = $submission->get_invoice()->get_discounts(); |
|
| 33 | + } |
|
| 34 | + |
|
| 35 | + // Do we have a discount? |
|
| 36 | + $discount = $submission->get_field( 'discount' ); |
|
| 37 | + |
|
| 38 | + if ( empty( $discount ) ) { |
|
| 39 | + |
|
| 40 | + if ( isset( $this->discounts['discount_code'] ) ) { |
|
| 41 | + unset( $this->discounts['discount_code'] ); |
|
| 42 | + } |
|
| 43 | + |
|
| 44 | + return; |
|
| 45 | + } |
|
| 46 | + |
|
| 47 | + // Processes the discount code. |
|
| 48 | + $amount = max( $initial_total, $recurring_total ); |
|
| 49 | + $this->process_discount( $submission, $discount, $amount ); |
|
| 50 | + |
|
| 51 | + } |
|
| 20 | 52 | |
| 21 | 53 | /** |
| 22 | - * Class constructor |
|
| 23 | - * |
|
| 24 | - * @param GetPaid_Payment_Form_Submission $submission |
|
| 25 | - * @param float $initial_total |
|
| 26 | - * @param float $recurring_total |
|
| 27 | - */ |
|
| 28 | - public function __construct( $submission, $initial_total, $recurring_total ) { |
|
| 29 | - |
|
| 30 | - // Process any existing invoice discounts. |
|
| 31 | - if ( $submission->has_invoice() ) { |
|
| 32 | - $this->discounts = $submission->get_invoice()->get_discounts(); |
|
| 33 | - } |
|
| 34 | - |
|
| 35 | - // Do we have a discount? |
|
| 36 | - $discount = $submission->get_field( 'discount' ); |
|
| 37 | - |
|
| 38 | - if ( empty( $discount ) ) { |
|
| 39 | - |
|
| 40 | - if ( isset( $this->discounts['discount_code'] ) ) { |
|
| 41 | - unset( $this->discounts['discount_code'] ); |
|
| 42 | - } |
|
| 43 | - |
|
| 44 | - return; |
|
| 45 | - } |
|
| 46 | - |
|
| 47 | - // Processes the discount code. |
|
| 48 | - $amount = max( $initial_total, $recurring_total ); |
|
| 49 | - $this->process_discount( $submission, $discount, $amount ); |
|
| 50 | - |
|
| 51 | - } |
|
| 52 | - |
|
| 53 | - /** |
|
| 54 | - * Processes a submission discount. |
|
| 55 | - * |
|
| 56 | - * @param GetPaid_Payment_Form_Submission $submission |
|
| 57 | - * @param string $discount |
|
| 58 | - * @param float $amount |
|
| 59 | - */ |
|
| 60 | - public function process_discount( $submission, $discount, $amount ) { |
|
| 61 | - |
|
| 62 | - // Fetch the discount. |
|
| 63 | - $discount = new WPInv_Discount( $discount ); |
|
| 64 | - |
|
| 65 | - // Ensure it is active. |
|
| 54 | + * Processes a submission discount. |
|
| 55 | + * |
|
| 56 | + * @param GetPaid_Payment_Form_Submission $submission |
|
| 57 | + * @param string $discount |
|
| 58 | + * @param float $amount |
|
| 59 | + */ |
|
| 60 | + public function process_discount( $submission, $discount, $amount ) { |
|
| 61 | + |
|
| 62 | + // Fetch the discount. |
|
| 63 | + $discount = new WPInv_Discount( $discount ); |
|
| 64 | + |
|
| 65 | + // Ensure it is active. |
|
| 66 | 66 | if ( ! $this->is_discount_active( $discount ) ) { |
| 67 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'Invalid or expired discount code', 'invoicing' ) ); |
|
| 68 | - } |
|
| 69 | - |
|
| 70 | - // Exceeded limit. |
|
| 71 | - if ( $discount->has_exceeded_limit() ) { |
|
| 72 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'This discount code has been used up', 'invoicing' ) ); |
|
| 73 | - } |
|
| 74 | - |
|
| 75 | - // Validate usages. |
|
| 76 | - $this->validate_single_use_discount( $submission, $discount ); |
|
| 77 | - |
|
| 78 | - // Validate amount. |
|
| 79 | - $this->validate_discount_amount( $submission, $discount, $amount ); |
|
| 80 | - |
|
| 81 | - // Save the discount. |
|
| 82 | - $this->discounts['discount_code'] = $this->calculate_discount( $submission, $discount ); |
|
| 83 | - } |
|
| 84 | - |
|
| 85 | - /** |
|
| 86 | - * Validates a single use discount. |
|
| 87 | - * |
|
| 88 | - * @param WPInv_Discount $discount |
|
| 89 | - * @return bool |
|
| 90 | - */ |
|
| 91 | - public function is_discount_active( $discount ) { |
|
| 92 | - return $discount->exists() && $discount->is_active() && $discount->has_started() && ! $discount->is_expired(); |
|
| 93 | - } |
|
| 94 | - |
|
| 95 | - /** |
|
| 96 | - * Returns a user's id or email. |
|
| 97 | - * |
|
| 98 | - * @param string $email |
|
| 99 | - * @return int|string|false |
|
| 100 | - */ |
|
| 101 | - public function get_user_id_or_email( $email ) { |
|
| 102 | - |
|
| 103 | - if ( is_user_logged_in() ) { |
|
| 104 | - return get_current_user_id(); |
|
| 105 | - } |
|
| 106 | - |
|
| 107 | - return empty( $email ) ? false : sanitize_email( $email ); |
|
| 108 | - } |
|
| 109 | - |
|
| 110 | - /** |
|
| 111 | - * Validates a single use discount. |
|
| 112 | - * |
|
| 113 | - * @param GetPaid_Payment_Form_Submission $submission |
|
| 114 | - * @param WPInv_Discount $discount |
|
| 115 | - */ |
|
| 116 | - public function validate_single_use_discount( $submission, $discount ) { |
|
| 117 | - |
|
| 118 | - // Abort if it is not a single use discount. |
|
| 119 | - if ( ! $discount->is_single_use() ) { |
|
| 120 | - return; |
|
| 121 | - } |
|
| 122 | - |
|
| 123 | - // Ensure there is a valid billing email. |
|
| 124 | - $user = $this->get_user_id_or_email( $submission->get_billing_email() ); |
|
| 125 | - |
|
| 126 | - if ( empty( $user ) ) { |
|
| 127 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You need to either log in or enter your billing email before applying this discount', 'invoicing' ) ); |
|
| 128 | - } |
|
| 129 | - |
|
| 130 | - // Has the user used this discount code before? |
|
| 131 | - if ( ! $discount->is_valid_for_user( $user ) ) { |
|
| 132 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You have already used this discount', 'invoicing' ) ); |
|
| 133 | - } |
|
| 134 | - |
|
| 135 | - } |
|
| 136 | - |
|
| 137 | - /** |
|
| 138 | - * Validates the discount's amount. |
|
| 139 | - * |
|
| 140 | - * @param GetPaid_Payment_Form_Submission $submission |
|
| 141 | - * @param WPInv_Discount $discount |
|
| 142 | - * @param float $amount |
|
| 143 | - */ |
|
| 144 | - public function validate_discount_amount( $submission, $discount, $amount ) { |
|
| 145 | - |
|
| 146 | - // Validate minimum amount. |
|
| 147 | - if ( ! $discount->is_minimum_amount_met( $amount ) ) { |
|
| 148 | - $min = wpinv_price( $discount->get_minimum_total(), $submission->get_currency() ); |
|
| 149 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The minimum total for using this discount is %s', 'invoicing' ), $min ) ); |
|
| 150 | - } |
|
| 151 | - |
|
| 152 | - // Validate the maximum amount. |
|
| 153 | - if ( ! $discount->is_maximum_amount_met( $amount ) ) { |
|
| 154 | - $max = wpinv_price( $discount->get_maximum_total(), $submission->get_currency() ); |
|
| 155 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The maximum total for using this discount is %s', 'invoicing' ), $max ) ); |
|
| 156 | - } |
|
| 157 | - |
|
| 158 | - } |
|
| 159 | - |
|
| 160 | - /** |
|
| 161 | - * Calculates the discount code's amount. |
|
| 162 | - * |
|
| 163 | - * Ensure that the discount exists and has been validated before calling this method. |
|
| 164 | - * |
|
| 165 | - * @param GetPaid_Payment_Form_Submission $submission |
|
| 166 | - * @param WPInv_Discount $discount |
|
| 167 | - * @return array |
|
| 168 | - */ |
|
| 169 | - public function calculate_discount( $submission, $discount ) { |
|
| 170 | - return getpaid_calculate_invoice_discount( $submission, $discount ); |
|
| 171 | - } |
|
| 67 | + throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'Invalid or expired discount code', 'invoicing' ) ); |
|
| 68 | + } |
|
| 69 | + |
|
| 70 | + // Exceeded limit. |
|
| 71 | + if ( $discount->has_exceeded_limit() ) { |
|
| 72 | + throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'This discount code has been used up', 'invoicing' ) ); |
|
| 73 | + } |
|
| 74 | + |
|
| 75 | + // Validate usages. |
|
| 76 | + $this->validate_single_use_discount( $submission, $discount ); |
|
| 77 | + |
|
| 78 | + // Validate amount. |
|
| 79 | + $this->validate_discount_amount( $submission, $discount, $amount ); |
|
| 80 | + |
|
| 81 | + // Save the discount. |
|
| 82 | + $this->discounts['discount_code'] = $this->calculate_discount( $submission, $discount ); |
|
| 83 | + } |
|
| 84 | + |
|
| 85 | + /** |
|
| 86 | + * Validates a single use discount. |
|
| 87 | + * |
|
| 88 | + * @param WPInv_Discount $discount |
|
| 89 | + * @return bool |
|
| 90 | + */ |
|
| 91 | + public function is_discount_active( $discount ) { |
|
| 92 | + return $discount->exists() && $discount->is_active() && $discount->has_started() && ! $discount->is_expired(); |
|
| 93 | + } |
|
| 94 | + |
|
| 95 | + /** |
|
| 96 | + * Returns a user's id or email. |
|
| 97 | + * |
|
| 98 | + * @param string $email |
|
| 99 | + * @return int|string|false |
|
| 100 | + */ |
|
| 101 | + public function get_user_id_or_email( $email ) { |
|
| 102 | + |
|
| 103 | + if ( is_user_logged_in() ) { |
|
| 104 | + return get_current_user_id(); |
|
| 105 | + } |
|
| 106 | + |
|
| 107 | + return empty( $email ) ? false : sanitize_email( $email ); |
|
| 108 | + } |
|
| 109 | + |
|
| 110 | + /** |
|
| 111 | + * Validates a single use discount. |
|
| 112 | + * |
|
| 113 | + * @param GetPaid_Payment_Form_Submission $submission |
|
| 114 | + * @param WPInv_Discount $discount |
|
| 115 | + */ |
|
| 116 | + public function validate_single_use_discount( $submission, $discount ) { |
|
| 117 | + |
|
| 118 | + // Abort if it is not a single use discount. |
|
| 119 | + if ( ! $discount->is_single_use() ) { |
|
| 120 | + return; |
|
| 121 | + } |
|
| 122 | + |
|
| 123 | + // Ensure there is a valid billing email. |
|
| 124 | + $user = $this->get_user_id_or_email( $submission->get_billing_email() ); |
|
| 125 | + |
|
| 126 | + if ( empty( $user ) ) { |
|
| 127 | + throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You need to either log in or enter your billing email before applying this discount', 'invoicing' ) ); |
|
| 128 | + } |
|
| 129 | + |
|
| 130 | + // Has the user used this discount code before? |
|
| 131 | + if ( ! $discount->is_valid_for_user( $user ) ) { |
|
| 132 | + throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You have already used this discount', 'invoicing' ) ); |
|
| 133 | + } |
|
| 134 | + |
|
| 135 | + } |
|
| 136 | + |
|
| 137 | + /** |
|
| 138 | + * Validates the discount's amount. |
|
| 139 | + * |
|
| 140 | + * @param GetPaid_Payment_Form_Submission $submission |
|
| 141 | + * @param WPInv_Discount $discount |
|
| 142 | + * @param float $amount |
|
| 143 | + */ |
|
| 144 | + public function validate_discount_amount( $submission, $discount, $amount ) { |
|
| 145 | + |
|
| 146 | + // Validate minimum amount. |
|
| 147 | + if ( ! $discount->is_minimum_amount_met( $amount ) ) { |
|
| 148 | + $min = wpinv_price( $discount->get_minimum_total(), $submission->get_currency() ); |
|
| 149 | + throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The minimum total for using this discount is %s', 'invoicing' ), $min ) ); |
|
| 150 | + } |
|
| 151 | + |
|
| 152 | + // Validate the maximum amount. |
|
| 153 | + if ( ! $discount->is_maximum_amount_met( $amount ) ) { |
|
| 154 | + $max = wpinv_price( $discount->get_maximum_total(), $submission->get_currency() ); |
|
| 155 | + throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The maximum total for using this discount is %s', 'invoicing' ), $max ) ); |
|
| 156 | + } |
|
| 157 | + |
|
| 158 | + } |
|
| 159 | + |
|
| 160 | + /** |
|
| 161 | + * Calculates the discount code's amount. |
|
| 162 | + * |
|
| 163 | + * Ensure that the discount exists and has been validated before calling this method. |
|
| 164 | + * |
|
| 165 | + * @param GetPaid_Payment_Form_Submission $submission |
|
| 166 | + * @param WPInv_Discount $discount |
|
| 167 | + * @return array |
|
| 168 | + */ |
|
| 169 | + public function calculate_discount( $submission, $discount ) { |
|
| 170 | + return getpaid_calculate_invoice_discount( $submission, $discount ); |
|
| 171 | + } |
|
| 172 | 172 | |
| 173 | 173 | } |
@@ -4,7 +4,7 @@ discard block |
||
| 4 | 4 | * |
| 5 | 5 | */ |
| 6 | 6 | |
| 7 | -defined( 'ABSPATH' ) || exit; |
|
| 7 | +defined('ABSPATH') || exit; |
|
| 8 | 8 | |
| 9 | 9 | /** |
| 10 | 10 | * Payment form submission discount class |
@@ -25,28 +25,28 @@ discard block |
||
| 25 | 25 | * @param float $initial_total |
| 26 | 26 | * @param float $recurring_total |
| 27 | 27 | */ |
| 28 | - public function __construct( $submission, $initial_total, $recurring_total ) { |
|
| 28 | + public function __construct($submission, $initial_total, $recurring_total) { |
|
| 29 | 29 | |
| 30 | 30 | // Process any existing invoice discounts. |
| 31 | - if ( $submission->has_invoice() ) { |
|
| 31 | + if ($submission->has_invoice()) { |
|
| 32 | 32 | $this->discounts = $submission->get_invoice()->get_discounts(); |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | 35 | // Do we have a discount? |
| 36 | - $discount = $submission->get_field( 'discount' ); |
|
| 36 | + $discount = $submission->get_field('discount'); |
|
| 37 | 37 | |
| 38 | - if ( empty( $discount ) ) { |
|
| 38 | + if (empty($discount)) { |
|
| 39 | 39 | |
| 40 | - if ( isset( $this->discounts['discount_code'] ) ) { |
|
| 41 | - unset( $this->discounts['discount_code'] ); |
|
| 40 | + if (isset($this->discounts['discount_code'])) { |
|
| 41 | + unset($this->discounts['discount_code']); |
|
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | return; |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | 47 | // Processes the discount code. |
| 48 | - $amount = max( $initial_total, $recurring_total ); |
|
| 49 | - $this->process_discount( $submission, $discount, $amount ); |
|
| 48 | + $amount = max($initial_total, $recurring_total); |
|
| 49 | + $this->process_discount($submission, $discount, $amount); |
|
| 50 | 50 | |
| 51 | 51 | } |
| 52 | 52 | |
@@ -57,29 +57,29 @@ discard block |
||
| 57 | 57 | * @param string $discount |
| 58 | 58 | * @param float $amount |
| 59 | 59 | */ |
| 60 | - public function process_discount( $submission, $discount, $amount ) { |
|
| 60 | + public function process_discount($submission, $discount, $amount) { |
|
| 61 | 61 | |
| 62 | 62 | // Fetch the discount. |
| 63 | - $discount = new WPInv_Discount( $discount ); |
|
| 63 | + $discount = new WPInv_Discount($discount); |
|
| 64 | 64 | |
| 65 | 65 | // Ensure it is active. |
| 66 | - if ( ! $this->is_discount_active( $discount ) ) { |
|
| 67 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'Invalid or expired discount code', 'invoicing' ) ); |
|
| 66 | + if (!$this->is_discount_active($discount)) { |
|
| 67 | + throw new GetPaid_Payment_Exception('.getpaid-discount-field .getpaid-custom-payment-form-errors', __('Invalid or expired discount code', 'invoicing')); |
|
| 68 | 68 | } |
| 69 | 69 | |
| 70 | 70 | // Exceeded limit. |
| 71 | - if ( $discount->has_exceeded_limit() ) { |
|
| 72 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'This discount code has been used up', 'invoicing' ) ); |
|
| 71 | + if ($discount->has_exceeded_limit()) { |
|
| 72 | + throw new GetPaid_Payment_Exception('.getpaid-discount-field .getpaid-custom-payment-form-errors', __('This discount code has been used up', 'invoicing')); |
|
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | // Validate usages. |
| 76 | - $this->validate_single_use_discount( $submission, $discount ); |
|
| 76 | + $this->validate_single_use_discount($submission, $discount); |
|
| 77 | 77 | |
| 78 | 78 | // Validate amount. |
| 79 | - $this->validate_discount_amount( $submission, $discount, $amount ); |
|
| 79 | + $this->validate_discount_amount($submission, $discount, $amount); |
|
| 80 | 80 | |
| 81 | 81 | // Save the discount. |
| 82 | - $this->discounts['discount_code'] = $this->calculate_discount( $submission, $discount ); |
|
| 82 | + $this->discounts['discount_code'] = $this->calculate_discount($submission, $discount); |
|
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 | /** |
@@ -88,8 +88,8 @@ discard block |
||
| 88 | 88 | * @param WPInv_Discount $discount |
| 89 | 89 | * @return bool |
| 90 | 90 | */ |
| 91 | - public function is_discount_active( $discount ) { |
|
| 92 | - return $discount->exists() && $discount->is_active() && $discount->has_started() && ! $discount->is_expired(); |
|
| 91 | + public function is_discount_active($discount) { |
|
| 92 | + return $discount->exists() && $discount->is_active() && $discount->has_started() && !$discount->is_expired(); |
|
| 93 | 93 | } |
| 94 | 94 | |
| 95 | 95 | /** |
@@ -98,13 +98,13 @@ discard block |
||
| 98 | 98 | * @param string $email |
| 99 | 99 | * @return int|string|false |
| 100 | 100 | */ |
| 101 | - public function get_user_id_or_email( $email ) { |
|
| 101 | + public function get_user_id_or_email($email) { |
|
| 102 | 102 | |
| 103 | - if ( is_user_logged_in() ) { |
|
| 103 | + if (is_user_logged_in()) { |
|
| 104 | 104 | return get_current_user_id(); |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | - return empty( $email ) ? false : sanitize_email( $email ); |
|
| 107 | + return empty($email) ? false : sanitize_email($email); |
|
| 108 | 108 | } |
| 109 | 109 | |
| 110 | 110 | /** |
@@ -113,23 +113,23 @@ discard block |
||
| 113 | 113 | * @param GetPaid_Payment_Form_Submission $submission |
| 114 | 114 | * @param WPInv_Discount $discount |
| 115 | 115 | */ |
| 116 | - public function validate_single_use_discount( $submission, $discount ) { |
|
| 116 | + public function validate_single_use_discount($submission, $discount) { |
|
| 117 | 117 | |
| 118 | 118 | // Abort if it is not a single use discount. |
| 119 | - if ( ! $discount->is_single_use() ) { |
|
| 119 | + if (!$discount->is_single_use()) { |
|
| 120 | 120 | return; |
| 121 | 121 | } |
| 122 | 122 | |
| 123 | 123 | // Ensure there is a valid billing email. |
| 124 | - $user = $this->get_user_id_or_email( $submission->get_billing_email() ); |
|
| 124 | + $user = $this->get_user_id_or_email($submission->get_billing_email()); |
|
| 125 | 125 | |
| 126 | - if ( empty( $user ) ) { |
|
| 127 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You need to either log in or enter your billing email before applying this discount', 'invoicing' ) ); |
|
| 126 | + if (empty($user)) { |
|
| 127 | + throw new GetPaid_Payment_Exception('.getpaid-discount-field .getpaid-custom-payment-form-errors', __('You need to either log in or enter your billing email before applying this discount', 'invoicing')); |
|
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | // Has the user used this discount code before? |
| 131 | - if ( ! $discount->is_valid_for_user( $user ) ) { |
|
| 132 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', __( 'You have already used this discount', 'invoicing' ) ); |
|
| 131 | + if (!$discount->is_valid_for_user($user)) { |
|
| 132 | + throw new GetPaid_Payment_Exception('.getpaid-discount-field .getpaid-custom-payment-form-errors', __('You have already used this discount', 'invoicing')); |
|
| 133 | 133 | } |
| 134 | 134 | |
| 135 | 135 | } |
@@ -141,18 +141,18 @@ discard block |
||
| 141 | 141 | * @param WPInv_Discount $discount |
| 142 | 142 | * @param float $amount |
| 143 | 143 | */ |
| 144 | - public function validate_discount_amount( $submission, $discount, $amount ) { |
|
| 144 | + public function validate_discount_amount($submission, $discount, $amount) { |
|
| 145 | 145 | |
| 146 | 146 | // Validate minimum amount. |
| 147 | - if ( ! $discount->is_minimum_amount_met( $amount ) ) { |
|
| 148 | - $min = wpinv_price( $discount->get_minimum_total(), $submission->get_currency() ); |
|
| 149 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The minimum total for using this discount is %s', 'invoicing' ), $min ) ); |
|
| 147 | + if (!$discount->is_minimum_amount_met($amount)) { |
|
| 148 | + $min = wpinv_price($discount->get_minimum_total(), $submission->get_currency()); |
|
| 149 | + throw new GetPaid_Payment_Exception('.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf(__('The minimum total for using this discount is %s', 'invoicing'), $min)); |
|
| 150 | 150 | } |
| 151 | 151 | |
| 152 | 152 | // Validate the maximum amount. |
| 153 | - if ( ! $discount->is_maximum_amount_met( $amount ) ) { |
|
| 154 | - $max = wpinv_price( $discount->get_maximum_total(), $submission->get_currency() ); |
|
| 155 | - throw new GetPaid_Payment_Exception( '.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf( __( 'The maximum total for using this discount is %s', 'invoicing' ), $max ) ); |
|
| 153 | + if (!$discount->is_maximum_amount_met($amount)) { |
|
| 154 | + $max = wpinv_price($discount->get_maximum_total(), $submission->get_currency()); |
|
| 155 | + throw new GetPaid_Payment_Exception('.getpaid-discount-field .getpaid-custom-payment-form-errors', sprintf(__('The maximum total for using this discount is %s', 'invoicing'), $max)); |
|
| 156 | 156 | } |
| 157 | 157 | |
| 158 | 158 | } |
@@ -166,8 +166,8 @@ discard block |
||
| 166 | 166 | * @param WPInv_Discount $discount |
| 167 | 167 | * @return array |
| 168 | 168 | */ |
| 169 | - public function calculate_discount( $submission, $discount ) { |
|
| 170 | - return getpaid_calculate_invoice_discount( $submission, $discount ); |
|
| 169 | + public function calculate_discount($submission, $discount) { |
|
| 170 | + return getpaid_calculate_invoice_discount($submission, $discount); |
|
| 171 | 171 | } |
| 172 | 172 | |
| 173 | 173 | } |
@@ -12,294 +12,294 @@ |
||
| 12 | 12 | */ |
| 13 | 13 | class GetPaid_Reports_Helper { |
| 14 | 14 | |
| 15 | - /** |
|
| 16 | - * Get report totals such as invoice totals and discount amounts. |
|
| 17 | - * |
|
| 18 | - * Data example: |
|
| 19 | - * |
|
| 20 | - * 'subtotal' => array( |
|
| 21 | - * 'type' => 'invoice_data', |
|
| 22 | - * 'function' => 'SUM', |
|
| 23 | - * 'name' => 'subtotal' |
|
| 24 | - * ) |
|
| 25 | - * |
|
| 26 | - * @param array $args |
|
| 27 | - * @return mixed depending on query_type |
|
| 28 | - */ |
|
| 29 | - public static function get_invoice_report_data( $args = array() ) { |
|
| 30 | - global $wpdb; |
|
| 31 | - |
|
| 32 | - $default_args = array( |
|
| 33 | - 'data' => array(), // The data to retrieve. |
|
| 34 | - 'where' => array(), // An array of where queries. |
|
| 35 | - 'query_type' => 'get_row', // wpdb query to run. |
|
| 36 | - 'group_by' => '', // What to group results by. |
|
| 37 | - 'order_by' => '', // What to order by. |
|
| 38 | - 'limit' => '', // Results limit. |
|
| 39 | - 'filter_range' => array(), // An array of before and after dates to limit results by. |
|
| 40 | - 'invoice_types' => array( 'wpi_invoice' ), // An array of post types to retrieve. |
|
| 41 | - 'invoice_status' => array( 'publish', 'wpi-processing', 'wpi-onhold' ), |
|
| 42 | - 'parent_invoice_status' => false, // Optionally filter by parent invoice status. |
|
| 43 | - ); |
|
| 44 | - |
|
| 45 | - $args = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args ); |
|
| 46 | - $args = wp_parse_args( $args, $default_args ); |
|
| 47 | - |
|
| 48 | - extract( $args ); |
|
| 49 | - |
|
| 50 | - if ( empty( $data ) ) { |
|
| 51 | - return ''; |
|
| 52 | - } |
|
| 53 | - |
|
| 54 | - $query = array(); |
|
| 55 | - $query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) ); |
|
| 56 | - $query['from'] = "FROM {$wpdb->posts} AS posts"; |
|
| 57 | - $query['join'] = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) ); |
|
| 58 | - |
|
| 59 | - $query['where'] = " |
|
| 15 | + /** |
|
| 16 | + * Get report totals such as invoice totals and discount amounts. |
|
| 17 | + * |
|
| 18 | + * Data example: |
|
| 19 | + * |
|
| 20 | + * 'subtotal' => array( |
|
| 21 | + * 'type' => 'invoice_data', |
|
| 22 | + * 'function' => 'SUM', |
|
| 23 | + * 'name' => 'subtotal' |
|
| 24 | + * ) |
|
| 25 | + * |
|
| 26 | + * @param array $args |
|
| 27 | + * @return mixed depending on query_type |
|
| 28 | + */ |
|
| 29 | + public static function get_invoice_report_data( $args = array() ) { |
|
| 30 | + global $wpdb; |
|
| 31 | + |
|
| 32 | + $default_args = array( |
|
| 33 | + 'data' => array(), // The data to retrieve. |
|
| 34 | + 'where' => array(), // An array of where queries. |
|
| 35 | + 'query_type' => 'get_row', // wpdb query to run. |
|
| 36 | + 'group_by' => '', // What to group results by. |
|
| 37 | + 'order_by' => '', // What to order by. |
|
| 38 | + 'limit' => '', // Results limit. |
|
| 39 | + 'filter_range' => array(), // An array of before and after dates to limit results by. |
|
| 40 | + 'invoice_types' => array( 'wpi_invoice' ), // An array of post types to retrieve. |
|
| 41 | + 'invoice_status' => array( 'publish', 'wpi-processing', 'wpi-onhold' ), |
|
| 42 | + 'parent_invoice_status' => false, // Optionally filter by parent invoice status. |
|
| 43 | + ); |
|
| 44 | + |
|
| 45 | + $args = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args ); |
|
| 46 | + $args = wp_parse_args( $args, $default_args ); |
|
| 47 | + |
|
| 48 | + extract( $args ); |
|
| 49 | + |
|
| 50 | + if ( empty( $data ) ) { |
|
| 51 | + return ''; |
|
| 52 | + } |
|
| 53 | + |
|
| 54 | + $query = array(); |
|
| 55 | + $query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) ); |
|
| 56 | + $query['from'] = "FROM {$wpdb->posts} AS posts"; |
|
| 57 | + $query['join'] = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) ); |
|
| 58 | + |
|
| 59 | + $query['where'] = " |
|
| 60 | 60 | WHERE posts.post_type IN ( '" . implode( "','", $invoice_types ) . "' ) |
| 61 | 61 | "; |
| 62 | 62 | |
| 63 | - if ( ! empty( $invoice_status ) ) { |
|
| 64 | - $query['where'] .= " |
|
| 63 | + if ( ! empty( $invoice_status ) ) { |
|
| 64 | + $query['where'] .= " |
|
| 65 | 65 | AND posts.post_status IN ( '" . implode( "','", $invoice_status ) . "' ) |
| 66 | 66 | "; |
| 67 | - } |
|
| 68 | - |
|
| 69 | - if ( ! empty( $parent_invoice_status ) ) { |
|
| 70 | - if ( ! empty( $invoice_status ) ) { |
|
| 71 | - $query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) "; |
|
| 72 | - } else { |
|
| 73 | - $query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) "; |
|
| 74 | - } |
|
| 75 | - } |
|
| 76 | - |
|
| 77 | - if ( ! empty( $filter_range['before'] ) ) { |
|
| 78 | - $query['where'] .= " |
|
| 67 | + } |
|
| 68 | + |
|
| 69 | + if ( ! empty( $parent_invoice_status ) ) { |
|
| 70 | + if ( ! empty( $invoice_status ) ) { |
|
| 71 | + $query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) "; |
|
| 72 | + } else { |
|
| 73 | + $query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) "; |
|
| 74 | + } |
|
| 75 | + } |
|
| 76 | + |
|
| 77 | + if ( ! empty( $filter_range['before'] ) ) { |
|
| 78 | + $query['where'] .= " |
|
| 79 | 79 | AND posts.post_date < '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['before'] ) ) . "' |
| 80 | 80 | "; |
| 81 | - } |
|
| 81 | + } |
|
| 82 | 82 | |
| 83 | - if ( ! empty( $filter_range['after'] ) ) { |
|
| 84 | - $query['where'] .= " |
|
| 83 | + if ( ! empty( $filter_range['after'] ) ) { |
|
| 84 | + $query['where'] .= " |
|
| 85 | 85 | AND posts.post_date > '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['after'] ) ) . "' |
| 86 | 86 | "; |
| 87 | - } |
|
| 87 | + } |
|
| 88 | 88 | |
| 89 | - if ( ! empty( $where ) ) { |
|
| 89 | + if ( ! empty( $where ) ) { |
|
| 90 | 90 | |
| 91 | - foreach ( $where as $value ) { |
|
| 91 | + foreach ( $where as $value ) { |
|
| 92 | 92 | |
| 93 | - if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) { |
|
| 94 | - |
|
| 95 | - if ( is_array( $value['value'] ) ) { |
|
| 96 | - $value['value'] = implode( "','", $value['value'] ); |
|
| 97 | - } |
|
| 98 | - |
|
| 99 | - if ( ! empty( $value['value'] ) ) { |
|
| 100 | - $where_value = "{$value['operator']} ('{$value['value']}')"; |
|
| 101 | - } |
|
| 102 | - } else { |
|
| 103 | - $where_value = "{$value['operator']} '{$value['value']}'"; |
|
| 104 | - } |
|
| 105 | - |
|
| 106 | - if ( ! empty( $where_value ) ) { |
|
| 107 | - $query['where'] .= " AND {$value['key']} {$where_value}"; |
|
| 108 | - } |
|
| 109 | - } |
|
| 110 | - } |
|
| 111 | - |
|
| 112 | - if ( $group_by ) { |
|
| 113 | - $query['group_by'] = "GROUP BY {$group_by}"; |
|
| 114 | - } |
|
| 115 | - |
|
| 116 | - if ( $order_by ) { |
|
| 117 | - $query['order_by'] = "ORDER BY {$order_by}"; |
|
| 118 | - } |
|
| 119 | - |
|
| 120 | - if ( $limit ) { |
|
| 121 | - $query['limit'] = "LIMIT {$limit}"; |
|
| 122 | - } |
|
| 123 | - |
|
| 124 | - $query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data ); |
|
| 125 | - $query = implode( ' ', $query ); |
|
| 126 | - |
|
| 127 | - return self::execute( $query_type, $query ); |
|
| 128 | - |
|
| 129 | - } |
|
| 130 | - |
|
| 131 | - /** |
|
| 132 | - * Prepares the data to select. |
|
| 133 | - * |
|
| 134 | - * |
|
| 135 | - * @param array $data |
|
| 136 | - * @return array |
|
| 137 | - */ |
|
| 138 | - public static function prepare_invoice_data( $data ) { |
|
| 139 | - |
|
| 140 | - $prepared = array(); |
|
| 141 | - |
|
| 142 | - foreach ( $data as $raw_key => $value ) { |
|
| 143 | - $key = sanitize_key( $raw_key ); |
|
| 144 | - $distinct = ''; |
|
| 145 | - |
|
| 146 | - if ( isset( $value['distinct'] ) ) { |
|
| 147 | - $distinct = 'DISTINCT'; |
|
| 148 | - } |
|
| 149 | - |
|
| 150 | - $get_key = self::get_invoice_table_key( $key, $value['type'] ); |
|
| 151 | - |
|
| 152 | - if ( false === $get_key ) { |
|
| 153 | - // Skip to the next foreach iteration else the query will be invalid. |
|
| 154 | - continue; |
|
| 155 | - } |
|
| 156 | - |
|
| 157 | - if ( ! empty( $value['function'] ) ) { |
|
| 158 | - $get = "{$value['function']}({$distinct} {$get_key})"; |
|
| 159 | - } else { |
|
| 160 | - $get = "{$distinct} {$get_key}"; |
|
| 161 | - } |
|
| 162 | - |
|
| 163 | - $prepared[] = "{$get} as {$value['name']}"; |
|
| 164 | - } |
|
| 165 | - |
|
| 166 | - return $prepared; |
|
| 167 | - |
|
| 168 | - } |
|
| 169 | - |
|
| 170 | - /** |
|
| 171 | - * Prepares the joins to use. |
|
| 172 | - * |
|
| 173 | - * |
|
| 174 | - * @param array $data |
|
| 175 | - * @param bool $with_parent |
|
| 176 | - * @return array |
|
| 177 | - */ |
|
| 178 | - public static function prepare_invoice_joins( $data, $with_parent ) { |
|
| 179 | - global $wpdb; |
|
| 180 | - |
|
| 181 | - $prepared = array(); |
|
| 182 | - |
|
| 183 | - foreach ( $data as $raw_key => $value ) { |
|
| 184 | - $join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER'; |
|
| 185 | - $type = isset( $value['type'] ) ? $value['type'] : false; |
|
| 186 | - $key = sanitize_key( $raw_key ); |
|
| 187 | - |
|
| 188 | - switch ( $type ) { |
|
| 189 | - case 'meta': |
|
| 190 | - $prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )"; |
|
| 191 | - break; |
|
| 192 | - case 'parent_meta': |
|
| 193 | - $prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')"; |
|
| 194 | - break; |
|
| 195 | - case 'invoice_data': |
|
| 196 | - $prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id"; |
|
| 197 | - break; |
|
| 198 | - case 'invoice_item': |
|
| 199 | - $prepared['invoice_items'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoice_items AS invoice_items ON posts.ID = invoice_items.post_id"; |
|
| 200 | - break; |
|
| 201 | - } |
|
| 202 | - } |
|
| 203 | - |
|
| 204 | - if ( $with_parent ) { |
|
| 205 | - $prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID"; |
|
| 206 | - } |
|
| 207 | - |
|
| 208 | - return $prepared; |
|
| 209 | - |
|
| 210 | - } |
|
| 211 | - |
|
| 212 | - /** |
|
| 213 | - * Retrieves the appropriate table key to use. |
|
| 214 | - * |
|
| 215 | - * |
|
| 216 | - * @param string $key |
|
| 217 | - * @param string $table |
|
| 218 | - * @return string|false |
|
| 219 | - */ |
|
| 220 | - public static function get_invoice_table_key( $key, $table ) { |
|
| 221 | - |
|
| 222 | - $keys = array( |
|
| 223 | - 'meta' => "meta_{$key}.meta_value", |
|
| 224 | - 'parent_meta' => "parent_meta_{$key}.meta_value", |
|
| 225 | - 'post_data' => "posts.{$key}", |
|
| 226 | - 'invoice_data' => "invoices.{$key}", |
|
| 227 | - 'invoice_item' => "invoice_items.{$key}", |
|
| 228 | - ); |
|
| 229 | - |
|
| 230 | - return isset( $keys[ $table ] ) ? $keys[ $table ] : false; |
|
| 231 | - |
|
| 232 | - } |
|
| 233 | - |
|
| 234 | - /** |
|
| 235 | - * Executes a query and caches the result for a minute. |
|
| 236 | - * |
|
| 237 | - * |
|
| 238 | - * @param string $query_type |
|
| 239 | - * @param string $query |
|
| 240 | - * @return mixed depending on query_type |
|
| 241 | - */ |
|
| 242 | - public static function execute( $query_type, $query ) { |
|
| 243 | - global $wpdb; |
|
| 244 | - |
|
| 245 | - $query_hash = md5( $query_type . $query ); |
|
| 246 | - $result = self::get_cached_query( $query_hash ); |
|
| 247 | - if ( $result === false ) { |
|
| 248 | - self::enable_big_selects(); |
|
| 249 | - |
|
| 250 | - $result = $wpdb->$query_type( $query ); |
|
| 251 | - self::set_cached_query( $query_hash, $result ); |
|
| 252 | - } |
|
| 253 | - |
|
| 254 | - return $result; |
|
| 255 | - |
|
| 256 | - } |
|
| 257 | - |
|
| 258 | - /** |
|
| 259 | - * Enables big mysql selects for reports, just once for this session. |
|
| 260 | - */ |
|
| 261 | - protected static function enable_big_selects() { |
|
| 262 | - static $big_selects = false; |
|
| 263 | - |
|
| 264 | - global $wpdb; |
|
| 265 | - |
|
| 266 | - if ( ! $big_selects ) { |
|
| 267 | - $wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' ); |
|
| 268 | - $big_selects = true; |
|
| 269 | - } |
|
| 270 | - } |
|
| 271 | - |
|
| 272 | - /** |
|
| 273 | - * Get the cached query result or null if it's not in the cache. |
|
| 274 | - * |
|
| 275 | - * @param string $query_hash The query hash. |
|
| 276 | - * |
|
| 277 | - * @return mixed|false The cache contents on success, false on failure to retrieve contents. |
|
| 278 | - */ |
|
| 279 | - protected static function get_cached_query( $query_hash ) { |
|
| 280 | - |
|
| 281 | - return wp_cache_get( |
|
| 282 | - $query_hash, |
|
| 283 | - strtolower( __CLASS__ ) |
|
| 284 | - ); |
|
| 285 | - |
|
| 286 | - } |
|
| 287 | - |
|
| 288 | - /** |
|
| 289 | - * Set the cached query result. |
|
| 290 | - * |
|
| 291 | - * @param string $query_hash The query hash. |
|
| 292 | - * @param mixed $data The data to cache. |
|
| 293 | - */ |
|
| 294 | - protected static function set_cached_query( $query_hash, $data ) { |
|
| 295 | - |
|
| 296 | - wp_cache_set( |
|
| 297 | - $query_hash, |
|
| 298 | - $data, |
|
| 299 | - strtolower( __CLASS__ ), |
|
| 300 | - MINUTE_IN_SECONDS |
|
| 301 | - ); |
|
| 302 | - |
|
| 303 | - } |
|
| 93 | + if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) { |
|
| 94 | + |
|
| 95 | + if ( is_array( $value['value'] ) ) { |
|
| 96 | + $value['value'] = implode( "','", $value['value'] ); |
|
| 97 | + } |
|
| 98 | + |
|
| 99 | + if ( ! empty( $value['value'] ) ) { |
|
| 100 | + $where_value = "{$value['operator']} ('{$value['value']}')"; |
|
| 101 | + } |
|
| 102 | + } else { |
|
| 103 | + $where_value = "{$value['operator']} '{$value['value']}'"; |
|
| 104 | + } |
|
| 105 | + |
|
| 106 | + if ( ! empty( $where_value ) ) { |
|
| 107 | + $query['where'] .= " AND {$value['key']} {$where_value}"; |
|
| 108 | + } |
|
| 109 | + } |
|
| 110 | + } |
|
| 111 | + |
|
| 112 | + if ( $group_by ) { |
|
| 113 | + $query['group_by'] = "GROUP BY {$group_by}"; |
|
| 114 | + } |
|
| 115 | + |
|
| 116 | + if ( $order_by ) { |
|
| 117 | + $query['order_by'] = "ORDER BY {$order_by}"; |
|
| 118 | + } |
|
| 119 | + |
|
| 120 | + if ( $limit ) { |
|
| 121 | + $query['limit'] = "LIMIT {$limit}"; |
|
| 122 | + } |
|
| 123 | + |
|
| 124 | + $query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data ); |
|
| 125 | + $query = implode( ' ', $query ); |
|
| 126 | + |
|
| 127 | + return self::execute( $query_type, $query ); |
|
| 128 | + |
|
| 129 | + } |
|
| 130 | + |
|
| 131 | + /** |
|
| 132 | + * Prepares the data to select. |
|
| 133 | + * |
|
| 134 | + * |
|
| 135 | + * @param array $data |
|
| 136 | + * @return array |
|
| 137 | + */ |
|
| 138 | + public static function prepare_invoice_data( $data ) { |
|
| 139 | + |
|
| 140 | + $prepared = array(); |
|
| 141 | + |
|
| 142 | + foreach ( $data as $raw_key => $value ) { |
|
| 143 | + $key = sanitize_key( $raw_key ); |
|
| 144 | + $distinct = ''; |
|
| 145 | + |
|
| 146 | + if ( isset( $value['distinct'] ) ) { |
|
| 147 | + $distinct = 'DISTINCT'; |
|
| 148 | + } |
|
| 149 | + |
|
| 150 | + $get_key = self::get_invoice_table_key( $key, $value['type'] ); |
|
| 151 | + |
|
| 152 | + if ( false === $get_key ) { |
|
| 153 | + // Skip to the next foreach iteration else the query will be invalid. |
|
| 154 | + continue; |
|
| 155 | + } |
|
| 156 | + |
|
| 157 | + if ( ! empty( $value['function'] ) ) { |
|
| 158 | + $get = "{$value['function']}({$distinct} {$get_key})"; |
|
| 159 | + } else { |
|
| 160 | + $get = "{$distinct} {$get_key}"; |
|
| 161 | + } |
|
| 162 | + |
|
| 163 | + $prepared[] = "{$get} as {$value['name']}"; |
|
| 164 | + } |
|
| 165 | + |
|
| 166 | + return $prepared; |
|
| 167 | + |
|
| 168 | + } |
|
| 169 | + |
|
| 170 | + /** |
|
| 171 | + * Prepares the joins to use. |
|
| 172 | + * |
|
| 173 | + * |
|
| 174 | + * @param array $data |
|
| 175 | + * @param bool $with_parent |
|
| 176 | + * @return array |
|
| 177 | + */ |
|
| 178 | + public static function prepare_invoice_joins( $data, $with_parent ) { |
|
| 179 | + global $wpdb; |
|
| 180 | + |
|
| 181 | + $prepared = array(); |
|
| 182 | + |
|
| 183 | + foreach ( $data as $raw_key => $value ) { |
|
| 184 | + $join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER'; |
|
| 185 | + $type = isset( $value['type'] ) ? $value['type'] : false; |
|
| 186 | + $key = sanitize_key( $raw_key ); |
|
| 187 | + |
|
| 188 | + switch ( $type ) { |
|
| 189 | + case 'meta': |
|
| 190 | + $prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )"; |
|
| 191 | + break; |
|
| 192 | + case 'parent_meta': |
|
| 193 | + $prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')"; |
|
| 194 | + break; |
|
| 195 | + case 'invoice_data': |
|
| 196 | + $prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id"; |
|
| 197 | + break; |
|
| 198 | + case 'invoice_item': |
|
| 199 | + $prepared['invoice_items'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoice_items AS invoice_items ON posts.ID = invoice_items.post_id"; |
|
| 200 | + break; |
|
| 201 | + } |
|
| 202 | + } |
|
| 203 | + |
|
| 204 | + if ( $with_parent ) { |
|
| 205 | + $prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID"; |
|
| 206 | + } |
|
| 207 | + |
|
| 208 | + return $prepared; |
|
| 209 | + |
|
| 210 | + } |
|
| 211 | + |
|
| 212 | + /** |
|
| 213 | + * Retrieves the appropriate table key to use. |
|
| 214 | + * |
|
| 215 | + * |
|
| 216 | + * @param string $key |
|
| 217 | + * @param string $table |
|
| 218 | + * @return string|false |
|
| 219 | + */ |
|
| 220 | + public static function get_invoice_table_key( $key, $table ) { |
|
| 221 | + |
|
| 222 | + $keys = array( |
|
| 223 | + 'meta' => "meta_{$key}.meta_value", |
|
| 224 | + 'parent_meta' => "parent_meta_{$key}.meta_value", |
|
| 225 | + 'post_data' => "posts.{$key}", |
|
| 226 | + 'invoice_data' => "invoices.{$key}", |
|
| 227 | + 'invoice_item' => "invoice_items.{$key}", |
|
| 228 | + ); |
|
| 229 | + |
|
| 230 | + return isset( $keys[ $table ] ) ? $keys[ $table ] : false; |
|
| 231 | + |
|
| 232 | + } |
|
| 233 | + |
|
| 234 | + /** |
|
| 235 | + * Executes a query and caches the result for a minute. |
|
| 236 | + * |
|
| 237 | + * |
|
| 238 | + * @param string $query_type |
|
| 239 | + * @param string $query |
|
| 240 | + * @return mixed depending on query_type |
|
| 241 | + */ |
|
| 242 | + public static function execute( $query_type, $query ) { |
|
| 243 | + global $wpdb; |
|
| 244 | + |
|
| 245 | + $query_hash = md5( $query_type . $query ); |
|
| 246 | + $result = self::get_cached_query( $query_hash ); |
|
| 247 | + if ( $result === false ) { |
|
| 248 | + self::enable_big_selects(); |
|
| 249 | + |
|
| 250 | + $result = $wpdb->$query_type( $query ); |
|
| 251 | + self::set_cached_query( $query_hash, $result ); |
|
| 252 | + } |
|
| 253 | + |
|
| 254 | + return $result; |
|
| 255 | + |
|
| 256 | + } |
|
| 257 | + |
|
| 258 | + /** |
|
| 259 | + * Enables big mysql selects for reports, just once for this session. |
|
| 260 | + */ |
|
| 261 | + protected static function enable_big_selects() { |
|
| 262 | + static $big_selects = false; |
|
| 263 | + |
|
| 264 | + global $wpdb; |
|
| 265 | + |
|
| 266 | + if ( ! $big_selects ) { |
|
| 267 | + $wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' ); |
|
| 268 | + $big_selects = true; |
|
| 269 | + } |
|
| 270 | + } |
|
| 271 | + |
|
| 272 | + /** |
|
| 273 | + * Get the cached query result or null if it's not in the cache. |
|
| 274 | + * |
|
| 275 | + * @param string $query_hash The query hash. |
|
| 276 | + * |
|
| 277 | + * @return mixed|false The cache contents on success, false on failure to retrieve contents. |
|
| 278 | + */ |
|
| 279 | + protected static function get_cached_query( $query_hash ) { |
|
| 280 | + |
|
| 281 | + return wp_cache_get( |
|
| 282 | + $query_hash, |
|
| 283 | + strtolower( __CLASS__ ) |
|
| 284 | + ); |
|
| 285 | + |
|
| 286 | + } |
|
| 287 | + |
|
| 288 | + /** |
|
| 289 | + * Set the cached query result. |
|
| 290 | + * |
|
| 291 | + * @param string $query_hash The query hash. |
|
| 292 | + * @param mixed $data The data to cache. |
|
| 293 | + */ |
|
| 294 | + protected static function set_cached_query( $query_hash, $data ) { |
|
| 295 | + |
|
| 296 | + wp_cache_set( |
|
| 297 | + $query_hash, |
|
| 298 | + $data, |
|
| 299 | + strtolower( __CLASS__ ), |
|
| 300 | + MINUTE_IN_SECONDS |
|
| 301 | + ); |
|
| 302 | + |
|
| 303 | + } |
|
| 304 | 304 | |
| 305 | 305 | } |
@@ -5,7 +5,7 @@ discard block |
||
| 5 | 5 | * |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | -defined( 'ABSPATH' ) || exit; |
|
| 8 | +defined('ABSPATH') || exit; |
|
| 9 | 9 | |
| 10 | 10 | /** |
| 11 | 11 | * GetPaid_Reports_Helper Class. |
@@ -26,7 +26,7 @@ discard block |
||
| 26 | 26 | * @param array $args |
| 27 | 27 | * @return mixed depending on query_type |
| 28 | 28 | */ |
| 29 | - public static function get_invoice_report_data( $args = array() ) { |
|
| 29 | + public static function get_invoice_report_data($args = array()) { |
|
| 30 | 30 | global $wpdb; |
| 31 | 31 | |
| 32 | 32 | $default_args = array( |
@@ -37,94 +37,94 @@ discard block |
||
| 37 | 37 | 'order_by' => '', // What to order by. |
| 38 | 38 | 'limit' => '', // Results limit. |
| 39 | 39 | 'filter_range' => array(), // An array of before and after dates to limit results by. |
| 40 | - 'invoice_types' => array( 'wpi_invoice' ), // An array of post types to retrieve. |
|
| 41 | - 'invoice_status' => array( 'publish', 'wpi-processing', 'wpi-onhold' ), |
|
| 40 | + 'invoice_types' => array('wpi_invoice'), // An array of post types to retrieve. |
|
| 41 | + 'invoice_status' => array('publish', 'wpi-processing', 'wpi-onhold'), |
|
| 42 | 42 | 'parent_invoice_status' => false, // Optionally filter by parent invoice status. |
| 43 | 43 | ); |
| 44 | 44 | |
| 45 | - $args = apply_filters( 'getpaid_reports_get_invoice_report_data_args', $args ); |
|
| 46 | - $args = wp_parse_args( $args, $default_args ); |
|
| 45 | + $args = apply_filters('getpaid_reports_get_invoice_report_data_args', $args); |
|
| 46 | + $args = wp_parse_args($args, $default_args); |
|
| 47 | 47 | |
| 48 | - extract( $args ); |
|
| 48 | + extract($args); |
|
| 49 | 49 | |
| 50 | - if ( empty( $data ) ) { |
|
| 50 | + if (empty($data)) { |
|
| 51 | 51 | return ''; |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | $query = array(); |
| 55 | - $query['select'] = 'SELECT ' . implode( ',', self::prepare_invoice_data( $data ) ); |
|
| 55 | + $query['select'] = 'SELECT ' . implode(',', self::prepare_invoice_data($data)); |
|
| 56 | 56 | $query['from'] = "FROM {$wpdb->posts} AS posts"; |
| 57 | - $query['join'] = implode( ' ', self::prepare_invoice_joins( $data + $where, ! empty( $parent_invoice_status ) ) ); |
|
| 57 | + $query['join'] = implode(' ', self::prepare_invoice_joins($data + $where, !empty($parent_invoice_status))); |
|
| 58 | 58 | |
| 59 | 59 | $query['where'] = " |
| 60 | - WHERE posts.post_type IN ( '" . implode( "','", $invoice_types ) . "' ) |
|
| 60 | + WHERE posts.post_type IN ( '" . implode("','", $invoice_types) . "' ) |
|
| 61 | 61 | "; |
| 62 | 62 | |
| 63 | - if ( ! empty( $invoice_status ) ) { |
|
| 63 | + if (!empty($invoice_status)) { |
|
| 64 | 64 | $query['where'] .= " |
| 65 | - AND posts.post_status IN ( '" . implode( "','", $invoice_status ) . "' ) |
|
| 65 | + AND posts.post_status IN ( '" . implode("','", $invoice_status) . "' ) |
|
| 66 | 66 | "; |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | - if ( ! empty( $parent_invoice_status ) ) { |
|
| 70 | - if ( ! empty( $invoice_status ) ) { |
|
| 71 | - $query['where'] .= " AND ( parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) OR parent.ID IS NULL ) "; |
|
| 69 | + if (!empty($parent_invoice_status)) { |
|
| 70 | + if (!empty($invoice_status)) { |
|
| 71 | + $query['where'] .= " AND ( parent.post_status IN ( '" . implode("','", $parent_invoice_status) . "' ) OR parent.ID IS NULL ) "; |
|
| 72 | 72 | } else { |
| 73 | - $query['where'] .= " AND parent.post_status IN ( '" . implode( "','", $parent_invoice_status ) . "' ) "; |
|
| 73 | + $query['where'] .= " AND parent.post_status IN ( '" . implode("','", $parent_invoice_status) . "' ) "; |
|
| 74 | 74 | } |
| 75 | 75 | } |
| 76 | 76 | |
| 77 | - if ( ! empty( $filter_range['before'] ) ) { |
|
| 77 | + if (!empty($filter_range['before'])) { |
|
| 78 | 78 | $query['where'] .= " |
| 79 | - AND posts.post_date < '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['before'] ) ) . "' |
|
| 79 | + AND posts.post_date < '" . date('Y-m-d H:i:s', strtotime($filter_range['before'])) . "' |
|
| 80 | 80 | "; |
| 81 | 81 | } |
| 82 | 82 | |
| 83 | - if ( ! empty( $filter_range['after'] ) ) { |
|
| 83 | + if (!empty($filter_range['after'])) { |
|
| 84 | 84 | $query['where'] .= " |
| 85 | - AND posts.post_date > '" . date( 'Y-m-d H:i:s', strtotime( $filter_range['after'] ) ) . "' |
|
| 85 | + AND posts.post_date > '" . date('Y-m-d H:i:s', strtotime($filter_range['after'])) . "' |
|
| 86 | 86 | "; |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | - if ( ! empty( $where ) ) { |
|
| 89 | + if (!empty($where)) { |
|
| 90 | 90 | |
| 91 | - foreach ( $where as $value ) { |
|
| 91 | + foreach ($where as $value) { |
|
| 92 | 92 | |
| 93 | - if ( strtolower( $value['operator'] ) == 'in' || strtolower( $value['operator'] ) == 'not in' ) { |
|
| 93 | + if (strtolower($value['operator']) == 'in' || strtolower($value['operator']) == 'not in') { |
|
| 94 | 94 | |
| 95 | - if ( is_array( $value['value'] ) ) { |
|
| 96 | - $value['value'] = implode( "','", $value['value'] ); |
|
| 95 | + if (is_array($value['value'])) { |
|
| 96 | + $value['value'] = implode("','", $value['value']); |
|
| 97 | 97 | } |
| 98 | 98 | |
| 99 | - if ( ! empty( $value['value'] ) ) { |
|
| 99 | + if (!empty($value['value'])) { |
|
| 100 | 100 | $where_value = "{$value['operator']} ('{$value['value']}')"; |
| 101 | 101 | } |
| 102 | 102 | } else { |
| 103 | 103 | $where_value = "{$value['operator']} '{$value['value']}'"; |
| 104 | 104 | } |
| 105 | 105 | |
| 106 | - if ( ! empty( $where_value ) ) { |
|
| 106 | + if (!empty($where_value)) { |
|
| 107 | 107 | $query['where'] .= " AND {$value['key']} {$where_value}"; |
| 108 | 108 | } |
| 109 | 109 | } |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | - if ( $group_by ) { |
|
| 112 | + if ($group_by) { |
|
| 113 | 113 | $query['group_by'] = "GROUP BY {$group_by}"; |
| 114 | 114 | } |
| 115 | 115 | |
| 116 | - if ( $order_by ) { |
|
| 116 | + if ($order_by) { |
|
| 117 | 117 | $query['order_by'] = "ORDER BY {$order_by}"; |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | - if ( $limit ) { |
|
| 120 | + if ($limit) { |
|
| 121 | 121 | $query['limit'] = "LIMIT {$limit}"; |
| 122 | 122 | } |
| 123 | 123 | |
| 124 | - $query = apply_filters( 'getpaid_reports_get_invoice_report_query', $query, $data ); |
|
| 125 | - $query = implode( ' ', $query ); |
|
| 124 | + $query = apply_filters('getpaid_reports_get_invoice_report_query', $query, $data); |
|
| 125 | + $query = implode(' ', $query); |
|
| 126 | 126 | |
| 127 | - return self::execute( $query_type, $query ); |
|
| 127 | + return self::execute($query_type, $query); |
|
| 128 | 128 | |
| 129 | 129 | } |
| 130 | 130 | |
@@ -135,26 +135,26 @@ discard block |
||
| 135 | 135 | * @param array $data |
| 136 | 136 | * @return array |
| 137 | 137 | */ |
| 138 | - public static function prepare_invoice_data( $data ) { |
|
| 138 | + public static function prepare_invoice_data($data) { |
|
| 139 | 139 | |
| 140 | 140 | $prepared = array(); |
| 141 | 141 | |
| 142 | - foreach ( $data as $raw_key => $value ) { |
|
| 143 | - $key = sanitize_key( $raw_key ); |
|
| 142 | + foreach ($data as $raw_key => $value) { |
|
| 143 | + $key = sanitize_key($raw_key); |
|
| 144 | 144 | $distinct = ''; |
| 145 | 145 | |
| 146 | - if ( isset( $value['distinct'] ) ) { |
|
| 146 | + if (isset($value['distinct'])) { |
|
| 147 | 147 | $distinct = 'DISTINCT'; |
| 148 | 148 | } |
| 149 | 149 | |
| 150 | - $get_key = self::get_invoice_table_key( $key, $value['type'] ); |
|
| 150 | + $get_key = self::get_invoice_table_key($key, $value['type']); |
|
| 151 | 151 | |
| 152 | - if ( false === $get_key ) { |
|
| 152 | + if (false === $get_key) { |
|
| 153 | 153 | // Skip to the next foreach iteration else the query will be invalid. |
| 154 | 154 | continue; |
| 155 | 155 | } |
| 156 | 156 | |
| 157 | - if ( ! empty( $value['function'] ) ) { |
|
| 157 | + if (!empty($value['function'])) { |
|
| 158 | 158 | $get = "{$value['function']}({$distinct} {$get_key})"; |
| 159 | 159 | } else { |
| 160 | 160 | $get = "{$distinct} {$get_key}"; |
@@ -175,22 +175,22 @@ discard block |
||
| 175 | 175 | * @param bool $with_parent |
| 176 | 176 | * @return array |
| 177 | 177 | */ |
| 178 | - public static function prepare_invoice_joins( $data, $with_parent ) { |
|
| 178 | + public static function prepare_invoice_joins($data, $with_parent) { |
|
| 179 | 179 | global $wpdb; |
| 180 | 180 | |
| 181 | 181 | $prepared = array(); |
| 182 | 182 | |
| 183 | - foreach ( $data as $raw_key => $value ) { |
|
| 184 | - $join_type = isset( $value['join_type'] ) ? $value['join_type'] : 'INNER'; |
|
| 185 | - $type = isset( $value['type'] ) ? $value['type'] : false; |
|
| 186 | - $key = sanitize_key( $raw_key ); |
|
| 183 | + foreach ($data as $raw_key => $value) { |
|
| 184 | + $join_type = isset($value['join_type']) ? $value['join_type'] : 'INNER'; |
|
| 185 | + $type = isset($value['type']) ? $value['type'] : false; |
|
| 186 | + $key = sanitize_key($raw_key); |
|
| 187 | 187 | |
| 188 | - switch ( $type ) { |
|
| 188 | + switch ($type) { |
|
| 189 | 189 | case 'meta': |
| 190 | - $prepared[ "meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )"; |
|
| 190 | + $prepared["meta_{$key}"] = "{$join_type} JOIN {$wpdb->postmeta} AS meta_{$key} ON ( posts.ID = meta_{$key}.post_id AND meta_{$key}.meta_key = '{$raw_key}' )"; |
|
| 191 | 191 | break; |
| 192 | 192 | case 'parent_meta': |
| 193 | - $prepared[ "parent_meta_{$key}" ] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')"; |
|
| 193 | + $prepared["parent_meta_{$key}"] = "{$join_type} JOIN {$wpdb->postmeta} AS parent_meta_{$key} ON (posts.post_parent = parent_meta_{$key}.post_id) AND (parent_meta_{$key}.meta_key = '{$raw_key}')"; |
|
| 194 | 194 | break; |
| 195 | 195 | case 'invoice_data': |
| 196 | 196 | $prepared['invoices'] = "{$join_type} JOIN {$wpdb->prefix}getpaid_invoices AS invoices ON posts.ID = invoices.post_id"; |
@@ -201,7 +201,7 @@ discard block |
||
| 201 | 201 | } |
| 202 | 202 | } |
| 203 | 203 | |
| 204 | - if ( $with_parent ) { |
|
| 204 | + if ($with_parent) { |
|
| 205 | 205 | $prepared['parent'] = "LEFT JOIN {$wpdb->posts} AS parent ON posts.post_parent = parent.ID"; |
| 206 | 206 | } |
| 207 | 207 | |
@@ -217,7 +217,7 @@ discard block |
||
| 217 | 217 | * @param string $table |
| 218 | 218 | * @return string|false |
| 219 | 219 | */ |
| 220 | - public static function get_invoice_table_key( $key, $table ) { |
|
| 220 | + public static function get_invoice_table_key($key, $table) { |
|
| 221 | 221 | |
| 222 | 222 | $keys = array( |
| 223 | 223 | 'meta' => "meta_{$key}.meta_value", |
@@ -227,7 +227,7 @@ discard block |
||
| 227 | 227 | 'invoice_item' => "invoice_items.{$key}", |
| 228 | 228 | ); |
| 229 | 229 | |
| 230 | - return isset( $keys[ $table ] ) ? $keys[ $table ] : false; |
|
| 230 | + return isset($keys[$table]) ? $keys[$table] : false; |
|
| 231 | 231 | |
| 232 | 232 | } |
| 233 | 233 | |
@@ -239,16 +239,16 @@ discard block |
||
| 239 | 239 | * @param string $query |
| 240 | 240 | * @return mixed depending on query_type |
| 241 | 241 | */ |
| 242 | - public static function execute( $query_type, $query ) { |
|
| 242 | + public static function execute($query_type, $query) { |
|
| 243 | 243 | global $wpdb; |
| 244 | 244 | |
| 245 | - $query_hash = md5( $query_type . $query ); |
|
| 246 | - $result = self::get_cached_query( $query_hash ); |
|
| 247 | - if ( $result === false ) { |
|
| 245 | + $query_hash = md5($query_type . $query); |
|
| 246 | + $result = self::get_cached_query($query_hash); |
|
| 247 | + if ($result === false) { |
|
| 248 | 248 | self::enable_big_selects(); |
| 249 | 249 | |
| 250 | - $result = $wpdb->$query_type( $query ); |
|
| 251 | - self::set_cached_query( $query_hash, $result ); |
|
| 250 | + $result = $wpdb->$query_type($query); |
|
| 251 | + self::set_cached_query($query_hash, $result); |
|
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | return $result; |
@@ -263,8 +263,8 @@ discard block |
||
| 263 | 263 | |
| 264 | 264 | global $wpdb; |
| 265 | 265 | |
| 266 | - if ( ! $big_selects ) { |
|
| 267 | - $wpdb->query( 'SET SESSION SQL_BIG_SELECTS=1' ); |
|
| 266 | + if (!$big_selects) { |
|
| 267 | + $wpdb->query('SET SESSION SQL_BIG_SELECTS=1'); |
|
| 268 | 268 | $big_selects = true; |
| 269 | 269 | } |
| 270 | 270 | } |
@@ -276,11 +276,11 @@ discard block |
||
| 276 | 276 | * |
| 277 | 277 | * @return mixed|false The cache contents on success, false on failure to retrieve contents. |
| 278 | 278 | */ |
| 279 | - protected static function get_cached_query( $query_hash ) { |
|
| 279 | + protected static function get_cached_query($query_hash) { |
|
| 280 | 280 | |
| 281 | 281 | return wp_cache_get( |
| 282 | 282 | $query_hash, |
| 283 | - strtolower( __CLASS__ ) |
|
| 283 | + strtolower(__CLASS__) |
|
| 284 | 284 | ); |
| 285 | 285 | |
| 286 | 286 | } |
@@ -291,12 +291,12 @@ discard block |
||
| 291 | 291 | * @param string $query_hash The query hash. |
| 292 | 292 | * @param mixed $data The data to cache. |
| 293 | 293 | */ |
| 294 | - protected static function set_cached_query( $query_hash, $data ) { |
|
| 294 | + protected static function set_cached_query($query_hash, $data) { |
|
| 295 | 295 | |
| 296 | 296 | wp_cache_set( |
| 297 | 297 | $query_hash, |
| 298 | 298 | $data, |
| 299 | - strtolower( __CLASS__ ), |
|
| 299 | + strtolower(__CLASS__), |
|
| 300 | 300 | MINUTE_IN_SECONDS |
| 301 | 301 | ); |
| 302 | 302 | |
@@ -8,7 +8,7 @@ discard block |
||
| 8 | 8 | * @version 1.0.19 |
| 9 | 9 | */ |
| 10 | 10 | |
| 11 | -defined( 'ABSPATH' ) || exit; |
|
| 11 | +defined('ABSPATH') || exit; |
|
| 12 | 12 | |
| 13 | 13 | return array( |
| 14 | 14 | |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | |
| 17 | 17 | 'placeholder' => '[email protected]', |
| 18 | 18 | 'value' => '', |
| 19 | - 'label' => __( 'Billing Email', 'invoicing' ), |
|
| 19 | + 'label' => __('Billing Email', 'invoicing'), |
|
| 20 | 20 | 'description' => '', |
| 21 | 21 | 'required' => true, |
| 22 | 22 | 'id' => 'mmdwqzpox', |
@@ -28,9 +28,9 @@ discard block |
||
| 28 | 28 | array( |
| 29 | 29 | |
| 30 | 30 | 'value' => '', |
| 31 | - 'input_label' => __( 'Coupon Code', 'invoicing' ), |
|
| 32 | - 'button_label' => __( 'Apply Coupon', 'invoicing' ), |
|
| 33 | - 'description' => __( 'Have a discount code? Enter it above.', 'invoicing' ), |
|
| 31 | + 'input_label' => __('Coupon Code', 'invoicing'), |
|
| 32 | + 'button_label' => __('Apply Coupon', 'invoicing'), |
|
| 33 | + 'description' => __('Have a discount code? Enter it above.', 'invoicing'), |
|
| 34 | 34 | 'id' => 'kcicdiscount', |
| 35 | 35 | 'name' => 'kcicdiscount', |
| 36 | 36 | 'type' => 'discount', |
@@ -50,7 +50,7 @@ discard block |
||
| 50 | 50 | ), |
| 51 | 51 | |
| 52 | 52 | array( |
| 53 | - 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
| 53 | + 'text' => __('Select Payment Method', 'invoicing'), |
|
| 54 | 54 | 'id' => 'gtscicd', |
| 55 | 55 | 'name' => 'gtscicd', |
| 56 | 56 | 'type' => 'gateway_select', |
@@ -62,8 +62,8 @@ discard block |
||
| 62 | 62 | |
| 63 | 63 | 'value' =>'', |
| 64 | 64 | 'class' => 'btn-primary', |
| 65 | - 'label' => __( 'Pay Now »', 'invoicing' ), |
|
| 66 | - 'description' => __( 'By continuing with your payment, you are agreeing to our privacy policy and terms of service.', 'invoicing' ), |
|
| 65 | + 'label' => __('Pay Now »', 'invoicing'), |
|
| 66 | + 'description' => __('By continuing with your payment, you are agreeing to our privacy policy and terms of service.', 'invoicing'), |
|
| 67 | 67 | 'id' => 'rtqljyy', |
| 68 | 68 | 'name' => 'rtqljyy', |
| 69 | 69 | 'type' => 'pay_button', |
@@ -8,7 +8,7 @@ discard block |
||
| 8 | 8 | * @version 1.0.19 |
| 9 | 9 | */ |
| 10 | 10 | |
| 11 | -defined( 'ABSPATH' ) || exit; |
|
| 11 | +defined('ABSPATH') || exit; |
|
| 12 | 12 | |
| 13 | 13 | return array( |
| 14 | 14 | |
@@ -16,7 +16,7 @@ discard block |
||
| 16 | 16 | |
| 17 | 17 | 'placeholder' => '[email protected]', |
| 18 | 18 | 'value' => '', |
| 19 | - 'label' => __( 'Billing Email', 'invoicing' ), |
|
| 19 | + 'label' => __('Billing Email', 'invoicing'), |
|
| 20 | 20 | 'description' => '', |
| 21 | 21 | 'required' => true, |
| 22 | 22 | 'id' => 'mmdwqzpox', |
@@ -34,7 +34,7 @@ discard block |
||
| 34 | 34 | array( |
| 35 | 35 | 'placeholder' => 'Jon', |
| 36 | 36 | 'value' => '', |
| 37 | - 'label' => __( 'First Name', 'invoicing' ), |
|
| 37 | + 'label' => __('First Name', 'invoicing'), |
|
| 38 | 38 | 'description' => '', |
| 39 | 39 | 'required' => false, |
| 40 | 40 | 'visible' => true, |
@@ -44,7 +44,7 @@ discard block |
||
| 44 | 44 | array( |
| 45 | 45 | 'placeholder' => 'Snow', |
| 46 | 46 | 'value' => '', |
| 47 | - 'label' => __( 'Last Name', 'invoicing' ), |
|
| 47 | + 'label' => __('Last Name', 'invoicing'), |
|
| 48 | 48 | 'description' => '', |
| 49 | 49 | 'required' => false, |
| 50 | 50 | 'visible' => true, |
@@ -54,7 +54,7 @@ discard block |
||
| 54 | 54 | array( |
| 55 | 55 | 'placeholder' => '', |
| 56 | 56 | 'value' => '', |
| 57 | - 'label' => __( 'Address', 'invoicing' ), |
|
| 57 | + 'label' => __('Address', 'invoicing'), |
|
| 58 | 58 | 'description' => '', |
| 59 | 59 | 'required' => false, |
| 60 | 60 | 'visible' => true, |
@@ -64,7 +64,7 @@ discard block |
||
| 64 | 64 | array( |
| 65 | 65 | 'placeholder' => '', |
| 66 | 66 | 'value' => '', |
| 67 | - 'label' => __( 'City', 'invoicing' ), |
|
| 67 | + 'label' => __('City', 'invoicing'), |
|
| 68 | 68 | 'description' => '', |
| 69 | 69 | 'required' => false, |
| 70 | 70 | 'visible' => true, |
@@ -72,9 +72,9 @@ discard block |
||
| 72 | 72 | ), |
| 73 | 73 | |
| 74 | 74 | array( |
| 75 | - 'placeholder' => __( 'Select your country' ), |
|
| 75 | + 'placeholder' => __('Select your country'), |
|
| 76 | 76 | 'value' => '', |
| 77 | - 'label' => __( 'Country', 'invoicing' ), |
|
| 77 | + 'label' => __('Country', 'invoicing'), |
|
| 78 | 78 | 'description' => '', |
| 79 | 79 | 'required' => false, |
| 80 | 80 | 'visible' => true, |
@@ -82,9 +82,9 @@ discard block |
||
| 82 | 82 | ), |
| 83 | 83 | |
| 84 | 84 | array( |
| 85 | - 'placeholder' => __( 'Choose a state', 'invoicing' ), |
|
| 85 | + 'placeholder' => __('Choose a state', 'invoicing'), |
|
| 86 | 86 | 'value' => '', |
| 87 | - 'label' => __( 'State / Province', 'invoicing' ), |
|
| 87 | + 'label' => __('State / Province', 'invoicing'), |
|
| 88 | 88 | 'description' => '', |
| 89 | 89 | 'required' => false, |
| 90 | 90 | 'visible' => true, |
@@ -94,7 +94,7 @@ discard block |
||
| 94 | 94 | array( |
| 95 | 95 | 'placeholder' => '', |
| 96 | 96 | 'value' => '', |
| 97 | - 'label' => __( 'ZIP / Postcode', 'invoicing' ), |
|
| 97 | + 'label' => __('ZIP / Postcode', 'invoicing'), |
|
| 98 | 98 | 'description' => '', |
| 99 | 99 | 'required' => false, |
| 100 | 100 | 'visible' => true, |
@@ -104,7 +104,7 @@ discard block |
||
| 104 | 104 | array( |
| 105 | 105 | 'placeholder' => '', |
| 106 | 106 | 'value' => '', |
| 107 | - 'label' => __( 'Phone', 'invoicing' ), |
|
| 107 | + 'label' => __('Phone', 'invoicing'), |
|
| 108 | 108 | 'description' => '', |
| 109 | 109 | 'required' => false, |
| 110 | 110 | 'visible' => true, |
@@ -114,7 +114,7 @@ discard block |
||
| 114 | 114 | array( |
| 115 | 115 | 'placeholder' => '', |
| 116 | 116 | 'value' => '', |
| 117 | - 'label' => __( 'Company', 'invoicing' ), |
|
| 117 | + 'label' => __('Company', 'invoicing'), |
|
| 118 | 118 | 'description' => '', |
| 119 | 119 | 'required' => false, |
| 120 | 120 | 'visible' => true, |
@@ -124,7 +124,7 @@ discard block |
||
| 124 | 124 | array( |
| 125 | 125 | 'placeholder' => '', |
| 126 | 126 | 'value' => '', |
| 127 | - 'label' => __( 'VAT Number', 'invoicing' ), |
|
| 127 | + 'label' => __('VAT Number', 'invoicing'), |
|
| 128 | 128 | 'description' => '', |
| 129 | 129 | 'required' => false, |
| 130 | 130 | 'visible' => true, |
@@ -136,9 +136,9 @@ discard block |
||
| 136 | 136 | array( |
| 137 | 137 | |
| 138 | 138 | 'value' => '', |
| 139 | - 'input_label' => __( 'Coupon Code', 'invoicing' ), |
|
| 140 | - 'button_label' => __( 'Apply Coupon', 'invoicing' ), |
|
| 141 | - 'description' => __( 'Have a discount code? Enter it above.', 'invoicing' ), |
|
| 139 | + 'input_label' => __('Coupon Code', 'invoicing'), |
|
| 140 | + 'button_label' => __('Apply Coupon', 'invoicing'), |
|
| 141 | + 'description' => __('Have a discount code? Enter it above.', 'invoicing'), |
|
| 142 | 142 | 'id' => 'kcicdiscount', |
| 143 | 143 | 'name' => 'kcicdiscount', |
| 144 | 144 | 'type' => 'discount', |
@@ -158,7 +158,7 @@ discard block |
||
| 158 | 158 | ), |
| 159 | 159 | |
| 160 | 160 | array( |
| 161 | - 'text' => __( 'Select Payment Method', 'invoicing' ), |
|
| 161 | + 'text' => __('Select Payment Method', 'invoicing'), |
|
| 162 | 162 | 'id' => 'gtscicd', |
| 163 | 163 | 'name' => 'gtscicd', |
| 164 | 164 | 'type' => 'gateway_select', |
@@ -170,8 +170,8 @@ discard block |
||
| 170 | 170 | |
| 171 | 171 | 'value' =>'', |
| 172 | 172 | 'class' => 'btn-primary', |
| 173 | - 'label' => __( 'Pay Now »', 'invoicing' ), |
|
| 174 | - 'description' => __( 'By continuing with your payment, you are agreeing to our privacy policy and terms of service.', 'invoicing' ), |
|
| 173 | + 'label' => __('Pay Now »', 'invoicing'), |
|
| 174 | + 'description' => __('By continuing with your payment, you are agreeing to our privacy policy and terms of service.', 'invoicing'), |
|
| 175 | 175 | 'id' => 'rtqljyy', |
| 176 | 176 | 'name' => 'rtqljyy', |
| 177 | 177 | 'type' => 'pay_button', |
@@ -6,7 +6,7 @@ discard block |
||
| 6 | 6 | * @package Invoicing |
| 7 | 7 | */ |
| 8 | 8 | |
| 9 | -defined( 'ABSPATH' ) || exit; |
|
| 9 | +defined('ABSPATH') || exit; |
|
| 10 | 10 | |
| 11 | 11 | /** |
| 12 | 12 | * Returns an array of discount type. |
@@ -17,8 +17,8 @@ discard block |
||
| 17 | 17 | return apply_filters( |
| 18 | 18 | 'wpinv_discount_types', |
| 19 | 19 | array( |
| 20 | - 'percent' => __( 'Percentage', 'invoicing' ), |
|
| 21 | - 'flat' => __( 'Flat Amount', 'invoicing' ), |
|
| 20 | + 'percent' => __('Percentage', 'invoicing'), |
|
| 21 | + 'flat' => __('Flat Amount', 'invoicing'), |
|
| 22 | 22 | ) |
| 23 | 23 | ); |
| 24 | 24 | } |
@@ -28,46 +28,46 @@ discard block |
||
| 28 | 28 | * |
| 29 | 29 | * @return string |
| 30 | 30 | */ |
| 31 | -function wpinv_get_discount_type_name( $type = '' ) { |
|
| 31 | +function wpinv_get_discount_type_name($type = '') { |
|
| 32 | 32 | $types = wpinv_get_discount_types(); |
| 33 | - return isset( $types[ $type ] ) ? $types[ $type ] : $type; |
|
| 33 | + return isset($types[$type]) ? $types[$type] : $type; |
|
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | /** |
| 37 | 37 | * Deletes a discount via the admin page. |
| 38 | 38 | * |
| 39 | 39 | */ |
| 40 | -function wpinv_delete_discount( $data ) { |
|
| 40 | +function wpinv_delete_discount($data) { |
|
| 41 | 41 | |
| 42 | - $discount = new WPInv_Discount( absint( $data['discount'] ) ); |
|
| 43 | - $discount->delete( true ); |
|
| 42 | + $discount = new WPInv_Discount(absint($data['discount'])); |
|
| 43 | + $discount->delete(true); |
|
| 44 | 44 | |
| 45 | 45 | } |
| 46 | -add_action( 'getpaid_authenticated_admin_action_delete_discount', 'wpinv_delete_discount' ); |
|
| 46 | +add_action('getpaid_authenticated_admin_action_delete_discount', 'wpinv_delete_discount'); |
|
| 47 | 47 | |
| 48 | 48 | /** |
| 49 | 49 | * Deactivates a discount via the admin page. |
| 50 | 50 | */ |
| 51 | -function wpinv_activate_discount( $data ) { |
|
| 51 | +function wpinv_activate_discount($data) { |
|
| 52 | 52 | |
| 53 | - $discount = new WPInv_Discount( absint( $data['discount'] ) ); |
|
| 54 | - $discount->set_status( 'publish' ); |
|
| 53 | + $discount = new WPInv_Discount(absint($data['discount'])); |
|
| 54 | + $discount->set_status('publish'); |
|
| 55 | 55 | $discount->save(); |
| 56 | 56 | |
| 57 | 57 | } |
| 58 | -add_action( 'getpaid_authenticated_admin_action_activate_discount', 'wpinv_activate_discount' ); |
|
| 58 | +add_action('getpaid_authenticated_admin_action_activate_discount', 'wpinv_activate_discount'); |
|
| 59 | 59 | |
| 60 | 60 | /** |
| 61 | 61 | * Activates a discount via the admin page. |
| 62 | 62 | */ |
| 63 | -function wpinv_deactivate_discount( $data ) { |
|
| 63 | +function wpinv_deactivate_discount($data) { |
|
| 64 | 64 | |
| 65 | - $discount = new WPInv_Discount( absint( $data['discount'] ) ); |
|
| 66 | - $discount->set_status( 'pending' ); |
|
| 65 | + $discount = new WPInv_Discount(absint($data['discount'])); |
|
| 66 | + $discount->set_status('pending'); |
|
| 67 | 67 | $discount->save(); |
| 68 | 68 | |
| 69 | 69 | } |
| 70 | -add_action( 'getpaid_authenticated_admin_action_deactivate_discount', 'wpinv_deactivate_discount' ); |
|
| 70 | +add_action('getpaid_authenticated_admin_action_deactivate_discount', 'wpinv_deactivate_discount'); |
|
| 71 | 71 | |
| 72 | 72 | /** |
| 73 | 73 | * Fetches a discount object. |
@@ -76,8 +76,8 @@ discard block |
||
| 76 | 76 | * @since 1.0.15 |
| 77 | 77 | * @return WPInv_Discount |
| 78 | 78 | */ |
| 79 | -function wpinv_get_discount( $discount ) { |
|
| 80 | - return new WPInv_Discount( $discount ); |
|
| 79 | +function wpinv_get_discount($discount) { |
|
| 80 | + return new WPInv_Discount($discount); |
|
| 81 | 81 | } |
| 82 | 82 | |
| 83 | 83 | /** |
@@ -87,8 +87,8 @@ discard block |
||
| 87 | 87 | * @since 1.0.15 |
| 88 | 88 | * @return WPInv_Discount |
| 89 | 89 | */ |
| 90 | -function wpinv_get_discount_obj( $discount = 0 ) { |
|
| 91 | - return new WPInv_Discount( $discount ); |
|
| 90 | +function wpinv_get_discount_obj($discount = 0) { |
|
| 91 | + return new WPInv_Discount($discount); |
|
| 92 | 92 | } |
| 93 | 93 | |
| 94 | 94 | /** |
@@ -98,10 +98,10 @@ discard block |
||
| 98 | 98 | * @param string|int $value The field value |
| 99 | 99 | * @return bool|WPInv_Discount |
| 100 | 100 | */ |
| 101 | -function wpinv_get_discount_by( $deprecated = null, $value = '' ) { |
|
| 102 | - $discount = new WPInv_Discount( $value ); |
|
| 101 | +function wpinv_get_discount_by($deprecated = null, $value = '') { |
|
| 102 | + $discount = new WPInv_Discount($value); |
|
| 103 | 103 | |
| 104 | - if ( $discount->get_id() != 0 ) { |
|
| 104 | + if ($discount->get_id() != 0) { |
|
| 105 | 105 | return $discount; |
| 106 | 106 | } |
| 107 | 107 | |
@@ -116,9 +116,9 @@ discard block |
||
| 116 | 116 | function wpinv_get_discount_statuses() { |
| 117 | 117 | |
| 118 | 118 | return array( |
| 119 | - 'expired' => __( 'Expired', 'invoicing' ), |
|
| 120 | - 'publish' => __( 'Active', 'invoicing' ), |
|
| 121 | - 'inactive' => __( 'Inactive', 'invoicing' ), |
|
| 119 | + 'expired' => __('Expired', 'invoicing'), |
|
| 120 | + 'publish' => __('Active', 'invoicing'), |
|
| 121 | + 'inactive' => __('Inactive', 'invoicing'), |
|
| 122 | 122 | ); |
| 123 | 123 | |
| 124 | 124 | } |
@@ -126,9 +126,9 @@ discard block |
||
| 126 | 126 | /** |
| 127 | 127 | * Retrieves an invoice status label. |
| 128 | 128 | */ |
| 129 | -function wpinv_discount_status( $status ) { |
|
| 129 | +function wpinv_discount_status($status) { |
|
| 130 | 130 | $statuses = wpinv_get_discount_statuses(); |
| 131 | - return isset( $statuses[ $status ] ) ? $statuses[ $status ] : __( 'Inactive', 'invoicing' ); |
|
| 131 | + return isset($statuses[$status]) ? $statuses[$status] : __('Inactive', 'invoicing'); |
|
| 132 | 132 | } |
| 133 | 133 | |
| 134 | 134 | /** |
@@ -138,12 +138,12 @@ discard block |
||
| 138 | 138 | * @param int|array|string|WPInv_Discount $code discount data, object, ID or code. |
| 139 | 139 | * @return bool |
| 140 | 140 | */ |
| 141 | -function wpinv_discount_is_recurring( $discount = 0, $code = 0 ) { |
|
| 141 | +function wpinv_discount_is_recurring($discount = 0, $code = 0) { |
|
| 142 | 142 | |
| 143 | - if( ! empty( $discount ) ) { |
|
| 144 | - $discount = wpinv_get_discount_obj( $discount ); |
|
| 143 | + if (!empty($discount)) { |
|
| 144 | + $discount = wpinv_get_discount_obj($discount); |
|
| 145 | 145 | } else { |
| 146 | - $discount = wpinv_get_discount_obj( $code ); |
|
| 146 | + $discount = wpinv_get_discount_obj($code); |
|
| 147 | 147 | } |
| 148 | 148 | |
| 149 | 149 | return $discount->get_is_recurring(); |
@@ -158,35 +158,35 @@ discard block |
||
| 158 | 158 | * @param WPInv_Discount $discount |
| 159 | 159 | * @return array |
| 160 | 160 | */ |
| 161 | -function getpaid_calculate_invoice_discount( $invoice, $discount ) { |
|
| 161 | +function getpaid_calculate_invoice_discount($invoice, $discount) { |
|
| 162 | 162 | |
| 163 | 163 | $initial_discount = 0; |
| 164 | 164 | $recurring_discount = 0; |
| 165 | 165 | |
| 166 | - foreach ( $invoice->get_items() as $item ) { |
|
| 166 | + foreach ($invoice->get_items() as $item) { |
|
| 167 | 167 | |
| 168 | 168 | // Abort if it is not valid for this item. |
| 169 | - if ( ! $discount->is_valid_for_items( array( $item->get_id() ) ) ) { |
|
| 169 | + if (!$discount->is_valid_for_items(array($item->get_id()))) { |
|
| 170 | 170 | continue; |
| 171 | 171 | } |
| 172 | 172 | |
| 173 | 173 | // Calculate the initial amount... |
| 174 | - $item_discount = $discount->get_discounted_amount( $item->get_sub_total() ); |
|
| 174 | + $item_discount = $discount->get_discounted_amount($item->get_sub_total()); |
|
| 175 | 175 | $recurring_item_discount = 0; |
| 176 | 176 | |
| 177 | 177 | // ... and maybe the recurring amount. |
| 178 | - if ( $item->is_recurring() && $discount->is_recurring() ) { |
|
| 179 | - $recurring_item_discount = $discount->get_discounted_amount( $item->get_recurring_sub_total() ); |
|
| 178 | + if ($item->is_recurring() && $discount->is_recurring()) { |
|
| 179 | + $recurring_item_discount = $discount->get_discounted_amount($item->get_recurring_sub_total()); |
|
| 180 | 180 | } |
| 181 | 181 | |
| 182 | 182 | // Discount should not exceed discounted amount. |
| 183 | - if ( ! $discount->is_type( 'percent' ) ) { |
|
| 183 | + if (!$discount->is_type('percent')) { |
|
| 184 | 184 | |
| 185 | - if ( ( $initial_discount + $item_discount ) > $discount->get_amount() ) { |
|
| 185 | + if (($initial_discount + $item_discount) > $discount->get_amount()) { |
|
| 186 | 186 | $item_discount = $discount->get_amount() - $initial_discount; |
| 187 | 187 | } |
| 188 | 188 | |
| 189 | - if ( ( $recurring_discount + $recurring_item_discount ) > $discount->get_amount() ) { |
|
| 189 | + if (($recurring_discount + $recurring_item_discount) > $discount->get_amount()) { |
|
| 190 | 190 | $recurring_item_discount = $discount->get_amount() - $recurring_discount; |
| 191 | 191 | } |
| 192 | 192 | |
@@ -219,10 +219,10 @@ discard block |
||
| 219 | 219 | array( |
| 220 | 220 | 'post_type' => 'wpi_discount', |
| 221 | 221 | 'numberposts' => 1, |
| 222 | - 'fields' => array( 'ids' ), |
|
| 222 | + 'fields' => array('ids'), |
|
| 223 | 223 | ) |
| 224 | 224 | ); |
| 225 | 225 | |
| 226 | - return ! empty( $discounts ); |
|
| 226 | + return !empty($discounts); |
|
| 227 | 227 | |
| 228 | 228 | } |
@@ -160,51 +160,51 @@ |
||
| 160 | 160 | */ |
| 161 | 161 | function getpaid_calculate_invoice_discount( $invoice, $discount ) { |
| 162 | 162 | |
| 163 | - $initial_discount = 0; |
|
| 164 | - $recurring_discount = 0; |
|
| 163 | + $initial_discount = 0; |
|
| 164 | + $recurring_discount = 0; |
|
| 165 | 165 | |
| 166 | - foreach ( $invoice->get_items() as $item ) { |
|
| 166 | + foreach ( $invoice->get_items() as $item ) { |
|
| 167 | 167 | |
| 168 | - // Abort if it is not valid for this item. |
|
| 169 | - if ( ! $discount->is_valid_for_items( array( $item->get_id() ) ) ) { |
|
| 170 | - continue; |
|
| 171 | - } |
|
| 168 | + // Abort if it is not valid for this item. |
|
| 169 | + if ( ! $discount->is_valid_for_items( array( $item->get_id() ) ) ) { |
|
| 170 | + continue; |
|
| 171 | + } |
|
| 172 | 172 | |
| 173 | - // Calculate the initial amount... |
|
| 174 | - $item_discount = $discount->get_discounted_amount( $item->get_sub_total() ); |
|
| 175 | - $recurring_item_discount = 0; |
|
| 173 | + // Calculate the initial amount... |
|
| 174 | + $item_discount = $discount->get_discounted_amount( $item->get_sub_total() ); |
|
| 175 | + $recurring_item_discount = 0; |
|
| 176 | 176 | |
| 177 | - // ... and maybe the recurring amount. |
|
| 178 | - if ( $item->is_recurring() && $discount->is_recurring() ) { |
|
| 179 | - $recurring_item_discount = $discount->get_discounted_amount( $item->get_recurring_sub_total() ); |
|
| 180 | - } |
|
| 177 | + // ... and maybe the recurring amount. |
|
| 178 | + if ( $item->is_recurring() && $discount->is_recurring() ) { |
|
| 179 | + $recurring_item_discount = $discount->get_discounted_amount( $item->get_recurring_sub_total() ); |
|
| 180 | + } |
|
| 181 | 181 | |
| 182 | - // Discount should not exceed discounted amount. |
|
| 183 | - if ( ! $discount->is_type( 'percent' ) ) { |
|
| 182 | + // Discount should not exceed discounted amount. |
|
| 183 | + if ( ! $discount->is_type( 'percent' ) ) { |
|
| 184 | 184 | |
| 185 | - if ( ( $initial_discount + $item_discount ) > $discount->get_amount() ) { |
|
| 186 | - $item_discount = $discount->get_amount() - $initial_discount; |
|
| 187 | - } |
|
| 185 | + if ( ( $initial_discount + $item_discount ) > $discount->get_amount() ) { |
|
| 186 | + $item_discount = $discount->get_amount() - $initial_discount; |
|
| 187 | + } |
|
| 188 | 188 | |
| 189 | - if ( ( $recurring_discount + $recurring_item_discount ) > $discount->get_amount() ) { |
|
| 190 | - $recurring_item_discount = $discount->get_amount() - $recurring_discount; |
|
| 191 | - } |
|
| 189 | + if ( ( $recurring_discount + $recurring_item_discount ) > $discount->get_amount() ) { |
|
| 190 | + $recurring_item_discount = $discount->get_amount() - $recurring_discount; |
|
| 191 | + } |
|
| 192 | 192 | |
| 193 | - } |
|
| 193 | + } |
|
| 194 | 194 | |
| 195 | - $initial_discount += $item_discount; |
|
| 196 | - $recurring_discount += $recurring_item_discount; |
|
| 197 | - $item->item_discount = $item_discount; |
|
| 198 | - $item->recurring_item_discount = $recurring_item_discount; |
|
| 195 | + $initial_discount += $item_discount; |
|
| 196 | + $recurring_discount += $recurring_item_discount; |
|
| 197 | + $item->item_discount = $item_discount; |
|
| 198 | + $item->recurring_item_discount = $recurring_item_discount; |
|
| 199 | 199 | |
| 200 | - } |
|
| 200 | + } |
|
| 201 | 201 | |
| 202 | - return array( |
|
| 203 | - 'name' => 'discount_code', |
|
| 204 | - 'discount_code' => $discount->get_code(), |
|
| 205 | - 'initial_discount' => $initial_discount, |
|
| 206 | - 'recurring_discount' => $recurring_discount, |
|
| 207 | - ); |
|
| 202 | + return array( |
|
| 203 | + 'name' => 'discount_code', |
|
| 204 | + 'discount_code' => $discount->get_code(), |
|
| 205 | + 'initial_discount' => $initial_discount, |
|
| 206 | + 'recurring_discount' => $recurring_discount, |
|
| 207 | + ); |
|
| 208 | 208 | |
| 209 | 209 | } |
| 210 | 210 | |